李 灿,丁学文
(天津职业技术师范大学电子工程学院,天津 300222)
目标检测技术在视频监控系统智能化中起着重要的作用,同时也是目标跟踪、目标分类和行为理解等更高层次处理算法的基础[1]。由于后续算法的准确度受到目标检测结果的影响,目标检测方法也独立地应用在多个领域的检测过程中,所以,良好的目标检测技术在智能视频监控系统中占据着举足轻重的地位。在众多目标检测算法中,高斯混合模型因其具有背景干净、设置参数少、拟合性好、结构简单、可适用领域广泛等突出优点,在交通、医疗、通信等众多领域中被广泛使用[2],所以笔者选择高斯混合模型的算法检测运动目标。
依据视频图像的灰度直方图,可以把某一个灰度值产生的频次大致认为是该图像灰度的高斯分布。这些分布中,由于背景和目标存在差异,可以将这些高斯分布分为背景描述分布和前景描述分布。实际应用中摄像头捕捉到的视频图像比较复杂,背景中有可能存在目标运动或背景晃动、光照变化等情况,对应的图像的像素区域就会呈现出多个峰值的特性,可以认为此特性是几个高斯分布相叠加共同作用的结果并将其称为高斯混合模型[3]。通过当前图像与当前时刻的背景进行加权平均从而更新背景,如图1所示,其中高斯分布的数目常用K来表示,一般是3~7个。
图1 基于高斯混合模型的目标检测系统框图
运用高斯混合模型对视频中的目标进行检测时,对于视频中的t时刻,图像中每个像素点的特征用i~K个高斯分布描述可得[4]:
式中:ωi,t为高斯分布的权重,且,为像素的 RGB 彩色向量,为均值向量;,为协方差矩阵,其中σi,t为像素方差。接下来,用高斯混合模型对目标进行检测,整个过程分为模型初始化、模型更新、背景估计与前景分割[4]。
1)模型初始化。
对视频图像的第一帧中各个像素点的彩色向量值进行复位操作,创建每个对应像素的K个高斯分布的平均值,对每一个高斯分布都赋予指定的方差(数值30)并且让它们的权重都一样[5]。
2)模型更新。
当计算下一帧图像时,把其中的每一个新像素Xt与当前的K个高斯分布的均值参照式(2)分别进行匹配。假如成立,那么Xt就与所述模型中第i个高斯分布匹配,如果没有成立的话,那么就不匹配[4]。
对于匹配的高斯分布,将他们的参数按照下面的方法更新:
式中:ui,t为像素均值;ρi,t为参数学习速率,且ρi,t≈α/ωi,t[5],其中 α 为使用者设定的学习速率(数值为0.005)。
如果所有的高斯分布中任何一个分布都不可以与Xt相匹配,那么令Xt为平均值,将其指定给权重最小的高斯分布,然后把这个高斯分布比较大的方差与比较小的权重按式(2)再次进行匹配检验,如果第 i个高斯分布与 Xt匹配,则 Mi,t取 1,否则取 0。然后对匹配后的分布按式(5)更新同一像素在各个高斯分布的权重并对其做归一化处理[5]。
式中:wi,t为更新后的高斯分布的权重。
3)背景模型估计与前景分割。
首先,把每一个像素所有的高斯分布按照ωi,t/σi,t的比值从大到小的顺序排列,再依照式(6)从排列后的高斯分布中选取前B个。然后,用这B个高斯分布对Xt再次进行匹配检验。将像素Xt中与B个高斯分布中任意一个分布相匹配的像素判定为背景点,不匹配的为前景点[6]。这样,就完成了运动目标的检测。图2所示为检测结果,其中在汽车检测图里白色车是静止的(即图2(c)中左后方车辆为非检测车辆),黑色汽车为待测运动目标。
从图2中可以看出,高斯混合模型可以得到待测目标,但是所检测到的行人下半身模糊、车辆出现了拖影,得出的目标很不理想,不能满足实际需要,需要进行改进。
图2 直接检测结果
在高斯混合模型中目标的检测效果与背景的更新率有很大关系。如果更新率取值偏小,会出现图2中行人下半身模糊的检测结果,这是由于模型背景中均值和方差收敛速度慢导致背景不能及时更新,使得所得到的结果不准确[7]。相反,如果取值偏大,会出现图2中汽车有拖影的检测结果,这是由于背景更新太快导致模型不稳定,使得检测不能满足实时性的需求。因此更新率所选取的大小是否合适决定着检测效果的好坏。为了获得合适的背景更新率,对模型更新进行以下改进:
1)导入参数Ik来计算背景更新率ρ,其中,ρ=α +(1- α)/IK。初始化时,令Ik为1。由ρ的定义可得,Ik与ρ呈反比关系,随着Ik的不断变大,ρ会一直变小,最终使模型趋于稳定[7]。
2)为了使模型与背景的变化速度相匹配,令:
式中:p为当前像素Xt在模型i中的概率。
接下来,对于所有满足条件 |It,xy- μi,t-1,xy|≤λσi,t,xy的模型,将其参数按照公式(9)~ (11)进行更新[8]:
3)对于视频中运动缓慢的目标,由于背景更新率过高,很容易被误判为背景。因此,对于像素持续为前景的帧数If可按下列规则判断:当If>Tf1时,该点像素为运动缓慢目标像素;当 If<Tf2(Tf2> Tf1)时,该像素为前景像素[9]。
通过上述改进,得到图3所示的检测结果。
与图2对比可以看出,虽然取得了较为完整的目标,但是目标的阴影也一同被检测出来。这是因为目标与其阴影一起运动,它们都和背景像素有明显的差别。检测结果中存在阴影会严重影响其检测精度,因此对检测中阴影进行消除是个值得研究的问题。
图3 更新后的目标检测结果
阴影是由于物体遮挡光照直射而形成的,由于遮挡的情况不同,光照会有明暗强弱的差别。由于文中建立的高斯混合模型是基于像素的RGB彩色向量,而该彩色向量不能反映亮度,目标中颜色深的地方会被误判为阴影区域,提取的目标不能反映实际目标的大小。因此,选择包含有亮度H和饱和度S的HSV彩色向量[10]。
首先,将RGB彩色向量转换为HSV彩色向量以满足后续算法的需求[10]。
当像素是阴影时,会使得亮度H和饱和度S降低而不改变颜色,所以根据阴影区域前景与背景的差别,可以得到在第k帧(x,y)处的阴影判别公式[6]:
图4 阴影消除结果
本文所有程序均是在Windows XP操作系统的计算机上使用VS2010结合OPENCV的函数库编写的。通过图2与图4的对比可知,改进后的高斯混合模型可以比较清晰完整地检测出目标,为后续目标提取和目标跟踪奠定了良好的基础。由于本文所有实验都是建立在摄像机静止、运动目标单一的条件下完成的,如何在摄像机运动、运动目标不单一的条件下准确检测提取目标是需要进一步研究的课题。
[1] 张红颖,李鸿,孙毅刚.基于混合高斯模型的阴影去除算法[J].计算机应用,2013(1):31 -34.
[2] 杨琳.图像分割及阴影抑制算法的研究[D].哈尔滨:哈尔滨工业大学,2007.
[3] 陈燕萍.基于背景减除的运动目标检测算法研究[D].厦门:厦门大学,2008.
[4] 杨文涛,郑国柱,郑立新,等.基于高斯混合模型的光照自适应背景减法[J].湖北大学学报:自然科学版,2012(3):355-359.
[5] 李明.视频序列中运动目标检测与跟踪算法的研究[D].苏州:苏州大学,2010.
[6] 吴立坤.智能视频监控技术关键算法研究及其实现[D].哈尔滨:哈尔滨工业大学,2013.
[7] 徐柱.运动目标检测与阴影消除的研究[D].镇江:江苏大学,2010.
[8] 李鸿.基于混合高斯模型的运动检测及阴影消除算法研究[D].天津:中国民航大学,2013.
[9] 魏晓慧,李良福,钱钧.基于混合高斯模型的运动目标检测方法研究[J].应用光学,2010(4):574-578.
[10]王宏.图像分割中阴影去除算法的研究[D].哈尔滨:哈尔滨工业大学,2008.