Computer Vision: Foundations

Lecturer: Prof. Fred Hamprecht; Teaching Assistant: Steffen Wolf

Note: Over the semester holidays, I've had much time to think about the content that will best serve you in the future. As a result, the proposed curriculum has changed relative to an earlier version of the web page. Please make sure this is still what you are looking for.

The course is suitable for Master students as well as ambitious Bachelor students.

Computer vision is one of the few key technologies that is changing the face of our society and that will deeply impact our lives in the future. However, modern computer vision pipelines build on a wealth of quite different concepts and techniques that will leave most novices confused.

The aim of this lecture is to introduce nontrivial foundational algorithms and concepts that are used in many pipelines.

Most computer vision pipelines use a subset of the following:

  • Regression
  • Classification
  • Feature extraction
  • Cluster analysis
  • Regularization
  • Optimization
  • Dimension reduction
  • Matching

In response, we will study the following concepts.


  • Nonparametric regression (median filtering, robust smoothers, non-local means)
  • Linear system theory (Fourier and friends)
  • Bilinear decompositions (PCA and friends)
  • k-means, multicut, modularity clustering, mean shift: ways of grouping a set of points, or of partitioning a graph
  • Metric learning
  • Dynamic programming and distance transforms, skeletonization
  • Optimal transport
  • Basics of either convolutional neural networks, or of computational photography (based on popular vote)


2 hours of lectures per week, pen and paper and python programming exercises.


The following are strictly required:

  • multivariable calculus: gradients
  • linear algebra: linear system of equations, eigenproblems
  • probability theory: multivariate random variables
  • knowledge of any programming language


No single book covers the contents of this course; but the following are helpful:

  • Birchfield: Image Processing and Analysis
  • Jaehne: Digital Image Processing
  • Vetterli, Kovacevic, Goyal: Foundations of Signal Processing
  • Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms
  • Sonka, Hlavac, Boyle: Image Processing, Analysis, and Machine Vision

How to join

Just come along for the first lecture on Tuesday, October 16th 2018 at 14:15. Please be on time.

Venue: Mathematikon B (not A!), Berliner Str. 43, 3rd floor, seminar room B128. Simply ring the bell to open the front door.

Lecture Materials



The exercises take place on Friday at 13:00, Berliner Str. 43, 3rd floor, seminar room B128.

The exercise sheets can be downloaded here:

Exercise 01

Exercise 02

Exercise 03

Exercise 04

Exercise 05

Exercise 06

Exercise 07

Your can download the Python Tutorial here