图像识别技术在智能车牌识别中的应用电子信息.docx

上传人:b****5 文档编号:11653836 上传时间:2023-03-29 格式:DOCX 页数:37 大小:823.96KB
下载 相关 举报
图像识别技术在智能车牌识别中的应用电子信息.docx_第1页
第1页 / 共37页
图像识别技术在智能车牌识别中的应用电子信息.docx_第2页
第2页 / 共37页
图像识别技术在智能车牌识别中的应用电子信息.docx_第3页
第3页 / 共37页
图像识别技术在智能车牌识别中的应用电子信息.docx_第4页
第4页 / 共37页
图像识别技术在智能车牌识别中的应用电子信息.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

图像识别技术在智能车牌识别中的应用电子信息.docx

《图像识别技术在智能车牌识别中的应用电子信息.docx》由会员分享,可在线阅读,更多相关《图像识别技术在智能车牌识别中的应用电子信息.docx(37页珍藏版)》请在冰豆网上搜索。

图像识别技术在智能车牌识别中的应用电子信息.docx

图像识别技术在智能车牌识别中的应用电子信息

毕业设计(论文)

题目图像识别技术在智能车牌识别中的应用

 

 

学生毕业设计(论文)原创性声明

本人以信誉声明:

所呈交的毕业设计(论文)是在导师的指导下进行的设计(研究)工作及取得的成果,设计(论文)中引用他(她)人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人成果及为获得重庆工程学院或其它教育机构的学位或证书而使用其材料。

与我一同工作的同志对本设计(研究)所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

 

毕业设计(论文)作者(签字):

年月日

 

摘要

随着我国在中国特色社会主义道路下进入新时代,我国经济发展进入腾飞阶段,汽车使用数量每年都在增长,必须增强我国的交通管理效率。

除了完善制度与法律之外,利用电子信息技术实现交通管理自动化也是提高效率的途径之一,也是我国科技发展的一大重要进程。

车牌的自动识别技术是实现交通管理电子信息化与自动化的重要技术之一。

本文旨在利用MATLAB对车牌识别系统的摄像头在指定区域拍摄车牌并识别的过程的算法进行仿真,对车牌识别系统的四大模块:

预处理、车牌定位、车牌字符分割和车牌字符识别分别进行了设计。

在预处理模块中配合本设计采用的定位算法,对采集图像进行了灰度化、边缘检测等处理,同时对比了多种边缘检测算子的处理效果,选取了canny算子作为本设计的边缘检测算法。

在车牌定位部分基于图像像素点的垂直投影对预处理后的图像进行了进一步的定位加工,初步定位了车牌在图像上的位置,然后通过删去二值化车牌图像两侧像素值为0的部分去除了初步定位车牌中的左右边框,实现了车牌的精确定位。

字符分割部分同样基于二值化车牌图像像素点的垂直投影将二值化车牌上的字符从右到左分别分割了下来。

在识别算法部分首选了模板识别法,并最终仿真出结果。

在仿真结果中,本文成功完成了识别系统四个模块的设计,对采集到的数十张车牌图像进行了识别,又针对模板识别算法出现的部分识别错误,最终改进为基于BP神经网络的识别算法,增强了识别正确率。

关键词:

MATLAB车牌字符识别车牌图形处理

ABSTRACT

WithChinaenteringaneweraundertheroadofsocialismwithChinesecharacteristics,China'seconomicdevelopmenthasenteredastageofsoaring,andthenumberofautomobileuseisincreasingeveryyear.Wemustenhancetheefficiencyoftrafficmanagementinourcountry.Inadditiontoimprovingthesystemandlaw,theuseofelectronicinformationtechnologytoachieveautomationoftrafficmanagementisalsooneofthewaystoimproveefficiency,butalsoanimportantprocessofthedevelopmentofscienceandtechnologyinChina.Theautomaticlicenseplaterecognitiontechnologyisoneoftheimportanttechnologiestorealizetheelectronicinformationandautomationoftrafficmanagement.

