CSci 4968 and 6270: Computational Vision, Fall 2009

Instructor: Prof. Chuck Stewart
Course Hours: Mon, Thu 12:00 - 1:20
Class Location: Low 3045
Office Location: MRC 304
Office Hours : Mon, Thu after class; Tue 1-3; by appointment; drop-in
Syllabus pdf; most is repeated here


Course Overview

Cameras and images are everywhere, with a resulting wide-spread need for algorithms and software that can combine, summarize and interpret these images. This is the field of computer vision and image analysis. Applications include face, object and scene recognition, security and biometrics, photomontaging and virtual tours, special effects in graphics, photography and the movies, autonomous robots, human-computer interaction, and medical diagnosis and treatment. Given the ubiquitous cell phone camera, the potential for new applications in the future seems unlimited. Standing in sharp contrast to this need, computer vision presents us with difficult problems. Each image is a large, noisy, quantized, 2d array. The world, by contrast, is (mostly, at our level) continuous, complicated and three-dimensional. The challenge of computer vision has led researchers and applications programmers to employ a wide variety of physical, engineering, mathematical, statistical, algorithmic and software techniques to develop computer vision systems. Therefore, our goal in this course will be to learn about the problems, the applications, the challenges, and the techniques of computer vision.

The first 40% of the course will focus on a single application - photomontaging - using it to drive the study of image processing, feature extraction, cameras and transformations, matching, estimation, and blending. After this we will turn to image segmentation, computational photography, three-dimensional modeling, motion and tracking, and various types of recognition.

Prerequisites include a data structures and algorithms course (e.g. CSci 2300), a course in multivariable calculus and linear algebra (Math 2100), and some "mathematical maturity". Students can either earn four undergraduate credits (CSci 4968) or three graduate credit (CSci 6270) for this course.


Course Requirements

Requirements include class attendance and participation (10%), 7 homework assignments (40%), one exam (20%), and a final project (30%). The homework and the final project will emphasize programming. Students are expected to submit their own solutions to the homework, although they may work together to sketch solution ideas.

Students have three "late" days they can use on homework assignments throughout the semester, with at most two days used for any one homework. A late day is defined as any whole or partial day after the submission deadline. For example, submitting a homework assignment 24 hours and 15 minutes late constitutes two late days. After all late days have been used, no late homework submission will be accepted without an excuse from the Dean of Students office. Late days may not be used for the final project.


Academic Integrity

Students are expected to submit their own solutions to the homework, although they may work together to sketch solution ideas. The final project should be done individually. Students who find resources to help with the final project must (a) reference these resources in their write-up and (b) add to these with their own work. Students will be graded on what is their own.


Books

Many books on computer vision have been published over the years. We will be using the on-line textbook, Computer Vision: Algorithms and Applications , which Dr. Richard Szeliski of Microsoft Research is currently writing. Here are several other books that students might find useful:



On-line Resources



Programming

Programming can be done in Matlab or in C or C++. If you choose to use C or C++, you will want to make use of either OpenCV or VXL. The former is widely used. The latter is used in my lab, mostly for historical reasons, and it powerful and flexible, if a bit daunting.

Most students are likely to want to use Matlab, together with the Image Processing Toolkit. Students who don't already have these on their computer may sign up and download through RPI's campus system. Here is a selection of on-line resources for learning Matlab:



Course Schedule, Notes and Homework

Lecture Date Topic Notes Assignment
1 Mon, 8/31 Introduction to computer vision notes
Blackberry classroom images
Resulting montage
2 Thu, 9/3 Image processing, part 1 notes (revised after class) HW 1
3-4 Thu, 9/10 (completed 9/14) Image processing, part 2 notes
4-5 Mon, 9/14 and Thu 9/17 Edge detection notes HW 2
Images for problem 1
6&7 Mon, 9/21 & Thurs 9/24 Contours and Lines; Least-Squares notes
8&9 Mon, 9/28 & Thurs 10/1 SIFT paper discussion outline HW 3
9&10 Thurs 10/1 & Mon 10/5 Cameras and calibration, part 1 notes
11&12 Thurs 10/8 & Tues 10/13 Cameras and calibration, part 2 notes
13&14 Thurs 10/15 & Monday 10/19 Matching and montaging notes HW 4, data
15 Thurs 10/22 The remainder of the semester notes
16&17 Mon 10/26 & Thurs 10/29 Structure from motion notes
18 Mon 11/2 Motion and tracking notes HW 5
19-21 Thurs 11/5 to Thurs 11/12 Segmentation, stereo and energy minimization notes