运动检测是检测视频序列中移动对象的过程。在计算机视觉中,它是检测视频帧中像素级变化的过程。我们可以用它来发现现实世界中的新对象,甚至执行与类无关的对象检测,这在地理空间分析、客户分析、监视、自治和其他相关领域非常有用。
如何检测视频中的运动?这里介绍了一些可用于检测运动的基本方法,并展示了如何使用 Python从头开始??编写每种方法。
主要技术如下
第 1 部分 — 帧差分
第 2 部分 — 光流
第 3 部分 — 背景扣除
在这篇文章中,我们首先使用最简单的方法来实现运动检测,它只涉及基本的 opencv 函数。该方法依赖于一种称为“帧差分”的方法,即从前一视频帧中减去当前视频帧并记录差异,这些差异即对应于运动。
下面是基本步骤,之后我们从头开始用 Python 进行编码。
1、计算灰度帧差异
2、对帧差异设置阈值以获得运动蒙版
3、在运动蒙版中查找轮廓并获取其边界框
4、对检测到的边界框执行非极大值抑制
我们对帧差异进行阈值处理以获得运动掩模,该运动掩模提供了有关场景中运动物体的丰富信息。运动掩模是本教程系列中所有方法的精髓。