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:
- Take an existing implementation of a computer vision algorithm described in a recent paper, and extend the results by running them on additional data, and/or experimenting with different parameter settings.
- Take the description of a computer vision algorithm from a recent paper, implement it yourself, run it, and describe the results.
- Design and carry out a small research project of your own devising that extends the current state of the art in some small way.
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
Most semester projects will require significant computing resources to complete. Training a deep learning algorithm can take many hours, if not days, depending on the size of the dataset being used. Please take this into account as you plan your time -- you do not want to be waiting until the last minute for results to finish running, especially as there is always the risk that coding errors will crash the execution and force you to start over.
Neural network training runs much faster on machines with a CUDA-capable graphics processing unit (GPU). We have a few such machines available in Ford 342, which must be shared between the members of the class. Google Colab is another option, although it imposes limits on storage and computation time which may be cumbersome. If you are having trouble finding a platform to run your project on, please consult with me early. This is not an obstacle that we can solve quickly at the last minute.
Also 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; Python or Matlab are encouraged due to the large number of support packages available in those languages. Python users should consider the NumPy package, which offers some of the same functionality as Matlab and bindings for the OpenCV library, as well as PyTorch for deep learning methods.
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:
- Camera Calibration
- Face Detection
- Shape Comparison
- Texture Comparison
- Handwriting Identification
- Stereo Matching
- Object Classification
- Level Sets/Active Contours
- Segmentation
- Tracking
- Deep Learning Systems
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
You will have two opportunities to present your work to the class. Around the middle of the semester, everyone will present a short "teaser" on their project. This should introduce the topic area and describe the approach to be investigated. It is not expected that any finished work will be presented at this time.
Around the second to last week of class, we will hold final presentations on the semester projects. These will be short presentations describing the actual work you have completed. Focus here 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 mayq have visitors invited to view the final presentations, so please be prepared for the possibility of an external audience.