# CSC 249/449 Sensory-Motor Systems (Computer Vision)

## Information

Course: CSC 249/449 Sensor-Motor Systems
Instructor: Randal C. Nelson
TA: None
Time: TR 9:40 - 10:50
Room: CSB 632

## Summary

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.

### Topics

• Image formation: light, matter, cameras and geometry
• Image representation: pixels, quantization, sampling, resolution
• Image processing: smoothing, enhancement, edgel detection, filtering, Fourier transform
• 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 representations etc.
• Pattern recognition: matching, metrics, nearest-neighbor, bayesian classification etc.
• Applications: detection, classification, tracking, recognition, navigation, manipulation, shape recovery, modeling.
• Specializations: Color, texture, stereo, motion,

### Prerequisites

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 trees. 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.

### Course Books

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.

### Other Books

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, Addison-Wesley, 1993. 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, McGraw-Hill, 1995 "Machine Vision: Theory, Algorithms Practicalities," 2nd ed., by E. R. Davies, Academic Press, 1997