CMSC: 426 Computer Vision

(aka Image Processing in the Catalog)


Spring 2005, Mondays and Wednesdays, 3:30 p.m. 4:45 p.m.,

Location: CSI 3120


Instructor: Ramani Duraiswami

E-mail: ramani AT;


Grader: Justin Domke

Email: domke AT


Homework is given on Wednesdays at the end of the class and due on the Monday of the week following the next one,  at the beginning of class







Lecture 1

Introduction, Course rules, exams

Course outline

Introduction to vision. Vision is an inferential process.



Lecture 2

Image formation-I:
Geometry: Pinhole camera. Central projection. Properties of 2D images of a 3D world. Vanishing points. Horizon. Projection equation for perspective projection. Orthographic projection. Scaled orthographic projection.
Radiometry: Radiance, Irradiance, BRDF


Lecture 3



Image formation-II: Homogeneous coordinates. Lens equations. Optical power. Accommodation. Radiance, Irradiance, BRDF. Solid angle. Pixel and scene brightness. The Eye: and its relation to cameras. CCD cameras.


Lecture 4


 Image Features: Features allow us to perform inference. Edges as features. Causes for edges. Treating images as functions. discrete image gradients. Representing gradients as filter masks. Non maxima suppression. Noise. Smoothing noise. The Gaussian function. Filters and convolution. 2D edge detection filters. The Canny edge detector


Lecture 5


 Image Features: Linear Filters. Filters as a means to extract features. The convolution operation. Matlab implementation. Filters for blurring, sharpening, noise reduction. The Gaussian function. Separable filters. notion of scale.


Lecture 6

Scale, Fourier Transform: Scale. Sampling an image. Reconstructing an image from samples. Images as functions. representing images in the Fourier basis. What Fourier basis functions look like. Fourier transform as convolution with Fourier basis filters. Image smoothing as removing high frequencies. Phase and magnitude.


Lecture 7 

Homework  flowers.tif

Image Pyramids: Scale. Gaussian Pyramids. Laplacian Pyramids. Gabor/wavelet functions. Phase & Magnitude.
Texture: What is texture? Texture as an image feature. Texture discrimination. Comparing intensity statistics by building histograms. Analyzing texture with several filters at different scales. Gabor filters. Comparing filter output statistics. Texture synthesis from examples. 


Lecture 8


Texture synthesis. Discussion of the paper by Heeger & Bergen.  Discussion of elements of more advanced approaches
Introduction to Linear algebra and Matlab. Representing image operations with matrices and homogenous coordinates. Translation. Scaling. Rotation.


Lecture 9



Matlab Wrap up. Writing a function in Matlab.

Combining features. Detecting lines. Parametric representation. The Hough transform. HT for curves.  Corner detection: the Harris detector.


Lecture 10

No class due to anticipated snow

Homework is now due when class begins on March 2.


Lecture 10         Homework 3

Perceptual grouping. Mid-Level vision. Gestalt principles. Wertheimer's paper. proximity. similarity. common-fate. geometric similarity. Smoothness. curve-completion.

Building cost-functions that incorporate psychological ideas. Performing vision tasks by minimization. Finding closed contours.


Lecture 11

Color: Physics of light. Visible spectrum.  Color of light sources. Radiometry on a per wavelength basis. How the eye perceives color. Rods and cones. Tri-chromaticity.  Color matching by addition and subtraction. Metameric colors. Grassman's laws and linear color models. Non-linear color models. Color constancy and other eye adaptations.


Lecture 12

Model fitting; Least Squares; SVD


Lecture 13

RANSAC  (lecture notes same as for lecture 12)





Remember the main source material are the  class notes. You can use the text for background or clarifications. The following sections are included: Chapter 1 (all except 1.4.1,1.4.2). Briefly scan Chapter 2. Chapter 4 (4.1, 4.2, 4.3). Chapter 6 (up to and including 6.3). Chapter 7, Chapter 8. Chapter 9 (up to & including 9.3). Chapter 14  (up to & including 14.2). Chapter 15  (up to & including 15.2) .



No Class

Homework 4


Lecture 14

