王剑雄 王玉兰
(河北建筑工程学院,河北 张家口 075000)
目前,一些发达国家已经将车牌识别技术应用在停车收费系统和交通监控系统的实际系统中,在全天候的条件下识别精度超过95%;国内车牌识别技术发展较慢,虽然取得了一些成果,但仍停留在实验验证阶段,目前的实验室识别精度为90%,而在全天候条件下识别精度低于85%,远远低于实际应用的要求.目前,车牌识别主要有以下几种识别方法:模板匹配法、特征统计匹配法和神经网络识别法.模板匹配法对规整字符的识别率比较高,但在字符变形等情况下,识别能力有限;特征统计匹配法在实际应用中,当字符出现缺失、模糊时,识别效果不理想;神经网络识别能有效识别解析度较高的车牌,具有强大的分类能力、容错性和鲁棒性,汽车牌照中的字符识别很多都是采用神经网络来实现,其中BP神经网络是应用最为广泛的网络算法[1].
由于BP神经网络算法自身存在一些不足,如收敛速度慢、局部最优、难以确定隐含层节点数和训练过程中常发生振荡等.针对以上情况,本文在动量因子的选取、学习速率的改进和网络权值的修改等方面做了一定的改进,有效避免网络可能陷入局部最小值,并且能自适应调整学习速率,加快收敛速度,防止振荡现象发生.
车牌识别系统主要包括视频输入、图像的预处理、车牌粗定位、车牌精确定位、字符分割、字符识别等几个部分.由于在自然的环境下采集到车辆的图像质量并不是很好,所以必须先对图像进行去噪、边界增强等一系列的图像预处理.在车牌定位过程中,可能对车牌角度进行一定的旋转,使得它的位置平行于X轴,最后对它的位置与大小进行归一化处理.定位出车牌的位置后,就要对车牌进行字符分割了,把车牌区域中的所有字符分割出来,然后对分割出来字符进行识别,最后把识别出的字符交给决策和管理算法.本文主要阐述如何改进BP算法,以便更好地识别字符.
BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号Yk,网络训练的每个样本包括输入向量X和期望输出量t,网络输出值Y与期望输出值t之间的偏差,通过调整输入节点与隐层节点的权值Wij和隐层节点与输出节点之间的权值Tjk以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止[2].BP网络结构如图1所示:
图1 BP网络结构
BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型.隐层节点输出模型如公式(1),输出节点输出模型如公式(2)
Oj=f(∑Wij×Xi-qj)
(1)
Yk=f(∑Tjk×Oj-qk)
(2)
其中f-非线形作用函数;q-神经单元阈值.
作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取值(0,1),作用函数模型公式如(3)
f(x)=1/(1+e-x)
(3)
误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数,如公式(4):
Ep=1/2×∑(tpi-Opi)2
(4)
tpi节点的期望输出值;Opi节点计算输出值.
神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵Wij的设定和误差修正过程,学习模型如公式(5)
△Wij(n+1)=h×Фi×Oj+a×△Wij(n)
(5)
h-学习因子;Фi-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子.
(1)学习因子h优化公式如(6),采用变步长法根据输出误差大小自动调整学习因子,来减少迭代次数和加快收敛速度,a为调整步长,在0~1之间取值.
h=h+a×(Ep(n)-Ep(n-1))/Ep(n)
(6)
(2)隐层节点数的多少对网络性能的影响较大,当隐层节点数太多时,会导致网络学习时间过长,甚至不能收敛;而当隐节点数过小时,网络的容错能力差.利用逐步回归分析法并进行参数的显著性检验来动态删除一些线形相关的隐节点,当由该节点出发指向下一层节点的所有权值和阈值均落于某个区域中(通常取±0.1、±0.05等区间),则该节点可删除.最佳隐节点数L可参考公式(7):
L=(m+n)1/2+c
(7)
m-输入节点数;n-输出节点数;c-介于1~10的常数.
(3)利用多元回归分析法对神经网络的输入参数和输出参数进行处理,删除相关性强的输入和输出参数,来减少输入和输出节点数.本文字符归一化成32×16大小,输出只有10个数字,26个字符,34个汉字,故输入层节点个数为512,输出层结点个数是70.
(4)算法优化.由于BP算法采用的是剃度下降法,因而易陷于局部最小并且训练时间较长.用基于生物免疫机制既能全局搜索又能避免未成熟收敛的免疫遗传算法IGA取代传统BP算法来克服此缺点[3].
在该神经网络算法投运前,从道路拍摄到大量车牌数据,包括正常运行的、不正常运行的,作为其训练内容,以一定的输入和期望的输出通过BP算法去不断修改网络的权值.在投运后,也可根据现场的特定情况进行现场学习,以扩充ANN内存知识量.