Schedule



Lecture Date Topic Materials Assignments
Lec. 1 Mon, Aug. 26 Introduction
About the course
Neighborhood filtering
Blurring
Gradient filters
ps1 out (filtering)
Lec. 2 Wed, Aug. 28 Filtering
Convolution and cross-correlation
Edge detection
Nonlinear filtering
Sec. 1 Fri, Aug. 30 Linear algebra and filtering
Mon, Sep 2 No class - Labor Day
Lec. 3 Wed, Sep. 4 Image pyramids
More filtering
Gaussian pyramid
Laplacian pyramid
Image statistics (optional)
Sec. 2 Fri, Sep. 6 Fourier Transform
Lec. 4 Mon, Sep. 9 Frequency
Image bases
Fourier transform
Lec. 5 Wed, Sep. 11 Machine learning
Nearest neighbor
Linear regression
Overfitting
ps1 due
ps2 out (frequency)
Sec. 3 Fri, Sep. 13 Pyramids and Fourier Transform
Lec. 6 Mon, Sep. 16 Linear classifiers
Logistic regression
Stochastic gradient descent
    Lec. 7 Wed, Sep. 18 Neural networks
    Nonlinearities
    Network structure
    Regularization
    ps2 due
    ps3 out (intro to ML)
    Sec. 4 Fri, Sep. 20 Machine learning tutorial
    Lec. 8 Mon, Sep. 23 Optimization
    Computation graphs
    Backpropagation
    Momentum
    Lec. 9 Wed, Sep. 25 Convolutional networks
    Convolution layers
    Pooling
    Normalization
    • Szeliski 5.4
    ps3 due
    ps4 out (backprop)
    Sec. 5 Fri, Sep. 27 Backpropagation
    Lec. 10 Mon, Sep. 30 Image Synthesis with GANs
    Texture synthesis
    GANs
    Conditional GANs
    Lec. 11 Wed, Oct. 2 Image Synthesis with Diffusion
    VQ-VAEs
    Diffusion
      ps4 due
      ps5 out (scene recognition)
      Sec. 6 Fri, Oct. 4 PyTorch tutorial
      Lec. 12 Mon, Oct. 7 Recurrent networks
      3D convolutions
      Recurrent networks
      LSTMs
        Lec. 13 Wed, Oct. 9 Transformers
          ps5 due
          ps6 out (image synthesis)
          proposal info out
          Sec. 7 Fri, Oct. 11 Office hours + GANs
            Mon, Oct 14 No class - Fall Break
            Lec. 14 Wed, Oct. 16 Representation learning and language
            Autoencoders
            Self-supervision
            Contrastive learning
            Vision and language
            Sec. 8 Fri, Oct. 18 Project office hours
              Lec. 15 Mon, Oct. 21 Object detection
              Sliding window
              Region-based CNNs
              Instance segmentation
              Lec. 16 Wed, Oct. 23 Image formation
              Camera models
              Projection
              Plenoptic function
                ps6 due
                ps7 out (representation learning)
                Sec. 9 Fri, Oct. 25 Representation learning + project office hours
                Lec. 17 Mon, Oct. 28 Multi-view geometry
                Epipolar geometry
                Stereo vision
                Homographies
                  Lec. 18 Wed, Oct. 30 Fitting geometric models
                  Finding correspondences
                  Fitting a homography
                  RANSAC
                  Triangulation
                    ps7 due
                    ps8 out (panorama stitching)
                    Sec. 10 Fri, Nov. 1 Project office hours
                      Lec. 19 Mon, Nov. 4 Structure from motion
                      Structure from motion
                      Multi-view stereo
                      Stereo algorithms
                        Lec. 20 Wed, Nov. 6 Motion estimation
                        Optical flow
                        Aperture problem
                        Keypoints
                          ps8 due
                          Sec. 11 Fri, Nov. 8 Geometry + Project office hours
                          Lec. 21 Mon, Nov. 11 Take home exam
                            Lec. 22 Wed, Nov. 13 No class
                            Sec. 11 Fri, Nov. 15 Project office hours
                              Lec. 23 Mon, Nov. 18 Light, shading, and color
                              Shape from shading
                              Intrinsic images
                              Color perception
                                Wed, Nov. 20 No class - Thanksgiving
                                Fri, Nov. 22 No class - Thanksgiving
                                Mon, Nov. 25 Embodied vision
                                Learning from demonstrations
                                Reinforcement learning
                                  Lec. 24 Wed, Nov 27 Image forensics
                                  Fake images
                                  Anomaly detection
                                  Supervised detection
                                    Sec. 12 Fri, Nov 29
                                      Lec. 25 Mon, Dec. 2 Bias
                                      Datasets
                                      Algorithmic fairness
                                        Lec. 26 Wed, Dec. 4 Sound and touch
                                        Neural nets for other signals
                                        Multimodal self-supervision
                                          Lec. 27 Fri, Dec. 6 Final presentations
                                            Lec. 28 Mon, Dec 9 Final presentations


                                              Staff & Office Hours



                                              Office Hours

                                              Day Time Name Location
                                              Monday 4:30pm - 5:30pmAndrew Owens EECS 4231 (we'll walk there from class)
                                              Tuesday 3:15pm - 4:15pm Bowen Song EECS 3312
                                              Wednesday 1:00pm - 2:00pmJiahe Huang EECS 4122
                                              4:30pm - 5:30pmLiyue Shen EECS 4229 (we'll walk there from class)
                                              Thursday 2:00pm - 3:00pm Chao Feng EECS 3312
                                              3:00pm - 4:00pm Ayush Shrivastava EECS 3312
                                              Friday 2:00pm - 3:00pm Daniel Geng EECS 3312

                                              Office hours will be offered in person.


                                              Course information

                                              EECS 442 is an introductory computer vision class. Class topics include low-level vision, object recognition, motion, 3D reconstruction, basic signal processing, and deep learning. We'll also touch on very recent advances, including image synthesis, self-supervised learning, and embodied perception.

                                              Lectures:
                                              Lectures will take place Monday and Wednesday, 3:00 - 4:30pm. Attendance will not be required, but it is highly encouraged. We will give short, in-class quizzes. However, these are not worth much of your total grade (2% total), and you may miss several of them without penalty. There are multiple ways to participate:

                                              • In person in Stamps Auditorium.
                                              • We'll post lecture recordings online here.

                                              Discussion section:
                                              This class has two discussion sections. Please note that these sections are completely optional. They generally focus more directly on skills that are directly required for problem sets (e.g., a PyTorch tutorial and a linear algebra refresher). By comparison, the lectures mostly cover the underlying theory and methods.

                                              Time Place
                                              Fri 11:30am-12:30pm 1571 GGBL
                                              Fri 12:30pm-1:30pm 1571 GGBL
                                              Some weeks, we'll host tutorials during these sections, where GSIs will cover a topic in depth. These tutorials appear in the schedule. Attendance to these tutorials is optional, and recordings will be posted online. Other weeks, the discussion section will function as additional office hours and project discussion.

                                              Prerequisites:

                                              • This course puts a strong emphasis on mathematical methods. We'll cover a wide range of techniques in a short amount of time. Background in linear algebra is required. For a refresher, please see here. This material should mostly look familiar to you.
                                              • This class will require a significant amount of programming. All programming will be completed in Python, using numerical libraries such as numpy, scipy, and PyTorch. In some assignments, we'll give you starter code; in others, we'll ask you to write a large amount of code from scratch.

                                              Google Colab: The problem sets will be completed using Jupyter notebooks, generally using Google Colab. While this service is free, it is important to note that it comes with GPU usage limits. You may only use the GPUs on a given Google account for a certain number of hours per day. These limits are due to the fact that GPUs are very expensive. Since none of the problem sets require training large models, you may never encounter these limits. However, we have provided a few suggestions for avoiding them:

                                              1. Reduce your GPU usage by debugging your code on the CPU. For example, after confirming that you can successfully complete a single training iteration without error on the CPU, you can switch to the GPU. You can then switch back to the CPU if you need to debug further errors.
                                              2. Since many of the machines in the CAEN computer labs have NVIDIA GPUs with 4GB or more of RAM, you can connect to them remotely and train deep learning models. We have provided instructions for using these GPUs here. In our experience, this approach is also less reliable, so we recommend using Colab when possible. Also, since the problem sets are designed for Colab, running them here will require minor modifications, which we’ve described in the tutorial.
                                              3. We note that the limit is per account (e.g., UMich email or Gmail account).
                                              4. Consider purchasing Google Colab Pro ($10/month) during the portion of the class where GPUs are required (PS5 and onward; approximately 2 months). For students who would like to use this (optional) service, but are unable to afford it, we have been provided with a small amount of funding from the CSE DEI office. Please send the course staff a private message over Piazza if you would like to learn more about this option.
                                              5. We will provide access to the (more powerful) GPUs that are available on Great Lakes. These can be useful for creating larger models for the final project.

                                              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 all questions — especially last-minute questions about the homework. We also greadly appreciate it when you respond to questions from other students! If you have an important question that you would prefer to discuss over email, you may email the course staff (eecs442-fa24-staff@umich.edu), or you can contact the instructor by email directly.

                                              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).

                                              Midterm: There will be a take-home midterm exam. It will take place approximately 2/3 of the way through the semester (date TBD). You will have 24 hours to complete it. The exam will not cover all of the course material: we will give you a list of lectures whose material may be on the exam.

                                              Final project: The final 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.

                                              In class quizzes: We will include quiz questions in some (not all) lectures to encourage an interactive lecture. That is, there will be 0~3 quiz questions per lecture. We will use iClicker to administer these quizzes. Please use the "iClicker Registration" link on Canvas sidebar to sign up to use free "iClicker" App during the class. Quiz grading will mostly be based on effort. You will get 2 points for answering, or 3 points for correct answer (i.e., you'll get most of the points just for showing up). These in-class quiz questions will be worth only 2% of your final grade. We will allow you to drop your lowest grades on 5 quizzes, so you may miss up to (at least) 5 classes without penalty. Given this drop policy and the very small overall weight for the quizzes on the final grade, we will not grant excused absences for lectures/quizzes.

                                              Textbook: There are no required textbooks to purchase, but we recommend the two optional textbooks:

                                              • Torralba, Isola, Freeman. Foundations of Computer Vision (print copy here). While no online version is available, we will distribute several manuscript chapters.
                                              • Szeliski. Computer Vision: Algorithms and Applications, 2nd edition draft (available for free online)

                                              The following textbooks may also be useful as references:

                                              • Goodfellow, Bengio, Courville. Deep Learning. (available for free online)
                                              • Hartley and Zisserman. Multiple View Geometry in Computer Vision.
                                              • Forsyth and Ponce. Computer Vision: A Modern Approach.

                                              Acknowledgements: This course uses material from MIT's 6.869: Advances in Computer Vision which is associated with the optional textbook Foundations of Computer Vision. It also includes lecture slides from other researchers, including Svetlana Lazebnik, Alexei Efros, David Fouhey, and Noah Snavely (please see acknowledgments in the lecture slides).

                                              Late policy: You'll have 120 late hours (enough hours for 5 late days) to use over the course of the semester. Each time you use a late hour, you may submit a homework assignment one hour late without penalty. You may distribute these any way you'd like. For example, you can use all of your days at once to turn in one assignment 5 days late, or you can turn each assignment in a few hours late. You do not need to notify us when you use a late hour; we'll deduct it automatically. If you run out of late hours and still submit late, your assignment will be penalized at a rate of 1% per hour. If you edit your assignment after the deadline, this will count as a late submission, and we'll use the revision time to compute late hours (rounded up per assignment).

                                              We will not provide additional late time, except under exceptional circumstances, and for these we'll require documentation (such as a doctor's note). Please note that the late hours are provided to help you deal with minor setbacks, such as routine illness or injury, paper deadlines, interviews, and computer (or Google Colab) problems; these do not generally qualify for an additional extension.

                                              Please note that, due to the number of late days available, there will be a long (2+ week) lag between the time of submission and the time that grades are released. We'll need to wait for the late submissions to arrive before we can complete the grading.

                                              Regrade requests: If you think that there was a grading error, you'll have 9 days to submit a regrade request, using Gradescope. This will be a strict deadline, even for significant mistakes such as missing grades, so please look over your graded assignments!

                                              AI/LLM tools: Please do not use AI tools for coding or writing. In particular, we do not allow the use of Colab’s built-in AI coding features, ChatGPT, and Claude for these purposes. The one exception that we will allow are grammar assistance tools (such as Grammarly).

                                              Support: The counseling and psychological services center (CAPS) provides support for a variety of issues, including for mental health and stress.

                                              Grading:

                                              Grades will be computed as follows, with all homeworks equally weighted:
                                              Homework 64%
                                              Final project 24%
                                              Midterm exam 10%
                                              In-class quiz questions 2%
                                              We'll use these approximate grade thresholds:
                                              A+ Curved
                                              A 92%
                                              A- 90%
                                              B+ 88%
                                              B 82%
                                              B- 80%
                                              C+ 78%
                                              C 72%
                                              C- 70%
                                              These are lower bounds on letter score grades. For example, if you get an 81%, you will get a B- or better. We may gently curve the class up, in a way that would only improve your letter grade: e.g., after the curve, an 81% might round up to a B, but it would not round down to a C+. To ensure consistency in grading, we will not round (e.g., 87.99% is a B), and we will not consider regrade requests outside of the usual time window.

                                              Academic integrity: While you are 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.