基于模式特征提取的车牌字符识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于多特征提取的车牌字符识别方法
作者
(中山大学智能交通中心)
摘要:针对车牌字符识别领域中大部分单一特征提取的方法在字符识别上的局限性,提出了一种车牌字符多特征提取方法。
在经过预处理后的车牌细化字符基础上提取字符4个侧面的笔画特征,拐点特征,轮廓累积特征和字符内部像素特征,构建出一个维度较低的特征向量集,然后分别采用支持向量机,K近邻算法,BP神经网络,径向基神经网络对陆丰高速公路实地拍摄的车牌图片进行测试。
实验结果表明提出的多特征提取方法具有识别率高,鲁棒性好。
关键词:车牌字符识别,多特征提取,向量机,神经网络,K近邻
A Method for Vehicle License Plate Recognition Based on Multiple Features
Extraction
She-Xiwei, He-zhaochen, Yu-wenjin
Abstract: According to the limitation of most of the single feature extraction method in vechile license plate recognition。
A method based on multiple features extraction is presented. To extract the strokes features,inflection point features,contour features of four sides of characters and the internal pixel features of characters t
Keywords: vechicle license plate, multiple features, support vector machine, neural network, K neighbors
1 前言
车牌识别系统(LPR)是智能交通系统(ITS)中的一个重要组成部分,也是目前图像模式识别领域的一个经典课题。
其主要涉及到车牌定位、字符分割和字符识别三种关键技术。
目前字符识别技术是整个系统的核心也是难点。
现有的字符识别方法主要是基于两类方法:一类是基于模版匹配[1-3],另一类则是基于字符结构分析[4]。
基于模板匹配的方法主要是通过模板图像和实际图像的相似度做比较来判定识别结果,在实际应用中,模版匹配的方法简单而又能够保证较高的识别率,应用非常广泛,但是其对字符细节信息的忽略导致了其在识别相似字符时容易出错。
而对于实际拍摄下所获取的车牌,由于拍摄角度不同、车牌污损、光照不均和高速运动等原因导致二值化后的字符会出现形变、粘连、细节模糊等情况,这些原因直接导致了模版匹配在车牌字符识别上的局限性。
特征提取是从原始的数据中提取对分类意图具有最相关的信息,以最小化类内模式的差异,同时使得类间模式差异最大[5]。
车牌字符的特征提取将直接影响到最终的识别率。
基于模板匹配方法,同样可以认为是一种特征提取方法,只是模板匹配是将字符图片本身作为一个“特征向量”[6];在大部分字符结构分析方法中,特征提取是一个不可或缺的步骤。
目前,关于字符特征提取的方法有很多,比如:基于全像素,粗网格像素统计[7],正交投影法[8],基于笔画、轮廓、骨架特征[6]等。
这些特征提取方法中,通常都存在对相似字符的识别能力差;同时有些方法,如全像素法,提取的特征维数过大,导致识别速度慢,影响分类器的分类性能。
针对以上字符特征提取方法的不足,本文提出一种在细化字符基础上的多特征提
取方法。
通过对细化之后的车牌字符的骨架特征包括笔画斜率累积特征,拐点幅度累积特征、侧面深度特征和字符内部像素特征进行提取,得到一组具有代表性和丰富信息的字符特征,同时由于采用的是累积统计的提取方法,因此构造的特征空间维度较小,适用于一些基于机器学习的分类方法。
本文采用了目前车牌字符识别领域常用的基于机器学习的分类方法,包括支持向量[9],K 近邻算法[10],BP 神经网络算法[11, 12]和径向基神经网络算法[13]对从陆丰高速实地拍摄的车牌图片进行实验,验证了所提出的特征提取方法的可行性。
同样对比分析了不同分类算法的性能和稳定性。
2车牌字符模式特征提取
2.1车牌字符预处理
实际获取的车牌由于光照、高速运动、和车牌污损等原因,导致车牌图像出现模糊、重影粘连等现象,而这些都不利于我们对单个字符信息的提取,必须通过必要的预处理过程对其消除噪声,增强目标信息,提高车牌的信噪比。
具体流程如图 1所示。
图 1. 车牌字符识别预处理流程
A. 车牌定位
本文针对车牌字符边缘信息丰富的特点,对其进行水平和垂直投影,在信息量最为密集丰富的地方即为车牌区域。
B. 车牌区域二值化
在复杂的自然条件下获取的车牌区域相当复杂,本文采用了高斯拉普拉斯(LOG)算子作为二值化算法。
在各种光照条件下,经LOG 算子二值化后的车牌字符笔划粗细均匀,没有出现断裂或者粘连的情况。
LOG 算子表述如式(2.1):
222
22
()/2(,)[(,)]*(,)(,), ,,,1,0,1,,i j e i j G i j f i j G i j E
i j n n
σσ-+=∇==--
(2.1)
其中:*代表卷积,2
∇为拉普拉斯算子,(,)G i j 为二维高斯函数,2
G ∇为高斯拉普拉斯算子。
经过高斯拉普拉斯算子卷积后得到矩阵(,)e i j ,根据(,)e i j 过零点的情况按照式(2.2)对灰度图像进行二值化:
255(,)0
(,)0(,)0e i j f i j e i j >⎧=⎨
≤⎩
(2.2)
C. 倾斜矫正与字符分割
根据Hough 变换,可以将图像从(,)x y 空间转到(,)r θ,r 为径向长度,θ为径向距离与x 轴夹角。
在(,)x y 空间中的一条直线和与其平行的直线经过变换后,在(,)r θ空间会相交于同一点。
根据这个特性,计算(,)r θ空间相交最多的点,找出两条直线
及其倾角θ,这两条直线一般为车牌字符的上下边界。
在矫正之后,在对其进行水平投影,可根据投影特性去除上下边框,再垂直投影,可剔除左右边界,并进行字符分割。
D. 细化
细化是本文的关键,其效果直接关系到本文的识别率。
要求细化后字符能保留总体结构的不变性和连通性。
本文采用基于索引表的细化方法,细化效果如图1所示
图 2车牌字符细化效果
可以看出,细化相当与对字符图片进行了一次骨骼提取,可以消除原图粘连在字符上的噪声,是本文所提出的多特征提取的基础。
本文在预处理中还对字符图片其进行了归一化处理,使得经过不同图像获得的车牌在变换分割后,所获取的车牌单个字符图像大小都为40*20像素。
2.2特征提取
特征提取是字符识别的关键步骤,本文提出一种字符多特征提取的方法,在细化后的字符基础上,通过对字符四个侧面扫描提取出字符骨骼累积统计特征,包括笔画斜率累积特征,拐点幅度累积特征,轮廓深度累积特征;最后通过固定粗网格提取字符内部像素特征。
具体的统计方法如下所述: (1) 笔画斜率累积特征提取
符笔画是字符的一个非常具有代表性的特征,不同字符在笔画数量,笔画长短,笔画形态是不同的。
因此,我们对字符笔画的斜率累积特征进行了提取。
首先,将笔画斜率定义为正斜率positive k ,负斜率positive k 和零斜率zero k ,分别统计正斜率和负斜率的斜率累积值和零斜率点的累积数量。
这种方法的好处,可以较好地表征字符的骨架笔画形态和笔画长短的特性。
首先定义笔画斜率特征统计点,当且仅当当前扫描点为像素点并且前一扫描行检测到像素点,则当前扫描点为斜率特征统计点,如图 3所示。
假设当前扫描点(,)i i i p x y 为斜率统计点,前一扫描行检测到得像素点是111(,)i i i p x y ---,那么点i p 的斜率k 计算由式(2.3)得到。
正负斜率累积值或零斜率点累积数量满足(2.4)。
分别提取了字符4个侧面的笔画斜率累积特征。
这里共获得了12个特征向量,分别
是笔画正斜率累积值left positive k 、right positive k 、 top positive k 、 botton positive k ,笔画负斜率累积值left
negative k 、 right negative
k 、top negative k botton negative k 和笔画零斜率累积数量left zero k 、 right zero k 、 top zero k 、 botton
zero k 。
图 3. 字符笔画斜率统计点
1
1
cot i i i i x x k y y α---==
-
(2.3)
,0,01 ,0
positive positive negative negative zero
zero k k k k k k k k k k k =+>⎧⎪
=+<⎨⎪=+=⎩ (2.4)
(2) 拐点幅度累积特征提取 在字符识别中,字符拐点含义非常丰富的特征信息,在多数情况下拐点的数量和位置直接关系到字符结构形状。
为了弥补上述笔画斜率累积特征无法全面地表征字符骨骼的结构信息,我们引入了拐点幅度累积特征提取。
这里给出拐点的定义:假设当前斜率统计点(,)i i i p x y 和前一斜率统计点1i p -对应的斜率i k 和1i k -数值符号不同时,则i p 为一个拐点,并且该拐点的幅度i δ,可由式(2.5)计算得到。
1i i i k k ω-=-
(2.5)
拐点幅度累积δ可由(2.6)计算得到,其中T 表示所检测到的拐点的集合。
这里共获得字符图片4个侧面的拐点幅度累积值,共4个特征向量,分别为,,,left top right down δδδδ。
i p T
δω∈=∑
(2.6)
图 4. 字符拐点定义
(3)侧面轮廓深度特征提取
不同字符在其轮廓上存在明显的差异,如字符 “S ” 和 “U ”,字符 “S ” 在左右侧面具有明显的凹特征,顶部和底部都比较平缓;而字符 “U ”的顶部有明显的凹特征,其它3个侧面轮廓均比较平缓,只从轮廓特征可以很容易地区分字符 “S ”和 “U ”。
因此字符轮廓的凹凸信息可以作为字符识别的一种有效信息。
这里用侧面轮廓深度累积值D 表示字符轮廓凹凸程度信息。
以字符右侧面为例,在第i 行,从右边界向左边界扫描,当遇到第一个像素点时,计算右边界到像素点之间的空点数量i d 。
通过对字符4个侧面的扫描。
可以提取字符4个侧面的轮廓深度累积值,共获得4个特征向量,分别为
,,,left right top botton D D D D 。
图 5. 字符轮廓深度特征提取
(3) 字符内部像素统计特征提取
只对字符外围和骨架或轮廓的特征扫描提取,往往无法很好地区分一些外围特征类似而内部特征差异较大的字符。
如字符 “B ”和 “D ”,这两个字符的外围轮廓累积特征是非常接近的,但是其字符内部特征有明显的差异。
这里引入字符内部像素统计特征提取。
如图 所示,在字符图片中划分两个粗网格,如图 6所示;并计算两个网格分别包含的像素数量,共获得2个特征向量,分别为1P ,2P 。
图 6. 字符内部像素特征提取
3车牌字符分类算法
3.1分类算法流程
为了验证所提出的字符特征提取的可行性,本文通过对实验图片进行特征提取,构造特征向量样本集,采用多种机器学习分类方法,包括支持向量机(SVM ),K 近邻(KNN )算法,BP 神经网络(BP-NN )算法,径向基神经网络(RBF-NN )算法对实地抓拍的图片样本进行测试,图 7给出分类算法流程。
图 7. 字符分类的算法流程
3.2支持向量机分类器
支持向量机(Support vector machine SVM )是一种用于分类或者回归的办监督学习方法。
支持向量机由Vladimir 在90年代提出的一种基于统计学理论的一种机器学习方法[14],通过寻找结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化。
因此在统计样本量较少的情况下,也能获得很好的统计规律。
与神经网络相比,它的优点是训练算法中不存在局部极小值问题,可以自动设计模型复杂度,不存在维数灾难问题,泛化能力强。
基于支持向量机的分类算法用于寻找样本特征空间的最优划分平面;实质上是在一定约束条件下的二次凸规划(quadratic programming QP )问题,由于目标函数和约束条件都是凸的,根据最优化理论,这一问题存在唯一全局最小解。
一个好的分割是得到一个使得所有类之间最近的训练数据点距离最大的超平面。
以下给出决定函数:
1
()sgn{(,)}n
i i i i f x y a K x x b ==+∑
(2.7)
其中(,)K ⋅⋅是核函数,sgn()⋅是符号函数,n 是训练样本的数量。
这里核函数对所有的,x z X ∈,满足(,)()()K x z x z =Φ⋅Φ,其中Φ是从输入空间X 到特征空间F 的映射。
将数据样本映射到高维的特征空间并且在空间中构造一个分割超平面。
在实际应用中,使用不同的核函数对识别的正确率会产生不同的影响。
3种常用的核函数包括:多项式核函数(polynomial kernel ),径向基核函数(radical basis function RBF ),Sigmoid 核函数(Sigmoid tanh ),根据[9] 在车牌字符识别的实验中,给出了支持向量机在这3种常用核函数的性能对比,其实验结果表明采用径向基核函数的支持向量机的性能要稍好于采用其他两种核函数的支持向量机。
因此,本文采用径向基核函数:
2
2(,)exp{/}i i K x x x x γ=--作为支持向量机核函数。
4实验结果及分析
4.1实验结果
我们使用在陆丰高速公路的摄像头抓拍到的运动车牌的车牌图片,经过车牌定位,车牌二值化,字符分割和细化后,共获得1248张大小为40*20像素的字符二值图片。
其中,总共包括9个数字字符(0-9),24个英文大写字符(…O‟和…I‟除外),在车牌中字符“O”归为“0”,不含字符“I”。
因此,目标是构建一个34分类的分类算法。
我们将1367张字符图片分成两组图片,第一组336张图片用于构建训练数据集,第二组1031张用于构建测试数据集。
在我们的实验中,我们使用支持向量机(SVM),K近邻(KNN),BP神经网络(BP-NN),径向基神经网络(RBF-NN)使用在上述所构建的训练集上进行训练,并对同一测试集进行识别测试。
其中,SVM我们选用的是RBF核函数,通过交叉验证得到优化惩罚因子 1.3
C=,21
σ=;Knn选定近邻个数4
K=;Bp神经网络采用3层的网络结构,输入层,隐层和输出层的节点个数分别为22,150和34;采用Sigmoid函数作为激励函数,学习率
0.01
lr=,动量系数0.95
mc=,收敛目标为均方误差 = 1e-12
sse;RBF神经网络中的径向基函数的传播参数0.1
spead=,spead越大,函数拟合越光滑。
表1给出了不同分类算法在训练集上回归分类准确率和在测试集上的分类准确率。
图8给出了不同分类算法对不同字符的分类效果。
为了分析出现字符误判的原因,我们统计了4种算法对每一个字符的识别率,并统计出每个字符被误判为其他的字符的概率,表2给出SVM 算法的字符错误判别统计。
表 1. 4种算法在字符图片训练集和测试集上的总体性能对比
算法训练集识别
率(%)测试集识别
率(%)
训练时间
(ms)
测试时间(s)
KNN 95.65 94.02 Na 138 BP-NN 100 93.04 22670 93 RBF-NN 99.70 95.20 47 94
图8 四种算法在不同字符下的识别率
4.2结果分析
表1可以看出,SVM,BP-NN,RBF-NN和KNN在训练集上的回归分类率分别为99.10%,100%,99.70%,95.65%。
这表明前3种算法对训练集的拟合效果非常优越。
在测试集上的实验结果显示,SVM方法的整体分类准确率为95.78%,在总体性能上要优于其他3种算法;其中BP-NN为93.04%,RBF-NN为95.20%,KNN为94.02%;以两种神经网络算法进行对比,RBF-NN在本实验中的测试集上的泛化能力要优于BP-NN,RBF-NN在训练时间为47ms要明显优于BP-NN的22670ms,而这两种方法在识别速度上几乎是没差别的;而KNN算法虽然无需进行训练,但是其识别速度是4种方法中最慢的。
从整体的对比结果上,SVM方法在整体识别率,训练速度和识别速度都是最佳的。
从单个字符的识别率上看,多特征提取方法在大部分字符识别准确率和稳定性上都是比较理想的,使用SVM算法,34种字符中有15种字符的识别率为100%,有23种字符的识别率在95%以上。
对于一些较为相似的字符均能获得较高的识别率,如“A”和“4”,“C”和“G”,“N”和“H”等。
但是对于一些特征非常相似的字符,识别效果并不是很理想。
表2给出了SVM算法在测试集上对每个字符的错误判别统计。
其中,如字符“0”,“D”和“Q”,其中字符“D”有高达43.75%被识别为“0”。
如图9所示,这两个字符在预处理以后,特别在细化之后其特征非常接近,以致严重影响了识别率。
图9. 细化字符“0”和“D”的比较
5结论
本文提出了一种车牌字符多特征提取的方法,通过提取字符4个侧面的笔画斜率累积特征,拐点幅度累积特征,轮廓深度累积特征和字符内部的像素统计特征,构建一个
维度较低的特征向量集作为分类算法的输入,同时分别采用支持向量机(SVM),K近邻(KNN),BP神经网络(BP-NN)和径向基神经网络(RBF-NN)对陆丰高速公路实地拍摄到得行驶中的车牌图片进行测试。
实验结果表明采用多特征提取方法所提取的特征在不同分类算法下均可取得满意的识别结果,并且对于一些较为相似的字符识别率较高。
本文同时对4种分类算法的总体性能进行对比分析,实验结果表明,采用径向基核函数的支持向量机分类算法在总体识别率,训练速度和识别速度上均优于其他3种算法,具有很好的实用价值。
参考文献
[1] P. Comelli, P. Ferragina, M. Granieri et al., “Optical recognition of motor vehicle license
plates,” IEEE transactions on Vehicular Technology, vol. 44, no. 4, pp. 790-799, 1995. [2] M. Ko, and Y. Kim, "License plate surveillance system using weighted template
matching." pp. 269-274.
[3] Y. Huang, S. Lai, and W. Chuang, "A template-based model for license plate
recognition."
[4] S. Mori, C. Suen, and K. Yamamoto, “Historical review of OCR resear ch and
development,” Proceedings of the IEEE, vol. 80, no. 7, pp. 1029-1058, 1992.
[5] P. Devijver, and J. Kittler, Pattern recognition: A statistical approach: Prentice Hall,
1982.
[6] Due Trier, A. Jain, and T. Taxt, “Feature extraction methods for chara cter recognition-a
survey,” Pattern recognition, vol. 29, no. 4, pp. 641-662, 1996.
[7] M. Bokser, C. Inc, and C. Sunnyvale, “Omnidocument technologies,” Proceedings of the
IEEE, vol. 80, no. 7, pp. 1066-1078, 1992.
[8] M. Glauberman, “Character recognition for business machines,” Electronics, vol. 29, no.
2, pp. 132–136, 1956.
[9] X. Chi, J. Dong, A. Liu et al., “A Simple Method for Chinese License Plate Recognition
Based on Support Vector Machine,” in Proc of International Conference Communication, Circuits and Systems Proceeding, 2006, pp. 2141-2145.
[10] 薛磊, 杨晓敏, 吴炜et al., “一种基于KNN 与改进SVM 的车牌字符识别算法,”
四川大学学报: 自然科学版, vol. 43, no. 005, pp. 1031-1036, 2006.
[11] V. Koval, V. Turchenko, V. Kochan et al., "Smart license plate recognition system based
on image processing using neural network." pp. 123–127.
[12] X. Pan, X. Ye, and S. Zhang, “A hybrid method for robust car plate character
recognition,” Engineering Applications of Artificial Intelligence,vol. 18, no. 8, pp.
963-972, 2005.
[13] W. Wang, "License Plate Recognition Algorithm Based on Radial Basis Function Neural
Networks." pp. 38-41.
[14] V. Vapnik, The nature of statistical learning theory: Springer Verlag, 2000.。