Schedule

Lecture Date Topic Materials Assignments
Lec. 1 Mon, Aug. 30 Introduction
About the course
Cameras
Simple edge detection
ps1 out (filtering)
Lec. 2 Wed, Sep. 1 Linear filtering
Convolution
Gradient filters
Blurring
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
Resampling
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
Overfitting
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
Nonlinearities
Network structure
Regularization
    Lec. 9 Wed, Sep. 29 Optimization
    Computation graphs
    Backpropagation
    Momentum
    ps3 due
    ps4 out (backprop)
    Sec. 5 Backpropagation tutorial
      Lec. 10 Mon, Oct. 4 Convolutional networks
      Convolution layers
      Pooling
      Normalization
      • Szeliski 5.4
      Lec. 11 Wed, Oct. 6 Scene understanding
      Scene recognition
      Semantic segmentation
        ps4 due
        ps5 out (scene recognition)
        Sec. 6 Office hours
          Lec. 12 Mon, Oct. 11 Object detection
          Sliding window
          Region-based CNNs
          Instance segmentation
          Lec. 13 Wed, Oct. 13 Image synthesis
          Texture synthesis
          GANs
          Conditional GANs
          ps5 due
          ps6 out (image synthesis)
          Sec. 7
            Mon, Oct. 18 No class - Fall Break
            Lec. 14 Wed, Oct. 20 Temporal models
            3D convolutions
            Recurrent networks
            LSTMs
              proposal info out
              Sec. 8
                Lec. 15 Mon, Oct. 25 Project office hours
                  Lec. 16 Wed, Oct. 27 Representation learning
                  Transfer learning
                  Autoencoders
                  Self-supervision
                    ps6 due
                    ps7 out (object detection)
                    Sec. 9
                      Lec. 17 Mon, Nov. 1 Multimodal models
                      Neural nets for other signals
                      Sound
                      Multimodal self-supervision
                        Lec. 18 Wed, Nov. 3 Motion
                        Optical flow
                        Aperture problem
                        Keypoints
                          ps7 due
                          ps8 out (representation learning)
                          Sec. 10 Project office hours
                            Lec. 19 Mon, Nov. 8 Multi-view geometry
                            Homogeneous coordinates
                            Triangulation
                            Epipolar lines
                              Lec. 20 Wed, Nov. 10 Fitting geometric models
                              Feature matching
                              RANSAC
                              Projective transformations
                                ps8 due
                                ps9 out (panorama stitching)
                                Sec. 10 Project office hours
                                  Mon, Nov. 15 No class
                                  Lec. 21 Wed, Nov. 17 Depth estimation
                                  Binocular stereo
                                  Multi-view stereo
                                  Structure from motion
                                    ps9 due
                                    ps10 out (3D reconstruction)
                                    Sec. 11 Geometry tutorial
                                      Lec. 22 Mon, Nov. 22 Light, shading, and color
                                      Shape from shading
                                      Intrinsic images
                                      Color constancy
                                        Wed, Nov. 24 No class - Thanksgiving
                                        Project office hours
                                          Lec. 23 Mon, Nov. 29 Language
                                          Captioning
                                          Text-to-image
                                            Lec. 24 Wed, Dec. 1 Modern network architectures
                                            Transformers
                                            Implicit functions
                                              ps10 due
                                              Sec. 12
                                                Lec. 25 Mon, Dec. 6 Embodied vision
                                                Learning from demonstrations
                                                Reinforcement learning
                                                  Lec. 26 Wed, Dec. 8 Bias and disinformation
                                                  Datasets
                                                  Algorithmic fairness
                                                  Image forensics


                                                    Staff & Office Hours


                                                    Instructor
                                                    GSI

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

                                                    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. 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 (eecs442-fa21-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).

                                                    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.

                                                    Grading:

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