Computer Science 182a
Final Project
Final project proposal
Your final project proposal need not be long, but you should include
the following parts (perhaps a paragraph or so on each).
Submit this in the usual way, i.e., by creating a wiki page linked from
here.
- Overall project description
In essence, this is what you'd like to do. Give some attention to
how you (and I) might evaluate it. Also, you should consider the
scope of your project here -- in particular, suggest
ways that the project could be limited or simplified, if
need be, as well as some ways in which it could naturally
expand. It's completely OK for this to be a continuation of
extensions you've pursued thus far -- or, it can be entirely
new.
- System and Starting point
Explain how you intend to start the project -- or, at least, the
next stage of your project. Particulars of the
start-up include the language (and
perhaps platform/OS) under which you anticipate working and the source
for input to your system (still images and where they'll come from, or,
perhaps, video from somewhere). Any hardware requirements
that I need to be aware of (so we can start setting things up)?
Describe in as much detail as you can a starting piece of the
project that you intend to begin with: this part will be due
by April 10th. Also suggest a number of
separate pieces that will comprise the whole system: what are your
initial thoughts on the order in which to attack them?
Are there any that will be more difficult than others?
Ideas for the final project
New! Scaffolded projects
If you'd rather pursue a well-scripted project than to create
one from scratch, there are three ideas that I, personally, have
felt were interesting and that have been used elsewhere. If you'd like,
you could try one of these out (and that would probably add them to
our regular projects in the future...):
- Object/image classification using the bag-of-features model
This is one of the most effective current approaches to
recognition. Below is a link to a scaffolded set of investigations
that uses a standard data set (the "CalTech" images):
bag-of-features classification using the CalTech dataset
- Stereo matching
This is the classic reconstruction
technique in which finding correspondences between two images allows for
a 3d reconstruction of the scene. This also takes advantage of some
standard datasets:
The UNC Stereo-matching assignment
- Image-based localization
This is a bit more
open-ended: building a system that uses images to determine where you are
within a previously-mapped environment. Below is a paper that describes an
approach: the project would be to implement a subset of the paper
sufficient to localize a laptop (or robot) that was in a familiar
environment, e.g., the Galileo foyer or an HMC dorm room:
Image Based View Localization System Retrieving from a Panorama Database by
SURF
Open-ended projects
More open-ended projects often fall under two broad headings: specific applications or
comparative research.
For the latter, the idea is to implement and investigate the relative
performance of some set of vision algorithms. The key contribution
is both summarizing the strengths and weaknesses of each and quantifying
where they success and they they fail.
Algorithm implementation/testing/comparison
Svetlana Lazebnik has an excellent set of
starting
points for algorithmic investigations at this link. Broad topics include
stereovision, geometric reconstruction, recognition, classification, detection, image
segmentation, and video processing.
System-building ideas
As far as imagination allows, I suppose... Here are snapshots of three slides that listed
a few of the ideas we have mentioned thus far:
Final project requirements
The final project requires four things:
- Meeting
Before April 15th, each team should meet with me to discuss
their project's scope and
ideas -- also, we will schedule an in-class presentation
during one of the lecture days in late April.
- Presentation
In one of the lecture sessions during the final
two weeks of classes,
each team or individual will present to the group a 10-15 minute overview
of their project and approach and its context. For this
presentation, you should present the progress made so far -- and
what you hope to complete before the final demonstration.
- Write-up
This is not due until May 7th -- the demonstration day is the
more important (and earlier) deadline.
The write-up is the formal documentation for the project. Although the
format is not required to adhere to any particular form, the following
sections outline a common approach to covering the important points:
- An Introduction that motivates and describes the problem
and the results at a high level.
- A Background section that explains the basics of
the algorithms you applied to the problem.
- A System Description section that provides the
details of how you constructed your system, how it works,
and how you tailored the algorithms described in the previous
section to the problem at hand.
- A Results section that describes how well the
system performs. A format that often works well here is
to first explain your evaluation techniques, provide their
results, and then explain those results and what they
say about the problem and about your approach(es) to it.
- A Conclusion, usually very brief, in which you can
summarize your system and the results. In addition, this
is a chance to be less scientific in your opinions about
the project and a chance to put it
in the larger context of larger, more general problems
(such as the general vision problem or a broad subfield).
The write-up should include a link to an archive of your source code and other
supporting materials -- this will serve as a starting point for future students
who may want to pick up where you left off... .
- Demo
The demonstrations will be done during the final class period for CS
182a, which is
Thursday, April 28 at 9:35am. This will be the "official" demo of your system;
even if you choose an algorithm to study, implement, and/or extend, this date
will be the time to show its results.
Your demo should show off the portions of the system that went beyond
whatever foundation you used as a starting point.