Can SIFT run in realtime?

老子叫甜甜 提交于 2019-12-10 12:08:37

问题


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.


回答1:


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.




回答2:


As said above, SIFT cannot run in real time. However, you can use binary descriptors instead, which provide a fast alternative at slightly worse accuracy and performance. A series of tutorial on binary descriptors can be found here:

Introduction: http://gilscvblog.wordpress.com/2013/08/26/tutorial-on-binary-descriptors-part-1/

BRIEF: http://gilscvblog.wordpress.com/2013/09/19/a-tutorial-on-binary-descriptors-part-2-the-brief-descriptor/

ORB: http://gilscvblog.wordpress.com/2013/10/04/a-tutorial-on-binary-descriptors-part-3-the-orb-descriptor/

BRISK: http://gilscvblog.wordpress.com/2013/11/08/a-tutorial-on-binary-descriptors-part-4-the-brisk-descriptor/

FREAK: http://gilscvblog.wordpress.com/2013/12/09/a-tutorial-on-binary-descriptors-part-5-the-freak-descriptor/

OpenCV usage example: http://docs.opencv.org/doc/user_guide/ug_features2d.html




回答3:


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).



来源:https://stackoverflow.com/questions/24299500/can-sift-run-in-realtime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!