EECS 442: Computer Vision (Winter 2024)
Overview
- Instructor: Jeong Joon Park
-
GSIs:
- Alex Janosi
- Anurekha Ravikumar
- Farzad Siraj
- Jinfan Zhou
- Shrikant Arvavasu
-
IA:
- Yuhang Ning (dlning)
- Lecture: Monday/Wednesday 10:30 AM - 12:00 Noon, STAMPS
-
Discussions:
- Monday 12:30-1:30PM, 2166 DOW - Alex
- Monday 3:30-4:30PM, 1005 DOW - Anurekha
- Wendesday 3:30-4:30PM, 3150 DOW - Farzad
- Wednesday 4:30-5:30PM, 3150 DOW - Yuhang Zoom Link
- Wednesday 5:30-6:30PM, 107 GFL - Jinfan
- Thursday 3:30-4:30PM, 3150 DOW - Shrikant
- Piazza Signup
- Lecture Recordings (It could take a couple of days to be processed and uploaded)
- Course Calendar
- Virtual Office Hours
- Course email: eecs442-wn24@umich.edu
- Note on Waitlist: We DO NOT reorder waitlist. Please talk to the undergraduate advising office regarding your course enrollment.
Homeworks
- Homework 1: Numbers and Images
- Homework 2: Convolution and Feature Detection
- Homework 3: Fitting Models and Image Warping
- Homework 4: Machine Learning
- Homework 5: Generative Models
- Homework 6: 3D Vision
Schedule
Tentative Schedule, details are subject to change. Refer to Textbooks for textbook acronyms in readings.
Date | Topic | Material |
---|---|---|
Wednesday Jan 10 |
Introduction + Cameras 1 Overview, Logistics, Pinhole Model, Homogeneous Coordinates |
Slides Reading: S2.1, H&Z 2, 6 |
Monday Jan 15 |
No Class Martin Luther King Day |
|
Wednesday Jan 17 |
Cameras 2 Intrinsics & Extrinsic Matrices, Lenses Homework 1 Release |
Slides Discussion Slides Reading: S2.1, H&Z 2, 6 |
Monday Jan 22 |
Math Recap Floating point numbers, Linear Algebra, Calculus |
Slides Reading: Kolter |
Wednesday Jan 24 |
Light & Shading Human Vision, Color Vision, Reflection |
Slides |
Monday Jan 29 |
Filtering Linear Filters, Blurring, Separable Filters, Gradients |
Slides Discussion Slides Reading: S2.2, S2.3 |
Wednesday Jan 31 |
Detectors & Discriptors 1 Edge Detection, Gaussian Derivatives, Harris Corners Homework 1 Due Homework 2 Release |
Slides |
Monday Feb 5 |
Detectors & Discriptors Scale-Space, Laplacian Blob Detection, SIFT |
Slides Discussion Slides |
Wednesday Feb 7 |
Transforms 1 Linear Regression, Total Least Squares, RANSAC, Hough Transform |
Slides Reading: S2.1, S6 |
Monday Feb 12 |
Transforms 2 Affine and Perspective Transforms, Fitting Transformations |
Slides Reading: S2.1, S6 |
Wednesday Feb 14 |
Machine Learning Supervised Learning, Linear Regression, Regularization Homework 2 Due Homework 3 Release |
Slides Reading: ESL 3.1, 3.2(skim) |
Monday Feb 19 |
Optimization SGD, SGD+Momentum |
Slides Discussion Slides HW3 Help Sheet |
Wednesday Feb 21 |
Neural Networks Backpropagation, Fully Connected Neural Networks |
Slides |
Monday Feb 26 |
No Class Spring Break |
|
Wednesday Feb 28 |
No Class Spring Break |
|
Monday Mar 4 |
Convolutional Networks 1 Convolution, Pooling |
Slides Discussion Slides |
Wednesday Mar 6 |
Convolutional Networks 2 CNN Architectures, Training Methods & Techniques Homework 3 Due Homework 4 Release |
Slides |
Monday Mar 11 |
Segmentation Semantic/Instance Segmentation |
Slides Discussion Slides |
Wednesday Mar 13 |
Detection & Other Topics | Slides |
Monday Mar 18 |
Image Generative Models 1 Generative models, GANs, Self-supervised learning |
Slides |
Wednesday Mar 20 |
Image Generative Models 2 Score-based Models, Diffusion Models Homework 4 Due Homework 5 Release |
Slides |
Monday Mar 25 |
Midterm | Discussion Slides |
Wednesday Mar 27 |
Camera Calibration Intro to 3D, Camera Calibration Project Proposal Due |
Slides Reading: S6.3 |
Monday April 1 |
Epipolar Geometry Epipolar Geometry, The Fundamental & Essential Matrices |
Slides Reading: S11 |
Wednesday April 3 |
Stereo Two-view Stereo Homework 5 Due Homework 6 Release |
Slides Discussion Slides |
Monday April 8 |
Structure from Motion |
Slides Reading: S7 |
Wednesday April 10 |
Neural Fields 1 3D Representations, Neural 3D reconstruction |
Slides |
Monday April 15 |
Neural Fields 2 | Slides |
Wednesday April 17 |
Special Topics (Guest Lecture) Homework 6 Due |
Slides |
Monday April 22 |
Special Topics Transformers, Ethics |
Slides |
Saturday April 29 |
Project Report Due | Slides |
Syllabus
Prerequisites
Concretely, we will assume that you are familiar with the following topics and will not review them in class:
- Programming - Algorithms and Data Structures at the level of EECS 281.
- Python - All course assignments will involve programming in Python.
It would be helpful for you to have a background in these topics. We will provide refreshers on these topics, but we will not go through a comprehensive treatment:
- Array Manipulation - Homework assignments will extensively involve manipulating multidimensional arrays with NumPy and PyTorch. Some prior exposure will be useful, but if you’ve never used them before, then the first homework assignment will help you get up to speed.
- Linear Algebra - In addition to basic matrix and vector operations, you will need to know about the cross product, eigenvectors, and singular value decomposition.
- Calculus - You should be comfortable with the chain rule, and taking partial derivatives of vector-valued functions.
Much of computer vision is applying linear algebra to real-world data. If you are unfamiliar with linear algebra or calculus, past experience suggests that you are likely to struggle with the course. If you are rusty, we will provide math refreshers on the necessary topics, however, they are not meant as a first introduction.
Textbooks
There is no required textbook. Particularly thorny homeworks will often come with lecture notes to help. The following optional books may be useful, and we will provide suggested reading from these books to accompany some lectures:
- Computer Vision: Algorithms and Applications by Richard Szeliski: Available for free online here. (S)
- Computer vision: A Modern Approach (Second Edition), by David Forsyth and Jean Ponce.
- Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani, and Jerome Friedman. Available for free online here. (ESL)
- Multiple View Geometry in Computer Vision (Second Edition), by Richard Hartley and Andrew Zisserman. Available for free online through the UM Library (login required). (H&Z)
- Linear Algebra review and reference, by Zico Kolter. Available for free online here. (Kotler)
Grading
Your grade will be based on:
- Homework (60%): There will be six homeworks over the course of the semester. Each is worth 10%.
- Midterm (20%): There will be a midterm in-class.
- Final Project (20%): There will be a final project, in which you work in groups of 3-4 students to produce a substantial course project over the second half of the semester. This will consist of a proposal (worth 2%), and final report and video (worth 18%).
Project Guidelines
See here for details.
Contact Hours
- Lectures: There are two sections. The lectures will be recorded and available on zoom. In person lecture attendance is optional.
- Discussions: There are six discussion sections. You are free to attend whichever you would like.
- Office Hours: Office hours are your time to ask questions one-on-one with course staff and get clarification on concepts from the course. We encourage you to go to GSI office hours for implementation questions about the homework and faculty office hours for conceptual questions.
- Piazza: The primary way to communicate with the course staff is through Piazza. The link is on canvas. We will use Piazza to make announcements about the course, such as homework releases or course project details. If you have questions about course concepts, need help with the homework, or have questions about course logistics, please post on Piazza instead of emailing course staff directly. Since Piazza is a shared discussion forum, asking and answering questions there is encouraged. On the other hand, please do not post homework solutions on Piazza. If you have questions about a particular piece of code, please make a private post.
- Email: If you need to discuss a sensitive matter that you would prefer not to be shared with the entire course staff, then please email the instructor or your section’s GSI/IA directly.
Course Policies
Formatting and Submission
Submissions that do not follow these rules (and any additional ones specified in the homeworks) will get a 0.
- No handwriting - LaTeX is not required, but encouraged. Just put some effort into generating a readable PDF.
- Mark answers on Gradescope - With a few hundred students, graders will not have time to search for answers.
Collaboration and External Sources
- Automated plagiarism detection: The vast majority of students are honorable. To ensure that honorable behavior is the incentivized behavior, we will run MOSS on the submitted homework.
- Collaboration with students: You should never know the specific implementation details of anyone else’s homework or see their code. Working in teams and giving general advice about outputs or strategies (e.g., ‘‘if the image is really dark when you merge them together, you probably have screwed up the image mask with the number of images’’) is great. However, pair-programming or sitting next to someone else and debugging their code is not allowed.
- Consulting outside material: You can and should turn to other documentation (suggested textbooks, other professors’ lecture notes or slides, documentation from libraries). You may not read a set of code (pseudocode is fine). If you come across code in your search, close the window and don’t worry about it.
- Things you should never worry about: Reading the documentation for publicly available libraries; clarifying ambiguities and mistakes in assignments, slides, handouts, textbooks, or documentation; discussion the general material; helping with things like cryptic numpy errors that are not related to class but part of the cost of doing business with a library; discussing the assignments to better understand what’s expected and general solution strategies; discussing the starter code; discussing general strategies for writing and debugging code.
- Generative AI: Tools like ChatGPT are strongly discouraged. We know we can’t stop you, however, using them will lead to you getting very little hands-on coding ability from this course and you will struggle on the midterm. The libraries used in this course are industry-standard and it is very helpful to be comfortable with them.
Late Submissions
Our policy is quite generous. Exceptions will be made in only truly exceptional circumstances by the professor.
- Late Days - 6 total late days across all homeworks. These will be applied automatically, no need to contact us. Homeworks are due by 11:59:59 on the due date. Thus, the late day would start at 12:00:00.
- Penalty - If you have 0 late days available, any subsequent late submissions will receive a 10% max score reduction per day. For example, if you submit 3 days late, you can receive at most 70% credit.
- Late Deadline - Late submissions will be accepted until a week after the deadline.
- Project - No late submissions. Late days and penalties will not be applied. This will be due as late as we can take them while still delivering grades on time.
Regrades
- Method - Please submit regrade requests through Gradescope.
- Deadline - Submit regrade requests within 1 week of grades being released.
- Minor Regrades - Regrade requests that concern minor judgement calls that change the grade by <= 1 point for a problem or by <= 3 points for the whole homework will not be considered. If you believe this may affect your grade at the end of the semester, contact the professor.