Skip to content

Introduction to Computer Vision

Free Course

Offered at Georgia Tech as CS 6476

Related Nanodegree Program

Deep Learning

In collaboration with
  • Georgia Institute of Technology

About this course

This course provides an introduction to computer vision including fundamentals of image formation, camera imaging geometry, feature detection and matching, multiview geometry including stereo, motion estimation and tracking, and classification. We’ll develop basic methods for applications that include finding known models in images, depth recovery from stereo, camera calibration, image stabilization, automated alignment (e.g. panoramas), tracking, and action recognition. We focus less on the machine learning aspect of CV as that is really classification theory best learned in an ML course.

The focus of the course is to develop the intuitions and mathematics of the methods in lecture, and then to learn about the difference between theory and practice in the problem sets. All algorithms work perfectly in the slides. But remember what Yogi Berra said: In theory there is no difference between theory and practice. In practice there is. (Einstein said something similar but who knows more about real life?) In this course you do not, for the most part, apply high-level library functions but use low to mid level algorithms to analyze images and extract structural information.

What you will learn

  1. Introduction
    • Introduction
  2. Image Processing for Computer Vision
    • Linear image processing
    • Model fitting
    • Frequency domain analysis
  3. Camera Models and Views
    • Camera models
    • Stereo geometry
    • Camera calibration
    • Multiple views
  4. Image Features
    • Feature detection
    • Feature descriptors
    • Model fitting
  5. Lighting
    • Photometry
    • Lightness
    • Shape from shading
  6. Image Motion
    • Overview
    • Optical flow
  7. Tracking
    • Introduction to tracking
    • Parametric models
    • Non-parametric models
    • Tracking considerations
  8. Classification and Recognition
    • Introduction to recognition
    • Classification: Generative models
    • Classification: Discriminative models
    • Action recognition
  9. Useful Methods
    • Color spaces and segmentation
    • Binary morphology
    • 3D perception
  10. Human Visual System
    • The retina
    • Vision in the brain

Prerequisites and requirements

  • Data structures: You'll be writing code that builds representations of images, features, and geometric constructions.
  • A good working knowledge of Matlab and/or Python with NumPy. The lecture videos use Matlab for occasional demonstration because the instructor is too old to change. Problem sets will be done in Matlab or Python. As mentioned in the resources note below, you can use either Matlab or the open source version Octave.
  • This course has more math than many CS courses: Linear algebra, vector calculus, and linear algebra (that is not a typo).
  • No prior knowledge of vision is assumed though any experience with Signal Processing is helpful.

See the Technology Requirements for using Udacity.

Why take this course?

Images have become ubiquitous in computing. Sometimes we forget that images often capture the light reflected from a physical scene. This course gives you both insight into the fundamentals of image formation and analysis, as well as the ability to extract information much above the pixel level. These skills are useful for anyone interested in operating on images in a context-aware manner or where images from multiple scenarios need to be combined or organized in an appropriate way.

Learn with the best.

  • Aaron Bobick
    Aaron Bobick

    Instructor

  • Irfan Essa
    Irfan Essa

    Instructor

  • Arpan Chakraborty
    Arpan Chakraborty

    Instructor