Introduction to Computer Vision
    CS4670/5670, Spring 2015

Time: MWF 1:25pm - 2:15pm
Place: Gates G01 (map)

Instructor: Kavita Bala (
    office: Gates 315
    office hours: Tuesday 11:00-12:00 pm

Scott Wehrwein (
Sean Bell (
Balazs Kovacs (
Andreas Veit (
Alec Regulinski (

Undergraduate consultants:
  Akhila Ananthram, Daniel Carpenter, Sheroze Sheriffdeen
  Dhruv Singhal, Raghav Subramaniam

Office Hours: See the calendar for up-to-date times and locations.

Questions? Visit the CS4670/5670 page on Piazza.

  Lectures Programming Assignments 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, and object and face detection and recognition. Applications of these techniques include building 3D maps, creating virtual characters, organizing photo and video databases, human computer interaction, video surveillance, automatic vehicle navigation, 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 C/C++
  • 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. You may collaborate on the whiteboard, but each group's code must be their own.