OpenCV中用于移动摄像机的运动检测器

7
当相机静止时,可以通过使用光流简单地通过将当前帧的前一帧减去来检测运动: 但是,在我们自己的运动过程中如何检测移动的物体呢?当相机移动时,任何先前和当前帧之间的差异(减法)都会给我们背景的运动。
此外,前景(电线杆、树木)将比背景(天空)移动得更快。如果我们查看所有偏离运动平均值的东西,我们会发现这些电线杆和树木,但它们实际上是静止的。
当我们的相机移动时,如何检测其他物体的任何运动?

3
心理学研究中出现了光流图案,描述了不同的“相机”运动。理论上,不遵循该模式的一切(您必须先找到正确的模式)都是移动物体本身。谷歌搜索“从视觉流中感知自我运动”。 - Micka
这更多是一个计算机视觉问题,而不是一个编程问题。 - GPPK
1个回答

3
为了能够区分摄像机运动和场景运动,您需要同时估计两帧之间摄像机的姿态变化和这些帧中的场景几何形状。
有一些方法可以实现这一点,您应该研究结构从运动(SfM)和基本矩阵估计。这些是复杂的方法,每种方法都有自己的问题(例如,在小的平移情况下,场景深度的估计可能不准确)。然而,您需要这种方法,因为只有在世界坐标系下观察运动时,移动对象才能与场景区分开来,而不是在图像坐标系下观察。

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