An Analysis and Implementation of the SURF Method, and its Comparison to SIFT
Edouard Oyallon, Julien Rabin
⚠ This is a preprint. It may change before it is accepted for publication.


SURF (Speeded-Up Robust Features) is a fast and robust algorithm for local, similarity invariant representation and comparison. Similarly to the SIFT approach, SURF selects interest points of an image from the salient features of its linear box-space, a series of images obtained by the convolution of the initial image with box filters at several scales. Then SURF builds local features based on the histograms of gradient-like local operators. The main interest of the SURF approach lies in its fast computation of operators in the box-space, enabling real-time applications such as tracking and object recognition. The SURF framework described in this paper is based on the PhD thesis of H. Bay, and more specifically on the paper co-written by H. Bay, A. Ess, T. Tuytelaars and L. Van Gool. The proposed implementation of the SURF is based on C++ ISO/ANSI and yields results that are very similar to the original code. We propose a simple formalism to explain SURF and compare it to SIFT. A fair comparison of the performance of both methods is also performed. It can be tested directly online. An online demo and the corresponding documented C++ source code is proposed for image matching, performing a comparison between SURF and SIFT approaches.