Introduction
SIFT overview
1.
2.
Detector Scale-space extrema detection Keypoint localization and filtering 3.
4.
Descriptor Orientation assignment Keypoint descriptor
SIFT overview
1.
2.
Detector Scale-space extrema detection Keypoint localization and filtering 3.
4.
Descriptor Orientation assignment Keypoint descriptor
1. Scale-space extrema detection A “good” function for scale detection has one stable sharp peak f Good bad region size bad L or DOG(Difference of Gaussians) kernel is a matching filter !
1. Scale-space extrema detection DOG(Difference of Gaussians) • Construct scale-space • Take differences Downsample Convolve with Gaussian
1. Scale-space extrema detection For example • Construct scale-space
1. Scale-space extrema detection For example • Take differences
1. Scale-space extrema detection Scale-space extrema • Compare a pixel with its 26 neighbors in 3*3 regions at the current and adjacent scales
1. Scale-space extrema detection For example • Scale-space extrema
SIFT overview
1.
2.
Detector Scale-space extrema detection Keypoint localization and filtering 3.
4.
Descriptor Orientation assignment Keypoint descriptor
2. Keypoint localization and filtering Reject points with bad contrast • DOG smaller than 0.03 (image values in [0, 1])
2. Keypoint localization and filtering Reject points with strong edge response in one direction only • To check if ratio of principal curvature is below some threshold, r
SIFT overview
1.
2.
Detector Scale-space extrema detection Keypoint localization and filtering 3.
4.
Descriptor Orientation assignment Keypoint descriptor
3. Orientation assignment Descriptor computed relative to keypoint’s orientation achieves rotation invariance Let, for a keypointm L is the image with the closest scale • Compute the orientation histogram - within a region around the keypoint (16 Ⅹ 16) • Compute gradient magnitude and orientation using finite differences
GradientVector
1)
3. Orientation assignment
3. Orientation assignment
3. Orientation assignment
3. Orientation assignment
3. Orientation assignment
SIFT overview
1.
2.
Detector Scale-space extrema detection Keypoint localization and filtering 3.
4.
Descriptor Orientation assignment Keypoint descriptor
Keypoint descriptor The computation of the keypoint descriptor • A set of keypoints are obtained from each reference image • Each such keypoint has a graphical descriptor – which is a 128 component vector (4Ⅹ4Ⅹ8) ← keypoint descriptor’s complexity
Storing Keypoint descriptor
Keypoint descriptor Matching • Test image gives a new set of (keypoint, vector) pair • Find the nearest (top 2) descriptors in database Acceptance of a match • Storage using k-d trees - Use the Best-Bin-First(BBF) algorithm • Ratio of distance to first nearest descriptor to that of second < threshold (0.8)
Test and Result <3D object recognition>
Test and Result
Test and Result
SIFT didn’t work • Large illumination change Test and Result
SIFT didn’t work • Non-rigid deformation Test and Result
Conclusion SIFT • A novel method for detecting interest points • • Invariant to - image scaling - translation - rotation Robust matching across substantial range of - distortion - change in 3D view point - addition of noise - change in illumination SIFT extensions • PCA-SIFT • • • SURF Approx SIFT GPU implementation