fitting a transformation: feature-based alignment

68
Fitting a transformation: feature-based alignment Thursday, September 26 th 2013 Devi Parikh Virginia Tech 1 Slide credit: Kristen Grauman Disclaimer: Many slides have been borrowed from Kristen Grauman, who may have borrowed some of them from others. Any time a slide did not already have a credit on it, I have credited it to Kristen. So there is a chance some of these credits are inaccurate.

Upload: kaleb

Post on 24-Feb-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Fitting a transformation: feature-based alignment. Thursday, September 26 th 2013 Devi Parikh Virginia Tech. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fitting a transformation: feature-based alignment

Fitting a transformation:feature-based alignment

Thursday, September 26th 2013Devi Parikh

Virginia Tech

1Slide credit: Kristen Grauman

Disclaimer: Many slides have been borrowed from Kristen Grauman, who may have borrowed some of them from others. Any time a slide did not already have a credit on it, I have credited it to Kristen. So there is a chance some of these credits are inaccurate.

Page 2: Fitting a transformation: feature-based alignment

Given: initial contour (model) near desired object

a.k.a. active contours, snakes

Figure credit: Yuri Boykov

Goal: evolve the contour to fit exact object boundary

[Snakes: Active contour models, Kass, Witkin, & Terzopoulos, ICCV1987]

Main idea: elastic band is iteratively adjusted so as to• be near image positions with

high gradients, and• satisfy shape “preferences” or

contour priors

Last time: Deformable contours

2

Slide credit: Kristen Grauman

Page 3: Fitting a transformation: feature-based alignment

Last time: Deformable contours

Image from http://www.healthline.com/blogs/exercise_fitness/uploaded_images/HandBand2-795868.JPG Kristen Grauman

3

Page 4: Fitting a transformation: feature-based alignment

Pros:• Useful to track and fit non-rigid shapes• Contour remains connected• Possible to fill in “subjective” contours• Flexibility in how energy function is defined, weighted.Cons:• Must have decent initialization near true boundary, may

get stuck in local minimum• Parameters of energy function must be set well based on

prior information

Last time: Deformable contours

Kristen Grauman

4

Page 5: Fitting a transformation: feature-based alignment

5

Today

• Interactive segmentation• Feature-based alignment

– 2D transformations– Affine fit– RANSAC

Slide credit: Kristen Grauman

Page 6: Fitting a transformation: feature-based alignment

Interactive forces

How can we implement such an interactive force with deformable contours?

Kristen Grauman

6

Page 7: Fitting a transformation: feature-based alignment

Interactive forces• An energy function can be altered online based

on user input – use the cursor to push or pull the initial snake away from a point.

• Modify external energy term to include a term such that

1

02

2

||

n

i ipush p

rE

Nearby points get pushed hardest

Adapted by Devi Parikh from Kristen Grauman

7

Page 8: Fitting a transformation: feature-based alignment

Intelligent scissors

[Mortensen & Barrett, SIGGRAPH 1995, CVPR 1999]

Another form of interactive segmentation:

Compute optimal paths from every point to the seed based on edge-related costs.

8

Adapted by Devi Parikh from Kristen Grauman Demo: http://www.luberth.com/java/scissors/

Page 9: Fitting a transformation: feature-based alignment

http://rivit.cs.byu.edu/Eric/Eric.html

Intelligent scissors

9

Slide credit: Kristen Grauman

Page 10: Fitting a transformation: feature-based alignment

http://rivit.cs.byu.edu/Eric/Eric.html

Intelligent scissors

10

Slide credit: Kristen Grauman

Page 11: Fitting a transformation: feature-based alignment

Beyond boundary snapping…

• Another form of interactive guidance: specify regions• Usually taken to suggest foreground/background color

distributions

Boykov and Jolly (2001)

User Input Result

How to use this information?Kristen Grauman

11

Page 12: Fitting a transformation: feature-based alignment

q

Recall: Images as graphs

Fully-connected graph• node for every pixel• link between every pair of pixels, p,q• similarity wpq for each link

» similarity is inversely proportional to difference in color and position

p

wpqw

Steve Seitz

12

Page 13: Fitting a transformation: feature-based alignment

Recall: Segmentation by Graph Cuts

Break graph into segments• Delete links that cross between segments

• Easiest to break links that have low similarity– similar pixels should be in the same segments– dissimilar pixels should be in different segments

w

A B C

Steve Seitz

13

Page 14: Fitting a transformation: feature-based alignment

