Preface
Contents
Introduction
What is computer vision?
A brief history
Book overview
Sample syllabus
A note on notation
Additional reading
Image formation
Geometric primitives and transformations
Geometric primitives
2D transformations
3D transformations
3D rotations
3D to 2D projections
Lens distortions
Photometric image formation
Lighting
Reflectance and shading
Optics
The digital camera
Sampling and aliasing
Color
Compression
Additional reading
Exercises
Image processing
Point operators
Pixel transforms
Color transforms
Compositing and matting
Histogram equalization
Application: Tonal adjustment
Linear filtering
Separable filtering
Examples of linear filtering
Band-pass and steerable filters
More neighborhood operators
Non-linear filtering
Morphology
Distance transforms
Connected components
Fourier transforms
Fourier transform pairs
Two-dimensional Fourier transforms
Wiener filtering
Application: Sharpening, blur, and noise removal
Pyramids and wavelets
Interpolation
Decimation
Multi-resolution representations
Wavelets
Application: Image blending
Geometric transformations
Parametric transformations
Mesh-based warping
Application: Feature-based morphing
Global optimization
Regularization
Markov random fields
Application: Image restoration
Additional reading
Exercises
Feature detection and matching
Points and patches
Feature detectors
Feature descriptors
Feature matching
Feature tracking
Application: Performance-driven animation
Edges
Edge detection
Edge linking
Application: Edge editing and enhancement
Lines
Successive approximation
Hough transforms
Vanishing points
Application: Rectangle detection
Additional reading
Exercises
Segmentation
Active contours
Snakes
Dynamic snakes and CONDENSATION
Scissors
Level Sets
Application: Contour tracking and rotoscoping
Split and merge
Watershed
Region splitting (divisive clustering)
Region merging (agglomerative clustering)
Graph-based segmentation
Probabilistic aggregation
Mean shift and mode finding
K-means and mixtures of Gaussians
Mean shift
Normalized cuts
Graph cuts and energy-based methods
Application: Medical image segmentation
Additional reading
Exercises
Feature-based alignment
2D and 3D feature-based alignment
2D alignment using least squares
Application: Panography
Iterative algorithms
Robust least squares and RANSAC
3D alignment
Pose estimation
Linear algorithms
Iterative algorithms
Application: Augmented reality
Geometric intrinsic calibration
Calibration patterns
Vanishing points
Application: Single view metrology
Rotational motion
Radial distortion
Additional reading
Exercises
Structure from motion
Triangulation
Two-frame structure from motion
Projective (uncalibrated) reconstruction
Self-calibration
Application: View morphing
Factorization
Perspective and projective factorization
Application: Sparse 3D model extraction
Bundle adjustment
Exploiting sparsity
Application: Match move and augmented reality
Uncertainty and ambiguities
Application: Reconstruction from Internet photos
Constrained structure and motion
Line-based techniques
Plane-based techniques
Additional reading
Exercises
Dense motion estimation
Translational alignment
Hierarchical motion estimation
Fourier-based alignment
Incremental refinement
Parametric motion
Application: Video stabilization
Learned motion models
Spline-based motion
Application: Medical image registration
Optical flow
Multi-frame motion estimation
Application: Video denoising
Application: De-interlacing
Layered motion
Application: Frame interpolation
Transparent layers and reflections
Additional reading
Exercises
Image stitching
Motion models
Planar perspective motion
Application: Whiteboard and document scanning
Rotational panoramas
Gap closing
Application: Video summarization and compression
Cylindrical and spherical coordinates
Global alignment
Bundle adjustment
Parallax removal
Recognizing panoramas
Direct vs. feature-based alignment
Compositing
Choosing a compositing surface
Pixel selection and weighting (de-ghosting)
Application: Photomontage
Blending
Additional reading
Exercises
Computational photography
Photometric calibration
Radiometric response function
Noise level estimation
Vignetting
Optical blur (spatial response) estimation
High dynamic range imaging
Tone mapping
Application: Flash photography
Super-resolution and blur removal
Color image demosaicing
Application: Colorization
Image matting and compositing
Blue screen matting
Natural image matting
Optimization-based matting
Smoke, shadow, and flash matting
Video matting
Texture analysis and synthesis
Application: Hole filling and inpainting
Application: Non-photorealistic rendering
Additional reading
Exercises
Stereo correspondence
Epipolar geometry
Rectification
Plane sweep
Sparse correspondence
3D curves and profiles
Dense correspondence
Similarity measures
Local methods
Sub-pixel estimation and uncertainty
Application: Stereo-based head tracking
Global optimization
Dynamic programming
Segmentation-based techniques
Application: Z-keying and background replacement
Multi-view stereo
Volumetric and 3D surface reconstruction
Shape from silhouettes
Additional reading
Exercises
3D reconstruction
Shape from X
Shape from shading and photometric stereo
Shape from texture
Shape from focus
Active rangefinding
Range data merging
Application: Digital heritage
Surface representations
Surface interpolation
Surface simplification
Geometry images
Point-based representations
Volumetric representations
Implicit surfaces and level sets
Model-based reconstruction
Architecture
Heads and faces
Application: Facial animation
Whole body modeling and tracking
Recovering texture maps and albedos
Estimating BRDFs
Application: 3D photography
Additional reading
Exercises
Image-based rendering
View interpolation
View-dependent texture maps
Application: Photo Tourism
Layered depth images
Impostors, sprites, and layers
Light fields and Lumigraphs
Unstructured Lumigraph
Surface light fields
Application: Concentric mosaics
Environment mattes
Higher-dimensional light fields
The modeling to rendering continuum
Video-based rendering
Video-based animation
Video textures
Application: Animating pictures
3D Video
Application: Video-based walkthroughs
Additional reading
Exercises
Recognition
Object detection
Face detection
Pedestrian detection
Face recognition
Eigenfaces
Active appearance and 3D shape models
Application: Personal photo collections
Instance recognition
Geometric alignment
Large databases
Application: Location recognition
Category recognition
Bag of words
Part-based models
Recognition with segmentation
Application: Intelligent photo editing
Context and scene understanding
Learning and large image collections
Application: Image search
Recognition databases and test sets
Additional reading
Exercises
Conclusion
Linear algebra and numerical techniques
Matrix decompositions
Singular value decomposition
Eigenvalue decomposition
QR factorization
Cholesky factorization
Linear least squares
Total least squares
Non-linear least squares
Direct sparse matrix techniques
Variable reordering
Iterative techniques
Conjugate gradient
Preconditioning
Multigrid
Bayesian modeling and inference
Estimation theory
Likelihood for multivariate Gaussian noise
Maximum likelihood estimation and least squares
Robust statistics
Prior models and Bayesian inference
Markov random fields
Gradient descent and simulated annealing
Dynamic programming
Belief propagation
Graph cuts
Linear programming
Uncertainty estimation (error analysis)
Supplementary material
Data sets
Software
Slides and lectures
Bibliography
References
Index