【发布时间】:2010-11-22 01:35:32
【问题描述】:
在询问here 并尝试了 SURF 和 SIFT 之后,它们都没有足够高效地生成足够快的兴趣点来跟踪来自相机的流。
例如,SURF 大约需要 3 秒才能为图像生成兴趣点,这对于跟踪来自网络摄像头的视频来说太慢了,而且在手机上使用时会更糟。
我只需要一个算法来跟踪某个区域、它的比例、倾斜度等。我可以在此基础上进行构建。
谢谢
【问题讨论】:
标签: algorithm augmented-reality sift surf
在询问here 并尝试了 SURF 和 SIFT 之后,它们都没有足够高效地生成足够快的兴趣点来跟踪来自相机的流。
例如,SURF 大约需要 3 秒才能为图像生成兴趣点,这对于跟踪来自网络摄像头的视频来说太慢了,而且在手机上使用时会更糟。
我只需要一个算法来跟踪某个区域、它的比例、倾斜度等。我可以在此基础上进行构建。
谢谢
【问题讨论】:
标签: algorithm augmented-reality sift surf
我怀疑您的 SURF 使用可能需要一些改变?
Here is a link 提交一篇关于在移动设备上使用 SURF 进行增强现实应用的 MIT 论文。
摘录:
在本节中,我们将介绍我们的 SURF 算法的实现 及其对移动设备的适应 电话。接下来,我们讨论影响 该精度对速度 最近邻搜索并显示 我们可以达到一个数量级 以最小的影响加速 匹配精度。最后,我们揭示—— 骂电话的细节 图像匹配的实现 管道。我们研究性能, 内存使用和带宽消耗 在电话里。
您可能还想研究 OpenCV 的算法,因为它们已经过试验和测试。
根据您的应用程序的约束,您可以减少这些算法的通用性,以在图像中查找已知的 POI 和标记。
跟踪 POI 的一部分是估计其从 2D 图像中的一个点到另一个点的矢量,然后选择性地确认它仍然存在于那里(通过像素特征)。可以使用相同的方法来跟踪(而不是重新扫描整个图像)POI 和 POI 组/对象的透视和旋转变化。
网上有大量论文用于跟踪 2D 投影上的对象(在许多情况下达到了 servere 偏斜)。
祝你好运!
【讨论】:
您应该尝试 FAST 检测器
【讨论】:
我们正在将 SURF 用于一个项目,我们发现 OpenSURF 在原始速度和性能方面优于 OpenCV 的 SURF 实现。我们还没有测试可重复性和准确性,但速度要快得多。
更新: 我只是想指出,您不需要在每一帧中执行 SURF 匹配步骤,您可以简单地每隔一帧执行一次,并在您不执行 SURF 的帧中插入对象的位置。
【讨论】:
如果您想对要跟踪的区域进行更严格的限制,您可以使用更简单的算法。您肯定知道,ARToolKit 非常快,但只跟踪具有非常明显框架的黑白标记。
如果您想要一个(有点)通用的跟踪器,您可能需要检查 PTAM。该网站 (http://www.robots.ox.ac.uk/~gk/PTAM/) 目前已关闭,但这是一段在 iPhone (http://www.youtube.com/watch?v=pBI5HwitBX4) 上运行的精彩视频
【讨论】:
正如其他人所提到的,三秒似乎异常长。在Mahotas 库中测试 SURF 实现时,我发现它平均需要 0.36 秒,即使是一些相当大的图像(例如 1024x768)。这是 Python 和 C 的混合,所以我想其他一些纯 C 实现会更快。
【讨论】:
我在http://computer-vision-talks.com/2011/01/comparison-of-the-opencvs-feature-detection-algorithms-2/ 找到了每个特征检测算法的很好的比较
看看。可能有用!
根据该比较,并且正如 mirror2image 所建议的那样,FAST 是最佳选择。但这取决于您真正想要实现的目标。
【讨论】:
我在受限嵌入式系统中使用的一个选项是使用更简单的兴趣点检测器:例如 FAST 或 Shi-Tomasi。我使用了 Shi-Tomasi,因为我的目标是 FPGA,并且可以轻松地以像素速率运行它,而无需大量缓冲。
然后使用 SURF 为已识别特征周围的图像补丁生成描述符,并将其用于匹配和跟踪目的。
【讨论】: