Fitting and Registration

50
Fitting and Registration Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/15/11

description

02/15/11. Fitting and Registration. Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem. Announcements. HW 1 due today HW 2 out on Thursday Compute edges and find circles in image using Hough transform - PowerPoint PPT Presentation

Transcript of Fitting and Registration

Page 1: Fitting and Registration

Fitting and Registration

Computer VisionCS 543 / ECE 549

University of Illinois

Derek Hoiem

02/15/11

Page 2: Fitting and Registration

Announcements

• HW 1 due today

• HW 2 out on Thursday– Compute edges and find circles in image using Hough

transform– Create dictionary of texture responses and use it to match

texture images– Derive the EM algorithm for a mixture of multinomials– Estimate foreground and background color distributions

using EM and segment the object using graph cuts

Page 3: Fitting and Registration

Fitting: find the parameters of a model that best fit the data

Alignment: find the parameters of the transformation that best align matched points

Page 4: Fitting and Registration

Example: Computing vanishing points

Slide from Silvio Savarese

Page 5: Fitting and Registration

H

Example: Estimating an homographic transformation

Slide from Silvio Savarese

Page 6: Fitting and Registration

Example: Estimating “fundamental matrix” that corresponds two views

Slide from Silvio Savarese

Page 7: Fitting and Registration

AExample: fitting an 2D shape template

Slide from Silvio Savarese

Page 8: Fitting and Registration

Example: fitting a 3D object model

Slide from Silvio Savarese

Page 9: Fitting and Registration

Critical issues: noisy data

Slide from Silvio Savarese

Page 10: Fitting and Registration

ACritical issues: intra-class variability

“All models are wrong, but some are useful.” Box and Draper 1979

Slide from Silvio Savarese

Page 11: Fitting and Registration

H

Critical issues: outliers

Slide from Silvio Savarese

Page 12: Fitting and Registration

Critical issues: missing data (occlusions)

Slide from Silvio Savarese

Page 13: Fitting and Registration

Fitting and Alignment• Design challenges

– Design a suitable goodness of fit measure• Similarity should reflect application goals• Encode robustness to outliers and noise

– Design an optimization method• Avoid local optima• Find best parameters quickly

Page 14: Fitting and Registration

Fitting and Alignment: Methods

• Global optimization / Search for parameters– Least squares fit– Robust least squares– Iterative closest point (ICP)

• Hypothesize and test– Generalized Hough transform– RANSAC

Page 15: Fitting and Registration

Simple example: Fitting a line

Page 16: Fitting and Registration

Least squares line fitting•Data: (x1, y1), …, (xn, yn)•Line equation: yi = m xi + b•Find (m, b) to minimize

022 yAApA TT

