SIFT [1]} is a method to create feature descriptors that are invariant to scale and rotation, and enable robust feature matching across change in viewpoint and illumination in the presence of noise and affine distortions.
The idea is that the same keypoint in two images taken from, \(e.g.\) , different angles should have the same local information, i.e. gradients.
Since objects only are meaningful in their own scale, scale invariance is achieved by finding the scale where the gradients of a feature is strongest by constructing a scale space or pyramid.
The SIFT algorithm for extracting and describing distinctive invariant features, \(i.e.\)  keypoints, can be divided into four parts: (i) construction of the scale space, (ii) keypoint localisation, (iii) orientation assignment, and (iv) generation of the keypoint descriptor.
The keypoint descriptor of an image feature of interest is then compared to a database of keypoint descriptors for a second image to find the location of the same feature in it.
We next describe the four parts, excluding some algorithm details, to foster understanding.
