EEL6562 Course Materials and Schedules


Many of the lecture examples in this class are contained in Mathematica notebooks. If you have access to Mathematica, you can run all the experiments contained therein. If you do not have access to Mathematica, you can still view the notebooks through MathReader available for free from Wolfram for the Linux, Windows and Macintosh operating systems.
Version Mathematica definitions
Version 1.2
updated 02/17
Image processing and computer vision definitions
(needed for almost all of the Mathematica notebooks listed below), Spring 2004, EEL6562 (80 kB).
Image processing and computer vision definitions, Spring 2004, EEL6562 (web version of above Mathematica notebook).

New in Version 1.2: Set of functions for unsupervised clustering (vector quantization).

Version 1.1
updated 02/09
Image processing and computer vision definitions
(needed for almost all of the Mathematica notebooks listed below), Spring 2004, EEL6562 (69 kB).
Image processing and computer vision definitions, Spring 2004, EEL6562 (web version of above Mathematica notebook).

New in Version 1.1: Image scaling function (ScaleImage[...]) that allows you to rescale an image to any dimensions.

Version 1.0
updated 02/05
Image processing and computer vision definitions
(needed for almost all of the Mathematica notebooks listed below), Spring 2004, EEL6562 (68 kB).
Image processing and computer vision definitions, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Topic Subtopics & materials
Course introduction
01/06
Syllabus
Course syllabus, Spring 2004, EEL6562 (2 pages, 8 kb).
Basic image processing
updated 02/05
Part I
Basic image processing: Part I
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (51.1 Mb).
Basic image processing: Part I, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of:

  1. Normalized RGB color space;
  2. Individual-pixel mappings;
  3. Image histogram modifications;
  4. Image smoothing through 2D convolution; and
  5. Computation of gradient images through 2D convolution.
As given, requires the following images from the list of sample images:
  1. cat256x256.ppm
  2. flowers256x256.ppm
  3. bakery256x256.ppm

Part II
Basic image processing: Part II
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (45.1 Mb).
Basic image processing: Part II, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of simple texture segmentation through 2D convolution with 5x5 texture masks. As given, requires the following images from the list of sample images:

  1. texture1.gif
  2. texture2.gif
  3. texture3.gif
  4. texture4.gif

Part III
Basic image processing: Part III
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (26.3 Mb).
Basic image processing: Part III, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of:

  1. Connected-component labeling in binary images;
  2. Morphological operations on binary images;
  3. Median filtering on binary images;
  4. Case study #1: locating a simple object with a Gaussian color model;
  5. Case study #2: locating a person in an indoor image through image subtraction; and
  6. Case study #3: locating moving objects in an outdoor image through image subtraction.
As given, requires the following images from the list of sample images:
  1. binary_tst.ppm
  2. ball1.ppm
  3. ball2.ppm
  4. ball_data.ppm
  5. hall1.ppm
  6. hall2.ppm
  7. outdoor1.ppm
  8. outdoor2.ppm
Hough transform
updated 02/05
Detailed Hough transform illustration
Understanding the Hough transform, Spring 2004, EEL6562 (8.0 Mb).
Understanding the Hough transform, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Gives a detailed illustration of the Hough transform; requires no external definitions or images.


From images to straight lines
From image to straight lines: Hough transform
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (39.8 Mb).
From image to straight lines: Hough transform, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes three examples of extracting straight lines from images for the following images from the list of sample images:

  1. part192x144.ppm
  2. bills256x256.ppm
  3. sahara200x150.ppm
Fourier analysis
updated 02/05
Discrete Fourier Transform (DFT) examples
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (19.8 Mb).
Discrete Fourier Transform (DFT) examples, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of:

  1. Discrete Fourier Transforms (DFTs) of simple 1D signals;
  2. 2D DFTs of several images;
  3. Image filtering through the 2D DFT; and,
  4. Illustration of the shortcoming of Fourier analysis -- namely, poor localization of frequency content in images.
As given, requires the following images from the list of sample images:
  1. cat256x256.ppm
  2. part128x128.ppm
  3. bakery256x256.ppm
Wavelet analysis
zip (23 Mb) updated 02/17
Gentle introductions to wavelets
Introduction to the Discrete Wavelet Transform (DWT), Spring 2004, EEL6562 (8 pages, 2.8 Mb).

