徐 武,唐文权,郭 兴,文 聪
(云南民族大学 电气信息工程学院,昆明 650500)
运动目标检测是指检测视频序列图像并将运动目标从复杂背景中分割出来,对目标进行检测监控以及跟踪等后续处理,广泛应用于实时监测等多种领域中,其中背景差分法和帧间差分法是目标检测中两种主要方法[1].背景差分法分析背景模型与每一帧待检测图像,对两者进行差分运算,得到运动目标检测图像.此方法首先建立稳定的背景模型,然后通过与原图像进行比较计算分析,将背景模型与待检测图像相减,得到最终的目标图像.另外,帧间差分法通过对相邻帧图像进行差分运算进而检测出运动目标轮廓,自适应能力好,计算原理简单,具有较好的实时性[2].但是帧间差分法在进行目标轮廓提取过程中存在空洞现象,导致部分特征点被忽略,大大降低检测精度.在这两种方法检测中,光照变化均会造成较大的干扰,阻碍背景模型的获取,影响目标检测精度.
结合背景差分和帧间差分两种方法的优点实现目标检测,分别采用这两种方法克服背景运动、光照变化以及目标短暂遮挡问题,保证检测出所有运动目标的特征细节,再对检测运算得到的二值化图像进行融合处理,使得最终检测的目标信息更完整[3].首先对传统混合高斯模型加入自适应学习率以及背景学习速率更新策略,克服背景运动造成的误检测问题;再通过对帧间差分法考虑光照变化的阈值因素,克服光照变化太大导致目标检测精度差的问题,同时对比相邻帧像素块大小分析处理目标短暂遮挡问题;最后对检测结果图像进行滤波处理消除噪声,提升检测分割效果.
构建高斯模型过程中,这个模型由K个高斯分布构成,K取值范围是3~5[4].近似估计所有像素点出现的值,计算得出视频帧图像中该像素值的出现概率,概率密度函数如公式(1)所示.
(1)
式中t时刻的像素值用Xt表示,wi,t为权重;μi,t为均值向量;∑i,t为协方差矩阵[5].在t时刻i个高斯分布的密度函数如公式(2)所示.
(2)
将每个像素与对应的K个高斯分布对比:
|Xt-μi,t-1|≤D×δi
(3)
若满足该判别式,则像素点与高斯分布匹配,反之不匹配.
根据wi,t-1/i,t-1优先级顺序计算所有高斯模型,根据公式(3)进行匹配[6].倘若没有匹配上,则用一个新的高斯分布来代替优先级最小的高斯分布,i,t取一个比较大的值,更新没有代替的高斯分布[7],如下所示:
wi,t=(1-α)wi,t-1+αMi,t
(4)
μi,t=(1-ρ)μi,t-1+ρXi,t
(5)
(6)
当该像素点与所有K个高斯分布均不匹配时,对高斯分布重新进行构建,并设置对应位置的像素值为均值,替换权重最小的高斯分布,然后对各高斯分布的权重值进行归一化处理[9].
判定像素点是否为目标点并不是将所有的高斯模型与该点进行匹配,由于权重越大越有可能用来描述背景,在权重排名中取前B个高斯模型选作为背景模型,B取值标准如公式(7)所示:
(7)
参数T为背景所占比例,若B个高斯分布中任意一个像素与当前像素匹配,则判定其为背景点,否则判定为前景点[10].
2.2.1 邻域均值计算
采用3×3模板方式对视频图像进行均值计算,并有效减少模型计算量.对所有视频序列,在左上角方向设置3×3邻域,各个领域不发生重叠.遍历计算图像中所有的邻域均值,在上一帧图像中,左上角第一个邻域均值设为e′,当前帧相同领域的均值为e,两者差值为Δe,通过Δe和均差因子λ更新当前帧的邻域均值e,更新后的像素值为e.其中:
(8)
新的像素值更新方法如公式(9)所示:
e
(9)
加入λ参数的作用是增强像素变化,从而凸显前景与背景的区别.遍历计算过程中,为减少计算量并加强像素变化,相邻两个邻域无交叉,3×3模板均值示意图如图1所示,通过标记颜色的深浅程度来凸显各个模板的区域范围.
在计算各个邻域均值过程中,该邻域可以视为一个整体,这个领域像素作为一个大的像素.在模型构建过程中,原始像素换为这个大像素,在公式(1)的计算过程中将Xt换为et,从而降低计算量实现算法检测的快速性.
图1 3×3模板遍历均值计算Fig.1 Calculation of traverse mean value of 3×3 template
2.2.2 自适应学习率设计
学习速率恒定会导致检测得到的背景图像存在“鬼影”现象,影响检测精度[11].自适应学习率不仅可以提高建模速度,还能有效提升目标检测精度和速度.学习率过大会导致模型更新的速率过快,将检测目标误认为背景;学习率过小会使得模型更新速度滞后于实际场景变化,将背景误认为检测目标,这都影响了目标检测精度.
采用的学习率依据目标像素在总像素中占比来确定,如公式(10)所示:
(10)
其中,Nall是当前帧图像总像素个数,Ofr是判定为检测目标的像素个数.根据目标像素在整个图像帧像素中占比,对学习率α赋值.在检测初始阶段,此时检测目标尚未进入背景,目标像素在整个图像中占比偏小,ε值较小,这种情况下需要加大学习率;当目标进入背景后,目标像素占比偏大,ε值较大,这种情况下需要减小学习率,避免检测目标被判定成背景.
2.2.3 学习速率更新策略
视频序列中待检测区域的标准差和方差值都偏大,无目标出现的位置像素点标准差和方差值都偏小.标准差和方差与均值紧密相关,通过对2.2.1节邻域均值进行分析计算并在此基础上设计实现自适应学习速率更新策略.
1)背景建立阶段学习速率更新策略
初始背景模型构建过程中,由于模型构建还处于初始阶段,需要增大学习率使背景模型收敛,从而符合实际场景情况,这个阶段中学习速率取值如公式(11)所示:
ρ=αN(xt|μi,δi)
(11)
其中α根据2.2.2节进行取值.
2)背景维护更新阶段学习速率更新策略
在建立背景模型后,需要通过场景变化情况动态更新背景模型,减少或加快背景控制参数的学习速率来避免误学习过程,实现对检测目标的有效分离.依据3×3模板邻域计算结果对学习速率进行反馈修正,统计公式(8)中Δe不为0和为0的次数来修正参数Δs:
Δs=0.01×(2n-m)
(12)
n和m分别是Δe不为0和为0的次数.通过对Δs数值的分析,来判断此时视频序列像素的变化趋势.若该值为正,判断像素变化较快,此时增大学习率来适应场景变化;若该值为负,判断像素变化较慢,此时减小学习率来避免发生误学习.调整过程如公式(13)所示:
ρ=α(1+Δs)/δi
(13)
建立背景模型fb后,再根据每一帧图像fk与背景图像进行差分运算,从而得到最终检测目标图像,并将灰度图像二值化处理,如公式(14)所示.
(14)
式中,T1为检测分割固定阈值,Zk(x,y)为最终检测目标图像.如果某点像素与背景模型的差值小于阈值T1,判定该点为检测图像中的背景点;否则,判定该点为检测目标点.
针对所提出的背景运动问题,对改进后的混合高斯模型和传统高斯模型进行实验分析,实验仿真检测结果如图2所示.
图2 传统和改进高斯模型对比图Fig.2 Comparison of traditional and improved Gaussian models
根据图2检测结果可以发现,在传统混合高斯模型背景提取结果中,鬼影现象较为明显,这是因为在视频初始阶段目标停留时间较长以及背景更新速率恒定,导致背景提取速率快于场景更新速率;ViBe算法与传统高斯模型相比,背景检测结果较为清晰,但还存在部分鬼影,这主要由于该算法无法完全克服人的运动特性变化,导致检测准确率不高,与本文改进算法相比,目标检测轮廓较为模糊;而在改进的高斯模型背景结果中,加入了自适应学习率以及背景学习速率更新策略,背景提取结果较为清晰.检测过程随机选取视频中1000帧图片进行分析,对比图像分割的前景和背景,统计鬼影发生次数,计算得出鬼影发生率,对比结果如表1所示.
根据表1结果所示,对比传统高斯模型以及ViBe算法,改进算法通过加入了自适应学习率以及背景学习速率更新策略明显降低了鬼影发生次数,从而保证了目标检测精度.但在视频中运动目标被遮挡时,背景差分法很难提取到被遮挡目标全景,因为当目标被遮挡时,所有背景建模图像中均有遮挡物,就导致差分运算后依然会存在遮挡干扰情况,可以结合帧间差分法解决目标短暂遮挡问题.
表1 鬼影发生率对比表Table 1 Comparison of ghost incidence
帧间差分法通过对相邻两帧或多帧图像进行差分运算,得到检测目标轮廓.在检测过程中,通过连续多帧检测能更好的减少目标空洞问题,提升目标检测精度.
设f(n+2)、f(n+1)、f(n)、f(n-1)和f(n-2)分别为运动视频中连续5帧图像,f(n+2)(x,y)、f(n+1)(x,y)、f(n)(x,y)、f(n-1)(x,y)和f(n-2)(x,y)为灰度图,差分图像为G(n+2)、G(n+1)、G(n-1)和G(n-2).
(15)
选取合适阈值对差分运算后的结果进行二值化处理,如公式(16)所示:
(16)
(17)
上式中,当Rn计算结果为1,判定为检测目标;若计算结果为0,则判定为背景点[12].λ为抑制系数,参考值为2;M×N表示图像中待检测区域的像素个数.T2为固定阈值,Δti为动态阈值,该动态阈值反应了视频序列中光照变化情况,当环境光照发生明显变化时,相邻两帧像素差异较大,动态阈值Δti增大,进而增大了二值化处理过程的判断阈值,从而有效克服光照变化问题;而当环境光照变化不明显时,相邻两帧像素差异较小,动态阈值Δti变小,在二值化处理过程中对阈值影响很小.
在待检测视频中,传统5帧差分法会因目标短暂遮挡导致无法被检测.针对因运动目标发生短暂遮挡而无法被检测到的问题,进行了相应改进.过程如下:比较前后两帧像素块的大小,若当前帧检测像素块Rt小于上一帧检测像素块Rt-1,即视频序列中至少丢失一个像素块,然后把上一帧和当前帧检测结果“位或”处理,作为最终检测结果.前一时刻t-1和当前时刻t检测的像素块数为Rt和Rt-1,如公式(18)所示:
(18)
式中,Rt-1(x,y),Rt(x,y)记为上一帧和当前帧图像,R(x,y)为最终检测图像.通过对比相邻两帧图像的像素块数,若上一帧像素块数小于等于当前帧像素块数,则检测目标区域无遮挡情况,此时保留原数值不做改变;若上一帧像素块数大于当前帧像素块数,则检测目标区域存在短暂遮挡情况,目标像素减少,将相邻两帧图像做“位或”处理,对目标检测区域实现最大程度保留.
利用Wallflower数据集中的动态视频对改进5帧差分法进行实验分析,实验对比结果如图3和图4所示,图3视频中光线逐渐发生变化,图4视频中背景树来回摆动.子图(a)是运动检测原图,子图(b)和子图(c)分别是传统3帧差分和改进5帧差分算法检测结果图,子图(d)是标准检测结果图.根据图3仿真结果可知,场景光照变化导致传统3帧差分检测的目标空洞明显,检测的人体轮廓不全,效果较差,而基于改进5帧差分可以较好的检测到轮廓外观,与标准图相差不大;图4中可以看出3帧检测结果轮廓存在明显的空洞,而5帧的检测轮廓基本和标准图像一致.
图3 场景光线变化对比图Fig.3 Contrast of scene light changes
图4 目标轮廓检测对比图Fig.4 Contrast diagram of target contour detection
总体来看,基于运动特性的帧差法无法排除运动背景的干扰,导致在3帧和5帧差分结果中存在着明显的背景干扰问题,结合改进高斯模型可以有效去除运动背景干扰造成的误检问题.
融合算法目标检测步骤如下:
Step 1.首先将待检测视频输入,将视频序列分解为每一帧的图像序列,然后通过相应滤波处理来抑制消除图像的噪声,对RGB图进行灰度化处理转为灰度图;
Step 2.对经过灰度化处理的连续序列图像进行改进高斯模型的背景差分和改进五帧差分运算,分析选取合适阈值对灰度差分图像进行二值化处理,分割提取出检测目标.在分别得到背景差分结果Z(x,y)和帧间差分结果R(x,y)后,对两者结果进行或运算,如公式(19)所示:
(19)
Step 3.将两者结果进行或运算融合处理后,最后对输出视频噪声进行消除并进行形态学处理,得到最终输出结果视频.
针对目标短暂遮挡问题以及背景运动问题对改进融合算法进行实验分析,如图5所示,对比传统算法与改进融合算法,图5(a)为检测视频原始图像,图5(b)为传统高斯模型检测结果图像,图5(c)是融合改进算法检测结果图像.
图5 算法检测对比Fig.5 Algorithm detection comparison
检测对比图中,图5(b)检测结果中人体周围存在较为明显的阴影区域,这是由于传统高斯模型背景更新速率恒定,对前景目标检测形成阻碍;图5(c)基于改进融合算法对比图5(b)中的结果可以看出,由于待检测视频中存在明显的背景运动干扰,导致传统高斯模型对前景目标发生误检,同时还存在因前景运动区域被遮挡导致检测不到的现象.通过改进传统高斯模型背景更新速率,排除了运动背景的干扰,同时结合五帧差分法,使得运动区域在发生短暂遮挡时仍然能被检测到,提高了目标检测精度.
通过准确率PA、召回率PB、综合指标PAB和运算时间T对改进融合算法进行评估,具体计算过程如公式(20)-公式(22)所示:
(20)
(21)
(22)
式中,M表示前景像素被正确分类为前景点的个数;N表示背景像素被误分类为前景点的个数;L表示背景像素被正确分类为背景点的个数;H表示前景点被误分类为背景点的个数.PAB指标是对PA和PB两者的综合指标考虑,体现算法的总体效果.
选用pedestrian、badminton和fountain02数据集视频序列,其中badminton是抖动遮挡视频,fountain02是动态背景的视频,pedestrian为基础数据集,该视频中没有背景抖动等外界干扰的影响.选取上述视频中约3000帧的图像序列,将仿真得到的二值图像与参考图像进行对比分析,计算相应系统指标值,包括PA、PB、PAB以及运算时间T,并与其他算法比较.
将该算法与文献[13,14]方法测试结果进行分析对比,结果如表2所示.
表2 算法指标Table 2 Algorithm indexes
将本文方法与国外文献[15-18]研究结果进行对比,综合分析各个算法的目标检测准确率和检测时间,如表3所示.
表3 算法指标对比Table 3 Comparison of algorithm indexes
文献[15]通过惯性测量单元(IMU)传感器进行特征点的划分来实现运动目标检测,检测设备性能较高,该方法鲁棒性较高,但摄像机的运动和运动物体会改变连续图像的强度和特征值,无法解决运动物体扰动问题;文献[16]在GMM的基础上,将前景匹配和短期稳定度相结合,对慢速运动目标进行检测,能够有效克服光照变化带来的干扰,该算法通过对稳定度的分析,在慢速运动目标的分析检测上效果更为明显,但本文同时也考虑克服了目标遮挡以及其它运动问题;文献[17]提出了一种多尺度特征信息融合深度学习检测方法,在不同尺度上进行特征融合操作,该算法针对大量数据分析实时性更高,但在检测精度上本文算法更优;文献[18]中提出了一种基于融合特征的深度学习检测目标方法,该方法主要对高分辨率遥感图像进行检测,针对单一运动数据分析检测结果与本文差异不大,但对于不同类别的数据,算法可移植性较差.通过进一步对比国外文献研究结果,证明本文改进算法针对运动目标检测具有一定的创新性和实用性.
根据各个算法的数据结果对比可知,由于帧差法是计算相邻帧图像之间的像素差值,在动态视频检测过程中处理时间最短,本文融合算法需要分别考虑背景运动、光照变化以及目标短暂遮挡问题,检测分析步骤较多,运算复杂度较大,但综合考虑准确性指标,本文算法在保证一定的实时性上与其他算法相比有很大的提升.
本文提出一种结合改进混合高斯模型和改进五帧差分的运动目标检测算法,通过加入光照动态阈值有效解决了光照变化所造成的目标检测精度较低的问题,同时能在一定程度上克服目标被暂时遮挡导致检测不到的缺陷,利用改进的混合高斯模型解决背景运动问题,去除背景提取中存在的鬼影现象,提升前景目标检测精度.结果表明,在发生目标短暂遮挡及背景运动时,本文算法能够比较准确的检测到目标,同时能够保证一定的实时性.改进后的融合算法能够进一步分析研究,具有较好的自适应能力,在交通、气象等实时监控领域中具有广泛的应用价值.