Lecture Date Topic Materials Assignments
Lec. 1 Mon, Aug. 30 Introduction
About the course
Simple edge detection
ps1 out (filtering)
Lec. 2 Wed, Sep. 1 Linear filtering
Gradient filters
Sec. 1 Linear algebra
Mon, Sep. 6 No class - Labor Day
Lec. 3 Wed, Sep. 8 More filtering
Template matching
Bilateral filtering
Sec. 2 Fourier Transform
Lec. 4 Mon, Sep. 13 Frequency
Image bases
Fourier transform
Lec. 5 Wed, Sep. 15 Image pyramids
Gaussian pyramid
Laplacian pyramid
ps1 due
ps2 out (frequency)
Sec. 3 Pyramids and frequency
Lec. 6 Mon, Sep. 20 Machine learning
Nearest neighbor
Linear regression
Lec. 7 Wed, Sep. 22 Linear classifiers
Logistic regression
Stochastic gradient descent
ps2 due
ps3 out (intro to ML)
Sec. 4 Machine learning tutorial
Lec. 8 Mon, Sep. 27 Neural networks
Network structure
Lec. 9 Wed, Sep. 29 Optimization
Computation graphs
ps3 due
ps4 out (backprop)
Sec. 5 Backpropagation tutorial
Lec. 10 Mon, Oct. 4 Convolutional networks
Convolution layers
Lec. 11 Wed, Oct. 6 Scene understanding
Scene recognition
Semantic segmentation
ps4 due
ps5 out (scene recognition)
Sec. 6 PyTorch tutorial
Lec. 12 Mon, Oct. 11 Object detection
Sliding window
Region-based CNNs
Instance segmentation
Lec. 13 Wed, Oct. 13 Image synthesis
Texture synthesis
Conditional GANs
ps5 due
ps6 out (image synthesis)
Sec. 7 Office hours + GANs
Mon, Oct. 18 No class - Fall Break
Lec. 14 Wed, Oct. 20 Temporal models
3D convolutions
Recurrent networks
proposal info out
Sec. 8 Project office hours
    Lec. 15 Mon, Oct. 25 Representation learning
    Transfer learning
    Lec. 16 Wed, Oct. 27 Language
    ps6 due
    ps7 out (object detection)
    Sec. 9 Object detection + project office hours
    Lec. 17 Mon, Nov. 1 Sound and touch
    Neural nets for other signals
    Multimodal self-supervision
    Lec. 18 Wed, Nov. 3 Motion
    Guest lecturer: Shu Kong
    Optical flow
    Aperture problem
    Sec. 10 Project office hours
      Lec. 19 Mon, Nov. 8 Image formation
      Camera models
      Plenoptic function
      Lec. 20 Wed, Nov. 10 Multi-view geometry
      Feature matching
      Projective transformations
      ps7 due
      ps8 out (representation learning)
      Sec. 11 Representation learning + Project office hours
      Mon, Nov. 15 No class
      Lec. 21 Wed, Nov. 17 Fitting geometric models
      Feature matching
      Projective transformations
      ps8 due
      ps9 out (panorama stitching)
      project guidelines
      Sec. 11 Project office hours
        Lec. 22 Mon, Nov. 22 Structure from motion
        Structure from motion
        Multi-view stereo
        Stereo algorithms
        Wed, Nov. 24 No class - Thanksgiving
        Project office hours
          Lec. 23 Mon, Nov. 29 Light, shading, and color
          Shape from shading
          Intrinsic images
          Color perception
          Lec. 24 Wed, Dec. 1 Embodied vision
          Learning from demonstrations
          Reinforcement learning
          ps9 due
          ps10 out
          Sec. 12 Project office hours
            Lec. 25 Mon, Dec. 6 Recent network architectures
            Neural fields
            Lec. 26 Wed, Dec. 8 Bias and disinformation
            Algorithmic fairness
            Image forensics
            ps10 due

            Staff & Office Hours


            Office Hours

            EECS 3312
            Day Time Name Location
            Monday11:00am - 12:00pm Xin Hu Varies week to week.
            4:30pm - 5:00pm Andrew Owens EECS 3312
            Tuesday9:00am - 10:00am Xin Hu Zoom
            3:00pm - 4:00pm Tony Pan EECS 3312
            Wednesday11:00am - 12:00pm Nikhil DevrajEECS 3312
            10:00am - 11:00am Tony Pan Zoom
            Thursday11:30am - 12:30pm Nikhil DevrajZoom
            Friday 4:00pm - 5:00pm Andrew OwensZoom

            Office hours with GSIs/IAs (but not the instructor) will use the EECS office hours queue. Please add your name to the queue, in order to chat with a member of the course staff.

            Office hours will be offered in person and over Zoom, using the same link as lecture.

            To keep track of office hours times, you may find it helpful to subscribe to the class calendar.

            Course information

            EECS 442 is an advanced undergraduate-level 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 will take place Monday and Wednesday, 3:00 - 4:30pm. Attendance will not be required, but it is highly encouraged. There are multiple ways to participate:

            • In person in Dow 1013. Due to space limits, this is only available to students who have registered for the in-person version of the class.
            • Live-streamed on Zoom. Please see here for the link. Please do not share it, so that we can avoid Zoom bombing.
            • We'll post lecture recordings online here.

            Discussion section:
            This class has three discussion sections. One of these sections will be simultaneously streamed over Zoom, using the same Zoom link as lecture. We'll post video recordings of this section, as well.

            Time Place
            Thu 4:00-5:00pm 1005 DOW
            Fri 10:30-11:30am 1200 EECS
            Fri 12:30-1:30pm G906 COOL + Zoom
            Some weeks, we'll host tutorials during these sections, where GSIs will cover a topic in depth (e.g. a PyTorch guide). 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.


            • 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. The problem sets will be completed using Jupyter notebooks, generally using Google Colab. In some assignments, we'll give you starter code; in others, we'll ask you to write a large amount of code from scratch.

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

            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.

            Textbook: There are no required textbooks to purchase. As an experiment, we'll be using a new draft version of the online book:

            If you have feedback for the author, please submit it here, and we'll pass it along!

            The following textbooks may also be useful as references:

            • 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, David Fouhey, and Noah Snavely (please see acknowledgments in the lecture slides).

            Late policy: You'll have 7 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 are allowed to use multiple late days on a single assignment. For example, you can use all of your days at once to turn in one assignment a week late. 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.

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

            Regrade requests: If you think 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!

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


            • Grades will be computed as follows, with all homeworks equally weighted:
              Homework 70%
              Final project 30%
            • 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 be guaranteed to get a B-. 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+.

            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.