dBdE

)()()(2

1

11 2

2

11

1

2

ApApyApyy

yAp

TTT

nn

n

i ii

y

y

bm

x

xy

bm

xE

n

i ii bxmyE1

2)((xi, yi)

y=mx+b

yAAApyAApA TTTT 1

Matlab: p = A \ y;

Modified from S. Lazebnik

Page 17: Fitting and Registration

Problem with “vertical” least squares• Not rotation-invariant• Fails completely for vertical

lines

Slide from S. Lazebnik

Page 18: Fitting and Registration

Total least squaresIf (a2+b2=1) then Distance between point (xi, yi) is

|axi + byi + c|

n

i ii dybxaE1

2)( (xi, yi)

ax+by+c=0Unit normal:

N=(a, b)

Slide modified from S. Lazebnik

proof: http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

Page 19: Fitting and Registration

Total least squaresIf (a2+b2=1) then Distance between point (xi, yi) is

|axi + byi + c|

Find (a, b, c) to minimize the sum of squared perpendicular distances

n

i ii dybxaE1

2)( (xi, yi)

ax+by+c=0

n

i ii cybxaE1

2)(

Unit normal: N=(a, b)

Slide modified from S. Lazebnik

Page 20: Fitting and Registration

Total least squaresFind (a, b, c) to minimize the sum of squared perpendicular distances

n

i ii dybxaE1

2)( (xi, yi)

ax+by+c=0

n

i ii cybxaE1

2)(Unit normal:

N=(a, b)

0)(21

n

i ii cybxacE ybxax

nbx

nac

n

i in

i i 11

ApAp TT

nn

n

i ii ba

yyxx

yyxxyybxxaE

2

11

12))()((

Solution is eigenvector corresponding to smallest eigenvalue of ATA

See details on Raleigh Quotient: http://en.wikipedia.org/wiki/Rayleigh_quotient

ppApAp pp ApAp T

TTTTT minimize1 s.t.minimize

Slide modified from S. Lazebnik

Page 21: Fitting and Registration

Recap: Two Common Optimization Problems

Problem statement Solution

1 s.t. minimize xxAxAx TTT

xxAxAx

T

TT

minimize

0 osolution tlsq trivial-non Mx

1..21 :)eig(],[

vxAAv

n

T

Problem statement Solution

bAx osolution t squaresleast bAx \

2 minimize bAx bAAAx TT 1

(matlab)

Page 22: Fitting and Registration

Search / Least squares conclusionsGood• Clearly specified objective• Optimization is easy (for least squares)

Bad• Not appropriate for non-convex objectives

– May get stuck in local minima• Sensitive to outliers

– Bad matches, extra points• Doesn’t allow you to get multiple good fits

– Detecting multiple objects, lines, etc.

Page 23: Fitting and Registration

Robust least squares (to deal with outliers)General approach: minimize

ui (xi, θ) – residual of ith point w.r.t. model parameters θρ – robust function with scale parameter σ

;,xu iii

The robust function ρ • Favors a configuration with small residuals• Constant penalty for

large residuals

n

1i2

ii )bxmy(u

Slide from S. Savarese

Page 24: Fitting and Registration

Robust Estimator (M-estimator)

1. Initialize σ=0

2. Choose params to minimize:– E.g., numerical optimization

3. Compute new σ:

4. Repeat (2) and (3) until convergence

errormedian5.1

i i

i

dataerrordataerror

22

2

),(),(

Page 25: Fitting and Registration

Demo – part 1

Page 26: Fitting and Registration

Hypothesize and test1. Propose parameters

– Try all possible– Each point votes for all consistent parameters– Repeatedly sample enough points to solve for parameters

2. Score the given parameters– Number of consistent points, possibly weighted by distance

3. Choose from among the set of parameters– Global or local maximum of scores

4. Possibly refine parameters using inliers

Page 27: Fitting and Registration

x

y

b

m

y = m x + b

Hough transformGiven a set of points, find the curve or line that explains the data points best

P.V.C. Hough, Machine Analysis of Bubble Chamber Pictures, Proc. Int. Conf. High Energy Accelerators and Instrumentation, 1959

Hough space

Slide from S. Savarese

Page 28: Fitting and Registration

x

y

b

m

x

y m3 5 3 3 2 23 7 11 10 4 32 3 1 4 5 22 1 0 1 3 3

b

Hough transform

Slide from S. Savarese

Page 29: Fitting and Registration

x

y

Hough transformIssue : parameter space [m,b] is unbounded…

P.V.C. Hough, Machine Analysis of Bubble Chamber Pictures, Proc. Int. Conf. High Energy Accelerators and Instrumentation, 1959

Hough space

siny cosx

Use a polar representation for the parameter space

Slide from S. Savarese

Page 30: Fitting and Registration

features votes

Hough transform - experiments

Slide from S. Savarese

Page 31: Fitting and Registration

features votes

Issue: Grid size needs to be adjusted…

Hough transform - experiments

Noisy data

Slide from S. Savarese

Page 32: Fitting and Registration

Issue: spurious peaks due to uniform noise

features votes

Hough transform - experiments

Slide from S. Savarese

Page 33: Fitting and Registration

Hough transform • Fitting a circle (x, y, r)

Page 34: Fitting and Registration

Hough transform conclusionsGood• 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)

Page 35: Fitting and Registration

RANSAC

Algorithm:1. Sample (randomly) the number of points required to fit the model2. 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

Fischler & Bolles in ‘81.

(RANdom SAmple Consensus) :

Page 36: Fitting and Registration

RANSAC

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

Illustration by Savarese

Line fitting example

Page 37: Fitting and Registration

RANSAC

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

Line fitting example

Page 38: Fitting and Registration

RANSAC

6IN

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

Line fitting example

Page 39: Fitting and Registration

RANSAC

14INAlgorithm: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

Page 40: Fitting and Registration

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

se11log/p1logN proportion of outliers e

s 5% 10% 20% 25% 30% 40% 50%2 2 3 5 6 7 11 173 3 4 7 9 11 19 354 3 5 9 13 17 34 725 4 6 12 17 26 57 1466 4 7 16 24 37 97 2937 4 8 20 33 54 163 5888 5 9 26 44 78 272 117

7modified from M. Pollefeys

Page 41: Fitting and Registration

RANSAC conclusionsGood• Robust to outliers• Applicable for larger number of parameters than Hough transform• 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)

