SURF vs SIFT,SURF真的更快吗?

dyn*_*mic 28 algorithm opencv surf sift

我正在使用SURFSIFT测试一些物体检测.

SURF声称比SIFT更快更强大,但我在测试中发现这不是真的.具有中等图像(600*400)的SIFT与SURF的速度相同,它可以很好地识别物体(甚至可能比SURF更好).

难道我做错了什么?

[编辑]

请注意,有一篇文章解释了如何通过对opencv代码进行一些更改来提高SURF的速度.

如果你认识一些活跃的opencv开发者,请让他看看.

Jav*_*ock 29

在设计时,它的目的是更快,但实际上差异与标准相机的实时应用无关.顺便说一句,FAST探测器更快,实际上非常强大.

我正在为手机上的实时增强现实编程,我们在应用程序执行期间使用SIFT(初始化)和FAST(金字塔FAST进行实时特征检测)的组合.FAST实际上更快,它在OpenCV中实现,所以如果你不想坚持使用SURF试一试.我没有看到最近的实时使用SURF的论文,但我看到了SIFT的修改版本,描述符和其他类型的修改的像素更少,所以看起来SURF是一个很好的想法,没有得到据我所知.无论如何,这只是我的意见.

  • mm,我们使用修改后的SIFT描述符来比较FAST(实时)中的特征和来自SIFT(离线初始化)的特征.它与本文中描述的类似:http://ieeexplore.ieee.org/xpl/login.jsp?tp =&anumber = 5226627&url = http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp %3Farnumber%3D5226627 (6认同)
  • 感谢您的贡献,无论如何关于SURF,有一些优化可以带来更好的性能.它在这里描述:http://computer-vision-talks.com/2011/06/a-few-thoughts-about-cvround/我试图联系一个opencv开发人员没有运气:( (2认同)

les*_*mal 16

OpenCV没有最佳的SURF实现速度或稳定性.如果你计算两个写得很好的实现的FLOPS,那么SURF基本上比SIFT更快.SIFT通过使用大型高斯核对图像进行多次卷积来计算图像金字塔,而SURF使用积分图像完成近似.

要查看SURF的几个实现的比较,请在此处查看我的页面:

http://boofcv.org/index.php?title=Performance:SURF

不幸的是,由于跨平台问题,OpenCV拒绝了与舍入相关的补丁.也许这个补丁会被调整并重新提交.在我自己的工作中,我注意到通用round()非常慢,并用自定义函数替换它.

至于Jav_Rock提到的FAST探测器,我只把它作为最后的手段.探测器的稳定性远远低于其他任何东西,但它确实很快.


Ton*_*nyH 5

SURF应该更快,而SIFT更强大.阿斯特说600*400是今天标准的小图片是正确的; 虽然.

也就是说,SURF应该比SIFT快许多个数量级.


neo*_*hur 5

不进行任何更改,如果在 OPENCV 中应用 SIFT 和 SURF,SIFT 看起来比 SURF 更快,但事实并非如此。为了证明我已经在 393*387 像素的图像上测试了它们。运行相同的特征提取 100 次并获取其平均时间后,结果为

SIFT: 0.0983946(s)

冲浪:0.183372(s)

但关键点的数量有很大差异, SIFT:kpsize = 671 d-row = 671 d-col = 128

SURF:kpsize = 1156 d 行 = 1156 d 列 = 64

SURF 返回的关键点数量几乎是 SIFT 的两倍,因此说 SIFT 比 SURF 更快是不公平的。

当我们使用 Fast 作为检测器然后应用 SIFT、SURF 时:

SIFT: 0.199448(s) SURF: 0.0613682(s)

SIFT:kpsize = 2362 d 行 = 2362 d 列 = 64

SURF:kpsize = 2362 d 行 = 2362 d 列 = 64

在这里,SURF 比 SIFT 快三倍。


Her*_*Bay 5

请使用SURF 的原始实现进行测试。打开简历比较慢。

比较 SIFT 和 SURF 的原始实现时,您将使用 SURF 获得更快的结果。通过调整参数,您可以提高一个数量级的速度。但是,稳健性可能会受到影响。这一切都取决于您的用例。

一般来说,SURF 和 SIFT 一样健壮。根据数据集,您可能会得到不同的结果,但总的来说,它们在稳健性方面是相同的。

还有一些SURF 的 GPU 实现比我的原始实现快得多。