algorithmopencvsiftsurf

SURF vs SIFT, is SURF really faster?


I am testing some object detection with SURF and SIFT.

SURF claims to be faster and more robust than SIFT but I found in my test that this is not true. SIFT with medium images (600*400) is the same speed of SURF and it recognizes objects pretty well (maybe even better than SURF).

Am I doing something wrong?

[Edit]

Please note there is an article explaining how SURF could be much faster with a little change to opencv code.

If you know some active opencv developer please let him see it.


Solution

  • When it was designed it was intended to be faster, but actually, the differences are not relevant for real-time applications with standard cameras. By the way, FAST detector is faster and quite robust. I am programming for real-time augmented reality on phones, and we use a combination of SIFT (initialization) and FAST (pyramidal FAST for real-time feature detection) during the application execution. FAST is faster, and it is implemented in OpenCV, so if you don't want to stick to SURF give it a try. I haven't seen recent papers that use SURF for real-time but I have seen modified versions of SIFT, with fewer pixels for descriptors and other kinds of modifications, so it seems like SURF was kind of a great idea that didn't get as far as it was thought to. That is just my opinion, anyway.