APP下载

基于BP神经网络的车牌字符识别改进方法

2017-10-21董天宇陈至坤

承德石油高等专科学校学报 2017年4期
关键词:字符识别车牌字符

董天宇,陈至坤,李 燊

(华北理工大学 电气工程学院,河北 唐山 063210)

基于BP神经网络的车牌字符识别改进方法

董天宇,陈至坤,李 燊

(华北理工大学 电气工程学院,河北 唐山 063210)

提出一种基于BP神经网络的车牌字符识别优化算法,设计了一种四层结构的BP神经网络模型。该模型通过加入一个隐含层和动量项实现了更加准确识别车牌字符的功能,通过BP网络各层之间信息的快速传递实现了车牌字符的识别,为缓解交通问题提供了切实有效的解决方案。

车牌识别;BP神经网络;字符识别算法

汽车牌照识别系统的主要研究步骤包括汽车图像的采集、图像的预处理、车牌的定位分割、车牌字符的自动识别。该系统主要应用在学校、政府、机关部门、各大超市和商场、甚至高速公路ETC出入口。在图像采集过程中,各种环境的综合影响使得图像采集后的车牌照片模糊不清、难以使用计算机进行确认,导致最终识别效果不佳。因此,提出一种能够快速有效地识别车牌字符的方法迫在眉睫。车牌字符识别方法的研究能够为缓解交通问题提供切实有效的帮助。

1 四层BP神经网络模型的提出

近20年间,国内外许多专家和学者都在致力于车牌字符识别方法的研究,这期间有许多优秀的成果,但仍存在许多问题,如利用两层BP神经网络进行识别,识别正确率不到90%,而且系统受照明条件影响较大[1]。用SVW支持向量机的方法识别车牌,该方法对车牌的倾斜、大小、颜色甚至照明强弱的影响具有鲁棒性,SVW模型较为复杂,识别时间相对较长[2]。借助车牌的颜色特征对其中字符识别,但不足之处是对光照敏感,车牌污损使识别率下降[3]。参数被模糊化的二维加博滤波器对获取的图像进行识别,这样的系统鲁棒性较差[4]。用三层BP神经网络对字符识别,但系统没有做到完全收敛[5]。提取出的字符与现有模板进行匹配,这种方法对车牌有污损的情况识别率不足[6]。字符有污损的情况下依然可以获得较高的识别率,但对于字符缺损或污染较大的情况不能准确识别[7]。采用彩色数字图像模式识别方法,该方法受自然光照影响较大,故不适合用于实际环境中的识别工作[8]。通过改进目标函数方法提高识别率,但系统对于一些易混淆的字符不容易识别[9]。将特征匹配与神经网络相结合的方法,该方法对易混淆的字符识别效果较好,但对于隐含层层数和节点数的选取缺乏科学的实验研究,容易导致收敛速度慢[10]。

通过上述问题的研究,提出为原有的三层BP神经网络添加一个隐含层以及动量项。设计一个添加了动量项的四层BP神经网络模型,该模型将通过输入信息在各层之间的传递实现对大量不同车牌字符的准确识别。本文算法在解决以上问题,在车牌字符准确识别方面具有巨大前景。

2 BP神经网络

2.1BP网络的结构

在各种类型的神经网络中,BP神经网络具有三层或三层以上结构,层与层之间无反馈,层内无互联。BP神经网络结构如图1所示,其中信息开始输入的一层为输入层,输出的一层为输出层,中间各层称为隐含层(也称中间层)。

2.2BP网络的学习算法

2)随机选取一个输入样本(Xk,Yk)输入给网络。

3)计算输入层的输出。输入层的输出向量与输入向量保持一致。

4)按照式(1)和式(2)计算隐含层各个神经元的净输入和输出

(1)

(2)

5)按照式(3)和式(4)计算输出层各个神经元的净输入与实际输出

(3)

(4)

6)根据给定的期望输出,按照式(5)计算输出层各个神经元的校正误差

(5)

7)按照式(6)计算隐含层各个神经元的校正误差

(6)

8)按照式(7)和式(8)修正隐含层至输出层的连接权值V和输出层神经元的阈值,表示学习速率,0≪1

(7)

(8)

9)按照公式(9)和公式(10)修正输入层至隐含层的连接权值W和隐含层神经元的阈值,其中表示学习速率,0≪1

(9)

(10)

10)给网络输入下一组样本,返回3),m个样本学习结束后对训练完毕。

11)审查全局误差E是否小于规定大小。若满足则转至13),否则继续。

12)查看网络学习的次数,若小于初始要求次数,返回2)。

13)结束。

在以上步骤中,3)~5)为输入样本按照网络进行正向传播过程,6)~9)为误差按照网络进行逆传播的过程,到步骤10)为止网络完成了学习训练,11)~12)判断误差是否达到初始要求。

BP神经网络不间断的对学习样本进行处理,学习过程的同时把得到的误差沿输出层至输入层进行反向传播,使网络的连接权值和阈值不断地进行更正,最终使得实际输出值无限向期望输出值靠拢。收敛即指的是这一过程。对于BP神经网络,要使网络收敛一般要经过几十次至数千次的重复学习过程。

3 改进BP神经网络

3.1增加动量项的BP算法

标准BP算法在调整连接权值时,通常疏忽前一次误差变化时权值和阈值变化对本次调整的影响,因而网络的收敛过程常常发生震荡。引入动量项后,本次连接权值的调整就会按照上一次误差变化的趋势进行,即相当于一个缓冲,避免了震荡问题的发生。我们将连接权值调整公式如下:

(11)

式中,(n-1)为动量项,其中n为学习次数,η为动量系数,0<η<1。

3.2适当选取隐含层层数及节点数

隐含层不同于输入层和输出层,可以从输入信号中提取特征,对不同信息进行综合处理。增加一个隐含层可以提高BP神经网络对车牌中易混淆字符的处理能力,使字符的识别率得到提高。

科学的选择隐含层节点数,通常要求通过试验来确定,在BP神经网络中先设置较少的隐含层节点,然后逐渐增加隐含层节点数,同时使用同一学习样本进行训练,网络误差最小时对应的隐含层节点数即为最优。在实际设计中,也可以选择经验公式对个数进行粗略确定。

(12)

式中,m表示输入层神经元数,n表示输出层神经元个数,s表示隐含层神经元个数。

3.3BP神经网络的构建

在把样本输入到网络前需要将样本进行特征提取,即设置特征向量P。利用K-L变换将100个35*20的字符样本统一变为32维列向量输入到网络,最后设置好目标向量T后就可以进行训练了。

1)权值和偏置的初始化

在输入提取好的特征矩阵P进行训练前还需要初始化每一层权值和偏置:

net.layers{1}.initFcn=‘initwb’

net.inputWeights{1,1}.initFcn=‘rands’

net.bias{1,1}.initFcn=‘rands’

net.bias{2,1}.initFcn=‘rands’

net=init(net)

2)网络对象的建立

使用newff函数可以创建一个具有四层结构的BP神经网络。这个函数由四个参数组成,第一个参数用来定义输入向量的最大值和最小值。第二个参数用一个数组表示每层神经元个数。第三个参数是网络每一层转移函数的类型。最后一个参数定义了训练所用的函数类别。

网络开始训练前还需要对参数进行设置,输入层神经元个数根据试验后确定为32个。输出层神经元个数用公式N=INT来表示(N表示网络输出层神经元个数,a为车牌字符个数,即a=7)。INT为取整符号, INT=1。以汉字为例,隐含层节点一层为28个,二层为20个,构建以下网络:

net=newff(minmax(P),[32,28,20,1],{‘logsig’, ‘logsig’, ‘logsig’, ‘purelin’},‘trainrp’);

net.inputWeights{1,1}.initFcn =‘randnr’;

net.layerWeights{2,1}.initFcn =‘randnr’;

net.trainparam.epochs=5000;

net.trainparam.show=50;

net.trainparam.goal=0.0000000001;

net=init(net); [net,tr]=train(net,P,T);

A=sim(net,P)

MSE=mse(E)

3)用实验样本进行测试

为每一个字符设计了一个网络,并分别给每个网络输入了100个取自不同环境的字符样本测试最终识别率。输出值result3接近“1”的程度代表了识别率。

W1=net.IW{1,1};

B1=net.b{1,1};

W2=net.LW{2,1};

B2=net.b{2,1};

W3=net.LW{3,2};

B3=net.b{3,1};

A=imread('recog.bmp','bmp');

AA=reshape(A,700,1);

test=X(:,:)'*im2double(AA);

result1=logsig(W1*test+B1);

result2=logsig(W2*result1+B2);

result3=purelin(W3*result2+B3);

仿真结果对比如图2、图3所示。

从仿真结果可以看出,添加了动量项以后系统振荡次数明显减少,系统鲁棒性更强。

4 实验结果分析

