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