Science Fair Project Encyclopedia
Scale-invariant feature transform
Scale-invariant feature transform (or SIFT) is a computer vision algorithm for extracting distinctive features from images, to be used in algorithms for tasks like matching different views of an object or scene (e.g. for stereo vision) and Object recognition . The features are invariant to image scale, rotation, and partially invariant (i.e. robost) to changing viewpoints, and change in illumination. The name Scale-invariant feature transform was chosen, as the algorithm transforms image data into scale-invariant coordinates relative to local features.
First, the original image is progressively Gaussian blurred with sigma in a band from 1 to 2 resulting in a series of Gaussian blurred images (cascade filtering ). Then, these images are substracted from their direct neighbors (by sigma) to produce a new series of images (with difference of Gaussian ).
The major steps in the computation of the image features are
- Scale-space extrema detection - each pixel in the images are compared to its 8 neighbors and the 9 pixels each (corresponding pixel+8 neighbors) of the other pictures in the series.
- keypoint localization - keypoints are chosen from the extrema in scale space.
- orientation assignment - for each keypoint, in a 16x16 window, histograms of gradient directions are computed (using bilinear interpolation).
- keypoint descriptor - representation in a 128-dimensional vector.
For the application of SIFT keypoints in matching and object recognition, Lowe was applying a nearest neighbor algorithm, followed by a Hough transform for object recognition (as described in Lowe, 2004).
The feature representations found by SIFT are thought to be analogous to those of neurons in inferior temporal cortex , a region used for object recognition in primate vision.
SIFT is used by Aibo to locate its charging station.
- Object recognition from local scale-invariant features: Conference paper describing algorithm (1999)
- libsift: C# implementation of SIFT
- autopano-SIFT: a tool for generating panoramas from multiple images, using SIFT to match features between images
- more detailed explanation of the keypoint extraction by the SIFT algorithm
- Lowe, D. G., "distinctive image features from scale-invariant keypoints", International Journal of Computer Vision, 2004
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details