W. H. Press, et. al., Numerical Recipes in C: The Art of Scientific Computing, 2nd. ed., Sections 13.1, pp. 591-606, Cambridge University Press, Cambridge, 1992 (16 pages, 148 kB).

A. Graps, "An Introduction to Wavelets", IEEE Computational Sciences and Engineering, vol. 2, no. 2, pp. 50-61, 1995. (18 pages, 344 kb)

Fundamentals of Wavelets, Wolfram online documentation, February, 2004.

Examples and exploration
Discrete Wavelet Transform (DWT) introduction
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (39.9 Mb).
Discrete Wavelet Transform (DWT) introduction, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of:

  1. 1D discrete wavelet basis functions (Haar, Daubechies-4, Daubechies-8);
  2. Visualization of 1D Discrete Wavelet Transform (DWT) decomposition;
  3. Visualization of 2D Discrete Wavelet Transform (DWT) decomposition;
  4. 2D discrete wavelet basis functions (Haar, Daubechies-4, Daubechies-8);
  5. 2D DWTs for two images (multilevel, Haar, Daubechies-4, Daubechies-8); and,
  6. Image compression using the DWT.
As given, requires the following images from the list of sample images:
  1. cat256x256.ppm
  2. part128x128.ppm

DWT introduction: part II
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (16.9 Mb).
DWT introduction: part II, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes examples of:

  1. 1D basis functions for incomplete DWT decompositions (e.g. 1-level)
  2. Two detailed 2D compression examples using the DWT.
As given, requires the following images from the list of sample images:
  1. cat256x256.ppm
  2. bakery256x256.ppm
DWT applications
zip (51 Mb) updated 02/17
Case studies: DWT-based texture segmentation
Wavelet-based Texture Segmentation: Two Case Studies, Spring 2004, EEL6562 (8 pages, 3 Mb).

DWT-based texture segmentation: example set #1
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (30.9 Mb).
DWT-based texture segmentation: example set #1, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes a detailed DWT-based texture-segmentation examples. Note: Some of the Mathematica code in the above notebook may take very long to run, especially the VQ and histogram modeling parts. Therefore, it is strongly recommended that you download the texture-segmentation C-code package available on the source code page. Instead of hours, that package typically takes only a few minutes to run, and provides greater flexibility in adjusting the modeling parameters; a Mathematica notebook is also provided in the package for easy visualization of results.

As given, requires the following images from the list of sample images:

  1. texture1.gif
  2. texture2.gif
  3. texture3.gif
  4. texture4.gif

DWT-based texture segmentation: example set #2
(requires
Mathematica definitions notebook), Spring 2004, EEL6562 (31.4 Mb).
DWT-based texture segmentation: example set #2, Spring 2004, EEL6562 (web version of above Mathematica notebook).

Includes another set of detailed DWT-based texture-segmentation examples. Note: The same warning as above about computation times apply to this Mathematica notebook.

As given, requires the following images from the list of sample images:

  1. texture5.gif
  2. texture6.gif
  3. texture7.gif
  4. texture8.gif

Application: texture segmentation of grass
R. C. Chandler, Autonomous Agent Navigation Based on Texture Analysis, Ph.D. Thesis, Electrical and Computer Engineering, University of Florida, 2003. (78 pages, 6.2 Mb).
Sample lawn segmentation movie (from above work). (MPG, 13.6 Mb).

