CSC 249/449 Sensory-Motor Systems (Computer Vision)
Course: CSC 249/449 Sensor-Motor Systems
Instructor: Randal C. Nelson
Time: TR 9:40 - 10:50
Room: CSB 632
This course is a one-semester introduction to computer vision, and
related topics (hence the title Sensory-Motor Systems).
The course is intended as an overview, and we shall touch on a lot of
topics; some in greater depth than others.
A list of representative topics is given below; it may not be inclusive, and
we may not get to everything on it.
Image formation: light, matter, cameras and geometry
Image representation: pixels, quantization, sampling, resolution
Image processing: smoothing, enhancement, edgel detection, filtering,
Feature extraction: lines, curves, regions, templates, snakes,
hough transform, principle components, wavelets, etc.
Biological vision: The eye, neurons, brain architecture.
Learning: neural nets, competitive learning
Object representation: 2D, 3D, occupancy grids, adjacency graphs,
generalized cylinders, CSG, splines, skeletons, component models, subspace
Pattern recognition: matching, metrics, nearest-neighbor,
bayesian classification etc.
Applications: detection, classification, tracking, recognition,
navigation, manipulation, shape recovery, modeling.
Specializations: Color, texture, stereo, motion,
Basically I will be assuming math through basic algebra and trigonometery,
linear algebra and calculus
(e.g, you should know how to solve a set of linear equations using Gaussian
reduction; you should know how to compute partial derivatives and
multiple integrals; you should be familiar with orthogonal functions,
differential equations, and infinite series).
In terms of computer background, you should be able to program well enough
to write code to implement Gaussian reduction on matrices of arbitrary size
or find the zeros of a polynomial using Newton's method without undue effort.
You should be familiar with basic data structures such as stacks, lists, and
You can program in any language you want to, but a lot of resources are
available in the form of C libraries, so competance in C or C++ will
be an advantage, as well as familiarity with Unix facilities such as make.
Two good and fairly comprehensive books are
"Image Processing, Analysis, and Machine Vision" by
Sonka, Hlavac, and Boyle, 2nd Edition, PWS publishing, 1998, and
"Computer Vision: A Modern Approach" by David Forsyth and Jean Ponce.
The book by Sonka et al. is somewhat more comprehensive, and covers some
classic image processing techniques (e.g. morphology) that are not
covered by Forsyth and Ponce. On the other hand, I like the Forsyth and
Ponce treatment and extraordinarily clear discussion of important practical
techniques involving geometry and statistics.
The mathematical discussions are generally sounder, more complete, and
more informative than Sonka et al, and the discussions of why certain
techniques work and when they are likely to be useful are very illuminating.
I have recommended the Sonka et al. book as a general reference in the past,
but have not followed it chapter for chapter.
Current new list price is $125. New list price for Forsyth and Ponce is $104.
I have not had the bookstore stock either book, as
in the past, most students have gone looking for bargains on
the internet. There seem to be a number of copies available, some for less
than half of list.
There are a lot of other books on computer vision that are worth
taking a look at, or useful references for some areas.
Some well known examples are given below.
"Computer Vision", by Dana H. Ballard and Christopher M. Brown,
Prentice Hall, 1982.
The classic, by two giants in the field. A little bit dated, but still
amazingly relevant. Now out of print.
"Vision in Man and Machine", by Martin D. Levine, McGraw-Hill, 1985.
Another classic, but still good reference, that emphasizes the
human side of vision.
"Robot Vision" by B. K. P. Horn, MIT Press, 1985.
"Readings in Computer Vision" edited by Martin A. Fischler and
Oscar Firschein, Morgan Kaufmann, 1987.
A collection of classic papers up through the mid 80's.
Very valuable reading, even today.
"A Guided Tour of Computer Vision", by Vishvjit S. Nalwa,
A nice, top-level introduction to computer vision.
Not a lot of depth, but good overview of the main areas. Out of Print.
"Computer and Robot Vision" by Robert M. Haralick and Linda G. Shapiro,
Addison-Wesley, Volume 1, 1992, Volume 2, 1993.
Two volume set, heavy on the low-level image processing. Considerable
(some would say exessive) depth in some areas, often including
detailed algorithms; and near-complete blanks in others.
Can be very useful if what you are interested in happens to be one of
the areas it hits.
"Machine Vision" by R. Jain, R. Kasturi, and B. G. Schunck,
"Machine Vision: Theory, Algorithms Practicalities," 2nd ed.,
by E. R. Davies, Academic Press, 1997
Attendance, Homework, Programming projects,
Final Project and presentation, Possible Exams and Quizzes
In general, I intend this to be a project-based course, with a grade based
on class participation and success in caryying out vision projects.
Back to Randal Nelson's home page