Fitting a transformation Feature based...

25
5/2/2017 1 Fitting a transformation: Featurebased alignment May 2 nd , 2017 Yong Jae Lee UC Davis 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 Last time: Deformable contours Image from http://www.healthline.com/blogs/exercise_fitness/uploaded_images/HandBand2-795868.JPG Kristen Grauman 3

Transcript of Fitting a transformation Feature based...

Page 1: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

1

Fitting a transformation: Feature‐based alignment

May 2nd, 2017

Yong Jae Lee

UC Davis

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

Last time: Deformable contours

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

3

Page 2: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

2

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

Today

• Interactive segmentation

• Feature-based alignment– 2D transformations

– Affine fit

– RANSAC

5

Interactive forces

How can we implement such an interactiveforce with deformable contours?

Kristen Grauman

6

Page 3: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

3

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

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

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

Intelligent scissors

9

Slide credit: Kristen Grauman

Page 4: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

4

Beyond boundary snapping…

• Another form of interactive guidance: specify regions

• Usually taken to suggest foreground/background color distributions

Boykov and Jolly (2001)

ResultUser Input

How to use this information? 10

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

11

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

12

Page 5: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

5

Link Cut• set of links whose removal makes a graph disconnected

• cost of a cut:

A B

Find minimum cut• gives you a segmentation• fast algorithms exist for doing this

Source: Steve Seitz

BqAp

qpwBAcut,

,),(

Recall: Segmentation by Graph Cuts

13

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 Boykov14

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 Boykov15

Page 6: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

6

Yuri Boykov

Graph cuts for interactive segmentation

Boykov and Jolly (2001)16

GrabCutRother et al. (2004)

Graph CutsBoykov and Jolly (2001)

Intelligent ScissorsMortensen and Barrett (1995)

Graph cuts for interactive segmentation

Another interaction modality: specify bounding box

17

Slide credit: Kristen Grauman

“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

18

Page 7: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

7

“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

19

“Grab Cut”

Rother et al (2004)20

Today

• Interactive segmentation

• Feature-based alignment– 2D transformations

– Affine fit

– RANSAC

21

Slide credit: Kristen Grauman

Page 8: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

8

Motivation: Recognition

Figures from David Lowe

22

Motivation: medical image registration

23

Slide credit: Kristen Grauman

Motivation: mosaics

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

(In detail next week)

24

Page 9: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

9

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

xi

xi'

25

Slide credit: Kristen Grauman

Parametric (global) warping

Examples of parametric warps:

translation rotation aspect

affineperspective

Source: Alyosha Efros

26

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’)

y

x

y

xM

'

'

Source: Alyosha Efros

27

Page 10: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

10

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

28

Non-uniform scaling: different scalars per component:

Scaling

X 2,Y 0.5

Source: Alyosha Efros

29

Scaling

Scaling operation:

Or, in matrix form:

byy

axx

'

'

y

x

b

a

y

x

0

0

'

'

scaling matrix S

Source: Alyosha Efros

30

Page 11: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

11

What transformations can be represented with a 2x2 matrix?

2D Rotate around (0,0)?

yxyyxx

*cos*sin'*sin*cos'

y

x

y

x

cossin

sincos

'

'

2D Shear?

yxshy

yshxx

y

x

*'

*'

y

x

sh

sh

y

x

y

x

1

1

'

'

Source: Alyosha Efros

2D Scaling?

ysy

xsx

y

x

*'

*'

y

x

s

s

y

x

y

x

0

0

'

'

31

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

tyy

txx

'

'NO!

32

2D Linear Transformations

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

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

y

x

dc

ba

y

x

'

'

Source: Alyosha Efros

33

Page 12: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

12

Homogeneous coordinates

Converting from homogeneous coordinates:

homogeneous image coordinates

To convert to homogeneous coordinates:

34

Slide credit: Kristen Grauman

Convenient coordinate system to represent many useful transformations

Homogeneous Coordinates

Q: How can we represent 2d translation as a 3x3 matrix using homogeneous coordinates?

A: Using the rightmost column:

100

10

01

y

x

t

t

ranslationT

y

x

tyy

txx

'

'

Source: Alyosha Efros

35

Translation

11100

10

01

1

'

'

y

x

y

x

ty

tx

y

x

t

t

y

x

tx = 2ty = 1

Homogeneous Coordinates

Source: Alyosha Efros

36

Page 13: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

13

