Introduction to Computer Vision
    CS5670, Spring 2019, Cornell Tech

Time: MonWed 12:30pm - 1:45pm
Place: Bloomberg Center 131, Cornell Tech

Instructor: Noah Snavely (
    office hours: Mon 3pm-4pm
    location: Bloomberg 365

TA: Kai Zhang (
    office hours: Thur 3:30pm-5:00pm, Fri 10:30am-11:59am
    location: Bloomberg 310

Qianqian Wang (
    office hours: Mon 10:30am-11:30am
    location: Bloomberg 310

Questions? Visit the CS5670 page on Piazza

  Lectures Projects Class Resources  

The goal of computer vision is to compute properties of the three-dimensional world from digital images. Problems in this field include reconstructing the 3D shape of an environment, determining how things are moving, and recognizing people and objects and their activities, all through analysis of images and videos.

This course will provide an introduction to computer vision, with topics including image formation, feature detection, motion estimation, image mosaics, 3D shape reconstruction, object/face detection and recognition, and deep learning.

Applications of these techniques include building 3D maps, creating virtual characters, organizing photo and video databases, human computer interaction, video surveillance, automatic vehicle navigation, robotics, virtual and augmented reality, medical imaging, and mobile computer vision.

This is a project-based course, in which you will implement several computer vision algorithms throughout the semester.


This course will be self-contained; students do not need to have computer vision background. However, the following are required:

  • Data structures
  • Working knowledge of python
  • Linear algebra
  • Vector calculus
Please send the instructor email or speak to me if you are unsure of whether you can take the course.


This course will have readings from Computer Vision: Algorithms and Applications (online), by Richard Szeliski.

Online Discussion

This class uses Piazza for discussions and announcements. Grades will be posted on CMS.

Honesty and Integrity Policy

Projects are to be done either individually or in groups of two, as specified in the project description.