Instructor: David Lowe
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
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).
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
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
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