776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at...

42
776 Computer Vision Jan-Michael Frahm Fall 2015

Transcript of 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at...

Page 1: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

776 Computer VisionJan-Michael Frahm

Fall 2015

Page 2: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

SIFT-detector

Problem: want to detect features at different scales (sizes) and with different orientations!

Page 3: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

SIFT-detector Scale and image-plane-rotation invariant feature descriptor [Lowe 2004]

- Image content is transformed into local feature coordinates that are invariant to translation, rotation, scale, and other imaging parameters

Page 4: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

SIFT-detector

Scale = 2.5Rotation = 450

Empirically found to perform very good [Mikolajczyk 2003]

Page 5: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Difference of Gaussian for Scale invariance

Difference-of-Gaussian with constant ratio of scales is a close approximation to Lindeberg’s scale-normalized Laplacian [Lindeberg 1998]

Gaussian

Difference of Gaussian

Page 6: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Difference of Gaussian for Scale

invariance

Difference-of-Gaussian with constant ratio of scales is a close approximation to Lindeberg’s scale-normalized Laplacian [Lindeberg 1998]

Page 7: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Key point localization• Detect maxima and minima

of difference-of-Gaussian in scale space

• Fit a quadratic to surrounding values for sub-pixel and sub-scale interpolation (Brown & Lowe, 2002)

• Taylor expansion around point:

• Offset of extremum (use finite differences for derivatives):

B l u r

R e s a m p l e

S u b t r a c t

Page 8: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Orientation normalization

• Histogram of local gradient directions computed at selected scale

• Assign principal orientation at peak of smoothed histogram

• Each key specifies stable 2D coordinates (x, y, scale, orientation)

0 2

Page 9: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Example of keypoint detection

Threshold on value at DOG peak and on ratio of principle curvatures (Harris approach)

(a) 233x189 image(b) 832 DOG extrema(c) 729 left after peak value threshold(d) 536 left after testing ratio of principle curvatures

courtesy Lowe

X X

Page 10: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

SIFT vector formation

• Thresholded image gradients are sampled over 16x16 array of locations in scale space

• Create array of orientation histograms• 8 orientations x 4x4 histogram array = 128 dimensions

© Lowe

example 2x2 histogram array

Page 11: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Sift feature detector

Page 12: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Goal

12

Image Patch

[0, 0, 1, 0, 1, 1, 0, 1, …]Binary Descriptor

slide: J. Heinly

Page 13: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEFBinary Robust Independent

Elementary Features

Calonder et al.ECCV 2010

slide: J. Heinly

Page 14: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Feature Description

14slide: J. Heinly

Page 15: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF: Method

15

>

Descriptor:0

>1

>

1

>

0

>

1>

0…

slide: J. Heinly

Page 16: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF: Sampling

16

Endpoints from2D Gaussian

slide: J. Heinly

Page 17: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF: Descriptor

17slide: J. Heinly

Page 18: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF: Descriptor

• 128, 256, or 512 bitso 16, 32, or 64 bytes

• Hamming distance matching

18slide: J. Heinly

Page 19: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF: Summary• Pros

o Highly efficient

• Conso No scale invarianceo No rotation invarianceo Sensitive to noise

19slide: J. Heinly

Page 20: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

ORBAn Efficient Alternative

to SIFT or SURF

Rublee et at.ICCV 2011

slide: J. Heinly

Page 21: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Fast Corner Detector

• Continuous arc of pixels all mucho brighter than center pixel p (brighter than p+threshold)oro darker than center pixel p (darker than p-threshold)

• ≥ 12 pixel brighter or darker• rapid rejection by testing pixel 1,9,5, and 13• non-maxima suppression

adapted from Ed Rosten

Page 22: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

ORB: Method

22

Feature Direction

>

Descriptor:011010…

>>>

>>

slide: J. Heinly

Page 23: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

ORB: Rotation Invariance

Intensity

Centroid

Feature Directio

n

adopted from : J. Heinly

moment of patch:

• choose orientation corrected gradients for descriptor generation

Page 24: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

ORB: Descriptor

24

Low Endpoint Correlation High

Candidate Arrangement Learned Arrangement

slide: J. Heinly

Page 25: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

ORB: Summary• Pros

o Efficiento Rotation invariance

• Conso No scale invarianceo Sensitive to noise

25slide: J. Heinly

Page 26: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISKBinary Robust Invariant

Scalable Keypoints

Leutenegger et al.ICCV 2011

slide: J. Heinly

Page 27: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Method

27

>Descriptor:011010…

>> >>>

slide: J. Heinly

Page 28: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Rotation Invariance

28

Long-distance

comparisons

Gradient direction

slide: J. Heinly

Page 29: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Scale Invariance

29

Find maximum response

slide: J. Heinly

Page 30: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Descriptor

30

Centers: BLUE Gaussian: RED

2D Gaussian around each

feature

Robust to noise

slide: J. Heinly

Page 31: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Descriptor

31

Centers: BLUE Gaussian: RED

512 Comparisons64 bytes

Avoid short-distance

comparisons

slide: J. Heinly

Rotation normalization through patch gradient

Page 32: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRISK: Summary• Pros

o Efficiento Rotation invarianceo Scale invarianceo Robust to noise

32slide: J. Heinly

Page 33: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Summary

33

BRIEF BRISKORB

• Efficient • Efficient• Rotation

• Efficient• Rotation• Scale• Noise

slide: J. Heinly

Page 34: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results: BRIEF

34Increased Difficulty

No RotationDimensiona

lity Reduction

Reco

gn

itio

n R

ate

%

slide: J. Heinly

Page 35: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results: BRIEF

35Increased Difficulty

Reco

gn

itio

n R

ate

%

slide: J. Heinly

Page 36: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results: ORB

36

Perc

en

tag

e o

f In

liers

Angle of Rotation

ORB

slide: J. Heinly

Page 37: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results: BRISK

37slide: J. Heinly

Page 38: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results: BRISK

38slide: J. Heinly

Page 39: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Results

• Many more tests…

39

Key Observation: Results are comparable to traditional feature descriptors.

slide: J. Heinly

Page 40: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Efficiency

40

SURF SIFT BRIEF ORB BRIS

K1.0 19.0 0.027 0.070 0.087

37.2 14.2 11.5

NormalizedTime

Speedup

slide: J. Heinly

Page 41: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

Summary

41

BRIEF BRISKORB

Efficient Binary Descriptors

slide: J. Heinly

Page 42: 776 Computer Vision Jan-Michael Frahm Fall 2015. SIFT-detector Problem: want to detect features at different scales (sizes) and with different orientations!

BRIEF BRISKORB

slide: J. Heinly