APP下载

基于神经网络的车牌字符识别系统研究

2017-09-13刘滨

求知导刊 2017年19期
关键词:分类器权值字符

刘滨

车辆牌照识别(Vehicle License Plate Recognition,VLPR)技术作为交通信息服务系统的重要手段,主要任务是分析处理汽车图像,自动识别汽车牌照。一个好的VLPR系统,能够从一幅图像中自动提取车牌图像,自动分割字符图像,进而对字符进行正确识别。随着计算机视频技术和模式识别技术的发展,车牌自动识别系统已成为智能交通系统的重要组成部分。

一、字符网格特征的提取

构造一个高性能的识别系统,最主要的是如何选择有效的特征。任何一个特征都是从某个角度刻画图像的,不可能十全十美,因此,必须用多种特征互相补偿,才能达到良好的效果。选取字符特征应满足如下条件:①所选特征必须足以区分各字符,特征应该稳定,受字形影响越小越好。②所选特征应便于提取,便于用计算机实现,特征维数应尽可能少。③所选特征之间应具有补偿性,即各种特征能从不同角度描述一幅图像,以达到全面反映图像信息的目的。

依据以上原则,本文选取改进的字符粗网格特征作为所识别字符的特征。

设f(i,j)是汉字规一化后N×N大小的二值化点阵图像:

黑像素1表示该点有笔画,白像素0表示该点没有笔画。

粗网格特征提取方法是指先把待识别字符进行大小和位置规一化,再等分为N×N个网格,然后依次统计各网格内的黑像素(或白像素)的数量,取得一个以数值表示的N×N维的网格特征。粗网格特征属于统计特征中的局部特征,又称局部灰度特征,反映了字符的整体形状分布,但抗位置变化能力较差,即字符的倾斜、偏移等导致对应网格之间的错位,会大大降低字符识别的正确率。考虑到车牌字符识别属于小分类问题,为了同时保留字符的整体结构特征和细节特征,本文充分利用神经网络所具有的并行处理能力及其隐藏层所具有的提取特征的能力,将归一化后字符点整的每个像素点作为一个网格,即提取字符的原始特征,将其直接输入神经网络分类器,再对该字符进行分类的粗网格特征提取方法。

待识别的数字字符“0”如图1所示,按32×16的比例尺寸归一化后字符“0”点阵如图2所示,字符“D”点阵如图3所示。

在车牌字符识别时,这种字符图像不可避免会存在噪声环境,对于形如0和D这种形状极其相似的字符,有时仍会发生混淆。根据车牌字符规范,设计字母数字神经网络分类器,对9个数字和除I以外的25个英文大写字母进行分类识别。经过初步测试,字母数字神经网络分类器对字母O、B、C、D、U识别时经常混淆。因此,可将字母数字神经网络分类器设计为2级神经网络分类器,即在原字母数字神经网络分类器的下一级增加一个细分类器,完成字母O、B、C、D、U的分类。最后对被识别为O和D的识别样本,提取左上角和左下角的粗网格特征加以区别。通过对粗网格特征提取方法加以改进,数字字母神经网络分类器的正确识别率非常高。

二、BP神经网络结构的设计

BP神经网络是采用误差反向传播算法对网络权值进行训练的多层前向网络(如图4所示)。BP神经网络设计的最大特点是网络的权值是通过使网络输出与样本输出之间的误差平方和达到期望值而不断调整网络的权值训练出来的。进行神经网络设计的首要任务是网络结构的确定,包括输入/输出神经元个数、隐含层个数、隐含层中神经元数目以及每层传递函数的确定。一般情况下,神经网络的输入层与输出层的神经元数目由问题本身的性质决定,隐含层的层数及各隐藏层的神经元数目需要由设计者根据问题的性质和对神经网络的性能要求决定。

一般的车牌共有7个字符,其中第一个字符是省份(自治区、直辖市)的汉字简称,第二个字符是字母,第三至第七位字符是字母或汉字。实验表明,BP神经网络对小类别字符集有较高的识别率,因此在车牌字符识别系统中分别设计汉字网络、字母网络和数字字母网络,可实现对字符的分类。

输入层神经元个数由待识别字符所取得的网格像素特征的维数大小确定。在本系统中,对归一化为32×16点阵大小的字符,以每一个像素点为一个网格,故输入层神经元个数取512。

神经网络输出层神经元个数由设计网格时所采用的输出表示和决策规则所确定。以模式样本和它的类别标记做训练,采用“M中取1”的方式表示目标向量。因此,网络输出层神经元的数目即为待识别的类別数M,输出层的每一个神经元代表一个目标种类。神经网络均使用Logistic函数作为激活函数,各网络输出层神经元个数如表1所示。

以数字网络为例,其期望输出值表示如表2所示。

本系统的神经网络所处理的都是小类别的分类问题,采用具有一个隐藏层的三层BP神经网络。

隐藏层神经元数目太多,计算复杂度增加,网络训练收敛速度降低,网络训练时间过长。隐藏层神经元数目太少,训练网络时可能陷入局部极小点。在本系统的研制过程中,先后采用下面三个公式确定隐藏层神经元个数:

式中,h_num表示隐藏层神经元个数,i_num表示输入层神经元个数,o_num表示输出层神经元个数。

采用公式(1)确定数字网络的隐藏层神经元个数为h_num=2525,个数太大;网络在训练过程中经过数次运算,就使输出神经元处于饱和状态,网络各次输出误差的差别太小,导致网络不能训练。

分别采用公式(2)和公式(3)确定的数字网络训练和识别,结果比较如表3所示。

