ECE 661

Computer Vision


Avinash Kak

Next Offering: Fall 2024

Links to homework problems and their best solutions for previous offerings of this class:
    Fall 2006     Fall 2008     Fall 2010     Fall 2012     Fall 2014     Fall 2016     Fall 2018     Fall 2020     Fall 2022


This class is substantially self-contained. All you need in order to enroll for this class is that you be a graduate student in engineering, computer science, quantitative psychology, mathematics, etc.

1.   Course Intro and Demos of Working Computer and Robot Vision
2.   World 2D: Representing and Manipulating Points, Lines And Conics
  Using Homogeneous Coordinates

   (scroll corrected: January 17, 2021)
3.   World 2D: Projective Transformations and Transformation Groups
   (scroll corrected: September 26, 2014)
4.   Characterization of Distortions Caused by Projective Imaging
  and the Principle of Point/Line Duality

   (scroll corrected: November 29, 2022)
5.   Estimating a Plane-to-Plane Homography with Angle-to-Angle and
  Point-to-Point Correspondences

   (scroll corrected: September 10, 2020)
6.   World 3D: Representing Points, Planes, and Lines
   (scroll revised: September 18, 2012)
7.   World 3D: Quadrics, Transformation Groups, and the Absolute Conic
   (scroll revised: September 24, 2020)
8.   Visual Perception and Edge Detection (Sobel, LoG, Canny)
   (scroll corrected: September 26, 2016)
9.   Extracting Interest Points and Their Descriptors (with Harris, SIFT,
  and SURF) in Image Pairs and Establishing Point-to-Point
  Correspondences Between the Images

   (scroll corrected: September 24, 2020)
10.   SuperPoint: A Deep-Learning Based Framework for Detecting
  Keypoints in Images

   (Updated: Sept 28, 2022)

   NOTE: You need some background in Deep Learning to fully appreciate this lecture.
                  Click here for more info.

11.   Estimating Homographies with Linear Least-Squares Minimization
   (scroll corrected: November 30, 2022)
12.   Robust Homography Estimation with the RANSAC Algorithm
   (scroll corrected: November 30, 2022)
13.   Refining Homographies with Nonlinear Least-Squares Minimization
  (Gradient-Descent, Levenberg-Marquardt, and DogLeg)

   (scroll corrected: November30, 2022)

   In addition to the scroll that you can view by clicking on the title of this lecture, I will also be
   illustrating nonlinear least-squares with my  Python module  that you can access
   by clicking here.

   (module updated: October 6, 2022)
14.   Binary Image Processing and Morphology

   Several concepts of binary image processing and image morphology are explained
   with the help of the demos from the Examples directory of my  Watershed module  for
   image segmentation. You can access it by clicking here.

   (Updated: October 5, 2020)
15.   Image Segmentation
   A part of this lecture is based on the  same Watershed algorithm  for image segmentation
    that is used in Lecture 14. You can access the module that illustrates this algorithm by
   clicking here.

   (Updated: October 5, 2020)
16.   Measuring Texture and Color --- Part 1
   (Updated: December 17, 2022)
17.   Measuring Texture and Color --- Part 2
   (Updated: December 17, 2022)
18.   Modeling the Camera
   (scroll corrected: November 30, 2022)
19.   Some Very Cool Properties of the Camera Projection Matrix
   (scroll corrected: November 29, 2022)
20.   Camera Imaging of Various Geometrical Forms (including the
  Absolute Conic)

   (scroll corrected: November 29, 2022)
21.   Camera Calibration --- Zhang's Algorithm
   (scroll corrected: November 29, 2022)
22.   Hough Transform for Extracting Low-Level Features in Images
   (scroll corrected: November 30, 2022)

   In addition to the scroll available to you by clicking on the title of this lecture, the publication that you
   can view by clicking here shows a very successful example of vision-guided indoor mobile-robot
   navigation and self-localization by using a particularly efficient implementation of
   the Hough Transform
23.   Epipolar Geometry and the Fundamental Matrix
   (scroll corrected: November 29, 2022)
24.   Binocular Stereo: Image Rectification and Scene Reconstruction
   (scroll revised: November 29, 2022)

   The rectification part of the lecture also includes the famous  Loop and Zhang algorithm
   presented in my "Reader" that you can view by clicking here.

   (Updated: December 5, 2022)
25.   Dense Stereo Reconstructions with Semi-Global Matching
   (Updated: December 7, 2022)
26.   Dimensionality Reduction with PCA, LDA, and Autoencoders
   (Updated: December 8, 2022)
27.   Going Beyond PCA and LDA: Data Clustering on Manifolds
   (Updated: November 30, 2022)
28.   The AdaBoost Algorithm for Designing Boosted Classifiers
   (Updated: December 3, 2022)
29.   Automatically Learning the Most Discriminating Features through Class
  Entropy Minimization

   (Updated: December 5, 2022)

   For  practical aspects of how to use decision trees, I recommend going
   through the documentation page for my Decision Tree module. Click
   here for that.
   (Updated: May 14, 2016)
30.   Image Segmentation using Graph Partitioning Algorithms
   (posted: December 8, 2022)
31.   Active Learning for Reducing the Human Burden of Annotating the
  Ground-Truth for Solving Complex Problems in Object Detection
32.   Iterative Closest Point (ICP) Algorithm for Registering a Photo with a
  Database Image of the Same Scene

  The ICP algorithm is explained with the help of my  Python module  of the same name. You can
   access the module by clicking here.

   (Updated: November 25, 2017)

WHY THE HANDWRITTEN "SCROLLS" FOR THESE LECTURE NOTES? Think of these scrolls as expository art. Because of the difficulty of correcting the scrolls, my goal was to create the best possible explanations in the least amount of space. It has often taken me several days of non-stop work to produce a single scroll. Every sentence required careful thought and multiple attempts at expressing the thought on a regular piece of paper before writing it in the scroll. Writing by hand on paper creates a mind-set and a mental discipline that are simply not there in a document written on a computer. From my experience in teaching with these scrolls, while most students love them (eventually during the course of a semester if not at the very outset), some do not. But, then, that's true of all art forms.

FEEDBACK WELCOME! If you have any comments or any suggestions for improving these notes, please send an email to  with the string  "Comments on ECE 661"   in the subject line to get past my spam filter. Any suggestions that I incorporate would be duly acknowledged.

A NOTE FOR INSTRUCTORS USING THESE "SCROLLS": About the "scrolls" that are handed out in class, they look best when printed in color on long sheets of light yellow paper of size 11 in x 17 in (28 cm x 44 cm). Obviously, this is not the size of paper you can use with a home printer. However, many office copying/printing machines these days can make copies of this size without difficulty.

Valid HTML 4.01 Transitional Valid CSS!