分享

用于车牌字符识别的SVM算法

 superlee 2007-07-16

用于车牌字符识别的SVM算法

王晓光,王 群

  (北京理工大学电子工程系 北京 100081)

   :支持向量机(SVM)是20世纪90年代初由Vapnik等人提出的一类新型机器学习方法,此方法能够在训练样本很少的情况下达到很好的分类推广能力。本文应用SVM算法对车牌中的汉字字符进行识别,无字符特征提取提高了识别速度,并且可得到较高的识别率。实验讨论了SVM算法用于字符识别时,不同的核函数对识别率的影响。实验结果表明,用SVM算法进行车牌字符识别具有较高的识别率。
  关键词:支持矢量机(SVM);车牌字符识别;最优分类面;核函数

  车牌自动识别技术是智能交通系统的一个重要的领域。车牌字符识别的准确性和识别速度直接关系到该技术是否能够得到实际应用。传统的字符识别方法,如模板匹配、神经网络等,在进行车牌字符识别时其识别率很大程度上依赖于训练样本的数量,且在无特征提取的情况下,识别的正确率相对较低。
  支持矢量机(SupportVector Machines,SVM)是由Vapnik等人于1995年提出的一类新型机器学习方法,能够较好的解决小样本、非线性及高维数等模式识别问题。近年来SVM已在脸像识别[1]、函数逼近以及概率密度估计等众多领域[2]得到了广泛的应用。利用该方法进行车牌汉字识别,在训练样本相对较少且无字符特征提取的情况下,仍可得到较高的识别率。

1 支持矢量机基本原理[3]
  SVM是统计学习理论中最年轻的部分,主要用于解决有限样本情况下的模式识别问题。
1.1 线性可分情况
  SVM方法是从线性可分情况下的最优分类面(OptimalHyperplane)提出的。所谓最优分类面就是要求 分类线不但能将两类样本无错误的分开,而且要使两类之间的距离最大。
  设线性可分样本集为(xi,yi),i=1,2,…,n,x∈Rd,y∈{+1,-1}是类别标号。d维空间中线性判别函数的一般形式为:g(x)=w.x+b,分类面方程为:
     
  将判别函数进行归一化,使两类所有样本都满足|g(x)|≥1,即使离分类面最近的样本的|g(x)|=1,这样分类间隔就等于2/‖w‖,因此间隔最大等价于使‖w‖(或‖w‖2)最小;而要求分类线对所有样本正确分类,就是要求其满足:
  
  因此,满足上述条件且使‖w‖2最小的分类面就是最优分类面。过两类样本中离分类面最近的点且平行于最优分类面的超平面上的训练样本就是使式(2)中等号成立的那些样本,他们叫做支持向量(SupportVectors)。
根据上面的讨论,最优分类面问题可以表示成如下的约束优化问题,即在式(2)的约束下,求函数:
  
的最小值。这是一个二次规划问题,可定义以下的Lagrange函数:
  
其中:ai>0为Lagrange系数。求式(3)的极小值就是对w和b求L氏函数的极小值。求L对w和b的偏微分并令他 们等于0,可转化为对偶问题:
  
显然,只有支持向量的系数ai不为0,即只有支持向量影响最终的划分结果。于是w可表示为:
  
其中:sgn()为符号函数,b是分类的阈值,可以由任意一个支持向量用式(7)求得,或通过2类中任意一对支持向量取中值求得。对于给定的未知样本x,只需计算sgn(wx+b),即可判定x所属的分类。
1.2 线性不可分情况
  对于线性不可分的样本,希望使误分类的点数最小,为此在式(2)中引入松弛变量ξi≥0:
  
取极小值的w,b,这一优化问题同样需要变换为用拉格朗日乘子表示的对偶问题,变换的过程与前面线性可分样本的对偶问题类似,结果也几乎完全相同,只是约束条件略有变化:
  
其中:C是实现选定的,他反映了在复杂性和不可分样本所占比例之间的折中。
1.3 支持向量机
  如果用内积K(x,x′)代替最优分类面中的点积,就相当于把原特征空间变换到了某一新的特征空间,此时优化函数变为:
  
  相应的判别函数也应变为:
  
