OpenCV中的混合高斯算法原理 .

本文转自http://blog.csdn.net/xuhongwei0411/article/details/7863942

An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow Detection;  P.KaewTraKualPong,R.Bowden; In Proc. 2nd European Workshop on Advanced Video Based Surveillance Systems,AVBS01. Sept 2001

摘要:

对连续的视频序列进行实时的运动目标检测,是很多计算机视觉应用的基础所在。一种常用的方法就是背景减去法。因此,(研究人员)也提出了很多背景建模的方法来应对背景减去法中的各种问题。其中一种较为成功的方法是由Grimson等提出的对每个像素点进行多通道的自适应背景建模方法。但是,这种方法要忍受初始阶段缓慢的的背景模型学习过程,而对于复杂背景这种情况还要更甚。此外,这种方法还无法区分运动阴影和运动目标。本文提出一种对该自适应背景建模的改进方法。通过对(模型)更新方差的重新研究,我们发现,可以在不同的阶段采用不同的更新方差。这样便使得我们的系统学习速度更快,精确度更高,同时,对环境变化的适应能力也更好。另外,本文也提出了一种阴影检测方法。它是利用我们的背景模型来进行颜色空间估计,从而实现(阴影检测)的。另外,本文给出了两种算法的对比测试。对比结果表明,我们的算法在学习速度和精确度方面完胜Grimson的方法。如果将本文新提出的阴影检测方法结合进来,我们的方法将远远优于Grimson的算法。

1.介绍:

背景减去法的含义是构建一个参考图片(纯背景),将每个新的视频帧同参考图片相减,并进行二值化,从而得到运动前景的方法。这也就意味着,背景减去法的结果是一个对非静态区域的一个高亮表示。构建参考图片最简单的方法就是将时间上连续的一系列背景图片进行平均。这种方法有很多问题,同时,它还需要一个没有前景出现,仅仅有纯背景的一段图片序列来作为训练样本。训练之后,背景的运动以及训练阶段前景的静止不运动,都被当做运动目标。另外,该方法无法应对场景中光线的逐渐变化。诸如此类的问题都表明,任何解决办法都必须要考虑到背景模型的持续更新(重估)过程。对于这种信号逐渐变化的过程,(研究人员)已经提出了很多自适应的背景建模方法来应对。FriedmanRussell提出对场景中的每个像素都构建三个高斯分布的自适应混合参数模型。另外,他们也提供了关于利用大量统计数据的在线更新方程的简短讨论。Koller等则利用卡尔曼滤波器来对每个像素的背景光照变化情况进行跟踪。他们采用了一种选择性的策略来将可能的背景像素引入背景更新方程来进行背景的维护和更新。这种方法可以很好的应对光线的变化,但是,对于新的目标进入场景或者有目标离开场景就无法处理了。一种解决方案就是对每个像素建立一个多通道的背景模型。Grimson等的方法采用了一种非参数化的自适应混合高斯模型来解决这个问题。他们的模型也能解决小的来回反复的运动情况,例如,树木的晃动、矮树丛的飘动以及相机的微小震动等。Elgammal等对每个像素采用了一种核方法来进行背景的估计和更新。其中的核样本(Kernel Examplars)是通过一个移动窗口来获得的。他们采用一种名为“空间一致性”的方法来减少微小移动的所带来的问题。这种方法是通过(当前帧)与背景模型(对应位置)周围的圆形连通区域的比较来计算的。尽管作者提出了很多加速计算的方法,但该算法本身的计算依然很复杂。其它的借助于高级处理方法(图像处理?)来辅助进行背景建模的方法也被研究人员提出了。我们的方法是基于Grimson的算法框架,区别在于更新方程、初始化方法的不同,并且还引入了一种阴影检测方法。

