Instructor Information

Philippe Burlina

Work Phone: 240-228-7257

Nathan Drenkow

Work Phone: 443-778-0237

Course Information

Course Description

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.

Course Goal

This course introduces students to computer vision through intensive use of the open source machine vision libraries including OpenCV, scikit-image, and Caffe. Students in the course will learn to quickly build applications that enable computers to "see" and make decisions based on still images or video input from a camera.

Course Objectives

  • Understand key computer vision techniques and applications

  • Use open-source Python packages to implement systems capable of performing image processing tasks such as image smoothing, image transformations, image segmentation, detecting primitives like edges, lines, contours and corners, or detecting more complex patterns useful for creating panoramas or recognizing objects.

  • Use Python to implement tasks such as camera calibration, optical flow computation, video tracking and 3D reconstruction from stereo.

  • Use Python to implement machine learning algorithms for image classification and object recognition in images and videos. Experiment with developing real time systems for performing face detection, face recognition and object recognition.

    Understand the basics of deep learning techniques for vision applications and train basic deep networks using open-source libraries such as Theano or Caffe.

When This Course is Typically Offered

This course is typically offered in the spring semester at APL.


  • Introduction - computer vision, python
  • Color, image formation, camera calibration
  • Filtering, pyramids, edges
  • Histograms, basic segmentation, morphology, advanced segmentation
  • Biomedical/biomimetic vision
  • Lines, corners, keypoint detectors
  • Video, optical flow, GFTT
  • 3D vision/geometry, calibration/3D recognition
  • Intro to machine learning for Computer Vision - SVM, Boosting, Bagging, Decision trees
  • Intro to Deep Learning
  • ConvNets, R-CNN
  • DNN flavors - (stacked) RBM, autoencoders, CNNs for depth, 3D CNNs

Student Assessment Criteria

Homework 30%
Reading Assignments 30%
Final Project 30%
Final Project Presentation 10%

Computer and Technical Requirements

Python programming experience; prior knowledge of linear algebra, geometry, and probability theory is desired

Participation Expectations

Each week the course starts with a description of the algorithms in two sessions of 60 minutes each separated by a 10 minute break.  The last few minutes of the class will sometimes include brief labs or student presentations.
There will be weekly homeworks that include reading book chapters online, coding assignments, and in-depth reading of technical computer vision articles.  Students will also complete computer vision projects that will span the last half of the course. 
We strongly recommend that you consider bringing your own laptop so that you have the same development environment at home.  We will not be using the classroom computers. We will help with setting up OpenCV and Python on your laptop for interactive video analysis.


Textbook information for this course is available online through the MBS Direct Virtual Bookstore.

Course Notes

There are notes for this course.

Final Words from the Instructor

We are using open source tutorials and reference manuals that are posted online. Our Blackboard site points to these tutorials in the first module of this class. We will mainly use the OpenCV-Python Tutorials written by Alexander Mordvintsev & Abid Rahman K.

Students can also refer to the library of Safari Books Online, which is available free online to JHU students thanks to an agreement between Safari Books Online and the JHU Library System. The link is:
There are several great books on Python and OpenCV available in this library, from O'Reilly and other publishers.

Term Specific Course Website

(Last Modified: 01/27/2016 12:21:17 PM)