Computer vision has made tantalizing progress in the past five years, bringing us self-driving cars, automated scene parsing and more. Machine Learning is the driving force behind this revolution.

# What

This course will cover the building blocks of modern computer vision systems, notably

- unstructured prediction
- using shallow classifiers such as support vector machines or decision trees
- using deep classifiers (convolutional neural networks)

- structured prediction
- using probabilistic graphical models

- optimal decisions and policies
- from reinforcement learning

- optimization
- dynamic programming
- linear and integer linear programming, quadratic programs

# How

As the name suggests, the course consists of 2 hours of lectures per week, practical computer / programming exercises in python, and a project in which you solve a problem of your choice. The latter has a total duration of two to three weeks full-time and can extend into the semester break.

# What you need to know beforehand

Some prior exposure to machine learning and / or computer vision are helpful but not strictly needed. You should however be comfortable with all of the following by the start of the course:

- multivariable calculus, multivariate geometry
- linear algebra: linear system of equations, eigenproblems
- probability theory: multivariate random variables, first- and second order moments, Bayes theorem
- basic python programming

# How to join

Just come along for the first lecture on Tuesday, October 17th 2017 at 13:45, but: please be on time. Venue: Mathematikon B, Berliner Str. 43, 3rd floor, seminar room B128.

# Lecture notes

**Tuesdays, 13:45 to 15:30 in Mathematikon B, Berliner Str. 43, SR B128**

- 17.10.2017: Undirected Graphical Models: Introduction
- 24.10.2017: Undirected Graphical Models: Markov Random Field on a grid, MCMC sampling
- 7.11.2017: Markov Random Field, Integer Linear Programs (updated version)
- 14.11.2017: Belief Propagation
- 21.11.2017: Gaussian Markov Random Fields
- 5.12.2017: MLP, backpropagation
- 12.12.2017: Neural Network architectures
- 9.1.2018: Graphical Models and Neural Networks
- 16.1.2018: Reinforcement Learning
- 23.1.2018: Robotics

# Exercises

**Thursdays, 13:00 to 15:00 in Mathematikon B, Berliner Str. 43, SR B128 (same room as the lecture)**

Please contact Sven Peter at mlcv1718@gmail.com for questions regarding the exercises.

- Python Tutorial [jupyter notebook] [PDF]
*Exercise 01:*[Exercise sheet] [ex01_train.png] [ex01_test.png] [ex01_train_labels.npy]*Solution:*[PDF] [jupyter notebook]*Exercise 02:*[Exercise sheet] [ex02_template.py.txt]*Solution:*[PDF] [jupyter notebook]*Exercise 03:*[Exercise sheet (updated with correct deadline)]*Solution:*[PDF] [jupyter notebook]*Exercise 04:*[Exercise sheet (second updated version)] [disparity.npy] [map_solve.py]*Solution*[Belief Propagation]*Exercise 05:*[Exercise sheet (updated version with a fixed typo)] [fn.npy]*Solution:*[Jupyter notebook]*Exercise 06:*[Exercise sheet] [CREMI images]*Solution:*[PDF] [Jupyter notebook]*Exercise 07:*[Exercise sheet (second updated version from 19.12.2017)]*Exercise 08:*[Exercise sheet]*Exercise 09:*[Exercise sheet]*Solution:*[Pseudocode for training]*Exercise 10:*[Exercise sheet] [Notebook]*Final project proposals:*[Google Docs] [PDF]*Final project regulations:*[PDF]

# Literature

- Prince, Simon JD.
*Computer vision: models, learning, and inference.*Cambridge University Press, 2012.

This course will talk about methods which can be used to e.g. segment urban scenes from the CityScape dataset.