基于平滑帧差法的混合高斯模型的研究与应用
2018-05-28句建国邢进生
句建国, 邢进生
(山西师范大学 数学与计算机科学学院, 山西 临汾 041000)
0 引言
运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来.通常情况下,目标分类、跟踪和行为理解等后期处理过程仅仅考虑图像中对应于运动目标的像素区域,因此运动目标的正确检测与分割对于后期处理非常重要.传统的运动目标检测算法有帧差法[1]、光流法[2]和背景减除法[3,4].
混合高斯模型[5]是常用的背景提取方法,但对光照敏感;差分法最大的优点是程序设计简单,运行速度快,动态环境自适应性强,对场景光线变化不敏感.基于两者的优缺点,文献[6]在自适应混合高斯背景模型基础上提出混合高斯模型和差分法相融合的运动目标检测,但是没有解决摄像机镜头晃动的问题;文献[7]针对传统的三帧差分运动目标检测算法存在的通用性差和“空洞”的问题提出一种改进的三帧差分运动目标检测算法,但是会出现运动目标不完整的情况;文献[8]通过简化光流计算,选择图像中具有代表性的Harris角点提出了一种结合光流法与三帧差分法的运动目标检测算法,但是无法去除运动慢物体的干扰;文献[9]提出一种基于PCP的块稀疏RPCA运动目标检测算法,但是准确率较差;文献[10]提出一种改进的混合高斯模型的运动目标检测算法,但是没有实现对物体的跟踪;文献[11]针对传统的三帧差分法在运动目标提取过程中容易出现“空洞”现象,提出RPCA与三帧差分相融合的运动目标检测算法,但是该算法比较缓慢.
综上,本文充分发挥混合高斯函数和帧差法算法之间的互补性,并且针对其缺点,根据模糊理论图像分割法,使用局部方差的大小将灰度图分割为平滑区、纹理区和边缘区等模糊集,从而实现对图像的分割,平滑区可降低光线骤变对灰度值的影响.实验表明,改进的目标检测算法有效克服了光照突变、噪声干扰、摄像机晃动等现象,具有较高的准确度和实用性.
1 三帧差分法[7,12]
(1)计算第一帧和第二帧的差分:
(1)
(2)计算第二帧和第三帧的差分:
(2)
(3)与运算,得到含有运动对象和两差分其余重叠部分的图像,即:
(3)
(4)异或运算可检测出运动目标,即:
(4)
帧差法的实现较简单,且不需要存储背景图像.但是,在实际中存在摄像机抖动、阴影、遮挡、背景扰动(树枝的摇曳、风吹窗帘的摆动等)以及噪声干扰等情况,使得各帧图像之间的背景像素灰度发生较大的变化时,检测的准确性会受到较大的影响.本文提出解决干扰因素的方法,从而得到鲁棒的检测结果.
2 模型建立
2.1 不带晃动-视频前景的运动目标提取
就不带晃动-动态视频而言,其特征包括静态的物体、呈规律性变化的事物(例如:树叶摇动、水波动、喷泉变化)、走动的人群等,此类图像的直方图呈现多峰谷的形状.混合高斯模型可以准确地描述序列图像的前景运动目标与背景图.帧差法用于 多个运动目标的情况,但对光线等场景变化敏感,而基于模糊理论的图像分割法与核回归方法,可以较好地平滑光线敏感区.改进的帧差法可以有效地处理规则变化的光点对图像的影响.采用两者结合的模型,解决动态背景下的前景目标提取.
2.1.1 混合高斯模型[13]的建立
在视频图像序列中,本文用D(x,y)表示图像中某一像素点(x,y)处的灰度值,用j表示第j帧图像,记为Dj(x,y).同时,用Xj表示第j帧图像像素点(x,y)处的灰度值的观测值,用{X1,X2,…,Xj} 表示一个独立的随机过程,则第j帧图像的像素点(x,y)处的密度函数,可以用k个高斯分布加权和来描述:
(5)
式(5)中:wi为混合高斯模型中第i个高斯分布Ci的权值,μi,σi为高斯分布Ci的均值和方差,g(x/μi,σi)为高斯分布Ci的概率密度函数,即
(6)
混合高斯模型背景建模主要包括以下四个步骤:
(1)模型匹配
本文选取5个高斯分布混合模型,初始值如表1所示.
表1 5个高斯混合模型初始值
(2)模型参数更新
若新样本Dj(x,y)的分布与高斯分布匹配成功,则进行模型参数更新:
(7)
μi,j=(1-β)μi,j-1+βDj(x,y)
(8)
(9)
式(7)、(8)、(9)中:wi,j,μi,j,σi,j表示在第i个高斯分布Ci在第j图像上的权重、期望、方差,∑w·,j-1表示在第j-1图像上所有高斯分布权重w之和,α是高斯模型的参数更新率,0≤α≤1,其大小决定了混合高斯建模的速度,β表示学习率(完全依赖于α),
(10)
若新样本Dj(x,y)的分布与高斯分布匹配不成功,则只对权重参数wi,j进行更新.权重参数wi,j的更新:
(11)
本文所取得参数值为:α=0.01,β=1/0.01.
(3)生成背景分布
待所有混合高斯模型的参数集更新完毕,计算所有高斯模型的w/σ的值.w/σ的值越大,表示权值越大,方差σ越小,越适合描述背景,选取w/σ值最大的高斯分布Cmax为背景主分布,然后利用3σ原则判断其余的高斯分布Ci是否为背景分布.若满足,则为Ci背景分布,否则,为运动目标,依次完成所有的高斯分布的判断.
2.1.2 改进的帧差法
(1)对原灰度图进行模糊化处理
(2)利用帧差法处理模糊矩阵
进而将原灰度矩阵A转化为0-1二值矩阵N.
(3)核回归方法
对原图转化后的灰度矩阵A进行核回归处理,将每个像素点a1用a1(x,y,t)来表示该点在t时刻的像素值,将时间t看作变量,对每个像素点在不同帧数t上进行光滑,令光滑函数为f(t),
(12)
故f(ti)表示在第i时刻光滑后的灰度值.将这些灰度值重新存储在新的19 200×48的灰度矩阵M1中.
(4)平滑化帧差法
将上述核回归方法得到的灰度矩阵M1中的每个元素m1(x,y,t) 与经过模糊化、帧差法后的矩阵M中的每个元素m(x,y,t)相乘,从而得到一个新的灰度值矩阵H,因此每个像素点得到新的灰度值h(x,y,t),即
h(x,y,t)=m1(x,y,t)·m(x,y,t)
(13)
利用参数更新后的高斯模型和改进的侦差法对倒序后的原48帧灰度图再次分别进行处理,得到两个灰度值矩阵再次进行点乘运算,归一化,最终得到前景运动目标提取效果图.
2.1.3 模型的求解
Step1:根据图像特征,本文分别选取3个和5个高斯分布混合模型,初始参数值如表1和表2所示.
表2 3个混合高斯模型初始参数
Step2:下面分别以样本视频office的第41、42、48帧图片的(20,85)像素点以及样本视频waterSurface的第156,157帧图片的(96,40) 像素点为例,分别采用3或5个混合高斯模型的初始值,给出更新后的模型参数值,具体如表3~5所示.
表3 第41帧(20,85)像素点的模型参数值
表4 第42帧(20,85)像素点的模型参数值
表5 第48帧(20,85)像素点的模型参数值
Step3:得到所有高斯模型的w/σ值,得到μmax和σmax,进而得到背景主分布Cmax,由于数据量较大这里不再列表给出.
Step4:得到更新参数后的高斯模型,再次对原始倒序灰度图进行处理,得到前景目标提取图如图1~4所示.
图1 原图第19帧 图2 效果图第19帧
图3 原图第24帧 图4 效果图第24帧
将原图与效果图比较,该方法得到的人物轮廓曲线较为光滑,运动目标提取准确,对波浪光点处理较好.
2.2 有晃动视频前景的运动目标提取
由于监控摄像头会出现摇晃或偏移现象,导致视频发生短暂抖动.这类视频中事物会发生仿射变形.因此,对前景目标的提取问题可转化为对仿射变形目标进行有效和准确的识别.通过基于灰度图的协方差矩阵导出一组仿射不变量,根据已有的仿射不变量对灰度图进行识别,从而得到在晃动视频下的前景目标提取.步骤如下:
(1)获取图像的协方差矩阵
首先将样本waterSurface的晃动视频读取为30帧灰度图,并将每帧图存放在240×360的灰度矩阵中,可得到该图的质点(x0,y0),即
(14)
式(14)中:f(x,y)表示在(x,y)点的灰度值.
p,q=1,2,……
(15)
(2)得到特征向量与特征值
计算U的特征值λ1,λ2与特征向量ξ1,ξ2,
(16)
(17)
(3)平移与旋转
将每张灰度图变为以质点(x0,y0)为中心,计算相邻两张图片的旋转角度,即特征向量之间的夹角,平移,使得两张图的质点重合.
(4)将重合后的两张图片的灰度值进行比较,选取重叠部分,即为仿射不变量.
(5)用得到的仿射不变量对原始图片进行识别后,再进行前景运动目标提取.
3 仿真实验
3.1 不带晃动-前景运动目标提取
将2.1模型中的矩阵M转化为黑白灰度图并压缩成视频,为测试本文提出的算法效果,用视频office做仿真实验,如图5~13所示.
图5 原图第22帧 图6 改进前第22帧 图7 本算法第22帧
图8 原图第23帧 图9 改进前第23帧 图10 本算法第23帧
图11 原图第24帧 图12 改进前第24帧 图13 本算法第24帧
将原图、改进前及本算法的第22,23,24帧灰度图进行对比可以看到,改进前算法的图像具有较为光滑的轮廓线,但是当光线发生骤变时,参照图无法消除其对背景图的影响,因此在图片红色边框内,依然可以看到光点.而本算法所给方法的效果图,在边缘处理上不够光滑,但是光点瞬时变化具有一定的优越性.
3.2 带晃动-视频前景运动目标提取
在日常生活中,监控摄像头会出现摇晃或偏移现象,导致视频发生短暂抖动.为了验证2.2所提出的算法,用视频waterSurface做仿真实验,如图14~28所示.
图14 原图第22帧 图15 改进前第22帧 图16 本算法第22帧
图17 原图第35帧 图18 改进前第35帧 图19 本算法第35帧
图20 原图第41帧 图21 改进前第41帧 图22 本算法第41帧
图23 原图第19帧 图24 改进前第19帧 图25 本算法第19帧
图26 原图第24帧 图27 改进前第24帧 图28 本算法第24帧
将本文算法图与原图和改进前图进行对比,解决晃动-视频前景运动目标的提取更为精准,处理了波光亮点的影响,运动目标轮廓曲线较为平滑,对前景目标运动轨迹有较为精确的提取.
改进后,算法复杂度会有一定的增加.以时间复杂度为衡量标准,对两个实验视频进行分析,如表6所示.
表6 不同算法检测时间比较
由表6可得,混合高斯模型和三帧差分法检测速度较快,文中算法提高运动目标准确性和完整性的同时增加了算法的复杂度,但是相比较文献[11]有一定的提高,在后续工作中需继续提高算法的运行速度.
4 结论
本文算法在传统三帧差分运动目标检测基础上进行了平滑化改进.通过将视频中的背景图像加入帧间差分,从而消除了背景像素点对前景检测效果的影响,解决了传统的三帧差分法所带来的“空洞”、“双影”、获得不到完整目标等问题,也避免了传统的运动目标检测算法在复杂场景中前景与背景像素较相近时产生的误检问题,实验结果表明,本文算法仍需要提高续航能力,满足大量视频的提取工作.
[1] Barron J L,Fleet D J,Beauchemin S.Performance of optical flow techniques[J].International Journal of Computer Vision,1994,12(1):42-77.
[2] Wang B,Chen Z,Wang J,et al.A fast passenger detection algorithm based on head area characteristics[J].Procedia Engineering,2012,29(4):184-188.
[3] Dai Kexue.Prospects and current studies on back-ground subtraction techniques for moving objects detection from surveillance video[J].Journal of Image and Graphics,2006,11(7):917-919.
[4] Lee Darshyang.Effective Gaussian mixture learning for video background subtraction[J].IEEE Transactions on Pattern Analysis and Machine Intelligencev,2005,27(5):827-832.
[5] Fan Wenchao,Li Xiaoyu,Wei Kai,et al.Moving targetdetection based on improved Gaussian miture model[J].Computer Science,2015,42(5):286-289.
[6] 王小峰,王吉华,王远鹏,等.混合高斯模型和差分法相融合的运动目标检测[J].小型微型计算机系统,2013,34(3):685-688.
[7] 陈宝远,霍智超,陈光毅,等.一种改进的三帧差分运动目标检测算法[J].应用科技,2016,43(2):10-13.
[8] 袁国武,陈志强,龚 健,等.一种结合光流法与三帧差分法的运动目标检测算法[J].小型微型计算机系统,2013,34(3):668-671.
[9] 黄晓生,黄 萍,曹义亲,等.一种基于PCP的块稀疏RPCA运动目标检测算法[J].华东交通大学学报,2013,30(5):30-36.
[10] 郭 伟,高媛媛,刘鑫焱.一种改进的基于混合高斯模型的运动目标检测算法[J].计算机工程与应用,2016,52(13):195-200.
[11] 亢 洁,李晓静.基于RPCA与三帧差分融合的运动目标检测[J].计算机应用研究,2018,35(5):1-7.
[12] 赵晓刚,冯 全,王书志.一种基于帧间差分与模板匹配的河水表面流速测量方法[J].计算机应用与软件,2017,34(9):68-71,107
[13] 田 枫.基于高斯混合模型的视频图像人数统计算法研究[J].计算机应用与软件,2017,34(6):187-192.