Introduction to Computer Vision

Fall 2009

CS 143, M.,W.,F. 11:00-11:50 AM (D Hour), CIT 227

Professor: Michael J. Black

Grad TA: Peng Guan

Ugrad Head TA: Tim St Clair

One stop shopping: link to syllabus, lecture slides, homework, etc.

Other Quick Links: Contact Information - Background Material - Vision Talks

News and Announcements

Linear algebra slides are available, click here

The asgn1 is now accessible. For people who don't have CS accounts, the whole package of asgn1(including all the images and support code we use) is here

Assignment 1(problem 1&2) is out on Sep 14th, and it is due on Sep 28th. You can download it here

Linear Algebra tutorial schedules: Wed(Sep 16th) & Thur(Sep 17th) 7-8 pm location:CIT219

Matlab tutorial schedules: Monday(Sep 14th) & Tueday(Sep 15th) 7-8 pm location:sunlab(please take first three rows)

As you figured out, the class meets in CIT 227, not Lubrano.

We'll be using the September 7, 2009 edition of Richard Szeliski's new textbook, Computer Vision: Algorithms and Applications.

Everything on this page is updated as of Sept 8, so check it over even if you've looked at it before.

Welcome to CS0143.   The syllabus is now available.

Short Course Description

How can computers understand the visual world of humans?

This course treats vision as a process of inference from noisy and uncertain data and emphasizes probabilistic and statistical approaches. Topics include perception of 3D scene structure from stereo, motion, and shading; image filtering, smoothing, edge detection; segmentation and grouping; texture analysis;  learning, recognition, and search; tracking and motion estimation.


Required: CS032/36 or equivalent programming experience, basic knowledge of linear algebra (e.g. MA52), basic calculus (e.g. MA10), or permission of the instructor. 

Desirable: knowledge of probability, statistics, (e.g. CS155, AM0040, AM165, AM169, or AM264).  

Who should take the course

This course is designed for undergraduate and graduate students interested in vision, artificial intelligence, or machine learning.  Many of the ideas and techniques used here are also used in other areas of AI (e.g. robotics, natural language understanding, learning).  The course offers a broad introduction to the field, the current problems and theories, the basic mathematics, and some interesting algorithms.  

This course is also a good choice of GRAPHICS students.  There are many techniques in common to vision and graphics and current graphics research uses more and more tools from vision.

It is not an image or signal processing course.  It is also not a robot vision course; we will not be using real-time vision hardware.  While we may touch on human vision, the course is about machine vision.

Students from any department are welcome provided they have the required programming and suggested mathematical background.

If you unsure whether this is the course for you, please come and talk with me.

Office Hours and Contact information

Professor: Michael Black (please call me Michael)
Email: b l a c k <at> c s . b r o w n . e d u
Office hours: Monday 4-5 pm, Thursday 3-4 pm, CIT 521.

Grad TA: Peng Guan
Email: p q u a n <at> c s . b r o w n . e d u
TA hours: Monday 7-9 pm, CIT 271.

Ugrad TA: Tim St Clair
Email: t i m o t h y _ s t _ c l a i r <at> b r o w n . e d u
TA hours: Wednesday 4-6 pm CIT 271.

TA email alias: c s 1 4 3 t a s <at> c s . b r o w n . e d u

Class Goals

Computers today are limited in their ability to interact with the world and with their human users because the lack the ability to "see".  The study of computer vision requires that we understand something about the physics of the world, how light is reflected off surfaces, how objects move, and how all of this information gets projected onto an image by the optics of a camera.  It also requires that we devise algorithms to recover, or reconstruct, some of these physical properties from one or more images.  This "inverse" problem is a great puzzle.  Information is lost when the three dimensional world is projected onto a two dimensional image;  how can we recover this information from a picture of it?  We will study the mathematics behind this and develop algorithms for solving various inverse problems.  But vision is about more than simply reconstructing the 3D world from 2D images; it is about "understanding".  We will explore various machine learning techniques and probabilistic inference methods that begin to address this problem.

In this class you will

Even if you do not go on to study computer vision, the basic tools and techniques we use here will be useful in many other areas.


We will cover


You're fortunate. We're going to use a new book, Computer Vision: Algorithms and Applications, still being developed by Richard Szeliski. Even in its unfinished state it will be a great resource for you. Better still, it is on the web for free right now.

In the syllabus, I will refer to page numbers in the September 7, 2009 edition.

Please collect up errors and comments. We'll send these to Rick so that he can improve the book.

Readings will be from the text and additional material that will be handed out or made available on the web page.  

All lecture slides will be available on the web after class.


The Matlab programming language will be used. It is fairly intuitive and well documented. Students who are unfamiliar with Matlab should go through the on-line tutorial material.  Other resources will be provided in class.

See the Background Material page for useful materials.


There will be 4 programming assignments (in Matlab). The goal is for these to help build your the understanding of class material by working with real images. In each assignment you will implement one of the algorithms discussed in class and experiment with it on pre-recorded image data

You will also have to do one project (4 weeks) of your own choosing. More details, suggestions, and guidelines will be available later in the term.

You will also be expected to read all the assigned material and come prepared to talk about it in class.


Please read and understand the Collaboration Policy.

Subject to change:

10% Class participation.

15% Homework assignment 1

15% Homework assignment 2

15% Homework assignment 3

15% Homework assignment 4

30% Project

Graduate Credit

You may receive graduate credit for CS143 but it requires a more complete writeup of the final project and presentation at the end of term.  I will expect the writeup to be in the style of a scientific conference paper (note that it does not need to be publishable).   One thing this will require is a good review of the literature.

Late Policy

Late assignments will not be accepted without prior approval. Get prior approval. No exceptions. I am ruthless.

Brown Vision List

There is an email list for vision-related announcements at Brown (mostly talks). This list is open to anyone at Brown interested in vision. You can subscribe/unsubscribe and browse the archives at

There is also a Vision and Learning Seminar series with talks throughout the year.  Announcements go to the Brown Vision List.