从大量不同环境车牌中分别分割出了汉字、数字、字母的100个样本输入到BP网络进行训练,由仿真结果可以看出,在原有的BP网络添加了动量项以后明显震荡次数有所减少,系统更加趋于稳定,鲁棒性更强。跟以往的识别方法相比,改进后的网络在识别的准确率上高于模板匹配法和传统三层BP算法[11],错误率即输入到网络中的实验样本最终不能接近预期值的个数明显减少,网络达到收敛时误差的传递次数即比三层少了10次左右,如图3所示,训练速度得到了提高。从表1可以看出,在对传统的算法进行改进后,汉字、数字、字母的识别率明显高于从前。

表1 算法改进前后字符识别率比较

5 结论

本文对车牌字符识别的方法进行了改进,通过对三层BP神经网络添加隐含层和动量项,使得字符的识别的准确率相对以往算法得到了提高,降低了像“O,D,Q”、“4,A”、“B,8”、“汉字豫,赣”这些易混淆的字符误识率。还有其他一些基于BP神经网络的改进方法,如利用共轭梯度法修正权值,这种方法或许可以加快网络的训练速度,使最终网络收敛时误差传递的次数更少,有待下一步对其进行考证。

[1] Anagnostopoulos C, Anagnostopoulos I, Kayafas E,etal. A license plate recognition system for intelligent transportation system applications[J]. IEEE Transactions on Intelligent Transportation System,2006,7(3):377-392.

[2] Ying Wen,Yue Lu,Jingqi Yan,et al. An Algorithm for License Plate Recognition Applied to Intelligent TransportationSystem[J].IEEE Intelligent Transportation Systems Society,2011, 13(3): 830-845.

[3] Xifan Shi,Weizhong Zhao,Yonghang Shen.Automatic License Plate recognition sytem color image processing[C].ICASCA2005,LNC3483,1159-1168.

[4] Vladimir Tadic, Miodrag Popovic, Peter Odry. Fuzzified Gabor filter for license plate detection[J]. Engineering Applications of Artificial Intelligence,2016(48):40-58.

[5] H.Erdinc Kocer, K.Kursat Cevik.Artificial Neural Networks Based Vehicle License Plate Recognition[J]. Procedia Computer Science,2011(3):1033-1037.

[6] 王敏,黄心汉,魏武,等.一种模板匹配和神经网络的车牌字符识别方法[J].华中科技大学学报,2001(3):48-50.

[7] 胡爱明,周孝宽. 车牌图像的快速匹配识别方法[J].计算机工程与应用,2003(7):90-91,110.

[8] 赵光辉,李男男. 基于彩色数字图像的车牌识别研究[J].电子设计工程,2011(22):84-87.

[9] 陆安江,金力,杨家红,等. 基于改进的BP神经网络在车牌识别中的应用研究[J].贵州大学学报(自然科学版),2015(6):71-74.

[10] 杨凡,赵建民,朱信忠. 一种基于BP神经网络的车牌字符分类识别方法[J].计算机科学,2005(8):192-195.

[11] 李消霞,张文静,刘银萍,等. 一种改进的BP神经网络车牌识别算法的研究[J]. 电脑知识与技术,2016(9):223-224.

OptimizedCharacterRecognitionAlgorithmBasedonBPArtificialNeuralNetwork

DONG Tian-yu, CHEN Zhi-kun, LI Shen

(School of Electrical Engineering, North China University of Science and Technology,Tangshan 063210, Hebei, China)

The recognition of vehicle license plate belongs to the field of image processing and recognition, which plays an important role in the intelligent transportation system. The main steps include image segmentation, license plate location, and license plate character recognition. Due to the impact of environment, the license plate in the acquisition process will inevitably blur, causing a certain impact on the final recognition. In this paper, we propose a matlab neural network based on Improved BP Neural Network Algorithm in License Plate Recognition, namely the design and implementation of a four layer BP neural network model. Repeated experiments proved that the recognition rate of complex two hidden layers BP neural network in different environments is highly solving the problems of previous experiments in which the speed of recognition is slow, and the recognition efficiency is not high.

recognition of vehicle license plate; BP neural network; algorithm of character recognition

TP391.41

A

1008-9446(2017)04-0053-06

2017-01-17

董天宇(1992-),男,吉林梨树人,在读硕士研究生,主要从事车牌识别相关方向研究,E-mail:15132586742@163.com。

猜你喜欢

字符识别车牌字符
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
数字图像处理技术在车牌识别系统中的应用
HBM电子称与西门子S7-200系列PLC自由口通讯
一种改进深度学习网络结构的英文字符识别
第一张车牌
基于MATLAB 的车牌识别系统研究
仪表字符识别中的图像处理算法研究
基于CUDA和深度置信网络的手写字符识别