基于小波分析的车牌识别系统(基于自适应差分进化极限学习机的车牌识别算法)
基于小波分析的车牌识别系统(基于自适应差分进化极限学习机的车牌识别算法)英文引用格式:Wen Wu,Qiao Longhui,He Peng. License plate recognition based on self-adaptive evolutionary extreme learning machine[J].Application of Electronic Technique,2017,43(1):133-136,140.中文引用格式:文武,乔龙辉,何鹏. 基于自适应差分进化极限学习机的车牌识别算法[J].电子技术应用,2017,43(1):133-136,140.中图分类号:TP391文献标识码:ADOI:10.16157/j.issn.0258-7998.2017.01.035
文 武1,2,乔龙辉1,何 鹏1
(1.重庆邮电大学,重庆400065;2.重庆信科设计有限公司,重庆400065)
针对目前车牌识别算法中存在的模型训练慢、字符识别准确率低等问题,研究了一种基于自适应差分进化极限学习机的车牌识别算法。综合利用边缘检测和颜色定位的优点来检测车牌区域,然后用改进后的垂直投影法对车牌区域进行分割,最后将自适应差分进化极限学习机用于字符识别。研究结果表明,所提出算法具有训练速度快、字符识别率高等优点,可以应用于复杂的交通场景。
车牌定位;字符分割;垂直投影;字符识别;自适应差分进化
中图分类号:TP391
文献标识码:A
DOI:10.16157/j.issn.0258-7998.2017.01.035
中文引用格式:文武,乔龙辉,何鹏. 基于自适应差分进化极限学习机的车牌识别算法[J].电子技术应用,2017,43(1):133-136,140.
英文引用格式:Wen Wu,Qiao Longhui,He Peng. License plate recognition based on self-adaptive evolutionary extreme learning machine[J].Application of Electronic Technique,2017,43(1):133-136,140.
0 引言
作为智能交通系统的重要组成部分,车牌识别系统常用来监视交通状况、监督车辆行为,还可以用于停车场出入管理。虽然过去十年车牌识别技术取得了很大的成就,并在很多实际场合中得以应用,但从复杂场景的图像中识别车牌仍然是一个艰巨的任务[1]。
车牌识别一般由三部分组成:车牌定位、字符分割和字符识别。车牌定位有两种主要的实现方法:一种是基于车牌区域颜色信息的,根据车牌区域特定的颜色信息组合来定位车牌[2];另一种是基于边缘或纹理信息的,根据车牌区域边缘信息较其他区域清晰来检测车牌[3]。第一种方法对光照条件和照相机设置敏感,第二种方法当车牌褪色严重时,会由于检测不到边缘而导致定位失败。投影法[4]、连通域法[5]和模板匹配法[6]是实现字符分割的主要方式。投影法要求字符字迹完整且没有噪音干扰,易受光照影响。连通域法对车牌的倾斜不敏感,但不能用来处理字符断裂和字符粘连。常用的字符识别方法有:神经网络(BPNN和CNN)、SVM和模板匹配法。传统的神经网络和SVM用于字符识别时有较高的正确率,但如果参数选择不合适会出现学习速度慢、过拟合和局部最优等缺陷[7]。模板匹配法简单实用,但在字符出现形变、粘连等问题时会导致模板匹配法识别率降低[8]。
相较于其他常用车牌识别算法,本文所用方法在以下几点做出了改进:(1)综合利用颜色定位和边缘检测的优点,克服了单一用其中一类方法的缺陷;(2)对垂直投影法做改进,先粗分割,再精确分割,有效解决了字符的粘连、断裂等问题;(3)用SaE-ELM来训练模型,缩短了训练时间,提升了字符识别率。
1 车牌定位
本文将车牌的面积、纹理、颜色、长宽比等多重特征结合起来,提出一种车牌定位的改进算法,具体执行步骤如下所示:
(1)输入彩色车牌图像,如图1(a),预处理(高斯模糊和灰度化)后得到灰度图,然后用Sobel算子得到车牌图像的垂直边缘(由于车头排气孔、车标等的影响,检测水平边缘会影响最后的连接结果),接着用大津法对边缘检测图进行二值化并做形态学闭运算。此时可以获得很多车牌候选区,如图1(b)所示。
(2)将输入的彩色图转成HSV图像,若当前像素的H、S、V分量分别满足表1所示蓝色对应的H、S、V分量,则灰度值置为255。同理若满足黄色各分量,灰度值置为200;满足白色各分量,灰度值置为150;满足黑色各分量,灰度值置为100;其他为0。构造出的五级灰度图如图1(c)所示。依次取每级灰度图,分别做二值化和闭运算操作。以蓝色分量为例,255为阈值,将灰度值不为255的全部置0,可得蓝色分量候选区,如图1(d)所示,其他分量的处理过程依此类推。
(3)将图1(b)与图1(d)做“与”运算可得图1(e),候选区数量大大减少,然后借助与车牌的面积、长宽比等特征可以筛去部分伪车牌,最后由SVM分类器对每个候选车牌做分类判断操作即可得到真正的车牌,如图1(f)所示。对于一般场景下的车牌,经过上述3步即可定位到车牌区域。但对于某些特殊的场景,步骤(1)或步骤(2)可能存在不同程度的失效,导致最后的定位效果不佳。这里的解决办法是用SVM对候选车牌进行判断,若SVM判断结果大于1,则定位结束。否则,用颜色定位或边缘检测进行再次定位。
闭运算操作时,车牌可能会错分成两个区域。这是因为车牌中的第2或第3个位置存在某些垂直边缘不明显的字符(比如“E”、“1”等),解决办法是对车牌区域进行扩展,然后对扩展区域再进行一次边缘检测。对于低照度图像,使用Sobel算子可能会出现边缘提取不清楚或缺失严重的问题,可以改用Scharr算子来提取边缘。完整的定位流程图如图2所示。本文所用定位方法综合多种因素,具有较好的鲁棒性。
2 字符分割
2.1 初步分割
传统投影法对字符进行切分时,需要字符字迹完整且没有噪声干扰,此时二值图像的垂直投影曲线会有清晰的波峰波谷,可以根据波峰波谷的跳变位置来确定字符分割点。由于受到噪声、光照等影响,车牌垂直投影的波峰和波谷往往不明显,图3所示为噪声严重车牌以及它的垂直投影曲线。
经分析,字符的投影曲线多数为单峰,少数为双峰和三峰,如:H、M和断裂字符为双峰,川为三峰。利用该特征来对垂直投影法进行改进的步骤如下:
(1)水平扫描车牌二值图像,根据字符区域跳变次数不小于14的经验去除上下边框和铆钉。求得字符高度charHeight,单个字符宽度charWidth=2charHeight。
(2)列扫描车牌二值图像,统计每一列白色像素点个数。设置投影阈值threshValue,完成垂直投影,并将投影结果保存在arrayTotal数组中。
(3)创建字符类Character和动态链表listCharacter,字符起点横坐标记为start,中心点centerPoint,终点end。扫描arrayTotal数组,当arrayTotal[start]>0&&arrayTotal[end]=0,记当前字符宽度width[m]=end-start。依次执行以下步骤:①若2charWidth<width[m]<3charWidth,则为2个字符粘连,取其投影中点进行分割;若3charWidth<width[m]<4charWidth,则为3个字符粘连,根据charWidth确定分割的位置。②若width[m] width[m 1]<charWidth,同时满足两字符间距差小于(12/45)charWidth,则判定字符发生断裂,需对字符做合并操作。③若width[m]<0.5charWidth<width[m 1],宽度width[m]内投影值大于0.8charHeight的像素个数为num。当num小于预先设定阈值,则当前字符被判定为噪声点,否则就被判定为数字“1”。
(4)重复步骤(3),将字符写入链表listCharacter。直至遍历边界最右端且listCharacter中字符个数不小于7为止。
2.2 精确分割
上述步骤完成了车牌字符的初步分割,解决了字符的断裂和粘连问题。但仍然存在车牌左右边框的干扰,使得车牌的左右边界并非车牌字符起始和结束位置。因此还需根据先验知识对字符坐标值进行修正,从而完成精确分割,具体流程如下:
(1)统计listCharacter中字符个数N及对应宽度Wi,求出宽度的均值Wa与标准差Ws。
若Wi不满足|Wi-Wa|<Ws,则将其从listCharacter中剔除,对其余字符求Wa和Ws,循环直至所有Wi都符合|Wi-Wa|<Ws,则此时Wa为字符的统计标准宽度。
(2)选定优先分割字符Cmin(与Wa差异最小的字符)。根据标准车牌字符宽度及间距等先验信息(单字符宽45 mm,高90 mm,间隔符宽10 mm,第二和第三字符间隔34 mm,其余字符间隔均为12 mm),计算出Wa与标准宽度的比值p(如式(3)所示)。根据这一比值计算出Cmin的centerPoint在表2所处的坐标范围,从而确定Cmin在车牌字符排列中的序号。
(3)以Cmin的centerPoint为基准点,Wa为尺度,根据表2计算出所有字符的开始和结束坐标,然后将所有坐标信息重新写入listCharacter,字符的精确分割即可通过这些坐标值来完成。分割效果如表3所示。
3 字符识别
3.1 SaE-ELM
极限学习机是Huang Guangbin[9]提出的一种新的基于单隐层前馈神经网络的学习方法。该方法只需训练前设置好隐层节点数目,执行过程中随机产生输入权值与隐层偏差(无需通过迭代反复刷新调整),最终把复杂的问题转化成求矩阵的Moore-Penrose广义逆。由于随机产生网络的输入权值和隐层的偏置向量参数,所以不能保证训练出的ELM模型能够达到最优。
本文采用基于SaE-ELM的方法来识别车牌字符。该方法利用自适应差分进化算法优化ELM网络的输入权值与隐层偏差,初始化后循环“突变→交叉→选择”来生成最优参数。接着通过测试设置最优隐层节点数目,选择适当的激励函数计算出隐层输出,并用最小二乘法计算出输出权值。实验验证表明,该方法不仅保留了ELM算法训练的快速性,而且具有更好的泛化能力和准确性,避免了ELM模型的随机性。假设训练集S包含了N个任意不同的样本,S={(xj,tj)|xj∈Rn,tj∈Rm,j=1,2,…,N},具有L个隐层单元的SaE-ELM算法执行步骤如下:
(1)首先初始化原始种群,原始种群是包含了所有输入权值与隐藏层偏差的NP组向量,每组向量作为一个个体向量,如式(4)所示。
其中,wi和bi是随机赋值的,wi是输入权值,bi是隐层偏差(i=1,2,…,L)。L是隐层节点数,G是进化代数,k=1,2,…,NP,NP表示种群大小,这里NP=10。
(2)然后通过式(5)计算出隐层输出矩阵Hk,G,输出权值矩阵?茁k,G则可以通过式(6)得到。
(3)接着通过变异操作获取变异个体向量vk,G,变异过程中有4种变异策略可以选择,如表4所示。通过Pl,G可以实现变异策略的自适应选择,Pl,G是概率参数,表示在第G代变异操作中使用策略“l”的概率。
变异因子F用于控制步长,服从N(0.6,0.3)的正态分布,K在0~1区间随机取值,r1~r5是1~NP内互不相等的随机整数。概率参数Pl,G的更新规则可参考文献[10],变异操作完成后,将变异向量与θk,G进行交叉操作可得试验向量交叉操作通过式(9)完成。
其中,jrand是[1,L]随机正整数,randj是0~1之间随机数,交叉概率CR服从N(0.3,0.1)的正态分布。重复突变、交叉与选择,直至最大迭代次数得到最优θk,G,通过式(6)计算出输出权值β,即可获得模型。
3.2 字符识别
首先将字符尺寸统一为20×40,然后用方向梯度直方图来提取字符特征(单元10×10,块大小20×20,块步长5×5,每个单元对应的向量是9维),则可得180维的输入特征向量。接着用SaE-ELM训练3个字符分类器。汉字分类器用来识别第一个字符,采用400个隐层节点和31个输出节点。字母分类器用来识别第二个字符,采用300个隐藏层节点和24个输出节点。字母数字分类器则用来识别剩下的5个字符,采用300个隐层节点和34个输出节点。在2.50 GHz CPU、2 GB内存、vs2013编程的主机上进行测试,用4 000个字符(1 435个中文字符,1 000个数字,1 565个英文字符)来训练,训练时间为144 s(训练用时最长的时间)。取500个字符做测试,这里是分开测试,汉字分类器识别率为96.5%,字母数字分类器的识别率为97.5%,字母分类器识别率为98.0%。从表5可知(以字母为例),在识别率与BP神经网络和SVM区别不大的情况下,基于SaE-ELM的车牌字符识别大大缩短了训练时间,且提高了字符识别的速度。本文算法可应用于实际复杂场景,测试效果如图4所示。
4 结束语
经过大量测试,上述方法可以有效地识别各种复杂场景中的车牌。但所提出的方法前提是要把彩色图转为灰度图,未来可考虑直接对彩色图直接进行处理,终端完成图像的采集工作,然后通过云平台,把相对复杂的图像计算部分分到多个服务器上同时进行处理。还可以考虑将深度学习用于模型的训练,提高中文字符和相似字符的识别准确率。车牌识别技术的发展为其今后在车辆跟踪、交通监控、停车场出入管理等领域的应用打下了良好的基础。
参考文献
[1] TIAN B.Hierarchical and networked vehicle surveillance in its:A survey[J].IEEE Trans.Intell.Transp.Syst.,2015,16(2):557-580.
[2] SHI X,ZHAO W,SHEN Y.Automatic license plate recognition system based on color image processing[J].Lecture Notes in Computer Science,2005 3483(4):1159-1168.
[3] ZHENG D,ZHAO Y,WANG J.An efficient method of license plate location[J].Pattern Recog.Lett.,2005,26(15):2431-2438.
[4] 张学海.车牌字符分割方法研究与实现[D].成都:西南交通大学,2010.
[5] 甘玲,林小晶.基于连通域提取的车牌字符分割算法[J].计算机仿真,2011,28(4):336-339.
[6] 穆丽娟,籍焱.基于新模板的算法在车牌字符分割中的应用[J].计算机工程与应用,2012,48(19):191-196.
[7] HONG T,GOPALAKRISHNAM A K.License plate extraction and recognition of a Thai vehicle based on MSER and BPNN[C].Knowledge and Smart Technology(KST),2015 7th International Conference on,Chonburi,2015:48-53.
[8] NEJATI M,MAJIDI A,JALALAT M.License plate recognition based on edge histogram analysis and classifier ensemble[C].2015 Signal Processing and Intelligent Systems Conference(SPIS),Tehran,2015:48-52.
[9] HUANG G B,WANG D H,LAN Y.Extreme learning machines:a survey[J].International Journal of Machine Learning and Cybernetics,2011,2(2):107-122.
[10] CAO J,LIN Z,HUANG G B.Self-adaptive evolutionary extreme learning machine[J].Neural Process.Lett.,2012,36(3):285-305.