2023年12月8日发(作者:新车上市新款2023)
车型轮廓识别
毕 业 论 文
题 目
基于视频图像车型轮廓的车型识别
学生姓名
学 号
专 业
班 级
指导教师
电子信息工程
2013 年 4 月I / 42 车型轮廓识别
摘要
随着经济的高速发展,人们的生活水平也日新月异,越来越多的私家车驰上马路。与此同时,交通拥挤和堵塞问题也变得日益突出,交通事故以及违章现象也是频频发生,车辆管理就显得尤为重要。智能交通系统便是随着科技发展并结合交通管理而产生的,其中车型分类技术是其一个重要分支。本文对其中基于视频图像车型轮廓的识别技术进行了研究和分析,以期实现一个基于车型轮廓的识别系统。
本系统首先将获取的车辆图像进行预处理,通过差分法将车辆分离出来,再提取出车辆的车型轮廓曲线,对曲线进行填充操作以获取完整车辆曲线。通过对曲线进行分析可获取所需汽车特征数据,再与设定好的相关值进行对比分析,利用最近相邻法识别便可得出实验结果。经测试,系统具有较好稳定性和精确性。
关键词:智能交通、车型识别、图像处理、车型分类、MATLAB I 车型轮廓识别
Abstract
With the high development of economy, there has lots of changes
happening in people’s life, for example, an increasing number of private cars
appear。 However, the traffic jam has become a serious problem that has
drawn people’s attention and brought trouble to people’s life. It is common to
see traffic accidents and peccant operation, which shows great importance of
vehicle management。 With the development of the science and traffic
management, ITS came into the market, among which vehicle classification
technique is a significant branch. This thesis is an analysis of Recognition
technology based on the , expecting to realize Recognition system。
In this system, the images of vehicles are at first dealt to separate the
vehicles from others by the difference method, and then the contour lines of the
target car can be received and at last we can get the complete image of the car
by filling lines. We can get the features and statistics of the target through the
analysis of the lines and then compare them to the the relevant numerical value,
and finally get the experimental result by the adjacent method。 After being
tested, Recognition classification is of stability and accuracy。
Keywords: Intelligent Transportation, Vehicle Recognition, Image
Processing, Vehicle Classification, MATLAB II 车型轮廓识别
目录
摘要 ...................................................
I
ABSTRACT ..............................................
II
第一章 绪论 ............................................
1
1。1
课题背景及意义 ............................................. 1
1.2
车型分类系统方法 ............................................ 1
1.2。1轮廓扫描 ............................................... 2
1。2.2车轴检测及其计算 ....................................... 2
1。2。3视频车型识别 .......................................... 3
1.3基于图像识别的车型分类系统研究现状 .......................... 3
1.4
本文的主要研究内容和结构安排 ................................ 4
第二章 所用开发工具简介 ................................
6
2。1
MATLAB
简介 ................................................. 6
2.2
MATLAB安装及优点 ............................................ 6
2.2。1 Matlab安装及注意事项 .................................. 6
2。2.2 Matlab优点 ............................................ 7
2。3
MATLAB
在图像处理的应用 .................................... 8
第三章 图像处理 .......................................
10
3。1
图像处理目的 .............................................. 10
3。2
本系统所用图像处理方法 .................................... 10
3。2.1 图像的灰度化 .......................................... 10
3.2.2 图像的二值化 ........................................... 11
3.2。3 图像复原 .............................................. 12
3。2。4 图像增强 ............................................. 13
3.2.5 图像分割 ............................................... 14
3。2。6 边缘检测 ............................................. 14
3.3
图像处理流程 ............................................... 15
第四章 车辆特征提取 ...................................
16
4.1
车辆特征提取方法 ........................................... 16
4。2
车型的分类 ................................................ 17
4。3
车辆轮廓的提取 ............................................ 17
III 车型轮廓识别
4.3。1 背景差分法 ............................................ 17
4.3。2 滤波与小面积的删除 .................................... 19
4。3。3 目标区域的填充 ....................................... 20
4.4车辆轮廓的识别 ............................................. 21
4.4。1车辆轮廓特征的选取 .................................... 21
4。4。2 特征参数提取 ......................................... 22
第五章 实验结果与处理 .................................
23
5。1
小轿车车型识别 ............................................ 23
5。1.1车型轮廓提取 .......................................... 23
5。1。2车型识别 ............................................. 24
5。2客车车型识别 .............................................. 24
结束语 ................................................
27
参考文献 ..............................................
28
致谢 ..................................................
29
附录 程序表 ..........................................
30
IV 车型轮廓识别
第一章 绪论
1.1 课题背景及意义
随着社会经济的发展,城市现代化水平的提高,交通拥挤、交通安全、环境污染、能源短缺等问题已成为世界各国面临的共同问题。无论是发达国家,还是发展中国家,都毫无例外地承受着不断加剧的交通问题的困扰。近日,中国社科院发布的《中国汽车社会发展报告2012-2013》引起了强烈关注。报告预计,到今年第一季度,中国私人汽车拥有量将破亿,10年左右每百户汽车拥有量将达到或接近60辆。私车过亿,标志着中国汽车大国地位的进一步确立.而汽车大国的身份则是一国经济发展、工业发达和百姓生活质量提高的集中表现。但同时,道路拥堵、空气污染、能源短缺和土地稀缺又使私车的快速增长饱受诟病.管理如此复杂的交通系统若采用传统的方式势必消耗大量的人力、物力、财力,而且效率低下,因此使用智能交通系统来进行辅助管理的方法势在必行.
智能交通系统(ITS,intelligence traffic system)在世界各地迅速推进,已成为现代交通的重要标志.其主要是指在完善的基础设施之上,将先进的信息技术、通信技术、电子技术、控制技术及计算机技术有效的运用于整个运输管理体系,使“人”、“车”、“路”密切地配合、和谐的统一,从而建立起一种在大范围内,全方位发挥作用的实时、准确、高效安全的综合运输管理系统。
车型识别也是智能交通系统中一个重要组成,其原理是根据汽车的外形特点进行图像采集、处理、模式识别,最后得出结果。因为每种型号的汽车都有其独有的特征,这也使得车型识别技术可以快速的发展,并得到广泛的应用:关口检测,停车及收费管理等方面、因此,车型识别技术具有很好的发展前景和极大的市场潜力与社会经济效益。
1.2 车型分类系统方法
要实现自动车辆识别、分类,需要做的第一步是探测、社区车辆的某些特征信息。在车辆的所有特征中,可以用来识别和区分车型的通常有车辆的外形(长、宽、高等)、车辆的轴重或轴距、车辆轴重及总量、车辆号牌、发动机排气量、车辆可以承载的人员 1 车型轮廓识别
数或载重量等。在这些特征中,只有部分可以用于车辆识别和分类,因为其他特征在不停车时难以用仪器测量.常见的车型分类方法主要有以下几种:
1。2.1轮廓扫描
轮廓扫描的目的在于获取车辆的外形信息,从而对车辆进行分类。扫描一般使用无线电波或者红外线,更先进的则使用激光。
无线电波扫描的基本方法是将扫描波束的发射、接收天线安置在车道上方或侧面,他向车道上发射扫描波束.波束传播的区域一般为一个薄平面。此平面与车辆行驶方向垂直。这样,当车辆经过天线照射区域时,他将被波束平面切割,其中车辆与天线大致平行的一个面将反向扫描波束,使反向波在一定时间和空间发生变化.根据反射波的变化,在知道车速前提下,可获得反射波那一面的二维状况,如果再加入一些参照物,便可获得车辆的三维情况。这种自动识别、分类技术目前比较成熟,可靠性较高,易于投入使用.
红外检测技术是利用红外传感器获得机动车辆的车型图像,以车头部分为车辆外形是别的主要依据,并辅以其它部位长度、高度、车轮轴距、前轮距的识别。该系统识别率高,但安装不方便且易损坏。
1。2.2车轴检测及其计算
根据我国公路收费标准及车型分类标准可知:小型车:载重〈2。5t,载客<19人,轴数=2,车高<=210cm;中型车:2.5t〈=载重〈7t,20人<=载客<49人,轴数=2;大型车:载重〉=7t,载客〉=50人,轴数=2;多轴车:轴数>3.
由于一辆车的轴距、轮距和轴数受外界因素的影响小,一旦出场即为一相对固定数值,因此只要测量上述各项数据即可判断、识别车型。
其工作原理:沿道路行车方向的一定距离安装两条轴检测传感器,当车辆经过检测断面时,各轴将依次通过两条传感器,利用车辆第一轴从C1到C2的时间t和距离s,计算行驶速度v;利用第一个轴监测器测量车辆经过时相邻两个轴距之间的时间t1、t2,t3,…,通过公式sn=v*tn(n=1,2,3…)即可测得车辆相邻两轴间的距离。
车轴计数则是对车辆的轴数进行测量,将检测结果作为车辆分类的一个标准,要检 2 车型轮廓识别
测车轴的数量,可以通过传感的方法,也可以通过非接触的控测方法。传感方式一般是在车道上埋设相应的传感器,当车辆经过时,车轮碾压传感器使传感器所受的压力发生变化,根据压力变化的次数,可以判断出车辆的轴数。
1。2.3视频车型识别
视频车型识别即通过视频监视系统实时监视路面状况,并且在视频窗口中开一个小区域,对这个小区域进行实时检测,当该区域数据发生改变,就可以判断汽车的到来。或者通过触发埋设在固定位置的传感器吗,控制CCD摄像头和图像擦机卡对运动车辆的侧面进行图像帧摄取,包括背景图像和运动车辆图像。然后对获取的车辆图像进行图像恢复、图像分割、二值化、边缘提取等一系列的预处理,以滤除干扰和噪声,从而获得车型轮廓,再根据分类器的结构从处理后的图像得到有效的特征参数,输入分类器进行识别.
基于图像车型识别步骤如下:
1) 利用一个CCD传感器和图像采集卡对车辆的侧面图像和正面图像进行抓取,得到车辆外形图像信号;
2) 对车辆图像进行图像恢复、分割、二值化等处理,消除干扰噪声,获取图像边缘信号;
3) 提取车辆轮廓图形和车辆参数;主要有车宽、车长、车高等参数,估算轴距、轮距和轴数的值;
4) 查询车型数据库,判别车型。为了进行车型分类,首先收集各种车辆的参数,然后输入到计算机中的车辆车型数据库,利用计算机的检索功能对分类参数进行优选。根据我国常用车型采用的车辆分类标准,按大型车、中型车、小型车进行分类存储。
1。3基于图像识别的车型分类系统研究现状
基于车辆轮廓识别的车型分类过程主要包括两个阶段:1、从图像中分割出目标车辆;2、提取车辆特征并进行分类。针对第一个阶段的算法主要利用图像序列之间存在的大量相关信息进行车辆区域定位和分割。第二阶段的算法比较多,主要可分为三类:l、简单参数分类法。2、模板匹配法.3、神经网络分类法。主要是涉及车辆特征的提取和 3 车型轮廓识别
分类器的设计,车辆特征的提取会影响到分类的精确性,分类器的设计同样会影响分类的结果。因此,第二阶段针对性的研发出一定成果.
在我国,受日益严峻的交通状况影响,也开始了这方面的研究,中国科学研究院计算所、哈尔滨工业大学、浙江大学、四川大学等高校、研究所均在这一领域做出了相关研究。西安公路交通大学提出激光车距识别系统,将两组激光收发器装于路面,测量车辆的 轴数、轴距、轮胎数和轮距,进行车型识别;中国科学院也提出模糊模式的车型识别方法,主要是应用了线圈感应原理。
在国外,自上世纪70年代便开始进行车型自动识别方面的研究.日本由于自身的地理因素,对该研究投入了大量的人力物力,并取得了很大的成功.如日本立时公司用环形线圈和超声波技术,检测车辆长度、高度和底盘高,进行车型的识别;英国同样采用环形线圈辅以红外线测量轴数和轴距进行车型识别。虽然发展迅速,但是真正具有权威性的设计产品却不多,所以该区域依然具有很强的发展潜力和提升空间.我相信,进过不断的努力,一定可以在该领域取得重大的突破和颠覆性的成果.
1。4 本文的主要研究内容和结构安排
智能交通系统(ITS)是现代交通管理的重要组成部分,车型识别技术作为其中一个重要分支,在城市交通管理等具有广泛的应用前景。本设计在获取的图像基础上,基于MATLAB进行车型的识别。
本系统主要由图像采集部分、图像处理部分、系统识别部分和相关数据库等部分组成。 首先通过CCD摄像机采集车辆图像信息,由于在进行图像采集是难免会受到客观因素的影响,因此所得到实际图像的灰度值往往会与准确值有一定的误差,这种误差势必会影响到后期的处理与识别工作.所以我们必须使用灰度校正的方法,增强灰度的变化范围与层次,从而增强图像的对比度与分辨率,把各种因素造成的误差降至最小。
汽车的体积往往都比较庞大,所以车辆轮廓定位的精准成程度也就直接关系到了后续识别的精准度。这里我们可以采用背景差分算法,即通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法 .这种算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应各种动态环境,稳定性较好。
通过图像的分割、二值化并填充轮廓以后,利用轮廓跟踪的方法得到车辆的边缘轮廓,再根据获取的车辆数据采用最近邻分类法进行车型的识别。
4 车型轮廓识别
该设计结构如图1—1:
图像采集
车辆图像 图像处理 车型识别
背景图像
模板匹配
图1-1 设计结构
5 车型轮廓识别
第二章 所用开发工具简介
2。1 Matlab 简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
其中MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印.它包括强大的二维三维图形函数、图像处理和动画显示等函数。
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言交互的函数库。该函数库的函数通过调用动态链接库实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。
2。2 Matlab安装及优点
2.2。1 Matlab安装及注意事项
安装步骤:
1) 用虚拟光驱软件加载下载的ISO文件;
6 车型轮廓识别
2) 直接在压缩包里点击setup文件进行安装.若出现unknown的错误信息,可如下操作:
a) 右击计算机,选择属性;
b) 在\"高级系统设置\"选项卡中点击”环境变量;
c) 在你自己的用户变量有一个变量名为TEMP,还有一个为TMP.双击TMP的那个,将变量名改为TEMP即可。
3) 按照提示进行下一步,在姓名公司栏可随意填写,若需要PLP码可在压缩包里获取;
4) 剩余步骤只需在一处选择Typical即可,然后就是漫长的等待了。
安装注意事项:
1) 有些操作系统,诸如win7可能会出现运行错误,这时需要在桌面的matlab快捷方式图标右击选属性,在兼容性中选择windows2000,这一步一定要改;
2) 安装出错时,可换注册码继续安装,到同一目录;
3) 安装路径不要有中文名称;
2.2。2 Matlab优点
1) 随着软件的更新,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单;
2) Matlab语言是基于当下较流行的C++语言,因此语法特征较为相似,而且更简单,便于技术人员的操作,该语言可移植性也很好;
3) MATLAB是一个包含大量计算算法的集合.其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能;
4) 不仅在一般数据可视化软件具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力;
5) 新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码;
6) 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接.
7 车型轮廓识别
2.3 MATLAB 在图像处理的应用
MATLAB中的图像处理工具箱几乎包括了经典图像处理的所有方面,从基本的图像增强到图像分割,MATLAB都提供了简便的函数调用来实现许多经典的图像处理方法。数字图像处理工具箱函数包括12类:(1)图像文件操作和显示函数;(2)图像的矩阵表示及运算函数;(3)图像增强函数;(4)图像变换函数(5)图像的空间变换函数;(6)二值形态学操作函数;(7)图像分析和理解函数;(8)其它的一些图像处理函数。另外MATLAB提供了对多种图像文件格式的读写和显示,这使的MATLAB在集成环境中进行图像处理的实验模拟非常方便。
主要有以下应用:
1) 利用MATLAB实现亮度变换;
a) 灰度变化
灰度变换就是对图像像素灰度值进行修正,使图像灰度值动态范围加大,对比度扩展,成像均匀清晰,达到改善图像质量的目的。MATLAB图像处理工具箱提供了灰度调整函数imadjust(),可以将图像的灰度值调整到一个指定的范围;
b) 直方图均衡化
一般情况下,遥感图像灰度分别集中在较窄的区间,从而引起图像细节模糊,为了使图像细节清晰,并使一些目标得到突出,达到增强图像的目的, 可采用直方图均衡化使原图像灰度集中的区域拉 开,使灰度分布均匀,从而增强图像整体对比度,使图像细节清晰,MATLAB图像处理工具箱提供 了生成并绘制图像的直方图函数imhist()和直方图均衡化函数histep()。
2) 利用MATLAB实现空间滤波
在数字图像处理中,常常会遇到图像中混杂有许多的噪声.因此,在进行图像处理过程中,有时需要先进行祛除噪声的工作.最直接的祛除噪声的方 法是用滤波器进行滤波处理,对图像中的像素执行滤波运算时,若对邻域中像素的计算为线性,则应的祛除噪声技术是线性空间滤波技术;否则,称此技术为非线性空间滤波技术.
针对线性空间滤波技术MATLAB图像处理工具箱提供了生成淹模函数fspecial()和实现线性空间滤波函数imfliter();反之,对于非线性,提供了噪声污染图像函数imnoise()和实现非线性空间二维中值滤波函数medfilt()。
3) 利用MATLAB实现频域变换处理
8 车型轮廓识别
图像频域变换方法有傅立叶变换、余弦变换和 小波变换等,在图像增强、图像复原、图像压缩,以 及其它主要实际运用的设计和实现过程中都起着 很重要的作用.MATLAB图像处理工具箱提供了二维离散傅 立叶变换函数fft2()和获取傅立叶频谱函数abs()。
4) 利用MATLAB实现频域滤波
a) 低通滤波器
由于高斯函数的傅立叶变换仍是高斯函数,因此高斯函数能构成一个在频域具有平滑性能的低通滤波器,在频域做乘积来实现高斯滤波.高斯低通滤波器就是为了去掉信号中不必要的高频成分,降低采样频率,避免频率混淆,去掉高频干扰,保持低频分量相对不变,使图像出现模糊现象(平滑)。用MATLAB图像处理工具箱提供的m2()可以 实现低通滤波效果,在work目录下,调用paddedsize。p、dftuv。p和dftfilt.p函数。
b) 高通滤波器
和低通滤波器相反,高通滤波器通过消弱傅立叶变换的低频而保持高频相对不变,会使图像变得更加清晰(锐化)。通常给高通滤波器加上一个偏移量,构成高频强调滤波,再和直方图均衡化结合起来使用,所得到的结果要好于单独使用任何一种方 法所得到的结果。在work目录下,调用lpfilter。p、hpfilter.p和gscale.p函数可以实现高频强调滤波的效果。
9 车型轮廓识别
第三章 图像处理
通过摄像机获取的图像因为各种因素的影响,会造成不同程度的失真,如果利用这种图像进行实验,对结果会产生很大的误差,甚至导致实验的失败。因此,我们需要对图像进行先期的处理,以便后期的实验进行。主要是通过计算机对图像进行去除噪声、复原、分割、特征提取等操作,统称为数字图像处理,其主要是受到了科学技术及数学的发展和林业、农业、工业等行业的要求而快速发展的技术。
3。1 图像处理目的
1) 提高图像的视感质量,如进行图像的亮度、彩色变化、增强、抑制某些成分,对图像进行几何变化等以改变图像的质量;
2) 提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是模式识别或计算机视觉的预处理.提取的特征可以包含多个方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征拓扑特征和关系结构等;
3) 图像数据变化、编码和压缩,以便于图像的处理和压缩。
3。2 本系统所用图像处理方法
该系统用于将模拟图像信号转换为计算机可以识别的数字形式,以及把数字图像显示和表现出来.这一过程包括图像的获取,光电转化和数字化等步骤。在车型识别中图像的获取分为静态和动态,其中动态的获取是指通过摄像机进行获取,并对其进行处理进而用于车型识别.
图像的预处理包括几个方面:图像的灰度化、图像的二值化、图像复原、图像增强、图像分割、边缘检测。
3.2.1 图像的灰度化
颜色可分为黑白色和彩色,在RGB模型中,如果R=G=B时,则彩色表示一种灰度 10 车型轮廓识别
颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般有以下三种方法对彩色图像进行灰度化:
1) 最大值法:使R,G,B的值等于3值中最大的一个,即 R=G=B=max(R,G,B),最大值法会形成亮度很高的灰度图像;
2) 平均值法:使R,G,B的值求出平均值,即 R=G=B=(R+G+B)/3,平均值法会形成比较柔和的灰度图像;
3) 加权平均值法:根据重要性或其他指标给R,G,B赋予不同的权值的值加权平均并使R,G,B即 R=G=B=(WrR + WgG + WbB)/3 其中Wr,Wg,Wb分别为R,G,B的权值。Wr,Wg,Wb取不同的值,加权平均值法就形成不同的灰度图像。由于人眼对绿色的敏感度最高,红色次之,对蓝色最低,因此使Wg>Wr>Wb将得到比较合理的灰度图像.实验和理论推导证明,但Wr = 0.30,Wg
=0.59,Wb=0.11时,即当Vgray=0。30R + 0。59G + 0.11B, R=G=B= Vgray(2-6 ) 时,能得到最合理的灰度图像。
灰度图与原图对比如图3—1:
图 3—1 灰度化图像
3。2.2 图像的二值化
图像二值化就是将图像上的像素点的灰度值设置成0或255,也就是将整个图像呈现出明显的黑白效果。
将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像.在数字图像处理中,二值图像占有非常重要的地位,首先, 11 车型轮廓识别
图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓.其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。
所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。
本设计正是利用这种特性将目标图像从图片中分离出来,根据阈值选取的不同,二值化的算法分为固定阈值和自适应阈值。 比较常用的二值化方法则有:双峰法、P参数法、迭代法和OTSU法等。
二值化图像如图3—2:
图3—2 二值化图像
3.2.3 图像复原
在图像的获取、传输以及保存过程中,由于各种因素,如大气的湍流效应、摄像设备中光学系统的衍射、传感器特性的非线性、光学系统的像差、成像设备与物体之间的相对运动、感光胶卷的非线性及胶片颗粒噪声以及电视摄像扫描的非线性等所引起的几何失真,都难免会造成图像的畸变和失真.通常,称由于这些因素引起的质量下降为图像退化。
12 车型轮廓识别
图像退化的典型表现是图像出现模糊、失真,出现附加噪声等.由于图像的退化,在图像接受端显示的图像已不再是传输的原始图像,图像效果明显变差。为此,必须对退化的图像进行处理,才能恢复出真实的原始图像,这一过程就称为图像复原.
图像复原需要首先建立特定的图像退化模型,但因为造成退化的原因众多,给复原带来了很大的难度目前仍没有统一的复原方法,该设计使用的都是静态图像,具有很高的识别度,因此不需要图像复原,在此仅作介绍。
3.2.4 图像增强
图像增强是增强图象中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。
图像增强处理是数字图像处理的一个重要分支。很多由于场景条件的影响图像拍摄的视觉效果不佳,这就需要图像增强技术来改善人的视觉效果,比如突出图像中目标物体的某些特点、从数字图像中提取目标物的特征参数等等,这些都有利于对图像中目标的识别、跟踪和理解.图像增强处理主要内容是突出图像中感兴趣的部分,减弱或去除不需要的信息.这样使有用信息得到加强,从而得到一种更加实用的图像或者转换成一种更适合人或机器进行分析处理的图像。在交通应用中,主要对大雾天气图像进行增强,加强车牌、路标等重要信息进行识别.
图像增强如图3-3:
图3-3 图像伪彩色增强
13 车型轮廓识别
3.2。5 图像分割
图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,因为他们需要从图像中提取出来的信息。例如,可以对图像的灰度级设置门限的方法分割。
值得提出的是,没有唯一的标准的分割方法。许多不同种类的图像或景物都可作为待分割的图像数据,不同类型的图像,已经有相对应的分割方法对其分割,同时,某些分割方法也只是适合于某些特殊类型的图像分割。分割结果的好坏需要根据具体的场合及要求衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对图像的理解。
现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。近年来,研究人员不断改进原有的图像分割方法并把其它学科的一些新理论和新方法用于图像分割,提出了不少新的分割方法。
3。2.6 边缘检测
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化. 这些包括深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类.基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向.基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
对于车辆图像来说,边缘特征往往是车辆的轮廓线。图像的边缘检测能够使图像的轮廓更突出,将待测的图像特征更加清晰的表现出来,是一种重要的区域图像处理技 14 车型轮廓识别
术.边缘检测算子包括sobel算子、Prewitt算子、Roberts算子和earmy算子等。
3。3 图像处理流程
图像预处理如图3—4所示:
开始
边缘检测
获取图像
图像灰度化
图像二值化
图像分割
特征提取
车型识别
结束
图3—4 预处理流程
15 车型轮廓识别
第四章 车辆特征提取
特征提取是车型识别的难点和重点,特征提取的质量,关系到识别和分类的速度和准确度。通常各类汽车的车身侧视图可提供整个车长、顶篷位置、顶篷长度及车辆高度等信息.车型图像经过边缘提取和二值化后,边缘成了由像素组成的连续曲线.对于车辆轮廓而言它们是一个不规则的多边形。本文仅按汽车的外观对汽车车型进行大致分类,即可分为轿车、客车和货车三类。
通过对这三类车车型的统计分析,选取的特征参数是:以车辆顶长作中垂线分下底长的前后比例数、顶长等作为参数,提取出特征参数,用于车型的识别。利用小孔成像的原理,推算出长和车高。
4.1 车辆特征提取方法
特征值的提取是车型识别中最重要的,不能只从理论角度,而且要充分考虑车辆特征的具体情况。通过对车辆车型图像的提取和变化,得到一组能真正反映车辆信息的特征值。提取特征值是要考虑到:一是特征能够较容易的从图像中获取,二是所选取的特征能够有利于分类.
特征提取一般有两种方法:一种是根据某些原理进行提取,比如把同一识别对象在不同波段的摄像得到的灰度作为它的特征;另一种就是对待识别的图像的各种特征充分理解,然后转化为文字或数值来识别。
对于特征提取,从技术角度讲当然是特征参数越多识别越精确,但是从实际角度说,要快速精确的识别车型,一些冗余的信息就可以不考虑,同时还要满足以下条件:
1) 区别性,不同的车型特征值一般有较大的差异;
2) 相似性,对于相同的车型其特征值一般较为相似;
3) 简单性,特征值越多,车型识别系统越复杂,一般尽量选取少量特征值。
以上三个特点,区别性是其中的基础,是特征值选取的关键,相似性则是为了保证识别的准确性,简单性是为了识别的速度。
16
车型轮廓识别
4。2 车型的分类
在目前的分类标准中,最常用的就是依照车型的大小将车辆分为大型、中型、小型车,这样的划分标准需要检测车辆的实际几何尺寸,从而对摄像头与被拍摄车辆之间的距离和角度提出了严格的要求,从而导致这种方法在现实中实现是非常困难的;本设计是将汽车分为轿车、客车和货车三类,分类标准如下表4-1:
表4-1 车型分类
分类
轿车
客车
货车
长度
<6m
6-9m
>9m
宽度
〈2.1m
2。1—2.7m
〉2。7m
长宽比
2.55
2。70
2.85
4。3 车辆轮廓的提取
从图像序列中分割出完整的车辆图像是进行车型分类的第一步,车辆图像质量的好坏直接影响到后续的特征提取和分类的准确率.由于车辆的类型繁多,没有一种固定的颜色或纹理模式,这使得直接采用区域分割方法变得非常困难;而且由于摄像头和被拍摄车辆之间的相对位置会发生变化,因此目标车辆在图像中出现的位置及其大小都是无法预知的,这也增加了目标车辆区域提取的难度;此外,由于光照、阴影等干扰,背景可能存在变化,这也是提取车辆区域时要面对的问题.下面首先讨论如何从任意背景中提取车辆区域。
4.3。1 背景差分法
利用连续的拍摄手法得到两幅图像,一副车辆图像(图4-1),一副背景图像(图4—2),理论上讲两幅图除目标车辆的区域外灰度值应该是完全一致的:
17 车型轮廓识别
图4—1 车辆图
图4-2 背景图
两张图进行差分运算可以得到结果图4—3:
图4-3 差分图
18 车型轮廓识别
由图可以看到目标车辆区域存在大量的背景干扰,这是由于配准运算存在一定的误差,并且由于光照变化的原因,两幅图像中的背景灰度值并不完全一致.
4.3。2 滤波与小面积的删除
前面我们看到,经过差分运算之后的目标图像出现了大量的噪声,应此我们可以用滤波的方法对图像进行去噪并且在想办法删去图像中的小面积对象。本文在第二章中曾经将到过中值滤波去噪的方法,中值滤波是用局部区域灰度值的平均值来代替区域中心点的灰度值,因此中值滤波并不能真正去除噪声,而是将某点噪声强度分摊到邻域内其他像素点上.根据实际的实验结果,直接采用中值滤波等常用滤波算法,虽然噪声很大程度上被弱化,但目标车辆区域也会被模糊.所以我们还需要对滤波以后的图像进行小面积对象的删去,以达到最佳的效果,处理后的结果如图4—4、4—5:
图4-4 滤波
图4-5 删除小面积
19 车型轮廓识别
4.3。3 目标区域的填充
经过噪声滤波后,背景中的噪声已完全消除,只剩下目标车辆区域。但此时目标车辆的轮廓并不完整,区域内存在孔洞,无法直接提取车辆特征,应此需要对图像做填充以形成完整的车辆区域。
1) 横向填充
对每一行进行扫描,如果在某行从左向右遇到第一个灰度值为1的像素点,即白色像素点,记下其行下标X1;然后在同一行从右向左寻找第一个灰度值为1的像素点,记下其行下标置X2;最后把同一行两个白色像素点X1和X2之间的所有像素点的灰度值设为1。
2) 纵向填充
对每一列进行扫描,如果在某列从左向右遇到第一个灰度值为1的像素点,记下其列下标Y1;然后在同一列从右向左寻找第一个灰度值为1的像素点,记下其列下标Y2;最后,把同一列两个白色像素点之间的所有像素点的灰度值设为l。
横纵向填充后如图4—6:
图4-6 横纵向填充
到了这一步,车型轮廓基本上完全被提取出来,只需要对该轮廓图像进行测量,得到所需的长、宽数据,便可依据其比例关系确定车型。
20 车型轮廓识别
4。4车辆轮廓的识别
在提取了车辆轮廓以后,就要开始进行进一步的识别,即车辆特征的提取.在前文中介绍了车型的分类及其标准,根据所需的特征参数进行车型轮廓识别。
4.4。1车辆轮廓特征的选取
车型的识别,最基本的方法就是根据汽车的外形进行判断,几种比较常见的车型图如下表4—2所示:
表4-2 车型分类
车辆外形
轿车
车辆分类
客车
货车
由上表可以根据所得车型轮廓进行车型识别的预处理,若实验结果与处理结果不一致,可以进行分析处理。由摄像机拍摄的车辆侧边图有时可能造成客车和货车的车辆特征相似,这是便需要借助其他特征参数进行车辆的识别,一般采用车长、车高比或车辆的轴距也可。
21 车型轮廓识别
4.4。2 特征参数提取
以上讨论只是对提取出的车辆轮廓有了一定的认识,但只是对车型轮廓进行了一个大概的分类,它只能反映车辆局部的特征而不能有效地体现出车辆整体的外形特征,因此我们将对车辆的长度与高度进行计算,以达到最佳的识别效果.
以一组平行线束从不同的角度对图像进行扫描,记录平行线穿过目标区域部分的长度,扫描的角度越多,对图像的形状描述就越精确,对车型分类系统来说,不需要从形状参数中精确地恢复出车辆的形状,只需区分三种不同的形状,因此只需要从一个角度对车辆进行扫描,沿平行于纵坐标的方向,令一组平行线束穿过车辆图像区域,计算每条线处于车辆区域内部分的长度,这样就得到一组车辆形状特征参数。在进行操作时,上述方法相当于将车辆图像投影到横坐标上,然后在投影上确定车辆的头尾位置,最后在车头和车尾之间选择若干点,投影在这若干个点上的值即为车辆的形状特征参数。
接下来需要检测车辆的长度、宽度和轴间距。上述的垂直投影法可得到车辆的长度信息,即将车头位置坐标减去车位置坐标:与之类似,通过水平投影可计算出车辆的高度信息.依照长度、高度及其比例与设定的标准进行比较,取与标准特征相邻最近最近的特征信号,便可得出待测车型。总之,车型识别就是一个获取特征与特征比较的过程。
22 车型轮廓识别
第五章 实验结果与处理
本设计的车型识别分类主要有三类:轿车、客车、货车,对于这三种车型的分类操作基本相同,主要有图像的预处理、车辆特征的提取及车型的识别分类。以小轿车为例:
5。1 小轿车车型识别
首先获取小轿车的车型原图及背景图,如上图4—1、4—2所示。经过预处理之后,可以得到填充过后的图像,便可进行测量识别。
若得到的图像其车辆影子与车辆图像混杂在一起,造成这一情况的原因可能是原图是彩色图像,在预处理时没有进行灰度化处理,而程序识别的像位是255位,由此造成了误差。
一般对图像进行预处理是容易遇到图片打不开的情况,这时需要检查一下图片的格式是不是符合程序的要求,若还是无法打开,则可以检查图片位数。
5.1。1车型轮廓提取
对差分图像进行与处理以后得到车型轮廓图如图5—1所示:
图5-1 车型轮廓
在进行图像的选取时,应尽量避免选取车身颜色与背景色相近的图像,这样容易造 23 车型轮廓识别
成特征提取的错误,影响识别结果。若产生车身与背景色的混杂,可以采取腐蚀将噪声点消除,便于下一步测量。
5.1.2车型识别
提取出车型轮廓并得到所需数据以后,便可通过车型识别系统进行车型的识别,经过程序运行,得出识别结果,可以得到所测车辆的车型及其实际长和高识别结果如表5-1:
表5—1 识别结果
车型:小轿车
L1 = 0。0600
H1 = 0.0056
L = 1。5780
H = 0。3985
5。2客车车型识别
客车原图如图5—3:
图5—2 客车原图
对图像进行差分提取,进行预处理操作,包括中值滤波、二值化、图像增强等。其中中值滤波用于消除图片中的噪声,以便之后操作顺利进行。中值滤波图像及二值化图 24 车型轮廓识别
像如图5—4:
图5—3 预处理图像
经过一系列预处理提取出车型轮廓,通过扫描处理,可以得到得到车辆的车长及所需比例系数,根据这些数据,可以通过公式得出相应结果,再根据小孔成像原理得出实际车长、车宽。结果如表5-2:
25 车型轮廓识别
表5-2 实验结果
车型:客车
L1 = 0.0621
H1 = 0。0166
L = 1.6337
H = 0.6863
26 车型轮廓识别
结束语
从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。那种感觉就宛如在一场盛大的颁奖晚会上,我在晚会现场看着其他人一个接着一个上台领奖,自己却始终未能被念到名字,经过了很长很长的时间后,终于有位嘉宾高喊我的大名,这时我忘记了先前漫长的无聊的等待时间,欣喜万分地走向舞台,然后迫不及待地开始抒发自己的心情,发表自己的感想。这篇毕业论文的就是我的舞台。
由于时间关系,系统功能实现不够完善,使用不是很方便,比如,对于一些非常规车型没有识别的能力;对于图片的规格要求比较高,存在误差是便不能够正常的识别;识别时间还是有些长。这些都是需要完善的地方,该系统离成熟也还有一定的距离,需要我进行不断地补充和完善。
通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
27 车型轮廓识别
参考文献
【1】 王家文﹒。Matlab7.6图形图像处理﹒2009 ﹒北国防工业出版社;
【2】 周建兴、岂兴明、矫津毅、常春藤﹒Matlab从入门到精通﹒2008﹒人民邮电出版社;
【3】 李刚﹒Matlab函数速查手册﹒2011﹒清华大学出版社;
【4】 于万波﹒基于MATLAB的图像处理﹒2008﹒清华大学出版社;
【5】 范力南、韩晓微、张广渊﹒图像处理与模式识别﹒2007﹒科学出版社;
【6】 于殿泓﹒图像检测与处理技术﹒2006﹒西安电子科技大学出版社;
【7】 章毓晋﹒图像处理和分析技术﹒2008﹒高等教育出版社;
【8】 张洪刚、陈光、郭军﹒图像处理与识别﹒2006﹒人民邮电出版社;
【9】 景晓军﹒图像处理技术及其应用﹒2005﹒国防工业出版社;
【10】 王永龙、张兆忠、张桂红﹒MATLAB语言基础及应用﹒2010﹒电子工业出版社;
【11】 欧冬秀.交通信息技术。2007,同济大学出版社
【12】 (加)帕科尔(J。 R。 Parker)。 图像处理与计算机视觉算法及应用。2012,清华大学出版社;
【13】 许丽佳、穆炯。MATLAB程序设计及应用。2011,清华大学出版社;
【14】 刘同娟、郭键、刘军.MATLAB建模、仿真及应用。2009.中国电力出版社;
【15】 陈刚、于丹、吴迪。MATLAB基础与实例进阶。2012,清华大学出版社;
【16】 张贤明.MATLAB语言及应用案例.2010,东南大学出版社;
【17】 张德丰.MATLAB模糊系统设计.2009.国防工业出版社;
【18】 朱习军.MATLAB在信号与图像处理中的应用。2009.电子工业出版社;
28
车型轮廓识别
致谢
我要感谢,非常感谢我的导师周爱军老师。他为人随和热情,治学严谨细心。在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,周老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨、热忱鼓励.正是周老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢周老师.
当然还要感谢我的同学们,因为老师总会有自己的事情,不可能一直在我的身边进行指导教学,这时,遇到问题的我只能求助于身旁的同学们,大家也给予了我很大的帮助,正是你们的无私,我才能一步步完成我的毕业论文,非常感谢。
最后感谢所有参与我论文评审的老师们,感谢你们抽出宝贵的时间评审我的论文,并提出宝贵意见,我一定虚心接受,你们的教导就是对我的帮助.
29 车型轮廓识别
附录 程序表
i=imread(’1。JPG’); %读入图象
j=imread(’’);
figure;imshow(i);title(\'车原图象’);
figure;imshow(j);title(\'大街背景’);
i1=rgb2gray(i); %把彩色图转换成灰度图
j1=rgb2gray(j);
i2=medfilt2(i1,[2,2]);
j2=medfilt2(j1,[2,2]);
z=imsubtract(j2,i2);
z=double(z);
figure,imshow(z);
zmax=max(max(z));
zmin=min(min(z));
tk=(zmax+zmin)/2;
bcal=1;
zsize=size(z);
while(bcal)
ifore=0;
iback=0;
isum=0;
backsum=0;
for i=1:zsize(1)
for j=1:zsize(2)
tmp=z(i,j);
if (tmp>=tk)
ifore=ifore+1;
isum=isum+double(tmp);
30 车型轮廓识别
else
iback=iback+1;
backsum=backsum+double(tmp);
end
end
end
zo=isum/ifore;
zb=backsum/iback;
tktmp=uint8((zo+zb)/2);
if(tktmp==tk)
bcal=0;
else
tk=tktmp;
end
end
z1=im2bw(z,double(tk)/255);
figure,imshow(z1);
z2=medfilt2(z1,[7,7]);
z3=bwareaopen(z2,200);
figure,imshow(z3);
zsize=size(z3);
for i=1:zsize(1)
n=0;
x=zeros(1,400);
y=1;
for j=1:zsize(2)
if(z3(i,j)==1)
x(1,y)=j;
y=y+1;
31
%横向填充 车型轮廓识别
n=n+1;
liebiao=j;
end
end
if((n〉=100)&&(liebiao—x(1,1)〉150))
for m=x(1,1):liebiao
z3(i,m)=1;
end
end
end
z8=bwareaopen(z3,1000); %删除二值图像中小面积的部分
figure;imshow(z8);
z4=medfilt2(z8,[5,5]);
zsize=size(z4); %纵向填充
for j=1:zsize(2)
n=0;
x=zeros(600,1);
y=1;
for i=1:zsize(1)
if(z4(i,j)==1)
x(y,1)=i;
y=y+1;
n=n+1;
hangbiao=i;
end
end
if((n〉=10)&&(hangbiao—x(1,1)>50))
for m=x(1,1):hangbiao
32 车型轮廓识别
z4(m,j)=1;
end
end
end
figure,imshow(z4);
perim=bwperim(z4); %提取车型轮廓
figure,imshow(perim);
zsize=size(z4); %扫描汽车顶部
for i=1:zsize(1)
n=0;
y=1;
x=zeros(1,500)
for j=1:zsize(2)
if(z4(i,j)==1)
x(1,y)=j;
y=y+1;
n=n+1;
liebiao=j;
end
end
if((liebiao-x(1,1)==(n—1))&&(n〉60))
a1=i;
b1=x(1,1);
b2=liebiao;
break;
end
end
for k=1:(a1—1)
33 车型轮廓识别
for j=1:zsize(2)
z4(k,j)=0;
end
end
zsize=size(z4); %扫描汽车底部
for i=zsize(1):—1:1
n=0;
y=1;
x=zeros(1,500);
for j=1:zsize(2)
if(z4(i,j)==1)
x(1,y)=j;
y=y+1;
n=n+1;
liebiao=j;
end
end
if((liebiao-x(1,1)==(n—1))&&(n>80))
a2=i;
break;
end
end
for k=zsize(1):-1:(a2+1)
for j=1:zsize(2)
z4(k,j)=0;
end
end
zsize=size(z4); %扫描汽车最左边
34 车型轮廓识别
for j=1:zsize(2)
n=0;
y=1;
x=zeros(500,1);
for i=1:zsize(1)
if(z4(i,j)==1)
x(y,1)=i;
y=y+1;
n=n+1;
hangbiao=i;
end
end
if ((hangbiao-x(1,1)==(n—1))&&(n>40))
a3=x(1,1);
b3=j;
break;
end
end
for k=1:(b3—1)
for i=1:zsize(1)
z4(i,k)=0;
end
end
zsize=size(z4); %扫描汽车最右边
for j=zsize(2):-1:1
n=0;
y=1;
x=zeros(500,1);
for i=1:zsize(1)
35 车型轮廓识别
if(z4(i,j)==1)
x(y,1)=i;
y=y+1;
n=n+1;
hangbiao=i;
end
end
if ((hangbiao—x(1,1)==(n—1))&&(n〉40))
b4=j;
a4=x(1,1);
break;
end
end
for k=zsize(2):-1:(b4+1)
for i=1:zsize(1)
z4(i,k)=0;
end
end
d=b2—b1; %识别判断车型
f=b4—b3;
t=b1+d/2;
t1=t—b3;
t2=b4—t;
c1=min(t1,t2);
c2=max(t1,t2);
if((c1/c2)<0.55)
disp([char(6),’客车\'])
else
if(0。85<(d/f)〈1。15)
36 车型轮廓识别
disp([char(6),\'小轿车’])
else
disp([char(6),\'货车’])
end
end
jiaoju=0.266; %计算汽车实际长和高
wuju=7;
L1=(0。2709/768)*(b4-b3)
H1=(0。2032/576)*(a2—a1)
L=L1*wuju/jiaoju
H=H1*wuju/jiaoju+0.25
37
更多推荐
图像,车辆,车型,进行
发布评论