我正在研究这一领域,以获得目标的实时检测。
视频示例:
但是他们怎么能这么快地提取出sift键点并匹配它们呢?
SIFT提取一般需要第二次。
发布于 2012-06-19 10:42:21
SIFT可以通过以下几种方式加速:
总之,Java中没有任何一个(AFAIK)可用,所以您必须使用Java包装器来打开opencv或自己解决它。
发布于 2012-06-25 22:28:26
我是一个OpenIMAJ开发人员,负责制作第一个视频。
我们没有做任何特别花哨的事情来使匹配在视频中快速,而SIFT检测和提取是在每一帧的整体上进行的。事实上,在我们进行任何优化之前,视频就已经制作好了;目前版本的演示要流畅得多。我们也有一个混合KLT跟踪器的版本,它的工作速度更快,不需要在每一个帧上执行SIFT。
正如马里奥建议的那样,图像大小对提取速度有很大的影响,所以处理一个较小的帧会带来很大的胜利。第二,在SIFT文件中对Lowe提出的高斯兴趣点定位差异的原始描述中,提出输入图像的大小要加倍,以增加特征的数量。通过不执行这种双倍调整,您还可以获得很大的性能提升,而代价是要匹配的功能更少。
代码是开源的(BSD许可证),您可以通过在http://www.openimaj.org上的链接获得它。正如视频描述中所述,图像处理代码是纯Java的;唯一的本机代码是网络摄像头的瘦接口。本教程pdf文档中的第7教程介绍了在OpenIMAJ中使用SIFT的过程。通过执行以下操作,可以实现禁用双倍大小:
DoGSIFTEngine engine = new DoGSIFTEngine();
engine.getOptions().setDoubleInitialImage(false);发布于 2012-06-19 10:42:47
一般和第一个想法:询问视频上传者(S)。我们可以假设已经做了什么或者是怎么做的。它也可能有助于了解您到目前为止做了什么(例如您的视频分辨率,您的处理能力,图像准备等)。
我没有专门使用SIFT,但在过去几年中我做了相当多的对象/运动跟踪,所以这是更一般的。你可能已经试过一些要点了,我不知道。
https://stackoverflow.com/questions/11098874
复制相似问题