Local Features Tutorial:: (C) 2004 F. Estrada & A. Jepson & D. Fleet
Local Features Tutorial:: (C) 2004 F. Estrada & A. Jepson & D. Fleet
Fleet
Nov. 8, 04
Local Features Tutorial References: Matlab SIFT tutorial (from course webpage) Lowe, David G. Distinctive Image Features from Scale Invariant Features, International Journal of Computer Vision, Vol. 60, No. 2, 2004, pp. 91-110
- The problem: Build a model that captures general properties of eye appearance that we can use to identify eyes (though the approach is general, and does not depend on the particular object class). - Generalized model of eye appearance based on PCA. Images taken from same pose and normalized for contrast. - Demonstrated to be useful for classication, key property: the model can nd instances of eyes it has never seen before.
Today: Local features for object recognition - The problem: Obtain a representation that allows us to nd a particular object weve encountered before (i.e. nd Pacos mug as opposed to nd a mug). - Local features based on the appearance of the object at particular interest points. - Features should be reasonably invariant to illumination changes, and ideally, also to scaling, rotation, and minor changes in viewing direction. - In addition, we can use local features for matching, this is useful for tracking and 3D scene reconstruction.
Key properties of a good local feature: - Must be highly distinctive, a good feature should allow for correct object identication with low probability of mismatch. Question: How to identify image locations that are distinctive enough?. - Should be easy to extract. - Invariance, a good local feature should be tolerant to Image noise Changes in illumination Uniform scaling Rotation Minor changes in viewing direction Question: How to construct the local feature to achieve invariance to the above? - Should be easy to match against a (large) database of local features.
SIFT features
Scale Invariant Feature Transform (SIFT) is an approach for detecting and extracting local feature descriptors that are reasonably invariant to changes in illumination, image noise, rotation, scaling, and small changes in viewpoint. Detection stages for SIFT features: - Scale-space extrema detection - Keypoint localization - Orientation assignment - Generation of keypoint descriptors. In the following pages well examine these stages in detail.
SIFT features
Interest points for SIFT features correspond to local extrema of dierence-of-Gaussian lters at dierent scales. Given a Gaussian-blurred image L(x, y, ) = G(x, y, ) I (x, y ), where G(x, y, ) = 1/(2 ) exp
2 (x2 +y 2 )/ 2
is a variable scale Gaussian, the result of convolving an image with a dierence-of-Gaussian lter G(x, y, k ) G(x, y, ) is given by D(x, y, ) = L(x, y, k ) L(x, y, )
Scale-space extrema detection
(1)
6
The rst step toward the detection of interest points is the convolution of the image with Gaussian lters at dierent scales, and the generation of dierence-ofGaussian images from the dierence of adjacent blurred images.
The convolved images are grouped by octave (an octave corresponds to doubling the value of ), and the value of k is selected so that we obtain a xed number of blurred images per octave. This also ensures that we obtain the same number of dierence-of-Gaussian images per octave. Note: The dierence-of-Gaussian lter provides an approximation to the scale-normalized Laplacian of Gaussian 22G. The dierence-of-Gaussian lter is in eect a tunable bandpass lter.
Interest points (called keypoints in the SIFT framework) are identied as local maxima or minima of the DoG images across scales. Each pixel in the DoG images is compared to its 8 neighbors at the same scale, plus the 9 corresponding neighbors at neighboring scales. If the pixel is a local maximum or minimum, it is selected as a candidate keypoint.
Scale-space extrema detection 9
For each candidate keypoint: - Interpolation of nearby data is used to accurately determine its position. - Keypoints with low contrast are removed - Responses along edges are eliminated - The keypoint is assigned an orientation To determine the keypoint orientation, a gradient orientation histogram is computed in the neighborhood of the keypoint (using the Gaussian image at the closest scale to the keypoints scale). The contribution of each neighboring pixel is weighted by the gradient magnitude and a Gaussian window with a that is 1.5 times the scale of the keypoint. Peaks in the histogram correspond to dominant orientations. A separate keypoint is created for the direction corresponding to the histogram maximum,
Scale-space extrema detection 10
and any other direction within 80% of the maximum value. All the properties of the keypoint are measured relative to the keypoint orientation, this provides invariance to rotation.
11
Once a keypoint orientation has been selected, the feature descriptor is computed as a set of orientation histograms on 4 4 pixel neighborhoods. The orientation histograms are relative to the keypoint orientation, the orientation data comes from the Gaussian image closest in scale to the keypoints scale. Just like before, the contribution of each pixel is weighted by the gradient magnitude, and by a Gaussian with 1.5 times the scale of the keypoint.
Histograms contain 8 bins each, and each descriptor contains an array of 4 histograms around the keypoint. This leads to a SIFT feature vector with 4 4 8 = 128 elements. This vector is normalized to enhance invariance to changes in illumination.
13
- Find nearest neighbor in a database of SIFT features from training images. - For robustness, use ratio of nearest neighbor to ratio of second nearest neighbor. - Neighbor with minimum Euclidean distance expensive search. - Use an approximate, fast method to nd nearest neighbor with high probability.
14
a)
b)
c)
Figure 6:
orientation.
18
Figure 7: Warped image and extracted keypoints. The hough transform of matched SIFT features yields
SIFT matlab tutorial 19
20
Aligned View
Figure 8:
Image
Model
Location
Image
Model
Location
22
Image
Model
Location
Image
Model
Location
Closing Comments
- SIFT features are reasonably invariant to rotation, scaling, and illumination changes. - We can use them for matching and object recognition among other things. - Robust to occlusion, as long as we can see at least 3 features from the object we can compute the location and pose. - Ecient on-line matching, recognition can be performed in close-to-real time (at least for small object databases).
Closing Comments
24
Closing Comments
Questions: - Do local features solve the object recognition problem? - How about distinctiveness? how do we deal with false positives outside the object of interest? (see Figure 10). - Can we learn new object models without photographing them under special conditions? - How does this approach compare to the object recognition method proposed by Murase and Nayar? Recall that their model consists of a PCA basis for each object, generated from images taken under diverse illumination and viewing directions; and a representation of the manifold described by the training images in this eigenspace (see the tutorial on Eigen Eyes).
Closing Comments
25