18-799-RW   Applied Computer Vision

Location: Africa

Units: 12

Semester Offered: Spring

Course discipline


Course description

This course provides students with a solid foundation in the key theories and practical applications of computer vision. It focuses on the techniques required for a variety of domains like robot vision, industrial inspection, and video surveillance. A key focus of the course is on the effective, practical implementation of computer vision solutions using software authored by the students and standard computer vision libraries. An introduction to deep learning and popular architectures therein is also provided.

The course covers optics, sensors, image formation, image acquisition & image representation. Subsequently, we will cover morphological operations, edge detection, region growing, and object segmentation. Building on this, the course then proceeds to deal with object detection and recognition in 2D, addressing interest point operators, gradient orientation histograms, the SIFT descriptor, color histogram intersection and back projection, the Hough transform, and template matching. The problem of recovery of 3D information is then addressed, introducing homogeneous coordinates and transformations, the perspective transformation, camera model, inverse perspective transformation, stereo vision, and epipolar geometry, as well as other depth cues.

Subsequently, the course will provide a brief introduction to a few machine learning techniques like K-means clustering, Markov Random Fields, and Bayesian classification. Color-based segmentation, snakes, and graph cuts will be studied. We will then discuss video image processing, the detection and tracking of moving objects.

The course finishes by addressing the important role played by machine learning in computer vision today. We will introduce deep learning and convolution neural networks as applied to computer vision. Popular architectures and applications will be discussed.

Learning objectives

  • Apply their knowledge of image acquisition, image processing, and image analysis to extract useful information from visual images.
  • Design, implement, and document appropriate, effective, and efficient software solutions for a variety of real-world computer vision problems.
  • Exploit standard computer vision software libraries in the development of these solutions.
  • Apply deep learning to solve classification problems using computer vision.


  • Use OpenCV, C++, CMake, and gcc to write computer vision programs
  • Explain the theory and practical aspects of several computer vision algorithms
  • Understand the applicability of computer vision to a wide range of industrial, consumer, and commercial problems
  • Combine different computer vision algorithms to build practical applications


Prior knowledge of coding in C or C++ would help greatly.


Moise Busogi