EECS 442: Computer Vision (Fall 2019)

Instructor: David Fouhey (fouhey)

GSI: Mohamed El Banani (mbanani)

IAs: Zhengyuan Dong (dongzy), Shengyu Feng (shengyuf), Qichen Fu (fuqichen)

Lecture: Monday/Wednesday 5:30PM - 7:00PM, 1571 GGBL

Thursday 4:00PM - 5:00PM, 1018 DOW
Friday 10:30AM - 11:30AM, 1200 EECS
Friday 12:30PM - 1:30PM, 1012 FXB

Office Hours:


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 would be extremely helpful to know the following topics (i.e., we will provide a brief refresher when introducing it, but will not explain the details):

  • Programming: Some knowledge of numpy would be useful.

  • Math: Computer vision is basically linear algebra + data. You will need knowledge of basic linear algebra and calculus. If you are unfamiliar with linear algebra or basic calculus, please consider taking both: without these tools, you will likely be lost for large parts of the course. If you are rusty, do not worry but do make an effort to refresh your memory of both at the start of the course.

    In particular, in addition to knowing basic matrix operations, it would be good to know least-squares, Eigen- and singular-value decompositions, some notion of basic continuous optimization, partial derivatives, the chain rule.

    I will include a math refesher lecture. This is, however, meant to remind people of the linear algebra they forgot and to plug gaps that just aren't covered. However, this is a refresher course, not a first course. It is also not meant to be the only refresher if you are rusty with linear algebra.

Syllabus and Schedule

Here is: a tentative syllabus and a tentative schedule.

What's my grade? Here is a calculator for doing the math. The late penalties can be applied in any order since it's linear, so the calculator just does it greedily (but not using the points to rescue e.g., an assignment that's a 0).

Mastery AssessmentHW1HW2HW3HW4HW5HW6 Project ProposalProject ProgressProject Final Report
Hours Late


I will make every effort to ensure that as many people as possible are moved off of the waitlist and into the course. I cannot re-order the waitlist or ensure that particular people get moved off the waitlist.

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.