… I could found that explains SURF:

The manual of the OpenSURF library has an introduction to the theory of SURF which is easily to understand

These slides summarize the above text visually.

image source: all following images in this section are from the OpenSURF manual by Chris Evans.

- it uses a Hessian-matrix measure based keypoint detector vs. SIFT = DoG ~ LoG based detector
- SURF approximates LoG with box filters, see here for an image
- this allows to detect keypoints much faster than SIFT since we can compute the box filter responses fastly using integral images

We can use the determinant of the Hessian matrix in order to detect blobs, see here.

The Hessian matrix

contains the 2nd order partial derivatives. The LoG operator values Lxx, Lyy, and Lxy are approximated by box filter responses:

in order to compute the determinant of the (approximated) Hessian matrix.

For det(H)>0 there is an extremum (keypoint).

In order to apply the keypoint detection procedure on the scale space, we do not convolve the images iteratively, but increase the box filters:

For dominant orientation computation and for the descriptor vector, Haar wavelets (Haar-like features) are used to compute the gradients in x- and y-directions quickly

Haar wavelets:

(x,y) Haar wavelet reponses plotted. For each circle segment, the (x,y) components are summed up to form a vector. The longest vector lends its orientation to the keypoint:

In each of 4×4=16 cells, we compute 4 values to reflect the statistics of the gradients in the cell:

e.g., kooaba, a company founded in Nov 2006 as a spin-off from Swiss Federal Institute of Technology (ETH) in Zurich, Switzerland.

This short demo shows you that the SURF keypoints are mainly blobs, i.e.

- dark region + bright border (blue circles in video)
- bright region + dark border (red circles in video)

public/surf.txt · Last modified: 2014/01/06 13:10 (external edit) · []