Course Information
The course is an introduction to 2D and 3D computer vision. Topics include: cameras models, geometry of multiple views; shape reconstruction methods from visual cues: stereo, shading, shadows, contours; low-level image processing methodologies (feature detection and description) and mid-level vision techniques (segmentation and clustering); high-level vision problems: object detection, image classification, scene understanding and target tracking.
The class requires five problem sets, a midterm exam and a final project. The list of last year's projects is on Projects
Textbooks
Most books are available online on library.stanford.edu
Required text books:
- D. A. Forsyth and J. Ponce. Computer Vision: A Modern Approach (2nd Edition). Prentice Hall, 2011.
- R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2003.
link
Recommended text books:
- R. Szeliski. Computer Vision: Algorithms and Applications. Springer, 2011.
link
- D. Hoiem and S. Savarese. Representations and Techniques for 3D Object Recognition and Scene Interpretation, Synthesis lecture on Artificial Intelligence and Machine Learning. Morgan Claypool Publishers, 2011.
link
- Gary Bradski, Adrian Kaehler. Learning OpenCV, O'Reilly Media, 2008.
link
Prerequisites
This course requires knowledge of linear algebra, probability, statistics, machine learning and computer vision, as well as decent programming skills. Though not an absolute requirement, it is encouraged and preferred that you have at least taken either CS221 or CS229 or CS131A or have equivalent knowledge.
Grading Policy
- Problem Sets : 42%
- Problem Set 0: 2%
- Problem Set 1: 10%
- Problem Set 2: 10%
- Problem Set 3: 10%
- Problem Set 4: 10%
- Midterm Exam: 15%
- Course Project: 38%
- Midterm Progress Report : 5%
- Final Report : 25%
- Presentation : 8%
- Class participation: 5%
Problems will be released through the schedule page and must be submitted through scoryst
For problem sets, if 1 day late, 50% off the grade for that homework. Zero credits if more than one day.
Class participation are waived for SCPD students. For the project presentation, SCPD students can send videos instead.
Project late policy: 25% if one day late; 50% if two days late; zero credit if more than two days
Two "48-hours late submission" bonuses are available; that is, you can use a bonus to submit your HW late after at most 48 hours. After you use all your bonuses, you must adhere to the standard late submission policy. No exceptions will be made.
No "late submission bonus" is allowed when submitting your mid-term exam and project.
Midterm Exam
- Take home, 48 hours
- 0% grade after deadline
- The exam is open book and open notes. No collaboration is permitted either in person or online.
- The exam must be submitted to Scoryst by 12.30pm Friday 27th February. The deadline is strict - make sure something is submitted by this time. You may submit as many times as you like so submit early and revise your submission regularly. Scanning issues will not be accepted as an excuse for failing to submit.
- If you are having problems with Scoryst please email us your submission before the deadline.
Class Project
These are the guidelines for a successful class project.
- Implementing an existing paper is a valid project for an individual, but ideally you'd find a new application for the method or test it with new experiments. Groups of two or more need greater contributions (either implementing more papers or demonstrating more novelty).
- It is ok to use libraries (OpenCV, Matlab CV toolbox etc), but you must write a significant amount of code yourself.
- Some people have asked us about doing projects with commercially sensitive data. The TAs will not sign non-disclose agreements, and all projects will be presented to the class at the end of the quarter. SCPD students who cannot attend the presentation session need to prepare a short video presentation which will be graded instead. You need to choose a project that will allow you to meet these requirements. We will not publish your final report or video if you ask us not to.
Please address the following points in your proposal:
- If you are working in a team, what parts of the project will each member be responsible for? The scope of your project should reflect the number of people in your team.
- If you are combining the project with another class, what parts of your contribution are relevant to this class, and what parts are relevant to the other class?
- Please specify in your proposal what parts of your implementation will use libraries and what parts will be your own novel code.
- The project proposals are not graded. We will use them to ensure you are on the right track with your project, and to provide you with advice on how to proceed. Please submit your proposal on time so we can give you prompt feedback.
Student must complete and submit/present the followings:
- Project Proposal
- Project Progress Report
- Project Final Report
- Project Presentation
Project Proposal Guidelines
General Guidelines:
- Maximum 4 pages.
- Submit the report as a PDF document through Scoryst.
Include the following:
- Title and authors
- Sec 1. intro: problem you want to solve and why
- Sec 2. technical part: how do you propose to solve it?
- Sec 3. milestones (dates and sub-goals)
- References
Please submit your proposal as a PDF document.
Project Progress (mid-term) Report Format
General Guidelines:
- Maximum 4 pages.
- Submit the report as a PDF document through Scoryst.
Include the following:
- Title and authors
- Sec 1. intro: problem you want to solve and why
- Sec 2. technical part: how do you propose to solve it?
- Sec 3. milestones achieved so far
- Sec 4. remaining milestones (dates and sub-goals)
- References
Project Presentation Guidelines
General Guidelines:
- Your presentation should last 4 minutes.
- Approximately 3 minutes for the talk, 1 minutes for Q & A.
- The time limit will be strictly enforced.
Include the following:
- Problem Motivation/Description.
- Technical Approach.
- Results.
Final Project Report Guidelines
General Guidelines:
- Maximum 10 pages.
- Submit the report as a PDF document through Scoryst.
- Midnight hard deadline.
- Please upload your report to Scoryst and email your code to cs231a.staff+code@gmail.com.
Include the following:
- Title and authors
- Abstract: A short summary of the project with main results.
- 6 Sections:
- Sec 1: Introduction: introduce the problem you want to solve, explain why it is important to solve it
- Sec 2.1: Review of previous work (i.e. previous methods that have explored a similar problem).
- Sec 2.2: Describe why your method is better than previous work. Summarize the key main contributions of your work.
- Sec 3.1: Summary of the technical solution.
- Sec 3.2: Technical part — details of the technical solution. You may want to decompose this section into several subsections. Add figures to help your explanation. Explain the details of your implementation on the mobile platform and relevant architecture (for instance, how you split the work between client and server) .
- Sec 4: Experiments — present your experimental results of the method you have implemented with plots, graphs, images and visualizations. Show numerical/quantitative and qualitative results. Show a performance analysis on the mobile device in term of efficiency, speed, memory and computational demands.
- Sec 5: Conclusions — what's the take home message?
- Sec 6: References.