河北大学2011届本科生毕业论文(设计)11绪论1.1课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。它可以减轻人的负担,并且提高了可靠性。概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。1.2国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后,与国外还有较大差距。传统的视频目标提取大致可以分两类,一类以空间同性为准则,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。如光流算法、主动轮廓模型算法。此类方法结果较为准确但是运算量相对较大。另一类算法主要以时间变化检测作为准则,这类算法主要通过帧差检测图像上的变化区域和不变区域,将运动物体与静止背景进行分割。此类方法运算量小,提取结果不如前类方法准确。此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。本文将围绕以时间变化监测为基础的方法展开分析和讨论。1.3本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。河北大学2011届本科生毕业论文(设计)22运动目标检测的一般过程2.1背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。此时,图像中的背景区域固定不动。在这种情况下,运动目标识别无论是使用背景差法,还是使用背景差法结合帧间差法,质量良好的背景的建立显得及其重要。另外,当涉及到背景的使用时,一旦背景发生一些变化时,如背景中频繁地出现运动物体,或者光照发生变化、树叶等小物体的晃动等等,使得不能准确地提取背景作为参考图像,从而不能正确地分割出视频序列中的运动物体。为了克服上述问题,国内外众多研究人员提出了背景建立和自适应的背景模型,实现了背景模型的实时更新,能够比较准确地识别出运动目标。在能够满足实时性和实用性要求的前提下,讨论并研究下列几种算法[5]。2.1.1手动背景法手动背景法需要人观察到没有前景物体时启动该帧图像,作为背景图像。这种背景提取方法增加了人力和物力的需求,而且在很多情况下很难在没有前景的情况下获得背景图像,比如高速公路的车辆监测系统、小区的门禁系统等等。这种方法不能实现自适应背景更新的功能,需要使用其他方法修正由于光线,亮度等的变化带来的背景误差。2.1.2统计中值法考虑到运动物体较少的情况下,连续多帧图像中背景的像素值占主要部分,这样在一段时间内变化缓慢,取中值便可以认为是背景图像。统计中值算法从统计学的角度统计单个像素点Ai(x,y),(i=1,2,…N)在连续帧图像中的亮度值Bi。在一段时间内对视频序列图像的亮度值(或者色彩信息)Bi进行排序,然后取中值Mi(x,y)作为背景。该算法存在的问题在于:图像帧的像素点大多以数万,数十万的数量级出现,而用于取中值的图像帧数量N也应该比较大。对如此大的数组进行排序取出中值,实现时计算量较大,处理较慢。同时需要占用大量的内存单元用于存储数据。2.1.3算术平均法采用算术平均法提取背景图像,可以总结为在特定的时间段内对像素点的亮度和色彩信息取平均值,用均值作为背景图像对应像素点数值。在读入一段视频时,对某一像素点进行观察,会发现在没有前景的运动目标通过时,该点的灰度值保持稳定,变化很小,只有当前景的运动目标通过时,该点的灰度才会发生剧烈的变化。这样就可以连续读入N帧图像,对图像各点的灰度或色彩信息进行统计的方法,使得变化剧烈的像素点变得平缓,取其平均值作为背景图像像素点的值。这样也可以滤除背景图像中的突变噪声点。其统计公式如下:河北大学2011届本科生毕业论文(设计)3NiNyxIiyxB11),(),((2-1)公式中式中:B(x,y)表示背景图像,Ii(x,y)表示第i帧序列图像,N表示平均帧数。在实际场景中,一段时间内,同一区域很少有可能总是存在运动物体。而通过平均法得到的背景就会消除亮暗分布不均匀的情况。选取N=120,MATLAB仿真,从序列图像的第1、60、120帧可以看出,在第1帧至第120帧时都存在运动目标,如2-1图。经过对连续120帧计算算术平均值,得到了基本不包含运动目标的背景图像,如2-2图。(a)第1帧图像(b)第60帧图像(c)第120帧图像图2-1各帧图像图2-2算术法提取的背景图像由上述仿真实验证明,算术平均法的特点是模型简单,计算方便,可以较好的得到背景图像。但是在仿真过程中,也发现了该方法的一些问题。其中最明显的是,该算法得到背景图像需要获取的图像帧较大。受运动物体数量的影响,随着平均帧数的增加,得到的背景图像的质量越好。由于是求取序列图像的算术平均值,如果N值太小,背景图像中的运动物体不容易被滤除,很容易在背景图像中留下“影子”。而且在运动物体很多,轨迹很固定的情况下,也需要加大N的数值,以使得平均值更加接近与真实的背景图像。在这种情况下,背景的建立就需要较长的时间。本算法也有一定自适应更新功能。随着时间的推移,在背景提取后获取的图像帧也可以作为新的信息量,与背景图像进行统计平均或加权平均,实现背景的自适应更新。因此这种方法也使用于实时背景更新算法。河北大学2011届本科生毕业论文(设计)42.1.4Surendra算法Surendra背景更新算法[6][7]能够自适应地获取背景图像,该算法提取背景的思想是对差值图像的亮度值进行判断,如亮度大于阈值,背景图像对应位置的像素点保持不变,否则利用当前帧对背景图像进行替换更新。其算法可以分成以下几个步骤:(1)将第1帧图像I1作为背景B1。(2)选取阈值T,迭代次数m=1,最大迭代次数MAXSTEP。(3)求当前帧的帧差分图像1|Ii-Ii-1|>TDi=(2-2)(4)由二值图像Di更新背景图像Bi,Bi-1(x,y)Di=1Bi=(2-3)αIi(x,y)+(1-α)Ii-1(x,y)Di=0式中Bi(x,y),Di(x,y)为背景图像和差分二值图像在(x,y)的灰度值,Ii(x,y)为输入的第i帧图像,α为更新速度。(5)迭代次数m=m+1,进行第(3)步的运算。当迭代次数m=MAXSTEP时结束迭代,此时Bi(x,y)可当作背景图像。选取MAXSTEP=80,α=0.1,选取固定阈值T=20。在MATLAB中进行仿真第30帧背景(灰度)第30帧图像第80帧背景(灰度)第80帧图像0|Ii-Ii-1|≤T河北大学2011届本科生毕业论文(设计)5图2-3Surendra算法提取的背景图像在仿真研究中发现,MAXSTEP很大程度地决定了背景建立时的速度,α则决定背景更新的速度。这种背景建模和更新的方法,能够很好地解决物体长时间停留对背景的影响,因为背景的更新会将它逐步地作为背景像素点更新到背景中。但是由于它的基本处理方式是帧间差分,使得它不能将色彩、亮度相似的,大面积的运动物体完整的检测出来。这种情况下,运动物体的某些部分将作为背景区域更新到背景中。2.1.5其他算法国内外已有的背景提取与更新算法远不止上述几种,如混合高斯模型,分块统计算法等也是目前比较常见的算法,其主体思想与算术平均法类似,只是在做法上有区别。由于绝大多数算法都是基于PC机的实现,很少将算法的实时性作为参考要素。2.2动目标检测算法研究在实际的安防与监控应用中,大多考虑摄像头固定的情况。因此本文在研究运动目标检测算法时,也做如下假设:摄像头固定,只对视场内的目标进行检测,离开视场后再次进入的物体被视为新目标。目前,大多数的运动目标检测的方法或是基于图像序列中时间信息的,或是基于图像序列中空间信息的。常见的方法有如下3种[8]:(1)光流法当目标运动时,图像上对应目标的亮度信息(光流)也相应的运动。这样,根据时间上相邻的几帧图像可以计算出各像素点运动的大小和方向,从而利用运动场来区分背景和运动目标。其主要优点在于能检测出独立的运动目标,而不需预知场景的任何信息,对变化的复杂背景情况有较好的适应。但其缺点也很明显,由于要依赖光流估计的准确程度,大多数计算方法相当复杂并且计算量特别大,所以除非有特殊的硬件支持,否则很难实现实时检测。(2)背景减法将实时视频流中的图像像素点灰度值与事先已存储或实时得到的视频背景模型中的相应值比较,不符合要求的像素点被认为是运动像素。这是视频监控中最常用的运动检测方法。这种方法虽然能较完整的提取运动目标,但对光照和外部条件造成的环境变化过于敏感,常常会将运动目标的阴影错误的检测为其自身的一部分。同时由于时间流逝,实际场景的多种因素都会发生变化,比如停留物的出现、光线等的变化、运动目标对背景的遮挡等等,背景需要得到实时地更新,这是影响其检测效果的一个重要因素。(3)帧间差法帧间差法是根据当前图像与参考图像的差别来获得运动目标轮廓的方法。这种方法对于场景中的光线渐变不敏感,适于动态变化的环境,且运算量相对较小。但一般不能完整的提取运动目标,且在运动实体内易产生空洞现象,从而不利于下一步的分析和处理。河北大学2011届本科生毕业论文(设计)6针对前面3种常见算法,只进行帧间差分法和背景差分法的研究于仿真。光流法由于很难达到实时性要求,因此不做研究。2.2.1帧间差法运动目标检测基于帧间差分的运动检测即帧差法,它根据相邻帧或隔帧图像间亮度变化的大小来检测运动目标,帧间差分公式如下:Di(x,y)=Ii(x,y)-Ii-1(x,y)(2-4)Ii(x,y),Ii-1(x,y)为前后两帧图像,帧差分运动检测只针对前景区域进行,运动检测公式如下,其中T为门限值。1,DiTMi(x,y)=(2-5)0,Di≤T选取T=20,仿真结果如下图:第19帧图像第20帧图像差分后二值化图像第79帧图像第80帧图像差分后二值化图像第139帧图像第140帧图像差分后二值化图像图2-4帧间差分实验由上面的仿真实验可以得出:运用帧间差分方法进行运动目标的检测,可以有效的检测出运动物体。右子图中,可以比较清晰地得到运动物体的轮廓。但是,这种算法虽然可以使背景像素不随时间积累,迅速更新,因此这种算法有比较强的适应场景变化能力。但是帧差法表示的是相邻两帧同位置的变化量,因此很有可能将比较大的运动目标,或者运河北大学2011届本科生毕业论文(设计)7动目标内部颜色差异不大的像素判断错误,在实体内部产生拉伸、空洞现象[8]。而且当前景运动很慢且时间间隔选择不合适时,容易出现根本检测不到物体的情况。在差分图像中,有很多“雪花”般的噪声,这些是由于图像局部的干扰造成的。本文随后的章节将对如何消除这些噪声进行讨论。使用帧间差分法,需要考虑如何选择合理的时间间隔,这一般取决于运动目标的速度。对于快速运动的目标,需要选择较短的时间间隔,如果选择不当,最坏情况下目标在前后两帧中没有重叠,被检测为两个分开的目标;对于慢速运动的目标,应该选择较长的时间间隔,如果选择不当,最坏情况下目标在前后两帧中几乎完全重叠,根本检测不到目标。此外,在场景中由于多个运动目标的速度不一致也给时间间隔的选取带来很大麻烦。2.2.2背景减法运动目标检测背景差分算法的实质是:实时输入的场景图像与背景图像进行差分,可以较准确的分割出运动目标。但是背景差分算法也有其天然的缺陷,随着时间的推移,场景的光线、树叶的遮挡、或者运动物体滞留都会很大程度的破坏已经建立好的背景图像。为了解决这些问题,最好的方法便是使用背景