Course Project


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:

To inspire ideas, you might look at recent deep learning publications from top-tier vision conferences, as well as other resources below.

Don't be afraid to think outside of the box. Some successful examples of using computer vision to tackle different types of problems can be found below:

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:

Ideas From the CAs

The CAs have compiled a list of project ideas here. We recommend that you look them over. See something interesting? The CA responsible for that idea would be delighted to hear about it and will offer project guidance for the quarter (though you're welcome to reach out to any CA for help).

Important Dates

Project proposal: due Feb 5.
Midterm progress report: due March 1.
The project presentations session will be held on Mar 15
Final course project: due Mar 19 (11:59pm).

Grading Policy

The Course Project contributes to 38% of your final grade. Specifically, it is broken down into a few main parts:

Project Proposal

The project proposal should be up to 2 pages and should contain the following:

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 provided template. The following is a suggested structure for your report:

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 provided 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:
  1. A PDF file of your final report
  2. 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:
Supplementary Material is not counted toward your 6-8 page limit.
Examples of things to put in your supplementary material: Examples of things to not put in your supplementary material:

Project Presentations

We will hold a session in which you will present the results of your projects to your classmates and instructors. They will be held at follows:


The final project presentation will be held on March 15th at the regular class time. There will be four parallel Zoom sessions, and you should attend the one corresponding to your assigned project mentor (Links to an external site.). The link to each Zoom session will be on the class calendar, as with the links to lectures and CA sessions. During these sessions, each team will be given 5 minutes to present their project and one minute for Q&A. You should attend the whole session and watch other teams’ presentations as well as presenting yourself. Each session will be attended by its corresponding CA who will be primarily in charge of grading, and the course Professors will also attend several of the sessions; the sessions will also be recorded for instructors to view later. You may prepare either a set of slides or a poster for presenting. If you have a team with multiple members, you should divide up the presentation amongst yourselves. If you are unable to attend the live Zoom session due to a time zone issue or work commitments, you can send us a recording of your presentation instead.

Presentation Contents

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:


We will be grading for completeness and clarity moreso than the quality of your results. The rubric will be split into the following categories: 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.