surf descriptor
SURF, Speeded-Up Robust Features, introduced by Herbert Bay and colleagues in 2006, was designed to deliver SIFT-like robustness at a fraction of the computational cost. Its central trick is to replace the expensive Gaussian derivatives that SIFT relies on with crude rectangular box filters, and then to evaluate those box filters in constant time using an integral image. The result is a detector and descriptor that retain most of SIFT's scale and rotation invariance while running several times faster, which mattered enormously before GPUs made dense computation cheap.
For detection, SURF approximates the determinant of the Hessian matrix, a blob-selective operator. The second-order Gaussian derivatives that the Hessian needs are approximated by box filters (the so-called Fast-Hessian), and because box-filter sums of any size cost the same four lookups in an integral image, SURF can build its scale space cheaply by enlarging the filters rather than repeatedly blurring and downsampling the image, as SIFT does. Keypoints are extrema of this approximate Hessian determinant across space and scale, refined to sub-pixel and sub-scale accuracy.
For the descriptor, SURF assigns an orientation by summing Haar wavelet responses (themselves box filters) in horizontal and vertical directions within a circular neighbourhood, finding the dominant direction. It then places an oriented square region around the keypoint, splits it into a 4-by-4 grid of subregions, and in each subregion records four sums: the sum of horizontal Haar responses, the sum of vertical Haar responses, and the sums of their absolute values. Four values across sixteen subregions give a 64-dimensional descriptor, half the length of SIFT's, which speeds up matching and storage. An extended 128-dimensional variant and an upright variant (U-SURF, which skips orientation when rotation invariance is unnecessary) also exist.
SURF is faster than SIFT and often comparable in accuracy on moderate transformations, and it was a popular default in the 2000s for real-time matching, object recognition, and registration. Its limitations are that box-filter approximations are slightly less accurate than true Gaussian derivatives, especially under large viewpoint or in-plane rotation, and that, like SIFT, it was patented and is not part of free OpenCV (it lives in the non-free contrib module). In modern practice it has been largely superseded by ORB for speed-critical work and by learned features for accuracy-critical work, but it remains an important conceptual bridge showing how integral images turn an expensive multi-scale operator into a fast one.
SURF's speed depends entirely on the integral image: every box filter, at every scale, costs four array lookups regardless of filter size. This is why SURF grows the filter instead of shrinking the image, the opposite of SIFT's pyramid, and why understanding integral images is a prerequisite to understanding SURF.