CPSC 525: Course Projects

Instructor: David Lowe
January-April 2012.

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

Wednesday, March 7: 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.

March 26 - April 4: Project presentations. Class members can choose to give 15 minute presentations on their projects on a volunteer basis.

Monday, April 23: 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. Projects will usually involve some implementation or experimentation as well as a review of the related literature and a written research report.

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 describe the specific work that each student contributed to the overall project.

Recognition of UBC buildings

Extend the approach of SIFT feature matching and augmented reality in 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 recognized and augmented with new signs or information as desired.

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 source of free software is VLFeat that includes source code for SIFT and other feature detectors as well as sample applications for object recognition and image stitching. A large list of other sources of computer vision software is maintained by Jia-Bin Huang.

Microsoft Kinect Sensor

The Microsoft Kinect sensor is an inexpensive new way to gather range data for many computer vision applications. You can get many ideas for projects that use the Kinect from the following sites: OpenKinect, or KinectHacks.

Object category recognition using boosting

One of the most successful 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 made, 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.