0
votes

Is there any C/C++ implementation of SIFT that runs in realtime in a processor of ~2.2GHz and a RAM of 4GB? Or what is the lowest achievable runtime for extracting SIFT features and descriptors of ~2000 keypoints. The C++ implementation by Andrew Vedaldi takes around 3.5 seconds for 2000 keypoints.

3

3 Answers

0
votes

Generaly NO. Exact implementation of SIFT can't run in real time even with modern PC. But there is a implementations on GPU http://cs.unc.edu/~ccwu/siftgpu/.

The faster alternative is SURF, but still not real time. I know only one implementation of DoH descriptor running in real time on modern mobiles, but it is not public.

0
votes

You can use ORB which is really fast. Or tune up the SIFT/SURF/algorithm options.

OpenCV 3.1.0 now has several algorithms, such as KAZE & AKAZE - the latter is perhaps the very best image detector&descriptor as it shows great results with its (fast explicit) diffusion scale space. The previous SIFT&SURF are moved to the 'extra' repository.

Nevertheless perhaps what you want is to improve the matcher algorithm. In that case try to use FLANN (also in 3.1.0).