Overview
The Course Project is an opportunity for you to apply what you have learned in class to a problem of your interest.
Potential projects usually fall into these two tracks:
- Applications. If you're coming to the class with a specific background and interests (e.g. biology, engineering, physics), we'd love to see you apply computer vision to problems related to your particular domain of interest. Pick a real-world problem and apply the techniques covered in the class (or even beyond the class) to solve it!
- Models. You can build a new model (algorithm) for computer vision, or a new variant of existing models, and apply it to tackle vision tasks. This track might be more challenging, and sometimes leads to a piece of publishable work. Talk to the course staff if you would like to pursue this route for more ideas!
To help with coming up with ideas for your project, take a look at the projects from 2021 or 2022.
You might look at recent deep learning publications from top-tier vision conferences, as well as other resources below.
- Awesome Deep Vision
- CVPR: IEEE Conference on Computer Vision and Pattern Recognition
- ICCV: International Conference on Computer Vision
- ECCV: European Conference on Computer Vision
- NIPS: Neural Information Processing Systems
- ICLR: International Conference on Learning Representations
- Kaggle challenges: An online machine learning competition website.
You are welcome to come to our office hours to brainstorm and suggest your project ideas. We also provide a list of popular computer vision datasets:
Important Dates
Project proposal: due April 25
Midterm progress report: due May 17
Final course project: due June 10
Final project poster presentations: June 12
Grading Policy
The Course Project contributes to 46% of your final grade. Specifically, it is broken down into a few main parts:
- Project Proposal: 4%
- Midterm Project Report: 10%
- Final Project Report: 22%
- Final Project Presentation: 10%
Project Proposal
The project proposal should be up to 2 pages and should contain the following:
-
What is the problem that you will be investigating? Why is it interesting?
-
What reading will you examine to provide context and background? Additionally, has is some prior work related to this problem? Please provide at least 2 specific citations.
-
What method or algorithm are you proposing? If there are existing implementations, will you use them and how? How do you plan to improve or modify such implementations?
-
What data will you use, if any? If you are collecting new datasets, how do you plan to collect them?
-
How will you evaluate your results? Qualitatively, what kind of results do you expect (e.g. plots or figures)? Quantitatively, what kind of analysis will you use to evaluate and/or compare your results (e.g. what performance metrics or statistical tests)?
-
By what dates will you complete certain parts of your project? List specific goals for the midterm progress report.
We highly recommend submitting a project proposal and talking to the course staff about your proposed project throughout the quarter. Generally, we find that students who do this end up with very strong, and even publishable, final projects.
If your proposed project is joint with another class' project (with the consent of the other class' instructor), make this clear in the proposal.
Midterm Progress Report
Your midterm progress report should be at most 4 pages using the
this template. The following is a suggested structure for your report:
- Title, Author(s)
- Introduction: this section introduces your problem, and the overall plan for approaching your problem
- Problem statement: Describe your problem precisely specifying the dataset to be used, expected results and evaluation
- Technical Approach: Describe the methods you intend to apply to solve the given problem
-
Intermediate/Preliminary Results: State and evaluate your results up to the current date
Submission: Please upload a PDF file to the assignments tab on Gradescope. If you are working in a team, please use the team function on Gradescope. The late days are counted by the timestamp of the last submission in the team.
Final Submission
Your final write-up should be between
6 - 8 pages using the
this template. After the class, we will post all the final reports online so that you can read about each others' work. If you do not want your writeup to be posted online, then please let us know at least a week in advance of the final writeup submission deadline.
Submit your final submission through
Gradescope. You will submit the following:
- A PDF file of your final report
- A link to your Git repository. Please put this somewhere in your final report (and add a member of the course staff if it is a private repository).
Report. The following is a suggested structure for the report:
- Title, Author(s)
- Abstract: It should not be more than 300 words
- Introduction: this section introduces your problem, and the overall plan for approaching your problem
- Background/Related Work: This section discusses relevant literature for your project
- Approach: This section details the framework of your project. Be specific, which means you might want to include equations, figures, plots, etc
- Experiments/Analysis: This section begins with what kind of experiments you're doing, what kind of dataset(s) you're using, and what is the way you measure or evaluate your results. It then shows in details the results of your experiments. By details, we mean both quantitative evaluations (show numbers, figures, tables, etc) as well as qualitative results (show images, example results, etc).
- Conclusion: What have you learned? Suggest future ideas.
- References: This is absolutely necessary.
Supplementary Material is not counted toward your 6-8 page limit.
Examples of things to put in your supplementary material:
- Source code (if your project proposed an algorithm, or code that is relevant and important for your project.).
- Cool videos, interactive visualizations, demos, etc.
Examples of things to not put in your supplementary material:
- All of your source code. Instead give a link to a Git repository
- Various ordinary data preprocessing scripts.
- Any code that is larger than 1MB.
- Model checkpoints.
- A computer virus.
Project Presentations
Presentation Contents
Your presentation will be done with a poster. The contents of the presentation should be similar to the contents of the final project report, with more emphasis on your approach and results. A rough suggested allocation of time is the following:
- Introduction: Introduce the motivation and your problem, and then relevant prior work and approaches for this problem (1 minute)
- Approach: Provide an overview of your approach and highlight the key technical aspects you worked on. If you have not fully finished implementing your approach, highlight what parts are done and which are still planned for the final report. (2 minutes)
- Experiments and evaluation: Explain the experimental setup and summarize the quantitative results (numbers, figures, tables, etc) and qualitative results (images, example results, etc). If the results are not as expected, explain what the challenges are and how you plan to improve the results in the final report. (2 minutes)
Grading
We will be grading for completeness and clarity moreso than the quality of your results. The rubric will be split into the following categories:
- 20% for problem statement, motivation, and background
- 30% for technical approach
- 30% for sufficient and informative quantitative and qualitative results
- 10% for visual style
- 10% for addressing questions raised during Q&A
Grades for each category will be assigned on a standard scale out of 5.
Example Project Reports
Your project reports should structure like a computer vision conference paper (CVPR, ECCV, ICCV, etc.). You can find publications from Stanford's Computational Vision & Geometry Lab (CVGL)
here and from the Stanford Vision Lab from
here. In addition, you may also take a look at some previous projects from other Stanford CS classes, such as
CS331B,
CS231N,
CS221,
CS229 and
CS224W.
Projects from previous years
You can see project reports from previous years here:
Collaboration Policy
You can work in teams of up to
3 people. We do expect that projects done with 3 people have more impressive writeup and results than projects done with 2 people. To get a sense for the scope and expectations for the projects have a look at project reports from previous years.
Honor Code
You may consult any papers, books, online references, or publicly available implementations for ideas and code that you may want to incorporate into your strategy or algorithm, so long as you clearly cite your sources in your code and your writeup. However, under no circumstances may you look at another group’s code or incorporate their code into your project.
If you are doing a similar project for another class, you must make this clear and write down the exact portion of the project that is being counted for CS231A.