如何使用非静态相机跟踪任意移动物体?[Opencv]

4

我希望能够用非静态相机跟踪任何移动物体,并获得该物体的轮廓。有人可以给我一些建议,如何实现这个目标?

我考虑过背景减除,但那只适用于静态相机。


你可以尝试使用SURF,就像这个教程中所示:http://morf.lv/modules.php?name=tutorials&lasit=2 - BlackBear
2个回答

4
在非静态相机中,背景减除不是一个选项。第二帧的扭曲单应性输出与第一帧的减法可能在某些情况下有效,但错误的发生率会很高。
最好的选择是使用特征检测算法,如FAST、ORB、SURF、SIFT、BRISK等。如果性能是一个问题,FAST或ORB可能是最好的选择。这些FD算法跟踪和映射图像中存在的“稳定点”。例如,角可以被称为“稳定点”,因为平移、缩放、扭曲、旋转等不会改变它们的属性。
在网上广泛提供了跟踪第二帧上的“稳定点”/关键点与第一帧的代码。
上述每种算法都有其优缺点。根据您的需求选择算法。值得注意的是,虽然SIFT/SURF在准确性方面是最好的,但它们受到专利的限制。

2

如何识别任何移动物体或同时只有已知数量的已知/检测到的物体?

您可以尝试估计相机运动以识别背景。光流可能是一个提示,取决于相机的移动方式,图像的扇区将以特定方向移动像素。 enter image description here 还存在其他识别相机运动的方法,可以搜索“相机自校准”技术。

一旦您知道相机运动,就可以尝试在3D中重建场景的部分,知道哪些物体移动了。也许存在其他提取背景的方法,而无需进行3D重建(这可能有点过度,而且对您的需求来说可能不够快/好)。

我记得有一篇关于前景提取的论文,其中处理了小的相机位移。请查看http://www2.ulg.ac.be/telecom/publi/publications/barnich/Barnich2011ViBe/index.html

对于一般的对象跟踪(如果您知道感兴趣的对象是什么,或者如果您提取了它们),我建议使用粒子滤波器来表示跟踪对象的颜色直方图并计算可能性。请查看:http://www.irisa.fr/vista/Papers/2002/perez_hue_eccv02.pdf或使用SIFT / SURF特征进行特征跟踪。

难点在于确定移动(不仅是旋转)相机的前景和背景是什么。如果相机运动受限,这可能更容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接