Adding hard constraints:

Add two additional nodes, object and background “terminals”

Link each pixel• To both terminals• To its neighboring pixels

Graph cuts for interactive segmentation

Yuri Boykov15

Page 15: Fitting a transformation: feature-based alignment

Graph cuts for interactive segmentation

Adding hard constraints:

Let the edge weight to object or background terminal reflect similarity to the respective seed pixels.

Yuri Boykov16

Page 16: Fitting a transformation: feature-based alignment

Yuri Boykov

Graph cuts for interactive segmentation

Boykov and Jolly (2001)17

Page 17: Fitting a transformation: feature-based alignment

Intelligent Scissors Mortensen and Barrett (1995)

GrabCutRother et al. (2004)

Graph Cuts Boykov and Jolly (2001)

Graph cuts for interactive segmentation

Another interaction modality: specify bounding box

18

Slide credit: Kristen Grauman

Page 18: Fitting a transformation: feature-based alignment

“Grab Cut”• Loosely specify foreground region• Iterated graph cut

Rother et al (2004)

User Initialisation

K-means for learning

colour distributions

Graph cuts to infer the

segmentation

? User initialization

19

Page 19: Fitting a transformation: feature-based alignment

“Grab Cut”• Loosely specify foreground region• Iterated graph cut

Rother et al (2004)Gaussian Mixture Model (typically 5-8 components)

Foreground &Background

Background

Foreground

BackgroundG

R

G

RIterated graph cut

20

Page 20: Fitting a transformation: feature-based alignment

“Grab Cut”

Rother et al (2004)21

Page 21: Fitting a transformation: feature-based alignment

Today

• Interactive segmentation• Feature-based alignment

– 2D transformations– Affine fit– RANSAC

22

Slide credit: Kristen Grauman

Page 22: Fitting a transformation: feature-based alignment

Motivation: Recognition

Figures from David Lowe23

Slide credit: Kristen Grauman

Page 23: Fitting a transformation: feature-based alignment

Motivation: medical image registration

24

Slide credit: Kristen Grauman

Page 24: Fitting a transformation: feature-based alignment

Motivation: mosaics

Image from http://graphics.cs.cmu.edu/courses/15-463/2010_fall/

(In detail next week)

25

Slide credit: Kristen Grauman

Page 25: Fitting a transformation: feature-based alignment

Alignment problem• We have previously considered how to fit a model to

image evidence– e.g., a line to edge points, or a snake to a deforming contour

• In alignment, we will fit the parameters of some transformation according to a set of matching feature pairs (“correspondences”).

T

xixi

'

26

Slide credit: Kristen Grauman

Page 26: Fitting a transformation: feature-based alignment

Parametric (global) warpingExamples of parametric warps:

translation rotation aspect

affineperspective

Source: Alyosha Efros

27

Page 27: Fitting a transformation: feature-based alignment

Parametric (global) warping

Transformation T is a coordinate-changing machine:p’ = T(p)

What does it mean that T is global?• Is the same for any point p• can be described by just a few numbers (parameters)

Let’s represent T as a matrix: p’ = Mp

T

p = (x,y) p’ = (x’,y’)

yx

yx

M''

Source: Alyosha Efros

28

Page 28: Fitting a transformation: feature-based alignment

ScalingScaling a coordinate means multiplying each of its components by

a scalarUniform scaling means this scalar is the same for all components:

2

Source: Alyosha Efros

29

Page 29: Fitting a transformation: feature-based alignment

Non-uniform scaling: different scalars per component:

Scaling

X 2,Y 0.5

Source: Alyosha Efros

30

Page 30: Fitting a transformation: feature-based alignment

Scaling

Scaling operation:

Or, in matrix form:

byyaxx

''

yx

ba

yx

00

''

scaling matrix S

Source: Alyosha Efros

31

Page 31: Fitting a transformation: feature-based alignment

What transformations can be represented with a 2x2 matrix?

2D Rotate around (0,0)?

yxyyxx

*cos*sin'*sin*cos'

yx

yx

cossinsincos

''

2D Shear?

yxshyyshxx

y

x

*'*'

yx

shsh

yx

y

x

11

''

Source: Alyosha Efros

2D Scaling?

ysy

xsx

y

x

*'

*'

yx

ss

yx

y

x

00

''

32

Page 32: Fitting a transformation: feature-based alignment

What transformations can be represented with a 2x2 matrix?

Source: Alyosha Efros

2D Mirror about Y axis?

yyxx

''

