An Evaluation of Open Source SURF Implementations
David Gossow, Peter Decker, Dietrich W. R. Paulus · Lecture notes in computer science · 2011
SURF (Speeded Up Robust Features) is a detector and descriptor of local scale- and rotation-invariant image features. By using integral images for image convolutions it is faster to compute than other state-of-the-art algorithms, yet produces comparable or even better results by means of repeatability, distinctiveness and robustness. A library implementing SURF is provided by the authors. However, it is closed-source and thus not suited as a basis for further research. Several open source implementations of the algorithm exist, yet it is unclear how well they realize the original algorithm. We have evaluated different SURF implementations written in C++ and compared the results to the original implementation. We have found that some implementations produce up to 33% lower repeatability and up to 44% lower maximum recall than the original implementation, while the implementation provided with the software Pan-o-matic produced almost identical results. We have extended the Pan-o-matic implementation to use multi-threading, resulting in an up to 5.1 times faster computation on an 8-core machine. We describe our comparison criteria and our ideas that lead to the speed-up. Our software is put into the public domain. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.