CSCI 5561 Computer Vision (Spring 2014)

02:30 P.M. - 03:45 P.M., M,W (01/21/2014 - 05/09/2014), KHKH 3-125
Lab sessions will be held in Lind Hall 40 on Wednesdays during regular class hours, starting second week.

Instructor: Volkan Isler (Office hours: 3:45 - 4:30 M & W)
TA: Pratap Tokekar (Office Hours: Tuesday 12:00 P.M - 13:00 P.M. KHKH 2-140B)

Please use the address csci5561-help@cs for course related emails (this alias forwards to isler and tokekar.)

Other links:

Course Description

The primary goal of this course is to introduce students to computer vision -- how to make computers make sense of images! Traditionally, computer vision is studied in a bottom up fashion. At the lowest level, images are processed to obtain simple features (e.g. corners, edges). Then comes geometry in which these features are used to build 3D models of the environment. Next up is mid-level vision in which features are grouped into segments or other salient regions. At the highest level is the big problem of object recognition. It is impossible to cover all aspects of computer vision in depth in a single course. However, after taking this course, you will:

Topics Covered and Text Book

There is no required textbook for the course. The recommended textbook course is Computer Vision: A Modern Approach by Forsyth and Ponce (2nd Edition).

We will start with cameras (chapters 1) and continue with local features (Ch. 4-6), Then cover projective geometry, stereo and structure from motion (chapters 7 and 8). Next we will cover Segmentation and Grouping (Chapters 9 and 10) and selected topics from High Level Vision. While we will follow the book for most of the time, we will also use Introductory Techniques for 3-D Computer Vision by Trucco and Verri, and Multiple View Geometry in Computer Vision by Hartley and Zisserman for some of the topics. These books are not required. They are on library reserve for this course. I will make my notes available. There are some excellent resources online, including books by Rick Szeliski and Simon. Prince.

Prerequisite Information

You need to be familiar with basic concepts in calculus (Math 1271/1371) , linear algebra (Math 2243), and discrete math (CSci 2011). If you have not taken equivalents of these courses, you need permission from the instructor. Homework and Lab session will be based on MATLAB. Previous courses in AI and Robotics are useful but not required.


We will cover a relatively large range of topics which rely on various backgrounds. As a result, at times, you might find that the current topic is quite challenging (or rather basic). For example, dynamic programming may be easy to grasp for a student who has taken advanced algorithms courses. The same student may find projective geometry quite challenging. Here are some tips that you might helpful:


Evaluation will be composed of the following components:

Grades: 93.0% or above yields an A, 90.0% A-, 86% = B+, 82% = B, 78% = B-, 74% = C+, 70% = C, 67% = C-, 63% = D+, 60% = D, and less than 60% yields an F.

Other grade related issues: Late submissions are not allowed. Questions about a specific mark should be raised within 10 days after the mark is given. Incompletes (or make up exams) will, in general, not be given. Exceptions will be considered only when a provably serious family or personal emergency arises, proof is presented, and the student has already completed all but a small portion of the work.

Scholastic misconduct is broadly defined as "any act that violates the right of another student in academic work or that involves misrepresentation of your own work. Scholastic dishonesty includes, (but is not necessarily limited to): cheating on assignments or examinations; plagiarizing, which means misrepresenting as your own work any part of work done by another; submitting the same paper, or substantially similar papers, to meet the requirements of more than one course without the approval and consent of all instructors concerned; depriving another student of necessary course materials; or interfering with another student's work."
Important: MATLAB should make your life easy but should not do the homework for you! You are welcome to use standard matrix functions, or utilities to read and write images, but when, e.g., the problem asks you to implement an edge detector, you should not use built-in edge detection functions. When in doubt, just ask. Using implementations off-the-web or elsewhere in homeworks yields an immediate F.