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 zoom The training data, test data, training code and test code to use during the class exercise. lab 1 due
Thursday, 9/24 Image classification zoom 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 zoom The YOLO26 onnx model (object detection version) to use during the in-class exercise. Datasets and more datasets publicly available for machine learning research.
Thursday, 10/1 Transfer learning zoom The YOLO26 base model (object detection version saved with checkpointing) to use during the in-class exercise. The transfer learning code. The safety dataset. The chess pieces dataset.
Tuesday, 10/6 Segmentation zoom The YOLO26 onnx segmentation model to use during the in-class exercise. 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 industrial vision systems (BMW, Samsung) zoom The BMW factory in Greenville-Spartanburg, SC. The Samsung factory in Newberry, SC.
Tuesday, 10/20 Object tracking zoom
Thursday, 10/22 Multi-object tracking zoom (Hungarian algorithm, metrics) The video to use during the in-class exercise. The ground truth tracks of people in the video. A video overlay of the ground truth tracks. The results leaderboard of research groups developing new tracking algorithms on the MOT17 dataset. lab 2 due
Tuesday, 10/27 Active contours A book on active contours, including dynamic models and tracking. Examples of lip motion tracking, face tracking, and hand tracking. lab 3 - object tracking
Thursday, 10/29 Pose
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