# Syllabus

## Overview

Unfortunately, the official name and course description are a bit inaccurate.

In CMSC 426 we will study the basics of computer vision.  This is the process of using images to find out about the world at which one is looking.  The course focuses on several basic topics.  The first is finding the boundary of objects in images.  Usually, the visual properties of adjacent objects are different, such as their lightness or texture, so we must understand how to locate changes in these properties.  Then we must learn how to integrate these local cues into interpretations about regions of images.   The second topic involves recovering the intrinsic properties of the world from one or more images.  This includes understanding how to recover the reflectance properties of an object from their appearance in an image.  It also involves using the appearance of a scene from different viewpoints to determine  the depth of objects in the scene.  The third basic topic involves recognizing the identity of objects in a scene.  To do this, we must account for the fact that viewpoint and lighting affect the appearance of an object.  Even more challenging, different instances of the same class of object may be somewhat different.  That is, different chairs may have different shapes or be made of different materials.  We will try to describe in detail some of the basic techniques used to solve these problems, and give some idea of the nature of ongoing research in these areas.

## Background

Students will need prior knowledge of programming, algorithms, and math.  Programs will be done in Matlab, but we will not assume a prior knowledge of this language.  However, students should feel comfortable about writing programs in a new language after a brief tutorial.  They should also be familiar with the basics of algorithms.  Computer vision is more mathematical than most computer science courses.  We will talk about problems in geometry (how do we relate the 3D world to its 2D projection), functional analysis (since images are 2D functions), optimization (since we often combine visual evidence to find an optimal solution), and linear algebra (since points and lines are naturally represented and manipulating using matrices).  We assume no specific mathematical knowledge beyond calculus and probability and statistics.  However, parts of the class will probably be challenging if you haven't seen linear algebra before.  In general, the more math you know, the easier it will be to pick up the new concepts you see in the class.

## Text

There is no required text.  There will be class notes for some of the topics we cover.  You may find it helpful to consult a text for other topics.  Useful texts include Introductory Techniques for 3-D Computer Vision, by Trucco and Verri,  Prentice Hall, 1998, Computer Vision, a Modern Approach, by Forsyth and Ponce, Prentice Hall 2003, and Computer Vision, by Shapiro and Stockman, Prentice Hall, 2001.

## Course Work

There will be 7 problem sets assigned during the semester.  Five  of these will contain programming assignments to be done in Matlab and some pen and paper assignments; two will be only pen and paper exercises.  Students will have one week to do pen and paper assignments and shorter programming assignments, and two weeks for longer programming assignments.   Homework is due at the start of class.   There will be a 10% penalty for each day that an assignment is late, but no assignment can be turned in after the start of the next class after the due date (ie., I should be able to post or discuss solutions the class after an assignment is due).

There will be two exams: a midterm and a comprehensive final. These will be weighted for the final grade as: Homeworks 30%, midterm 25%, final exam 45%.

Homework assignments are to be written up neatly and clearly, and programming assignments must be clear and well-documented. Programs should be written in Matlab.  A full paper copy of all of the homework must be turned in.  In addition, we will ask you to email a copy of all Matlab code to the TA.

Some homeworks and projects may have a special challenge problem. Points from the challenge problems are extra credit. This means that I do not consider these points until after the final course cutoffs have been set.  Students participating in class discussion or asking good questions will also receive extra credit.