基于混合高斯背景建模方法的运动目标检测毕业论文

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

基于混合高斯背景建模方法的运动目标检测毕业论文

摘要运动目标检测是计算机视觉研究领域的基础,它是从图像序列中去除静止的背景区域,将运动区域的前景检测并提取出来,如何有效地把感兴趣的目标如人、物等前景目标从复杂场景中分割出来,并对目标行为做出相应的检测,是计算机视觉研究的热点和难点。本文对视频图像读取、图像灰度化等处理过程做了简单的阐述,并分别对均值滤波、中值滤波和高斯滤波这三种不同的滤波方法进行比较,分析各种方法的优缺点,同时提出使用高斯滤波方法。最后利用搭建在VisualC++6.0上的OpenCV软件进行设计,使用混合高斯背景的建模方法实现对运动目标的检测。在背景的各种建模方法中,混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性。关键词:运动目标检测;OpenCV;混合高斯背景模型\nABSTRACTMovingtargetdetectionisthefoundationofcomputervisionresearchfield,whichisstilltoremovethebackgroundfromanimagesequenceregion,theprospectofamotionareadetectedandextracted,howeffectivelythetargetofinterest,suchashuman,materialandotherforegroundobjectsfromacomplexscenecarvedout,andmaketheappropriatetesttargetbehavior,ishotanddifficultcomputervisionresearch.Inthispaper,thevideoimagereading,imageprocessingsuchasGraydidabriefexplanation,andrespectively,meanfilter,medianfilterandGaussianfilterthreedifferentmethodstocomparetheadvantagesanddisadvantagesofeachmethod,AtthesametimeproposedtouseaGaussianfilter.Finally,buildinVisualC++6.OpenCVsoftware0ofdesign,usingamixedGaussianbackgroundmodelingmethodstoachievethedetectionofmovingtargets.Inthebackgroundofthevariousmodelingmethods,Gaussianmixturebackgroundmodelwithitssimple,flexibleandefficientcharacteristicsofaclassicalmethodinthefield,canbeagoodinfluencetoeliminatebackgroundsmallperturbationsgeneratedbythemovingtargetdetection,moreaccuratemovingobjectsdetectedincomplexenvironments,robustandreal-time.KeyWords:MovingObjectDetection;OpenCV;Thebackgroundmodel\n目录1绪论........................................................................................................................................-1-1.1研究背景和意义..........................................................................................................-1-1.2国内外研究现状与发展趋势......................................................................................-1-1.2.1国内外研究现状................................................................................................-1-1.2.2研究的热点........................................................................................................-3-1.3研究内容......................................................................................................................-4-1.4本章小结......................................................................................................................-4-2视频图像检测预处理............................................................................................................-5-2.1视频读取......................................................................................................................-5-2.2图像灰度化..................................................................................................................-6-2.4图像去噪.......................................................................................................................-7-2.4.1中值去噪............................................................................................................-8-2.4.2均值去噪............................................................................................................-9-2.4.3高斯去噪..........................................................................................................-10-2.5本章小结.....................................................................................................................-11-3运动目标检测算法研究......................................................................................................-12-3.1几种常见的运动目标检测方法的介绍....................................................................-12-3.1.1光流法..............................................................................................................-12-3.1.2背景减除法......................................................................................................-13-3.1.3帧间差分法......................................................................................................-13-3.2基于自适应高斯背景模型的目标检测....................................................................-14-3.2.1单高斯背景模型..............................................................................................-15-3.2.2混合高斯背景模型..........................................................................................-15-3.3本章小结.....................................................................................................................-15-4基于混合高斯背景建模方法的运动目标检测..................................................................-17-4.1OpenCV介绍..............................................................................................................-17--I-\n4.2图像二值化.................................................................................................................-18-4.3形态学运算................................................................................................................-18-4.3.1图像腐蚀..........................................................................................................-19-4.3.2图像膨胀..........................................................................................................-19-4.3.3开运算和闭运算..............................................................................................-19-4.3.4形态学运算的部分代码..................................................................................-20-4.3.5形态学处理的效果图......................................................................................-20-4.4混合高斯背景建模的流程图...................................................................................-21-4.5利用混合高斯模型进行背景建模............................................................................-22-4.5.1混合高斯背景模型的建立及初始化..............................................................-22-4.5.2背景模型的更新..............................................................................................-24-4.6运行结果效果图.......................................................................................................-26-4.7本章小结.............................................................................................错误!未定义书签。5总结与展望..........................................................................................................................-29-5.1总结............................................................................................................................-29-5.2展望............................................................................................................................-29-致谢........................................................................................................................................-31-参考文献..................................................................................................................................-32--II-\n1绪论1.1研究背景和意义计算机视觉的研究是从二十世纪五十年代开始,起初的主要研究目的是通过检测图像中的物体并获取这些物体间的关系来进行对图像的理解。然而从二十世纪七十年代起,目标分割、边缘检测等问题的研究启发了学者们对解决视觉问题的有效方法的探索,后来随着人类知识的不断积累,以及计算机视觉理论和算法研究的日益发展,加上现阶段计算机软硬件的日趋成熟和普及,人们利用计算机技术来帮助人类感知和认识世界的需求也在与日俱增。这使得人类获取外界的各种信息很大一部分是通过视觉信息途径得到的。视觉信息包括静态图像信息和图像序列信息(视频信息),静态图像信息由于它在时间上是静止的,使得所能包含的信息量仅限在一帧图片以内,从而无法表现出信息在时间上的相关性,与此相反,视频信息具有在空间和时间上的联系和相关性,能够将很多人类感兴趣的信息包含在里面,尤其是视频信号中的运动部分,更是将视频信号中的主要信息包含在里面,从而视频信息成为了视频信号处理的关键对象。随着研究的不断深入和拓展,视频图像信号在信息处理和计算机视觉中扮演着越来越重要的角色。随着运动目标检测研究的不断深入,以及计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,通过使用混合高斯背景的建模方法能够比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性,对未来计算机视觉技术的发展具有重要的意义。1.2国内外研究现状与发展趋势1.2.1国内外研究现状视频检测技术在目前世界上的应用非常广泛,其中应用最为广泛的地区是日本,如日本的VICS系统相当完毕和成熟,其次美国、欧洲等地区也普遍应用。在中国,北京、上海、广东等地也已广泛使用。经过几十年的发展历程,国外的视频检测技术研究己经趋于成熟,主要集中于一些较发达的国家。运动目标检测技术是智能视频监控系统中最为关键的步骤,它是将运动区域的前景从复杂场景中分割出来,并对目标行为做出相应的-1-\n检测,运动区域的正确分割,对以后的运动目标的跟踪和行为理解等后期处理起到了至关重要的作用。通常,根据目标与摄像机的相对关系可分为两种情况:静态背景下的运动目标检测和动态背景下的运动目标检测。静态背景下的运动目标检测是指摄像机在整个监控的过程中处于静止状态,只存在着被监控物体在视场内的运动;而动态背景下运动目标的检测是指摄像机在整个监控过程中发生了移动(如平动、旋转或多自由度运动),同时被监控的物体在整个视场内也存在着运动的情况。目前,传统的静态背景下运动目标检测算法可分为以下几类。(1)背景减除法[1]背景减除法是目前运动目标检测中最为常用的方法,它是利用当前图像与背景图像进行差分来检测运动目标。这种方法的优点是能够将运动区域描述的完整并且精确,但是它的不足之处在于对光照和场景中的扰动会比较敏感。背景减除法的难点在于如何寻找其理想的背景模型,以及如何进行对背景模型的更新。其中最为简单的背景模型是时间平均图像。为了抑制动态场景的变化对运动目标检测所产生的影响,许多研究人员都[2]致力于研究更好的背景模型,已达到更好的显示效果。Haritaoglu等它是利用最小、最大的强度值和最大时间差分值来为场景中的每个像素进行统计建模,并且对背景模型进行周期性地更新。此外,特征背景法也是较为常见的背景建模方法,还有图像变换同现法等。像素级的混合高斯模型能随动态场景的变化而自适应地变化,可以用来描述多[3]峰的背景,同时也广泛应用于运动目标领域的检测。Stauffer和Grimson提出了自适应的混合高斯模型,通过对视频图像中每一帧的每个像素进行高斯建模,在利用在线估计进行模型参数更新的方法,从而有效地克服了背景的扰动,光照变化等对前景目标检测所带来的影响。除此之外,研究人员对混合高斯模型进行不断深入的学习,他们不断地改进混合高斯模型的算法,将其应用在智能视频监控各个方面,希望系统能够有较高的实时性,然而在对其处理图像序列时,无论是运动目标的检测和跟踪,还是分类都是逐帧对图像序列进行处理的,计算量非常庞大,并且不能满足系统的实时性要求,因此要提高系统的实时性,就需要研究如何减少背景建模算法的计算量。(2)帧间差分法帧间差分法是目前最简单的运动目标检测方法,它主要是利用了连续图像序列中相邻的两帧或三帧图像之间的相关性,然后对连续图像序列中相邻的帧进行相减来进行目标检测的方法,通过较小时间间隔来检测的图像变化部分,最后对图像进行阈值化处理来找出运动区域。帧间差分法具有算法简单,运算量小等优点,但是根据目标的运算速度,选择合适的差分时间间隔是检测图像序列的关键,如果选择得差分时间间隔不合适,[4]会造成较大误差。Lipton等通过利用两帧差分的方法从实际的视频图像中检测出运动-2-\n[5]目标,进而对目标进行分类与跟踪。Collins等开发的是一种将三帧差分与自适应背景减除相结合的混合算法,它能够快速地从整幅图像中分割出前景图像。帧间差分法对动态环境有着较强的适应性,它的缺点是不能从中提取所有相关的特征像素点,在运动目标内部易产生空洞,从而得出不完整的目标信息。(3)光流法[6]光流是空间运动物体在观测成像面上的像素运动的瞬时速度。光流法的研究是根据图像序列中的像素强度数据的时域变化和相关性,从而确定各自像素位置的“运动”情况,它主要研究内容的的是,图像序列的灰度在时间上的变化与景象中物体结构及其运动之间的关系。一般情况下,光流的产生是由相机运动、场景中目标运动或两者的共同运动导致的。光流法检测运动目标的基本原理是:给图像序列中的每一个像素点赋予一个速度矢量,使其形成了一个图像的运动场,在运动的一个特定时刻,通过投影关系得到图像上的点与三维物体上的点的一一对应,在根据各个像素点的速度矢量特征对图像序列进行动态分析。如果图像中没有运动物体,则光流矢量在整个图像区域是连续变化的。当图像中有运动物体时,目标和图像背景就会存在相对的运动,这时运动物体所形成的速度矢量和邻域背景速度矢量会产生不同,从而能够检测出运动目标及其所在的位置。利用光流法进行运动物体检测的缺点在于大多数光流法计算耗时,实时性和实用性都较差。但是光流法能够携带运动物体的运动信息和有关景物三维结构的优点,它能够在不知道任何场景信息的情况下,检测出运动对象。但是由于被检测物体与摄像机之间存在着复杂的相对运动,而动态的运动目标的检测算法比静态的运动目标的检测算法情况要复杂很多,目前动态背景的运动目标检测算法中,常用的算法有匹配块法、光流估计法、图像匹配法以及全局运动估计法等。但这些方法存在一个共性的问题就是计算量非常大,而且运动目标容易受到噪声和局部光照条件的影响,而如何利用视频监控场景中的图像序列自身的特点对我们算法的研究起着至关重要的作用。(4)块匹配法块匹配算法是将图像序列中的相邻两帧图像分割为子块,在通过对子块的匹配来进[7]行运动估值。在块匹配的算法中,图像序列被分割为若干个子块,并将子块中的所有像素的运动矢量被认为是相同的,假设图像场景中没有大的遮挡物,而且复杂的运动可以被近似地分解为一组平移运动之和,所以块匹配算法可以假定为图像中的运动物体是由做平移运动的刚体组成而得到的。这样就会使块匹配算法变得简单快速,同时也保证了较高的精度。1.2.2研究的热点1.环境的微小扰动和光照变化对运动目标带来形状变化,使得实时识别和检测非常-3-\n困难,如何选择和提取具有不变性的特征有提高待。2.如何选取合适的高斯背景模型与之像素点进行匹配,以及阴影图像对运动目标检测所带来的干扰需进一步提高。3.系统算法在进行运动目标检测时,使用的是混合高斯建模方法,其运算量比较大,如果对于大量的数据进行计算时,由于计算的过程比较耗时从而会影响效果的实时性;1.3研究内容第一章简要介绍了计算机视觉,了解运动目标检测的国内外发展现状,并对目前运动目标检测的常用方法的简单介绍,最后分析现阶段对运动目标检测研究的热点问题。第二章是对视频图像进行预处理。其中包括读取视频,图像去噪,图像灰度化等,对比不同处理方法的优缺点,最后选定运用高斯去噪的方法处理图像。第三章对运动目标检测做出简单阐述,并分析当前常用的几种运动目标检测的方法,其中包括背景减除法、光流法、帧间差分法以及块匹配法,并结合各种方法的优缺点及研究目的,最后选择利用混合高斯分布背景建模进行前景检测。第四章首先介绍了OpenCV在VisualC++6.0下的环境搭建,然后介绍对视频图像中帧图像的处理,接着阐述了混合高斯背景建模方法的运动目标检测的流程图,接下来详细介绍混合高斯建模的初始化和背景模型的更新,以及实现建模方法的部分代码,最后通过程序的运行,对运动目标检测的显示进行分析。第五章总结与展望。本文所做的工作做出总结,并对该领域的未来作出了展望。1.4本章小结本章主要介绍了计算机视觉研究的背景,以及研究计算机视觉对运动目标检测过程的意义,接着阐述了目前国内外研究的现状与发展趋势,并简单的介绍了目前运动目标检测的常用方法,如背景减除法、帧间差分法、光流法和块匹配法,然后对目前运动目标检测所出现的一些热点问题做了简单叙述,最后对本论文各章节需要研究的内容进行简要的概述。-4-\n2视频图像检测预处理视频是指随着时间发生变化的一组数字图像序列,有时还包含有相应的音频信息。数字视频是先用摄像机之类的视频捕捉设备,将外界影像的颜色和亮度信息转变为电信号,再记录到储存介质当中,它也是数字图像在时域上的序列,视频序列中的每个图像称为帧。而现在的视频文件较多是通过彩色摄像机进行采集的,而在视频文件的采集、传输和记录的过程中,经常会受到各种噪声的干扰,其中包括外界光照、阴影的影响,也包括摄像头成像误差、系统电路失真等引起的噪声。而在现实中的图像序列一般都是噪声图像,因此在对图像进行处理的过程中,在对图像的边缘检测、图像分割、特征提取、模式识别等处理之前,应该选用适当的算法去除图像中的噪声干扰,这对图像序列的检测至关重要,因此视频图像的去噪是一个非常重要的预处理步骤。对于一个良好的图像处理系统,不论是计算机进行的数字处理还是用模拟处理,都是把减少最前一级的去除噪声作为主攻目标。在我们对视频图像的检测之前,为了能更好达到预期的结果,避免噪声等因素对视频图像检测效果的影响,首先应该对视频图像的进行预处理,本章主要介绍了对视频的读取,图像灰度化,以及几种常用的去噪方法,并综合分析每种方法的优缺点,最后确定使用高斯滤波进行图像去噪。2.1视频读取本课题是基于OpenCV的运动视频检测,使用的是OpenCV函数库,搭建在VisualC++6.0环境下进行编译,其识别的视频格式为avi。OpenCV从外部捕获图像有两种方式,一种是从摄像头中获取,另一种是通过对视频的解码得到图像。这两种获取图像的方式都必须从第一帧开始一帧一帧的按顺序获取,因此每获取一帧图像后都要保存其相应的状态和参数[8]。如果从视频文件中获取,需要保存视频文件的文件名和相应的文件名类型,以及下一次获取所需要解码哪一帧等。这些信息都保存在CvCapture中,而每获取一帧后,这些信息都将被更新,获取下一帧需要将新的信息传给获取信息所传递的接口。CvCapture是一个结构体,它是用来保存图像捕获所需要的信息。通过设置视频文件的路径,然后在设置窗口大小,并且可以控制窗口的位置和大小。cvQueryFrame从摄像头或者文件中抓取并返回这一帧。返回的图像不可以被用户释放或者修改。cvQueryFrame的参数为CvCapture结构体的指针。它的作用是用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。与cvNamedWindow不同是,cvQueryFrame-5-\n使用已经在cvCapture结构中分配好的内存,而cvNamedWindow为图像分配内存空间。而在释放内存的时候,就没有必要通过cvReleaseImage对这个返回的图像指针进行释放,当CvCapture结构被释放后,每一帧图像所对应的内存空间即会被释放。部分代码如下//打开视频文件//if(argc==2)if(!(pCapture=cvCaptureFromFile("SampleVideo.avi"))){fprintf(stderr,"Cannotopenvideofile%s/n",argv[1]);return-2;}IplImage*pFrame=NULL;IplImage*pFrImg=NULL;IplImage*pBkImg=NULL;CvCapture*pCapture=NULL;//声明视频捕捉器,用于捕获视频intnFrmNum=0;cvNamedWindow("video",1);//窗口设置cvNamedWindow("background",1);cvNamedWindow("foreground",1);……CvGaussBGModel*bg_model=NULL;IplImage*img_erode;IplImage*img_dilate;while(pFrame=cvQueryFrame(pCapture))//从摄像头或文件中读取并返回一帧{...}2.2图像灰度化图像灰度化就是对彩色图像中的彩色信息进行处理,将其变为灰度图像,只包含亮度信息。在计算机中对图像灰度图表示是对其图像的亮度值进行量化,将其等分成0-255共256个级别,0最暗(全黑),255最亮(全白),而在RGB模型中,如果R=G=B,则颜色(R,G,B)就表示灰度色。要对图像进行灰度化,就需要使图像的RGB的三个分量取相等的值,则图像就会由原来的三维特征降到灰度化后的一维特征,在此过程中图像必然-6-\n会丢失部分的信息。常见的灰度化处理方法有平均值法、最大值法口、加权平均值法等。而不论采取哪种灰度化处理方法,都会将其原有的颜色特征改变或丢失,这样就使得同一种二值化方法因为不同的灰度化处理过程得到不同的结果,其中R表示该像素的红色分量,G表示绿色分量,B表示蓝色分量。在OpenCV函数库中,图像的灰度化可以通过cvCvtColor(pBkImg,pFrImg,CV_BGR2GRAY)函数实现,参数CV_BGR2GRAY是RGB到GRAY,cvCvtColor(...)是OpenCV里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。效果图如图2-1所示图(a)为原始图,图(b)为灰度化后的图像。(a)原始图(b)灰度化后的图像图2-1图像灰度化2.4图像去噪图像去噪是视频图像处理过程中的重要部分,它是将输入的图像进行滤波去除噪声,增强图像,锐化。视频图像一般经过预处理、灰度处理之后,再加上对图像的滤波去噪,将会改善感兴趣区域的可视化效果,从而对视频图像的检测起到重要的作用。因此,在对图像进行预处理时,要谨慎的对待,它关系到图像的下一步质量,不容轻视。图像噪声是指图像在摄取时或是传输时所受到的随机干扰信号,而这些随机干扰信号的抑制称为图像的噪声抑制[9]。一般的图像序列都是有噪声存在的,而这些噪声将影响图像处理的效果。图像传感器带来的噪声在视频图像处理中为主要噪声源。噪声的出现有两种:椒盐噪声和高斯噪声(白噪声)。椒盐噪声主要是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,往往由图像切割引起。中值滤波是去除脉冲干扰-7-\n级椒盐噪声最常用的算法。高嘶噪声是从频率上说的随机信号干扰,其噪声服从高斯分布。图像中内在噪声也可能对图像的检测产生影响,而原始帧由于其他原因不可避免的会叠加噪声。因此,在对图像处理之前应该将其去除,以便得到良好的处理效果。滤波去噪的方法主要有两种方法,频域法和空域法。频域法的计算速度快,但是比较复杂,为了保证实时性,一般采用空域法。对场景中瞬时环境噪声的消除常用的是时间域的滤波,如三帧时间域的滤波。传感器噪声的消除方法有中值滤波、均值滤波、直方图滤波等空间域上的滤波。而任何去除噪声的方法都或多或少对图像的质量产生影响,使图像变得模糊。因此,必须在图像质量和去除噪声之间做出折衷。在滤波方法中,最常用的有中值滤波(medianfilter)、均值滤波和高斯滤波三种。2.4.1中值去噪中值滤波是由Tukey提出的,它是一种基于排序统计的理论,能够有效的抑制噪声的非线性信号处理技术。它也是一种类似于卷积的邻域运算,但是在计算过程中并不是加权求和,而是把数字图像或数字序列中一个像素点的值用该点的一个邻域中各点值的中值代替,这样会使周围像素灰度值差别比较大的像素改取为与周围的像素值比较接近的值,这样能使周围的值更接近真实值,从而就能消除孤立的噪声点。由于高频分量对应图像中的区域边缘的灰度值具有较大较快变化的部分,使用中值去噪能减弱或消除傅立叶空间的高频分量,该滤波可将这些分量滤除,使图像变得更加平滑,但是同时也会影响低频分量[10]。在一定的条件下,中值滤波对滤波脉冲干扰及图像扫描噪声非常有效,它可以克服线性滤波器如最小均方滤波、均值滤波给图像带来的细节模糊,通过中值滤波不仅能去除高频噪声,抑制脉冲干扰,而且还可以保持图像清晰的轮廓,由于在实际运算过程中并不需要统计图像的特征,因此使用中值滤波操作较为方便。传统的中值滤波一般采用含有奇数个点的滑动窗口中各点狄度值的中值来代替指定点的灰度值。偶数个元素的中值是将数值按大小排列后,取其中间两个元素灰度值稍微平均值;奇数个元素的中值是按大小排序后而得到中间的数值。中值滤波是一种用来抑制脉冲噪声的典型低通滤波器,它能够彻底滤除尖波干扰噪声,并且又具有较好地保护目标图像边缘的特点。标准一维中值滤波器的定义为ymed(,,...,...,)(2-1)kxKNxKN1xKxKN1xKN式中,med表示取中值操作。中值滤波的滤波方法是将像素按照滑动滤波窗口2N+l做大-8-\n小排序,滤波后输出像素值为该序列的中值。例如取3X3滑动窗口.中值为窗口内第5个最大的像素值。但是二维中值滤波的窗口形状和尺寸设计会对滤波的效果产生较大的影响,在针对不同的图像内容和不同的应用要求,使用二维中值时往往采用不同的形状和尺寸,通常的滤波窗口有线状、方形、圆形、十字形及圆环形等,窗口尺寸一般设置为3,也可以根据滤波效果适当的调整窗口的尺寸,从而得到较好的滤波效果。中值的计算是对滑动窗口内像素的排序操作,这就需要对序列中的数据像素做比较和交换,数据不同的排列顺序以及元素之间的比较次数都会对排序速度带来影响。传统的排序算法是用冒泡排序法,这种滤波算法使窗口每移动一次,就要进行一次排序。在排序的过程中进行了大量重复的比较,当窗口较大时计算量很大,计算需要的时间将会变得更长,这样就会浪费大量的时间。2.4.2均值去噪均值滤波也被称为线性滤波,它所运用的方法为邻域平均法,其基本原理是用邻域的均值替代原图像中的各个像素值,通过对处理的当前像素点(X,Y)选择一个模板窗口,而模板的选取是由当前像素近邻的若干像素所组成,在对模板求取所有像素的均值,再把所求的均值赋给当前的像素点,作为处理后图像在该点上的灰度值,具体算法如下:设f(x,y)为给定的含有噪声的图像,经过邻域平均法处理后得到的图像为g(x,y),则为f(x,y)g(x,y),(x,y)M(2-2)N其中M是对所取邻域图像中各邻近像素的坐标,N是邻域中包含的邻近像素的个数。则邻域平均法的模板为1111111,9111中间的元素表示以该像素为中心的中心元素,即该像素就是要进行预处理的像素。但是在实际运用中,可根据不同的需要选择不同的模板尺寸,如3×3、5×5、7×7、9×9等,模板尺寸选取会对图像的去噪的效果产生较大的影响,模板的尺寸选取的越大,噪声减小就越显著,但是不足之处就是图像的对比度下降就越多。在使用均值滤波对进行图像进行平滑往往会降低图像清晰度。另外,均值滤波只是将杂点无限放大,使人眼不易察觉,但不能从本质上消除杂点,因此均值滤波只能处理要求不高的图像,对椒盐噪声的去除,使用均值滤波得到的图像处理效果并不理想。-9-\n2.4.3高斯去噪高斯滤波是一种适用于消除高斯噪声的线性平滑滤波,在对图像处理的的过程中,大多数去噪方法为高斯去噪。高斯滤波通过对整幅图像进行加权平均,其中图像中每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。具体操作是:通过用一个模板(或称卷积、掩模)对图像中的每一个像素进行扫描,在用模板确定的邻域内像素,对其进行加权平均得到灰度值,在用得到的灰度值去替代模板中心像素点的值。例如在对一帧图像进行处理时,拿图像的八连通区域来说,就是让中间点的像素值等于八连通区的像素值的均值,通过这样的方式达到图像的平滑效果。通过傅立叶变换的高斯函数仍是高斯函数,因此高斯函数频域做乘积来实现高斯滤波,在频域上经过平滑处理可得到一个低通滤波器[11]。均值滤波在对信号进行处理时,通过对局部平均,用其平均值来代表该像素点的灰度值。矩形滤波器(AveragingBoxFilter)是通过计算和转化,对二维矢量的每一个分量进行独立的平滑处理,得到一幅单位矢量图。这样的话,对于512×512的矢量图就会被划分成一个个8×8的小区域,再通过统计每一个小区域内的主要方向,在将统计出来最多的方向作为区域的主方向。这样就能够得到了一个新的64×64的矢量图。高斯滤波器是根据高斯函数的形状来选择权值的线性平滑滤波器[12],它广泛应用于对图像去噪处理,它对去除服从正态分布的噪声很好的效果。从高斯滤波这些性质可以得出,高斯平滑滤波器是一种即适用空间域也适用频率域的低通滤波器,并且在实际应用中有较好的处理效果。(1)高斯函数是单值函数,高斯滤波通过对像素邻域图像进行加权平均,其中图像中每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。再用得到加权均值来代替该点的像素值,由于图像具有边缘特征,通过平滑运算对离算子中心很远的像素点的作用非常小,对图像的失真度影响较小,这样得到的每一邻域像素点权值就会随该点与中心点的距离而单调增减。(2)二维高斯函数通过旋转仍然具有对称性,这就意味着通过高斯平滑滤波器在后续边缘检测中不会偏向任一方向,这样就会使通过滤波器对各个方向上的图像进行平滑处理的程度是相同的。而对于一幅图像来说,图像的边缘方向事先是不知道的,因此,在滤波前一个方向上比另一方向上需要进行平滑处理的多少是不能确定的。(3)高斯函数具有可分离性,通过较大尺寸的高斯滤波器可以对图像进行有效的分离。在对二维高斯函数进行卷积时,首先要将图像与一维高斯函数进行卷积,然后将卷积得到结果与方向垂直的且相同的一维高斯函数进行卷积。因此,通过二维高斯函数进行卷积的计算量会随着滤波模板的宽度成线性增长,而不是成平方增长。-10-\n(4)通过对高斯函数进行傅立叶变换,可以得到单瓣的频谱。这一性质可以得到通过傅立叶变换的高斯函数仍是高斯函数,而在对图像进行处理的过程中,图像常常被高频信号的噪声所污染(噪声和细纹理),而所希望得到的图像特征(如边缘)不能很好地显示出来,其中既包含低频分量,又包含有高频分量。通过利用高斯函数傅立叶变换的单瓣性对图像进行平滑处理,得到的图像处理信息不会被不需要的高频信号所污染,同时还保留了大部分所需信号。2.5本章小结本章主要是对视频图像的预处理过程进行简要的介绍,首先是对视频图像读取、图像灰度化等处理过程做了简单的阐述,然后对视频图像去噪方法做了说明,如均值滤波、中值滤波和高斯滤波,并分别对这三种不同的滤波方法进行比较,分析各种方法的优缺点,同时提出使用高斯滤波方法,为下文的视频图像的前景检测中准确的提取运动目标做出铺垫。-11-\n3运动目标检测算法研究运动目标检测是计算机视觉研究领域的基础,它是利用数字信号处理方法从图像序列中去除图像的背景区域,将运动区域的前景检测并提取出来,而目前运动目标形成的图像序列分为两种:一种是静止背景,一种是变化背景。静止背景通常发生在摄像机处于相对静止的状态,从而产生背景静止的运动图像序列;由于背景图像发生动态变化,如噪声、光照、阴影、全局运动等影响,这使得目标和摄像机都发生运动,从而产生的是背景变化的运动图像序列,导致运动目标在图像上的变化和背景本身的变化混淆在一起,对前景目标的检测带来极大的困扰。3.1几种常见的运动目标检测方法的介绍常用的目标检测的方法有光流法、帧间差分法、背景减除法等。每种运动目标的检测方法都是针对某种特定的场合,每种方法自身都具有优缺点,都有许多需要改进的地方,接下来分别对光流法、背景减除法和帧间差分法作出具体的分析。3.1.1光流法光流是空间运动物体在观测成像面上的像素运动的瞬时速度,光流场是一种二维(2D)瞬时速度场,光流法的研究是根据图像序列中的像素强度的时域变化和相关性,从而确定各自像素位置的“运动”情况。设图像像素m(x,y),时刻t的亮度为l(x,y,t)。令m的速度为v(v,v),如果点mxym的亮度保持不变,在较短的时间间隔dt内,则有l(xvdt,yvdt,tdt)l(x,y,t)(3-1)xy如果亮度随x,y,t的变化,对上述公式进行泰勒展开,则有lll2l(x,y,t)vv(dt)l(x,y,t)(3-2)xyxyt22其中(dt)代表是大于等于2的高阶项,在消去l(x,y,t)并且忽略(dt),可得llv0(3-3)mtll其中l[,],它表示的是图像在m的梯度。此方程叫做光流约束方程。xx光流法能够携带运动物体的运动信息和有关景物三维结构的优点,它能够在不知道任何场景信息的情况下,检测出运动对象。同时它也可以用于对运动目标进行跟踪,但-12-\n是由于被检测物体与摄像机之间存在着复杂的相对运动,而动态的运动目标的检测算法比静态的运动目标的检测算法情况要复杂很多。在对图像进行分割时,光流法还需要利用灰度、颜色、边缘等空域特性以此来提高分割精度;同时光流法使用的是迭代算法,计算复杂并且耗时,抗噪性能差,实时性和精度低,很难应用于全帧视频流的实时处理。3.1.2背景减除法背景减除法它是利用当前图像与背景图像进行差分来检测运动目标。通过和阈值相比较,如果像素值大于阈值,则该像素为前景图像,否则,该像素点为背景图像。这种方法的优点是能够将运动区域描述的完整并且精确,但是它的不足之处在于对光照和场景中的扰动会比较敏感。背景减除法的难点在于如何寻找其理想的背景模型,以及如何进行对背景模型的更新。背景减除法对视频图像的处理流程图如下图3-1所示。背景更新视频背景图像图Bx像差分图像阈值化处理当前目标序Dx列当前图像Rxf1,f2...fnfx图3-1背景减除法原理图如图3-1所示,可以看出背景减除法的原理很简单,但是在提取图像序列中感兴趣的目标是背景减除法的构建和模型更新的关键所在,与灌流法相比,背景减除法对不同场景具有较强的适应性,但是由于模型的缺陷所带来的对运动目标检测结果造成的影响,依然没有得到有效的解决。3.1.3帧间差分法帧间差分法是基于运动图像序列中,根据相邻两帧图像间具有强相关性而提出的检测算法。这种检测算法对光照变化敏感度不高,适用于动态变化的环境和实时性要求较高的应用环境[13]。算法原理图如3-2所示。-13-\n图3-2帧间差分法原理图如图3-2所示,如果把第k-1帧的视频图像f作为参考图像,并计算出当前帧f和k1kf的差值,得到差分并进行二值化后的图像Mask,当f和f差值小于阈值Th时,则k1kk1该像素点所确定图像为背景图像,取Mask的值为0,若为前景图像,取Mask的值为1。则有1fkfk1ThMask(3-4)0fkfk1Th运用帧间差分法进行对运动目标的检测,算法实现较为简单,程序的复杂度比较低,用于实时性检测,但是由于在实际应用中,运动目标的前一帧在被遮挡的背景部分会在当前帧的检测中显露出来,而这部分的背景图像被看作为当前帧的前景目标,另一方面,帧间差分法所检测的运动目标区域的大少与目标运动的速度有关,在目标运动缓慢时,检测到的运动目标区域比较小,甚至有可能无法检测到运动目标。因此,在使用帧间差分法进行对目标检测的过程中,应该采用连续的三帧差分法来代替两帧差分法,这样就能是所检测的运动目标更加的清晰。3.2基于自适应高斯背景模型的目标检测自适应背景模型算法通过建立背景模型,然后用当前图像与背景模型进行差分,在对差分后的结果和阈值进行比较,将绝对值大于预知的区域作为前景区域。而背景按照[14]自身的特性划分为单模态背景模型和多模态背景模型。单模态背景模型由于在背景像素上的颜色分布比较集中,可以通过单分布概率模型来进行描述;多模态背景模型由于背景像素上的颜色分布比较分散,则通过使用多分布概率模型来描述。在许多实际应用,如飘扬的旗帜、摇摆的树枝、监视器屏幕、水面的波纹等,他们的像素值呈现的是多模态特性,场景背景像素的颜色分布可以使用高斯分布来描述。下面分别讨论这两种情况-14-\n下的背景模型。3.2.1单高斯背景模型单高斯分布[15]背景模型,它所适用的条件是光照不变且背景静止,而在此情况下背景点的像素值是相对稳定的。设图像的当前颜色值为X,t表示时间。在对背景图像进t行算法的估计时,通过在较长的一段时间内,计算视频序列图像中每一个像素值的均值022和方差,则得到的背景估计图像可以看作为是由和组成的初始高斯分布的图像0002B[,]。其中000T11(x,y)X(x,y)(3-5)0iTi0T12120(x,y)[Xi(x,y)0(x,y)](3-6)Ti03.2.2混合高斯背景模型由于光照的变化和背景图像的运动,以及环境存在着一些微小的扰动,如水面上波光的不断闪动和场景中树枝的不停晃动等,使得同一位置的像素值发生了改变,而单高斯背景模型又无法准确地模拟背景图像的变化;另一方面,像素值较快的变化,且像素值的变化不是由一个相对稳定的单峰分布向另外一个单峰分布的过渡,因此它给背景建模带来了一定的困难。由于背景像素值在一段时间内是多峰分布的,通过借助单高斯背景模型的思想,利用多个单高斯背景模型的集合模拟场景中像素值的变化情况,再用后验概率对每一个像素值进行分类,即可得到用混合高斯模型的方法来对背景图像的描述。本课题采用混合高斯背景建模方法的主要研究思路是,在基于OpenCV的库函数的下导入一段视频格式为avi的视频图像,建立混合高斯背景模型并进行初始化,然后对视频序列进行逐帧读取,并对图像进行灰度处理和二值化处理,以及对帧图像进行去噪处理,随着帧数的不断更新,实时对背景,前景进行更新,以适应光线的变化和场景本身的变化,对检测结果进行形态学处理,使其图像的边缘更加精确得当,同时消除噪声和背景扰动对图像的检测所带来的影响。3.3本章小结本章先介绍了运动目标检测的几种常见算法,如帧间差分法、光流法、背景减除法,并分别介绍各种方法的原理及特点,并分析各种检测算法的使用范围以及算法的优缺点,-15-\n引出基于自适应混合高斯背景模型的运动目标检测算法,其次,通过对单高斯模型和混合高斯建模方法分析与比较,选出混合高斯背景的建模方法,最后阐述了混合高斯背景建模方法的主要研究思路。-16-\n4基于混合高斯背景建模方法的运动目标检测在上一章中主要介绍常见的几种运动目标检测的方法,其中包括光流法、帧间差分法和背景减除法,通过对这三种方法的分析,他们各自有自己独特算法优点,但是它们的适用范围是有限的,它们有一个共性的缺点,就是它们只能适用于背景图像静止或相对静止的条件下的目标检测,但是在现实情况下,光照的变化和背景图像的运动,以及环境存在着一些微小的扰动,如水面上波光的不断闪动和场景中树枝的不停晃动等,使得同一位置的像素值发生了改变,而单高斯背景模型又无法准确地模拟背景图像的变化;另一方面,像素值较快的变化,且像素值的变化不是由一个相对稳定的单峰分布向另外一个单峰分布的过渡,因此它给背景建模带来了一定的困难。因此需要通过借助单高斯背景模型的思想,利用多个单高斯背景模型的集合模拟场景中像素值的变化情况,来进行对运动目标的检测。4.1OpenCV介绍OpenCV(OpenSourceComputerVisionLibrary),OpenCV于1999年由Intel建立,现在由WillowGarage提供支持。OpenCV是一个基于发行的跨平台计算机视觉库,可以运行在Linux、Windows操作系统上。由一系列C函数和少量C++类构成,同时提供了JAVA、Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括500多个C函数的跨平台的中、高层APl,它通过函数来实现用于图形处理和计算机视觉方面的通用算法[16]。本文选取OpenCV进行对运动目标检测的优势。1.OpenCV对非商业应用和商业应用都是免费(FREE)的;2.代码简单,稳定,有固定的函数算法提供,通过对OpenCV函数库的调用,它为用户减轻了开发维护应用程序庞大代码的沉重负担,有统一的结构和功能定义,并且可与其他库兼容;3.OpenCV致力于真实世界的实时应用,通过对C语言代码的优化,对程序的执行速度有很大的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(IntegratedPerformancePrimitives)可以得到更快的处理速度。OpenCV函数库的搭建步骤。首先安装下载得到的OpenCV应用程序,在其计算机上对安装的OpenCV应用程序进行环境变量的设置,然后在VisualC++6.0下编译所要的静态和动态链接库文件,包括1ib路径的设置、includefiles等路径的设置,再进行工程项目的链接设置。-17-\n在VC++6.0中建立新工程以后,在工程设置里添加需要的OpenCV库,并在程序文件中包含OpenCV的头文件,就可以搭建好基于OpenCV下VC++6.0的环境设置,这样就可以在Windows下面利用VC++6.0进行基于OpenCV的程序编程。4.2图像二值化图像的二值化处理是将图像上的点的灰度值置为0或255,而使整幅图像呈现出较为明显的黑白效果。通过选取适当的阀值,将256个亮度等级的灰度图像变成能够反映图像整体和局部特征的二值化图像处理的过程。在进行对图像处理的过程中,对图像进行二值化处理非常重要。要进行二值图像的处理与分析,首先要把灰度图像进行二值化,得到二值化图像,这样就有利于对图像在做进一步处理时,整个图像中的集合属性只与二值化后的像素值为0或255的点的位置有关,而不再涉及像素的多级值,这样使图像的处理变得简单,数据的处理和压缩量同样也会变得更小。要想得到理想的二值图像,一般需要采用封闭、连通的边界定义不交叠的区域。将所有像素点的灰度值大于或等于阈值的像素判定为属于特定物体,其灰度值为255表示,否则这些像素点就会排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。OpenCV中的图像二值化过程。OpenCV中可以通过cvThreshold函数实现图片的二值化,手动指定一个阈值,以此阈值来进行图像二值化处理。cvThreshold(pFrImg,pFrImg,12,255,CV_THRESH_BINARY);函数cvThreshold对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。cvThreshold(dst,src,200,255,CV_THRESH_OTSU);pFrImg:前景的输入图像;pFrImg:前景的输出图像;12:指的是阈值;255:指的是max_value;CV_THRESH_BINARY:指的是threshold_type。当threshold_type使用CV_THRESH_BINARY类型时,得到的全局自适应阈值的二值化图片,这种方法有利于处理灰度直方图呈现多峰特征的图片。4.3形态学运算数学形态学(MathematicalMorphology)是一门由法国科学家和德国科学家在研究岩-18-\n石结构时建立的一门新兴学科。它的主要用途是获取物体拓扑和结构信息[17],并通过物体和结构元素之间的相互作用,运用某些运算得到物体更本质的形态。数学形态学的基本运算方法有四种:腐蚀、膨胀、开运算和闭运算。下面主要介绍这四种形态学算法。4.3.1图像腐蚀图像腐蚀(Erosion)是一种最基本的数学形态学运算,通过对图像的腐蚀,能够消除物体边界点,使图像的边界向内部收缩,从而去除小于结构元素的物体。通过使用这样选取方法,把不同大小的结构元素选取出来,就能够去除不同大小的物体。4.3.2图像膨胀图像膨胀可以看成是腐蚀的对偶运算,它和图像的腐蚀运算基本相同,设定要处理的图像集合和结构元素,通过结构元素对图像进行膨胀处理。通过膨胀可以对二值化物体边界点进行扩充,这样就使得与物体接触的所有背景点就会与物体本身进行合并,使图像的边界向外部扩张。对于距离比较近的两个物体之间,通过膨胀运算可能会把两个分开的物体连通到一起,这对填补由于图像分割后物体之间空洞很有这重要的作用。如下图4-1所示(a)腐蚀图像(b)膨胀图像(a)腐蚀图像(b)膨胀图像图4-1图像的腐蚀与膨胀4.3.3开运算和闭运算开运算和闭运算是除了腐蚀和膨胀两种基本运算外的另外两种重要的形态学运算。开运算和闭运算是根据腐蚀和膨胀的不可逆性演变而来的。开运算是指通过对目标图像先进行腐蚀运算,再进行膨胀运算的过程。通过开运算能够去除图像中孤立的小点和小-19-\n的连通区域,去除一些小的物体和平滑较大物体的边界,同时不大范围的改变原图像的面积[18]。而闭运算是开运算的对偶运算,它是通过对目标图像先进行膨胀运算,再进行腐蚀运算而得到的图像,通过使用闭运算功可以用来填充物体间细小的空洞、连接临近的物体、平滑其边界,同时也不明显改变目标图像的面积。4.3.4形态学运算的部分代码/*对前景进行腐蚀操作,腐蚀半径为1,可设置*/cvErode(pFrImg,img_erode,NULL,1);/*对前景进行膨胀操作,膨胀半径为2,可设置*/cvDilate(img_erode,img_dilate,NULL,2);函数cvDilate对输入图像使用指定的结构元进行膨胀。具体操作是:将输入图像与结构元素(核)进行卷积,计算结构元素覆盖的区域的像素点最大值,并把这个最大值赋值给参考点(锚点)所指定的像素。4.3.5形态学处理的效果图下面的几幅图表示图像的二值化图像,以及对阈值取不同的值时,所检测到的前景图像,其效果图如图4-2所示。图4-2形态学图像处理-20-\n4.4混合高斯背景建模的流程图混合高斯背景模型的建立,首先需要导入一个avi的视频序列,建立混合高斯背景模型并进行初始化,然后对视频序列进行逐帧读取,并对图像进行灰度处理和二值化处理,以及对帧图像进行去噪处理,随着帧数的不断更新,实时对背景,前景进行更新,以适应光线的变化和场景本身的变化,对检测结果进行形态学处理,使其图像的边缘更加精确得当,同时消除噪声和背景扰动对图像的检测所带来的影响。最后通过运行程序源代码,显示出结果,实现对运动目标的检测。流程图如4-3图所示。开始导入视频混合高斯背景模型的建立及初始化逐帧读取视频图像并去噪帧图像的去噪和二值化处理帧图像的形态学运算处理背景图和前景图的更新视频图像的显示结束图4-3混合高斯背景建模流程图-21-\n4.5利用混合高斯模型进行背景建模混合高斯建模方法能够适用于背景出现微小扰动对运动目标检测所带来的干扰,并且能够适应光线的变化和场景本身的变化,通过利用混合高斯模型进行背景建模,使其图像的边缘更加精确得当,同时消除噪声和背景扰动对图像的检测所带来的影响。利用混合高斯模型进行背景建模时,首先需要初始化预先定义的几个高斯模型,对高斯模型中的参数进行初始化,并通过视频序列的像素点求出像素点的均值和方差,并通过求其权重,求出之后将要用到的参数;其次,对于每一帧中的每个像素进行处理,看其是否匹配高斯模型,若匹配,则将其归入该模型中,并对该模型中新的像素值进行更新,若不匹配,则去除当前混合高斯模型中权重最小的模型,并加入新的模型的权重,新模型的权重是全部模型中的最小值,并且均值是当前所观测到的像素值的均值,方差为一个给定的较大的常数。最后通过高斯混合模型的参数学习机制,求出各个高斯模型的权重与方差的比值,并对他们的优先级按照从大到小的顺序进行排列,排在前面的作为背景模型的可能最大,反之,则为前景。4.5.1混合高斯背景模型的建立及初始化利用混合高斯模型来模拟背景图像进行运动目标检测,首先定义每个像素点的分布模型由多个高斯分布模型组成,每一个新的像素点都会更新高斯分布的参数,其实现如下。(1)像素模型参数的初始化本文用(X,,)来表示均值为,协方差矩阵为的高斯分布概率密度函数。t用多个高斯分布线性组合模拟每个像素点的历史记录{X,......,X},概率密度函数记1t为(X,,)i1,2,......,M(4-1)ti,ti,t协方差矩阵为2I(4-2)k,tk其中I为单位矩阵,但不一定符合实际,从而这个单高斯分布模型的概率密度为:(X|,)(4-3)ti,ti,t当前像素值X的概率为tMP(Xt)wi,t(Xt|i,t,i,t)(4-4)i12表示单模型的均值,体现了每个单峰的分布中心;i,t表示单模型的方差,体现i,t了像素值的不稳定程度;w表示了该高斯分布模型的权值,其大小体现了采用当前模型i,t表示像素值的可靠性。M表示单模型的个数,体现了像素之多峰多分布的峰的个数,M-22-\n的取值依赖于像素值的分布。M越大,处理波动的能力越强,但所需的处理时间越长。初始化混合高斯模型时,首先计算一段时间内的视频序列图像中像素点的平均像素2值及像素的方差0,然后初始化高斯混合模型中高斯分布的参数。0N-1N11210Xt,0(Xt0)(4-5)Nt0Nt0(2)找出与当前像素值最近的背景这里要找出N个背景中与当前观测值最接近的一个背景像素值存在代表背景的图片中。如果处理的是第一帧图像,则它的背景就是本身。在OpenCV函数库中,cvaux.h提供了混合高斯模型方法的函数,通过CvGaussBGModel类用来储存混合高斯模型的各个参数,但是在使用OpenCV的混合高斯模型函数时需要注意的是。(a)在对混合高斯模型建立时,需要用到cvUpdateBGStatModel,cvCreateGaussianBGModel以及cvCreateImage这三个函数类,cvCreateGaussianBGModel的调用是要在原始输入数据为空的情况下,cvCreateGaussianBGModel则恰好相反,但是源程序中将这两个函数定义为内部函数,cvCreateImage是创建首地址并分配存储空间。(b)在进行类型的转换时,需要注意cvCreateGaussianBGModel函数返回值为CvBGStatModel*,所以就需要将bg_model强制转换为CvGaussBGModel*,只有这样才能进行前景建模。部分代码如下//初始化高斯混合模型参数CvGaussBGModel*bg_model=NULL;IplImage*img_erode;IplImage*img_dilate;while(pFrame=cvQueryFrame(pCapture)){nFrmNum++;if(nFrmNum==1){pBkImg=cvCreateImage(cvSize(pFrame->width,pFrame->height),IPL_DEPTH_8U,3);pFrImg=cvCreateImage(cvSize(pFrame->width,pFrame->height),IPL_DEPTH_8U,1);img_erode=cvCreateImage(cvSize(pFrame->width,pFrame->height),IPL_DEPTH_8U,1);-23-\nimg_dilate=cvCreateImage(cvSize(pFrame->width,pFrame->height),IPL_DEPTH_8U,1);//需要强制转换成CvGaussBGModel*bg_model=(CvGaussBGModel*)cvCreateGaussianBGModel(pFrame,0);}else{cvUpdateBGStatModel(pFrame,(CvBGStatModel*)bg_model);}}cvReleaseCapture(&pCapture);if(!(pCapture=cvCaptureFromFile("SampleVideo.avi"))){fprintf(stderr,"Cannotopenvideofile%s/n",argv[1]);return-2;}4.5.2背景模型的更新(1)像素模型参数的更新混合高斯模型的参数更新较复杂,它不仅需要更新高斯分布函数的参数,包括均值和方差,还要更新各分布函数的权重,详细步骤如下。(a)对于每个像素值,首先判断它是否匹配与这个模型,判断准则为matchXti,ti,t(4-6)unmatchedXti,ti,t(b)执行(a)的检测,可能有两种情况。第一种情况是当前像素值与像素高斯混合模型匹配,如果匹配的模型不止一个,就认为只有一个是最优的匹配,这时,需要改变单模型的参数,方法如下。减少非匹配的单模型权值w:i,tw(1)w(4-7)i,ti,t12新得到像素值与某个单模型匹配时,需要更新该模型的m和。更新方法如下。i,ti,t(1)X(4-8)i,ti,t1t-24-\n22i,j(1)i,j1(Xti,t)(Xii,t)(4-9)(X|,)(4-10)ti,t1i,j1第二种情况是当前像素值不与高斯混合模型集合中的任意单模型匹配,这说明出现了新的分布形式,所以要从原有的模型集合中取出一个单模型,同时加入一个新的单模型,(a)完成更新后,需要对模型中的各个单模型的权值进行归一化处理。wi,tw(4-11)i,tKwjj1(2)背景像素模型的建立对于高斯混合模型,并不是所有的单模型都描述场景背景,判断哪些分布代表运动前景,哪些分布代表背景的自动检测至关重要。求取背景像素模型的方法如下。(a)计算每个高斯分布的优先级w/;i,ti,t(b)依照优先级w/的大小对各高斯分布按从高到低的顺序排列,w/大,i,ti,ti,ti,t顺序越靠前,它是背景分布的可能性越大,否则,它是背景的可能性越小,排在最后的高斯分布将会被新建立的分布取代。(c)从M个高斯分布中选出N个高斯分布作为背景模型。NBargmin(wT)(4-12)Ni,kk1其中,T作为估计背景的最小测度,通过T的设定可以选取背景的最佳分布。(3)运动前景的检测当一帧图像的全部像素点处理完以后,用训练模型确定这一帧图像中判断像素值或背景的阈值。将计算出的距离与阈值相比较,距离小于阈值的为背景点,大于阈值的为前景点。在运动模型进行初始化模型之后,可以得到第一帧的混合高斯模型的前景建模,然后在对视频序列进行逐帧读取,并对背景模型进行更新,具体的更新的内容有以下几点。(a)随着视频序列不段的前进,就会得到无数个帧图像,不同的帧图像所对应的混合高斯模型的特征参数bg_model就不同,通过对参数传递进行背景模型的更新,并需要注意的是,对参数类型的转换;(b)在对逐帧读取的视频的前景和背景的更新过程中,帧图像的前景像素点会不断地移动,而背景像素点不会发生移动,通过调用cvUpdateBGStatModel这个函数,能够-25-\n得到在该帧下混合高斯背景建模的前景图和背景图,其表示为bg_model->foreground,bg_model->background这两个数据,然后使用cvcopy这个函数进行复制就能够实现对背景的更新;(c)在对图像的处理过程中,我们所得到的效果图是反向的,通过借用pBkImg->origin=1,pFrImg->origin=1在把反向的图像正过来。部分代码如下//更新高斯模型cvUpdateBGStatModel(pFrame,(CvBGStatModel*)bg_model);//pFrImg为前景图像,只能为单通道//pBkImg为背景图像,可以为单通道或与pFrame通道数相同cvCopy(bg_model->foreground,pFrImg,0);cvAbsDiff(pFrame,bg_model->background,pBkImg);cvCvtColor(pBkImg,pFrImg,CV_BGR2GRAY);cvThreshold(pFrImg,pFrImg,12,255,CV_THRESH_BINARY);//12自己设置cvCopy(bg_model->background,pBkImg,0);//把图像正过来pBkImg->origin=1;pFrImg->origin=1;/*对前景进行腐蚀操作,腐蚀半径为1,可设置*/cvErode(pFrImg,img_erode,NULL,1);/*对前景进行膨胀操作,膨胀半径为2,可设置*/cvDilate(img_erode,img_dilate,NULL,2);img_dilate->origin=1;//显示图像cvShowImage("video",pFrame);cvShowImage("background",pBkImg);cvShowImage("foreground",img_dilate);4.6运行结果效果图在不同帧下的效果图如下图4-4所示。-26-\n(a)原始图的三个不同帧(b)原始图对应的三个不同帧的背景(c)三个不同帧提取的前景图图4-4混合高斯背景建模的运动目标检测4.7本章小结本章首先介绍了由OpenCV这个开源的计算机视觉软件开发包以及在VisualC++6.0下的环境搭建,OpenCV是一个基于发行的跨平台计算机视觉库,可以运行在Linux、Windows操作系统上。由一系列C函数和少量C++类构成,同时提供了JAVA、Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括500多个C函数的跨平台的中、高层APl,它通过函数来实现用于图-27-\n形处理和计算机视觉方面的通用算法。然后主要介绍对视频图像中帧图像的二值化处理,以及使用形态学运算对图像进行腐蚀和膨胀处理,使检测到的图像更加清晰直观,然后通过对混合高斯背景建模方法的分析,形象的勾勒出混合高斯背景建模方法的运动目标检测的流程图,接下来主要对混合高斯建模方法的初始化,以及背景模型的更新做了详细的分析,以及实现建模方法的部分代码,最后通过程序的运行,对运动目标检测的显示进行分析。-28-\n5总结与展望5.1总结随着计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时检测和跟踪成为越来越热门的研究话题,运动目标检测技术的应用领域极为广泛,在智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面都有涉及。但是在实际对运动目标检测的应用场景中,大多数检测方法都具有一个共性特点,就是算法复杂、时间复杂度高以及鲁棒性差,它对运动目标的检测带来了很大的干扰。本文主要是对混合高斯模型的运动目标检测技术进行了深入研究,针对的是智能视频监控系统中的运动目标检测技术,混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,通过使用混合高斯背景的建模方法能够比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性,对未来计算机视觉技术的发展具有重要的意义。本文的主要工作可以概括为以下几点。首先介绍了计算机视觉研究的背景,以及研究计算机视觉对运动目标检测过程的意义,接着阐述了目前国内外研究的现状与发展趋势,并简单的介绍了目前运动目标检测的常用方法,如背景减除法、帧间差分法、光流法和块匹配法,并对常用的这几种检测方法的优缺点进行了分析。最后对目前运动目标检测所出现的一些热点问题做了简单叙述。接着对视频图像的预处理过程进行简要的介绍,主要包括对视频图像读取、图像灰度化等处理过程做了简单的阐述,以及视频图像的去噪方法,如均值滤波、中值滤波和高斯滤波,并分别对这三种不同的滤波方法进行比较,分析各种方法的优缺点,同时提出使用高斯滤波方法。最后,通过对OpenCV在VisualC++6.0下的环境搭建的介绍,以及对视频图像中的二值化和形态学处理,分析混合高斯背景建模方法以及勾画出检测的流程图,并对混合高斯建模方法的初始化,背景模型的建立和更新,以及像素模型参数的更新做了详细的分析,实现建模方法的部分代码,最后通过程序的运行,对运动目标检测的显示进行分析,并以此实现对运动目标检测的实时性和鲁棒性。5.2展望随着计算机视觉系统的广泛应用,对运动目标视频序列图像的检测是目前系统性能-29-\n的瓶颈,高斯混合模型法是运动检测算法中比较成功的一种方法,因此,有越来越多国内外的研究人员把目光投向应用视觉系统的基础性研究。不断的去探索理想的混合高斯背景模型,能够更加有效地提取复杂场景中的运动目标,在今后对混合高斯建模方法的运动目标检测的研究和学习过程中,应该思考以下几个方面。(1)提高算法的实时性。在实际运动目标的检测应用中,应当寻求更好的方法来优化算法,尽可能的采用快速、简单的方法来进行检测。此外,还应当对算法的硬件进行提高,提高代码的运行速度,以此来提高检测的实时性要求。(2)增强高斯背景模型的抗干扰能力。现有的背景模型在对运动目标的进行检测的过程中易受光线变化、虚影以及场景中的扰动的干扰,远远没有达到理想的背景模型的要求,因此,现有的背景建模算法还需要不断进行优化,或者寻求更好的背景建模方法。(3)在针对背景模更新问题上,应该对均值与方差采用不同学习率的学习方案,应该寻求一种改进的高斯混合模型的方法来对运动目标进行检测。使模型均值更加逼近背景的像素值,同时由能保证方差的稳定性,这就需要运用到加权思想,即在对模型的更新过程中,分别给均值与方差以不同的加权值,从而能够保证均值在更新中的值相对较大,而方差更新相对较小,最后在利用高斯滤波及形态学运算来抑制噪声的影响。(4)在对混合高斯的运动目标进行检测的过程中,由于同一场景中光照的变化。背景的扰动,单一算法不能保证检测的准确性和高效性,因此,我们在今后的研究学习过程中,应该研究出一种能够使用多种算法和技术相结合办法,这样可能会提高运动目标的检测效果,进一步提高实时性和鲁棒性。-30-\n致谢时光飞逝,转眼间我们大学时光即将结束,在这里,我首先感谢我的导师张卫国教授对我的关怀与谆谆教诲。从论文的选题和每周论文指导过程中,以及最终论文的完成和预答辩,杨老师都给了我很大的鼓励和帮助。在论文研究的过程中,每当我遇到问题时,张老师都耐心的给我讲解,寻求解决的方案,在我不知道从何做起时,他都会在旁边帮助我,给我一盏前行的明灯。张老师严谨务实的教学态度,渊博的学识,精益求精的工作作风让我为之钦佩,从张老师身上,我不仅学到了一些专业知识,而且也懂得了一些做人的道理.在此,请允许我向张卫国老师致以最真挚的敬意和感谢!此外,我要感谢我的父母和一直关心、支持我的同学,是他们给了我在学业上和平时生活上的关怀与帮助。最后,向计算机学院的全体老师表示衷心的感谢,在西安科技大学的四年求学之路上,由于你们无私的奉献和谆谆教诲,对我的论文撰写以及今后工作和学习有理了很大的启发,使我终生受用。最终向在百忙中抽出宝贵时间来参加我论文答辩的老师们表示由衷的感谢!-31-\n参考文献[1]康晓晶,吴谨.基于高斯建模的目标检测技术[J].液晶与显示,2010,25(3):454~459.[2]IHaritaoglu,DHarwood,LSDavis.Real—timesurveillanceofpeopleandmeiractivities.IEEETransactionsOilPatternAnalysisandMachineIntelligence[J],2000,8(22):809~830.[3]StaufferC,Grimsonw.Adaptivebackgroundmixturemodelsforreal-timetracking.In:ProeIEEEConferenceonComputerVisionandPaRernRecognition,FortCollins,Colarado[J],1999(2):246~252.[4]LiptonA,FuyiyoshiH,PatilR.Movingtargetclassificationandtrackingfromreal-timevdeoIn:ProcIEEEWorkshoponApplicationofComputerVision,Princeton[J],1998(12):8~14.[5]RobertTCollins,AlanJLipton,TakeoKanade.Asystemforvideosurveillanceandmonitoring.ConferenceOllAutomatedDeduction[J],2000(3):497~501.[6]贾云得.计算机视觉[M].北京:科学出版社,2000.[7]陈祖爵,陈箫君,何鸿.基丁二改进的混合高斯模型的运动目标检测.中国图象图形学报[D],2007,12(9)1585~1589.[8]刘瑞祯,于仕琪.OpenCV教程一基础篇[M].北京:北京航空航天大学出版社,2007.[9]PARK.ShaperesolvingLocalThreshholdingforObjectDetection[J].PatternRecognitionLetters[J],2001,22(5):883~890.[10]于晓晶.中值滤波器在图像去噪中的应用[J].电脑知识与技术,2008(8):195~196.[11]谢风英,赵丹培.VisualC++数字图像处理[M].北京:电子工业出版社,2008.[12]王树文,闰成新,张天序.数学形态学在图像处理中的应用[J].计算机工程,2004(32):89~92.[13]张玲,陈丽敏,何伟等.基于视频的改进帧差法在车流量检测中的应用[J].重庆大学学报(自然科学版),2004,27(5):31~33.[14]AndreaPrati,IvanaMikic,MohanMTrivedi,RitaCucchiara.Detectingmovingshadows:algorithmsandevaluation.IEEETransactionsonPaaemAnalysisandMachineIntellig--ence[J],2003(91):8~23.[15]OJaved,KShafique,MShah.Ahierarchicalapproachtorobustbackgroundsubtractionusingcolorandgradientinformation[M],InMVC,2002.[16]刘瑞祯,于仕琪.OpenCV教程一基础篇[M].北京:北京航空航天大学出版社,2007.6.-32-\n[17]杨学超,刘文萍.视频图像序列中的运动目标检测技术[J].计算机应用与软件,2008(1):215~217.[18]ABRAMCZUKT.AMicrocomputerbasedTVDetectorforRoadTraffic[J].SymposiumonRoadResearchProgramT,1984,3(2):145~147.-33-
查看更多

相关文章

您可能关注的文档