CPSC 525: Course Projects

Instructor: David Lowe
January-April 2014.

A major course requirement for CPSC 525 will be a multi-stage project, with the following deadlines:

Tuesday, March 4: Project proposal. Write a review of the literature relevant to your topic, describe the initial progress that has been made, and outline plans for completion. The length should be no longer than 4 pages. The proposal should be written in the usual form of scientific presentation, including abstract, introduction, previous work, research plans, and references.

April 1-8: Project presentations. Class members will give 10 minute presentations on their projects. This is optional, but evaluation will be designed so that a presentation can only add to the course grade.

Monday, April 28: Final report. Hand in the final project report, which may include material from the progress report. The length should be no more than 8 pages and should be similar in organization to a conference paper. In addition, the final report should contain a listing of any source code that was written (not part of the page limit).

Project Ideas

The purpose of the project is to gain in-depth knowledge of some aspect of the computer vision field and to gain experience with using the primary research literature and doing research.

The following project examples are meant to provide ideas and guidelines. Students are free to develop their own topics, which may also include topics related to their thesis research or covered in CPSC 505 or other related courses. Any sharing of projects between courses should be clearly documented. Group projects are allowed, but in this case the report should also briefly describe the specific work that each student contributed to the overall project.

Improved methods for stereo vision

Experiment with better methods for stereo matching than what were used in the first homework assignment. For example, source code is available for the efficient belief propagation method for stereo matching by Felzenszwalb and Huttenlocher at http://cs.brown.edu/~pff/bp/. One problem with applying this algorithm to realistic stereo data is that it performs very poorly when the images have differing intensity or contrast. You could test this by synthetically modifying brightness for one of the images, and develop normalization methods that avoid this problem. Other projects could be to modify this code to use colour images or apply the algorithm to an up-sampled image to avoid the loss of information caused by added blur as described in the paper.

Recognition of UBC buildings

Extend the approach of SIFT feature matching from the second homework assignment to handle large numbers of object training images. This can be done efficiently by using FLANN (Fast Library for Approximate Nearest Neighbors). You can test this by taking many images of buildings on the UBC campus and seeing if other images taken at different times can be correctly recognized.

Use OpenCV or other open source software

OpenCV is a free open-source system of software for performing computer vision tasks. It has a large number of existing modules and allows new features to be added. Many potential course projects could be designed to use the existing OpenCV capabilities and extend them by making some improvements. For example, OpenCV has modules for face detection and gesture recognition that could be improved by adding more training data or improving segmentation from cluttered backgrounds. Another project would be to systematically test various algorithms, such as feature detectors, against some data with known ground truth, and report the results.

Object category recognition using boosting

One of the most popular approaches to object category recognition is the use of the AdaBoost machine learning algorithm. Matlab source code is available for performing a variant of AdaBoost (called GentleBoost) in the short course on object category recognition by Li, Fergus, and Torralba. You can experiment with this source code on various object category recognition tasks and report on its performance under varying training conditions. You could try to improve its performance by using additional image features as input.

Improving Wikipedia articles on computer vision

Many Wikipedia articles in the area of computer vision are unclear, missing information, or could use other improvements. You could choose some articles on topics related to the course, and work to improve them. These could be on specific topics such as the Hough Transform, or general topics such as Computer Vision itself. Your project report should describe the problems you addressed, what changes you proposed, and whether they were accepted by the other Wikipedia editors.

Review paper

A project could consist of an in-depth literature review and analysis of some area. Possible topics are the neurophysiology of vision, visual psychology, or some area of the computer vision industry. The report should synthesize and summarize the previous literature and attempt to draw original conclusions.

Sources for more ideas

Look at the suggested implementation exercises at the end of most chapters of the Szeliski book. Many of these would be suitable as a basis for a course project.