车牌识别技术(Vehicle License Plate Recognition,VLPR)是计算机视觉和模式识别技术在现代智能交通系统中的一项重要研究课题,是实现交通管理智能化的重要环节。它是以数字图像处理、模式识别、计算机视觉等技术为基础的智能识别系统,它利用每一个汽车都有唯一的车牌号码,通过摄像机所拍摄的车辆图像进行车牌号码的识别。在不影响汽车状态的情况下,计算机自动完成车牌的识别,从而可降低交通管理工作复杂度。车牌自动识别技术在车辆过路、过桥全自动不停车收费,交通流量控制指标的测量,车辆自动识别,高速公路上的事故自动测报,不停车检查,车辆定位,汽车防盗,稽查和追踪车辆违规、违法行为,维护交通安全和城市治安,防止交通堵塞,提高收费路桥的服务速度,缓解交通紧张状况等方面将会起到积极的作用。
针对以往车牌识别算法的缺点和不足,例如识别率低、识别速度慢、车牌定位不准确等,本文提出了一种新的基于小波分析的改进车牌定位算法,同时将引入动量因子的BP神经网络应用到字符识别,加快了网络的训练过程。
2 基于小波变换和神经网络的车牌识别技术总体设计
2.1 车牌定位算法的基本思路
在某一个相位的红灯周期内,如果检测到有车辆通过,触发视频采集模块采集前端摄像机传送来的视频流,进行图像采集,采集到的图像是24位的真彩色图像,首先将图像进行灰度变换,转换为256色的灰度图。在车牌区域的局部图像内,字符笔画与车牌背景间的亮度反差形成明显而密集的边缘,上升缘与下降缘交替出现。利用车牌区域的这一高频特征,采用小波分析的多分辨率思想,进行水平方向上的小波变换,小波变换后的高频部分可以突出车牌区域,后继处理只需要对高频图像进行变换,即可定位出车牌。采用这种方法可以将运算量减少一半,大大缩短了车牌定位的时间。
接下来,利用局部阈值方法,将高频图像部分二值化。此时的图像可能含有一些干扰信息,因此要先对其进行中值滤波,以消除一些不必要的噪声。考虑到数学形态学的腐蚀和膨胀运算可以分别起到突出轮廓和填充空洞的作用,因此利用数学形态学的闭运算来突出车牌的轮廓和消除孤立的部分。然后根据对车牌的先验知识(例如长宽比在一定范围内等)提取车牌的候选区。最后,将车牌候选区域变换到HSI色彩空间,通过判断背景的颜色来确定准确的车牌区域。该算法的流程图表示见图1:
图1 车牌定位算法
2.2 字符识别算法的基本思路
首先,将已经确定的车牌区域变换成灰度图。利用中值滤波进行预处理,然后利用中值滤波消除牌照上的污点,利用HOUGH变换对车牌进行倾斜度矫正。接着采用自适应阈值法,将图像二值化。利用竖直方向的投影具有波峰、波谷间隔出现的特性,将字符进行分割。最后,将分割的字符大小归一化后,送入改进的BP神经网络进行字符识别。改进的BP神经网络采用了动量因子,实验表明采用该方法大大缩短了网络的训练时间。字符识别流程图如图2所示:
图2 字符识别算法
3 车牌定位中小波变换的运用
本方案使用Mallat一维分解算法实现图像的小波分解。假设2j=W,即现在的图像分辨率为j,则待变换的图像表示为fj(n),则离散函数fj(n)的小波分解为:fj(n)=wj-1-fj-1 其中, , , , 。上式的分解中,Wj-1代表了图像的变化比较明显的部分,即图像的高频部分。而fj(n)代表图像所包含的基本信息,即图像的低频部分。将图像分解为低频和高频部分后,车牌字符、边缘等变化比较明显的部分就包含在一维小波分解后的高频图像部分中了。水平方向小波分解的程序流程图见图3所示。
图3 小波变换流程图
图4为图像的一维水平和竖直方向上的小波变换(增加对比度后的效果)。
图4 小波变换
由图4可以得出,小波变换低频系数图像保持了原图像轮廓的主要信息,而高频图像反应了原图在不同方向上的细节信息。
分析小波高频图像二值化后的水平投影图可以得到:尖峰的宽度即为车牌上下方向的大致坐标。从竖直投影图可以看出,变化平缓的部分为车牌左右方向的大致坐标。但图像中存在的噪声对准确识别车牌位置仍然有很大的干扰,但干扰噪声明显比采用边缘检测算法要少的多,更重要的是只需要对高频图像进行检测,运算时间缩减了一半,只需要扫描半幅图像。
4 字符识别中改进BP神经网络的运用
4.1 字符识别总体设计
车牌的第一个字符为汉字,第二为英文字母,第三个字符为英文或阿拉伯数字,第四至第七个字符为阿拉伯数字,同时考虑到过于复杂的神经网络结构会增加网络训练时间,同时计算量也会增大,所以采用四种不同结构的BP神经网络分别进行识别。字符识别的过程如图5所示:
图5 字符识别原理
4.2 BP神经网络的设计
(1) 网络种类以及网络层数的确定
神经网络的许多特性正是由于隐含层的存在才具备的。然而,具体取多少隐含层合适至今为止却没有确定的规律可循,不同的应用对象,与其相适应的网络结构差别很大。本文中采用具有一个隐含层的三层BP神经网络。考虑到BP神经网络训练速度慢,容易陷入局部最小,这里采用加入动量因子的改进BP算法来构造汉字神经网络。
(2) 传递函数的确定
由于BP网络的非线性逼近能力是通过S型传递函数体现出来的,所以隐含层一般采用S型传递函数,输出层的传递函数可以采用线性或S型传递函数。当希望网络的输出范围无限制时,应当使用线性传递函数。当用S型传递函数作为输出层的传递函数时,其非线性逼近速度快于线性传递函数,但此时的网络输出被限制在(0,1)或(-1,l)。在我们设计的神经网络汉字识别器中,为了减少神经网络输出层的神经无数,我们采用二进制编码来作为输出的目标向量。故我们在输出层采用对数S型传递函数,以限制输出范围在[0,1]范围内。
(3) 输入层个数的确定
输入层个数根据待识别字符所抽取的特征向量维数大小来确定。考虑到速度和精度双重因素,因此特征向量维数不能太高。过低的维数将无法描述汉字之间的差异,较高的维数则对于待识别图像的微小偏移比较敏感。在本系统中,特征提取采用的是基于投影图和轮廓提取的方法进行的,网络的输入层个数应取为:96个,即为竖直投影图的像素个数加上水平投影图的像素个数。
(4) 输出层神经元个数的确定
在系统中,神经网络输出层神经元个数是依据所需要识别的字符数目来确定的。此外,为减少输出层神经元数,我们采用二进制编码来作为输出的目标向量。举例而言,在车牌的汉字只有30多个,那么把30多个汉字进行二进制编码,最少需要5位,如00000,00001,00010等等,故共需要5个输出端,其目标向量即为上述的二进制的编码值。对于字母数字神经网络,需要识别的字符个数有36个,把这36个字符进行二进制编码至少需要6位,因此字母数字神经网络的输出层神经元的个数是6个。但是,我们所选取的神经网络的激励函数为S型的函数,其图形如图6所示:
图6 Sigmod 函数
由于在无穷远处才能取得极值,这里的编码取为0.1和0.9来分别表示0和1。例如鲁的编码为:[0.1, 0.1, 0.1 ,0.1, 0.1]。
(5) 隐含层神经元个数的确定
神经网络隐含层的神经元个数过少,会导致训练时间过长,迭代次数多,权值来回调整,不易稳定。隐含层神经元个数过少,会增加网络的学习时间,网络所需要的存储容量也变大。因此,综合以上几点,汉字神经网络隐含层神经元的个数选取为18个。
(6) 初始值的选取
由于神经网络系统是非线性的,故网络初始权值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短的关系很大。如果初始值太大,使得加权后的输入落在S型传递函数的饱和区,从而导致其导数 f'(x)非常小,而在计算权值修正公式中,因,当f'(x)~0时,则有δ~0,这使得Δδ~0,从而使得调节过程几乎停顿下来。所以,一般总是希望经过初始加权后的每个神经元的输出值部接近于零,这样可以保证每个神经元的权值都能够在它们的S型传递函数变化最大之处进行调节。所以一般取初始权值在(-1,l)之间的随机数,而且要求数值比较小,这样可以保证每个神经元在一开始就处在它们传递函数变化最大的地方。
在对系统进行仿真测试时,使用时间作为种子,来产生随机的初始值。函数srand((unsigned)(time(NULL)));Wij= (double)(rand())/(32767/2) -1用来产生在[-1,1]内的初始值。
(7) 学习速率的选取
学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率将导致较长的训练时问,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围一般在[0.01~0.8]之间。这里的学习速率选取为0.4。
(8) 动量因子的选取
动量因子的引入可使网络权值的变化不仅反映误差曲面局部的梯度信息,而且反映了误差曲面最近的变化趋势。其实质是将最后一次权值变化的影响,通过一个动量因子来传递。引入动量因子可以平滑误差曲面梯度方向剧烈变化的作用,从而在一定程度上解决了局部最小值的问题。
(9) 总结
将前面所确定的各个参数进行总结。
(10) 神经网络的训练
设计完神经网络的结构之后,接下来就需要对网络进行训练。
图7中曲线2所示为采用动量因子的汉字神经网络训练误差曲线图,曲线1所示为采用一般的BP神经网络的汉字神经网络训练误差曲线图。可以明显看出,改进的BP算法比一般的BP网络收敛更快,大大缩短了网络训练所使用的时间。
图7 误差曲线图
4.3 字符识别测试结果
为了验证所设计的神经网络的有效性,测试集选取了300幅图片进行了实际测试,表1列出了各个神经网络识别的一些参数。
表1 四种网络训练参数表
实验结果表明,汉字识别网络对于光照条件和清晰度较好的汉字基本能够识别出来,具有较强的容错能力和学习能力。同普通的BP神经网络相比,网络收敛速度更快,可以有效地提高系统的抗干扰性和识别率。字母数字网络能够识别大部分牌照,但对于一些污染严重、光照条件弱的车牌无法进行准确识别。
5 结束语
基于小波的车牌定位算法,可以较好的进行车牌定位,定位率可以达到95%以上。在光照条件较好的情况下,对字符的识别率可以达到80%以上,对于光照条件较差的图片,识别率相对较差一些。本文选取了300幅图片进行了实际的测试,测试的结果如表2所示。
表2 字符识别测试结果
实际的工程测试表明所用的算法在保证系统运行稳定的情况下,可以快速、比较准确的进行车牌的定位。
-
引用 dqfxm2003 2006/6/17 10:21:14 发表于2楼的内容
-
引用 匿名 2007/10/9 13:23:12 发表于3楼的内容
-
引用 车牌识别 2007/12/26 0:33:16 发表于4楼的内容
-
-
-
shengjinli | 当前状态:离线
总积分:259 2024年可用积分:0
注册时间: 2007-12-07
最后登录时间: 2009-01-05
-
shengjinli 发表于 2007/12/27 12:20:59
引用 shengjinli 2007/12/27 12:20:59 发表于5楼的内容
-
-
-
-
princessbing20 | 当前状态:离线
总积分:57 2024年可用积分:0
注册时间: 2008-05-12
最后登录时间: 2008-05-12
-
princessbing20 发表于 2008/5/12 13:25:59
我是大四学生,正在做这个毕业设计,需要源代码,请问您可以发给我吗?我的QQ是418689680 ,邮箱是princess-bing@163.com,谢谢您了!真的非常感谢了!6楼 回复本楼
引用 princessbing20 2008/5/12 13:25:59 发表于6楼的内容
-