This course introduces students to key computer vision techniques for real-time applications. Students will learn to quickly build applications that enable computers to "see," and make decisions based on still images or video streams. Through regular assignments and in class laboratory exercises (students are advised to bring their own laptop to class), students will build real-time systems for performing tasks including object recognition and face detection and recognition. Key computer vision topics addressed in the course include human and machine vision: how does the brain recognize objects?, and what can we emulate?, camera models and camera calibration; edge, line and contour detection; optical flow and object tracking; machine learning techniques; image features and object recognition; stereo vision; 3D vision; face detection and face recognition. Students will be exposed to the mathematical tools that are most useful in the implementation of computer vision algorithms.
Python programming experience, and prior knowledge of linear algebra, geometry, and probability theory is desired.