《检测交通视频中运动目标的程序设计(共20页).docx》由会员分享,可在线阅读,更多相关《检测交通视频中运动目标的程序设计(共20页).docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上专业综合实践任务书学生姓名:_专业班级: 指导教师: 工作单位: 信息工程学院 题 目:检测交通视频中运动目标的程序设计初始条件:(1) 提供实验室机房及其matlab软件; (2) 数字图像处理的基本理论学习。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)学习运动目标检测的原理及方法,并利用matlab设计程序完成以下功能;(2)读取交通视频文件; (3)运用一种背景建模方法,提取背景图像;(4)读取一帧有运动目标的图像,利用背景差分法,得到差分区域;(5)对差分区域进行数学形态学处理,得到完整的运动目标区域,并显示运动目标
2、检测结果图;(6)对检测的结果进行分析比较;(7)要求阅读相关参考文献不少于5篇;(8)根据课程设计有关规范,按时、独立完成课程设计说明书。时间安排: (1) 布置课程设计任务,查阅资料,确定方案 1.5天; (2) 进行编程设计、调试 2天; (3) 完成课程设计报告书、答辩 1.5天;指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录专心-专注-专业摘要运动目标检测是图像处理与计算机视觉的一个小分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。在实际中,视频监控利用摄像机对某一特定区域进行监视,引入运动监测非常有必要。它可以减轻人的负担,并且提高了可靠性。
3、概括起来运动监测主要包括三个内容:运动目标检测,方向判断和图像跟踪。运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。本文主要内容为对监控视频进行背景建模和背影差分的方法进行运动目标检测。关键字:数字图像处理 MATLAB 运动目标检测 背影差分法 形态学处理1.概述运动目标检测在机器人、视频监控、交通道路检测、军事战争、模拟现实等众多的领域都有极其重要的应用和良好的发展前景。近年来运动目标检测的研究方法在计算机方面一直都处于热门性研究话题,国内外等众多的学者在运动目标检测等方面进行了不懈的努力。运动目标检测在国外,早在二十世纪美国有关部门就运动目标检
4、测进行了监控系统项目的研究,其主要的目的是实现在一定的环境下对运动目标的检测,该系统采取了帧差分法的检测方法。此外世界知名的计算机公司如IBM以及Microsoft等也纷纷进行了监控系统研究的实验,他们研究出来的智能监控系统极大的推进了视频监控的研究,并使得智能监控系统能够应用于现实实际的需要,推进力社会现代化的进程。 中国科学院是国内所有研究运动目标检测的机构中的引领者,而北京自动化研究所在运动目标检测方面则是做出了较大的贡献,交通场景的监控和行为模式识别是重点研究方向,在检测系统中有着重要的地位。 为了适应社会发展的需要,于2002年第一次成功举办了全国智能视觉监控会议,本文主要描述运动目
5、标检测的基本原理,和运用背影差分法检测运动目标的具体实现方法和比较背景建模的几种不同方法,然后选择设计一种合适的方法实现背景建模,最后用视频模拟了交通监控的过程给出实验结果和分析。2.设计原理对于向地面物体背景较为复杂的背景的运动目标检测,难以用阈值方法进行目标的区分,可采用帧间差分法、背影差分法、光流发等运动分割方法进行检测。帧间差分法直接比较两帧图像对应像素点的灰度值,得到运动目标;背景差分法假定图像背景是固定不变的,将每一帧图像的灰度减去背景的灰度图像得到的运动物体的灰度图像,而在此之前需要建立一个背景图像,背景图像的好坏直接决定了检测的效果,因此建立一个合适的背景图像至关重要。考虑到监
6、控视频一般是固定的,背景除了光影和其他微小变化外不会有大面积的背景改变,故本文采用背影差分法,运用背景建模的方法及实现运动目标的检测。2.1背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。此时,图像中的背景区域固定不动。在这种情况下,运动目标识别无论是使用背景差法,还是使用背景差法结合帧间差法,质量良好的背景的建立显得及其重要。另外,当涉及到背景的使用时,一旦背景发生一些变化时,如背景中频繁地出现运动物体,或者光照发生变化、树叶等小物体的晃动等等,使得不能准确地提取背景作为参考图像,从而不能正确地分割出
7、视频序列中的运动物体。为了克服上述问题,国内外众多研究人员提出了背景建立和自适应的背景模型,实现了背景模型的实时更新,能够比较准确地识别出运动目标。在能够满足实时性和实用性要求的前提下,讨论并研究下列几种算法。2.1.1手动背景法手动背景法需要人观察到没有前景物体时启动该帧图像,作为背景图像。这种背景提取方法增加了人力和物力的需求,而且在很多情况下很难在没有前景的情况下获得背景图像,比如高速公路的车辆监测系统、小区的门禁系统等等。这种方法不能实现自适应背景更新的功能,需要使用其他方法修正由于光线,亮度等的变化带来的背景误差。2.1.2统计中值法考虑到运动物体较少的情况下,连续多帧图像中背景的像
8、素值占主要部分,这样在一段时间内变化缓慢,取中值便可以认为是背景图像。统计中值算法从统计学的角度统计单个像素点Ai(x,y),(i=1,2,N)在连续帧图像中的亮度值Bi。在一段时间内对视频序列图像的亮度值(或者色彩信息) Bi进行排序,然后取中值Mi(x,y)作为背景。该算法存在的问题在于:图像帧的像素点大多以数万,数十万的数量级出现,而用于取中值的图像帧数量N也应该比较大。对如此大的数组进行排序取出中值,实现时计算量较大,处理较慢。同时需要占用大量的内存单元用于存储数据。2.1.3算术平均法采用算术平均法提取背景图像,可以总结为在特定的时间段内对像素点的亮度和色彩信息取平均值,用均值作为背
9、景图像对应像素点数值。在读入一段视频时,对某一像素点进行观察,会发现在没有前景的运动目标通过时,该点的灰度值保持稳定,变化很小,只有当前景的运动目标通过时,该点的灰度才会发生剧烈的变化。这样就可以连续读入N帧图像,对图像各点的灰度或色彩信息进行统计的方法,使得变化剧烈的像素点变得平缓,取其平均值作为背景图像像素点的值。这样也可以滤除背景图像中的突变噪声点。其统计公式如下: (2-1)公式中式中:B (x, y)表示背景图像,Ii(x,y)表示第i帧序列图像,N表示平均帧数。在实际场景中,一段时间内,同一区域很少有可能总是存在运动物体。而通过平均法得到的背景就会消除亮暗分布不均匀的情况。由上述仿
10、真实验证明,算术平均法的特点是模型简单,计算方便,可以较好的得到背景图像。但是在仿真过程中,也发现了该方法的一些问题。其中最明显的是,该算法得到背景图像需要获取的图像帧较大。受运动物体数量的影响,随着平均帧数的增加,得到的背景图像的质量越好。由于是求取序列图像的算术平均值,如果N值太小,背景图像中的运动物体不容易被滤除,很容易在背景图像中留下“影子”。而且在运动物体很多,轨迹很固定的情况下,也需要加大N的数值,以使得平均值更加接近与真实的背景图像。在这种情况下,背景的建立就需要较长的时间。本算法也有一定自适应更新功能。随着时间的推移,在背景提取后获取的图像帧也可以作为新的信息量,与背景图像进行
11、统计平均或加权平均,实现背景的自适应更新。因此这种方法也使用于实时背景更新算法。2.1.4 Surendra算法Surendra背景更新算法能够自适应地获取背景图像,该算法提取背景的思想是对差值图像的亮度值进行判断,如亮度大于阈值,背景图像对应位置的像素点保持不变,否则利用当前帧对背景图像进行替换更新。通俗的来说就是亮度变化不大时,我们认为是背景变化,因此该区域更新背景,亮度变化较大时,我们认为是运动目标,此区域不加入背景更新。其算法可以分成以下几个步骤:(1)将第1帧图像I1作为背景B1。(2)选取阈值T,迭代次数m=1,最大迭代次数MAXSTEP。(3)求当前帧的帧差分图像 1 |IiIi
12、-1|T0 |IiIi-1|TDi= (2-2) (4)由二值图像Di更新背景图像BiBi-1(x,y) Di=1 BI= (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很大程度地决定了背景建立时的速度,则决定背景更新的速度。这种背景建模和更新的方法,能够很好地解决物体长时间停留对背景的影响,因为背
13、景的更新会将它逐步地作为背景像素点更新到背景中。但是由于它的基本处理方式是帧间差分,使得它不能将色彩、亮度相似的,大面积的运动物体完整的检测出来。这种情况下,运动物体的某些部分将作为背景区域更新到背景中。2.2背景差分法运动目标检测背景差分算法的实质是:实时输入的场景图像与背景图像进行差分,可以较准确的分割出运动目标。但是背景差分算法也有其天然的缺陷,随着时间的推移,场景的光线、树叶的遮挡、或者运动物体滞留都会很大程度的破坏已经建立好的背景图像。为了解决这些问题,最好的方法便是使用背景建模和背景更新算法来弥补。前面已经讨论过相关问题,因此,本文假设背景处于理想情况下进行背景差分算法的研究。设(
14、x, y)是二维数字图像的平面坐标,基于背景减法的二值化数学描述为:Di(x,y)=|Ii(x,y)Bi(x,y)| (2-4)1,DiTMi(x,y) 00,DiT (2-5) Ii(x,y)表示图像序列中当前帧的灰度图像,Bi (x, y)表示当前帧背景的灰度图像,Mi(x,y)表示相减后的二值化结果,T表示对应的相减后灰度图像的阈值。2.3形态学滤波由于刮风、气流等原因,背景中部分物体小幅度晃动;光线的变化等不确定因素,会使得视频图像产生大量噪声,当差值图像二值化后,仍然有很多无用的噪声斑点,因此,需要采用数学形态学方法,对分割后的二值图像进行形态学滤波。数学形态学的主要用途是获取物体拓
15、扑和结构信息。它通过物体和机构元素相互作用的某些运算,得到物体更本质的形态。其基本思想是:利用一个成为结构元素的“探针”收集图像信息。这种基于探测的思想与人的视觉特点有类似之处:总是关注一些感兴趣的物体或者结构,并有意识地寻找图像中的这些结构。数字形态学在本文所涉及到的图像处理中,主要作用包括利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的。形态学的基本运算包括:腐蚀(Erosion)、膨胀(Dilation)、开(Opening)和闭(Closing)运算。用这些算子及其组合来进行图像形状和结构的分析及处理,包括图像分割、特征提取、边界检测、图像滤波、图像增强与恢复等方
16、面的工作。形态学一般以二值图像为处理对象,但也可以用在某些灰度图像的应用中。(1)结构元素结构元素被形象的称为刷子或探针,是膨胀和腐蚀操作中最基本的组成部分。它用于测试输入图像,通常比待处理图像小得多。本文使用33的结构元素,经开运算处理后,可提取出移动物体。二维结构元素由一个数值为0或1矩阵组成。结构元素的原点指定了图像中需要处理的像素范围,结构元素数值为1的点决定结构元素的领域像素在腐蚀或膨胀操作是需要参与计算。(2)腐蚀和膨胀腐蚀和膨胀是许多形态学算法的基础。腐蚀操作会去掉物体的边缘点,细小物体所有的点都会被认为是边缘点,因此会整个被删去。再做膨胀时,留下来的大物体会变回原来的大小,而被
17、删除的小物体则永远消失了。膨胀操作会使物体的边界向外扩张,如果物体内部存在小空洞的话,经过膨胀操作这些洞将被补上,因而不再是边界了。再进行腐蚀操作时,外部边界将变回原来的样子,而这些内部空洞则永远消失了。通常设为图像矩阵,为结构元素矩阵,数学形态学运算时,用对进行操作。实际上,结构元素本身也是一个图像矩阵。这里对每个结构元素矩阵B指定一个原点origin。X被B腐蚀的定义为: (2-6)这个公式说明,使用B对X进行腐蚀是所有B中包含于A中的点的集合用x移。X被B膨胀的定义为: (2-7) 这个公式表示用B膨胀X的过程是,相对B做关于中心像素的映射,在将其映射平移x,这里X与B映像的交集不为空集
18、。2.4总体方案设定鉴于背景差分算法也有其天然的缺陷,即如果背景固定,随着时间的推移,场景的光线、树叶的遮挡、或者运动物体滞留都会很大程度的破坏已经建立好的背景图像。这里可以不考虑某一种单一的背景建模方法,我们尝试用多种背景建模方法结合的方式来互相弥补各种方法的不足。2.4.1 算术平均法与Surendra算法相结合的背景建模为了解决这些问题,最好的方法便是使用背景建模和背景更新算法来弥补。我们使用算术平均法与Surendra算法相结合的改进的背景建模,此模型初始就可以有一个较好的背景模型,由于运用了Surendra算法更新背景,使这个背景模型对场景的光线、树叶的遮挡、或者运动物体滞留都会很好
19、的适应作用。其算法步骤为:先由算术平均法给出一个初始的背景,然后用Surendra算法实时的更新背景图像。2.4.2 总体程序框图图2.1 总体程序框图3.软件编程实现clearclcnStar = 1;nNUM = 30;%60帧算数平均作为初始背景%im =im2double(imread(m1.bmp);for k=2:1:60 im=im+im2double(imread( m,int2str(k),.bmp);endim=im/60;figure(1),imshow(im,);title(初始背景图);im=rgb2gray(im);im=double(im.*255);Backgr
20、ound = im ;%初始背景%Surendra算法背景更新过程%for k= nStar+1 :1: nNUM CurrentImage =double(rgb2gray(imread( m,int2str(k),.bmp ); % 当前帧 figure(2),imshow(CurrentImage,);title(当前帧图像); BW=zeros(size(CurrentImage); m,n=size(CurrentImage); for i=1:m for j=1:n if abs(CurrentImage(i,j)-(Background(i,j) 10 %适当阈值 BW(i,j)
21、=1; else BW(i,j)=0; end end; end; alpha = 0.3; %背景更新的速度 CurrentBack = Background.*BW + ( alpha.* CurrentImage + ( 1-alpha ).* Background ).*( 1 -BW ); %相对背景有较大变化的区域不更新,无明显变化的区域更新到背景中去 Background = CurrentBack;%执行背景更新 %背影差分检测运动目标%m,n=size(CurrentImage); for i=1:m for j=1:n if abs(CurrentImage(i,j)-(B
22、ackground(i,j) 30 %检测阈值 BW(i,j)=1; else BW(i,j)=0; end end; end; figure(3),imshow(BW),title(差分后的二值化图像);%形态学处理二值图像% SE=strel(square,3);BWCutero=imerode(BW,SE);%腐蚀 figure(4),imshow(BWCutero),title(腐蚀后的图像); BWCuterodil = bwmorph(BW,dilate,3);%膨胀figure(5),imshow(BWCuterodil),title(膨胀后的图像); %运动目标标记%5L,nm
23、 = bwlabel(BWCuterodil,8);%找出图像中的八连通区域,视为车辆所在的区域 for i = 1:nm r,c = find(L = i); left= min(c); right= max(c); top= min(r); buttom= max(r); width=right - left + 1; height = buttom - top + 1; rectangle(Position,left,top,width,height,EdgeColor,r); %对车辆用矩形标记 pause(0.005); endend4.结果及分析运行程序程序,前60帧算数均值得到的
24、初始背景图 图4-1初始背景第91帧后背景更新的背景图 图4-2 更新后的背景图第91帧图 图4-3 第91帧图差分二值化后的图 图4-4差分二值化图腐蚀后的图图4-5腐蚀后的图膨胀后标记目标的图 图4-6 膨胀标记目标的图由上述结果可以看出,前60帧即可得到较为良好的背景图,当更新到91帧时,此时的背景图更接近我们心目中的背景图了,说明Surendra算法在适应背景缓慢变化的场景中有着很好的效果。将目标帧与背景图进行差分二值化后,发现一些干扰的信号,即一些小目标的移动也显示了出来,运用形态学处理中腐蚀后,将小目标成功踢除,为了得到完整的目标区域,继续进行膨胀操作,这是目标膨胀为一个8连通的整
25、体,最后将目标用矩形框标出,完成运动目标的检测。5.心得体会经过本次专业综合实践,使我在数字图像处理这门课上学的知识得到了具体的实验和应用,在此过程中也发现了自己许多的不足,将理论运用到实际的过程我遇到了很多问题,开始这使我很郁闷,当最后通过大量的查阅资料和学习,一步一步将问题解决,顺利完成了课程任务,当然最重要的正是在这个过程中让我学到很多东西。了解了图像处理在科学技术领域的重要作用及其当今的发展趋势、瓶颈和还难以解决的问题,基于本次的实践内容,让我深刻的了解了和掌握了图像处理中运动目标检测的主要技术原理、应用范围、及其现在主面临和待解决的问题。也深刻理解了其中背影差分、形态学等数字图象处理
26、的核心技术和知识。总之,这次的专业实践,巩固了我的专业知识、加强了我的实践动手能了、和解决问题的能力,这对我以后的学习和工作都将产生极大的帮助。参考文献1杨杰,黄朝兵 .数字图象处理及MATLAB实现(第二版),电子工业出版社.2010.22 赵小川MATLAB图像处理-能力提高与应用实践北京航空航天大学出版社2014.63 马晓璐,刘倩 .MATLAB图像处理从入门到精通.中国铁路出版社.2013.24(日本)谷口庆治编,朱虹等译数字图像处理(应用篇).科学出版社:2922975黄磊,于曼曼基于背景差分的运动目标检测研究软件导刊第8卷,6章霄,董艳雪,赵文娟数字图像处理技术. 冶金工业出版社:219225