算法的其他条件均不变。这就是支持向量机。
  支持向量机的基本思想可以概括为:首先通过非线性变换将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的内积函数实现的。统计学习理论指出,根据HilbertSchmidt原理,只要一种运算满足Mercer条件,就可以作为这里的内积使用。常用的核函数有以下几种:


2 基于SVM的车牌汉字识别
2.1 字符图像预处理

  本文采用移差扫描和窗口搜索的方法[4]找出车牌区,利用直方图变换法[5]对采集的车牌灰度图像进行二值化。二值化后的车牌图像利用直方图投影分割出单个字符,经过归一化变为16×16象素的字符点阵。实验结果表明,16×16的字符点阵在保持车牌汉字的基本特征的情况下,减少了计算量,加快了识别速度。
2.2 字符识别的SVM算法实现
  SVM分类器是二分类器,因此本文采用多个二分类器组合的one-against-the-others算法,将多类识别问题转化为二类识别问题来解决。每个分类器只将一个汉字与其余汉字区分开,训练样本中该汉字对应的y值为+1,其余样本对应的y值为-1。首先确定使用的核函数K,将训练样本值带入优化函数式(12)中,求出最优解ai及其非零值对应的支持向量,并根据任一训练样本值求出阈值b。将求出的所有参数值带入式(13)即得到判别函数f(x)。依此类推,分别求出所有汉字对应的判别函数。进行字符识别时将输入信号送到每一个分类器,然后循环检查所有的分类器输出。若某一分类器的输出值为“1”,则认为输入的车牌字符为该类对应的汉字字符;否则,若所有输出值均不为“1”,则拒绝识别该字符。由于识别存在一定的误差,可能同时有多个分类器的输出值为“1”,此时则判断为第一个输出值为“1”的字符类。

3 实验结果与分析
3.1 训练样本的选取

  车牌中的汉字约为50个,分别为全国各省和直辖市的简称,以及军种、领事馆和警车等的名称缩写。本文中只对标准的车辆牌照进行识别,车牌中的汉字为各省及直辖市的简称,共34个汉字字符。由于条件的限制,只有少量的字符取自实拍的车牌灰度图像,其余为在字库中选取的相近字体的汉字字符。所有的字符图像均经过预处理归一化为16×16的黑白二值化图像,如图1所示。

  由于实验样本较少,在字符样本上加上不同的噪声处理来进行样本集的扩充。最后,待识别的汉字字符样本共16套,每套样本均有34个不同的汉字字符。从字符样本中选取6套作为训练样本对SVM进行训练,余下的10套作为测试样本,进行识别。
  本文的识别系统识别34个汉字需要建立34个二分类器,为提高识别速度,降低识别系统的复杂度,输入字符不进行特征提取,将16×16的字符矩阵转换成256维的向量,作为每个分类器的输入。
3.2 核函数的选择
  本文系统分别用4种不同核函数的SVM算法进行了实验,结果如表1~表4所示。



  实验结果表明,选用不同的核函数对识别率的影响不大。核函数的参数变化时,识别率会略有不同,故需要根据实验来选择合适的参数。为了提高系统的识别速度,本文最终选择径向基函数作为核函数。

4 结语
  应用SVM算法对车牌中的汉字字符进行识别,在没有字符特征提取的情况下,获得了较高的识别率和识别速度。实验结果表明,在训练样本较少的情况下,该系统的识别率较高,并具有算法简单,无需先验知识,容易控制和稳定性好等优点。
  文中对不同的核函数进行了对比,结果表明识别率相差不大,识别时间稍有差别。核函数的选择很重要,但到目前为止,还没有一个公认的比较好的选择标准。如何确定适当的核函数及其参数还有待进一步研究。

  参考文献

[1]EOsuna,RFreund,FGirosi,etal.Trainingsupport vector machines:an application to facedetection[A].Proc IEEEconference on computer vision and pattern recognition[C].Puerto Rico:[sn],1997:17-19.
[2]VladimirNVapnik.统计学习理论的本质[M].张学工译.北京:清华大学出版社,2000.
[3]边肇祺,张学工.模式识别(第2版)[M].北京:清华大学出版社,2000.
[4]袁宝民.基于移差扫描和窗口搜索的车牌定位方法
[J].计算机工程,2003,29(14):103-105.
[5]邹晓涛,陈学全.汽车牌照自动识别系统的设计与研制[J].红外与激光工程,2002,31(5):415-418.

 

来源:电源技术应用

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多