利用摄像机进行监控是保障城市安全的重要手段,而随着监控视频数据的迅速增加,人工处理这些监控数据变得越来越困难[1],因此迫切需要一种可以自动处理这些监控数据的方法,视觉监控就成为了一个重要的研究领域[2,3].在监控视频中,人们通常对运动的目标更感兴趣,运动目标检测就是在视频序列中把运动的目标分割出来.
目前,运动目标检测技术可以分为三大类,分别为背景差分法、帧间差分法和光流法.其中背景差分法的主要操作是使用当前帧图像与不包含前景目标的背景模型进行比较[4].本文深入研究了背景差分法的建模方法——ViBe算法,并针对其消除鬼影速度过慢的问题,提出结合帧间差分技术的ViBe改进算法,以提高鬼影消除速度;对于ViBe算法固定阈值不能反映每个像素具体变化情况的问题,提出了基于自适应阈值的ViBe改进算法来提高前景检测的准确性.
1 背景差分法背景差分法是静态背景下运动目标检测的常用方法.所有的背景差分技术都必须考虑三个问题:背景模型是什么;背景模型怎样初始化;背景模型怎样更新.一些背景差分技术致力于满足某些特殊的需求,如:光照渐变或突变,景中物体的高频运动(如树叶和树枝)等等.在室外场景监控中,对噪声的鲁棒性和对光照变化的自适应,也是背景差分技术需要满足的.背景差分法的检测效果主要取决于背景模型能否正确地描述真实背景[5].主要的背景差分模型有:ViBe算法、统计平均模型、自组织背景模型和码本模型.
1.1 背景差分法的评价方法由于背景差分法是从像素级对其性能进行评价的,因此,对前景目标的检测是对图像像素二值划分的过程.二值划分结果的正确性用三个指标来评价[6],分别是召回率(recall)、精确率(precision)和它们的调和平均值F值.召回率表示检测结果中正确前景像素在标定结果中所占的比例,精确率表示检测结果中正确前景像素在所有前景像素中所占的比例,F值是它们的综合指标.
1.2 ViBe算法ViBe算法使用颜色空间中的邻居像素判定当前像素是前景像素还是背景像素.它为每个像素建立一个背景像素样本值空间,样本值空间中保存着像素及其邻居像素最近所取得的背景像素值,当前像素的像素值与背景模型中与其最为相近的像素值进行比较,当前像素的像素值只要与背景模型中一部分像素值相近,就判定该像素为背景像素.像素的背景模型可表示为
其中:vi表示背景样本空间中的像素值;N表示样本空间的大小.ViBe算法使用第一帧图像初始化背景模型,对于像素背景样本空间中的每一个样本值,从该像素和其邻居像素中,随机选择一个像素值对其进行初始化,每一个像素值被选中的概率相同,如式(2)所示:
其中:y为像素x的邻域中随机选择的一个邻居像素;NG(x)为像素x的邻域集合.像素值v(y)可能在背景模型中多次出现.ViBe算法从第二帧开始进行前景检测.设在当前帧图像中像素x的像素值为v(x),SR(v(x))为以v(x)为中心,R为半径的区域,则区域SR(v(x))中包含像素x的背景样本值的个数为{SR(v(x))∩{v1,v2,…,vN}},以其大小判定像素是前景像素还是背景像素.如果其值大于或等于阈值min,则该像素为背景像素;否则,该像素为前景像素.帧像素值与样本值在二维颜色空间的比较如图1所示,其中C1,C2为二维颜色空间(C1,C2)的分量.区域半径R和阈值min是影响检测精度的两个参数.因为背景模型中样本值的数量N和min是固定参数并且具有相同的影响对象,所以可以使用min/N衡量背景模型的敏感度.
ViBe算法是一种较为有效的背景差分算法[7],但ViBe算法仍存在一些需要改进的地方.本研究首先分析了ViBe算法鬼影消除策略,然后针对该算法鬼影消除存在的问题,提出了一种快速消除鬼影的方法,解决了该算法鬼影消除缓慢的问题.最后提出了自适应阈值的方法,提高了该算法的检测准确度.
2.1 ViBe算法的鬼影消除策略
鬼影(ghost)是指不对应实际运动目标的前景区域[8].当背景中的物体突然运动时,物体原来的位置会被其覆盖的区域取代,这种变化会在接下来的图像序列中立即反映出来.这就会在物体原来的位置产生误检,检测到不存在的运动目标.当有运动目标经过鬼影区域时,会造成运动目标与鬼影区域的粘连[9],从而影响对目标的跟踪和识别.
ViBe算法使用第一帧图像建立背景模型,如果第一帧图像中存在运动的物体,则会在接下来的检测结果中出现鬼影,因此消除鬼影对ViBe算法至关重要.由于鬼影区域是由原来属于背景的静止物体突然运动产生的,因此鬼影区域往往与其周围的背景区域是一体的,它们具有相似的颜色分布.基于这一点,ViBe算法使用邻居扩展的方法消除鬼影,当背景像素更新其背景模型时,会随机选择一个邻居像素,用当前背景像素值更新该邻居像素的背景模型.假设像素p为背景像素且其背景模型需要更新,M(p)为其背景模型,q为在像素p的邻居像素中随机选择得到的像素,其背景模型为M(q),V(p)为当前帧中像素p的像素值,则背景更新时,V(p)要同时更新到背景模型M(p)和M(q)中.这样鬼影区域边缘的像素的背景模型会被其邻居背景像素的像素值更新.由于鬼影区域与其邻居具有相似的颜色分布,所以鬼影区域边缘的像素会逐渐融入背景,最终鬼影区域会被完全消除.
2.2 结合帧间差分的ViBe算法改进ViBe算法的邻居扩展策略消除鬼影的速度较慢,因而会在较长的时间内影响检测结果的精确率.另外,邻居扩展策略消除鬼影的前提是鬼影区域与周围背景区域存在颜色上的相似性,当该前提不满足时,鬼影很难被消除.同样地,对于由运动变为静止的物体,邻居扩展策略很难把它们融入到背景中.
针对ViBe算法存在的问题,提出了结合帧间差分技术的ViBe算法.总体思想是,如果某个区域在检测结果中是前景区域,但该区域在较长时间内没有发生变化,则认为该区域是鬼影区域,应把该区域融入到背景中,从而消除鬼影.帧间差分法可以检测相邻两帧之间的变化.具体算法步骤如下:为每一像素p设置一个计数器TOS(p),初始化为0.当检测到像素为前景像素时,使用当前帧的像素值与前一帧对应像素的像素值差分,如果差分结果小于预设阈值Td,则该像素的TOS(p)加1,否则,TOS(p)赋值为零.该过程可用式(3)表示:
式中:f(p)标志像素p是否为前景像素,其值为1表示p为前景像素,为0表示p为背景像素; d(p)表示相邻两帧图像对应像素p的像素值的差值与阈值Td的比较结果,当差值小于Td时,d(p)=0,当差值大于或等于Td时,d(p)=1.当TOS(p)大于预设阈值TTOS时,则认为该像素为鬼影像素,把该像素更新到其背景模型中.对于在较长时间内像素值没有发生较大变化的前景像素,该方法把它们标记为鬼影像素,并融入到背景中.该方法可以与邻居扩展策略结合使用,把鬼影区域分割成小区域,从而使邻居扩展策略更有效率,产生更好的鬼影消除效果,更快地消除鬼影对检测结果的影响.另外,当监控场景中发生光照突变时,该算法可以较快地把光照的变化融入到背景中.
2.3 应用自适应阈值的ViBe算法改进ViBe算法进行前景检测时,判断背景模型中的样本值是否与当前像素值匹配,采用的是固定阈值T,即图像中所有像素都使用同样的阈值且不随时间改变.阈值T设置较大时,与背景像素值比较接近的前景像素就会被误检为背景.当阈值T设置较小时,导致检测结果中出现较多的噪声.
为了提高检测的准确度,应该根据像素的具体情况,为每个像素设定一个阈值,该阈值随着像素背景的动态变化程度的不同而不同.当背景像素的像素值变化较大,即像素的动态变化程度较高时,应增大阈值,从而在检测结果中屏蔽这些变化.当像素值变化较小时应减小阈值,从而可以检测到更多的运动目标像素.因此,需要定义一个衡量背景动态变化程度的指标,可以用像素背景模型中样本值的标准差来衡量像素背景的变化程度[10].但是样本空间像素值的标准差需要较长的计算时间,因此,定义阈值T如下:设当前帧中像素p的像素值为V(p),如果p为背景像素且使用像素值V(p)更新背景模型,则阈值使用式(4)设置;如果p的背景模型被其邻居像素更新,则像素p的阈值设置为其邻居像素的阈值;如果p的背景模型没有更新,则其阈值保持不变.为了防止出现阈值过大和过小的情况,阈值应该有上限和下限.因此,阈值设定为T∈[20, 40].
式中: k为背景模型中与像素p进行比较的像素值的个数;vi为背景中的像素值. 3 实验分析 3.1 结合帧间差分改进的ViBe算法的验证分析实验的输入是一组连续的图像序列,该图像序列是行人在路上行走的监控图像,在第607帧时,静止的行人开始行走,在原来静止的地方产生了鬼影.图2展示了分别使用原算法与改进后算法进行鬼影消除的效果.其中,2a~2d分别对应第607,667,717和767帧图像,为输入图像;2e~2h是原算法邻居扩展策略的鬼影消除效果;2i~2l是结合帧间差分技术的鬼影消除效果.从图中可以看出,结合帧间差分技术的改进算法可以较快地消除鬼影区域.原算法和改进算法的检测结果中的鬼影像素的数量随帧数的变化如图3所示,其中横坐标表示鬼影产生后经过的图像帧数,纵坐标表示鬼影像素的数量.从图中可以看出改进后的ViBe算法的检查结果中的鬼影像素的数量减少较快,从而具有更为准确的检测结果.
(a)—第607帧图像; (b)—第667帧图像; (c)—第717帧图像; (d)—第767帧图像; (e)~(h)—应用ViBe算法的第607,667,717,767帧图像; (i)~(l)—应用结合帧间差分技术的ViBe算法的第607,667,717,767帧图像. |
实验的输入图片序列是一组监控数据.监控场景是旁边有喷泉的马路,运动目标是路上行驶的车辆.另外,场景中还包含喷泉和树叶等动态背景,这些动态背景是不希望检测到的.图4是ViBe算法与自适应阈值算法的效果对比图,图4a是图像序列中的第741帧图像,图4b是标定结果,图4c和图4d分别是原算法和改进算法的检测结果.从图中可以看出,改进算法可以检测到的运动目标像素更多,运动目标更加清晰和完整;而检测到的动态变化的区域(喷泉和树叶)较少,噪声点较少.
(a)—第741帧图像; (b)—标定结果; (c)—应用ViBe算法; (d)—应用自适应阈值的ViBe算法. |
表1和表2分别是原算法和改进算法的精确率、召回率,它们是从连续的11帧图像的检测结果中计算得到的.
从表1和表2 中可以看出,改进算法具有较高的精确率和召回率.图5是原算法和改进算法的F变化曲线图,它是由表1和表2中的精确率和召回率计算得出的.F值越大,说明检测效果越好.
通过对ViBe算法进行深入分析,提出了结合帧间差分和自适应阈值的ViBe改进算法,对原算法和改进算法进行对比实验,并使用评价指标对实验结果进行评价.实验结果表明,通过结合帧间差分技术,改进算法比原算法具有更好的鬼影消除能力和应对动态背景的能力.通过应用自适应阈值,解决了ViBe算法为每个像素设定固定阈值不能反映像素具体情况的问题,检测结果的准确性得到了提高.
[1] | Barnich O,Droogenbroeck M V.ViBe:a universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724. (1) |
[2] | 何楠楠,杜军平.智能视频监控中高效运动目标检测方法研究[J].北京工商大学学报,2009,27(4):34-37. (1) |
[3] | Maddalena L,Petrosino A.A self-organizing approach to background subtraction for visual surveillance applications[J].IEEE Transactions on Image Processing,2008,17(7):1168-1177. (1) |
[4] | McIvor A M.Background subtraction techniques[J].Process of Image and Vision Computing,2001,136(2):752-756. (1) |
[5] | Elgammal A,Harwood D,Davis L.Non-parametric model for background subtraction[M].Berlin:Springer Berlin Heidelberg,2000:751-767. (1) |
[6] | Lucas D,Kanade T.An iterative image registration technique with an application to stereo vision[C]// Proceedings of the 7th International Joint Conference on Artificial Intelligence.San Francisco:Morgan Kaufmann Publishers Inc,1981:674-679. (1) |
[7] | Bouwmans T,Porikli F,Hoferlin B,et al.Background modeling and foreground detection for video surveillance[M].Waretown:Chapman and Hall/CRC,2014. (1) |
[8] | Shoushtarian B,Bez H.A practical adaptive approach for dynamic background subtraction using an invariant color model and object tracking[J].Pattern Recognition,2005,26:5-26. (1) |
[9] | Li Y Q,Chen W Z,Jiang R.The integration adjacent frame difference of improved ViBe for foreground object detection[C]//The 7th International Conference on WiCOM.Piscataway:IEEE,2011:1-4. (1) |
[10] | Droogenbroeck M V,Paquot O.Background subtraction:experiments and improvements for ViBe[C]//Computer Vision and Pattern Recognition Workshops (CVPRW).Providence:IEEE,2012:32-37. (1) |