CS 664 Computer Vision – Spring 2008
Cornell University

Class TR 2:55-4:10, 315 Upson

Professor: Dan Huttenlocher
4133 Upson
Office Hours, Wednesday 1-2pm
dph "at" cs.cornell.edu


Brief overview:

This course is intended for graduate students and advanced undergraduates who are interested in processing image and video data, in order to extract information about the scene that is being imaged.  There is no textbook for the course.  Handouts and papers will be made available online.  A recommended text is Forsyth and Ponce’s book “Computer Vision:  A Modern Approach”, but it covers topics that we won’t and vice versa.

The course has a more algorithmic flavor than many introductory computer vision courses.  We will focus on efficient algorithms, precise problem definitions and methods that work well in practice. 

We use material from various areas of algorithms and mathematics as well as requiring programming assignments, but this course does not teach algorithms, mathematics or programming. Thus we expect that students have good programming skills (using C or C++), a good mathematics background, and knowledge of algorithms. Students will be expected to pick up new mathematical and algorithmic techniques during the semester, as covered in lecture, and to relate the concepts from lecture to the programming assignments.


Assignment 1, filtering and edge detection
Assignment 2, project proposal

To hand in an assignment, login at http://cms.csuglab.cornell.edu with your Cornell netid and password and go to assignment 1 to upload a single zip or tar file with your source, executable and writeup.  

Data for the final project:

Data files are available at http://web3.cs.cornell.edu/cs664/.  The README file provides information about the data files and sensor configuration.  For those who might care, the camera lens is Pentax Model#: C30405TH (4.8mm F/1.8).

Movies corresponding to the raw data files may also be useful, and are available as log1, log2part1, log2part2 and log2part3.  You may need the FFDShow codec to view them.

Course outline:

Here is an outline of the topics to be covered and approximate schedule.  This schedule (and possibly also the topics) will be updated during the semester.  Readings will be handed out in class and added to the schedule as we go along.

1. Jan 22



2. Jan 24


Edge Detection Handout, Wells paper

3. Jan 29



4. Jan 31

Edge detection

Edge Detection Handout

5. Feb 5

Corner Detection (Crandall lecturer)


6. Feb 7

2D Geometry/Transforms


7. Feb 12

Interest points – SIFT features

Lowe SIFT paper

8. Feb 14

Distance Transforms


9. Feb 19

Matching: Chamfer and Hausdorff

Hausdorff Matching paper

10. Feb 21

3D camera geometry


11. Feb 26

3D camera geometry (cont’d)


12. Feb 28


Scharstein and Szeliski paper

13. Mar 4



14. Mar 6

Markov Random Field models


15. Mar 11

MRF Inference – Loopy BP

Felzenszwalb loopy bp paper

16. Mar 13

MRF Inference – Graph Cuts (Crandall)

Boykov et al paper

17. Mar 25

Visual motion/optical flow


18. Mar 27

Parametric motion


19. Apr 1

Structure from motion

Tomasi and Kanade paper

20. Apr 3

Some Recent Advances


21. Apr 8

Image Segmentation

Felzenszwalb segmentation paper

22. Apr 10

Image Segmentation

Weiss eigenvector segmentation paper

23. Apr 15

Face Recognition, Subspace Methods (Crandall)


24. Apr 17

Object Category Recognition, k-fans

Crandall k-fans paper

25. Apr 22

Pictorial Structures and fast algorithms


26. Apr 24

Image Matching and Robust Fitting


27. Apr 29

Recognition using latent SVM’s

Felzenszwalb et al paper

28. May 1



Course Requirements:

There will be a few short in-class quizzes, two assignments and a final project. The assignments and project will require programming, testing with image or video data, and a well thought-out write-up explaining what was done and what was learned.

The programming is probably best done in C or C++ due to the availability of libraries such as OpenCV, but Matlab can also be an option (Java is not recommended).