You are hereResearch Projects

Research Projects


Overview

Students (both undergraduate and graduate) often ask me for potential research projects. All too often, these requests linger in my mailbox primarily because it takes me more time than I can allocate to answer them (answering 100+ emails a day becomes quite time consuming). When I do respond, I typically send them to the various research project pages and ask them to talk to the project leaders (post-docs, graduate and undergraduate students) of those projects.

This is my attempt to create a page that I can quickly send to such email requests and give some ideas about specific research projects. It will undoubtedly become stale quickly. But I will do my best to keep it up-to-date. This is definitely not an exhaustive list as new ideas arise daily. But it should give you a good flavor of (somewhat) immediate goals/needs. Feel free to think up your own ideas related to other projects (see my research page for all of my projects.

You should contact the project leaders directly about opportunities. Please cc me in case the project descriptions become so old that the leaders are no longer around. I will point you in another direction. Or I can yell at the leaders to respond to you. Either way, it will increase your chances of getting a response.

Without further ado, the projects:

Projects

National Geographic Projects: kastner@ucsd - UCSD is the home of the only National Geographic Engineers for Exploration program in the world. There are a number of projects including the Intelligent Camera Trap, Multiblade Copter, Aerial Gigapan, and many more. You can talk to me to get a high level description of the projects. I will get you in touch with the team leaders. If you see something that interests you directly, feel free to contact the team leaders direction team members of the various projects.

Multi Rotor Copter: Radley.Angelo13@gmail - The Copter Piloting project seeks to radically redefine how a pilot and videographer interact with a multiple bladed rotocopter in flight. Utilizing the Ardunio open source platform, we will be taking existing autopilot software and altering it to allow a lower barrier of entry for pilots, as well as more precise control for a separate videographer on the ground. This approach will allow for unprecedented video footage from a multi bladed copter, as well as open the door for more advanced scientific research and development.

High Level Synthesis (HLS) tool: jmatai@cs.ucsd - High Level Synthesis tools allow designers to program hardware with languages like C and C++. In this project, we implement a high level synthesis tool based on a LLVM framework. Specifically, we implement LLVM pass for instruction scheduling, register allocation and resource binding for embedded systems hardware design (MIPS/VLIW processor generator). This project involves designing embedded systems hardware, compilers and algorithms.

Image Processing Algorithm Implementation with AutoESL High Level Synthesis Tool: jmatai@cs.ucsd - AutoESL is a state of the art high level synthesis tool from Xilinx inc. Basically, this tool allows you to program FPGA with a C/C++ code. In this project, we use AutoESL to design and implement FPGA architectures for image processing algorithms such as SIFT (Used for feature extraction), SLAM (Used for localization of robots) and Object Detection. Also open for using any kind of algorithm implementation from other areas such as security and networking.

MIPS Processor Simulator Implementation: jmatai@cs.ucsd - Designing and implementing hardware processor takes substantial time an effort. In this project, we design and implement a software simulator for simulating applications on a MIPS processor. This project involves heavy use of python language.

RoboSub Stingray Box Task: chris.barngrover@gmail - Image recognition between for images in underwater camera. Would work with a previous years shapes, with an emphasis on creating a process that we can easily utilize with the new symbols to quickly create a working algorithm for recognizing the shapes. This task will involve "creating" the objects, capturing images of them underwater, developing learning algorithms using opencv (Haar, SIFT, etc), and showing results. The goal is not only a working algorithm for the examples, but a process for developing these algorithms again. We have multiple years of shapes to work with so the initial effort will be on one set and a demonstration of the process will be to create another algorithm for another years shapes.

RoboSub Stingray Controller: chris.barngrover@gmail - Develop an App that uses a ROS node to communicate with Stingray nodes to publish and subscribe data. The task will involve development in Apples dev environment using Cocoa and utilizing the open source libraries of ROS managed by WillowGarage. The goal will be at the very least a connection with data flow between the iPad App and the Stingray, with the ability to display and alter basic information. Further efforts will involve implementing ROS tools that visualize the vehicle and its environment, ROV controls for the vehicle itself, etc.

Underwater Stereo Vision: chris.barngrover@gmail - Implement stereo vision capability in an underwater environment. This task will start with working with ordering the designed enclosures for the cameras and attaching them to the Stingray to pull video in through a ROS node. These two things can be addressed in parallel, since some work will need to be done up front to prepare for the stereo vision before the enclosures are ready. Task will build on previous work by students for a class project. Goal will be to capture reliable stereo vision data of an object underwater - most likely the object will be related to the RoboSub competition.

Object Detection and Classification of Mines in Sonar Imagery: chris.barngrover@gmail - Work with a DoD synthetic dataset of bottom mines to test the potential of various opencv feature detection algorithms. The DoD database will most likely need some work to prepare for this specific application. The database will need to be labeled for positive and negative examples for use by the various feature detection algorithms. Then the shared code for processing image directories will be used to add the capability of using additional feature detection algorithms on the given image library. The result of process should be statistics on the reliability of the given algorithm based on the specific learning technique for this dataset. Results will need to be well organized for comparison to variations of training by the same feature detection scheme or for comparison with efforts on another similar mine database.

Tracking Asynchronous Underwater Networks: dimirza@eng.ucsd.edu

Tracking the position of underwater vehicles is a key requirement for oceanographic applications. This project extends on existing techniques that we have proposed for estimating the trajectories of a mobile collective. However, these methods assume that the vehicles are time synchronized. The goal of the project is to extend our existing solution for the case where vehicles are not time synchronized. The project involves the design and implementation of the proposed extension in C/C++.

Requirements: A good knowledge of probability theory and statistics, matlab and very good C/C++ skills.

Recommended duration: 2 quarters

A literature and simulation based study of adaptive modulation techniques for wireless communication: diba.mirza@gmail - This is a study oriented project. The student will be required to perform a literature study of adaptive modulation techniques used in wireless communications and prepare a report that summarize his/her understanding. The report should answer questions such as - why were adaptive modulation schemes developed in radio networks. To what real-world applications are they generally applied? What are the key methods used to perform such adaptations? What are the assumptions made by these techniques?

Requirements: The project is best suited to students with a background in wireless communications and students who are currently taking courses or are interested in this field.

Develop an understanding of techniques in wireless communications: airturk@cs.ucsd - Design of a JPEG compression core on FPGAs: Image compression is an important topic in commercial, industrial, and academic applications. Whether it be in commercial photography, industrial imaging, or video, digital pixel information can comprise considerably large amounts of data. Management of such data can involve significant overhead in computational complexity, storage, and data processing. Typical access speeds for storage mediums are inversely proportional to capacity. Through data compression, such tasks can be optimized. The JPEG algorithm was chosen for this project as it is well defined and highly recognizable. JPEG provides a baseline compression algorithm that can be modified in numerous ways to fit any desired application.

Design of a Convolver core on FPGAs: airturk@cs.ucsd - 2D convolver function as an example of great significance for image processing algorithms. The 2D convolution is a process commonly used in image processing acquired by external sensors (guidance systems, surveillance systems or machine vision). As many other applications in image processing, the 2D convolution is extremely demanding in terms of real-time system performance. For instance, it may easily require more than 300 million multiplications and additions per second. Meeting such performance requirements exceeds the capabilities of most high speed real-time processors. In terms of implementation, this work will explore the performance and architectural tradeoffs involved in the design of an FPGA-based 2D convolution processor.

Investigating region growing (blob coloring) algorithms in C: airturk@cs.ucsd - The goal of region growing is to use image characteristics to map individual pixels in an input image to sets of pixels called regions. An image region might correspond to a world object or a meaningful part of one. The effectiveness of region growing algorithms depends heavily on the application area and input image. If the image is sufficiently simple, say a dark blob on a light background, simple local techniques can be surprisingly effective. However, on very difficult scenes, such as outdoor scenes, even the most sophisticated techniques still may not produce satisfactory segmentation. This project will explore the effectiveness of various algorithms in terms of precision and memory usage. The result of this project can be incorporated in OpenC.

Multitouch Table: jmcclosk@ucsd - Simulcast Lectures has built a multitouch table for user interface experiments. There are a number of different designs for such tables, e.g., see nuigroup. Our table uses infrared (IR) and frustrated total internal reflection (FTIR) to reflect IR light down to a camera, which allows tracking of finger blobs. We are looking for additional CSE people who are interested in developing software to run on the table. We are currently using Community Core Vision to track finger blobs, but other software could be used or written. The table works in both a lighted and un-lighted room, and the screen is lit by an array of LEDs. Hardware Specifications: 32” touch surface, 1366x768 resolution, Camera: PS3 eye, 320x240 @ 60 FPS or 640x480 @ 30 FPS. Software Requirements: Applications will need to interface with the camera, preferably through listening for TUIO messages sent by Community Core Vision. The programming language used is up to you. Unless you are willing to supply the hardware, applications should run on either Windows or Linux. Human Requirements: Prior experience in developing GUIs will help, but is not required. Undergraduate and MS students are suitable.

Presenter tracking with Kinect: jmcclosk@ucsd - The end goal of the tracking software is for it to output a cropped video of the presenter as they give their lecture. Optionally, it could also control the Kinect's motor to follow the presenter if they move out of the camera's FOV (field of view). This video would then be integrated into an existing video of the presenter's laptop. The second part of this project is to then “cut out” the presenter as if they were in front of a green/blue screen, so they can be overlaid onto the laptop output, instead of being displayed as picture-in-picture. Software Requirements: Code should consist of a library (with associated API) that contains the actual tracking and video output code and a driver application that uses the library. The library should export functions that are callable from C code (although it could be written in C++). For bonus points, the library should provide a GStreamer source element that gives the post-processed video. Output video pixels should have an alpha value (e.g. be in the RGBA colorspace) that determines the overlay. At a minimum, the library should run on Windows, but Linux compatibility is a plus. Human Requirements: Should be very familiar with C/C++. Familiarity with GStreamer is a plus. Masters students are most suitable, but an enthusiastic undergraduate could also work.

Ultraviolet pen based touchscreens: jmcclosk@ucsd - Current pen-based touchscreens are either cheap and inaccurate or very expensive and accurate. This project attempts to produce a cheap, accurate pen based touchscreen. The technology is based on Anoto pen technology, which is used in smart pens to record pen movement on special paper that contains an essentially invisible dot pattern. In this application, the dot pattern is printed on a transparency using invisible ink. The ink fluoresces ultraviolet (UV) light when it absorbs UV light, so a pen that both emits UV light and has a UV sensitive camera could track the printed dot pattern. Such a pen could track on any surface covered with the special transparency, paving the way for inexpensive touchscreens. Some of the preliminary work for producing a working prototype has been done, but the difficult work has not. You would be prototyping the pen and writing computer vision code to track the position of it based on the video from the camera. You would then write a driver to control the position of the mouse cursor based on the position of the pen. Software Requirements: pen driver can be developed for user-space or kernel-space. Programming language and OS are up to you, but Windows compatibility is preferred. Human Requirements: You must have good troubleshooting skills and be willing to experiment. This project is fairly ground-breaking, so you must be good with dealing with uncertainty. Good general programming skills will also help. This project is best for masters students.

USB interface for controlling a presenter's laptop: jmcclosk@ucsd - Simulcast Lectures currently requires presenters to switch between using our interface to annotate their content and their laptop to advance slides. In order to eliminate this gap, a USB keyboard emulator needs to be developed to allow the Simulcast system to send keystrokes to the presenters laptop. Hardware Requirements: must plug into presenter's laptop via USB. The interface with the Simulcast system can be USB or serial, but USB is preferred. Software Requirements: The software can be written in C or C++, but must expose a C interface for sending the keystrokes. At a minimum, the software should run on Windows, but Linux compatibility is a plus. Human Requirements: This project is good for undergraduates.