General Information


  • You don't need to register for the class, but please register to our mailing list.
  • If you plan to take the exam, please register via the campus portal.

Lecture Overview

This lecture will give an introduction to principles, techniques and models in computer vision. In particular, we will discuss probabilistic models in computer vision where prior knowledge can be incorporated elegantly using the language of graphical models. We will introduce the basic concepts of probabilistic graphical models, discuss learning and inference techniques, and show a variety of computer vision applications, such as human pose estimation in 2D and 3D from images and videos, image denoising, 3D perception, motion estimation and object detection. Apart from basic mathematical principles (analysis and linear algebra) no prior knowledge is assumed for this course.



  • Probability Theory
  • Graphical Models
  • Factor Graphs
  • Inference and Learning

Computer Vision Applications:

  • Human Pose Estimation
  • Human Body Models
  • Image Denoising
  • Stereo
  • Optical Flow
  • Image Segmentation
  • Object Detection

Lecture Materials

# Date Lecturer, TA Topic Slides Exercises Literature
01 11.04.16 Andreas, Joel Introduction Slides Exercise 1 Chapter 1 in Barber
02 18.04.16 Andreas, Joel Graphical Models 1 Slides Exercise 2 Chapters 3+4 in Barber
03 25.04.16 Andreas, Joel Graphical Models 2 Slides Chapter 5.1 in Barber
04 02.05.16 Andreas, Joel Graphical Models 3 Slides Exercise 3 Chapter 5 in Barber
05 09.05.16 Andreas, Joel Graphical Models 4 Slides Chapter 9 in Barber
06 23.05.16 Javier, Naureen Body Models 1 Slides Exercise 4Solution 4
07 30.05.16 Javier, Naureen Body Models 2 Slides Exercise 5
08 06.06.16 Gerard, Naureen Body Models 3 Slides
09 13.06.16 Javier, Naureen Body Models 4 Slides Exercise 6
10 20.06.16 Gerard, Joel Object Detection 1 Slides Exercise 7 Chpt. 14 in Sz & ISM VJ DT
11 27.06.16 Gerard, Joel Object Detection 2 Slides Chpt. 14 in Sz & ISM VJ DT
12 04.07.16 Andreas, Joel Stereo Slides Chapter 7.1+11 in Szeliski
13 11.07.16 Andreas, Joel Optical Flow Slides Chapter 8 in Szeliski
14 18.07.16 Andreas, Joel Segmentation Slides Chapter 5 in Sz & NC GC TB


The exams will take place on 21.7.2016 and 25.7.2016, please mark your calendars.

  • 50% of the exercise points are required to participate in the exam
  • Exercises can be solved by individuals or in groups of two

Preliminary schedule (subject to change):

  • 21.7.: 9:00 Simon Wegendt
  • 21.7.: 9:30 Gustavo Dambros
  • 21.7.: 10:00 Ya Wang
  • August/September: Edgar Klenske & Maren Mahsereci

Python Tutorials

Programming Exercises

The programming exercises will require Linux, C++, Python and OpenCV. If you have no Linux box at home, we recommend using a virtual machine to run Linux inside your OS. We provide an Ubuntu image (32 bit, will also run on 64 bit computers) for that purpose which has C++, Python, OpenCV, Eclipse and PyDev pre-installed. Here is how you get started:

  1. Download VirtualBox 4.3.16 for your OS version from:
  2. Make sure your computer has at least 20 GB of free space
  3. Download the Ubuntu image from:
  4. Extract the image and start VirtualBox
  5. Select New → Specify a name like “ubuntu” and select “Linux” and “Ubuntu (32 bit)”
  6. Specify the memory you want to use for the VM (half of your system memory, >=2048 MB)
  7. Use an existing virtual hard drive → select the image → Create
  8. In “Settings”, select General→Advanced→Shared Clipboard: “Bidirectional”
  9. In “Settings”, select System→Processor→Processor(s): All cores you have minus one
  10. In “Settings”, select Display→Video→Video Memory: Half of the maximum available
  11. In “Settings”, select Display→Video→Enable 3D Acceleration
  12. In “Settings”, Shared Folders: Add the folders of your host system you want to have access to
  13. Now you should be ready to go: Start Ubuntu, launch Eclipse and run the lena test script!
  14. Computername, user and (superuser-)password are: “ubuntu”
  15. If you are unfamiliar with Ubuntu, XFCE or Python, we recommend reading the following tutorials:

Additional Materials

Computer Vision

Machine Learning