Computer Vision
Second semester 2016
Andrés Marrugo, PhD Universidad Tecnológica de Bolívar
Aims and Scope
This semester course is an introduction to computer vision. It is aimed at graduate students in the Faculty of Engineering. We will focus on the practical and theoretical aspects of techniques in computer vision.
At the end of the lectures, one would be able to:
- Have clear idea of challenges in computer vision due to increasing use in mobile applications.
- Understand many different computer vision algorithms and approaches.
- Implement computer vision algorithms for mid-level vision tasks.
Useful Resources
Tutorials, review materials
- MATLAB tutorial
- More MATLAB tutorials: basic operations, programming, working with images
- Linear algebra review
- Random variables review
MATLAB reference
Outline
This is a new course, this website will be updated as we go along.
Lecture 1: Introduction
We will be discussing the main aspects and motivation for computer vision.
Lecture 2: Perspective projection
We will be studying the main aspects about perspective projection and the pinhole camera model.
Reading
Assignment 1
In this assignment you will study the basics of projective geometry. You will study the representations of points lines and planes, as well as transformations. The assignment is due on 2016-09-02 at 11:00 pm. The assignment and the data:
Supporting material
- Lecture notes by Magnus Oskarsson
- Homogeneous Coordinates and Transformations of the Plane
- Projective Geometry and Transformations in 2D
Lecture 3: Cameras
Cameras with lenses and properties. Thin lens formula, depth of field, field of view, and distorsions.
Lecture 4: Color
We will discuss the physics of color, human color perception and models of image color.
Reading
Lecture 5: Linear Filtering
Linear filters, convolution kernel, smoothing and sharpening.
Reading
Lecture 6: Frequency representation, pyramids and filter banks.
In this lecture we will discuss the different representation for images and the sampling problems.
Lecture 6 slides - frequency Lecture 6 slides - pyramids
Reading
Questions Lectures 1-6
If you have worked out the lecture questions, please send them to the following link.
Assignment 2
The goal of this assignment is to learn to work with images in MATLAB. The assignment is due on 2016-09-24 at 11:59 pm. The assignment and the data:
Lecture 7: Edge Detection
We will introduce the general approach towards image edge detection.
Reading
Lecture 8: Corner Detection
We will introduce the general approach towards image edge detection.
Lecture 8 slides
Harris corner detector
Reading
Lecture 9: SIFT
In this lecture we will discuss Scale-Invariant Keypoints.
Assignment 3
The goal of this assignment is to implement a Laplacian blob detector. The assignment is due on 2016-10-22 at 11:59 pm. The assignment and the data:
Lecture 10: Optical Flow
We will introduce motion estimation in computer vision.
Reading
Lecture 11: Fitting
In this lecture we will discuss the main aspects of fitting data to a parametric model, especially under the assumption of noisy data.
Reading
Lecture 12: Hough Transform
We continue on the topic of fitting, this time via the Hough Transform.
Reading
Lecture 13: Alignment
Registration or alignment is the problem of finding a transformation that takes one dataset to another.
Reading
In class assignment 4
The goal of this assignment is to implement a naive RANSAC line fiting. The assignment is due on 2016-10-16 at 11:00 pm. The code:
Lecture 14: Calibration
Calibrating a single camera.
Reading
Lecture 15: Single-view Modeling
Measuring objects from a single image.
Reading
Lecture 16: Epipolar Geometry
Two or more cameras.
Reading
Assignment 5
The goal of this assignment is to implement robust homography and fundamental matrix estimation to register pairs of images separated either by a 2D or 3D projective transformation. The assignment is due on 2016-12-02 at 12:00 m. The assignment and the data: