基于MATLAB的车牌识别系统的设计与研究
基于MATLAB的车牌识别系统的设计与研究 摘要 汽车牌照自动识别系统是智能交通系统的重要组成部分,主要包括图像采集、图像预处理、车牌定位、字符分割、字符识别等五个核心部分,并提出了一套基于MATLAB的汽车牌照自动识别系统的方法。该方法具有很高的识别能力,能有效解决在有噪声和光照条件恶劣情况下车牌的定位、字符倾斜、字符分割提取等复杂问题,最后运用上述方法对汽车图像进行处理,表明MATLAB在车牌识别系统中的运用非常有效。 关键词:车牌识别,MATLAB,图像处理 由于机动车辆在在行驶过程中一般会受到光照强度、车辆行驶速度、摄像机拍摄角度等外界因素的影响,故在设计车牌自动识别系统时,要适当提高其自动识别的能力,对以上外界因素有一定的容阈。传统的设计方法为:利用静止的汽车牌照图片,利用C语言或C++语言来对图像进行处理,编程很复杂,维护难度大。而MATLAB语言对处理图像而言非常方便,可直接调用已经编好的函数,如可直接调用现成的函数进行复杂的傅里叶变换、拉普拉斯变换、二值化处理、数字滤波等操作。 1系统整体框架的实现 该系统主要由图像采集、图像预处理、车牌定位、字符分割、字符识别等五个核心部分组成。图像采集主要是指用摄像机拍摄在路面上行驶的汽车。图像预处理单元是指把拍摄下来的图片进行滤波、灰度化、二值化等预处理。因为拍摄的是整个汽车的照片,感兴趣的只是车牌的那部分,故要在整张图片上对车牌定位,字符分割就是对定位好的车牌图片的七个字符一一分割出来,最后对分割出来的七个字符进行识别。 2各单元功能的实现 2.1图像采集 图像采集是该系统的第一步,照片质量的好坏直接关系到系统识别的精度,故选择好的摄像设备,设置好的摄像角度是关键。随着现代社会的发展,数码照相机的分辨率已越来越高,可使用红外传感器来控制照相机的开启与关闭,照相机通过串口通信来传递图片信息给计算机。 2.2图像预处理 由于照片拍摄的好坏有很多外界因素决定,由于光照强度的影响,晴天拍摄的照片与阴天拍摄的照片质量肯定不一样,白天和晚上更是不同;由于每部车的车速的不一致,慢速行驶的车辆会比快速行驶的车辆拍摄的照片质量好一些,而且车速过快,会使照片的字迹模糊,这肯定会影响字符的识别。故要对拍摄的 照片进行灰度化、二值化、滤波等预处理。 (1)灰度化和二值化处理 拍摄的彩色图像包含很多的颜色信息,会占用较大的储存空间,还会影响系统的处理速度,图像的背景颜色有时和车牌颜色一致,这样就会增加车牌定位的难度。经试验检验,取阀值0.3得到的图像最理想,具体的MATLAB程序如下: I=imread('paizhao.jpg');%读入牌照图片 imshow(I,[]);%显示读入的牌照图片 I2=rgb2gray(I);%转化为灰度图像 figure,imshow(I2) I3=im2bw(I2,0.3);%二值化处理 figure,imshow(I3); (2)滤波处理 由于图像中不可避免的存在有噪声,常用的滤波方法有:低通滤波、高通滤波、带通滤波、带阻滤波。在MATLAB中调用Wiener2函数对图像进行滤波,具体的调用格式如下:Wiener2(I,[A,B],noise),I表示输入的图像,[A,B]卷积使用的领域大小,noise是噪声强度。 2.3车牌定位 由于整个图片的信息量太大,对系统有用的只是车牌的部分,为了不影响系统的处理速度,需要对车牌进行定位。根据我国机动车牌号(GA36-92)标准,所有的牌照都是矩形的,而且长宽的标准尺寸为44cm和14cm,本文根据牌照的这一特征来进行车牌的定位。车牌的长宽比为22:7,故面积与周长的平方 的关系为22a×7a2(7a+22a)2≈1/22,其中a为车牌的宽,可调用area和perimeter函数分别计算面积和周长。若检测到某区域的面积与周长的平方之比为近似为1/22则可确定为车牌部分。 2.4字符分割和归一化处理 (1)车牌字符的分割 字符分割就是把牌照上的字符分割成一个个单个的字符,传统的字符分割方法有投影法、模板匹配法、聚类分析法。投影法是指:先自下由上对图像进行扫描,遇到第一个白色点,记录下来。在自上由下进行逐行扫描,这样就得到图像的大致高度,再从左至右扫描,当碰到第一个白色点时,作为字符起点,继续扫描直到没有白色象素点时作为第一个字符的终点,然后继续按这种方法扫描,直至全部扫描完毕。模板匹配法是指:先把二值图像进行垂直投影,得到一个函数W(x),搜索W(x)的波谷值,并分别把各个波谷标上序号,在相邻的两个波谷之间分别作为左右边界进行分割。聚类分析法是指:众所周知汽车牌照一般是由7个字符组成,以等于车牌宽度的1/7为阀值,对车牌图像按行进行扫描,若发现有线段长大于阀值,则认为是牌照的上下边框。再以等于车牌高度的3/5为阀值,对车牌图像按列进行扫描,若发现有线段长大于该阀值,则认为是牌照的左右边框,因此可除去边框部分。最后把车牌平均分割成7块,达到分割的目的。本文采用投影法,因为投影法比较准确且编程较简单,易于实际操作,能满足在复杂环境下,分割汽车牌照字符。 (2)字符的归一化 由于数码相机拍摄的汽车图像大小不一样,所以得到的牌照上的字符大小就不一样,为了便于字符的识别,需要对字符进行归一化处理。归一化处理的目的就是使车牌字符同标准模块里面的字符特征一样。归一化处理分为倾斜度校正和大小归一化,而倾斜度校正前面已经调用MATLAB工具箱中的imrote涵数,而大小归一是指在长度和宽度方向上分别乘以一个比例因子,使其等于标准模块的字符大小,大小归一化常用的方法有两种:一种是将整个牌照图像按线性比例放大或缩小到标准模块尺寸,这样字符就自然的变为标准模块尺寸;另一种是分别从水平投影和垂直投影两个方向上对字符象素的大小进行归一化处理。在本文中运用MATLAB工具箱中的imresize涵数,进行归一化处理。 2.5字符识别 字符识别是本系统中的最后一步,也是最重要的一步,字符识别的精确度直接影响车牌识别系统的精确度。字符识别的方法一般有三种:人工神经网络算法、模板匹配法和BP神经网络。人工神经网络算法是模拟人脑或自然神经网络,是近些年来提出的新型技术,它的优点是:①具有强大的逼近功能可任意逼近复杂的非线性关系;②具有很强的自适应功能;③具有很好的鲁棒性和容错性;④具有储存功能,但系统还不成熟,编程复杂。模板匹配法是将归一化的字符分别与字符库的字符进行比较识别。我国的车牌字符包括50多个汉字,25个大写英语字母,10个数字,可以把这些字符做成标准的模块并建立一个数据库。实践证明模板匹配法操作简单,抗干扰能力强,识别率高。BP神经网络又叫误差反向传播算法的人工神经网络,具有多学科交叉技术领域的特点。在MATLAB工具箱中可调用newlin和adapt函数进行字符识别。本系统运用简单的模板匹配法进行字符的识别,这就要求要建好标准的模板字符库。 3结束语 从MATLAB运行结果来看,该系统可以很好地完成车牌的定位、字符的分割和字符的识别,与传