【问题标题】:Can SIFT run in realtime?SIFT 可以实时运行吗?
【发布时间】:2014-08-09 13:44:18
【问题描述】:

是否有任何 SIFT 的 C/C++ 实现在 ~2.2GHz 的处理器和 4GB 的 RAM 中实时运行?或者提取 SIFT 特征和约 2000 个关键点的描述符的最低可实现运行时间是多少。 Andrew Vedaldi 的 C++ 实现需要大约 3.5 秒来处理 2000 个关键点。

【问题讨论】:

    标签: image-processing data-structures runtime real-time sift


    【解决方案1】:

    您可以使用非常快的 ORB。 或者调整 SIFT/SURF/算法选项。

    OpenCV 3.1.0 现在有几种算法,例如 KAZE 和 AKAZE - 后者可能是最好的图像检测器和描述符,因为它通过其(快速显式)扩散尺度空间显示了很好的结果。之前的 SIFT&SURF 已移至“额外”存储库。

    尽管如此,您可能想要改进匹配器算法。在这种情况下,请尝试使用 FLANN(也在 3.1.0 中)。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 但是 SIFT 不仅是描述符,它还是检测器。而且您可能找不到具有实时性能的检测器,例如 640*480 分辨率。
      • FAST 在给定分辨率下提供 10 -15 fps
      【解决方案3】:

      一般没有。 SIFT 的精确实现即使在现代 PC 上也无法实时运行。 但是在 GPU http://cs.unc.edu/~ccwu/siftgpu/ 上有一个实现。

      更快的选择是 SURF,但仍然不是实时的。我只知道在现代手机上实时运行的 DoH 描述符的一种实现,但它不是公开的。

      【讨论】:

      • 是否有任何实现将它减少到甚至 1s 约 2000 个关键点,或者 Andrew Vedaldi 的代码是迄今为止最快的没有并行化?
      • 你可以和openCV实现比较
      • openCV 速度很慢,结果不像 Andrew Vedaldi 的那样好
      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多