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. The first part of the course covers classic computer vision. The second part covers machine learning and the use of modern neural network models (note we do not learn how to train models, just how to use them). The third part of the course covers object tracking methods. The fourth part of the course covers topics related to 3D data. It is assumed the student has a solid mathematical background and is proficient in Python programming.

Instructor: Adam Hoover

Grader: TBD (probably me)

The Zoom link for live class.

Syllabus

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

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 slides) Extra references Work assigned/due
Thursday, 8/20 Introduction to computer vision zoom The webcam-test.py file to test that all software is installed correctly. Another test file face-detect.py that live demonstrates computer vision.
Tuesday, 8/25 Histograms, data noise, smoothing zoom A reference on the histogram. References for image histogram and image nosie.
Thursday, 8/27 Convolution, gradients, Laplacian zoom An example of convolution at a single pixel. Some examples of convolution masks and an animated example of convolution. A "Mexican Hat" filter. How to normalize data for visualization in greyscale.
Tuesday, 9/1 Template matching, cross correlation zoom The templates for the in-class exercise: x, o, plus, and bar. The test sheet. References for convolution and cross-correlation. lab 1 - optical character recognition
Thursday, 9/3 metrics, ROC evaluation zoom The puzzle, top border piece, and the ground truth (type, x, y) for the in class exercise. A reference for receiver operating characteristic, along with a list of all related formulas. Further reading on the confusion matrix.
Tuesday, 9/8 Data labeling zoom The fruit image and points GT. Code for calculating inter-rater reliability. The Make Sense image annotation tool. The CVAT image annotation tool.
Thursday, 9/10 Thinning, skeleton points zoom The parenthood image to use during the class exercise. A reference on topological skeletons for mathematical definitions.
Tuesday, 9/15 Region properties zoom The set of fruit images to use during the class exercise.
Thursday, 9/17 Hysteresis, scale space zoom The original paper on the Canny edge detector.
Tuesday, 9/22 Intro to machine learning The files to use during the class exercise. These include the model training and testing python code, and the model training and testing data. lab 1 due
Thursday, 9/24 Image classification The MNIST training code to use during the class exercise. The CIFAR10 (small) dataset to use during the class exercise. Demo of multiple layers. lab 2 - zombie detector
Tuesday, 9/29 Object detection Datasets and more datasets publicly available for machine learning research.
Thursday, 10/1 Pose estimation
Tuesday, 10/6 Segmentation The COCO 80 dataset. The ImageNet dataset. The Berkley segmentation data sets. The Berkley DeepDrive data sets.
Thursday, 10/8 Class cancelled - instructor out of town
Tuesday, 10/13 No class - Fall break
Thursday, 10/15 Example vision system - car inspection (BMW project) The BMW factory in Greenville-Spartanburg. lab 2 due
Tuesday, 10/20 Object tracking, tracking metrics lab 3 - object tracking
Thursday, 10/22 Active contours A book on active contours, including dynamic models and tracking. Examples of lip motion tracking, face tracking, and hand tracking.
Tuesday, 10/27 Kalman filter
Thursday, 10/29 GUI event driven programming A tutorial on Win32 GUI programming. A zip file containing the C code for 2019 MS Visual Studio, including the solutions for the coding challenges. Gui coding challenge.
Tuesday, 11/3 No class - Election day
Thursday, 11/5 Gyroscopes and accelerometers A video demo of a gyroscope. An explanation of Precession which explains how a gyroscope works.
Tuesday, 11/10 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 3 due
Thursday, 11/12 System latency A demo of the Oculus Rift. Videos discussing VR motion sickness. lab 4 - camera motion
Tuesday, 11/17 Wrist motion tracking for dietary intake monitoring The research project's webpage. A video demo of the latest app called Watch2Track.
Thursday, 11/19 Camera calibration An online reference for Tsai's camera calibration model. Examples of radial lens distortion.
Tuesday, 11/24 Stereo
Thursday, 11/26 No class - Thanksgiving break
Tuesday, 12/1 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, 12/3 Range image segmentation A journal paper on differential geometry in range images. lab 4 due

ECE 4310/6310 Page / Clemson / ahoover@clemson.edu