Schedule

Lecture Date Topic Materials Assignments
Lec. 1 Mon, Aug. 31A simple vision system
About the course
Cameras
Simple edge detection
    ps1 (filtering) out
    Lec. 2 Wed, Sep. 2 Image filters
    Convolution
    Gradient filters
    Blurring
    Sec. 1 Fri, Sep. 4Linear algebra review
      Lec. 3 Mon, Sep. 7 Nonlinear filtering
      Template matching
      Edge detection
      Bilateral filtering
      Lec. 4 Wed, Sep. 9 Frequencies
      Amplitude and phase
      Fourier transform
        Sec. 2 Fri, Sep. 11More linear algebra
          Lec. 3 Mon, Sep. 14Fourier analysis
          Fourier basis
          Compression
            Lec. 4 Wed, Sep. 16Multi-scale pyramids
            Gaussian and Laplacian pyramids
            Image blending
            Texture analysis
            ps1 due
            ps2 (signal processing) out
            Sec. 3 Fri, Sep. 18Fourier tutorial
              Lec. 5 Mon, Sep. 21Statistical models for images
              Image priors
              Denoising
              Example-based texture synthesis
              Lec. 6 Wed, Sep. 23Machine learning
              Learning
              Datasets
              Linear regression
              ps2 due
              ps3 out (texture)
              Sec. 3 Fri, Sep. 25Learning tutorial
                Lec. 7 Mon, Sep. 28Linear models
                Logistic regression
                Gradient descent
                  Lec. 7 Wed, Sep. 30Neural networks
                  Nonlinearities
                  Network structure
                  Regularization
                  Sec. 4 Fri, Oct. 2Office hours
                    Lec. 8 Mon, Oct. 5 Optimization
                    Backpropagation
                    SGD
                    ps3 due
                    ps4 out (backprop)
                    Lec. 9 Wed, Oct. 7 Convolutional networks
                    Convolution layers
                    Pooling
                    Normalization
                    Sec. 4 Fri, Oct. 9PyTorch tutorial
                      Lec. 10 Mon, Oct. 12Scene understanding
                      Scene recognition
                      Semantic segmentation
                      ps4 due
                      ps5 out (scene recognition)
                      Lec. 11 Wed, Oct. 14Object detection
                      Sliding window
                      Region-based CNNs
                      Instance segmentation
                      Sec. 4 Fri, Oct. 16Office hours
                        Lec. 12 Mon, Oct. 19Temporal models
                        3D CNNs
                        RNNs
                        Attention
                        ps5 due
                        ps6 (object detection) out
                        Lec. 13 Wed, Oct. 21Image synthesis
                        Texture synthesis
                        GANs
                        Conditional GANs
                        Sec. 4 Fri, Oct. 23Project office hours
                          Lec. 14 Mon, Oct. 26Representation learning
                          Transfer learning
                          Autoencoders
                          Self-supervision
                          ps6 due
                          project proposal info out
                          Lec. 15 Wed, Oct. 28Multimodal models
                          Neural nets for other signals
                          Sight and sound
                          Multisensory supervision
                          Sec. 4 Fri, Oct. 30Project office hours
                            Lec. 16 Mon, Nov. 2 Image formation
                            Plenoptic function
                            Pinhole cameras
                            Homogeneous coordinates
                            Projection matrix
                            • Szeliski: Chapter 2
                            project proposal due
                            ps7 out (image translation)
                            Lec. 17 Wed, Nov. 4 Multi-view geometry
                            Triangulation
                            Epipolar lines
                            Homographies
                            Warping
                            ps7 due
                            ps8 out (representation learning)
                            Sec. 4 Fri, Nov. 6Geometry tutorial
                              Lec. 18 Mon, Nov. 9 Multi-view reconstruction
                              Feature matching
                              RANSAC
                              Structure from motion
                              • Szeliski 6.1-6.3, 7.1, 7.4
                              Lec. 19 Wed, Nov. 11Depth estimation
                              Stereo matching
                              Graphical models
                              Belief propagation
                                ps8 due
                                ps9 out (panorama stitching)
                                Sec. 4 Fri, Nov. 13Project office hours
                                  Lec. 20 Mon, Nov. 16Motion
                                  Optical flow
                                  Aperture problem
                                  Multi-scale estimation
                                  • Szeliski 8.4
                                  Lec. 21 Wed, Nov. 18Color
                                  Color perception
                                  Color constancy
                                  • Szeliski 2.3.2

                                  ps10 out (optical flow)
                                  Sec. 4 Fri, Nov. 20Project office hours
                                    Lec. 22 Mon, Nov. 23Light and shading
                                    Shape from shading
                                    Photometric stereo
                                    Intrinsic images
                                    Lec. 24 Wed, Nov. 25Language
                                    Attention
                                    Captioning
                                    Sec. 4 Fri, Nov. 27Project office hours
                                      Lec. 25 Mon, Nov. 30Embodied vision
                                      Learning from demonstrations
                                      Reinforcement learning
                                      Lec. 27 Wed, Dec. 2 Bias and disinformation
                                      Datasets
                                      Algorithmic fairness
                                      Image forensics
                                      Sec. 4 Fri, Dec. 4Project office hours
                                        Lec. 27 Mon, Dec. 7 TBD


                                        Staff & Office Hours


                                        Instructor
                                        Graduate student (GSI)
                                        Graduate student (GSI)
                                        Graduate student (GSI)

                                        Name Office hours times
                                        Haozhu Wang TBD
                                        Zhengyu Huang TBD
                                        Hansal Shah TBD
                                        Andrew Owens Mon. 4:45pm - 5:30pm, Fri. 3:00pm - 4:00pm
                                        Office hours will take place over video chat, using the same Zoom link as lecture. When you join the call, you will be put on a waiting list. You will then meet one-on-one with a member of the course staff.


                                        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 over Zoom during class times. Attendance will not be required; we'll post lecture recordings online for people who can't make it. Please look here for the Zoom link.
                                        • We hope that you'll participate in class! If you have a question during lecture, feel free to send a message to the class, or unmute and speak (for this, you are encouraged to use the "raise hand" feature beforehand).

                                        Discussion section:
                                        This class has two discussion sections, which both use the same Zoom link as the lecture:

                                        • Friday, 10:30am - 11:30am
                                        • Friday, 12:30pm - 1:30pm
                                        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. Advanced knowledge of linear algebra is highly encouraged. Please see this review for a review.
                                        • 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 implement a vision system 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 last-minute homework questions before the deadline. We also 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-fa20-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. As an experiment, we'll be closely following a new draft version of the 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 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, 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.

                                        Regrade requests: If you think there was a grading error, you'll have 10 days to submit a regrade request, using Gradescope. This will be a strict deadline, even for significant mistakes that are totally our fault, like missing grades!

                                        Support: The counseling and psychological services center (CAPS) provides support for a variety of issues.

                                        Grading:

                                        • Grades will be weighted as follows, with all homeworks equally weighted:
                                          Homework70%
                                          Final project 30%
                                        • Approximate grade thresholds:
                                          A+ TBD
                                          A 92%
                                          A- 90%
                                          B+ 88%
                                          B 82%
                                          B- 80%
                                          C+ 78%
                                          C 72%
                                          C- 70%
                                          D+ 68%
                                          D 62%
                                          D- 60%
                                          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 (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.