SIFT - The Scale Invariant Feature Transform
SIFT - The Scale Invariant Feature Transform
Feature Transform
Distinctive image features from scale-invariant keypoints. David
G. Lowe, International Journal of Computer Vision, 60, 2 (2004),
pp. 91-110
Presented by Ofir Pele.
Based upon slides from:
- Sebastian Thrun and Jana Koeck
- Neeraj Kumar
Correspondence
Local Features:
Detectors & Descriptors
Detected
Interest Points/Regions
Descriptors
<0 12 31 0 0 23 >
<5 0 0 11 37 15 >
<14 21 10 0 3 22 >
Lots of them
Repeatable
Representative orientation/scale
Fast to extract and match
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
Scale Space
L ( x, y , D ) = G ( x, y , D ) * I ( x, y )
Scale Selection
G
2
Mikolajczyk 2002
Approximate LoG
k
2
( k 1) 2 2G G ( k ) G ( )
D( ) ( G ( k ) G ( ) ) * I
DoG Efficiency
A
C
B
D= B+ C - A
Scale-Space Construction
increasing
G ( 2 ) * I
G( ) * I
G ( 2k ) * I
G ( k ) * I
First octave
G k 2 * I
G 2k 2 * I
Second octave
Difference-of-Gaussianss
Scale-Space Extrema
D k 2
D( k )
D( )
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
Keypoint Localization
The problem:
True Extrema
Detected Extrema
Sampling
Keypoint Localization
The Solution:
Take Taylor series expansion:
D T 1 T 2 D T
D( x ) = D + x + x
2 x
x
2
x
Minimize to get true location of extrema:
D
x = 2
x
2
Keypoints
D( x )
Point constrained
Point detection
Tr ( H )
(r + 1)
<
Det ( H )
r
2
r=10
Only 20 floating points operations to test each keypoint
Keypoint Filtering
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
Ideal Descriptors
Robust to:
Affine transformation
Lighting
Noise
Distinctive
Fast to match
Not too large
Usually L1 or L2 matching
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
Orientation Assignment
Orientation Assignment
m ( x, y ) =
( L( x + 1, y ) L( x 1, y ) ) 2 + ( L( x, y + 1) L( x, y 1) ) 2
1 ( L ( x, y + 1) L ( x, y 1) )
( x, y ) = tan
( L( x + 1, y ) L( x 1, y ) )
Orientation Assignment
is 1.5 times
Orientation Assignment
SIFT Overview
Detector
1.
2.
Orientation Assignment
3.
Create descriptor
4.
Descriptor
SIFT Descriptor
SIFT Descriptor
Performance
Very robust
80% Repeatability at:
Typical Usage
Find a match
3. Verify matches
Geometry
Hough transform
Matching Descriptors
Ratio Test
Image 2
False 2nd
best match
Best Match
True 2nd
best match
Image 1
3D Object Recognition
Location recognition
Conclusion: SIFT
Conclusion: SIFT
Conclusion: SIFT
Scale = 2.5
Rotation = 450
SIFT extensions
Color
PCA-SIFT
Speed Improvements
SIFT
17 location bins
16 orientation bins
Analyze the 17x16=272-d
eigen-space, keep 128 components