Inordertosimulatetheprocessofalicenseplaterecognitionsystemcameratakingalicenseplateinadesignatedareaandrecognizingthelicenseplate,thispaperdesignsaprocessingprogrambasedonMATLABtoconvertthelicenseplateinformationcarrierintheexistinglicenseplatephotosfrompicturestocharacters.Thedesignprocessistransformedintofourmodulesofthelicenseplaterecognitionsystem.Block:

Preprocessing,LicensePlateLocation,LicensePlateCharacterSegmentationandLicensePlateCharacterRecognition,designedtheimplementationalgorithm,andfinallysimulatedtheresults.

Inthesimulationresults,thispapersuccessfullycompletesthedesignoffourmodulesoftherecognitionsystem,recognizesdozensoflicenseplateimagescollected,findsthattheoriginalrecognitionalgorithmwillhavesomerecognitionerrors,andfinallyimprovestherecognitionalgorithmandenhancestherecognitionaccuracy.

Keywords:

MATLAB;LicensePlateCharacterRecognition;LicensePlateGraphicsProcessing

1绪论

1.1研究背景

在过去的二三十年里,随着全球经济的不断发展和人民生活水平的不断提高,私人汽车的数量迅速增加,汽车的普及加快[1]。

只依靠发展交通设施,无法解决汽车大量增加带来的一系列交通问题。

因此,在发展交通设施的同时,大力发展现代智能交通系统,使道路建设与现代管理同步进行,已成为亟待解决的重大问题。

近年来,道路交通管理系统朝着智能化方向不断发展。

公路管理系统和交通管理信息系统的不断完善,为基于图像处理技术的交通管理系统的发展提供了契机。

正是在这样的背景下,开发了基于卫星通信的车牌自动识别与监控系统。

由于本系统的信息传输介质为可以为卫星传输,不受地域限制。

因此,无论身在何处,都可以了解车辆经过中央航站楼任何卫星分收费站的情况。

因此,我们还可以从监控摄像机的视频中提取车辆牌照,从而了解车辆的各种信息。

车牌识别技术的主要任务是对车辆图像进行分析和处理,自动识别车牌号。

它广泛应用于需要车牌认证的重要场合,如不停车收费、被盗车辆检测、停车场管理、车辆通行证等,大大简化了人力劳动,消除了人为干扰,减少甚至消除了人为干扰。

车牌识别系统可以对输入的汽车图像进行处理和识别,输出多个字符大小的字符串,在占用存储空间和与数据库连接方面具有无与伦比的优势。

因此车牌识别系统研究具有极大的现实意义[2]。

而车牌字符识别是是车牌识别系统的核心。

车牌字符识别是识别车牌上的数字、字母和汉字的有效、准确的过程。

实际上,许多车辆的牌照都放在保险杠的上方或两侧。

此外,车牌本身的污染和缺陷也会影响识别率。

可见车牌识别技术需要继续进一步研究。

1.2课题的理论意义和研究价值

鉴于道路交通负担越来越重,人们利用先进的科学技术开发了各种交通道路监控管理系统。

这些系统通常包括车辆检测装置。

通过这些装置,检测过往车辆,提取相关交通数据,实现对交通的监控、管理和引导。

而车牌识别技术是车辆检测系统的重要组成部分。

车辆唯一的标志是车牌,它与车辆的大部分重要信息有关。

只要我们知道一辆车的车牌号,跟踪大量的车牌号,就可以合理地管理大量的车辆,从而提高交通管理水平。

从这个角度看,车牌识别技术于交通管理系统有其存在价值和研究。

1.3开发环境和工具

开发环境:

MicrosoftWindows7;

开发工具:

Matlab2017a;

采集设备:

1000万像素手机拍照。

1.4国内外研究现状简述

近二十年来国内外对车牌识别系统进行了研究。

在车牌识别过程中使用了许多技术,但受到客观环境的影响,车牌识别效果并不理想[3]。

而且,由于这些应用大多是实时应用,因此不必使用过于复杂的数值计算来获得更好的结果。

