EECS 504 is a graduate-level computer vision
class. Class topics include low-level vision,
object recognition, motion, 3D reconstruction,
and basic signal processing and deep
learning. We'll also touch on very recent
advances, including those in image synthesis,
unsupervised learning, and multimodal
perception.
Prerequisites: Please note that this is an advanced, graduate-level computer vision course. There are no exams, but there will be a fairly heavy workload, with programming projects due almost every week.
- This course puts a strong emphasis on mathematical methods. We'll cover a wide range of techniques in a short amount of time: e.g., projective geometry, backpropagation, graphical models, signal processing, etc. We'll assume that you have strong linear algebra, multivariable calculus, and probability skills. Basic knowledge of machine learning is encouraged, but not required.
- All programming will be completed in Python, using numerical libraries such as numpy, scipy, and PyTorch. We'll assume that you have extensive programming experience.
Q&A: This course has a Piazza forum, where you can ask public questions. If you cannot make your post public (e.g., due to revealing problem set solutions), please mark your post private, or come to office hours. Please note, however, that the course staff cannot provide help debugging code, and there is no guarantee that they'll be able to answer last-minute homework questions before the deadline. We also appreciate it when you respond to questions from other students!
Homework: There will be homework assignments approximately every week. All programming assignments are to be completed in Python, using the starter code that we provide. Assignments will always be due at midnight (11:59pm) on the due date. The assignments will all be worth approximately equal amounts. Written problems will usually be submitted to Gradescope. You may be asked to annotate your pdf (e.g. by selecting your solution to each problem).
Final project: In lieu of a final exam, we'll have final project. This project will be completed in small groups during the last weeks of the class. The direction for this project is open-ended: you can either choose from a list of project ideas that we distribute, or you can propose a topic of your own. A short project proposal will be due approximately halfway through the course. During the final exam period, you'll turn in a final report and give a short presentation. You may use an ongoing research work for your final project, as long it meets the requirements.
Grading: Class grades will be weighted:
- Homework: 70%
- Final project: 30%
Textbook: There is no required textbook. Instead, we'll post online readings for each lecture. Optional reference textbooks:
- Szeliski. Computer Vision: Algorithms and Applications. (available for free online)
- Goodfellow, Bengio, Courville. Deep Learning. (available for free online)
- Forsyth and Ponce. Computer Vision: A Modern Approach.
- Hartley and Zisserman. Multiple View Geometry in Computer Vision.
Acknowledgements: This course draws heavily from MIT's 6.869: Advances in Computer Vision by Antonio Torralba, William Freeman, and Phillip Isola. It also includes lecture slides from other researchers, including Svetlana Lazebnik, Alexei Efros, and Noah Snavely (please see acknowledgments in the lecture slides).
Late policy: You'll have 6 late days to use over the course of the semester. Each time you use one, you may submit a homework assignment one day late without penalty. You do not need to notify us when you use a late day; we'll deduct it automatically. If you run out of late days and still submit late, your assignment will be penalized at a rate of 30% per day. If you edit your assignment after the deadline, this will count as a late submission, and we'll use the revision time as the date of submission (after a short grace period of a few minutes). We will not provide additional late time, except under exceptional circumstances, and for these we'll require documentation (e.g., a doctor's note). Please note that the late days are provided to help you deal with minor setbacks, such as routine illness or injury, paper deadlines, interviews, and computer problems; these do not generally qualify for an additional extension.
Regrade requests: If you think there was a grading error, you'll have one week to submit a regrade request, using Gradescope. This will be a strict deadline, even for significant errors such as missing grades.
Academic integrity: While you are (highly!) encouraged to discuss homework assignments with other students, your programming work must be completed individually. You must also write up your solution on your own. You may not search for solutions online, or to use existing implementations of the algorithms in the assignments. Please see the Michigan engineering honor code for more information.
Support: The counseling and psychological services center (CAPS) provides support for a variety of issues.