yx

yx

1001

''

2D Mirror over (0,0)?

yyxx

''

yx

yx

1001

''

2D Translation?

y

x

tyytxx

''

NO!33

Page 33: Fitting a transformation: feature-based alignment

2D Linear Transformations

Only linear 2D transformations can be represented with a 2x2 matrix.

Linear transformations are combinations of …• Scale,• Rotation,• Shear, and• Mirror

yx

dcba

yx

''

Source: Alyosha Efros

34

Page 34: Fitting a transformation: feature-based alignment

Homogeneous coordinates

Converting from homogeneous coordinates

homogeneous image coordinates

To convert to homogeneous coordinates:

35

Slide credit: Kristen Grauman

Page 35: Fitting a transformation: feature-based alignment

Homogeneous CoordinatesQ: How can we represent 2d translation as a 3x3 matrix

using homogeneous coordinates?

A: Using the rightmost column:

100

1001

y

x

tt

ranslationT

y

x

tyytxx

''

Source: Alyosha Efros36

Page 36: Fitting a transformation: feature-based alignment

Translation

111001001

1''

y

x

y

x

tytx

yx

tt

yx

tx = 2ty = 1

Homogeneous Coordinates

Source: Alyosha Efros

37

Page 37: Fitting a transformation: feature-based alignment

Basic 2D TransformationsBasic 2D transformations as 3x3 matrices

11000cossin0sincos

1''

yx

yx

11001001

1''

yx

tt

yx

y

x

11000101

1''

yx

shsh

yx

y

x

Translate

Rotate Shear

11000000

1''

yx

ss

yx

y

x

Scale

Source: Alyosha Efros38

Page 38: Fitting a transformation: feature-based alignment

2D Affine Transformations

Affine transformations are combinations of …• Linear transformations, and• Translations

Parallel lines remain parallel

wyx

fedcba

wyx