目前,国内外研究机构经常采用红外照明技术和专用传感器来提高图像质量,提高车牌识别系统的能力,但这样的处理会带来更高的成本。

国内也有许多车牌自动识别的文章发表,随着模式识别与高新技术的发展,有诸多完善的识别系统算法日渐被提了出来。

本设计所采用的车牌定位方法、字符识别的改进算法也是最近才提出的新方法。

未来车牌识别系统的发展趋势主要有以下几点。

首先,使用车牌识别的不同场合对系统的重点有不同的要求,需要根据应用要求开发相应的产品。

其次,目前识别系统集成不足。

产品的每个部分都来自的制造商,兼容性较差。

未来可以开发高集成度的产品,尽可能少的设备完成整个产品的建设。

车牌识别产品的实际使用时间相对较短。

随着计算机硬件和各种算法的发展,将取得很大的进步。

与现有的识别产品相比,识别率和识别速度有了进一步的提高。

对污损、变形的车牌进行识别,可以达到一定的成功率,同时可以实时识别多个车牌。

1.5设计系统分析

本设计是基于MATLAB编写了一个将已有车牌照片里的车牌信息载体由图片转换为字符的处理程序,以模拟车牌识别系统的摄像头在指定区域拍摄车牌并识别的过程,仅适用于本文所列出的或者参数相同的采集设备。

本设计主要由四个部分组成,分别是图像预处理、车牌定位、字符分割、字符识别四个部分[4]。

字符识别模块是车牌识别系统的核心部分,但识别效果很受前三个模块的影响。

而前三个模块就是为了降低车牌识别受外部环境的干扰程度,如果前三个模块没将图像处理好,则识别算法就不能识别出正确结果。

在前三个模块处理完好的情况下,识别算法的识别准确率也取决于识别算法自身的种类,不同的识别算法,对不同的字符图像识别情况亦有所不同,所以分割出的单个字符图像在识别之前,也要根据不同的识别算法选取不同的归一化标准。

为了优化车牌识别算法,对车牌识别的各个步骤进行了研究。

最后总结出来,车牌识别算法(如图1.1所示)由以下步骤构成:

图1.1车牌识别流程

2车牌预处理

在自然环境中通过摄像头这类图像传感器可以得到自然状态下车牌图像,由此得到的车牌图像往往是彩色的。

根据后面所选车牌定位方法,可以选择是否通过图像灰度化来去除图像的颜色信息,但车牌预处理阶段往往需要做到去除噪声、减少后续算法的计算复杂度等效果。

2.1图像预处理与车牌定位

图像预处理阶段与车牌定位息息相关,运用什么样的车牌定位方法就决定车牌图像预处理部分的操作,一类是通过图像的彩色信息来定位车牌,此类方法需要保留图像的色彩信息,从图像中通过一般车牌的颜色来确定图像中车牌的位置而将车牌分割出来;此类方法由于需要保留颜色信息所以运算复杂度较高,且容易被与车牌颜色相同的物体干扰。

另一类就是根据车牌的灰度信息与轮廓信息来区分车牌部分与其它部分,此类方法舍弃了车牌的颜色信息,大大减少了运算复杂度,但此类方法对采集到的原始图像的尺寸大小以及拍摄位置的一致性要求比较高。

综合各个因素以及本设计的性质,最终选取基于灰度图像的梯度信息来作为本设计进行车牌定位的方法。

而此方法就需要车牌的预处理部分做到灰度化、边缘检测、形态学处理等步骤,以便将车牌部分与图像其它部分区分开来。

2.2图像灰度化

彩色图像中每个像素的信息由三种颜色构成:

红(R)、绿(G)、蓝(B),所以一般彩色图像又被称为RGB图像。

在RGB图像中有3种颜色通道,每种颜色有256阶亮度,所以在RGB图像中每个像素需要24位的存储空间,数据量远大于灰度图像。

它不仅需要很长的时间来处理,而且还需要耗费较大的内存空间。

根据一定的方法,将所有从纯黑色到纯白色的过渡色进行分级,分为不同等级的颜色称为灰度,一般分为256级(28个不同的灰度)。

