50.035 Computer Vision

Home / Education / Undergraduate / Courses / 50.035 Computer Vision

Course Description

This is an advanced undergraduate level course on the concepts, algorithms and system design in computer vision. The particular focus in this course is on the underlying computational/mathematical principles, and data-driven and neural networks (aka “deep learning”) approaches. The course introduces different computer vision tasks such as image/video classification, localization, detection, among others, and discusses different computational algorithms for these tasks, including recently proposed deep learning methods: convolutional neural networks (CNN), recurrent neural networks (RNN), long short-term memory (LSTM), Generative Adversarial Networks (GAN), etc. Students will learn to design, implement, train and debug their own systems and neural networks, and gain understanding of, and the skills to use, cutting-edge technologies in computer vision. A semester-long, 1-D design project requires students to design, implement, and train multi-million parameter neural networks to address real-world computer vision problems.

Prerequisite

01.112 Machine Learning

Learning Objectives

  1. List useful real-world applications of computer vision
  2. Apply and design computer vision systems and algorithms
  3. Evaluate appropriate computer vision algorithms for a variety of problems

Measurable Outcomes

  1. Design image convolution and filtering using OpenCV
    [LO 1,2]
  2. Design image recognition system using data driven approach and linear classification [LO 2]
  3. Design convolutional neural networks using TensorFlow [LO 2]
  4. Develop the training of convolutional neural networks using back-propagation and stochastic gradient descent [LO 2]
  5. Design image recognition system using convolutional neural networks [LO 1,2,3]
  6. Develop the training of convolutional neural networks using GPU programming [LO 2]
  7. Design convolutional neural networks using dropout and batch normalization [LO 2]
  8. Design image segmentation systems using convolutional neural networks [LO 1,2,3]
  9. Design object detection and localization systems using convolutional neural networks [LO 1,2,3]
  10. Design video activity recognition systems using recurrent neural networks [LO 1,2,3]
  11. Develop the training of LSTM using TensorFlow [LO 2]