This graduate-level course will explore techniques for the analysis of visual data, primarily color images. The first part of the course examines the physics and geometry of image formation, including the design of cameras and the study of color sensing in the human eye. The second part of the the course focuses on algorithms to extract information from images. This includes detection of interest points for image alignment, depth estimation, and instance recognition; representations and architectures of image classification, object detection and segmentation, and generative modeling of images. The course covers both modern (e.g., learning based) and classical (e.g., physics and geometry based) techniques. Time permitting, we will look at some additional topics at the end. Take a look at the lectures for details.

Course assignments highlight several vision tasks and methods. For each homework, you will construct a basic system and improve it through a cycle of error analysis and model redesign. There will also be a final project which will investigate a single topic or application in greater depth. This course assumes a strong working knowledge of probability, linear algebra, and ability to program in Python. Prior experience in machine learning, signal or image processing is recommended, but not required. Take a look at the course logistics page for details.


  • Time: Tuesday/Thursday 4:00PM – 5:15PM
  • Location: Morrill III 203 (map)
  • Discussion: Piazza
  • Homework release: Piazza, submission: Gradescope
  • Lecture slides: Piazza
  • Contact: Students should ask all course-related questions on Piazza, where you will also find announcements.