You are on page 1of 20

Lecture 4.

0
From keypoints to correspondences
Trym Vegard Haavardsholm

Illustrations from K. Grauman, B. Leibe, Svetlana Lazebnik,


David Lowe, Matthew Brown
Point correspondences from keypoints

How do we match these keypoints?

2
Local patches

• Covariant feature point detectors


– Location (x, y), scale σ and orientation θ.

• Normalize local patches surrounding keypoints


– Canonical scale

3
Local patches

• Covariant feature point detectors


– Location (x, y), scale σ and orientation θ.

• Normalize local patches surrounding keypoints


– Canonical scale
– Canonical orientation

4
Estimating canonical orientation

• Find dominant orientation of the image patch


– This is given by xmax, the eigenvector of M corresponding to λmax (the larger eigenvalue)
– Rotate the patch according to this angle

5
Estimating canonical orientation

• Orientation from Histogram of Gradients (HoG)

6
Estimating canonical orientation: Example

7
Estimating canonical orientation: Example

8
Local patches

• Covariant feature point detectors


– Location (x, y), scale σ and orientation θ.

• Normalize local patches surrounding keypoints


– Canonical scale
– Canonical orientation

9
Local patches

• Covariant feature point detectors


– Affine transformation A

• Normalize local patches surrounding keypoints


– Canonical affine transformation

10
Overview of point feature matching

11
Overview of point feature matching

1. Detect a set of distinct feature points

12
Overview of point feature matching

1. Detect a set of distinct feature points

2. Define a patch around each point

13
Overview of point feature matching

1. Detect a set of distinct feature points

2. Define a patch around each point

3. Extract and normalize the patch

14
Overview of point feature matching

1. Detect a set of distinct feature points

2. Define a patch around each point

3. Extract and normalize the patch

4. Compute a local descriptor

15
Overview of point feature matching

1. Detect a set of distinct feature points

2. Define a patch around each point

3. Extract and normalize the patch

4. Compute a local descriptor

5. Match local descriptors

16
Feature descriptors

• Simplest descriptor: Vector of raw intensity values

• How to compare two such vectors?

17
Feature descriptors

• Simplest descriptor: Vector of raw intensity values

• How to compare two such vectors?


– Sum of squared differences (SSD)

SSD(u , v) = ∑ (ui − vi )
2

18
Feature descriptors

• Simplest descriptor: Vector of raw intensity values

• How to compare two such vectors?


– Sum of squared differences (SSD)

SSD(u , v) = ∑ (ui − vi )
2

– Normalized correlation

ρ (u, v) =
∑ (u i i − u )(vi − v )
  
 ∑ (u j − u )  ∑ (v j − v ) 
2 2
  
 j  j 

19
A better descriptor

• Robust to small deformations

• Distinctive
• Fast to construct
• Fast to compare

20

You might also like