数字图像课程设计 监控视频中道路车流量检测系统设计.docx
- 文档编号:30013049
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:15
- 大小:692.60KB
数字图像课程设计 监控视频中道路车流量检测系统设计.docx
《数字图像课程设计 监控视频中道路车流量检测系统设计.docx》由会员分享,可在线阅读,更多相关《数字图像课程设计 监控视频中道路车流量检测系统设计.docx(15页珍藏版)》请在冰豆网上搜索。
数字图像课程设计监控视频中道路车流量检测系统设计
山东建筑大学
课程设计说明书
题目:
监控视频中道路车流量检测系统设计
课程:
数字图像处理课程设计
院(部):
信息与电气工程学院
专业:
电子信息工程
班级:
电信
学生姓名:
学号:
指导教师:
完成日期:
2013年6月
目录
摘要································································································
1设计目的························································································1
2设计要求······························································1
3设计内容························································································2
3.1运动车辆检测算法比较································································2
3.2形态学滤波·················································································5
3.3车辆检测···················································································6
3.4车辆计数···················································································9
3.5软件设计····················································································9
总结与致谢·························································································10
参考文献····························································································11
附录···································································································12
摘要
获得实时的交通信息是当前各种检测方式的前提,但是现有的信息采集方式并不能满足交通管理与控制的需求。
随着计算机技术的快速发展,基于视频的检测技术在交通中得到了广泛的应用,同其它检测方式相比,它具有检测范围大、设置灵活、安装维护方便、检测参数多等优点。
基于图像处理的视频检测方式近年来发展很快,已成为当今智能交通系统的一个研究热点。
本论文对视频交通流运动车辆检测的内容进行了深入地研究。
结合视频图像详细的介绍了视频检测中的背景更新、阴影去除、车辆分割等关键技术和算法,介绍了视频检测的方法。
最后在MATLAB的平台上进行了系统实现设计。
实验结果表明,该算法具有一定的可行性,能够快速的将目标参数检测出来
关键词:
MATLAB;帧间差法;车辆检测
1设计目的
随着经济的发展,人民生活水平的提高,汽车保有量大幅增加,怎样安全高效地对交通进行管理,就显得非常重要.解决这一问题的关键是建立智能交通系统(ITS),其中车辆检测系统是智能交通系统的基础.它为智能控制提供重要的数据来源
作为ITS的基础部分,车辆检测系统在ITS中占有很重要的地位,目前基于视频的检测法是最有前途的一种方法,它是通过图像数字的方法获得交通流量信息,主要有以下优点:
(1)能够提供高质量的图像信息,能高效、准确、安全可靠地完成道路交通的监视和控制工作.
(2)安装视频摄像机破坏性低、方便、经济.现在我国许多城市已经安装了视频摄像机,用于交通监视和控制.(3)由计算机视觉得到的交通信息便于联网工作,有利于实现道路交通网的监视和控制.(4)随着计算机技术和图像处理技术的发展,满足了系统实时性、安全性和可靠性的要求
2设计要求
通过对视频流中的车辆进行检测和跟踪,准确地统计每个车道流量、平均车速、平均车道占有率、车队长度、平均车间距等信息为交通规划,交通疏导和车辆动态导航领域提供一系列指导。
设计车辆检测与识别方法和车流量统计方法,实现监控视频中道路车流量检测。
通过实验验证检测精度。
3设计内容
3.1运动车辆检测算法比较
目前,大多数的运动目标检测的方法或是基于图像序列中时间信息的,或是基于图像序列中空间信息的。
常见的方法有如下3种:
(1)光流法
当目标运动时,图像上对应目标的亮度信息(光流)也相应的运动。
这样,根据时间上相邻的几帧图像可以计算出各像素点运动的大小和方向,从而利用运动场来区分背景和运动目标。
其主要优点在于能检测出独立的运动目标,而不需预知场景的任何信息,对变化的复杂背景情况有较好的适应。
但其缺点也很明显,由于要依赖光流估计的准确程度,大多数计算方法相当复杂并且计算量特别大,所以除非有特殊的硬件支持,否则很难实现实时检测。
(2)背景减法
将实时视频流中的图像像素点灰度值与事先已存储或实时得到的视频背景模型中的相应值比较,不符合要求的像素点被认为是运动像素。
这是视频监控中最常用的运动检测方法。
这种方法虽然能较完整的提取运动目标,但对光照和外部条件造成的环境变化过于敏感,常常会将运动目标的阴影错误的检测为其自身的一部分。
同时由于时间流逝,实际场景的多种因素都会发生变化,比如停留物的出现、光线等的变化、运动目标对背景的遮挡等等,背景需要得到实时地更新,这是影响其检测效果的一个重要因素。
背景差分算法的实质是:
实时输入的场景图像与背景图像进行差分,可以较准确的分割出运动目标。
但是背景差分算法也有其天然的缺陷,随着时间的推移,场景的光线、树叶的遮挡、或者运动物体滞留都会很大程度的破坏已经建立好的背景图像。
为了解决这些问题,最好的方法便是使用背景建模和背景更新算法来弥补。
前面已经讨论过相关问题,因此,本文假设背景处于理想情况下进行背景差分算法的研究。
基于背景减法的MATLAB仿真,如图
Surendra算法计算出背景图像,左图为原始输入图像,中图为背景图像,右图为背景差分法得出的二值化图像。
实验结果表明:
背景差分算法也可以有效地检测出运动目标。
由于背景建模算法的引入,使得背景对噪声有一定的抑制作用,在差分图像中“雪花”较帧间差分算法有所减少。
同时,使用背景差分算法检测出的运动物体轮廓,比帧间差分法的检测结果更清晰。
因此,在背景建模与背景更新处于比较理想的状态下,背景差分算法得到的结果略好于帧间差分的结果。
(3)帧间差法
帧间差法是根据当前图像与参考图像的差别来获得运动目标轮廓的方法。
这种方法对于场景中的光线渐变不敏感,适于动态变化的环境,且运算量相对较小。
但一般不能完整的提取运动目标,且在运动实体内易产生空洞现象,从而不利于下一步的分析和处理。
2.2.1 帧间差法运动目标检测
基于帧间差分的运动检测即帧差法,它根据相邻帧或隔帧图像间亮度变化的大小来检测运动目标,选取T=20,仿真结果如下图:
由上面的仿真实验可以得出:
运用帧间差分方法进行运动目标的检测,可以有效的检测出运动物体。
右子图中,可以比较清晰地得到运动物体的轮廓。
但是,这种算法虽然可以使背景像素不随时间积累,迅速更新,因此这种算法有比较强的适应场景变化能力。
但是帧差法表示的是相邻两帧同位置的变化量,因此很有可能将比较大的运动目标,或者运动目标内部颜色差异不大的像素判断错误,在实体内部产生拉伸、空洞现象。
而且当前景运动很慢且时间间隔选择不合适时,容易出现根本检测不到物体的情况。
在差分图像中,有很多“雪花”般的噪声,这些是由于图像局部的干扰造成的。
使用帧间差分法,需要考虑如何选择合理的时间间隔,这一般取决于运动目标的速度。
对于快速运动的目标,需要选择较短的时间间隔,如果选择不当,最坏情况下目标在前后两帧中没有重叠,被检测为两个分开的目标;对于慢速运动的目标,应该选择较长的时间间隔,如果选择不当,最坏情况下目标在前后两帧中几乎完全重叠,根本检测不到目标。
此外,在场景中由于多个运动目标的速度不一致也给时间间隔的选取带来很大麻烦。
3.2形态学滤波
由于刮风、气流等原因,背景中部分物体小幅度晃动;光线的变化等不确定因素,会使得视频图像产生大量噪声,当差值图像二值化后,仍然有很多无用的噪声斑点,因此,需要采用数学形态学方法,对分割后的二值图像进行形态学滤波。
数学形态学的主要用途是获取物体拓扑和结构信息。
它通过物体和机构元素相互作用的某些运算,得到物体更本质的形态。
其基本思想是:
利用一个成为结构元素的“探针”收集图像信息。
这种基于探测的思想与人的视觉特点有类似之处:
总是关注一些感兴趣的物体或者结构,并有意识地寻找图像中的这些结构。
数字形态学在本文所涉及到的图像处理中,主要作用包括利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的。
形态学的基本运算包括:
腐蚀(Erosion)、膨胀(Dilation)、开(Opening)和闭(Closing)运算。
用这些算子及其组合来进行图像形状和结构的分析及处理,包括图像分割、特征提取、边界检测、图像滤波、图像增强与恢复等方面的工作。
形态学一般以二值图像为处理对象,但也可以用在某些灰度图像的应用中。
(1)结构元素
结构元素被形象的称为刷子或探针,是膨胀和腐蚀操作中最基本的组成部分。
它用于测试输入图像,通常比待处理图像小得多。
本文使用3×3的结构元素,经开运算处理后,可提取出移动物体。
二维结构元素由一个数值为0或1矩阵组成。
结构元素的原点指定了图像中需要处理的像素范围,结构元素数值为1的点决定结构元素的领域像素在腐蚀或膨胀操作是需要参与计算。
(2)腐蚀和膨胀
腐蚀和膨胀是许多形态学算法的基础。
腐蚀操作会去掉物体的边缘点,细小物体所有的点都会被认为是边缘点,因此会整个被删去。
再做膨胀时,留下来的大物体会变回原来的大小,而被删除的小物体则永远消失了。
膨胀操作会使物体的边界向外扩张,如果物体内部存在小空洞的话,经过膨胀操作这些洞将被补上,因而不再是边界了。
再进行腐蚀操作时,外部边界将变回原来的样子,而这些内部空洞则永远消失了。
(3)开启和闭合
开启就是相对图像进行腐蚀,然后膨胀其结果。
闭合就是先对图像进行膨胀,然后腐蚀其结果。
开启一般使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。
闭合同样使轮廓线变得光滑,但是开启相反的是,它通常消除狭窄的间断和长细的鸿沟,消除小的孔洞,并填补轮廓线中的断裂开启。
3.3车辆检测
(1) 车辆检测新算法流程
(2) 截取检测带
为了提高数字系统处理的实时性的要求,我们只取检测图像中的一部分来进行处理,这个过程我们叫做截取检测带,但是检测带内要包含足够的车辆信息,以满足检测精度的需要.检测带的宽度和高度可以根据需要进行设置,从而保证了算法的通用性和灵活性.
检测带的高度:
车辆前后间距在图像上大约为40-50个像素,因此检测带高度应小于40-50行,否则会引起误判.又考虑到检测带的高度决定其内包含的总像素数,将直接影响计算量,因此检测带高度不应过高.另一方面,检测带的高度又不能过小,否则带内包含的车辆信息量太少,易受噪声影响,引起误判.综合考虑以上因素,取高度为20行.如下图
(3)提取检测带的数据流以及对数据流的校正
检测带内留下了车辆的信息,如何对这些车辆进行计数?
如何判断相邻两帧的车辆信息是否是同一辆车?
以图像宽度为800个像素为例,为了减少数据的运算量以及所需存储器的数目,可选取每10个像素宽的信息生成数据流的一个信息位.为此,定义3个长度为80的一维数组a、b、c,分别表示前一帧数据流、当前帧数据流、两帧数据流之差.若检测带的高度为20个像素,则把每个宽10个像素、高20个像素的浮动窗内像素的灰度值进行累加(∑∑g,g为灰度值),如果累加值大于某个设定的阈值,就将对应的数组元素赋值为‘1’,否则赋值为‘0’.这样就得到了当前图像的反映车辆运动信息的数据流
由于邻域比较可能会造成车辆的一部分信息丢失,甚至产生断带,使获得的数据流在有车辆信息的连续‘1’中,会产生毛刺‘0’.因此需要修正数据流,消除毛刺,得到尽可能连续的‘1’
(1)填1:
在两个连续的‘1’段中间产生的毛刺‘0’,其数目与没有车的‘0’数目相比还是很少的,并且与‘1’之间的距离比较小.根据这些特征我们对数据流进行“填1”处理.
(2)填0:
如果上一帧车头部分进入检测带,邻域比较的结果所提取的车辆信息的‘1’的个数不足判断有新车过来,而当前帧车体进入了检测带,虽然邻域比较的结果所提取的车辆信息的‘1’的个数表明有车辆在,但与上一帧相减的结果始终不足计数,从而造成该车漏检.为了解决这种车辆头部小尾部大造成的车辆误判的问题以及有效消除车前灯的影响,可将这些不足判别车辆信息的‘1’抹‘0’.
对于有些车辆由于情况比较复杂,会使相邻两帧的信息变化出现忽多忽少情况,这样就可能出现漏计或误计的现象.为了克服这种现象,利用前后两帧图像相关信息进行修正.
笫27帧信息流:
00000000000000000000000011111111111100000000000000000000000000000000000000000000
第28帧未修正信息流:
00000000000000000000000011111111100000000000000000000000000000000000000000000000
第28帧修正信息流:
00000000000000000000000011111111111100000000000000000000000000000000000000000000
第29帧未修正信息流:
00000000000000000000000011111111100000000000000000000000000000000000000000000000
第29帧修正信息流:
00000000000000000000000011111111111100000000000000000000000000000000000000000000
3.4车辆计数
由于窗口浮动,这给车辆计数带来一定的困难.为此,笔者提出了用检测带内车辆信息的变化规律进行
计数的方法.其原理如下:
如果用当前帧的数据流减去上一帧的数据流则只可能出现4种情况和3种结果:
(1)上一帧某一位置没有车,当前帧对应位置也没有车:
0减0,结果为0;
(2)上一帧某一位置有车,当前帧对应位置也有车:
1减1,结果为0;
(3)上一帧某一位置没有车,当前帧对应位置有车:
1减0,结果为1;
(4)上一帧某一位置有车,当前帧对应位置没有车:
0减1,结果为-11
显然,结果为‘1’,表示有新车辆到来:
结果为‘-1’,表示车辆已离开.利用该结果就可以方便地进行车辆的计数和车速的估算了.其方法如下:
(1)利用数据流上升沿‘1’来进行车辆的计数.
(2)利用上升沿‘1’
和下降沿‘-1’之间的帧数,根据摄像头的拍摄速度和车辆的长度进行车速的估算.(3)由于噪声的存在,数组c里可能会出现较短的连续‘1’段,为此可根据车辆的最小宽度来选取一个阈值,如:
车辆的最小宽度为100个像素,即占数据流信息为10位,就可以选取连续的‘1’段长度大于9计为一辆车.共有多少个连续的、长度大于该选定阈值的‘1’段,就表示新到来了多少辆车.
3.5软件设计
据摄像头的本设计采用MATLAB进行程序编写,部分程序见附录
总结与致谢
本次设计设计的系统具有准确率高的特点,该设计能够正确判断有无车辆的信息,在交通拥塞状况不十分严重、车速不太快(车速≤70km/h)的情况下,该算法对车辆计数的准确率很高。
但该算法要求车辆速度不是太快。
通过本次课程设计,使我对MATLAB有了更深的掌握和理解,巩固了我在《数字图像处理》课程中所学的基本理论知识和实验技能,使我对《数字图像处理》课程有了更深入的了解,进一步激发了我对所学专业学习的兴趣;
在设计的过程和设计说明书的撰写过程中,指导老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。
在此我向老师致以崇高的敬意和衷心的感谢!
参考文献
[1] 许志影,李晋平.MATLAB及其在图像处理中的应用[J].计算机与现代化,2003(4)
[2] 罗军辉,冯平.MATLAB710在图像处理中的应用[M].北京:
机械工业出版社,2005.
[3] 董长虹,赖志国,余啸海.MATLAB图像处理与应用[M].北京:
国防工业出版社,2004.
[4] 王家文,李仰军.MATLAB710图形图像处理[M].北京:
国防工业出版社,2006
附录1
%Movingobjectdetectionver1.02012-10-23
clearall;
closeall;
clc;
%readaavifileinformation,'cartest.avi'为待处理的视频文件,格式为.avi
fileinfo=aviinfo('cartest.avi');
numFrames=fileinfo.NumFrames;
%Toavoidconsumingtoomuchmemories,readonlyaclipof200frameseachtime
clipframes=200;
Clips=floor(numFrames/clipframes);
%Readthefirstframeinthevideosequenceasthereferencebackgroundimage
%在matlab2010版本中,可采用函数mmreader,详见matlab2010help
Fref=aviread('cartest.avi',10);
Iref=Fref.cdata;
%predefinethethreshold
Threh=15;
%Defineastructureelement
se=strel('disk',3);
form=1:
Clips
%Calculatethestartandendframeindexofthem-thmovieclip
startframe=(m-1)*clipframes+1;
ifm==Clips
endframe=numFrames-1;
else
endframe=m*clipframes;
end
%readthem-thmovieclipframesfromeavifile
movclip=aviread('cartest.avi',[startframe:
endframe]);
fork=1:
(endframe-startframe+1)
Icurr=movclip(k).cdata;
%CalculatetheabsolutedifferrenceimagebetweenthecurrentframeIcurr,
%andthereferrenceframeIref.
Idiff=abs(double(rgb2gray(Iref))-double(rgb2gray(Icurr)));
%motionsegment,detectionmovingobjectbythreholdingIdiff
Ifg=Idiff>Threh;
%morphologicalfilteringbyusingIMOPEN,toremovenoiseregion
%inthesegmentedresultimage
Ifg2=imopen(Ifg,se);
figure
(1);
subplot(2,2,1),imshow(Icurr),title('CurrentImage');
subplot(2,2,2),imshow(Ifg),title('ForegroundImage(movingobject)');
subplot(2,2,3),imshow(Ifg2),title('filteredbymorphologicalopeningoperation');
pause(0.01);
end
end
附录2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像课程设计 监控视频中道路车流量检测系统设计 数字图像 课程设计 监控 视频 道路 车流量 检测 系统 设计