灰度图像是指每个像素点只有灰度值的图像,每个像素只需要8位的存储空间,比采集设备采集到的原始RGB图像少用很多储存空间。

将RGB图像转换为灰度图像,数据量可以大大减少。

灰度化就是为三原色彩色图像装换为只有亮度信息的灰度图像。

三原色彩色图像的R、G和B三个值的取值范围是0到255,而灰度图像每个像素点的取值范围仅有256个值。

灰度处理方法主要有最大值法、平均值法、与加权平均法[5]。

最大值法:

(2.1)

平均值法:

(2.2)

加权平均法:

根据重要性等指标,R、G和B赋予不同的权重,R、G和B等于其值的加权和平均值。

由此得:

(2.3)

WR,WG,WB分别为R、G、B的权值。

本设计在MATLAB中调用了rgb2gray函数来实现对彩色图像的灰度化。

rgb2gray函数是MATLAB自带的利用加权平均法对图形灰度化的函数。

效果如图2.1所示

图2.1通过设备采集到的原始图像与灰度图像对比

2.3边缘检测

如图2.1所示,原始图像在灰度化后,除车牌外还有诸多其它信息,需要将车牌部分与其它部分分割出来。

原图中颜色的变化在灰度图像中表现为灰度的变化,而在RGB图像中以不同的颜色区分出了车牌与其它部分。

灰度图中以灰度的急剧变化来区分车牌及其它范围,但由于摄像机在现实中所拍摄到的车牌照片处于比较复杂的环境,诸如光照、水渍等因素,灰度图中急剧变化的部分并不一定就是图像中各部分的边界,此时就需要对灰度图像进行边缘检测,以将图像中各部分正确地区分出来,同时保留图形原有属性。

常用的边缘检测算子一般有Prewitt算子、Sobel算子和Canny算子等。

用这三种边缘检测算子分别对灰度图像的处理效果如图2.2所示:

图2.2从左往右分别为灰度图像、canny边缘检测、Prewitt边缘检测、Sobel边缘检测的效果

通过对比各个边缘检测算子的边缘检测效果,发现Canny算子检测精度较高,且抗噪性良好,所以本设计最终选取canny算子进行边缘检测计算。

canny算法可以分步概括为:

图像降噪,第二步的阶梯算子在计算可能边缘时对噪声比较敏感,很可能影响到计算结果,于是第一步就得对图像进行降噪;计算图像梯度,由于梯度与边缘都是灰度变化明显的地方,于是计算图像梯度能得到可能的图像边缘;非极大值抑制,保留灰度变化最大的部分,剔除灰度变化相对较小的部分,以降低边缘宽度;双阈值筛选,设置两个阈值进一步剔除梯度变化相对较弱的点,只保留具有梯度变化值两个阈值都超过的点的部分。

在在MATLAB中具体可以编写为:

输出图像=edge(输入图像,'canny',a);

其中a为参数。

输出图像便是已经完成边缘检测计算的图形。

2.4形态学处理

在通过canny算子边缘检测后的图像中有大量杂乱无关的点,考虑到车牌部分的梯度信息,即车牌部分有大量在竖直方向上连续的点,可以通过腐蚀运算消除图像中在竖直方向不连续的点。

而腐蚀运算的具体过程可以概括为利用一个矩阵扫描图像每一个像素,让矩阵与其扫描部分进行与运算,留下运算结果全为1的部分。

根据在本设计中所采集的图像的尺寸大小。

本设计最终采用1*4大小的矩形结构来进行腐蚀运算以消除在竖直方向上不连续的点。

具体实现可以在MATLAB中调用imerode函数,具体可以编写为:

腐蚀图像=imerode(边缘检测图像,[1;1;1;1]);

在此函数中[1;1;1;1]表示用于扫描图像的矩阵,此处表示的是在竖直方向上连续的四个值为一的像素点。

结果如图2.3所示:

图2.3边缘检测图像及其腐蚀运算结果

经过图像腐蚀后留下来的点的位置信息包含了车牌所在区域的位置信息。

