The purpose of the project is to have hands on image and video understanding and to gain experience with primary research methods. Projects will usually involve some implementation and experimentation as well as a written report (2-5 pages long). It is important to clearly identify a specific problem you want to tackle and present solutions by combining existing methods or proposing new solutions.
Group projects will be allowed, but in this case a report must also be handed in describing the work that each student contributes to the overall project.
There are different resources to check what other people have done. The three major conferences for computer vision (CVPR, ICCV and ECCV) reflect some recent popular topics. You can access the papers in these conferences from BC library website. Try to choose a topic that interests you and is manageable in a short period of time. It is better to do an interesting small project and get it done than work on a big one but not finish. Some possible topics are listed below.(1) Object recognition using vocabulary trees
Recent computer vision techniques allows searching in a large image database quickly to find similar images. The method is to use bad of features (SIFT) and a hierarchical K-means dictionary. One implementation can be found at http://www.vlfeat.org/~vedaldi/code/bag/bag.html . Try to use it to recognize objects, actions, poses, hand gestures or others.(2) Marker tracking
If markers can be attached to an object, they can be tracked reliably in real time. ReacTIVision is an open code for tracking markers and targeting at tangible multi-touch surfaces. It can be used for general tracking purpose as well. For instance, if you attach the markers to your hand, you can track them in real time and use it to do some interesting things.(3) Multiple object tracking using detection and data association
In the applications such as surveillance, we often need to track a bunch of objects, e.g. people and cars. These objects usually have complex interactions and mutual occlusions. Study how to track them. One often used technique is to detect the potential objects in each video frame and then link them into long tracks. For example, you can use an object recognition tool at "http://people.cs.uchicago.edu/~pff/latent/ to detect humans and cars and then optimize the tracks.(4) Tracking human poses in controlled environments
Tracking human poses is essential for HCI (human computer interaction). Basically, you need to locate the body parts (head, torso, arms and legs). It is still hard to track poses in general environments. But if you can control the environment (for example you can do background subtraction and enforce the frontal view), real-time or fast tracking is possible. Come up with some ways to track poses in simplified environments.(5) Recognizing human actions in everyday life
In a smart environment, computers need to understand the human actions to give a correct response. Different clues such as motion, shape and trajectories can be used to recognize actions. Check out the link at "http://www.eecs.berkeley.edu/Research/Projects/CS/vision/action/. You can use the nearest neighbor search to do the recognition.(6) Video content analysis for sports
Video processing has been widely applied to sports game broadcasting and partially to sports training and sports data archiving. In this project, study applications that may be used for different aspects of sports games. For example, one application is to track players on sports field and automatically log information about their movements and actions.(7) Reconstruct 3D poses from single images
Implement the method proposed by C.J. Taylor in the Reconstruction of Articulated Objects from Point Correspondecnes in a Single Uncalibrated Image.