Project Guidelines
- Students taking this course for credit will work on a
computer vision project. Projects can be
done independently or in groups, but group projects are strongly encouraged.
Some suggestions about topics are given below. There is no specific format for
a project, but some guidelines are given below to ensure a certain degree of
uniformity in the effort required. These guidelines include checkpoints
when you have to hand in material. Make sure you read this document in its
entirety.
Examples
- It is best if you come up with your own idea. However, here are some
project types:
- Project ideas are given in the form of programming
assignments at the end of every chapter in the textbook.
These projects are likely to be successful, because you will know the
relevant material.
- Web-based exploration of a vision topic. Search the web,
perhaps starting from CVonline,
for pages on
camera calibration, stereo vision, edge detection, tracking people, 3D
reconstruction, etc. Find a couple of algorithms that come with code and
sample input data. Run the algorithms on all inputs, and find ways to
compare their performance. Success here is tied to a well-designed
comparison procedure, and a clear analysis and presentation of the results.
- Modify an existing algorithm. Choose a program from
the Web
(for instance,
an edge detector). Run the program on some images, and determine some
shortcoming of it. Propose a modification for improving the algorithm,
which you then implement and test. This project is successful if you
complete your implementation and discuss the testing results. It does not
matter if these results are not as good as expected. It is even OK if your
modification makes the results worse, as long as you show this and make an
honest effort to understand why.
- Write your own implementation of a vision algorithm that already exists
in the literature. This could be about stereo matching, tracking,
calibration, edge detection, or any other topic of interest. A place to
start is to look at something that attracts you in the textbook, read the
relevant page or two, and pick one of the references. A project of this type
is successful if your code works and you can run experiments and discuss
strengths and drawbacks.
- Present your own solution to a vision problem: Can you think of a novel
solution to the correspondence problem? Is there a noise-insensitive
reconstruction from image sequences? This is a very high risk type of
project, definitely not recommended unless you already have a concrete idea
in mind and/or you have played with it in the past.
-
-
As you see,
programming is not an absolute requirement. This is a vision class, not a
programming class.
Checkpoints
- Some checkpoints are established throughout the quarter to make sure that
you get early feedback on your work. The checkpoints are as follows.
-
- February 4, 2003
- Project proposal is due (on-line, before class)
(20 percent of
project grade) - March 25, 2003
- Project review is due (on-line, before class)
(30 percent of project
grade) - April 10, 2003
- Project's final report is due (on-line, before class)
(50 percent of project
grade)
-
- All report materials should be in HTML format (more on
this below). Either e-mail a URL to tomasi@cs.duke.edu
that points to your HTML
files, or else send me the HTML files themselves in an e-mail. If you use the
latter method, please send me a single zip archive file. Each of the checkpoints involve handing in
material on your part. This material will be graded, and all deadlines are
strict. Only under special circumstances, discussed with me in
advance, can the deadline be moved by a few days. These checkpoints are
discussed in more detail in the remainder of this document.
Project Proposal
- The project proposal is a one page description of what you intend
to do. It should be an HTML document. The reason for this format is that your
projects will be published on the World-Wide Web. WWW pages can be read from
across the world, so please do a careful job writing yours. The one page limit
admits no exceptions, since a single page fits on a screen and is still
readable. If you have figures or charts or anything else, it will all have to
fit within the one page. Here is what your proposal should contain:
- Your name(s).
- A project title.
- A brief description of what you plan to do. Your classmates should be
able to understand your description without knowing special things about
your project. Avoid jargon. A few clear paragraphs will do.
- Pointers to the relevant bibliography. This may be a chapter out of a
book or a single journal paper if you plan, say, to implement an existing
algorithm.
- The form in which the final result of your work will be delivered. If it
is a program, state clearly what the input is (images in which format, and
where you are going to obtain them), and how the output is going to be
visualized (another image, a list of numbers, a plot, a display in an
interactive tool, etc.). Also, state what programming language will you use
(you are free to choose any system convenient to you). If you compare
programs, state your criteria for comparison, and so forth. If it is
something else, say what the report will look like and how you will test
your results, if applicable.
- A schedule of work, including what you plan to submit for the
project review. List the tasks ahead of you, and split the available
time in reasonable proportions and among the people in your group. This is a
very important part of the proposal. The point of the proposal is to show
that you plan to do something reasonable given the time, not
something overly ambitious. Your judgment in this part will be considered
for the grade. Do not worry if your proposal sounds "small": there will be
plenty of opportunities to get stuck and for your schedule to slip, so do
not bite off more than you can chew. In my experience, the best projects
have had a modest target but are carried out with care and
attention to details. [ God is in the details. - Mies Van Der
Rohe.]
- Anything else that helps understand what you plan to do and establish
the feasibility of the project in the limited amount of time that is
available. A picture that illustrates the project may be worth many words.
Project Review
- The aim of the review checkpoint is to make sure that you do not wait for
the end of the quarter to start working. For the review, you should try to
meet the goal you stated in the proposal. For instance, if you proposed to
implement an algorithm, most of the code should be ready at review time. Minor
bugs are still possible, and the input-output interfaces may be incomplete,
but the core parts of the main algorithm should be shown to work. If you plan
to modify existing code, the original code should be up and running, and most
of the modifications should be complete. The review is really the substantial
deadline for this problem. Do not hand in the actual code, just an HTML page
that shows inputs, outputs, discussion, and a link to the source code.
Final Report
- After the review, you should plan to spend the last few
days writing up a final report, running experiments where applicable, and cleaning
up the details. You should not plan any major coding for this time period.
Writing clearly requires time, and the clarity of your final document
will be a substantial part of your grade. Again, a small investigation carried
out with care and insight is much better than an ambitious project executed in
a hurry. The final paper should be in the format of a publishable paper. You
should not necessarily aim for publication, since you may just be reproducing
known results, but your paper should be as well-organized and clearly
presented as a research journal paper. It should contain a good, brief
introduction, figures where appropriate, and a sensible conclusion outlining
what you have learned from your work. Again, your final report must be an HTML
document, with as many links and pointers as you need.
- HTML is a simple markup language for World-Wide Web pages. Here is a
pointer to
tutorials, reference manuals, and tips for writing in HTML. However, the
easiest way to learn how to write in this language is to copy an example and
modify it to suit your needs.
And now, off to work, and have fun!
Back to the CPS296.1 Home Page