This document is derived of the lecture by Prof. Dr. T. Brox & Dr. O. Ronneberger & Prof. Dr. M. Teschner at the University of Freiburg in semester WS1516.

Introduction

Digital image

Human vison

Camera

Sampling

Continuous vs discrete

Aliasing and Moiré effect

Nyquist-Shannon theorem

Input signal can be reconstructed from samples in a unique way if the sampling rate is at least two times the badwith of the input signal

Downsampling

Upsampling

Quantization

Noise

Signal-to-noise ratio (SNR)

Point operations

Constrast enhancement

Gamma correction

Gray value histogram

Difference image

Linear filters

Convolution

Discrete convolution

Gauss filter

Boundary conditions

Box filter

Recursive filter (Deriche filter)

Derivative filters

Gaussian derivative

Higher order derivatives

Energy Minimization

Example: image denoising

Advantages

Problems

Example: image denoising

Convexity

A functions is convex if

\(f((1 - \alpha)x_1 + \alpha x_2) \leq (1 - \alpha)f(x_1) + \alpha f(x_2)\)

A functions is strictly convex if

\(f((1 - \alpha)x_1 + \alpha x_2) < (1 - \alpha)f(x_1) + \alpha f(x_2)\)

Jacobi method

Gauß-Seidel method

Successive over-relaxation (SOR)

Conjugate gradient (CG)

Multigrid methods

Unidirectional (cascadic) multigrid

Correcting (bidirectional) multi-grid

Full multigrid

Integer problems

Variational Methods

Continuous energies

Consistency

Calculus of variation

Calculus of variation and Gâteaux derivative to compute gradient of a functional \(\frac{\delta E(u(x))}{\delta u(x)}\) with respect to a function \(u(x)\)

Gâteaux derivative

Denoising example

\(E(u(x)) = \int_\Omega (u(x) - I(x))^2 + \alpha|\nabla u(x)|^2 dx\)

Implementation

Discontinuity preserving regularization

Bayesian approach

Energy minimization

Interpretation

Gradient descent

Faster: lagged diffusivity

Motion estimation

Optic flow constraint

Lucas-Kanade method

Global optic flow estimation

Horn-Schnuck model

Problems

Average angular error

Motion discontinuities and occlusions

Illumination changes

Large motion

Segmentation and Grouping

Segmentation

Feature space

Edge-based vs region-based methods

Thresholding

Clustering

Greedy heuristics

Watershed segmentation

Energy minimization: snakes model

Implicit representation of contours

Region-based active contours

Graph cuts for segmentation

Semantic segmentation

Interest points and local descriptors

Block matching

Interest points

Corner detection

Characteristic scale

Scale invariant feature transform (SIFT)

Block matching at interest points

Invariant: local descriptors

scale invariance

affine invariance

affine region detector

histograms

SIFT/HOG descriptor

Algorithm

  1. compute gradient orientation and magnitude at each pixel
  2. compute orientation indicator at each pixel
    • create \(N \times M \times 8\) array and init with zero
    • quantize the orientation at each pixel and add respective magnitude to the respective entry in array
  3. local integration results in orientation histogram (smooth array with gaussian kernel)
  4. smooth in orientation direction
  5. sample feature vectors from the image
  6. normalize the feature vector

Shape context

Descriptors learned with convolutional networks

Unsupervised training to trigger invariant features

Shapes from X

Stereo reconstruction

Multiview

Structure from motion

Decomposition of the projection matrix

How it works

loop closing

Shape from silhouette

as 3D segmentation

shape from shading

Bidirectional reflectance distribution function (BRDF)

Lambertian reflectance

Horn

Ikeuchi-Horn

SIRFS: Shape, Illumination and Reflectance from Shading

Shape from defocus

Shape from texture

Object Recognition and deep learning

Classification problem

Support vector machine

Nearest neighbor classifier

Feature representation

Invariance requirements in object recognition

Feature learning

deep network for image classification

Large ConvNet

Back-propagation
Nice properties

Localization tasks

Sliding window approach

deep network classification on object window proposals (R-CNN)

Object recognition benchmarks

Precision-recall curves

Rendering Pipeline

Rendering

Rasterization

Rendering pipline

Main stages

Vertex processing (Geometry stage)

Model/View Transform
Lighting

Projection Transform

Clipping

Viewport Transform / Screen Mapping

Fragment processing

Fragment attributes are processed and tests are performed

Attribute processing

Tests

Blending / Merging

OpenGL

OpenGL 1.0

OpenGL 2.0

OpenGL 3.0

OpenGL 3.2

OpenGL 4.1

OpenGL 4.3

GPU Data Flow

Data Transfer

Shader

written in OpenGL Shading Language GLSL, runs on GPU, vertex and fragment shader are mandatory

Vertex shader

Fragment shader

Transformations

Affine transformations

Points and Vectors

Homogeneous Coordinates of Points

Homogeneous Coordinates of Vectors

Affine Transformations and Projections

Examples

Orthogonal matrices

Basis Transform

application

planes and normals

Composing transformations

Projection

in 2D

Classification

General Case

Discussion

in 3D

OpenGL: View Volume

Perspective projection

Parallel projection

OpenGL Matrices

Matrix Stack

Lightning

Radiometric Quantities

Solid Angle

Inverse square law

Radiance

Visible color spectrum

Human Eye

CIE Color Space

CIE xy Chromaticity diagram

Display Devices

RGB Color Space

Lightning models

diffuse vs specular

Lambert’s Cosine Law

specular reflection

ambient light

Phong illumination model

Considering Distances

Shading models

Mach bad Effect

Shading models

Rasterization

Transform geometric primitives into a raster (pixel positions).

Line

Circle

Polygons

Shadow

Projection Shadows

Shadow Maps

Scene rendering

Aliasing

Sampling

Shadow volumes

Z-Fail

Texture Mapping

Pipeline

Projector functions

Corresponder functions

Value transform

Image texturing

Transparency and Reflection

Stipple patterns

Color Blending

Depth ordering

Convex objects

arbitrarily shaped objects

Binary space partitioning (BSP)

Querying (rendering)

Discussion

Depth peeling

Discussion

Reflection

Angle of incidence is equal to the angle of reflection.

Planar surfaces

Arbitrary surfaces: Environment Mapping

Steps

Cubic mapping

Spherical mapping

Discussion