Basic 2D Transformations

Basic 2D transformations as 3x3 matrices

1100

0cossin

0sincos

1

'

'

y

x

y

x

1100

10

01

1

'

'

y

x

t

t

y

x

y

x

1100

01

01

1

'

'

y

x

sh

sh

y

x

y

x

Translate

Rotate Shear

1100

00

00

1

'

'

y

x

s

s

y

x

y

x

Scale

Source: Alyosha Efros

37

2D Affine Transformations

Affine transformations are combinations of …

• Linear transformations, and

• Translations

Parallel lines remain parallel

w

y

x

fed

cba

w

y

x

100'

'

'

38

Slide credit: Kristen Grauman

Today

• Interactive segmentation

• Feature-based alignment– 2D transformations

– Affine fit

– RANSAC

39

Page 14: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

14

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

xi

xi'

Kristen Grauman

40

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 41

Slide credit: Kristen Grauman

Fitting an affine transformation

• Assuming we know the correspondences, how do we get the transformation?

),( ii yx ),( ii yx

2

1

43

21

t

t

y

x

mm

mm

y

x

i

i

i

i

42

Slide credit: Kristen Grauman

Page 15: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

15

An aside: Least Squares Example

Say 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 b

How many (X,X’) pairs do we need?

What if the data is noisy?

'22

'11

XbaX

XbaX

'2

'1

2

1

1

1

X

X

b

a

X

XAx=B

.........

1

1

1

'3

'2

'1

3

2

1

X

X

X

b

a

X

X

X

overconstrained

2min BAx

Source: Alyosha Efros

43

Fitting an affine transformation

• Assuming we know the correspondences, how do we get the transformation?

),( ii yx ),( ii yx

2

1

43

21

t

t

y

x

mm

mm

y

x

i

i

i

i

i

i

ii

ii

y

x

t

t

m

m

m

m

yx

yx

2

1

4

3

2

1

1000

0100

44

Slide credit: Kristen Grauman

Fitting an affine transformation

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

i

i

ii

ii

y

x

t

t

m

m

m

m

yx

yx

2

1

4

3

2

1

1000

0100

Kristen Grauman

45

Page 16: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

16

Affine: # correspondences?

How many correspondences needed for affine?

x x’

T(x,y)y y’

?

Alyosha Efros

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

y

x

t

t

m

m

m

m

yx

yx

2

1

4

3

2

1

1000

0100

),( newnew yx

Kristen Grauman

47

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 using more robust descriptors.

Kristen Grauman

48

Page 17: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

17

Fitting an affine transformation

Figures from David Lowe, ICCV 1999

49

Affine model approximates perspective projection of planar objects.

50

Fitting an affine transformation

51

Fitting an affine transformation

Page 18: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

18

Fitting an affine transformation

Figures from David Lowe, ICCV 1999

Affine model approximates perspective projection of planar objects.

52

Today

• Interactive segmentation

• Feature-based alignment– 2D transformations

– Affine fit

– RANSAC

53

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

54

Page 19: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

19

Outliers affect least squares fit

55

Slide credit: Kristen Grauman

Outliers affect least squares fit

56

Slide credit: Kristen Grauman

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.

57

Slide credit: Kristen Grauman

Page 20: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

20

RANSAC: General form

• RANSAC loop:

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

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

58

Slide credit: Kristen Grauman

RANSAC for line fitting example

Source: R. Raguram Lana Lazebnik

59

RANSAC for line fitting example

Least‐squares fit

Source: R. Raguram Lana Lazebnik

60

Page 21: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

21

RANSAC for line fitting example

1. Randomly select minimal subset of points

Source: R. Raguram Lana Lazebnik

61

RANSAC for line fitting example

1. Randomly select minimal subset of points

2. Hypothesize a model

Source: R. Raguram Lana Lazebnik

62

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

63

Page 22: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

22

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

64

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

65

66

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 23: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

23

67

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

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

68

RANSAC for line fitting

Repeat 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

69

Page 24: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

24

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

70

Today

• Interactive segmentation

• Feature-based alignment– 2D transformations

– Affine fit

– RANSAC

71

Coming up: alignment and image stitching

72

Page 25: Fitting a transformation Feature based alignmentweb.cs.ucdavis.edu/~yjlee/teaching/ecs174-spring2017/lee_lecture9... · 9 Alignment problem • We have previously considered how to

5/2/2017

25

Questions?

See you Thursday!

73