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

问题描述 投票:3回答:1

当相机静止时,只需使用光流减去当前帧的前一帧即可轻松检测到移动:

但是如何在我们自己的运动中检测运动物体?当相机移动时,前一帧和当前帧之间的任何差异(减去)将给我们背景的移动。

此外,前景(极点,树木)将比背景(天空)移动得更快。如果我们看一下偏离运动平均值的所有东西,我们会发现这些极点和树木,但它们实际上是静止的。

当我们的相机移动时,如何检测其他物体的任何运动?

opencv camera motion motion-detection opencv3.0
1个回答
1
投票

为了能够区分相机运动和场景运动,您需要同时估计两帧之间相机的姿势变化以及这些帧中的场景几何。

有一些方法可以实现这一点,你应该研究运动结构(SfM)和基本矩阵估计。这些是复杂的方法,并且每个方法都有其自身的问题(例如,在小的翻译的情况下,场景深度的估计可能是不准确的)。但是,您需要这种方法,因为当您在世界坐标中查看其运动而不是图像坐标时,移动对象仅区别于场景。

© www.soinside.com 2019 - 2024. All rights reserved.