100'''

39

Slide credit: Kristen Grauman

Page 39: Fitting a transformation: feature-based alignment

Today

• Interactive segmentation• Feature-based alignment

– 2D transformations– Affine fit– RANSAC

40

Slide credit: Kristen Grauman

Page 40: Fitting a transformation: feature-based alignment

Alignment problem• We have previously considered how to fit a model to

image evidence– e.g., a line to edge points, or a snake to a deforming contour

• In alignment, we will fit the parameters of some transformation according to a set of matching feature pairs (“correspondences”).

T

xixi

'

Kristen Grauman

41

Page 41: Fitting a transformation: feature-based alignment

Image alignment

• Two broad approaches:– Direct (pixel-based) alignment

• Search for alignment where most pixels agree– Feature-based alignment

• Search for alignment where extracted features agree• Can be verified using pixel-based alignment 42

Slide credit: Kristen Grauman

Page 42: Fitting a transformation: feature-based alignment

Fitting an affine transformation• Assuming we know the correspondences, how do we

get the transformation?

),( ii yx ),( ii yx

2

1

43

21

tt

yx

mmmm

yx

i

i

i

i

43

Slide credit: Kristen Grauman

Page 43: Fitting a transformation: feature-based alignment

An aside: Least Squares ExampleSay we have a set of data points (X1,X1’), (X2,X2’),

(X3,X3’), etc. (e.g. person’s height vs. weight)We want a nice compact formula (a line) to predict X’s

from Xs: Xa + b = X’We want to find a and bHow many (X,X’) pairs do we need?

What if the data is noisy?

'22

'11

XbaXXbaX

'2

'1

2

1

11

XX

ba

XX

Ax=B

.........111

'3

'2

'1

3

2

1

XXX

ba

XXX

overconstrained

2min BAx

Source: Alyosha Efros

44

Page 44: Fitting a transformation: feature-based alignment

Fitting an affine transformation• Assuming we know the correspondences, how do we

get the transformation?

),( ii yx ),( ii yx

2

1

43

21

tt

yx

mmmm

yx

i

i

i

i

i

i

ii

ii

yx

ttmmmm

yxyx

2

1

4

3

2

1

10000100

45

Slide credit: Kristen Grauman

Page 45: Fitting a transformation: feature-based alignment

Fitting an affine transformation

• How many matches (correspondence pairs) do we need to solve for the transformation parameters?

• Once we have solved for the parameters, how do we compute the coordinates of the corresponding point for ?

• Where do the matches come from?

i

i

ii

ii

yx

ttmmmm

yxyx

2

1

4

3

2

1

10000100

),( newnew yx

Kristen Grauman

46

Page 46: Fitting a transformation: feature-based alignment

What are the correspondences?

?

• Compare content in local patches, find best matches.e.g., simplest approach: scan with template, and compute SSD or correlation between list of pixel intensities in the patch

• Later in the course: how to select regions according to the geometric changes, and more robust descriptors.

Kristen Grauman

47

Page 47: Fitting a transformation: feature-based alignment

Fitting an affine transformation

Figures from David Lowe, ICCV 1999

Affine model approximates perspective projection of planar objects.

48

Slide credit: Kristen Grauman

Page 48: Fitting a transformation: feature-based alignment

Today

• Interactive segmentation• Feature-based alignment

– 2D transformations– Affine fit– RANSAC

49

Slide credit: Kristen Grauman

Page 49: Fitting a transformation: feature-based alignment

Outliers• Outliers can hurt the quality of our parameter

estimates, e.g., – an erroneous pair of matching points from two images– an edge point that is noise, or doesn’t belong to the

line we are fitting.

Kristen Grauman

50

Page 50: Fitting a transformation: feature-based alignment

Outliers affect least squares fit

51

Slide credit: Kristen Grauman

Page 51: Fitting a transformation: feature-based alignment

Outliers affect least squares fit

52

Slide credit: Kristen Grauman

Page 52: Fitting a transformation: feature-based alignment

RANSAC

• RANdom Sample Consensus

• Approach: we want to avoid the impact of outliers, so let’s look for “inliers”, and use those only.

• Intuition: if an outlier is chosen to compute the current fit, then the resulting line won’t have much support from rest of the points.

53

Slide credit: Kristen Grauman

Page 53: Fitting a transformation: feature-based alignment

RANSAC: General form• RANSAC loop:

1. Randomly select a seed group of points on which to base transformation estimate (e.g., a group of matches)

2. Compute transformation from seed group

3. Find inliers to this transformation

4. If the number of inliers is sufficiently large, re-compute estimate of transformation on all of the inliers

• Keep the transformation with the largest number of inliers

54

Slide credit: Kristen Grauman

Page 54: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

Source: R. Raguram Lana Lazebnik

55

Page 55: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

Least-squares fit

Source: R. Raguram Lana Lazebnik

56

Page 56: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

Source: R. Raguram Lana Lazebnik

57

Page 57: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

Source: R. Raguram Lana Lazebnik

58

Page 58: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

Source: R. Raguram Lana Lazebnik

59

Page 59: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

4. Select points consistent with model

Source: R. Raguram Lana Lazebnik

60

Page 60: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

4. Select points consistent with model

5. Repeat hypothesize-and-verify loop

Source: R. Raguram Lana Lazebnik

61

Page 61: Fitting a transformation: feature-based alignment

62

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

4. Select points consistent with model

5. Repeat hypothesize-and-verify loop

Source: R. Raguram Lana Lazebnik

Page 62: Fitting a transformation: feature-based alignment

63

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

4. Select points consistent with model

5. Repeat hypothesize-and-verify loop

Uncontaminated sample

Source: R. Raguram Lana Lazebnik

Page 63: Fitting a transformation: feature-based alignment

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

3. Compute error function

4. Select points consistent with model

5. Repeat hypothesize-and-verify loop

Source: R. Raguram Lana Lazebnik

64

Page 64: Fitting a transformation: feature-based alignment

RANSAC for line fittingRepeat N times:• Draw s points uniformly at random• Fit line to these s points• Find inliers to this line among the remaining

points (i.e., points whose distance from the line is less than t)

• If there are d or more inliers, accept the line and refit using all inliers

Lana Lazebnik

65

Page 65: Fitting a transformation: feature-based alignment

RANSAC pros and cons• Pros

• Simple and general• Applicable to many different problems• Often works well in practice

• Cons• Lots of parameters to tune• Doesn’t work well for low inlier ratios (too many iterations,

or can fail completely)• Can’t always get a good initialization

of the model based on the minimum number of samples

Lana Lazebnik

66

Page 66: Fitting a transformation: feature-based alignment

Today

• Interactive segmentation• Feature-based alignment

– 2D transformations– Affine fit– RANSAC

67

Slide credit: Kristen Grauman

Page 67: Fitting a transformation: feature-based alignment

Coming up: alignment and image stitching

68Slide credit: Kristen Grauman

Page 68: Fitting a transformation: feature-based alignment

Questions?

See you Tuesday!

69Slide credit: Devi Parikh