SURF Tracking
← Back to PortfolioReal-time tracking SURF or just SURF stands for Speeded Up Robust Features. It is a robust local feature detector, first presented by Herbert Bay et al. in 2006, which can be used in computer vision tasks like object recognition or 3D reconstruction. It is partly inspired by the SIFT descriptor. The standard version of SURF is several times faster than SIFT and claimed by its authors to be more robust against different image transformations than SIFT. SURF is based on sums of 2D Haar wavelet responses and makes an efficient use of integral images.
It uses an integer approximation to the determinant of Hessian blob detector, which can be computed extremely quickly with an integral image (3 integer operations). For features, it uses the sum of the Haar wavelet response around the point of interest. Again, these can be computed with the aid of the integral image.
This is a simple demo of the SURF algorithm using any image as a marker. This uses our CUDA implementation of the algorithm using a live webcam video as input. We compare this version with the OpenSurf CPU implementation.
Role Information:
This was a research project to change the SURF algorithm to run online using pattern recognition and tracking. My role was as R&D Software Engineer during all the six months of the project in 2010.
The achievement of this project the use of GPU implementation to improve the default SURF’s algorithm from offline to the online version at 23 fps.
The main technologies involved were: C++, GPU, OpenGL, OpenCV and special Data Structures.
References:
- http://www.vision.ee.ethz.ch/~surf/eccv06.pdf
- http://en.wikipedia.org/wiki/SURF
- http://www.chrisevansdev.com/computer-vision-opensurf.html
Project Details
- -