Update: Spring Quarter 2017 projects
have been posted!
The Course Project is an opportunity for you to apply what you have learned in class to a problem of your interest. There are two project options you can pick from:
Option 1: Your own project (Encouraged)
Your are encouraged to select a topic and work on your own project. 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 ConvNets to problems related to your particular domain of interest. Pick a real-world problem and apply ConvNets to solve it.
- Models. You can build a new model (algorithm) with ConvNets, 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.
One restriction to note is that this is a Computer Vision class, so your project should involve pixels of visual data in some form somewhere. E.g. a pure NLP project is not a good choice, even if your approach involves ConvNets.
To inspire ideas, you might look at recent deep learning publications from top-tier vision conferences, as well as other resources below.
For applications, this type of projects would involve careful data preparation, an appropriate loss function, details of training and cross-validation and good test set evaluations and model comparisons. Don't be afraid to think outside of the box. Some successful examples can be found below:
ConvNets also run in real time on mobile phones and Raspberry Pi's - feel free to go the embedded way. You may find DeepBeliefSDK
helpful. This particular project might be slightly out of date, but it may help you find more like it.
For models, ConvNets have been successfully used in a variety of computer vision tasks. This type of projects would involve understanding the state-of-the-art vision models, and building new models or improving existing models for a vision task. The list below presents some papers on recent advances of ConvNets in the computer vision community.
- Object recognition: [Krizhevsky et al.], [Russakovsky et al.], [Szegedy et al.], [Simonyan et al.], [He et al.]
- Object detection: [Girshick et al.], [Sermanet et al.], [Erhan et al.]
- Image segmentation: [Long et al.]
- Video classification: [Karpathy et al.], [Simonyan and Zisserman]
- Scene classification: [Zhou et al.]
- Face recognition: [Taigman et al.]
- Depth estimation: [Eigen et al.]
- Image-to-sentence generation: [Karpathy and Fei-Fei], [Donahue et al.], [Vinyals et al.]
- Visualization and optimization: [Szegedy et al.], [Nguyen et al.], [Zeiler and Fergus], [Goodfellow et al.], [Schaul et al.]
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:
Option 2: Tiny ImageNet Challenge
If you are unable to come up with a project idea, you can fall back to working on the Tiny ImageNet Challenge which we will run similar to the ImageNet challenge. The goal of the challenge will be for you to do as well as possible on the Image Classification problem. You will submit your final predictions on a test set to our evaluation server and we will maintain a class leaderboard.
Unless otherwise noted, all project items are due by 11:59 pm Pacific Time.
- Project proposal: due Tuesday, April 25.
- Project milestone: due Tuesday, May 16.
- Poster PDF: due Monday, June 5. No late days.
- Poster session: Tuesday, June 6, 12pm-3pm (more details below).
- Final report: due Monday, June 12. No late days.
Final Project: 40%
• clarity, structure, language, references: 3%
• background literature survey, good understanding of the problem: 3%
• good insights and discussions of methodology, analysis, results, etc.: 4%
• correctness: 4%
• depth: 4%
• innovation: 4%
evaluation and results: 10%
• sound evaluation metric: 3%
• thoroughness in analysis and experimentation: 3%
• results and performance: 4%
poster: 3% (+2% bonus for best few posters)
The project proposal should be one paragraph (200-400 words). If you work on your own project, your proposal should contain:
What is the problem that you will be investigating? Why is it interesting?
What data will you use? If you are collecting new datasets, how do you plan to collect them?
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 reading will you examine to provide context and background?
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)?
If you choose to work on Tiny ImageNet Challenge, emphasize the last three bullet points on the list above.
Submission: One member on your team should submit your project proposal using the form provided on Piazza.
If you previously submitted your proposal via email, please resubmit using the form.
Your project milestone report should be between 2 - 3 pages using the provided 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 upto the milestone
Submission: Please upload a PDF file to the assignments tab on Canvas. Please have one person on your team submit your milestone.
If you submit your milestone late, all team members will be charged late days.
We will hold a poster session in which you will present the results of your projects is form of a poster.
- Date: Tuesday, June 6, 2017
- Time: 12:00 pm to 3:00 pm
- Location: Bing Concert Hall
- Who: All on-campus students are required to attend. Local SCPD students are highly recommended to attend. Stanford students, faculty, and guests from industry are welcome!
- Food: Food and light refreshments will be provided.
Students: We will provide foam poster boards and easels. Please print your poster on a 20 inch by 30 inch poster in either landscape or portrait format. Posters larger than 24 inch by 36 inches may not fit on our poster boards. All students are required to submit a PDF of their poster on Canvas before the event. See Piazza for details. Caution: Do not wait until Tuesday (or even Monday) to print your poster. Many on-campus printers (e.g., EE, BioX) run out of paper or toner during the last week of classes. Many other courses also have poster presentations or academic conferences take place during this week and there is no guarantee they will be able to rush-print your order.
Frequently Asked Questions
- I can only attend part of the poster session. Is that okay? Yes, but please have another team member present at your poster at all times. We will be taking attendance and TAs/graders/instructors may visit your poster at any time. If you are a solo team and have to leave early or arrive late, please let your project TA know in advance.
- At the event, can I leave my poster and walk around? Yes. We encourage you to visit other posters and learn about the cutting-edge projects other students are working on. However, we do ask that you periodically return to your poster in case a TA or instructor needs to grade your poster.
- I am a local SCPD student, is attendance required? No. However, the poster session is an immensely valuable opportunity to network with on-campus students, the course staff, and various industry representatives (e.g., investors and recruiters). We strongly recommend you attend if possible. Many SCPD students cite the poster session as their favorite part of the class.
- I am a non-local SCPD student and cannot attend. Do I have to make a poster? Yes. You are required to submit your poster as a PDF to Canvas with the same deadline as on-campus students. We may require you to record a video of yourself presenting or conduct a presentation over video/conference call at a different time; check Piazza for details closer to the event.
- Can I print my poster on 8.5"x11" pieces of paper and tape it together? Yes, but we recommend you print a full-sized poster. Not only can you fit more content on a poster, but the visual appeal can help attract visitors and spur additional research discussions about your project.
- Will you reimburse for poster printing costs? Unfortunately no. Several departments at Stanford offer free or discounted poster printing to students. Many local businesses (e.g., Staples, FedEx, etc.) offer same-day printing services at reasonable prices. Lathrop Library offers on-campus poster printing services.
- I'm part of an organization and we'd like to sponsor or help contribute to the event. How can we get involved? Please send an email to the course staff at email@example.com. We have several sponsorship levels available.
Your final write-up is required to be between 6 - 8
pages using the provided template
. Please use this template so we can fairly judge all student projects without worrying about altered font sizes, margins, etc. 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 Canvas
. You will submit one or two files:
- A PDF file of your final report
- (OPTIONAL) zip file (or pdf file) with Supplementary Materials
. 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
- Method: This section details the framework of your project. Be specific, which means you might want to include equations, figures, plots, etc
- Experiments: 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.
We have listed additional guidelines on Piazza to help you structure your report.
Additional Submission Requirements
New for 2017, we have additional metadata requirements.
- Your report PDF should list all authors who have contributed to your work; enough to warrant a co-authorship position. This includes people not enrolled in CS 231N such as faculty/advisors if they sponsored your work with funding or data, significant mentors (e.g., PhD students or postdocs who coded with you, collected data with you, or helped draft your model on a whiteboard). All authors should be listed directly underneath the title on your PDF. The first author listed should have contributed the most work to the project. Include a footnote on the first page indicating which authors are not enrolled in CS 231N. All co-authors should have their institutional/organizational affiliation specified below the title.
- If you have non-231N contributors, please include the following in the comments box on Canvas:
- Specify the involvement of non-CS 231N contributors (discussion, writing code, writing paper, etc). For an example, please see the author contributions for AlphaGo (Nature, 2016).
- Specify whether the project has been submitted to a peer-reviewed conference or journal. Include the full name and acronym of the conference (if applicable). For example: Neural Information Processing Systems (NIPS). This only applies if you have already submitted your paper/manuscript and it is under review as of the report deadline.
- Any code that was used as a base for projects must be referenced and cited in the body of the paper. This includes CS 231N assignment code, finetuning example code, open-source, or Github implementations. You can use a footnote or full reference/bibliography entry.
- If you are using this project for multiple classes, submit the other class PDF to CS 231N Canvas as well. Remember, it is an honor code violation to use the same final report PDF for multiple classes.
In summary, include all contributing authors in your PDF; include detailed non-231N co-author information in the Canvas comments box; tell us if you submitted to a conference, cite any code you used, and submit your dual-project report (e.g., CS 231A, CS 234).
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:
- The entire PyTorch/TensorFlow Github source code.
- Any code that is larger than 10 MB.
- Model checkpoints.
- A computer virus.
Example Project Reports
Your project reports should structure like a computer vision conference paper (CVPR, ECCV, ICCV, etc.). You can find publications from Stanford Vision Lab from here
. In addition, you may also take a look at some previous projects from other Stanford CS classes, such as CS221
Projects from previous years
You can see project reports from previous years here:
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 2-people projects have a look at project reports from previous years.
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 CS231n.