CSC 370

Semester Projects

 

For your semester project in CSC 370, you will complete a significant individual exploration relating to current research in computer vision. The results of this project will be documented in a paper and associated presentation. The project may take one of several forms:

The options above are listed in order of increasing difficulty, and corresponding reward for success. (The difficulty of the attempted project will be taken into account during grading.) Students interested in the second or third options should check with the professor to ensure that their concept is feasible within the time frame of the course.

There are no joint projects except by explicit permission from the instructor.

Timeline

To help you to budget your time and maintain continuous progress towards project completion, a number of milestones are built into the timeline below. Completion of each piece according to the schedule below will help to keep the project on track.

Date Item
Week 2 Tentative choice of topic (a one paragraph statement indicating the nature of the project, with citation of original paper or identification of main algorithm(s))
Week 4 Precise specification of project (one to two pages; indicate inputs and outputs to algorithm, general structure of code, and tests planned with sample inputs). Must include a schedule for completion with milestones listed.
Week 6 Progress meetings (individual meetings with professor to discuss progress on projects -- significant work on implementation should be begun by this time)
Week 12 Written report due. Implementation and testing should be complete. Oral presentations to the class on your project will happen the following week.

Further Details

Please bear in mind that this project is not just about programming, although that will likely form a significant portion of the work. Without proper testing and analysis of the algorithms chosen, the implementation is worthless. Thus the written report, while referring to the code at times, should focus on the analysis of the results. Projects that are based upon code written by others (the authors of a paper, for example) should either extend or apply that work in some appropriate manner. Existing code that is incorporated into your project must be appropriately cited in the report.

Semester projects may be implemented using a language of your choice; however, primary support will be available in the Matlab programming environment. For those who prefer C/C++ or Java, projects may be implemented in those languages using Matlab's external language interfaces. (More details are available for those interested.) Python users may wish to consider the NumPy package, which offers some of the same functionality as Matlab and bindings for the OpenCV library.

Topics

Semester project topics may cover any aspect of computer vision, and should be chosen with consideration for the ease of implementation. Below are some possible topics for your consideration:

Instead of starting with a specific area in mind, you may pick an interesting recent paper to work with. Browse through titles of papers from recent computer vision conferences (ICCV, CVPR, ECCV) and look for items that catch your interest. The papers selected for oral presentation are often particularly strong work and should be considered first. If you need help selecting a paper in a particular area, please speak with the professor. (Note that some papers will not make suitable projects because the authors do not provide an implementation and recreating one would be too difficult.)

Written Paper

The paper describing your semester project should follow the format of a scientific article. Begin with an abstract that summarizes the significance of what you have done. Introduce your subject by placing it (and the work it is based upon) in the context of related work and the field it belongs to. You should include citations to appropriate relevant work, in a standard scientific format (follow IEEE or ACM guidelines). Next describe what you did, and the results obtained. Conclude with reflections about what you have learned, and what sorts of interesting extensions you can envision.

The length of the paper will vary depending upon the nature of your project. If you are writing code from scratch, then your writeup will probably be shorter because the amount of new material may be limited. You will probably focus mostly on any challenges encountered during the project. If you are using existing code, and extending it or experimenting with it in some way, then you will probably need a somewhat longer paper in order to describe the new things you have done and the results obtained. In either case, the aim should be to produce a complete and accurate description of your work, rather than to aim for a particular target length.

Presentation

We will be presenting the work on the semester projects during the last week or two of class. The presentations will necessarily be shorter than most we have made during the semester. Focus on what you did for your project, not necessarily on the paper your work is based upon. Try to identify the aspects of your project that the rest of the class will find the most interesting, or will get the most out of. We may have visitors invited to view the final presentations, so please be prepared for the possibility of an external audience.