The SIFT (Scale Invariant Feature
Transform) Detector and Descriptor
developed by David Lowe University of British Columbia Initial paper ICCV 1999 Newer journal paper IJCV 2004
Review: Matt Brown s Canonical Frames 4/15/2011 2 Multi-Scale - - PowerPoint PPT Presentation
The SIFT (Scale Invariant Feature Transform) Detector and Descriptor developed by David Lowe University of British Columbia Initial paper ICCV 1999 Newer journal paper IJCV 2004 Review: Matt Brown s Canonical Frames 4/15/2011 2
developed by David Lowe University of British Columbia Initial paper ICCV 1999 Newer journal paper IJCV 2004
4/15/2011 2
4/15/2011 3
Extract oriented patches at multiple scales
[ Brown, Szeliski, Winder CVPR 2005 ]
4/15/2011 4
[ Microsoft Digital Image Pro version 10 ]
1. Detect an interesting patch with an interest
2. Determine its dominant orientation. 3. Rotate the patch so that the dominant
4. Do this at multiple scales, converting them
5. Convert to illumination “invariant” form
4/15/2011 5
4/15/2011 6
Start with an “empty” patch whose dominant
For each pixel in your patch, compute the
Interpolate the values of the 4 closest pixels
4/15/2011 7
empty canonical patch patch detected in the image x’ = x cosθ – y sinθ y’ = x sinθ + y cosθ
T counterclockwise rotation (x,y) (x’,y’) What’s the problem?
4/15/2011 8
Use all 4 adjacent samples
4/15/2011 9
The Harris operator is not invariant to scale and
For better image matching, Lowe’s goal was to
Also, Lowe aimed to create a descriptor that was
1But Schmid and Mohr developed a rotation invariant descriptor for it in 1997.
4/15/2011 10
Image content is transformed into local feature
SIFT Features
4/15/2011 11
Locality: features are local, so robust to occlusion
Distinctiveness: individual features can be
Quantity: many features can be generated for even
Efficiency: close to real-time performance Extensibility: can easily be extended to wide range
4/15/2011 12
Search over multiple scales and image locations. Fit a model to determine location and scale. Select keypoints based on a measure of stability. Compute best orientation(s) for each keypoint region. Use local image gradients at selected scale and rotation to describe each keypoint region.
4/15/2011 13
Goal: Identify locations and scales that can be
Method: search for stable features across multiple
Prior work has shown that under a variety of
The scale space of an image is a function L(x,y,σ)
4/15/2011 14
Bottom level is the original image. 2nd level is derived from the
some function 3rd level is derived from the 2nd level according to the same funtion And so on.
4/15/2011 15
Bottom level is the original image. At 2nd level, each pixel is the mean
At 3rd level, each pixel is the mean
And so on. mean
4/15/2011 16
Bottom level is the original image. At 2nd level, each pixel is the result
the first level and then subsampling to reduce the size. And so on. Apply Gaussian filter
4/15/2011 17
G 1/4 G 1/8 Gaussian 1/2
4/15/2011 18
Laplacian of Gaussian kernel
Scale normalised (x by scale2) Proposed by Lindeberg
Scale-space detection
Find local maxima across scale/space A good “blob” detector
[ T. Lindeberg IJCV 1998 ]
4/15/2011 19
Gaussian is an ad hoc
Hence k is not necessarily very
4/15/2011 20
with Gaussians to produce a set of scale space images.
by a factor of 2 to produce an image ¼ the size to start the next level.
4/15/2011 21
s+2 filters σs+1=2(s+1)/sσ0 . . σi=2i/sσ0 . . σ2=22/sσ0 σ1=21/sσ0 σ0 s+3 images including
s+2 differ- ence images The parameter s determines the number of images per octave.
4/15/2011 22
Detect maxima and
Each point is compared
For each max or min found,
the scale. s+2 difference images. top and bottom ignored. s planes searched.
4/15/2011 23
Scale-space extrema detection: experimental results over 32 images that were synthetically transformed and noise added.
Sampling in scale for efficiency
How many scales should be used per octave? S=?
More scales evaluated, more keypoints found
S < 3, stable keypoints increased too
S > 3, stable keypoints decreased
S = 3, maximum stable keypoints found
% detected % correctly matched average no. detected average no. matched Stability Expense
4/15/2011 24
Once a keypoint candidate is found, perform a
location, scale, and ratio of principal curvatures
In initial work keypoints were found at location and
In newer work, they fit a 3D quadratic function to
The Hessian matrix was used to eliminate edge
4/15/2011 25
Reject flats:
< 0.03
Reject edges:
r < 10
Let α be the eigenvalue with larger magnitude and β the smaller.
Let r = α/β. So α = rβ (r+1)2/r is at a min when the 2 eigenvalues are equal.
4/15/2011 26
Create histogram of
If 2 major orientations, use both.
4/15/2011 27
832 729 536 233x189 initial keypoints keypoints after gradient threshold keypoints after ratio threshold
4/15/2011 28
At this point, each keypoint has
location scale orientation
Next is to compute a descriptor for the local
highly distinctive invariant as possible to variations such as
4/15/2011 29
Rotate the window to standard orientation Scale the window size based on the scale at
4/15/2011 30
In experiments, 4x4 arrays of 8 bin histogram is used, a total of 128 features for one keypoint gradient magnitude and
weighted by a Gaussian
sum of gradient magnitude at each direction
4/15/2011 31
Mimic complex cells in primary visual cortex Hubel & Wiesel found that cells are sensitive to
This justifies spatial pooling of edge responses
[ “Eye, Brain and Vision” – Hubel and Wiesel 1988 ]
4/15/2011 32
use the normalized region about the keypoint compute gradient magnitude and orientation at each
weight them by a Gaussian window overlaid on the
create an orientation histogram over the 4 X 4
4 X 4 descriptors over 16 X 16 sample array were
4/15/2011 33
4/15/2011 34
4/15/2011 35
Feature points are used also for:
Image alignment (homography, fundamental
3D reconstruction (e.g. Photo Tourism) Motion tracking Object recognition Indexing and database retrieval Robot navigation … many others
[ Photo Tourism: Snavely et al. SIGGRAPH 2006 ]