一种快速的前景检测算法
2011-10-18易向阳陈大海
易向阳 莫 林 周 赞 陈大海
(广西大学计算机与电子信息学院,广西 南宁 530004)
一种快速的前景检测算法
易向阳 莫 林 周 赞 陈大海
(广西大学计算机与电子信息学院,广西 南宁 530004)
文章提出一种快速前景检测算法,通过对背景差分得到的前景区域进行处理分析,能够区分出正确的运动区域和由于光线突变而引起的运动区域。首先使用快速背景更新算法建立背景模型及分割出前景,然后提取运动区域,再对运动区域和差分图像进行分析处理,识别出由于光线突变而引起的运动区域,最后对背景进行修正。采用该方法能准确地提取前景中的运动目标区域,同时达到了自适应背景更新的目的,并且算法实现简单,实时性较高。
背景差分;区域分析;背景更新;前景检测
(一)引言
近年来,随着视频监控的迅速发展和广泛应用,视频监控是对视频场景内感兴趣的区域和目标进行检测、跟踪、识别和预警。而前景检测是后继处理的基础,制约着整个视频监控系统稳定性、可靠性。对于视频背景静止不动的情况,前景检测算法有帧差分法、背景差分法两大类。帧差分法速度快,能准确地获取运动目标的边缘,但获取的前景目标上有较多空洞,对于运动速度快的目标,检测时会产生拖尾现象,而且无法检测静止目标。背景差分法是先对背景图像进行建模,然后计算输入帧和背景图像之差,以检测前景物体。这种方法相对简单,能够比较完整地提取运动目标,也能适应环境变化,有一定的抗干扰能力,但是这种方法对背景质量的要求较高。典型背景建模方法有平均背景法、混合高斯算法等。在背景差分法中,为了获得准确的前景,需要对背景进行实时更新,背景更新方法关系到检测到的前景是否准确,对前景检测的实时性也有很大影响。
同时,前景检测还受光照变化的影响,如路灯的突然开和闭、闪电、天气光照、物体的阴影和反光等产生的干扰。背景更新时,有很多干扰会影响到背景更新,有些干扰会引起背景缓慢变化,如环境光线变化不大时。有些干扰会引起背景剧烈变化,如路灯的突然开启和关闭等。对于缓慢变化,可以用背景的更新方法将这些变化融入新的背景中。而对于剧烈变化则会产生新的干扰目标。前景检测应该判断出背景的变化是剧烈变化还是缓慢变化,如果是剧烈变化,则要对背景进行修正,以得到准确的背景。前景检测要识别出干扰目标区域,对干扰目标区域用背景帧像素更新背景,对非干扰目标区域用当前帧像素更新背景。
(二)快速的前景检测算法
视频环境的变化有缓变和突变的情况,多数情况下为缓慢变化,但也有突变,如路灯的突然开启和关闭。背景突变时,如果不对背景模型进行修正,就不能准确地提取前景中的运动目标。为了准确地提取前景目标,本实验提出一种新方法,能够快速地去除背景突变时产生的干扰。
前景检测算法流程图如图1所示。
图1 前景检测算法流程图
1.背景减除法检测运动前景
设当前帧图像为 Ct(x,y),生成的背景图像为 Bt( x,y),检测到的前景图像为 Dt(x,y)。可以采用背景差分法生成前景:计算当前帧图像 Ct(x,y)像素与上一帧背景图像 Bt−1(x,y)像素的差值,若差值大于阈值ε,则认为该像素是前景像素点,否则是背景像素点。
其中ε为设定的阈值,Dt(i , j)=0为背景像素,Dt(i , j)=1为前景像素。
获得差分图像为: Ft( i , j)=Ct(i,j)−Bt−1(i,j),然后再把差分图像区分出前景区和背景区:
2.自适应背景更新
由于视频环境在不断地变化,特别是突变的光照,会造成背景图像的变化,所以需要及时对背景进行更新。通过当前帧图像Ct(x,y)和前一帧生成的背景图像 Bt−1( x,y)获得当前帧的背景图像,更新算法如下:
这种背景更新方法只适用于背景变化缓慢的情况,当背景变化剧烈时,必须识别出剧烈变化的区域,背景更新时,必须对这些区域进行背景修正。
3.背景修正
由于背景的光照剧烈变化,背景更新时会把这种变化误认为是前景目标,从而造成背景更新错误。背景更新时必须识别出这样的剧烈变化,并对背景进行修正。
(1)提取连通区域
在D(i,j)中检测出一系列矩形区域 Sk,设Imax,k是区域 Sk的上边界,Imin,k是区域Sk的下边界,Jmax,k是区域Sk的右边界,Jmin,k是区域 Sk的左边界。这样就可以计算出矩形区域 Sk的高度 Hk、宽度 Wk,也可以计算出该矩形区域内前景像素点的个数SUMk。即
矩形区域面积用像素点的个数SUMk表示:
count=0
for
(i=Imin,k,j=Jmin,k;
{
if Sk(i,j) =1 then
count=count+1;
}
SUMk=count;
(2)分析处理连通区域
光照剧烈变化,而背景还没有及时更新时,会产生干扰运动目标。为了提高背景更新的精度,必须排除由于亮度突变产生的前景目标区域。本实验采用像素灰度的均值对检测到的所有前景目标进行判断,能够快速区分出这些区域是亮度剧烈变化产生的变化区域,还是真正运动目标区域。
1)前景目标区域处理与分析
设为Sk(i,j)中某像素的灰度值为 v( i,j),先分别计算出该区域内像素灰度的均值μij和差分图像背景区 Ft" ( i,j)内像素的均值μB和标准差σB。
参考均值μB是非常重要的参数,它是判断前景目标区域是否为希望检测的运动区域的重要依据。为使μB体现更多的背景信息,引入学习机制,对μB进行更新,即μB=α×μB+( 1-α)×μij,α为更新率,其值一般在( 0.5,1) 区间选取,实验中α值均设定为0.8。
然后再对该前景目标区域进行逐点扫描,判别该区域Sk( i,j)内的像素是属于背景点或前景点。判断方法如下:
①count=0; 统计v( i,j)属于背景点的数目;
②if | v( i,j)-μB| < T1 count=count+1; 即 v( i,j)∈背景点;
③if count / SUMk>= T2
其中,T2为分类阈值设为 0.8,分类阈值 T1设为 3σB,而Sk" ( i ,j)是正确的运动目标,而 Sk'(i,j)是亮度剧烈变化产生的变化区域,是虚假的运动目标。
2)修正背景
准确区分出需要检测的运动目标区域和干扰产生的运动区域后,就需要把这些干扰区域的进行修正,修正的方法就是用当前帧的像素值对这些干扰区域进行更新。
若 Sk(i,j)为亮度剧烈变化产生的变化区域,则用当前帧图像 Ct(x ,y)中的相应点像素值更新; 若 Sk(i,j)为正确的运动目标,则用背景图像 Bt−1(x,y) 中的相应点像素值更新。
(三)实验结果
本实验采用C++和OpenCV 为开发工具,在Pentium(R)4 CPU为3.0GHz,内存为512MB的微型机上,提出对一段视频进行实验、测试,获得处理速度为每秒15 帧。下图是视频序列中截取的突然开灯时,如图(a),程序分别用无背景修正和有背景修正算法,对视频序列进行前景检测。无背景修正时,得到图(b)前景,突然亮起的灯也被检测为前景目标。而有背景修正算法时,突然亮起的灯则被正确地更新到背景中,没有被检测出来。可见,本文提出的算法能够有效地适应背景光照突然变化,并能够正确检测出前景目标,如图(c)。果表明该方法快速、准确,有广泛的适用性。
(四)总结
[1] Takashi Matsuyama , Toshikazu Wada , Hitoshi Habe , et al .Background Subtraction Under Varying Illumination[C] .Systems and Computers in Japan[A] . 2006 ,37 (4) :77288.
[2] Chris Stauffer , Grimson W E L. Adaptive Background Mixture Models for Real2time Tracking[C].Computer Vision and Pat2 tern Recognition ,1999.IEEE Computer Society Conference,1999:2462252.
[3] 莫林,廖鹏,刘勋.一种基于背景减除与三帧差分的运动目标检测算法[J].微计算机信息,2009,(12).
[4] 邱尚斌,李刚,林凌.一种新的运动目标检测和背景更新方法[J].辽宁工学院学报,2005,(2).
[5] 邹承明,李伟.一种改进的自适应背景更新算法[J].武汉理工大学学报,2009,(2).
TP301.6
A
1008-1151(2011)06-011-02
2011-04-01
易向阳,广西大学计算机与电子信息学院工程硕士研究生。