# Scale-invariant feature transform explanation

How do I explain the scale-invariant feature transform (SIFT) to a layman?

## 2 Answers

SIFT is an algorithm to extract local features from a given image. The features are invariant to translation, scale and rotation. These are interesting properties for many computer vision tasks (including object recognition by feature matching).

Scale and translation invariance is achieved by finding the keypoints (extremal points) in the image (for instance, considering a dark square in a light background, the keypoints are the 4 vertices of the square). In order to detect these interesting points the image is first blurred at different scales (using Gaussian convolutional filters), this has the effect of removing noise (uninteresting details) while keeping the prominent structure of the image. Then, the difference of successive blurred images are taken (resulting in differences of Gaussian (DoGs)), this acts as an edge detection step. These images are subdivided in patches of 26 pixels, then the keypoints correspond the extremal points (maxima/minima) in each patch. Some keypoints are discarded: those that present a contrast lower that a certain threshold, and those that can slide along an edge.

Rotational invariance is achieved by computing an orientation histogram (8 main directions) for each keypoint. This is done by considering a 16x16 pixel neighbourhood for each keypoint, then subdividing this patch into blocks of 4x4 pixels, computing the gradient orientation of each block, subtracting from each computed orientation the dominant orientation of the 16x16 patch (to achieve rotational invariance), and then adding the result to the corresponding bin in the orientation histogram for the considered keypoint. This histogram is further normalized unit length to achieve illumination invariance.

The result is a sparse representation of the input image by localised features.

If it's really a lay man, I'd say: SIFT tries to capture the most important points in an image, characterizes (describes) them, builds a dictionary of important points across images and represents the images according to this new dictionary. Then it's a lot easier to check if two images are similar to each other without human supervision.