由表3可见,隐藏层神经元个数较少,网络训练困难,且识别率有所下降。故本论文各神经网络均采用公示3确定网络隐藏层神经元数目(如表4所示)。

车牌字符识别系统中各神经网络分类器所处理的都是小类别分类,最多的汉字网络为51个汉字字符,为简单起见,采用Logistic函数作为激活函数。以数字网络为例,激活函数为:

输出误差目标取值0.02,对数字网络进行训练,经过115次迭代,输出误差达到目标值,训练完成。endprint

网络突触权值和阈值初值的一个较好的选择对一个成功的网络设计会有较大的帮助。过大或过小的初始化突触权值都应该避免,恰当的初始化选择应位于这两种极端之间。设置突触权值和阈值初始值是为了使网络能够快速和均衡地学习。对于一个有d个输入神经元的网络,输入层到隐藏层的突触权值选取在 之间。对隐藏层到输出层的突触权值,若隐藏层神经元个数为nH,隐藏层到输出层的权值初始值應该在

之间。

三、BP神经网络的训练

对设计好的BP网络的训练直接关系到最后的识别正确率。对于一个给定的训练集,反向传播学习可以采用串行方式和集中方式进行。以在线运行的观点,由于是以随机方式给定网络的训练模式,利用一个模式接一个模式的方法更新权值,使得在权值空间的搜索自然具有随机性,降低了陷入局部最小的可能性。

训练样本的选取对网络的分类和泛化能力也有很大影响。在车牌字符识别系统中,为每一类字符所选取的训练样本必须能真实反映该类字符的共同特征。对于本文所研究的车牌字符的识别,由于受摄像机的性能、车牌的整洁度、光照条件、拍摄时的倾斜角度以及车辆运动等因素的影响,牌照中的字符几乎不可避免会因为出现比较严重的模糊、歪斜、缺损或污迹现象而受到干扰。这就使得经过车牌定位、字符分割等处理后得到的字符点阵经常存在一些噪声以及不同程度的倾斜现象。对于一些结构较复杂、笔画较多的字符,还会出现一些笔画粘连的情况。本位采取为笔画较多、结构较复杂的字符如鄂、赣、湘等同时建立2个或3个训练样本:标准样本、典型粘连样本和典型偏移样本,同时训练,可极大提高字符识别正确率。

四、车牌字符识别系统

本文针对车牌字符的特点,采用基于字符网格特征的BP神经网络分类器对车辆字符进行分类,使用Visual C++编程,可完善车牌字符识别系统。

首先将整个BP网络车牌字符识别系统设计为一个类CBP,包括BP车牌识别系统的所有函数(功能)。由于三层BP前馈网络结构较复杂,定义一个类CBPNet封装BP网络结构。BP网络的运行主要有训练过程和识别过程。训练过程由函数Train()实现,识别过程由函数Recognise(char *filename)实现。

训练的基本过程可采取以下步骤:

(1)定义一个BP网络结构: CBPNet *bpnet,确定输入层、隐藏层和输出层神经元个数。

(2)初始化一个随机数种子:调用initialize(int seed)函数初始化随机数种子。

(3)创建BP网络:调用creat(int n_in,int n_hidden,int n_out)函数创建一个BP网络,其中n_in,n_hidden,n_out分别为BP网络输入层、隐藏层和输出层的神经元个数。

(4)将输入模式传递给创建的BP网络:事先将标准训练样本保存在文件train.txt中,每个标准训练样本以NN_RESX行NN_RESY列的矩阵形式存储。定义目标向量,调用Train()函数训练创建的BP网络。最后释放内存。

识别过程步骤如下:

第一至第三步同训练基本过程。

第四步,将待识别字符的输入模式传递给创建的BP网络。

第五步,将训练完成后保存的权值矩阵读入相应的BP网络结构的权值矩阵中。

第六步,调用feedforward(CBPNet *net)函数进行前向计算。

第七步,判断输入的待识别样本的类别,并输出结果。

(5)实验结构与分析。对实验采集到的64个不同的车牌系统进行字符识别实验。每个车牌包含7个字符,总计448个字符识别样本。当用训练集中的训练样本作为待识别样本时,识别率可达到100%。

当用所有训练样本和识别样本作为测试集时,识别率有所下降。但针对识别错误的字符,从结构上提取其特征并采取相应的措施,能有效提高系统的识别率,且可达到100%。

实验结果表明,基于BP神经网络的神经网络分类器具有较强的容错能力、分类能力、学习能力,既可以设计成粗分类器,又可以设计成细分类器。而神经网络粗分类器和细分类器的结合,可以有效地提高系统的抗干扰性和识别率。

参考文献:

[1]廖翔云,许锦标,龚仕伟.车牌识别技术研究[J].微机发展,2003,13(S2):31-32.

[2]庄镇泉,王熙法,王东生.神经网络与神经计算机[J].电子技术应用,1990(4).

[3]邓万宇,郑庆华,陈 琳,等.神经网络极速学习方法研究[J].计算机学报,2010,32(2):279-287.

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

[5]叶晨洲,杨 杰,宣国荣.车辆牌照字符识别[J].上海交通大学学报,2000,34(5):672-675.endprint

猜你喜欢

分类器权值字符
学贯中西(6):阐述ML分类器的工作流程
Python实现图片转字符画
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
基于AdaBoost算法的在线连续极限学习机集成算法
一种统计分类方法的学习
财务风险跟踪评价方法初探
基于洪泛查询的最短路径算法在智能交通系统中的应用
基于支持向量机的蛋白质交互界面热点的预测的研究与改进
视频监视系统中字符叠加技术的应用