OpenCV 4.10.0
开源计算机视觉
|
在本章中,
背景减法是很多基于视觉的应用程序中的主要预处理步骤。例如,考虑访客计数器的案例,其中静态相机获取进入或离开房间的访客人数,或交通摄像头提取车辆等信息。在所有这些情况下,首先需要单独提取人员或车辆。在技术上,您需要从静态背景中提取动态前景。
如果您拥有单独背景的图像,例如没有访客的房间图像、没有车辆的道路图像等,则这是一项轻松的工作。只需从背景中减去新图像即可。您将单独获得前景对象。但在大多数情况下,您可能没有这样的图像,因此我们需要从我们拥有的图像中提取背景。如果存在车辆的阴影,则会变得更加复杂。由于阴影也会移动,因此简单的减法也会将其标记为前景。这会使事情变得复杂。
为此,引入了几种算法。在下文中,我们将了解 bgsegm
模块中的两种算法。
这是一个基于高斯混合的背景/前景分割算法。它由 P. KadewTraKuPong 和 R. Bowden 于 2001 年在论文 “An improved adaptive background mixture model for real-time tracking with shadow detection” 中提出。它使用一种方法通过 K 个高斯分布(K = 3 到 5)的混合来对每个背景像素进行建模。混合的权重表示这些颜色在场景中停留的时间比例。可能的背景颜色是那些停留时间更长且更静态的颜色。
在编码过程中,我们需要使用函数 cv.bgsegm.createBackgroundSubtractorMOG() 创建一个背景对象。它有一些可选参数,如历史长度、高斯混合数、阈值等。它全部设置为某些默认值。然后在视频循环内部使用 backgroundsubtractor.apply() 方法来获取前景蒙版。
请参见以下简单示例
(所有结果将在最后显示,以便比较)。
此算法结合统计背景图像估计和逐像素贝叶斯分割。Andrew B. Godbehere、Akihiro Matsukawa 和 Ken Goldberg 在 2012 年的论文“可变光照条件下面向互动音频艺术装置的人类访客可视追踪”中介绍了这一算法。根据论文,系统成功运行了一个名为“我们到那儿了吗?”的互动音频艺术装置,该装置于 2011 年 3 月 31 日至 7 月 31 日在加利福尼亚州旧金山的当代犹太博物馆展出。
它针对前几帧(默认情况下为 120 帧)使用背景建模。它采用了一种概率背景分割算法,使用贝叶斯推理识别可能的前景对象。这些估计值是自适应的;较新的观测值比较旧的观测值赋予更大的权重,以适应可变光照。它会执行若干形态筛选操作,例如闭合和开放,以消除不需要的噪声。在前几帧中,您会看到一个黑色窗口。
最好对结果应用形态学开放,以消除噪声。
原始帧
下图显示了一个视频的第 200 帧
BackgroundSubtractorMOG 的结果
BackgroundSubtractorGMG 的结果
噪声已通过形态学开启移除。