《基于Matlab地车牌识别系统设计论文【完整~】.doc》由会员分享,可在线阅读,更多相关《基于Matlab地车牌识别系统设计论文【完整~】.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#*中国矿业大学中国矿业大学模式识别模式识别-基于基于 matlabmatlab 的车牌识别系统设计的车牌识别系统设计指导教师指导教师: : 梁志贞梁志贞 周世斌周世斌姓姓 名:名: 田田 凯凯 班班 级:级: 信科信科 10-110-1 班班 学学 号:号: 0 08 81 10 03 34 47 76 6 时时 间间: :二二一三年六月一三年六月1目录目录1 绪论 .11.1 车牌号识别研究背景 .1 1.2 车牌号识别技术研究现状和趋势 .2 1.3 车牌识别研究内容 .42 车牌识别系统设计原理概述 .63 车牌识别系统程序设计 .83.1 图像读取及车牌区域提取 .8 3.2 字符切
2、割 .15 3.3 字符识别.194 仿真结果及分析 .224.1 车牌定位及图像读取及其图像处理 .22 4.2 车牌字符分割及其图像处理 .22 4.3 车牌字符识别及其图像处理 .235 结论 .24附录:程序清单 .2721 1 绪论绪论1.11.1 车牌号识别研究背景车牌号识别研究背景随着我国公路交通事业的发展,车辆的数量正在迅速增长,在给出行提供方便的同时,车辆管理上存在的问题日益突出,人工管理的方式已经不能满足实际的需要。微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。作为信息来源的自动检测、图像识别技术越来越受到人们的重视。近年来计算机的飞速发展和数字图像技术
3、的日趋成熟,为传统的交通管理带来巨大转变,先进的计算机处理技术,不但可以将人力从繁琐的人工观察、监测中解放出来,而且能够大大提高其精确度,汽车牌照自动识别系统就是在这样的背景与目的下进行开发的。汽车牌照等相关信息的自动采集和管理对于交通车辆管理、园区车辆管理、停车场管理、交警稽查等方面有着十分重要的意义,成为信息处理技术的一项重要研究课题。车牌识别的难点:1)由于车牌图像多在室外采集,会受到光照条件、天气条件的影响,会出现图像模糊,对比度低,目标区域过小,色彩失真等影响,并且会伴随复杂的背景图像,这些都会影响车牌定位及识别。2)每次采集时目标所处位置不会一样,采集视角会有很大变化,并且由于车牌
4、挂的不正,都将导致车牌出现扭曲。3)牌照多样性。其他国家的汽车牌照格式,如尺寸大小,牌照上字符的排列等,通常只有一种。而我国则根据不同车型、用途,规定了多种牌照格式,例如分为军车、警车、普通车等。我国标准车牌照是由汉字、英文字母和阿拉伯数字组成的,汉字的识别与字母和数字的识别有很大的不同,增加了识别的难度。4)我国汽车牌照的底色和字符颜色多样,蓝底白字、黄底黑字、黑底白字、红底黑字、绿底白字等多种。5)由于环境、道路或人为因素造成汽车牌照污染严重,这种情况下国外发达国家不允许上路,而在我国仍可上路行驶。使得车牌的对比度降低,特征不是很明显,即使在定位准确的情况下,字符的识别也会受到很大影响。3
5、目前在国内存在多种牌照格式,且存在以上种种困难和特殊性,加大了我国车牌自动识别的难度,使得中国车辆牌照识别远远难于国外的车辆牌照识别。因而如何提高识别率和识别处理的实时性及实用性成了一个紧要的任务。1.21.2 车牌号识别技术研究现状和趋势车牌号识别技术研究现状和趋势1.2.11.2.1 国内外车牌识别技术情况及我国车牌特点国内外车牌识别技术情况及我国车牌特点目前我国有普通地方车牌号、武警车牌号、军队车牌号三种类型,普通地方车牌号又叫自选号牌车牌(如图 1 所示),自选号牌车牌尺寸是,即车520 122.5MM牌长宽比为 4.5:1,一共 7 个字符,每个字符的高宽比为 2:1。首个字符为中文
6、字符,为各个省或直辖市的简称,第二个字符为英文大写字符,前两个字符确定该车牌所在地,后五个字符由阿拉伯数字及英文大写字符组合而成,并且后五个字符间距相同,七个字符大小也相同。图 1.1 我国车牌号示例1.2.21.2.2 车牌识别技术的应用前景车牌识别技术的应用前景车辆牌照自动识别技术是智能交通系统的一个重要组成部分,广泛应用于交通的监控及管理。车辆牌照识别系统技术能够从一幅车辆图像中准确定位出车牌区域,然后经过字符切割和识别实现车辆牌照的自动识别。目前车牌识别系统主要应用于以下领域:41)停车场管理系统。利用车牌识别技术对出入车辆的号牌进行识别和匹配,与停车卡结合实现自动计时、计费的车辆收费
7、管理系统。2)公路自动管理系统。以车牌自动识别技术为基础,与通信等其他高科技结合,对高速公路交通流状况进行自动监测、自动布控,从而降低交通事故的发生率,确保交通顺畅。3)安防布控。采用车牌识别技术实现对车辆的自动识别,快速报警,既可以有效查找被盗车辆,同时又为公安机关提供了对犯罪嫌疑人的交通工具进行远程跟踪与监查的技术手段。4)城市十字交通路口的“电子警察”。可以对违章车辆进行责任追究,也可以辅助进行交通流量统计,交通监测和疏导。5)小区、校园车辆管理系统。社区保安系统将出入的车辆通过车牌识别技术进行记录,将结果与内部车辆列表对比可以实现防盗监管。1.31.3 车牌识别研究内容车牌识别研究内容
8、车牌系统是计算机视觉和模式识别技术在智能交通领域的重要应用课题之一。车牌识别系统是一特定目标位对象的专用计算机系统,该系统能从一幅图像中自动提取车牌图像、自动分割自符,进而对分割自符的图像进行图像识别。系统一般由硬件和软件构成。硬件设备一般由车体感应设备、辅助光源、摄像机、图像采集卡和计算机。软件部分是系统的核心,主要实现车牌自符的识别功能。车牌识别学科主要有模式识别、人工智能、图像处理、计算机视觉和信号处理等。这些领域的许多技术都可以应用到车牌识别系统中,车牌识别技术的研究也必然推动这些相关学科的发展。车牌识别的关键技术有:车牌定位、字符切割和字符识别等。车牌定位是要完成从图像中确定车牌位置
9、并提取车牌区域图像,目前常用的方法有:基于直线检测的方法、机遇与域值化的方法、基于灰度边缘检测方法、基于彩色图像的车牌分割方法、神经网络法和基于矢量量化的牌照的定位的方法等。字符切割时完成车牌区域图像的切分处理从而得到所需要的单个字符图象。目前常用的方法有:基于投影的方法和基于连通字符的提取等方法。字符识别是利用字符识别的原理识别提取出的字符图像,目前常用的方法有:基于模板匹配的方法、基于特征的方法和神经网络法等。52 2 车牌识别车牌识别系统设系统设计原理计原理概述概述一个完整的车牌号识别系统要完成从图像采集到字符识别输出,过程相当复杂,基本可以分成硬件部分跟软件部分,硬件部分包括系统触发、
10、图像采集,软件部分包括图像预处理、车牌位置提取、字符分割、字符识别四大部分,一个车牌识别系统的基本结构如图2.1所示:原始 图像图像 预处 理车牌 位置 提取字符 分割字符 识别输出 结果图 2.1 车牌识别系统基本结构框图一:原始图像:由停车场固定彩色摄像机、数码相机或其他扫描装置拍摄到的图像。二:图像预处理:对动态采集到的图像进行滤波,边界增强等处理以克服图像处理。三:车牌位置提取:通过运算得到图像的边缘,再计算边缘图像的投影面积,寻找谷峰点以大概确定车牌的位置,再计算连通域的宽高比,剔除不在阈值范围内的连通域,最后便得到了车牌区域。四:字符分割:利用投影检测的字符定位分割方法得到单个的字
11、符。五:字符识别:利用模板匹配的方法与数据库中的字符进行匹配从而确认出字符。六:输出结果:得到最后的汽车牌照,包括汉字、字母和数字。车牌号图像识别要进行牌照号码、颜色识别 。为了进行牌照识别,需要以下几个基本的步骤:a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。6牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。(1)牌照定位:自然环境下,由于汽车图像背景复杂、光照不均匀等原因,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。一般采用的方案是首
12、先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。通过以上步骤,牌照一般能够被定位。(2)牌照字符分割 :在完成牌照区域的定位后,还需要将牌照区域分割成单个字符,然后进行字符识别,最后输出结果。字符分割一般采用垂直投影法。垂直投影法的原理是由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。所以利用垂直投影法对复杂环境下的汽车图像的字符分割有较好的效果。(3)牌照字符识别:字
13、符识别方法目前主要得算法有两种即基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。实际应用中,牌照识别系统的识别率与牌照质量和拍摄质量密切相关。牌照质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、牌照被遮挡、牌照倾斜、高亮反光、多牌照、假牌照等等;实际拍摄过程也会受到环境亮度、拍摄
14、亮度、车辆速度等等因素的影响。这些影响因素不同程度上降低了牌照识别的识别率,也正是牌照识别系统的困难和挑战所在。为了提高识别率,除了不断的完善识别算法,还应该想办法克服各种光照条件,使采集到的图像最利于识别。73 3 车牌识别系统程序设计车牌识别系统程序设计3.13.1 图像读取及车牌区域提取图像读取及车牌区域提取图像读取及车牌区域提取主要有:图像灰度图转化、图像边缘检测、灰度图腐蚀、图像的平滑处理以及车牌区域的边界值计算。其程序流程图如下:输入车牌图象灰度校正平滑处理提取边缘图 3.1 预处理及边缘提取框图目前比较常用的图像格式有*.BMP、*.JPG、*.GIF、*.PCX、*.TIFF
15、等,本课题采集到的图片是*.JPG 的格式。因为使用*.JPG 图像时有一个软件开发联合会组织制定、有损压缩格式,能够将图像压缩在很小的储存空间,而且广泛支持 Internet 标准,是面前使用最广的图片保存和传输格式,大多数摄像设备都以*.JPG 格式保存。利用图像工具箱的Car_Image_RGB=imread(Image_Name);即可将图像读取出来,这样读取得到的是 RGB 图像,RGB 图像分别用红、绿、蓝三个色度值为一组代表每个像素的颜色,因此 Car_Image_RGB 是一个的数组,3mn m、n 表示图像像素的行、列数。83.1.13.1.1 图像灰度图转化图像灰度图转化我
16、国车牌颜色及其 RGB 值如下,蓝底(0,0,255)白字(255,255,255)、黄底(255,255,0)黑字(0,0,0)、黑底(0,0,0)白字(255,255,255)、红底(255,0,0)黑字(0,0,0),由于车牌的底色不同,所以从 RGB 图像直接进行车牌区域提取存在很大困难,但不管哪种底色的车牌,其底色与上面的字符颜色的对比度大,将 RGB 图像转化成灰度图像时,车牌底色跟字符的灰度值会相差很大。例如蓝色(255,0,0)与白色(255,255,255)在 R 通道中并无区分,而在 G、R 通道或是灰度图象中数值相差很大。同理对白底黑字的牌照可用 R 通道,绿底白字的牌照
17、可以用 G 通道就可以明显呈现出牌照区域的位置,便于后续处理。原图、灰度对于将彩色图象转换成灰度图象时,图象灰度值 H 可由下面的公式计算:(3.1)0.2290.5870.114HRGB(3.2)3BGRH(3.1)式使用了权值加重法,(3.2)式使用均值法,使用权值法的好处是可以突出某个通道,Matlab内的RGB转灰度图函数rgb2gray()就是使用的(3.1)式权值比例公式,这样就可以利用边缘检测方法,识别出临近区域灰度值相差大的分界区。通过程序运行其效果图见图3.2和图3.3:图 3.2 原始图像9图 3.3 灰度图像由原图和灰度图运行结果可知,能清晰地读出原彩色图样,通过图形的对
18、比分析,原始图中车牌区域的灰度明显不同于其他区域,蓝底部分最为明显。经过程序运行出来的灰度图可以比较容易的识别出车牌的区域,达到了预期的灰度效果。3.1.23.1.2 图像的边缘检测图像的边缘检测在 Matlab 中利用函数 edge()实现边缘检测,具体的用法如下所示:Car_Image_Bin=edge(Car_Image_Gray,robert,0.15,both);在 edge()函数中有 Sobel 算子,Prewitt 算子,Roberts 算子,Log 算子,Canny 算子及 Robert 算子,几种算法相比之下,Roberts 算子是一种最简单的算子,是一种利用局部差分算子寻
19、找边缘的算子,他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。 因此本课题使用了 Robert 算子。由于 Roberts 边缘检测算子是一种利用局部差分算子寻找边缘的算子, 根据任一相互垂直方向上的差分都可用来估计梯度,Robert 算子采用对角方向相邻两像素之差,其计算公式如下:,1,1xffx yfxy(3.3) 1,1yffxyfx y(3.4)10其幅值为: 22,G x yxfyf(3.5)Robert梯度以11,22xy为中心,所以他度量了11,22xy点处45和135方向(相互正交)的灰度变化。适当
20、取门限T,做如下判断:,G x yT,(x,y)为阶跃状边缘点。Roberts边缘检测算子相当于用011 0 和对图像进行卷积。both表示双向0.15为1 001 敏感度值检测算法。使用边缘检测,腐蚀效果如图3.4所示:图 3.4 边缘效果图从边缘效果图可以看出,经过处理以后车牌的轮廓已经非常明显了,车牌区域及汽车标志的边缘呈现白色条纹,基本上达到了边缘检测的效果。但是,在车牌附近的其他区域也由于各种干扰的影响,也存在一些白色区域。所以要对图像做进一步的处理,用灰度图腐蚀来消除多余的边界点。3.1.33.1.3 灰度图腐蚀灰度图腐蚀所谓腐蚀即一种消除边界点,使边界向内部收缩的过程。利用它可以
21、消除小而且无意义的物体。腐蚀的规则是输出图像的最小值是输入图像领域中的最小值,在一个二值图像中,只要有一个像素值为 0,则相应的输出像素值为 0。假设 B 对 X 腐蚀所产生的二值图像 E 是满足以下条件的点(x,y)的集合:如果 B 的原点平移到点(x,y),那么 B 将完全包含于 X 中。本系统使用 imerode()函数,Car_Image_Erode=imerode(Car_Image_Bin,Se);11其中结构元素 Se 又被形象成为刷子,用于测试输入图像,一般比待处理图像小很多。结构元素的大小形状任意,一般是二维的。二维结构元素为数值 0 和 1 组成的矩阵,结构元素中数值为 1
22、 的点决定结构元素的领域像素在进行腐蚀操作时是否需要参加运算。结构元素太大,会造成腐蚀过度,造成信息丢失,太小起不了预期的效果,这里使用矩阵的线性结构元素,即。腐蚀后如图:3 11;1;1Se 图 3.5 腐蚀效果图从腐蚀的结果分析,腐蚀的目的是消除小而无意义的物体,对比边缘效果检测图与腐蚀效果图可以看出,在边缘检测图中还有的小的无意义的图像已经被完全消除了,留下来的仅仅是车牌区域以及车的标志。已经得到了车牌图像的轮廓线了,只要再经过适当的处理即可把车牌提出出来。3.1.43.1.4 图像平滑处理图像平滑处理得到车牌区域的图像轮廓线后,由于图像的数字化误差和噪声直接影响了脚点的提取,因此在脚点
23、提取之前必须对图像进行平滑处理,Matlab 有一个图像平滑处理函数 imclose(),它与开运算相反,融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。Car_Image_Perform=imclose(Car_Image_Erode,Se);结构单元中Se一个小于对象闭合图形,只要两个封闭域的距离小于Se,就将这两个连接成一个连通域,Se生成方式采用Se=strel(rectangle,25,25);即Se是一个一个的矩形,使用矩形是因为车牌是一个矩形,这样,可以是提25 25取的图像最接近预期效果。由于车牌图像经过腐蚀以后只剩下车牌区域以及车的标志。在程序运行的图像平滑后效果如下:
24、12图 3.6 平滑处理后效果从平滑后的效果图分析,达到了预定的目标。消除了图像的数字化误差和噪声对脚点的直接提取的影响。3.1.53.1.5 移除小对象移除小对象图像平滑处理了,可能会有多个闭合区域,对于不是车牌区域的必须予以删除,Matlab 提供了一个函数 bwareaopen(),用于删除二值图像中面积小于一个定值的对象,默认情况下使用 8 邻域,Car_Image_Perform2=bwareaopen(Car_Image_Perform,2000);这样,Car_Image_Perform中面积小于2000的对象都被删除了。小对象被删除后的图像如图 3.7 所示:图 3.7 移除小
25、对象后效果图移除小对象后的效果图已经非常明显了,图像中最后只存在车牌区域,其他的图像已经完全滤除掉了,包括小物体,车的标志等影响已经没有了。133.1.63.1.6 车牌区域的边界值计算车牌区域的边界值计算在将原始图像进行二值化,然后轮廓平滑处理后,图像的每个点为两个离散值中的一个,这两个值代表开(1)与关(0),即只有黑与白的特殊灰度图像,并且整个图像只有两个域(如果有多个域需改变参数后重新进行一此剔除干扰对象处理),全1 的域即为车牌区域,并且近似矩形,长宽比为 4.5:1,也可以用这两个特性去检验提取的区域是否为车牌区域。经区域确定了,即可将车牌的四个边界值确定下来。这里采用水平与垂直双
26、向投影法。水平坐标的确定,先定义一个的数组,其中为原始图像的宽度值,然后将1 x二值图像垂直投影到轴。从直方图中基本可以看书水平方向上的两个分界线,为x了便于处理,该课题将像素值临界值定量化,取值 5 个像素。从左向右寻找第一个1 值像素大于 5 的坐标为水平方向左侧分界线,从右向左寻找到第一个 1 值像素量大于 5 的为右侧分界线,程序可以用 for 循环语句。垂直方向的分界线可用同样的方法实现。分界线计算后,即可从原图像中剪切出只包含车牌的区域图像。剪切得到的图像如下。图 3.8 为二值图切割的车牌区域,图 3.9 为 RGB 图像切割出来的图像:图 3.8 车牌区域二值图裁减图像图 3.
27、9 原图中的车牌区域图像对比原始图像与二值图裁减图可以看出,车牌的四个边界值基本上被确定下来了,这样就可以从原始图像中直接确定车牌的区域了。所以车牌就成功地被提取出来了。143.23.2 字符切割字符切割3.2.13.2.1 字符切割前的图像去噪处理字符切割前的图像去噪处理由于图像车牌号区域提取后获得的是从原始图像中剪切的,是 RGB 图像,分割同样采取投影法,故同样需要先将 RGB 图像转换成灰度值,再将灰度图转化成二进制图,转化的方法就是限定一个阀值,如果大于阀值则为 1,小于阀值为 0,阀值采用全局阀值,全局阀值是指整幅图像都采用相同的阀值 T 处理,适用于背景和前景有明显对比的图像。虽
28、然图像间受背景、光照等影响存在较大的差异,但计算简单,程序运算效率高。在 Matlab 实现方式如下:T=round(License_Image_Gray_max-(License_Image_Gray_max-License_Image_Gray_min)/3); 同时采集大的图像噪点依然存在,因此可以通过处理图像的低频部分来锐化图像。这里采用高通滤波算法。由此可得出滤波前后的图像如下所示: 图 3.10 车牌区域图像滤波前效果图 3.11 车牌区域图像滤波后效果可以对比滤波前跟滤波后的图像,如图 3.10 和图 3.11 所示,很明显,不但噪声去除了,而且图像得到了锐化。3.2.23.2.
29、2 字符切割前的图像膨胀和腐蚀处理字符切割前的图像膨胀和腐蚀处理腐蚀已经在在上文介绍,膨胀刚好与腐蚀相反,运算规则是输出图像的像素值是输入图像邻域中的最大值,在一个二值图像中,只要一个像素值为 1,则相应的输出像素值为 1。15根据经验值,车牌图像中,字符面积与车牌面积之比在(0.235,0.365)之间,因此计算字符面积与车牌面积比值,如果大于0.365则对图像进行腐蚀,如果小于0.235则对图像进行膨胀,在这里结构元素 Se 使用一个二维单位矩阵1 001 。对于此对象,系统给予膨胀处理,效果图如图 3.12 所示:图 3.12 车牌区域图像腐蚀、膨胀后效果3.2.33.2.3 字符切割字
30、符切割完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。字符分割一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。 图 3.13 牌照字符切割框图分析垂直投影找到每个字符中心位置去掉车牌的框架计算水平投影进行车牌水平校正按左右宽度切割出字符162007年颁布的我国车牌规范(普通中小型汽车)规定车牌总长440mm,牌照中的7个字符的实际总长为409mm 左右,宽140mm,每个字符45mm宽,90mm高,字符
31、间距为10mm,其中第二个字符与第三个字符的间距较为特殊,为15.5mm,最后一个字符与第一个字符距边界25mm。这样,如果平均分配每个字符在牌照中占据的宽度,那么每个字符宽度为:width/7(width 为车牌图像的宽度)。但是,实际上,第二个第三个字符之间存在一个黑点,牌照左右两边与图像边缘也都有一定的宽度,所以每个字符的宽度应该小于width/7。考虑所有的情况,一般情况下最小的宽度为width/9。因此,字符的宽度可以从width/9 到width/7 之间渐进的变化得到,程序流程图。字符切割流程图如下图所示: 17开始车牌二值图像切除周边空白垂直投影从左往右查找,垂直投影白色像 素
32、点累计小于 10 的值的 wide以水平区域 (0,wide)剪切出判断是否为标 准字符保存这个字符将剩余部分保存并覆盖原 先图像字符个数是否 为 7结束YNNY18图 3.14 字符切割流程图字符分割一般采用垂直投影法。在这之前还必须切除周边空白,由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。经过切割,切割的字符图像如下:图 3.15 经切割的七个字符19切割后一连串的字符串变成了单个字符,为后面的字符匹配识别奠定了基础。3.33.3
33、 字符识别字符识别3.3.13.3.1 字符识别方法选择字符识别方法选择目前字符识别的方案有使用神经网络和模板匹配法进行比对。人工神经网络是模拟人脑思维功能和组织建立起来的数学模型,虽然现在神经网络正在迅速发展,但总体来说应用还是相对复杂的。模板匹配法虽然识别率低,但实现简单,计算量小,只有矩阵的加减与统计,而且车牌字符是有阿拉伯数字,英文大写字母,还有部分汉字,虽有字库量不大,字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高,因此本课题使用这种方法。对于模板匹配,首先建立标准模板库,库中字符使用统一的尺寸,这里使用。20 403.3.23.3.2 字符归一化字符归一化由于图像采集
34、时图像的像素值不一样,经切割出来的字符的大小也会不一样,所以在进行匹配前必须先进行字符图像归一化。使图像字符大小跟模板图像大小一致,Matlab提供一个改变图像大小的函数imresize(I,Size,Model),Model是插值运算方法,这里选用nearest最近邻插值法,经归一化后的图像如下。图 3.16 经归一化后的七个字符切割的字符经过归一化之后,每个字符的大小基本一致,由此便解决了像素值不一致带来的问题,并且利于和库中的字符进行匹配比较。3.3.33.3.3 字符匹配识别字符匹配识别字符匹配识别的是要前提要简历可以与之相比较的字库表,再将已切割并进行了归一化处理的单个字符相比较,逐
35、个字符进行匹配比较,再将待识别的字符的特20征值和模板字符相减,找到相减值为最小的那个即为匹配得最好的字符。字符识别步骤如下:21建立模板字库表读取分割出来的字符第一个字符与模板中 的汉字模板进行匹配第二个字符与模板中 的字母模板进行匹配待识别字符与模板字符相减,值越小相似度 越大,找到最小的一个即为匹配的最好的识别完成,输出此模板对应值后 5 个字符与模板中的字 母与数字模板进行匹配图 3.17 字符匹配框图22字符匹配的准确度是车牌识别中的关键部分,所以首先要简历精准有效的模板字库表,便于切割完的字符与库中内容相比较,接下来是读取切割的字符,从第一个字符开始一次与库中字符相比较匹配,切割后
36、的字符特征值与库中模板字符相减,找到值最小的那个就是匹配得最恰当的字符。匹配方法采用将目标图像与模板图像逐点做差,得到第三幅图像,程序实现如下for ii=1:40or jj=1:20 Word_Image_Diff(ii,jj)=Word_Image(ii,jj)-Word_Image_Code(ii,jj);endend最后计算第三幅二进制图像中像素值为1的个数,数值最小的即为匹配出来的结果,经对比可得相似度最高的数字图 3.18 字符相似度比较如图3.18所示:第一个字符在Lib_Code_No=39处取得最大相似度,查字库Lib_Code_No=39的字符为“鲁”,则可以确定该字符为“
37、鲁”,同理可得出其他6个字符。234 4 仿真结果及分析仿真结果及分析4.14.1 车牌定位及图像读取及其图像处理车牌定位及图像读取及其图像处理车牌定位后系统边缘检测的仿真结果图如下图所示:图 4.1 图像读取及检测结果图结果分析:图像车牌区域提取就是从原图中截取含车牌的部分,即 RGB 图像,然后进行字符的切割与识别。为了去除图像中的噪声点必须对截取的图像进行滤波处理,经滤波后,不仅去除了噪声,并且使图像得到了锐化。经过这些步骤可以使得最终识别出的图像与原图的相似度更高,即结果更精确。仿真的结果也使得车牌部分从原图被准确的提取出来了,达到了车牌定位及图像读取及其图像处理的目的。4.24.2
38、车牌字符分割及其图像处理车牌字符分割及其图像处理对经边缘检测扫描后的图像经字符切割后的图像如下图所示:24图 4.2 字符分割及归一化结果图结果分析:从 MATLAB 编程运行结果看,便于图像进行匹配识别,必须先将连续的字符切割成单个字符,并且在切割字符之前要将周边空白切除掉。由以上结果图可以看到,车牌被切成只含字符部分,并且七个字符被切成清晰的七个字符,实现了字符切割。由右侧的归一化图像可以看出,切割出的图像像素值和模板图像达到了一致,由此便避免了切割出的图像像素值不一致所带来的问题。4.34.3 车牌字符识别及其图像处理车牌字符识别及其图像处理图像经上述处理后再进行识别,次图像和原图有一定
39、的差异,其字符相似度曲线成一定规律,其曲线图如下图所示:图 4.3 字符识别结果图结果分析:字符识别是这样一个过程,根据建立的模板字符库将分割出来的字符和模板库中的字符一一匹配,将切割的字符和模板相减得到一个差值,差值越小表明字符匹配程度越高。由图 4.3 可知,字符匹配识别的难易程度不一致,但总体能识别出汉字、字母和数字。255 5 结论结论本课题对车牌识别系统的软件部分进行了研究,分别从图像预处理、车牌定位、字符分割以及字符识别等方面进行了系统的分析。主要工作内容及结论如下:(1)整理和总结了国内外在车牌定位、分割、字符识别方面的研究成果和发展方向,系统介绍了我国车牌的固有特征,以及车牌识
40、别的特点。(2)在车牌定位我们采用基于灰度跳变的定位方法,采用先对图像进行预处理,再进行二值化操作的方法。实验表明本方法既保留了车牌区域的信息,又减少了噪声的干扰,从而简化了二值化处理过程,实验表明本方法既保留了车牌区域的信息,又减少了噪声的干扰,从而简化了二值化处理过程,提高了后续处理的速度。(3)基于彩色分量的定位方法,运用基于蓝色象素点统计特性的方法对车牌是蓝色的车牌进行定位。实验表明,用该方法实现的车牌定位准确率较高。(4)用 MATLAB 编程运行结果可以得出,本设计采用的图像预处理、边缘检测、开闭运算子、车牌长宽比特征识别等对车牌的定位都是非常有效的,而本设计提出的二次水平投影分析
41、和阈值技术有效检测了车牌图像的上下左右边框、旋转角度,准确实现的车牌字符的分割,对多个车牌进行实验,均有很高的正确率。本设计虽然只对蓝底白字车牌进行分割识别,对黑底白字车牌原则上整个算法可直接适用,对白底黑字车牌、黄底黑字车牌,需要对车牌定位算法进行调整,并将图像反转(0 变 1、1 变 0) ,而车牌字符的分割算法仍然行之有效。因此,本设计提出的车牌字符的分割算法实验证明是准确、有效、可行的。附录:程序清单附录:程序清单function d=main(jpg) close all clc %I=imread(car1.JPG); I=imread(chepai.jpg);26figure(1
42、),imshow(I);title(原图) I1=rgb2gray(I); figure(2),subplot(1,2,1),imshow(I1);title(灰度图); figure(2),subplot(1,2,2),imhist(I1);title(灰度图直方图); I2=edge(I1,robert,0.15,both); figure(3),imshow(I2);title(robert算子边缘检测) se=1;1;1; I3=imerode(I2,se); figure(4),imshow(I3);title(腐蚀后图像); se=strel(rectangle,25,25); I
43、4=imclose(I3,se); figure(5),imshow(I4);title(平滑图像的轮廓); I5=bwareaopen(I4,2000); figure(6),imshow(I5);title(从对象中移除小对象); y,x,z=size(I5); myI=double(I5); ticBlue_y=zeros(y,1);for i=1:yfor j=1:xif(myI(i,j,1)=1) Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计 end end endtemp MaxY=max(Blue_y);%Y方向车牌区域确定PY1=MaxY;while
44、(Blue_y(PY1,1)=5)end PY2=MaxY;while (Blue_y(PY2,1)=5)endPX1=PX1+50;%对车牌区域的校正PX2=PX2-50;PY1=PY1+45;PY2=PY2-45;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc; figure(7),subplot(1,2,1),imshow(IY),title(行方向合理区域); figure(7),subplot(1,2,2),imshow(dw),title(定位剪切后的彩色车牌图像) imwrite(dw,dw.jpg); filename,filepath=uigetfile(dw
45、.jpg,输入一个定位裁剪后的车牌图像); jpg=strcat(filepath,filename); a=imread(dw.jpg); b=rgb2gray(a); imwrite(b,1.车牌灰度图像.jpg); figure(8);subplot(3,2,1),imshow(b),title(1.车牌灰度图像) g_max=double(max(max(b); g_min=double(min(min(b); T=round(g_max-(g_max-g_min)/2); % T为二值化的阈值 m,n=size(b); d=(double(b)=T); % d:二值图像 imwrite(d,2.车牌二值图像.jpg); figure(8);subplot(3,2,2),imshow(d),title(2.车牌二值图像) figure(8),subplot(3,2,3),imshow(d),title(3.均值滤波前)% 滤波 h=fspecial(average,3); d=im2bw(round(filter2(h,d); imwrite(d,4.均值滤波后.jpg); figure(8),subplot(3,2,4),imshow(d),title(4.均值滤波后)% 某些图像进行操作 % 膨胀或腐蚀 % se=str