| 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 |
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.
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.
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.
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:
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:
| 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 |