The Speeded Up Robust Features algorithm (BETVG08) draws on the SIFT algorithm and the theory of scale-space representations to propose an optimized version that uses approximated Hessians based on the integral image, both to detect keypoints and to extract their descriptors.
SURF is invariant to translation, scale, and rotation, but a simplified variant, called “U-SURF”, is invariant only to translation and scale changes: in this case, the region around the detected point is not normalized with respect to rotation when the descriptor is extracted.
In SURF, keypoints are detected by computing local maxima of the determinant of the Hessian image, defined as:
| (6.13) |
The bandwidth of these approximated filters can be estimated as
| (6.14) |
The determinant image is computed as
| (6.15) |
The image is analyzed over several octaves (each octave has a scale factor twice that of the preceding octave). Each octave is divided into the same number of scale levels. The number of scales per octave is limited by the strictly quantized nature of the filter, and the approximated Gaussians are not as evenly spaced as in SIFT. In fact, 4 intervals per octave is the only possible number of subdivisions.
Within each octave, as the scale and position vary, Non-Maxima Suppression
is applied to the determinant image of
.
The local minima/maxima, interpolated using a three-dimensional quadratic as in SIFT, are the interesting points detected by SURF.
The scale is set equal to the variance of the associated filter
.
From the maxima thus detected, again using the integral image, the dominant orientation in the neighborhood of the point is extracted (a neighborhood with radius , sampled at intervals of
).
In this case as well, Haar features with side length
are used and weighted with a Gaussian having distribution
.
Using the orientation information, a descriptor based on gradient directions is generated by sampling an area in a neighborhood of , divided into
regions, and weighting the points with a Gaussian
. Within each region,
,
,
, and
are computed.
Both the orientation and the gradient histogram are extracted at the feature detection scale.
Paolo medici