Post on 15-Feb-2016
description
transcript
Distinctive Image Featuresfrom Scale-Invariant Keypoints
David G. LoweInternational Journal of Computer Vision(IJCV), 2004
Extracting distinctive invariant features
• Points are individually ambiguous• More unique matches are possible with small
regions of images
http://www.csie.ntu.edu.tw/~cyy/courses/vfx/05spring/lectures/handouts/lec04_feature.pdf
Desired properties for features
• Invariant: invariant to scale, rotation, affine, illumination and noise for robust matching across a substantial range of affine distortion, viewpoint change and so on.
• Distinctive: a single feature can be correctly matched with high probability
Moravec corner detector (1980)• We should easily recognize the point by looking
through a small window• Shifting a window in any direction should give a
large change in intensity
Moravec corner detector
flat
Moravec corner detector
flat
Moravec corner detector
flat edge
Moravec corner detector
flat edge cornerisolated point
Moravec corner detectorChange of intensity for the shift [u,v]:
2
,
( , ) ( , ) ( , ) ( , )x y
E u v w x y I x u y v I x y
IntensityShifted intensity
Window function
Four shifts: (u,v) = (1,0), (1,1), (0,1), (-1, 1)Problem: responds too strong for edges because only minimum of E is taken into account
Harris corner detector [1992]Consider all small shifts by Taylor’s expansion
W(x, y): Gaussian function
vu
yxIyxIyxIvyuxI yx )],(),([),(),(
( , ) ,u
E u v u v Mv
=>
M: 2x2 Hessian matrix, 1, 2 – eigenvalues of M
Harris corner detector
Classification of image points using eigenvalues of M:
1
2
Corner1 and 2 are large, 1 ~ 2;E increases in all directions
edge 1 >> 2
edge 2 >> 1
flat
Measure of corner response:
2det traceR M k M
1 2
1 2
dettrace
MM
Harris Detector: Problem
• non-invariant to image scale!
All points will be classified as edges
Corner !
Scale-invariant feature transform (SIFT)
• Scale-invariant feature transform (or SIFT) is an algorithm to detect and describe local features in images.– Distinctive features– Invariant to image scale, rotation and affine
distortion– Applied locally on key-points – Based upon the image gradients in a local
neighborhood
SIFT stages:• Scale-space extrema detection• Keypoint localization• Orientation assignment• Keypoint descriptor
local descriptor
detector
descriptor
1. Detection of scale-space extremaConvolution with a variable-scale Gaussian
Difference-of-Gaussian (DoG) filter
Scale space doubles for the next octave
K=2(1/s), s+3 images for each octave
k∙
2
DoG
• Efficient function to compute• A close approximation to the scale-normalized
Laplacian of Gaussian
2. Keypoint localization
X is selected if it is larger or smaller than all 26 neighbors
Decide scale sampling frequency
Pre-smoothing
=1.6, plus a double expansion
2. Accurate keypoint localization
If has offset larger than 0.5, sample point is changed.
If is less than 0.03 (low contrast), it is discarded.
Reject points with low contrast and poorly localized along an edge
Eliminating edge responses
r=10
Let
Keep the points with
3. Orientation assignment• By assigning a consistent orientation, the keypoint
descriptor can be orientation invariant.• For a keypoint, L is the image with the closest scale
– 36-bin orientation histogram over 360° – weighted by m– Peak is the dominant orientation– Local peak within 80% creates multiple
orientations– About 15% has multiple orientations
4. Local image descriptor• 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
Recognition examples