基于混合高斯建模方法的运动目标检测方法研究与实现毕业设计论文.docx
- 文档编号:17814368
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:42
- 大小:1.03MB
基于混合高斯建模方法的运动目标检测方法研究与实现毕业设计论文.docx
《基于混合高斯建模方法的运动目标检测方法研究与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于混合高斯建模方法的运动目标检测方法研究与实现毕业设计论文.docx(42页珍藏版)》请在冰点文库上搜索。
基于混合高斯建模方法的运动目标检测方法研究与实现毕业设计论文
摘要
运动目标检测是计算机视觉研究领域的基础,它是从图像序列中去除静止的背景区域,将运动区域的前景检测并提取出来,如何有效地把感兴趣的目标如人、物等前景目标从复杂场景中分割出来,并对目标行为做出相应的检测,是计算机视觉研究的热点和难点。
本文对视频图像读取、图像灰度化等处理过程做了简单的阐述,并分别对均值滤波、中值滤波和高斯滤波这三种不同的滤波方法进行比较,分析各种方法的优缺点,同时提出使用高斯滤波方法。
最后利用搭建在VisualC++6.0上的OpenCV软件进行设计,使用混合高斯背景的建模方法实现对运动目标的检测。
在背景的各种建模方法中,混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性。
关键词:
运动目标检测;OpenCV;混合高斯背景模型
ABSTRACT
Movingtargetdetectionisthefoundationofcomputervisionresearchfield,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
1绪论
1.1研究背景和意义
计算机视觉的研究是从二十世纪五十年代开始,起初的主要研究目的是通过检测图像中的物体并获取这些物体间的关系来进行对图像的理解。
然而从二十世纪七十年代起,目标分割、边缘检测等问题的研究启发了学者们对解决视觉问题的有效方法的探索,后来随着人类知识的不断积累,以及计算机视觉理论和算法研究的日益发展,加上现阶段计算机软硬件的日趋成熟和普及,人们利用计算机技术来帮助人类感知和认识世界的需求也在与日俱增。
这使得人类获取外界的各种信息很大一部分是通过视觉信息途径得到的。
视觉信息包括静态图像信息和图像序列信息(视频信息),静态图像信息由于它在时间上是静止的,使得所能包含的信息量仅限在一帧图片以内,从而无法表现出信息在时间上的相关性,与此相反,视频信息具有在空间和时间上的联系和相关性,能够将很多人类感兴趣的信息包含在里面,尤其是视频信号中的运动部分,更是将视频信号中的主要信息包含在里面,从而视频信息成为了视频信号处理的关键对象。
随着研究的不断深入和拓展,视频图像信号在信息处理和计算机视觉中扮演着越来越重要的角色。
随着运动目标检测研究的不断深入,以及计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。
混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,通过使用混合高斯背景的建模方法能够比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性,对未来计算机视觉技术的发展具有重要的意义。
1.2国内外研究现状与发展趋势
1.2.1国内外研究现状
视频检测技术在目前世界上的应用非常广泛,其中应用最为广泛的地区是日本,如日本的VICS系统相当完毕和成熟,其次美国、欧洲等地区也普遍应用。
在中国,北京、上海、广东等地也已广泛使用。
经过几十年的发展历程,国外的视频检测技术研究己经趋于成熟,主要集中于一些较发达的国家。
运动目标检测技术是智能视频监控系统中最为关键的步骤,它是将运动区域的前景从复杂场景中分割出来,并对目标行为做出相应的检测,运动区域的正确分割,对以后的运动目标的跟踪和行为理解等后期处理起到了至关重要的作用。
通常,根据目标与摄像机的相对关系可分为两种情况:
静态背景下的运动目标检测和动态背景下的运动目标检测。
静态背景下的运动目标检测是指摄像机在整个监控的过程中处于静止状态,只存在着被监控物体在视场内的运动;而动态背景下运动目标的检测是指摄像机在整个监控过程中发生了移动(如平动、旋转或多自由度运动),同时被监控的物体在整个视场内也存在着运动的情况。
目前,传统的静态背景下运动目标检测算法可分为以下几类。
(1)背景减除法
背景减除法[1]是目前运动目标检测中最为常用的方法,它是利用当前图像与背景图像进行差分来检测运动目标。
这种方法的优点是能够将运动区域描述的完整并且精确,但是它的不足之处在于对光照和场景中的扰动会比较敏感。
背景减除法的难点在于如何寻找其理想的背景模型,以及如何进行对背景模型的更新。
其中最为简单的背景模型是时间平均图像。
为了抑制动态场景的变化对运动目标检测所产生的影响,许多研究人员都致力于研究更好的背景模型,已达到更好的显示效果。
Haritaoglu等[2]它是利用最小、最大的强度值和最大时间差分值来为场景中的每个像素进行统计建模,并且对背景模型进行周期性地更新。
此外,特征背景法也是较为常见的背景建模方法,还有图像变换同现法等。
像素级的混合高斯模型能随动态场景的变化而自适应地变化,可以用来描述多峰的背景,同时也广泛应用于运动目标领域的检测。
Stauffer和Grimson[3]提出了自适应的混合高斯模型,通过对视频图像中每一帧的每个像素进行高斯建模,在利用在线估计进行模型参数更新的方法,从而有效地克服了背景的扰动,光照变化等对前景目标检测所带来的影响。
除此之外,研究人员对混合高斯模型进行不断深入的学习,他们不断地改进混合高斯模型的算法,将其应用在智能视频监控各个方面,希望系统能够有较高的实时性,然而在对其处理图像序列时,无论是运动目标的检测和跟踪,还是分类都是逐帧对图像序列进行处理的,计算量非常庞大,并且不能满足系统的实时性要求,因此要提高系统的实时性,就需要研究如何减少背景建模算法的计算量。
(2)帧间差分法
帧间差分法是目前最简单的运动目标检测方法,它主要是利用了连续图像序列中相邻的两帧或三帧图像之间的相关性,然后对连续图像序列中相邻的帧进行相减来进行目标检测的方法,通过较小时间间隔来检测的图像变化部分,最后对图像进行阈值化处理来找出运动区域。
帧间差分法具有算法简单,运算量小等优点,但是根据目标的运算速度,选择合适的差分时间间隔是检测图像序列的关键,如果选择得差分时间间隔不合适,会造成较大误差。
Lipton等[4]通过利用两帧差分的方法从实际的视频图像中检测出运动目标,进而对目标进行分类与跟踪。
Collins等[5]开发的是一种将三帧差分与自适应背景减除相结合的混合算法,它能够快速地从整幅图像中分割出前景图像。
帧间差分法对动态环境有着较强的适应性,它的缺点是不能从中提取所有相关的特征像素点,在运动目标内部易产生空洞,从而得出不完整的目标信息。
(3)光流法
光流是空间运动物体在观测成像面上的像素运动的瞬时速度[6]。
光流法的研究是根据图像序列中的像素强度数据的时域变化和相关性,从而确定各自像素位置的“运动”情况,它主要研究内容的的是,图像序列的灰度在时间上的变化与景象中物体结构及其运动之间的关系。
一般情况下,光流的产生是由相机运动、场景中目标运动或两者的共同运动导致的。
光流法检测运动目标的基本原理是:
给图像序列中的每一个像素点赋予一个速度矢量,使其形成了一个图像的运动场,在运动的一个特定时刻,通过投影关系得到图像上的点与三维物体上的点的一一对应,在根据各个像素点的速度矢量特征对图像序列进行动态分析。
如果图像中没有运动物体,则光流矢量在整个图像区域是连续变化的。
当图像中有运动物体时,目标和图像背景就会存在相对的运动,这时运动物体所形成的速度矢量和邻域背景速度矢量会产生不同,从而能够检测出运动目标及其所在的位置。
利用光流法进行运动物体检测的缺点在于大多数光流法计算耗时,实时性和实用性都较差。
但是光流法能够携带运动物体的运动信息和有关景物三维结构的优点,它能够在不知道任何场景信息的情况下,检测出运动对象。
但是由于被检测物体与摄像机之间存在着复杂的相对运动,而动态的运动目标的检测算法比静态的运动目标的检测算法情况要复杂很多,目前动态背景的运动目标检测算法中,常用的算法有匹配块法、光流估计法、图像匹配法以及全局运动估计法等。
但这些方法存在一个共性的问题就是计算量非常大,而且运动目标容易受到噪声和局部光照条件的影响,而如何利用视频监控场景中的图像序列自身的特点对我们算法的研究起着至关重要的作用。
(4)块匹配法
块匹配算法是将图像序列中的相邻两帧图像分割为子块,在通过对子块的匹配来进行运动估值[7]。
在块匹配的算法中,图像序列被分割为若干个子块,并将子块中的所有像素的运动矢量被认为是相同的,假设图像场景中没有大的遮挡物,而且复杂的运动可以被近似地分解为一组平移运动之和,所以块匹配算法可以假定为图像中的运动物体是由做平移运动的刚体组成而得到的。
这样就会使块匹配算法变得简单快速,同时也保证了较高的精度。
1.2.2研究的热点
1.环境的微小扰动和光照变化对运动目标带来形状变化,使得实时识别和检测非常困难,如何选择和提取具有不变性的特征有提高待。
2.如何选取合适的高斯背景模型与之像素点进行匹配,以及阴影图像对运动目标检测所带来的干扰需进一步提高。
3.系统算法在进行运动目标检测时,使用的是混合高斯建模方法,其运算量比较大,如果对于大量的数据进行计算时,由于计算的过程比较耗时从而会影响效果的实时性;
1.3研究内容
第1章简要介绍了计算机视觉,了解运动目标检测的国内外发展现状,并对目前运动目标检测的常用方法的简单介绍,最后分析现阶段对运动目标检测研究的热点问题。
第二章是对视频图像进行预处理。
其中包括读取视频,图像去噪,图像灰度化等,对比不同处理方法的优缺点,最后选定运用高斯去噪的方法处理图像。
第三章对运动目标检测做出简单阐述,并分析当前常用的几种运动目标检测的方法,其中包括背景减除法、光流法、帧间差分法以及块匹配法,并结合各种方法的优缺点及研究目的,最后选择利用混合高斯分布背景建模进行前景检测。
第四章首先介绍了OpenCV在VisualC++6.0下的环境搭建,然后介绍对视频图像中帧图像的处理,接着阐述了混合高斯背景建模方法的运动目标检测的流程图,接下来详细介绍混合高斯建模的初始化和背景模型的更新,以及实现建模方法的部分代码,最后通过程序的运行,对运动目标检测的显示进行分析。
第五章总结与展望。
本文所做的工作做出总结,并对该领域的未来作出了展望。
1.4本章小结
本章主要介绍了计算机视觉研究的背景,以及研究计算机视觉对运动目标检测过程的意义,接着阐述了目前国内外研究的现状与发展趋势,并简单的介绍了目前运动目标检测的常用方法,如背景减除法、帧间差分法、光流法和块匹配法,然后对目前运动目标检测所出现的一些热点问题做了简单叙述,最后对本论文各章节需要研究的内容进行简要的概述。
2视频图像检测预处理
视频是指随着时间发生变化的一组数字图像序列,有时还包含有相应的音频信息。
数字视频是先用摄像机之类的视频捕捉设备,将外界影像的颜色和亮度信息转变为电信号,再记录到储存介质当中,它也是数字图像在时域上的序列,视频序列中的每个图像称为帧。
而现在的视频文件较多是通过彩色摄像机进行采集的,而在视频文件的采集、传输和记录的过程中,经常会受到各种噪声的干扰,其中包括外界光照、阴影的影响,也包括摄像头成像误差、系统电路失真等引起的噪声。
而在现实中的图像序列一般都是噪声图像,因此在对图像进行处理的过程中,在对图像的边缘检测、图像分割、特征提取、模式识别等处理之前,应该选用适当的算法去除图像中的噪声干扰,这对图像序列的检测至关重要,因此视频图像的去噪是一个非常重要的预处理步骤。
对于一个良好的图像处理系统,不论是计算机进行的数字处理还是用模拟处理,都是把减少最前一级的去除噪声作为主攻目标。
在我们对视频图像的检测之前,为了能更好达到预期的结果,避免噪声等因素对视频图像检测效果的影响,首先应该对视频图像的进行预处理,本章主要介绍了对视频的读取,图像灰度化,以及几种常用的去噪方法,并综合分析每种方法的优缺点,最后确定使用高斯滤波进行图像去噪。
2.1视频读取
本课题是基于OpenCV的运动视频检测,使用的是OpenCV函数库,搭建在VisualC++6.0环境下进行编译,其识别的视频格式为avi。
OpenCV从外部捕获图像有两种方式,一种是从摄像头中获取,另一种是通过对视频的解码得到图像。
这两种获取图像的方式都必须从第一帧开始一帧一帧的按顺序获取,因此每获取一帧图像后都要保存其相应的状态和参数[8]。
如果从视频文件中获取,需要保存视频文件的文件名和相应的文件名类型,以及下一次获取所需要解码哪一帧等。
这些信息都保存在CvCapture中,而每获取一帧后,这些信息都将被更新,获取下一帧需要将新的信息传给获取信息所传递的接口。
CvCapture是一个结构体,它是用来保存图像捕获所需要的信息。
通过设置视频文件的路径,然后在设置窗口大小,并且可以控制窗口的位置和大小。
cvQueryFrame从摄像头或者文件中抓取并返回这一帧。
返回的图像不可以被用户释放或者修改。
cvQueryFrame的参数为CvCapture结构体的指针。
它的作用是用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。
与cvNamedWindow不同是,cvQueryFrame使用已经在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的三个分量取相等的值,则图像就会由原来的三维特征降到灰度化后的一维特征,在此过程中图像必然会丢失部分的信息。
常见的灰度化处理方法有平均值法、最大值法口、加权平均值法等。
而不论采取哪种灰度化处理方法,都会将其原有的颜色特征改变或丢失,这样就使得同一种二值化方法因为不同的灰度化处理过程得到不同的结果,其中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]。
一般的图像序列都是有噪声存在的,而这些噪声将影响图像处理的效果。
图像传感器带来的噪声在视频图像处理中为主要噪声源。
噪声的出现有两种:
椒盐噪声和高斯噪声(白噪声)。
椒盐噪声主要是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,往往由图像切割引起。
中值滤波是去除脉冲干扰级椒盐噪声最常用的算法。
高嘶噪声是从频率上说的随机信号干扰,其噪声服从高斯分布。
图像中内在噪声也可能对图像的检测产生影响,而原始帧由于其他原因不可避免的会叠加噪声。
因此,在对图像处理之前应该将其去除,以便得到良好的处理效果。
滤波去噪的方法主要有两种方法,频域法和空域法。
频域法的计算速度快,但是比较复杂,为了保证实时性,一般采用空域法。
对场景中瞬时环境噪声的消除常用的是时间域的滤波,如三帧时间域的滤波。
传感器噪声的消除方法有中值滤波、均值滤波、直方图滤波等空间域上的滤波。
而任何去除噪声的方法都或多或少对图像的质量产生影响,使图像变得模糊。
因此,必须在图像质量和去除噪声之间做出折衷。
在滤波方法中,最常用的有中值滤波(medianfilter)、均值滤波和高斯滤波三种。
2.4.1中值去噪
中值滤波是由Tukey提出的,它是一种基于排序统计的理论,能够有效的抑制噪声的非线性信号处理技术。
它也是一种类似于卷积的邻域运算,但是在计算过程中并不是加权求和,而是把数字图像或数字序列中一个像素点的值用该点的一个邻域中各点值的中值代替,这样会使周围像素灰度值差别比较大的像素改取为与周围的像素值比较接近的值,这样能使周围的值更接近真实值,从而就能消除孤立的噪声点。
由于高频分量对应图像中的区域边缘的灰度值具有较大较快变化的部分,使用中值去噪能减弱或消除傅立叶空间的高频分量,该滤波可将这些分量滤除,使图像变得更加平滑,但是同时也会影响低频分量[10]。
在一定的条件下,中值滤波对滤波脉冲干扰及图像扫描噪声非常有效,它可以克服线性滤波器如最小均方滤波、均值滤波给图像带来的细节模糊,通过中值滤波不仅能去除高频噪声,抑制脉冲干扰,而且还可以保持图像清晰的轮廓,由于在实际运算过程中并不需要统计图像的特征,因此使用中值滤波操作较为方便。
传统的中值滤波一般采用含有奇数个点的滑动窗口中各点狄度值的中值来代替指定点的灰度值。
偶数个元素的中值是将数值按大小排列后,取其中间两个元素灰度值稍微平均值;奇数个元素的中值是按大小排序后而得到中间的数值。
中值滤波是一种用来抑制脉冲噪声的典型低通滤波器,它能够彻底滤除尖波干扰噪声,并且又具有较好地保护目标图像边缘的特点。
标准一维中值滤波器的定义为
(2-1)
式中,med表示取中值操作。
中值滤波的滤波方法是将像素按照滑动滤波窗口2N+l做大小排序,滤波后输出像素值为该序列的中值。
例如取3X3滑动窗口.中值为窗口内第5个最大的像素值。
但是二维中值滤波的窗口形状和尺寸设计会对滤波的效果产生较大的影响,在针对不同的图像内容和不同的应用要求,使用二维中值时往往采用不同的形状和尺寸,通常的滤波窗口有线状、方形、圆形、十字形及圆环形等,窗口尺寸一般设置为3,也可以根据滤波效果适当的调整窗口的尺寸,从而得到较好的滤波效果。
中值的计算是对滑动窗口内像素的排序操作,这就需要对序列中的数据像素做比较和交换,数据不同的排列顺序以及元素之间的比较次数都会对排序速度带来影响。
传统的排序算法是用冒泡排序法,这种滤波算法使窗口每移动一次,就要进行一次排序。
在排序的过程中进行了大量重复的比较,当窗口较大时计算量很大,计算需要的时间将会变得更长,这样就会浪费大量的时间。
2.4.2均值去噪
均值滤波也被称为线性滤波,它所运用的方法为邻域平均法,其基本原理是用邻域的均值替代原图像中的各个像素值,通过对处理的当前像素点(X,Y)选择一个模板窗口,而模板的选取是由当前像素近邻的若干像素所组成,在对模板求取所有像素的均值,再把所求的均值赋给当前的像素点,作为处理后图像在该点上的灰度值,具体算法如下:
设f(x,y)为给定的含
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 混合 建模 方法 运动 目标 检测 研究 实现 毕业设计 论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)