【发布时间】:2014-02-12 21:49:23
【问题描述】:
我想用非静态相机跟踪任何移动的对象,并获取该对象的轮廓。有人可以给我一些建议如何实现这一目标吗?
我坚持要减去背景,但这仅适用于静态相机。
【问题讨论】:
-
您可以尝试使用 SURF,就像在本教程中一样:morf.lv/modules.php?name=tutorials&lasit=2
我想用非静态相机跟踪任何移动的对象,并获取该对象的轮廓。有人可以给我一些建议如何实现这一目标吗?
我坚持要减去背景,但这仅适用于静态相机。
【问题讨论】:
背景减法在非静态相机中不是一个选项。在某些情况下,用第二帧的扭曲单应输出减去第一帧可能会起作用,但错误的发生率会很高。
最好的选择是使用 FAST、ORB、SURF、SIFT、BRISK 等特征检测器算法。如果存在性能问题,FAST 或 ORB 可能是最佳选择。这些 FD 算法跟踪和映射图像中存在的“稳定点”。例如,角落可以被称为“稳定点”,因为平移、缩放、倾斜、旋转等不会改变它们的属性。
用于跟踪第 2 帧和第 1 帧的“稳定点”/关键点的代码在网上广泛可用。
上面提到的每个算法都有自己的优点和缺点。根据您的需要选择算法。需要注意的是,认为 SIFT/SURF 在准确性方面是最好的,它们是受专利保护的。
【讨论】:
任何移动的物体,或任何类型的物体,但一次只有已知数量的已知/检测到的物体?
您可以尝试估计相机移动来识别背景。 光流可能是一个提示,取决于相机的移动方式,图像的扇区会在特殊方向上移动像素。 还有其他方法可以识别相机运动,也许可以搜索“相机自校准”技术。
一旦您了解了相机的移动,您就可以尝试以 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 特征进行特征跟踪。
对于一个移动的(不仅仅是旋转的)摄像机来说,最难的是确定什么是前景,什么是背景。如果该相机运动受到限制,则可能会更容易。
【讨论】: