EECS 442: Computer Vision (Winter 2022)

  • Instructor: David Fouhey (fouhey)

  • GSIs: Yinwei Dai (dywsjtu), Nikhil Devraj (devrajn)

  • IAs: Siyi Chen (siyich), Yuexi Du (duyxxd), Rahul Gupta (rahulgup), Ahmed Khan (ahmkhan), Victor Li (weijili), Prateeksunder Pinchi (pinchi), Changyuan Qiu (peterqiu), Jacob Skwirsk (skwirskj), Matthew Zhang (rzmatt)

  • Canvas+Piazza Link: TBD

  • Lecture: Tuesday/Thursday 12:00 Noon - 1:30PM, 1610 IOE

  • Discussions: Monday 12:30PM - 1:30PM, 2246 CSRB; Monday 3:30PM - 4:30PM, 2150 DOW (Recorded); Wednesday 3:30PM - 4:30PM, 2166 DOW; Wednesday 4:30PM - 5:30PM, Remote (Previously: 3150 DOW); Thursday 3:30PM - 4:30PM, Remote (Previously: 1006 DOW)

  • Office Hours: 9 of them; see canvas

Registration FAQs

  • I'm on the waitlist. Can you move me to the head of the queue? I will make every effort to ensure that as many people as possible are moved off of the waitlist and into the course. I will not re-order the waitlist or ensure that particular people get moved off the waitlist – this leads to me making arbitrary decisions based on whether people emailed me or not.

  • What's up with the remote section? There is a remote lecture session that has been added to allow the class to enroll students beyond the assigned lecture room capacity. All students in both sections will have access to the lecture recordings and in-person lecture attendance is optional. The students in the remote section can also attend the in-person lecture if there is seating space.

  • Will you record lectures? Yes. You can do with this what you want. I think recording is really helpful as a tool for reviewing material; at the same time, you can also use it the wrong way.

  • Do you actually need linear algebra to take this course? Yes. This course is a nightmare without linear algebra. Most classes use linear algebra at some point, and it's a bad idea to try to learn linear algebra as you're taking this class.

  • Do I need to be a linear algebra expert to take this course? No. I think the material is relatively accessible once you've seen linear algebra once. We'll also review linear algebra concepts to refresh you.

  • I took linear algebra in another class that doesn't satisfy the prerequisite and need an override. Lots of people are in this boat! Please go to the override form and submit a request. If you're not sure about whether your course has prepared you, I'd suggest this: check out a slide deck from the past years, for instance here. The content is presumably new, but hopefully you get the sense of the language that things are expressed in (e.g., matrix-vector products). Don't worry if you feel rusty or if aspects are things you vaguely remember hearing about – you can re-learn linear algebra quickly and we'll try to get you up to speed.


This is an introduction to computer vision. Topics include: camera models, multi-view geometry, reconstruction, some low-level image processing, and high-level vision problems like object and scene recognition.

This course will be taught assuming

  • computer science knowledge at the level of EECS 281 (data structures) and corresponding programming ability;

  • the ability to program in Python, or if not, the ability to learn to program in a new language quickly.

It will also be helpful for you to have background in the following topics. We will provide some refreshers of the necessary concepts as they arise, but we may not go through a comprehensive treatment of these topics:

  • Array Manipulation: Homework assignments will involve manipulating multidimensional arrays using numpy and PyTorch. Some prior exposure to either of these frameworks will help; however, if you haven't done any of this sort of work before, the first homework assignment will help get you up to speed.

  • Linear algebra: In addition to basic matrix and vector operations, it will be good to know least squares. We'll teach you about eigenvectors and the SVD as they come up.

  • Calculus: You should be comfortable with the chain rule. It would be nice for you to have seen gradients and partial derivatives, but experience suggests you can catch on if you haven't seen these before.

If you are rusty on linear algebra and calculus (who isn't), do not worry but do make an effort to refresh your memory of both at the start of the course.

Credit for materials

I am extremely grateful to the many researchers who have made their slides and course materials available. Please feel to re-use any of my materials while crediting appropriately and making sure original attributions to these generous researchers is preserved. Please also consider making your own course materials public.