接下来考虑运用膨胀运算将这些连续的点扩展为一个车牌的大小。

膨胀运算是利用一个矩阵扫描图像每一个像素,让矩阵与其扫描部分进行与运算,除去运算结果全为0的部分。

直观上来看,这会让图形中值为1的部分得到扩展。

考虑到本设计中所用图像中车牌的大小,膨胀运算扫描所用矩阵的大小设定为25*25。

在MATLAB中调用imclose函数以实现对腐蚀后的图像进行膨胀运算,运算结果如2.4图所示:

图2.4膨胀运算效果图

经过膨胀运算后在竖直方向连续的点膨胀到了图像中一般车牌大小。

但图像中仍然有大量不规则的白色区域。

本设计在考虑到正确车牌区域与干扰区域的不同之处,利用了这些区域中所包含像素点的多少来区别出部分干扰区域,为下一步的车牌定位减少了干扰。

实际操作为在MATLAB中调用bwareaopen函数,设定删去1800个像素点以下的白色区域,该阈值在不同采集设备像素下而有所不同,具体可以编写为:

输出图像=bwareaopen(输入图像,1800);

在MATLAB中运算结果如图2.5所示:

图2.5在膨胀运算后的图像中删去小于1800像素

 

3车牌定位

车牌定位指在车牌图像中找到车牌部分并独立分割出来,为后续的字符分割以及字符识别做准备。

往往在车牌定位阶段出现瑕疵,就会直接导致识别结果不准确。

3.1车牌定位方法分类

目前车牌定位方法分主要分为两大类,一类是参考图像颜色信息的定位方法,这种方法参考了车牌背景色来进行定位,通过颜色的不同而将车牌部分区分出来,此种方法适用场景较广,能够在不同尺寸的车牌图像中把车牌部分定位出来。

但对车牌上的污迹干扰比较敏感。

另一类则是对采集到的车牌图像进行灰度化的一类定位方法,其中一种是在灰度化图像中利用其规则的纹理变化来检测相应的车牌区域;另一类是基于梯度信息,利用已形成的边缘检测算法提取图像的边缘信息,然后运用形态学运算找到车牌的位置与其它部分区别出来,再进一步的加工,使最终能够精确定位车牌,本设计就是运用了这种方法,且车牌图像预处理的步骤中对其进行了部分实施,接下来就是对预处理后的车牌图像进一步加工,以精确定位车牌。

3.2基于垂直投影的车牌定位加工

经过车牌图像的预处理,在原始图像上有了大概的定位。

但仍需进一步加工才能更加精确地将车牌定位出来。

在本设计中参考了预处理图像在水平方向与竖直方向上的像素点投影来进一步确定车牌所在位置。

先从水平方向上对各行像素点数进行了统计,如图3.1所示:

图3.1在预处理图像中各个行向量包含的像素点数

可以看出车牌区域与干扰区域投影在水平方向上的像素点数的总量是有所不同的,经过车牌预处理阶段,车牌区域总有一行向量有最多的像素点数。

只保留行向量像素点统计图中拥有最大值的波形即可,保存该波形的起始与终止位置。

再在竖直方向上入手,可以从下图看出竖直方向上像素点数波形是比较长的,本设计在但仍然可以统计每个列向量的像素点数,设定一个阈值来将车牌区域区分出来,且保存保留下来波形的起始终止位置,统计结果如3.2所示。

图3.2在预处理图像中各个列向量包含的像素点数

最终确定了一个矩形区域,而车牌就在这个区域之中。

这时我们可以将这个区域从原始图像中切割下来。

本设计的车牌定位加工流程如图3.3所示:

图3.3车牌定位加工流程

3.2车牌精定位之二值化

在之前车牌的初步定位得到的彩色车牌图像中可以发现,仍然有部分非牌照区域,非牌照区域主要是车牌的左边框与右边框。

同样可以利用统计车牌图像每一列的像素数量来区分牌照区域与非牌照区域,然后再进行分割。

此时需要先对初步定位的彩色车牌图像进行二值化处理。

