CS 484 Introduction to Computational Vision

Required Background

  • Numerical computation (AMATH 242/341/CM 271/CS 371 or CS 370)
  • Basic programming experience (Matlab or C)
  • Probability (STAT230 or 240).
  • Computer Science students only


Typical course offerings will have four or five assignments (60% of grade) and a final project (40% of the grade).

Each assignment will each contain a written and a programming component.  The programming components will be small (eg., completing an existing program), but will require significant exploration of the algorithms presented in lectures.  In particular, students will be expected to explore a wide range of input data and paramater settings to determine where algorithms succeed and where they fail. 

The final project will allow the student to explore a topic of their own choosing in detail.  The scope is wide, ranging from image processing to artificial intelligence, but students will be required to implement specific algorithm(s) on their own and perform a detailed evaluation of their performance.  They will also be required to perform their own research and write a comprehensive report.  The students may elect to present their material for partial credit towards the report requirement.  Students may choose a project related to their interest (hobby or work term) and/or research area (graduate students).  A list of topics and past projects will be provided to students on request.  Graduate students will typically do the same assignments but will be expected to produce a project with a substantial research component.

Overall goals

  • Learn modern computer vision problems, algorithms, and current research topics
  • Provide mathematical background for courses in image and signal processing
  • Learn general tools/algorithms for signal processing and data analysis

General guidelines

This course will generally have the same core material (see Outline below) but problems and applications may be specialized to the instructor or students' interests.


Most classes will be lectures, involving blackboard work for mathematical derivations, slide presentations to show graphical concepts, and in-class demonstrations using Matlab.  Some time will be devoted to students presenting their projects at the end of term.

The course may use the following textbooks (in order of importantce, with relevant topics listed in italics):
  • E. Trucco and A. Verri. Introductory Techniques for 3D Computer Vision. Prentice-Hall, 1998. (typical topics in course)
  • D.A. Forsyth and J. Ponce. Computer Vision: A Modern Approach. Prentice-Hall, 2003. (many application areas)
  • B.K.P. Horn. Robot Vision. MIT Press, 1986. (lighting models, many early vision algorithms)
  • K.R. Castleman. Digital Image Processing. Prentice-Hall, 1996. (detailed image processing reference)
Finally, there are a number of online resourses, including research papers, data sets and sample code.  A good starting point is the "Computer Vision Homepage" at www.cs.cmu.edu/~cil/vision.html.

Outline Topics

Core Material (required)
  • Optics, Image formation, and Lighting models.  Core background for all vision work.  Closely related to image synthesis (ie., computer graphics).
  • Linear systems and Fourier Theory.  Mathematical background, common to vision and image processing.
  • Feature detection.  Starting point for most vision algorithms.
  • Fitting models to data.  Model fitting is typically by least squares, but extended to handle noise (robust fitting) and multiple models (mixture models, segmentation, adaptive algorithms).
Some typical topics (vary with instructor/class)
  • Feature grouping.  Segmentation, search, models of visual attention.
  • Image Registration.  Iterative techniques for image alignment; Application to image compositing.
  • Stereopsis.  Baseline stereo; Depth reconstruction by triangulation; Maximum flow formulation of the stereo problem; Epipolar geometry.
  • Optical flow.  Derivation of image flow field from 3D motion; Estimation of optical flow.
  • Object tracking and segmentation.  Optical flow or view-based techniques.
  • Structure from motion.  Scene reconstruction from image flow field: Factorization method, Direct methods.
  • Object Recognition. View based methods: principle components analysis, factor analysis; Model-based approaches; Interpretation tree search.
  • Event Recogntion.  Templates, Hidden markov models, dynamical models.