Application: object detection
Schneiderman object detection system: block diagrams, Spring 2004, EEL6562 (2 slides, 12 kb).
H. Schneiderman, A Statistical Approach to 3D Object Detection Applied to Faces and Cars, Ph.D. Thesis, The Robotics Institute, Carnegie Mellon University, 2000 (106 pages, 1.9 Mb).
H. Schneiderman and T. Kanade, "A Statistical Method for 3D Object Detection Applied to Faces and Cars", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, vol. 1, pp. 746-51, 2000 (6 pages, 1.7 Mb).
Multiscale image interpretation
zip (3.3 Mb) updated 03/02
Introduction to multiscale feature extraction and statistical modeling
(Special thanks to Sinisa Todorovic for his guest lectures!)
Multiscale image processing and statistical modeling for image interpretation, Spring 2004, EEL6562 (24 slides, 3.2 Mb).
S. Todorovic and M. C. Nechyba, "Multiresolution linear discriminant analysis: efficient extraction of geometrical structures in images", Proc. IEEE Conf. on Image Processing (ICIP), vol. 1, pp. 1029-32, 2003 (4 pages, 104 kb).
S. Todorovic and M. C. Nechyba, "Sky/Ground Modeling for Autonomous MAV Flight", Proc. IEEE Conf. on Robotics and Automation (ICRA), vol. 1, pp. 1422-27, 2003 (6 pages, 232 kb).
Face detection case studies
zip (13.1 Mb) updated 03/04
Overview
(Also see Schneiderman's work in the "DWT applications section.")
M. H. Yang, "Recent advances in face detection", presented at IEEE Int. Conf. on Image Processing, Barcelona, 2003 (87 slides, 22 pages, 4.2 Mb).
M. H. Yang, D. Kriegman and N. Ahuja, "Detecting faces in images: a survey", IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 24, no. 1, pp. 34-58, 2002 (25 pages, 1.2 Mb).

SNoW architecture
M. H. Yang, D. Roth and N. Ahuja, "A SNoW-Based Face Detector", Advances in Neural Information Processing Systems 12, pp. 855-61, MIT Press, 2000 (7 pages, 268 kb).

Neural network architecture
(See EEL6825 for more information on neural networks.)
S. Baluja, H. A. Rowley and T. Kanade, "Neural network-based face detection", IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 20, no. 1, pp. 23-38, 1998 (28 pages, 392 kB).
S. Baluja, H. A. Rowley and T. Kanade, "Rotation invariant neural network-based face detection", Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pp. 38-44, 1998 (7 pages, 4.7 Mb).

SVM architecture
C. Burges, "A Tutorial on Support Vector Machines for Pattern Recognition", Data Mining and Knowledge Discovery, vol. 2, no. 2, pp. 121-67, 1998. (43 pages, 512 kb)
E. Osuna, R. Freund and F. Girosi, "Training Support Vector Machines: An Application to Face Detection", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, vol. 1, pp. 130-6, 1997. (8 pages, 316 kb)
Support Vector Machine software: SVMlight.

Distribution-based architecture
K. K. Sung and T. Poggio, "Example-Based Learning for View-Based Human Face Detection", IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 20, no. 1, pp. 39-51, 1998. (13 pages, 3.1 Mb)

Selected readings in 3D vision
zip (13.6 Mb) updated 04/20
Big picture
Some Notes on 3D Computer Vision, Spring 2004, EEL6562 (7 pages, 84 kb). (Useful for the final assignment.)
M. Pollefeys, Visual 3D Modeling from Images: Tutorial Notes, Spring 2004, (143 pages, 4.9 Mb).

Camera calibration
R. Y. Tsai, "A Versatile Camera Calibration Technique for High-Accuracy 3D Machine Vision Metrology Using Off-the-Shelf TV Cameras and Lenses," IEEE Journal of Robotics and Automation, vol. RA-3, no. 4, pp. 323-344, 1987 (22 pages, 3.1 Mb).

Corner (feature-point) detection
D. Csetverikov, Lecture slides on corner detection (feature-point extraction), Spring 2004 (23 slides, 392 kb).
KLT: An Implementation of the Kanade-Lucas-Tomasi Feature Tracker

Multi-view vision
A. Zisserman, Lecture slides on multi-view vision: part I, Spring 2004 (18 pages, 3.4 Mb).
A. Zisserman, Lecture slides on multi-view vision: part II, Spring 2004 (12 pages, 1.9 Mb).

Epipolar estimation: the Fundamental matrix
R. I. Hartley, "In Defense of the Eight-Point Algorithm," IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 19, no. 6, pp. 580-93, 1997 (14 pages, 716 kb).
W. H. Press, et. al., Numerical Recipes in C: The Art of Scientific Computing, 2nd. ed., Sections 2.6, pp. 59-71, Cambridge University Press, Cambridge, 1992 (13 pages, 108 kB).

Last updated April 20, 2004 by Michael C. Nechyba