一种用于混合高斯模型的常用优化方法是EMExpectation Maximisation,最大期望)算法。EM算法是一种能够保证在搜索空间收敛到局部最大值的迭代方法。考虑到背景图片维护过程中的时域和空域的要求,这里需要一种在线的EM算法。很多在线EM算法已经被人们所研究。它们大致可以分为两类:第一类是利用概率密度函数来进行参数估计。换句话说,是在不改变以前模型结构的前提下利用新的数据来更新以前的(参数)估计。该流程是由Nowlan提出的,并且根据NealHinton的的研究结果来进行相应的解释。Traven则提出了一种N个最近窗口版本(N most recent window version)的流程(来解决参数估计问题)。McKenna等人将Traven的方法扩展到利用LEM的运行结果来形成L个最近窗口版本,并且用它来进行多通道的前景目标跟踪。这种方法在没有好的初始估计的前提下,是不能很有效的运行的。第二类是非参数的方法。Priebe等人提出利用随机阈值来对现有的混合(高斯)模型来产生新的高斯核,从而得到自适应的高斯模型。而GrimsonStauffer等人则采用了固定阈值的方法。

除了Grimson等人,许多其它研究人员也提出对场景中的每个像素都构建一个混合模型。RoweBlake提出在虚拟的图像空间将批次EM算法应用于离线训练过程。然而,他们的背景建模方法并不随着时间的流逝而随之更新,因此,当场景中的光线随着时间逐渐发生变化时,这种方法将会失效。FriedmanRussell对场景中的每个像素进行混合高斯建模,每个像素的模型是由三个高斯分布组合而成,他们将其应用在道路、阴影以及车辆的分布上。模式分类是一种基于启发式的亮度空间相关距离计算方法。借助于足够的统计学规则他们的方法取得了较好的(前景)分割效果。但是,这依然需要提供一个预处理的初始化过程,该初始化过程利用批次EM算法来提供一个初始的背景模型。

在第2.1节我们将介绍GrimsonStauffer的背景模型算法。我们提供的解决方法将在第2.2节进行阐述。而第2.3节将描述我们的阴影检测算法。每种方法的结果以及结果之间的对比测试将在第3节予以呈现。第4节给出本文的结论。

2. 背景建模

该部分我们讨论GrimsonStauffer的工作以及他们所提出的算法的不足之处。作者提出对每个背景像素都利用k(取值为3-5之间)个高斯分布的组合来构建背景模型。不同的高斯分布代表不同颜色通道。k个高斯分布组合的系数代表着某个颜色在当前场景中分布的时间比例。不同于Friedman的方法,假设背景中包含B个最有可能的颜色,那么整个背景成分将有这B个颜色来决定。而最有可能的颜色则是那些在长时间持续存在,而且保持静止的颜色。静止的单色目标在颜色空间倾向于形成一种紧致的聚类,而移动的目标则由于在移动过程中目标的不同部分呈现在图片中的反射率不同,从而使其在颜色空间中倾向于形成一种宽松的聚类。在作者的论文中,有一种被称之为fitness的方法来衡量这种特性。为了让背景模型能适应光线的变化,同时为了保证运算的实时性,作者采用了一种选择性(背景模型)更新策略。每个新的像素值同背景模型之间的fitness都计算一次,并依此排序。最匹配的高斯成分将被更新,如果没有任何一个高斯成分匹配上,那就新增加一个高斯成分,新增加的高斯成分的均值为该颜色,同时,赋予它一个大的协方差矩阵和一个小的权重系数。

OpenCV中的混合高斯算法原理 ._第1张图片

OpenCV中的混合高斯算法原理 ._第2张图片

OpenCV中的混合高斯算法原理 ._第3张图片

OpenCV中的混合高斯算法原理 ._第4张图片


OpenCV中的混合高斯算法原理 ._第5张图片

OpenCV中的混合高斯算法原理 ._第6张图片


OpenCV中的混合高斯算法原理 ._第7张图片

OpenCV中的混合高斯算法原理 ._第8张图片

你可能感兴趣的:(OpenCV中的混合高斯算法原理 .)