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 The webcam-test.py file to test that all software is installed correctly. References for histogram and image nosie.
Thursday, 8/27 Convolution, gradients, Laplacian 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 References for convolution and cross-correlation; the former has a nice animated gif. lab 1 - optical character recognition
Thursday, 9/3 ROC evaluation 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 The Make Sense image annotation tool. The CVAT image annotation tool.
Thursday, 9/10 Edge properties, skeletonization
Tuesday, 9/15 Region properties
Thursday, 9/17 Hysteresis, scale space The original paper on the Canny edge detector.
Tuesday, 9/22 Intro to machine learning Demo of multiple layers. Datasets and more datasets publicly available for machine learning research. lab 1 due
Thursday, 9/24 Image classification lab 2 - zombie detector
Tuesday, 9/29 Object detection
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