Page 42: Fitting and Registration

Demo – part 2

Page 43: Fitting and Registration

What if you want to align but have no prior matched pairs?

• Hough transform and RANSAC not applicable

• Important applications

Medical imaging: match brain scans or contours

Robotics: match point clouds

Page 44: Fitting and Registration

Iterative Closest Points (ICP) Algorithm

Goal: estimate transform between two dense sets of points

1. Assign each point in {Set 1} to its nearest neighbor in {Set 2}

2. Estimate transformation parameters – e.g., least squares or robust least squares

3. Transform the points in {Set 1} using estimated parameters4. Repeat steps 2-4 until change is very small

Page 45: Fitting and Registration

Example: solving for translation

A1

A2 A3B1

B2 B3

Given matched points in {A} and {B}, estimate the translation of the object

y

xAi

Ai

Bi

Bi

tt

yx

yx

Page 46: Fitting and Registration

Example: solving for translation

A1

A2 A3B1

B2 B3

Least squares solution

y

xAi

Ai

Bi

Bi

tt

yx

yx

(tx, ty)

1. Write down objective function2. Derived solution

a) Compute derivativeb) Compute solution

3. Computational solutiona) Write in form Ax=bb) Solve using pseudo-inverse or

eigenvalue decomposition

An

Bn

An

Bn

AB

AB

y

x

yyxx

yyxx

tt

11

11

1001

1001

Page 47: Fitting and Registration

Example: solving for translation

A1

A2 A3B1

B2 B3

RANSAC solution

y

xAi

Ai

Bi

Bi

tt

yx

yx

(tx, ty)

1. Sample a set of matching points (1 pair)2. Solve for transformation parameters3. Score parameters with number of inliers4. Repeat steps 1-3 N times

Problem: outliers

A4

A5

B5

B4

Page 48: Fitting and Registration

Example: solving for translation

A1

A2 A3B1

B2 B3

Hough transform solution

y

xAi

Ai

Bi

Bi

tt

yx

yx

(tx, ty)

1. Initialize a grid of parameter values2. Each matched pair casts a vote for

consistent values3. Find the parameters with the most votes4. Solve using least squares with inliers

A4

A5 A6

B4

B5 B6

Problem: outliers, multiple objects, and/or many-to-one matches

Page 49: Fitting and Registration

Example: solving for translation

(tx, ty)

Problem: no initial guesses for correspondence

y

xAi

Ai

Bi

Bi

tt

yx

yxICP solution

1. Find nearest neighbors for each point2. Compute transform using matches3. Move points using transform4. Repeat steps 1-3 until convergence

Page 50: Fitting and Registration

Next class: Clustering

• Clustering algorithms– K-means– K-medoids– Hierarchical clustering

• Model selection