CSE 185 Introduction To Computer Vision: Fitting and Alignment
CSE 185 Introduction To Computer Vision: Fitting and Alignment
• Reading: Chapter 4
Correspondence and alignment
• Correspondence: matching points, patches,
edges, or regions across images
≈
Fitting and alignment: Methods
• Global optimization / Search for parameters
– Least squares fit
– Robust least squares
– Iterative closest point (ICP)
• Hypothesize and test
– Hough transform
– RANSAC
Hough transform
Good
• Robust to outliers: each point votes separately
• Fairly efficient (much faster than trying all sets of parameters)
• Provides multiple good fits
Bad
• Some sensitivity to noise
• Bin size trades off between noise tolerance, precision, and
speed/memory
– Can be hard to find sweet spot
• Not suitable for more than a few parameters
– grid size grows exponentially
Common applications
• Line fitting (also circles, ellipses, etc.)
• Object instance recognition (parameters are affine transform)
• Object category recognition (parameters are position/scale)
RANSAC
RANdom SAmple Consensus:
Learning technique to estimate
parameters of a model by random
sampling of observed data
RANSAC
Algorithm:
1. Sample (randomly) the number of points required to fit the model
2. Solve for model parameters using samples
3. Score by the fraction of inliers within a preset threshold of the model
Repeat 1-3 until the best model is found with high confidence
RANSAC
Line fitting example
Algorithm:
1. Sample (randomly) the number of points required to fit the model (#=2)
2. Solve for model parameters using samples
3. Score by the fraction of inliers within a preset threshold of the model
Repeat 1-3 until the best model is found with high confidence
RANSAC
Line fitting example
Algorithm:
1. Sample (randomly) the number of points required to fit the model (#=2)
2. Solve for model parameters using samples
3. Score by the fraction of inliers within a preset threshold of the model
Repeat 1-3 until the best model is found with high confidence
RANSAC
Line fitting example
NI 6
Algorithm:
1. Sample (randomly) the number of points required to fit the model (#=2)
2. Solve for model parameters using samples
3. Score by the fraction of inliers within a preset threshold of the model
Repeat 1-3 until the best model is found with high confidence
RANSAC
Algorithm: N I 14
1. Sample (randomly) the number of points required to fit the model (#=2)
2. Solve for model parameters using samples
3. Score by the fraction of inliers within a preset threshold of the model
Repeat 1-3 until the best model is found with high confidence
How to choose parameters?
• Number of samples N
– Choose N so that, with probability p, at least one random sample is free
from outliers (e.g. p=0.99) (outlier ratio: e )
• Number of sampled points s
– Minimum number needed to fit the model
• Distance threshold
– Choose so that a good point with noise is likely (e.g., prob=0.95) within threshold
– Zero-mean Gaussian noise with std. dev. σ: t2=3.84σ2
proportion of outliers e
N log1 p / log 1 1 e
s
s
2
5%
2
10%
3
20%
5
25%
6
30%
7
40%
11
50%
17
3 3 4 7 9 11 19 35
4 3 5 9 13 17 34 72
5 4 6 12 17 26 57 146
6 4 7 16 24 37 97 293
7 4 8 20 33 54 163 588
8 5 9 26 44 78 272 1177
RANSAC
Good
• Robust to outliers
• Applicable for larger number of objective function parameters
than Hough transform
• Optimization parameters are easier to choose than Hough
transform
Bad
• Computational time grows quickly with fraction of outliers
and number of parameters
• Not good for getting multiple fits
Common applications
• Computing a homography (e.g., image stitching)
• Estimating fundamental matrix (relating two views)
How do we fit the best alignment?
Alignment
• Alignment: find parameters of model that
maps one set of points to another
• Typically want to solve for a global
transformation that accounts for *most* true
correspondences
• Difficulties
– Noise (typically 1-3 pixels)
– Outliers (often 50%)
– Many-to-one matches or multiple objects
Parametric (global) warping
p = (x,y) p’ = (x’,y’)
Transformation T is a coordinate-changing machine:
p’ = T(p)
original
Transformed
affine perspective
Scaling
• Scaling a coordinate means multiplying each of its components by a
scalar
• Uniform scaling means this scalar is the same for all components:
2
Scaling
• Non-uniform scaling: different scalars per component:
X 2,
Y 0.5
Scaling
• Scaling operation:
x ' ax
y ' by
• Or, in matrix form:
x ' a 0 x
y ' 0 b y
scaling matrix S
2D rotation
(x’, y’)
(x, y)
x’ = x cos() - y sin()
y’ = x sin() + y cos()
2D rotation
Polar coordinates…
x = r cos ()
y = r sin ()
x’ = r cos ( + )
(x’, y’) y’ = r sin ( + )
Trig Identity…
(x, y) x’ = r cos() cos() – r sin() sin()
y’ = r sin() cos() + r cos() sin()
Substitute…
x’ = x cos() - y sin()
y’ = x sin() + y cos()
2D rotation
This is easy to capture in matrix form:
R
Even though sin() and cos() are nonlinear functions of ,
– x’ is a linear combination of x and y
– y’ is a linear combination of x and y
x
x' cos sin x x 1 0 t x
y ' sin cos y y 0 1 t y
y
1
Rotate
Translate
x
x a b c
y d e
f
y Affine is any combination of
1 translation, scale, rotation, shear
Affine
Affine transformation
A1
A2 A3 B1
B2 B3
Given matched points in {A} and {B}, estimate the translation of the object
xiB xiA t x
B A t
yi yi y
Example: solving for translation
A1
A2 A3 (tx, ty) B1
B2 B3
A1
A5
B4
A2 A3 (tx, ty) B1
A4 B2 B3
B5
Problem: outliers
RANSAC solution
1. Sample a set of matching points (1 pair) xiB xiA t x
2. Solve for transformation parameters B A t
3. Score parameters with number of inliers yi yi y
4. Repeat steps 1-3 N times
Example: solving for translation
B4
A1 B5 B6
A2 A3 (tx, ty) B1
A4 B2 B3
A5 A6
(tx, ty)
https://www.youtube.com/watch?v=m64E47uvPYc
https://www.youtube.com/watch?v=uzOCS_gdZuM
Example: aligning boundaries
p q
Example: solving for translation
(tx, ty)
Input
Image Stored
Image