U. Arizona
CS 477 / 577
Fall 2011

Introduction to Computer Vision



Instructor Kobus Barnard
Email: kobus @ sista.arizona.edu    (remove blanks around the @)
Time and Place Monday, 10:00-10:50, Chavez 308
Friday, 10:00-12:00, GS 906.
Group office hour Monday 11:00-12:00, GS 919
Standard office times 1) Tuesday 12:30-1:00
2) Friday 9:00-9:30
3) Friday 9:30-10:00

Important: Office hours need to be claimed by email 18 hours in advance.

Description Computer vision is about building systems that see. Such a system would be able to take images and output a representation of what is in the world in front of the camera. We are all familiar with this process as it happens whenever we look around. However, putting this capability into a machine has proven to be very difficult and is the topic of much current research. In this course we we will study the basic approaches that have been developed to analyze image data in an attempt to solve this problem, and their applications to other related areas such as computer graphics and image databases.

This course should be considered by students interested in computer vision, image processing, image databases, computer graphics, artificial intelligence, and cognitive science.

Topics Image formation including geometric camera calibration and physics based vision, color, linear filtering, edge detection, texture , segmentation and grouping, local features (e.g. SIFT), recognition using on pose consistency, recognition using templates and classifiers, and recognition using models.

Additional important computer vision topics that will be mentioned, but that we do not have time to go into depth include multiple view geometry (includes stereo and structure from motion), tracking, and applications to graphics and image databases.

Prerequisites MATH 215 (implies calculus as well) and basic programming C SC 352, graphics (C SC 433), as well knowledge of probability are all helpful, but not required.

Alternatively, permission from the instructor based on strong alternative math and CS preparation.

The subject involves substantial math. While much of the required math will be reviewed/developed as part of the course, students who have only modest math background should expect to spend extra time struggling with it.

Text Computer Vision: A Modern Approach, by Forsyth and Ponce. This book is recommended but not required, as all needed material for this course will be provided. The text is no-nonsense book that offers much insight into the topic. However, but many students find it the advanced level of presentation difficult.
Assignments The course will have a number of moderate length programming assignments. Assignments can be done in either Matlab (a C like interpreted language) or C/C++, and must either be developed on Linux, or ported to Linux for grading. Since some library support for C/C++ will be provided on Linux for certain assignments, doing them first on an alternative platform and then porting may prove to be a disadvantage.
Grading

There will be roughly eight assignments. Some assignments may be optional. There will be two midterms and one final.

Graduate students will be have to do extra parts on some/all assignments, and perhaps will have to do a few extra or different assignments. Graduate students will also be expected to perform better on tests (undergraduate tests will be graded out of less, or undergraduates will have fewer questions).

Honors credit is available by doing at least 1/2 (by value, not number) of the graduate portion of the assignments. The exam portion of the grad for honors student will be computed as for regular undergraduates.

Undergraduates who want to do extra (grad) parts of assignments can receive modest extra credit. Each assignment grade will be capped at 120%, and the overall assignment grade will be capped at 65/60. These caps will also apply to graduate student if bonus marks are available to them.

Grading breakdown.

    Assignments:   60%
    Midterms:      20%   
    Final Exam:    20%    
A cumulative percentage of 90% guarantees an A, 80% guarantees a B, 70% a C, and 60% a D. Depending on the instructors perception of the difficulty of this edition of the class, some of these cutoffs may be lowered a bit (possibly differently for 477 and 577).

Mailing list The mail list cs477-11@listserv.arizona.edu is being set up. We will bulk add most students. However, it is your responsibility to ensure that you are on the list and add yourself if you are not. If you drop the course, you will have to remove yourself from the list.

It is also your responsibility to monitor the list. This is where you will find out about such things as assignment typos, extensions, and adjustments to the scope of tests.

The mail list will be our "discussion" board. If you have a question, please consider posting it to the list. You may get a faster response from your peers, and it gives the instructor the liberty of answering the question to the benefit of others who may have a similar question.

Participation Class participation is strongly encouraged. However, there is a very broad range of relevant background in this class including undergraduates taking the class out of interest, to graduate students not is CS, to graduate students who plan to do their dissertation in computer vision. Hence, if you happen to simply "know" the answer to questions, please defer answering to students who are seeing the material for the first time. If silence persists, consider offering a 1/2 step that others can pick up on. Helping each other learn the material is strongly encouraged.
Policies Exams must be attended at their appointed time unless you have permission in advance to do otherwise.

Assignment late policy: Assignments will be graded shortly. After the instructor has graded a particular assignment, all missing submissions will receive zero.

Some assignments may be graded during "demo" sessions.

Students are responsible to ensure that they are on the class mail list. Students are expected to check their E-mail reasonably often.

Some attempt will be made to detect violations of the University of Arizona's academic integrity policy. Specifically, exams and written assignment must be the sole work of the student. Students may help each other with the problem analysis and general strategies relevant to the programing assignments, but detailed help or code sharing is not permitted. All code in programming assignments will be assumed to have been written by the student (or student team) unless attribution is given. An obvious exception to this rule is sample code which has been provided by the instructor for this course through the course web page tree. Such code does not require attribution (we know where it came from). It is also permissible to include with attribution code from external sources provided that the code is published, has not been solicited, and was not written for course requirement for this or a similar course given elsewhere.