ECE 4310/6310 Introduction to Computer Vision

The purpose of a computer vision system is to take data (usually in the form of one or more images) and produce information. For example, a computer vision system might inspect bottles for proper volumes, identify abnormal tissue in a medical image, recognize a fingerprint to allow entry to a building, or tell an automated door when it is safe to close. This course teaches the mainstream theories of computer vision used to build such systems. Several examples (such as optical character recognition) are implemented in assignments. It is assumed the student has a solid mathematical background and is proficient in C programming.

Instructor: Adam Hoover

Grader: Xiaojia Wang, email


Semester project for ECE 6310 students.

Some information on the software tools you will need for this course.

Many of the images used as examples during lectures, and for assignments. Some helpful pieces of C code from lectures and for assignments.

An on-line free repository of textbooks, Wiki pages, data sets and other resources related to computer vision.

Here is the tentative outline for the semester. Dates and topics are subject to change.

Day Lecture topics (instructor notes) Extra references Lab assigned Lab due
Thursday, 8/24 Introduction to computer vision An example C program that reads a PPM format image.
Tuesday, 8/29 Histogram, convolution, smoothing Some C code that demonstrates creating a test image, standard 2D convolution, and how to time a piece of your program. Some examples of convolution masks and an animated example of convolution. lab 1 - convolution and timing
Thursday, 8/31 Gradients, Laplacian, scale space An excerpt from Sonka's text on edge detection, including examples of "Mexican Hat" filters.
Tuesday, 9/5 Hysteresis, scale (continued), smoothing vs edges The original paper on the Canny edge detector. A paper discussing edge preserving smoothing.
Thursday, 9/7 Template matching, cross correlation References for convolution and cross-correlation; the former has a nice animated gif. lab 2 - optical character recognition. The input image, template image, and ground truth. lab 1 due
Tuesday, 9/12 class canceled - hurricane
Thursday, 9/14 ROC evaluation A reference for receiver operating characteristic, along with a list of all related formulas. Further reading on the confusion matrix.
Tuesday, 9/19 matched filter, Wiener filter A paper on blood vessel detection in retinal images using a filter bank and matched spatial filtering. A paper on deformable templates for recognizing handwritten digits. An excerpt from Castleman's textbook demosntrating a Wiener filter.
Thursday, 9/21 edge properties, skeletonization lab 3 - letters lab 2 due
Tuesday, 9/26 segmentation The Berkley segmentation data sets.
Thursday, 9/28 segmentation (region growing, queue method) Some C code that demonstrates flood filling using recursion. C code that does the same thing but uses a queue instead, running faster and growing boundaries evenly. C code that demonstrates using region growing with a predicate on region variance.
Tuesday, 10/3 region properties
Thursday, 10/5 GUI event driven programming A tutorial on Win32 GUI programming. A zip file containing the C code and MS Visual Studio project files for the plus program. lab 4 - region interaction lab 3 due
Tuesday, 10/10 GUI event driven programming (continued)
Thursday, 10/12 example vision system - car inspection (BMW project) Powerpoint presentation (contains videos, file size appx 110MB)
Tuesday, 10/17 no class - Fall break
Thursday, 10/19 active contours A youtube video demonstrating an active contour on an image of dogs. An online java demo of an elliptical active contour. A video demonstrating a student project that implements several active contour ideas. lab 5 - active contours. The input image and the initial contour.
Tuesday, 10/24 active contour models A book on active contours, including dynamic models and tracking. Examples of lip motion tracking, face tracking, and hand tracking. lab 4 due
Thursday, 10/26 camera calibration An online reference for Tsai's camera calibration model. Examples of radial lens distortion. lab 6 - camera network calibration
Tuesday, 10/31 texture

no class - instructor out of town

An excerpt from Jain's text on image texture analysis, including a description of grey level co-occurrence matrices.
Thursday, 11/2 grid finding A journal paper describing the grid finding algorithm and methods to calibrate a camera network. lab 5 due
Tuesday, 11/7 stereo A technical report describing the algorithm that computes a floor-level occupancy map from a network of calibrated cameras.
Thursday, 11/9 gyroscopes and accelerometers A video demo of a gyroscope. An explanation of the Coriolis effect which provides the mathematical relationship between rotating axes. An explanation of Precession which explains how a gyroscope works. See also Kelly Waller's thesis. lab 7 - motion tracking. The accelerometer and gyroscope data to use for the lab.
Tuesday, 11/14 motion tracking Magnetomer, inertial measurement unit (IMU), attitude and heading reference system (AHRS), zero velocity updates (ZUPT). A talk explaining IMU sensors and sensor fusion, by InvenSense. lab 6 due
Thursday, 11/16 wrist motion tracking for dietary intake monitoring Presentation at the Wireless Health 2013 conference. A journal paper describing the method for bite detection. A journal paper describing the method for eating detection during all-day monitoring.
Tuesday, 11/21 range cameras An introduction to range cameras, and a dissertation chapter providing details on how they work. Some more examples of structured light images. A Wiki description of time-of-flight cameras. Some youtube videos describing how the Kinect works.
Thursday, 11/23 no class - Thanksgiving break
Tuesday, 11/28 range image segmentation A journal paper on differential geometry in range images. lab 8 - surface segmentation. The range image and reflectance image to use for the lab. Some C code to convert the range image to 3D coordinates. lab 7 due
Thursday, 11/30 object modeling A dissertation chapter on superquadrics and hyperquadrics, by Senthil Kumar.
Tuesday, 12/5 object recognition
Thursday, 12/7 system latency Powerpoint presentation from the VIMS 2011 workshop. A journal paper describing the method to measure system latency. lab 8 due

Last updated 2017
ECE 4310/6310 Page / Clemson /