二值图像只包含黑白两种像素点,灰度值仅有0和1。

一般1为白色,0为黑色。

二值化图像相比灰度图像包含信息更少。

车牌二值化是为能将字符部分与车牌背景区分出来。

二值化的过程大致可以分为两个步骤:

先确定一个阈值,再将每个像素的灰度值与阈值相比较。

若灰度值小于阈值,则像素将转换为黑色,反之亦然,转换为白色。

二值化处理阈值大小是比较重要的,太大或太小都会影响后面字符分割以及字符识别模块的运行。

考虑车牌图像的性质,本设计采用最大类间方差法确定二值化处理的阈值。

在MATLAB中调用graythresh函数就可以直接以最大类间方差法来确认阈值,在二值化之前再次将初步定位的彩色车牌灰度化,具体代码编写如下:

灰度图像=rgb2gray(彩色图像);

阈值=graythresh(灰度图像);

二值化图像=im2bw(灰度图像,阈值);

运行结果如图3.4所示下:

图3.4图像二值化效果

这时就可以对二值图像每一列的白色像素点数进行统计,以此分析二值车牌上的有用信息与无用信息。

统计结果如图3.5所示下:

图3.5初步定位二值图像每一列像素统计

由图3.5的统计信息可以看出,车牌的右边框有一列向量的白色像素点数不为0,但该列向量周围的列向量白色像素点数均为0,显然这一列向量不承载任何有用信息,考虑到有用字符的最短长度,可以设定一个长度阈值将长度小于这个阈值的白色斑块的值全部赋为0,即将长度不达标的白色斑块变为黑色,从而达到去除部分干扰的目的。

同时为了之后的字符分割做准备,需要将二值图像两边多余的黑色部分删去,此时需要运用到MATLAB中的imcrop函数,在MATLAB中具体编写形式如下:

输出图像=imcrop('输入图像',[x起点,y起点,x宽度,y宽度]);

其中将已经处理过的二值车牌图像作为输入图像,输出图像即完全定位好的车牌图像。

切割部分的起点,宽度等值可以通过统计左右两端列向量上的像素点数,从两端的第一个列向量开始迭代,直到某列的白色像素点数不为0,记录此时最后一个列向量的坐标,便能确定切割部分的位置。

经过以上步骤我们最终得到精确定位的车牌二值图像,如图3.6所示:

图3.6经过精确定位的车牌二值图像

可以看见经过精确定位的车牌二值图像仍有一些与车牌信息无关的小斑块,调用bwareaopen函数再次对定位后的车牌二值图像进行形态学滤波。

其结果如图3.7所示:

图3.7滤波之后的车牌二值图像

3.3车牌倾斜校正

在采集设备实际拍摄过程中,总会各种各样客观环境的原因导致采集到的车牌原始图像会有所倾斜,为了方便接下来的字符分割,需要对倾斜的车牌图像进行校正。

本设计使用Radon变化法进行校正。

Radon变换是一种利用给定角度的斜线上的像素之和对图像进行变换的方法。

如果图像倾斜,则具有相应角度的倾斜相机将获得最多像素数。

本设计中在MATLAB环境下在以下几步通过Radon变换实现了车牌倾斜角转换:

首先调用radon函数对之前精确定位中已经进行了二值化的车牌图像进行Radon变换,得到一个变换值;然后在得到的变换值中选取局部最大值,得出该值所对应的角度;最后调用imrotate函数来对倾斜的二值化图像进行旋转以矫正车牌的倾斜度。

这样旋转车牌的作用主要在于在分割字符时,在垂直方向上能将车牌背景部分与车牌字符部分区分出来以便在切割字符图像后识别算法能更容易地将车牌号码识别出来。

4字符分割

在定位车牌的位置后,需要对车牌上的字符逐个进行识别,并输出。

为了能够方便识别算法的识别,就需要将这些字符能逐个从车牌的二值化图像中分割下来。

本设计采用了基于二值化车牌图像像素点的垂直投影的分割算法,算法的原理

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1