邱光能,全惠敏
湖南大学电气与信息工程学院,长沙410082
智能视频监控是图像处理和计算机视觉领域的研究热点,具有十分广泛的应用领域,如交通场景中车辆和行人情况的监控,超市和银行等公共场所的监控。智能视频监控主要包括运动目标检测、目标分类、目标跟踪和行为理解四部分。其中运动目标检测是智能视频监控系统的关键部分,是目标跟踪和行为理解的基础。
常用的运动目标检测法有光流法、帧差法和背景减法。基于光流法的运动检测由于孔径及遮挡问题计算复杂耗时,其实时处理比较困难。
帧间差分法通过序列图像中相邻两帧图像相减并且阈值化来提取运动目标区域,算法简单,速度快,易于硬件实现,对光线的变化不是非常敏感。相邻两帧差分法依赖于运动目标的运动速度,速度过快或过慢都无法检测出完整的运动目标。
背景减法是先构建一个背景图像,然后利用当前图像与背景图像相减得到差分图像,通过阈值分割来提取目标。常用的背景建模算法有:时间平均法、W 4方法、码本方法、核密度估计法、混合高斯模型法等[1]。时间平均法计算简单,但是当运动目标数量比较密集的情况下,容易将目标误检为背景。文献[2]利用改进的W 4方法进行背景建模,取得了良好的检测效果。文献[3]提出了一种改进的码本方法,可以处理背景运动和光照变化,具有背景训练不受限制、速度快等特点。文献[4]利用核密度估计无参背景建模方法,样本充分时能够较快地适应场景变化,可以处理多模态情况,但计算复杂,占用内存多。文献[5]利用混合高斯模型法对每个像素建立背景模型,能鲁棒地克服光线、背景混乱等造成的影响,但对大而慢的运动目标检测效果较差,对全局亮度的突然变化非常敏感,对物体移入或移除背景更新速度慢。文献[6]提出了一种基于块的背景重构算法,能有效分割出前景目标并解决场景变化等问题。文献[7]提出了一种新算法ViBe,算法速度很快,而且对噪声有一定的鲁棒性,检测效果不错。由于背景减法可直接给出目标的位置、大小、形状等信息,特别适用于摄像头静止的情况,不受目标运动速度的限制,是实现运动目标实时检测和提取的首选方法。背景减法能够较好地检测出前景像素点,但是对外界的的变化比较敏感。
考虑到使用单一的算法很难适应环境的变化或者不易于检测出完整的运动目标,本文在比较各种算法的基础上,提出了一种基于背景减和多重对称差分的运动目标检测算法。该算法能自适应地对背景进行实时更新,并能有效地克服光照等外界条件变化对运动目标检测所带来的影响。
本文算法的运动目标检测主要包括预处理、背景建模、运动目标提取等步骤。预处理对每一帧图像进行去噪和灰度化,以抑制噪声的影响;背景建模则采用改进的时间平均法初始化背景并不断的实时更新,以克服环境的变化所产生的影响;目标检测是融合背景减和多重对称差分法来获取运动目标。下面将详细介绍算法的主要步骤。
因外界环境的影响采集的图像中难免会存在一些噪声,这些噪声点会影响后续运动目标的检测准确度,因此需要对视频的每一帧图像进行平滑处理,本文采用经典的中值滤波去噪,该方法不仅能滤除掉一些随机噪声,而且又能很好地保护图像的边缘信息。为了便于后续图像处理,需把采集的彩色图像转换成灰度图像,其灰度值Gray和RGB颜色的对应关系为:
Gray=0.299R+0.587G+0.114B
2.2.1 背景初始化
背景减法研究的主要问题是背景图像的提取,如何构造出高效实用的背景模型获取可靠的背景图像是背景减法的研究重点。背景建模时需要考虑树枝树叶等背景扰动、外界光线变化以及背景的更新等[8]。
对于摄像头静止的情况,最简单的背景选择方法是采用固定的某帧图像作为背景,但这种方法受外界场景的影响较大,不适用于背景复杂及变化的环境。初始化背景图像的获取对于目标检测的准确度以及背景图像的更新起着至关重要的作用,一个好的背景模型要求在初始化过程中有目标移入或者移出背景的情况下也能准确提取出背景。传统时间平均背景提取算法简单快速,但是在运动目标较慢、目标较密集等情况下不能准确提取背景。本文在传统时间平均法的基础上,提出了一种有效的背景初始化算法,其基本思想是一般情况下,某个区域存在运动目标的时间是有限的,那些差异较大的点是由运动目标引起的。用相邻帧间差分法获取运动目标区域,将运动目标像素点丢弃,非运动目标区域像素点灰度进行多帧累积求平均,从而构造出真实的背景。背景提取的主要步骤如下:
步骤1 建立一个视频流滑窗来缓存前L帧图像。
步骤2 顺序读取视频帧,将当前帧Ik(x,y)与前一帧Ik-1(x,y)做差分运算,并二值化阈值。
式中,T为阈值,其大小对当前像素的提取有影响,本文采用最大类间方差法进行自动阈值分割,选取使类间方差最大和类内方差最小的图像灰度值作为最佳阈值[9]。
步骤3形态学处理。由于相邻帧间差分运算时纹理相同的部分会得到空洞区域,这部分可能会被误判为背景,因此可以采用形态学方法填充该区域。
步骤4 返回步骤1进行迭代直到读取完L帧,对非运动区域像素值进行累加,设定Cnt(x,y)为非运动点(x,y)的累积次数,S(x,y)为非运动点(x,y)的灰度累加值,即当ADk(x,y)=0时,进行如式(2)、(3)运算:
步骤5求取非运动区域每个像素的平均值,将该值作为初始化背景的像素值:
改进的背景提取算法只对非运动像素点进行累积,去除了差异较大的点,然后再求平均,继承了平均法模型简单、计算方便等特点,能得到更为准确的背景图像。
2.2.2 背景更新
在视频运动目标检测的过程中,背景图像往往由于环境光线、场景中背景像素轻微扰动、目标的存在等不确定因素会发生变化。这变化有两种情况:一种是缓慢的,整个背景的变化趋势相同;一种是突变的,像素值在很短的时间内发生剧烈变化,且变化趋势和整体的变化趋势不相同。针对以上两种情况,要实现对运动目标的精确检测,需要在运动目标检测过程中对背景进行更新,本文采用两种不同的策略对背景进行有效地实时更新,以提高系统的抗干扰性。
(1)对于场景本身发生大范围变化的情况,特别是场景中全局光线突变,如阳光被云遮挡或者室内突然开关灯等。这种情况下可以考虑连续几帧与背景帧的差分图像,若连续几帧的差分图像发生变化的像素总数与全部像素总数的百分比都大于某个阈值(通常取80%),就可以认为是背景发生较大变化[10],这时按照本文的背景提取算法重新提取背景图像。
(2)对于场景中光线缓慢变化或有目标移出背景时,已建立好的背景模型显然不再适应变化的环境,移出后的区域在一段时间内可能会被误检为运动目标,因此需要重构背景。此时如果持续不断地利用背景初始化的方法对整个背景进行更新,会占用较大的内存并且需要较长的处理时间,影响系统实时性。因此,可采用周期性方法对背景进行更新,即间隔一定时间或一定帧数利用本文背景提取算法进行背景提取,在进行一次背景提取后的一个周期内对背景结果进行微小更新。
对称差分法是相邻两帧差分法的一种改进方法,它对采集的连续三帧视频图像进行相邻帧差分运算,然后将差分结果进行“与”运算,得到中间帧运动目标信息。该方法克服了两帧差分目标拉长的缺点,从而提取到较为精确的运动目标轮廓信息,但对缓慢的目标仍然存在着很大空洞现象,对后续处理工作带来很大的影响。为了能完整、准确地检测出运动目标,本文在现有对称差分的基础上加以改进,给出了一种多重对称差分法,即通过求取多个三帧系列图像对称帧差所重合的部分来得到运动目标的轮廓,能更准确地获取运动目标信息,其原理如图1所示。对原始对称差分法的主要改进有:
(1)由于原始图像清晰度质量较低,采用直方图均衡化处理以增强图像整体对比度,使图像细节变得清晰,也可以在一定程度上克服光线变化带来的影响。
(2)原始对称差分法对帧间目标重叠部分仍然不能得到完整运动目标,采用多重对称差分图像进行信息融合能够获得更准确的运动目标区域。
图1 多重对称差分算法流程图
本文算法融合多重对称差分与背景减法,其流程如图2所示。
图2 本文运动目标检测算法
针对场景的缓慢变化或者有目标移入或移出背景时,本文背景更新的基本思想:在每一个周期内,首先利用多重对称差分和背景减相融合的方法找到运动区域,然后对运动区域的背景像素保持不变,而非运动区域的背景则用当前像素进行更新。具体步骤如下:
步骤1对每一帧进行去噪、灰度化和直方图均衡化等预处理。
步骤2 读取连续的7帧分别求出中间帧Ik(x,y)与前后三帧Ik-3(x,y),Ik-2(x,y),…,Ik+3(x,y),背景帧Bk(x,y)差分图像。
步骤3 将步骤2的6个对称差分和背景减结果进行滤波、二值化处理,再进行形态学开运算处理,将孤立的小区域、毛刺去除,填补目标区域内部的小孔改善视频对象空间域连通性。
步骤4 将步骤3的6个对称差分作“与”运算得到D17(x,y),D26(x,y),D35(x,y),同时分别与背景减法差分图像作“与”运算得到CD1、CD2、CD3:
步骤5 将步骤4的结果进行“或”运算得到目标区域D(x,y):
步骤6 得到运动目标区域D(x,y)以后,利用累积的方法消除噪声的影响,进而判断各像素点是否存在运动目标。定义Ak(x,y)为像素点(x,y)在第k帧时未产生连续变化累积次数,若该点属于运动区域,则将Ak(x,y)清零,否则Ak(x,y)自加1。
步骤7 当(x,y)点连续depth次没有发生变化时,说明该点为非运动点,更新当前像素值为背景点,否则说明(x,y)点为运动点,保持该点的背景像素灰度值不变。为提高对环境微小变化的适应性,对于累积超过depth次没有发生变化的背景像素点,利用当前帧和视频序列中的当前背景帧进行加权平均来更新背景。
步骤8 返回步骤1并判断是否间隔了一定帧数,若是则按本文背景提取算法更新背景;否则继续循环。
更新方法融合了多重对称差分法和背景减法,能适应外界环境的缓慢变化,特别是由于光照引起的缓慢变化,并用累积的方法消除了误差。当检测场景中有物体移入或移除时,能及时进行背景更新,从而使得提取到的前景目标更为精确。
实验测试环境是OpenCV VS2008,计算机配置为i5 2.27 GHz/2 GB,实验视频分辨率均为352像素×240像素。首先对不同视频使用本文目标提取算法进行测试,然后再对含有背景扰动和光线变化的同一视频进行测试。
图3为背景提取算法所得的结果,其中(a)为视频序列highway II.avi初始帧,(b)为第30帧传统时间平均算法所得的背景,(c)为利用本文的背景提取算法所提到的背景。可以看出,利用传统时间平均算法在运动目标较密集时会出现拖影现象,而本文的改进时间平均算法消除了该现象,能得到可靠的背景。
图3 背景提取
图4为在有风情况下背景树枝扰动本文背景减法提取结果,其中(a)为原始视频序列tree.avi的一帧,(b)为传统的时间平均算法所提取到的运动目标,可以看出提出的目标受背景扰动的影响较大,(c)为本文背景减算法所得到的运动目标。采用了形态学的方法消除了树枝扰动带来的影响,可以有效地检测出运动目标。
图4 树枝扰动目标提取
图5为光照变化条件下的运动目标检测结果,其中(a)、(b)为原始视频序列光照变化前后的两帧,(c)、(d)为使用混合高斯背景建模法所得到的运动目标,(e)、(f)为本文算法所得到的结果。可以看出,混合高斯背景法对光照变化敏感,造成了误检,而本文算法可以在光照变化情况下检测出运动目标,适应性较好。
图5 光线变化下的运动目标提取
图6为不同算法对highway II的运动目标检测结果,其中(a)从左至右依次为原始视频序列的第273、349、497帧,图(b)为采用对称差分法所得的结果,运动目标存在空洞,图(c)为混合高斯背景法,检测结果基本清晰,但是运算时间较大,图(d)为本文算法结果。可以看出,运动目标轮廓较完整,改善了对称差分法的空洞现象,也克服了混合高斯背景法对环境敏感的问题,使目标区域更为准确。
图7为不同算法对PetsD2TeC1视频序列的运动目标处理结果,该视频背景加入了树枝扰动和光线渐变的影响,其中图(a)、(b)分别为原始视频的第950帧和2 777帧,图(c)为本文算法的背景提取结果,图(d)、(e)、(f)和图(g)、(h)、(i)分别为对称差分法、高斯背景法和本文算法对第950帧和2 777帧的目标检测结果。从图中可以看出,本文算法在背景受外界环境的影响下能够准确地提取背景图像并检测出运动速度较慢的目标,相比于对称差分法含有更多的运动目标信息,运算速度快于高斯背景法,具有很强的适应性。
图6 highway II视频序列的运动目标检测
图7 PetsD2TeC1视频序列的运动目标检测
针对静态场景,提出了一种融合对称差分与背景减法的运动目标检测算法。本文算法一定程度上克服了对称差分目标不完整和背景减法对环境敏感的缺点,所采用的改进的时间平均背景模型能提取出可靠的背景,并能根据不同的场景变化采用不同的自适应背景更新策略,保证了背景图像实时性和准确性,解决了如背景全局光线突变、树枝扰动等问题,提高了系统的稳定性。本文方法计算简单有效,在复杂场景中可以准确地提取和更新背景图像,但并未考虑目标阴影的情况,因此下一步将研究如何消除目标阴影,以提高该方法的准确性。
[1]Piccardi M.Background Subtraction techniques:a review[C]//Proc of IEEE International Conference on System,Man and Cybernetics,Holland,2004:3099-3104.
[2]张志付.基于背景减法的运动检测算法研究[D].上海:上海交通大学,2008.
[3]Kim K,Chalidabhongse T H,Harwood D,et al.Background modeling and subtraction by codebook construction[C]//Proc of International Conference on Image Processing,Singapore,2004,5:3061-3064.
[4]M ittal A,Paragios N.Motion-based background subtraction using adaptive kernel density estimation[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition,2004,2:302-309.
[5]Lee D S,Hull J,Erol B.A Bayesian framework for Gaussian mixture background modeling[C]//Proc of IEEE International Conference on Image Processing,2003,2:973-976.
[6]Kim H,Ku B,Han D K.Adaptive selection of model histograms in block-based background subtraction[J].Electronics Letters,2012,48(8):434-435.
[7]Barnich O.ViBe:a universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.
[8]Brutzer S,Hoferlin B,Heidemann G.Evaluation of background subtraction techniques for video surveillance[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition,Providence,2011:1937-1944.
[9]Wang Hongzhi,Dong Ying.An improved image segmentation algorithm based on Otsu method[C]//Proc of SPIE,Beijing,2007,6625:662501.
[10]侯志强,韩崇昭.基于像素灰度归类的背景重构算法[J].软件学报,2005,16(9):1568-1576.