基于MATLAB的车牌分割及数字识别系统毕业设计论文.docx
《基于MATLAB的车牌分割及数字识别系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的车牌分割及数字识别系统毕业设计论文.docx(43页珍藏版)》请在冰豆网上搜索。
基于MATLAB的车牌分割及数字识别系统毕业设计论文
学号:
南湖学院
毕业设计(论文)
题目:
基于MATLAB的车牌分割
及数字识别算法设计
作者
届别
系别
机械与电子工程系
专业
电子信息工程
指导老师
职称
完成时间
2013.05
摘要
车牌识别技术是智能道路交通管理的重要内容,其识别的准确性和可靠性直接影响到交通管理系统的性能。
车牌识别技术包括车牌图像获取、车牌定位、车牌分割、车牌校正、车牌字符分割、车牌字符归一化和车牌字符识别,本文重点针对车牌图像的分割和车牌数字的识别进行了算法研究和设计,同时也对其它步骤进行了探讨。
论文首先对获取的车牌图像进行了预处理,包括车牌图像增强、车牌区域提取、车牌几何校正以及车牌字符分割和归一化,然后设计了BP网络算法,最后在MATLAB平台上设计实现了以上各种算法。
实验结果表明,本文中的分割算法能准确的获取字符区域并实现对字符的分割和归一化,经过训练后的BP网络能稳定、可靠的实现对分割后字符的识别,实验结果达到预期要求。
关键词:
MATLAB;车牌分割;图像预处理;数字识别
Abstract
Licenseplaterecognitiontechnologyisanimportantcontentofintelligenttrafficmanagement,accuracyandreliabilityidentificationdirectlyaffectstheperformanceoftrafficmanagementsystem.Licenseplaterecognitiontechnologyincludelicenseplateimageacquisition,licenseplatelocation,licenseplatesegmentation,licenseplatecorrection,licenseplatecharactersegmentation,normalizationoflicenseplatecharactersegmentationandlicenseplatecharacterrecognition.Thispapermainlydesignandresearchonthealgorithmforlicenseplateimagesegmentationandlicenseplatenumberrecognition,butalsoforothersteps.Firstly,thethesisgetthelicenseplateimagepreprocessing,includinglicenseplateimageenhancement,plateregionextraction,plategeometriccorrectionandlicenseplatecharactersegmentationandnormalization,andthendesignstheBPnetworkalgorithm,finallyusetheMATLABplatformtodesignalgorithmstoimplementabove.Experimentalresultsshowthatthesegmentationalgorithminthisthesiscanobtaincharacterareaandrealizethecharactersegmentationandnormalizationaccurately,aftertrainingtheBPnetworkcanimplementtherecognitionforcharactersegmentationstablyandreliably,theexperimentalreachesexpectation.
Keywords:
MATLAB;Licenseplatesegmentation;Imagepreprocessing;Digitalidentification
1绪论
1.1引言
近年来,由于国内外的交通迅速发展,车牌识别系统作为数字摄像、计算机信息管理、图像分割和图形识别技术在智能交通领域得到广泛的应用,该项技术成为了智能交通管理系统中不可或缺的重要组成部分,例如道路交通监控、交通事故现场勘察、交通违章自动记录、高速公路超速管理系统、小区智能化管理等各方面,是智能交通管理系统中高效、时效的最重要手段之一[1-2]。
目前,全球各国都在研究适合于本国的车牌识别系统,美国、日本、韩国等诸多国家都已经研究出相关的识别系统(基于传感器)。
由于引进这些系统成本极高,而且引进的技术也不一定适用于我国的车牌以及实际的交通环境,所引进的系统往往并不能满足我国需求,尽管国内市场上已有不少投入生产并使用的产品,但是这些产品的后续处理仍然需要大量的人工识别,所以车牌识别技术的研究依然是我国目前高科技领域的热门课题之一。
为了促使车牌识别技术的快速发展,需要对该项技术提出更高的要求,使得该项技术日益精湛。
该系统软件处理具有两大主要模块:
图像处理模块和字符识别模块。
由于MATLAB语言对图像处理和字符识别异常方便,在数字图像处理中有着其他语言所无法比拟的优势,由于它能直接调用预先编好的函数,使得整个系统有了较高的保障。
所以本文介绍的是利用MATLAB对图像处理模块和字符识别模的设计和研究。
1.2车牌识别技术概述
随着日益发展的计算机科技和不断提高的硬件水平,数字识别技术以及人工智能理论的有效结合,智能车牌识别技术发展日趋完善。
智能车牌识别系统以及工作原理实质上就是融合数字摄像技术和计算机信息管理技术,采用先进的数字图像处理工具、数字识别以及人工智能技术,通过对原始图像的采集、预处理、分割、识别等相应的措施,获得我们想要的图像信息,进而实现对车牌字符自动识别的系统,该系统是数字识别技术在现实生活中实际应用中的实践之一。
目前,一个完整的车牌识别系统需要完成从图像采集到字符的识别以及输出的复杂过程,需要硬件和软件两大组成部分。
其中硬件包括系统触发、图像采集两个主要组成部分,软件则包含了图像预处理、车牌获取、字符分割以及字符识别四个主要模块。
一个完整的车牌识别系统主要结构如图1.1所示:
图1.1车牌识别系统结构图
1.3车牌分割和数字识别的发展历史和现状
自1988年提出车牌识别(LicensePlateRecognition,LPR)技术以来,人们己经对其进行了广泛的研究,而近些年来,车牌识别的技术发展迅速,就识别基础而言,主要可以分为基于IC(即无线电频率鉴别(REID))或是基于条码识别的间接法和基于图像车牌识别的直接法。
原始的图像采集,由于受到外界环境中光线差异、光路中灰尘密度差异、季节环境变化的影响,以及车牌本身比较模糊等诸多客观因素影响,使得LPR技术的发展受到一定的限制。
为了解决图像的恶化等问题,国内外的许多研究机构、高校以及公司企业采取的主要采用的方法是主动红外照明摄像或使用特殊的传感器来提高图像的质量,从而提高识别率,但这种做法的同时也使得投资的成本加大了不少,且减小了应用领域,不并适合普遍的推广及工业生产。
国外己有不少关于车牌数字识别的文章发表,有相当一部分比较成熟,并已经投入实际生产使用中。
早在70年代,国外就已经存在自动车牌检测系统,且应用于检查被盗车辆的情况,车牌识别系统发展到今天,已经达到较高的应用水平。
在车牌识别发展的过程中,也出现了许多不同的技术方法,例如英国IPI公司研发了RTVNPR系统,新加坡Optasia公司的VLPRS产品,以色列Hi-Tech公司的SeeCarSystem系列产品,HSTOL公司开发的LPR系统,以及中国香港AsiaVisionTechnology公司的VECON产品等较为实用[3]。
由于VECON系统和VLPRS系统都只是适合于当地的车牌,摒弃SeeCarSystem对我国的汉字识别较低,加上我国车牌自动识别的研究起步较晚,且我国的车牌并不规范,多样化,不同的车型车牌规格、大小、颜色也不同,这也就造成了对车牌识别相当大的困难。
目前,比较适合我国的产品主要有中科院自动化研究所汉王公司的“汉王眼”、川大智胜软件的ZT2000车牌自动别系统等。
与此同时,国内许多研究机构和高等院校也开始对车牌识别系统进行理论研究与实际开发。
1.4车牌分割和数字识别在车牌识别中的作用
车牌识别系统的核心是微处理器,它基于图像处理、数字识别等技术的高智能电子系统,该系统主要由摄像头、视频采集接口、辅助照明装置、计算机以及识别软件等组成。
基本过程是摄像头所拍摄的原始图像通过视频采集接口输入计算机,通过所预设的识别软件进行识别并输出。
因此,在车牌识别中,车牌分割和数字识别占有主要的作用。
在车牌识别系统中,车牌分割需要完成的任务是将原始图像中的车牌区域分割出来,并将车牌字符准确的切分出来。
在正式识别前,我们要做的仅仅是字符的分割,字符分割的好坏,直接影响着字符识别的准确率。
也就是说,一个好的车牌识别系统的前提是有一个好的车牌分割模块,无法将字符很好的从原始图像中分割出来,意味着字符无法被准确的识别,也就意味着该车牌自动识别系统无法投入实际中应用。
经过图像预处理、车牌定位、字符分割并校正后,才可以进行字符识别。
车牌识别中最关键的步骤就是字符识别。
字符识别模块是目前最难处理的部分,却也是车牌识别技术中最关键的部分。
字符的识别率和识别时间是字符识别性能的主要技术指标。
快速、准确以及具备较强的鲁棒性是字符识别的目标。
一个好的车牌自动识别系统,关键就看其字符识别的性能。
由此可知,车牌分割和数字识别是车牌识别技术中的两大主要技术指标。
其中最关键的是数字识别技术。
1.5本文的主要内容与结构安排
本文研究的内容包括了车牌识别系统的五个主要组成部分的算法,提出了有效的解决策略,进行了测试,并完成了车牌识别系统的开发。
本文的主要内容共分为五章,内容安排如下:
第一节绪论,概述了车牌识别技术,总结了国内外车牌识别系统的发展历史和现状,介绍了车牌分割和数字识别在车牌识别中的作用,最后简述了本文的主要内容与结构安排;第二节车牌分割方法的研究,首先介绍了车牌获取的方法,接下来简述了车牌预处理的基本算法,包括灰度话、二值化、滤波、增强、边缘检测等,然后是车牌分割的基本步骤,最后介绍了归一化处理。
第三节车牌数字识别方法的研究,概述了数字识别的现状,简述了车牌数字特点,最后介绍了基于BP神经网络的车牌数字识别的算法。
第四节主要介绍的是基于MATLAB的算法设计与实现,主要介绍MATLAB概述、车牌分割算法设计、车牌字符识别算法设计三个方面,包括系统的算法流程、程序设计,并给出了设计的仿真结果与分析。
最后一部分是结论,总结了本文的研究成果,并做出了分析和评价,同时对未来提出了展望。
2车牌分割方法
2.1车牌获取
车牌获取即图像采集部分,大体分为检测和成像两个部分。
车辆检测即使用传感器技术,检测目标区域有无车辆。
当机动车辆在路过预先设置好的摄像头并达到触发条件,摄像头即可拍摄出原始图像,图像采集卡将所拍摄的图像从视频信号转化为数字信号传输到计算机中,这就完成了车牌的获取过程。
其中车牌获取流程图如图2.1所示
图2.1车牌获取流程图
实质上,车牌获取就是指在实际拍摄的图像中确定车牌区域、位置,以便提取、分割车牌区域。
受自然等客观条件的影响,需要对车牌进行预处理,以便提高车牌的识别率。
车牌识别主要包括三个步骤:
(1)对拍摄的图片进行格式识别、灰度化、二值化、滤波、边缘检测等图片预处理;
(2)利用各种算法将已通过预处理的图片准确定位其车牌的位置,并将车牌所处的位置分割出来,为接下来的字符切割做好相关准备;(3)对切割出来的字符进行归一化和识别。
2.2车牌预处理
照片拍摄的好坏受许多外界因素决定,例如光照强度因素,晴天与阴天所拍摄的照片质量是不一样,白天和晚上所拍摄的照片质量更是不同;再比如说,车辆行驶速度因素,行驶慢的原始图像会比行驶快的原始图像质量要好一些,此外,过快的车速,会导致照片的字迹模糊不清,这也就必定在一定程度上影响着字符识别率。
这也就是为什么要对原始图像进行灰度化、二值化、滤波等预处理的原因[4]。
2.2.1灰度化
目前,我国车牌的原始图像采集,由于基本上都是通过摄像机、数码相机等拍摄设备拍摄获取,所以一般情况下,原始图像为彩色图像。
由于彩色图像包含着大量的颜色信息,且每个像素都具有R、G、B三种不同颜色分量,所以在对其进行处理时,浪费许多系统资源的同时也会降低系统的执行速度。
因而,我们需要对原始图像进行灰度化,以便减小图像占用的存储空间。
最基本的灰度化是直接取彩色图像R、G、B三个分量中最大值或平均值代替各分量。
由于灰度化后,每一个像素的三个分量都是均等的,解决可彩色图像中颜色差异的问题,只存在亮度上的差异。
灰度图像存在256个亮度级,其中白色的灰度值为255,黑色的亮度级为0[5]。
另外,我们也可以采用加权系数对图像进行灰度化,常用到的灰度化公式:
(2-1)
其中I为灰度化之后的像素值,R、G、B分别为红、绿、蓝的像素。
2.2.2增强
拍摄车牌图像时往往受到许多条件的限制和干扰,这使得图像的灰度值与实际景物不完全相同。
成像系统有它一定的亮度范围,亮度最大值与其最小值之比称为对比度。
因为成像系统的有限亮度,常使得对比度不足,导致图像视觉效果很差,这也就直接影响了图像的后续处理。
因此,研究者常常通过灰度变换和直方图均衡化来增强对比度,以改善视觉效果。
造成对比度不足的原因主要有:
(1)目标的远近不同导致的图像中央区域和边缘区域的灰度失衡;
(2)摄像头扫描时各点的灵敏度差异产生的灰度失真;(3)曝光不足或过度而导致灰度值限定在较小的范围。
这时可以采取灰度变换增强灰度变化范围,丰富灰度层次,以达到增强图像对比度的目的。
用线性单值函数,对图像内各像素点作线性扩充,从而有效的改善图像的视觉效果。
为了克服上述问题,本文采用灰度信息与背景信息相结合的局部灰度修正增强方法,其基本原理是将原图像的灰度和背景图像区域相减,实现图像的增强,即所谓的形态学top-hat变换[9]。
设用h表示top-hat变换后的结果,则top-hat变换可定义为:
(2-2)
其中,
表示原灰度图,
表示使用结构元素
对集合
进行开操作[6]。
图像的top-hat变换对增强目标区域,隐藏背景细节有很大用处,最初的命名是由于使用了带有一个平顶的圆柱形或平行六面体形的结构元素。
2.2.3二值化
灰度图像一般有256个灰度级的单色图像,能表现出比较丰富的明暗度。
但在车牌识别时,我们需要彻底的从原始图像中分离出目标。
为了减少背景像素的干扰,保留并增强目标区域的信息,通常将图像分为目标和背景两部分。
即得到的图像只有0和1两个灰度级,常规是将目标区设为1,背景区为0,这样就可以得到我们所说的二值图像。
用数学式可以表示为:
(2-3)
其中,BW为二值图像某像素的像素值,
为该像素在灰度图像中对应的灰度值。
为选定的阈值。
图像的二值化处理即将灰度图像中除了灰度值为0的像素点外,其余的像素点均设为255.通过二值化处理后的整个图像明显呈现出黑白效果。
为了得到理想的二值图像,一般采用封闭、连通的边界定义不叠交的区域。
二值化算法一般分为全局阈值算法和局部阈值算法或称为自适应阈值算法[7-8]。
从二值图像可以得到图像中对象物的形状特征的主要信息。
与灰度化后的图像相比,二值化后的图像具有以下几个特点:
大量减小了信息量,加快了处理速度,降低了成本,实用价值更高。
所以一般情况下,在对车牌字符分割前,会对图像进行二值化处理。
2.2.5滤波
图像的本质其实就是光电信息,图像噪声主要有以下三个来源:
图像在信号的转换过程中所引入的噪声;大气层中的浪涌等引起的脉冲干扰;粒子性或不连续性所引起的自然起伏性噪声[10]。
由于图像的质量被噪声所恶化,导致图像模糊不清,甚至连图像的本身特征都会被淹没或改变,这给图像的分析与识别带来了较大的困难。
为了消除图像的噪声,常常采取滤波措施,且合适的滤波还可以锐化图像与增强图像的边缘信息。
常用的滤波方法有空间域滤波和同态滤波两种,其中空间滤波又分为三种:
平滑滤波、中值滤波、高通滤波。
其中,平滑滤波主要的作用是模糊和消除噪声,常用的方法是领域平均法,即求邻近像素点的平均亮度。
这种方法简单,且处理速度快,但在降低噪声的同时使图像产生了模糊,尤其是在边缘与细节处。
中值滤波是非线性滤波,也是领域算法,类似卷积。
与平滑滤波不同的是,它的计算不是加权求和,当其像素点数为奇数时,则将该领域内的像素按其灰度值排序,再去其中间值作为领域中心像素点的输出值;当其像素点数为偶数时,取排序后的中间两个像素灰度值的平均值作为输出值[11]。
为了锐化图像突出图像边缘,常对图像采用了高通滤波,在增强图像边缘的同时孤立的噪声点也得到了增强。
高通滤波的效果也可以通过原始图像减去低通图像得到,这种方法称为非锐化掩模法。
比较常见的高通滤波的冲激响应阵列有以下三种:
(2-6)
2.2.4边缘检测
边缘是图像的重要特征,图像理解、分析的第一步通常是边缘检测。
由于边缘是图像灰度变化最严重的区域,传统的边缘检测通常是通过计算图像中像素的梯度值来确定边缘点。
此外,比较常见的图像边缘提取算子有Robert梯度算子、滤波算子、Canny算子、拉斯算子等。
拉斯算子前几种算子都是通过计算一阶导数来检测边缘,但这几种算子导致检测到的边缘点过多,不利于后期处理。
而拉斯算子是二阶导数段子,再找出梯度局部最大值对应点后才确定其为真正的边缘点。
其中拉普拉斯的运算公式为:
(2-4)
拉普拉斯算子同样是借助模板实现,其中最为常见的模板如下:
(2-5)
上文所提到的几种边缘检测算子都对噪声非常的敏感,也就是说必然会在计算的过程中加大噪声的成分。
因此,通常在处理含有比较大的噪声图像时,需要先对图像进行平滑操作,然后再进行微分,这也就产生了新的边缘检测方法——LOG边缘检测。
这种检测方法需要用高斯函数对图像进行平滑处理后,再用拉普拉斯算子计算[09]。
2.3车牌分割
2.3.1车牌定位
车牌定位的本质是把车牌图像从含有汽车和背景的图像中提取出来,即输入车牌原始图像输出车牌图像。
在自然环境下,原始图像采集背景复杂,光照不均,在自然背景中准确地确定牌照区域是整个牌照是别的关键。
经过图像于处理后所得到的图像,在垂直方向上的面积投影出现了峰-谷-峰的特性。
根据这种特性,可以检测到车牌的区域,即车牌区域定位法,这种初步定位后的车牌还需要进一步微定位。
对初步确定出来的车牌进行微定位,而所谓的微定位法即对基本定位后的车牌图像进行局部分析,以便进一步确定字符范围,缩减车牌的左右、上下边界,这有利于后续的车牌处理,确定车牌的具体位置后再提取车牌[12]。
微定位技术包括三部分:
(1)横向定位;
(2)纵向定位;(3)微定位。
需要在大范围的原始图像中找到车牌的区域,需要对原始图像进行搜索,找到符合车牌特征的部分区域作为车牌候选区域,在对其进行深层次的分析、评判,计算,最终找到真正的车牌区域,并将该区域从图像中分割出来。
图2.2车牌图像定位示意图
目前,国内外车牌定位的主要方法有:
特征定位法,边缘检测定位法,数学形态定位法,小波变换法,开运算定位法等。
本文中所采用的是开运算定位法。
2.3.2几何校正
在实际的车牌获取过程中,通常是由道路某侧或上方的摄像机拍摄所得。
因此,所得到的原始图像车牌区域角度、距离有一定的差距,也就是说原始图像中的车牌存在一定的倾斜度。
主要的三种倾斜方式是:
水平上的倾斜、垂直上的倾斜、水平和垂直上的倾斜。
车牌的倾斜度校正前,需要先对车牌的倾斜进行检测。
其检测公式如下:
(2-7)
其中,
表示第i行的0、255的跳跃次数。
常见的几种倾斜校正的方法为:
(1)基于霍夫变换的校正算法,
(2)基于车牌投影变换的校正算法[13-14],(3)基于直线拟合的校正算法[15]。
本文所采用的方法是基于车牌投影变换的倾斜校正算法。
基于车牌投影的倾斜校正算法实质上是一种基于Radon变换的校正算法。
用二维函数
表示原始图像坐标为(x,y)的像素值,某方向上的投影可用该方向上的积分表示。
积分公式如(2-8)所示:
(2-8)
其中
为
的周期函数,T=180°,且
[0°,180°]。
坐标变换的公式如(2-9)所示:
(2-9)
Radon变化所检测的直线是
在坐标
的峰值,可根据横坐标和纵坐标确定一条直线。
2.3.3分割算法
字符分割实质上是把车牌上的字符分割成一个个单个的字符,传统的字符分割方法有投影法[16-18]、模板匹配法、聚类分析法[19-20]。
由于投影法比较准确、编程较简单,且易于实际操作,能满足在复杂环境下,所以本文采用的是投影法分割车牌字符。
投影法的具体操作如下:
(1)对灰度化的车牌图像从下向上逐行扫描,逐行统计出像素值为255的像素的个数,当其个数大于7时(车牌有7个字符),认为寻找到车牌字符的下边界,同理,找到车牌的上边界。
去除车牌字符上下边界以外的区域,之后设车牌的高度为height,宽度为width。
(2)对车牌图像从左向右逐列扫描,逐列统计像素值为255的像素的个数,并将结果保存在一位数组count[width+1]中,其中count[i]用于存储第i列像素值为255的像素的个数。
(3)根据汉字特征,需要设置两个阈值来分割一个汉字字符。
设两个阈值分别为threshold1,threshold2。
从左向右扫描经过预处理后的车牌图像,记第一个大于阈值threshold1的列为汉字的开始位置S,记第一个小于阈值threshold1的列为H,比较这两列的宽度H-S与threshold2的大小直到找到与S列相差的宽度大于threshold2且满足像素值为255的像素的个数小于阈值的列,设为车牌的汉字字符的结束列。
在分割不连通的汉字的时候,这种改进的方法起到作用是显著的。
(4)之后的英文字母和阿拉伯数字不存在不连通性的问题,所以只要利用第一个阈值threshold1就可以分割出车牌剩下的字符。
(5)若出现像素值为255的像素个数大于阈值threshold1时记为车牌字符开始的位置,小于阈值threshold1时记为车牌字符的结束位置。
如此重复的下去,直到字符全部分割出来为止。
流程图如图2-1所示:
图2.3车牌图像定位示意图
2.3.4归一化处理
由于原始图像采集的时候,图像像素值不一致,所以经过字符切割后所得到的字符大小也不一致,因此需要在进行字符匹配之前需要对字符图像进行归一化处理。
不言而喻,归一化处理的目的是使得车牌字符与标准模块中的字符特征一致。
归一化处理可以分为倾斜度校正和大小归一化两个主要部分,其中倾斜度校正部分使用的是MATLAB工具箱中的Imrote函数。
由于大小归一化值得是长度和宽度上分别乘以某个比例因子,使其大小与模块中的字符大小一致,大小归一化最为常用的方法是将整个牌照图像按线性比例放大或缩小到标准模快的大小。