Exam review.
Stereo. Epipolar Geometry, Epipolar plane. Epipoles. Rectification. Depth equation for a rectified pair. Baseline. The correspondence problem. Random dot stereograms. Stereo from a single image. Feature-based correspondence. SSD and  area correlations. Hard constraints and heuristic constraints.


Lecture 15

Stereo: Epipolar geometry. Matching via SSF and cross-correlation. The ordering constraint. Introduction to dynamic programming. The principle of optimality. Local optimality.


Book: Chapter 11 (excluding11.4). The class notes contain some extra material.


Lecture 16

Stereo via Dynamic Programming: Dynamic programming pseudocode.


Structure from motion. Scene model. Image points. Camera projection. Rotation. Translation. Chapter 12,


Lecture 17

Review of transformations of rigid body coordinate systems. Translation. Rotation. Representation via matrices. Use of homogeneous coordinates. Scaling. Three dimensional rotation and Euler angles. Perspective and weak perspective models. (Chapter 2.)

  Affine structure from motion. Two frames. Solving for the affine transform. Solving for structure. Multiple frames. Rank theorem.  (Chapter 12, till 12.3)


Lecture 18

Image Motion and Optical flow (lecture notes are the same for Lectures 18 and 19).

Motion field. Optical flow. Brightness constancy. Aperture problem. Normal flow. Solving for the optical flow via least squares. Image gradients.


Lecture 19


Homework 5 T4bw T3bw  I1R I1L I3

Review of least squares. Normal equations. Weighted least squares. Iterative Lucas Kanade. (ignore slides 37-39).


Lecture 20

Review of concepts from probability. Bayes theorem. Frequentist and subjectivist approach. Bayesian inference. Probability. Probability density function. Expectation and variance. Sample mean and variance.

Clustering and segmentation.: Agglomerative clustering. (Chapter 14.4)


Lecture 21

Review of Bayes Theorem.

K-means clustering. Expectation Maximization. Expectation and maximization steps. General paradigm for vision problems. (Chapter 16.1, 16.2)


Lecture 22


Homework 6 I164 I165 Answer to Q1

Object recognition and Pose. Recognition from models. Chamfer matching. Distance transform. Ransac



Lecture 23

3D Pose. The Posit algorithm.


Lecture 24


 Object Recognition. Trying to find features that help in recognition. Looking for invariant features. Color indexing. Salient Point Method. Geometric Hashing.


Part decomposition.


Lecture 25

Homework 7

Tracking. The tracking problem. Kalman filter. Recursive estimation. Innovation; gain. (Chapter 17 till 17.3 but treatment in lecture is a bit different)


Lecture 26

 Classification: Classification boundaries. Bayes Risk. Loss functions.  Estimating pdfs: histograms and kernel density estimation. Application to skin color classification of pixels. ROC curve of a classifier. Nearest neighbor and K-nearest neighbor classifiers. (Section 22.1-22.2)


Face Recognition via Eigenfaces: Preparing a face-data set. Computation of principal components. Using principal components for recognition. (Section 22.3)


Lecture 27

Exam Review: Remember the main source material is class notes.

05/18/2005 Final Exam 1:30 p.m.- 3:30 p.m. in the same classroom (CSI 3120)


NEW: You may find the robotics class being offered next semester (Fall 2005) of interest. A course description for this class is here.


Materials based on my slides, previous CMSC 426 slides (taught by Cornelia Fermuller and David Jacobs) and stuff off the web.

Useful Links (from Prof. Jacobs)

 Image Processing Learning resources:

 MATLAB resources:

  Introductory Tutorials

MATLAB tutorial from University of Utah

MATLAB tutorial from Carnegie Mellon University

MATLAB tutorial from Indiana University

  Slightly more advanced Tutorials

  More complete references/tutorials/FAQs

 Computer Vision related sites:

Lightness Perception and Lightness Illusions

MIT computer vision class

Penn State computer vision class

Grad course at Maryland

An extensive computer vision bibliography at USC

Pointers to many vision classes

A tutorial on drawing with perspective

Some computer vision tutorials from Sussex

Some visual illusions

Computer Vision on-line demos


Lecture notes are based on materials from the text, my slides, and borrow
from previous  UMD courses (CMSC426 by David Jacobs, Cornelia Fermuller,

and Larry Davis and CMSC 828D by Davis, Duraiswami and DeMenthon) and

from materials on the web.