当相机静止不动时,只需使用光流减去当前帧的前一帧即可轻松检测到移动:
OpenCV v2.4.9.0:Motion Analysis and Object Tracking
OpenCV v3.0:Motion Analysis and Object Tracking
但是如何在我们自己的动作中检测移动的物体?当相机移动时,前一帧和当前帧之间的任何差异(减去)都会给我们背景的移动。
此外,前景(极点,树木)将比背景(天空)移动得更快。如果我们看一下偏离运动平均值的所有东西,我们会发现这些极点和树木,但它们实际上是静止的。
当我们的相机移动时,如何检测其他物体的任何运动?
答案 0 :(得分:1)
为了能够区分相机运动和场景运动,您需要同时估计两帧之间相机的姿势变化以及这些帧中的场景几何。
有一些方法可以实现这一目标,你应该研究运动结构(SfM)和基本矩阵估计。这些是复杂的方法,并且每个方法都有其自身的问题(例如,在小的翻译的情况下,场景深度的估计可能是不准确的)。但是,您需要这种方法,因为当您在世界坐标中查看其运动而不是图像坐标时,您的移动对象仅区别于场景。