Ask Your Question
0

Why is SIFT faster than SURF ? It shouldn't be.

asked 2014-04-06 06:35:32 -0600

mholecy gravatar image

updated 2014-04-06 06:47:04 -0600

I'm working on my thesis and I measured times it takes for each algorithm SIFT and SURF to find a match. I know that SURF was designed to be faster than SIFT, but my measures revealed the opposite. The measure test is running with 20 images from very small to very big, from black and white to very colorful. The tests show, that SIFT is twice as fast as SURF I'm using OpenCV-2.4.8 with Java interface and FLANNBASED descriptor matcher. I'm not the only one who notice this, for example here is another one, but without answer: link

How can I explain this in my thesis ?

edit retag flag offensive close merge delete

Comments

2

Do they process the same amount of keypoints?

Guanta gravatar imageGuanta ( 2014-04-06 07:52:14 -0600 )edit

Nope, SIFT process even more features than SURF. My results: SURF: 269 667 features in 98,038 seconds SIFT: 336 437 features in 55,27 seconds

mholecy gravatar imagemholecy ( 2014-04-06 10:06:03 -0600 )edit

Hm, and what about the parameters? Same number of octaves, etc? Probably you should also compare the binaries of the authors (if they exist) instead of the OpenCV versions, but even then the complexity (O-notation) counts, not the actual runtime.

Guanta gravatar imageGuanta ( 2014-04-06 15:36:54 -0600 )edit

No, in average SURF keypoints return many 0 octaves, few 1 and very few 2 octaves. On the other hand SIFT returns big octave numbers with seven and eight digits. As far as I know SIFT and SURF is implemented in OpenCV according to patent and can be used for free for non-commercial use only. So it should be the same as original, or am I wrong ?

mholecy gravatar imagemholecy ( 2014-04-07 03:46:18 -0600 )edit
1

With parameters, I meant the algorithm-parameters, like 'nOctaveLayers', etc. OpenCV provides re-implementations of the algorithms, they might be very very similar, but are not from the authors themselves, so no guarantee here! The author provide their versions here: http://www.cs.ubc.ca/~lowe/keypoints/ and http://www.vision.ee.ethz.ch/~surf/download.html . And yes, if you use them commercially, you have to be careful with the patent.

Guanta gravatar imageGuanta ( 2014-04-07 04:06:05 -0600 )edit

Is it SURF which became slower or it's SIFT which has been speeded-up?

ianni67 gravatar imageianni67 ( 2014-04-09 02:43:15 -0600 )edit

OpenCV doesn't want any of these parameters. At least not in Java interface. I just choose detector and descriptor method (SIFT or SURF) and then match their descriptors.

mholecy gravatar imagemholecy ( 2014-04-22 07:39:52 -0600 )edit

You cannot set them directly, however there exist a workaround, see http://answers.opencv.org/question/3167/java-how-to-set-parameters-to-orb-featuredetector/ , again imho you should compare the author's code. Also others (e.g. http://computer-vision-talks.com/articles/opencv-is-not-a-panacea/ ) mention that the OpenCV's implementation is pretty slow!

Guanta gravatar imageGuanta ( 2014-04-23 12:24:26 -0600 )edit

2 answers

Sort by ยป oldest newest most voted
0

answered 2014-10-24 05:23:09 -0600

This problem comes into me recently, and finally I notice that, the keypoints detected by Sift are different from Surf on their variable "size". Most Sift keypoints' size are range from 0.x to 10.x, while Surf keypoints' size are 1x.0 to 100+. That's what make Surf much slower. So if you use the same keypoints, Surf will be much faster than Sift.

edit flag offensive delete link more
0

answered 2014-04-08 07:02:51 -0600

Kevin B. gravatar image

updated 2014-04-08 07:03:21 -0600

I've noticed this too (I'm busy with a thesis about image stabilization). SIFT became faster than SURF in OpenCV version 2.4.8, it wasn't faster in the previous releases.. You can verify by building an older version of OpenCV.

Please report back, so I know that it's really the OpenCV version that makes the difference.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2014-04-06 06:35:32 -0600

Seen: 1,095 times

Last updated: Oct 24 '14