车牌识别中的字符切割

部分内容如下:
4.3本文的改进方法
       通过上述两种方法的介绍可以看出,水平投影法对于只有连通字符并且不存在干扰的车牌具有良好的分割效果,而且算法复杂度也相对简单,但对于含有不连通或者粘连字符的情况则有一定难度;相反,模板匹配法根据车牌自身特点首先建立一个匹配的模板,很好地解决了字符粘连和不连通问题,但不足是由于需要事先建立模板,算法复杂度相对较高。针对两种方法各自的缺陷,本文提出了一种基于垂直投影的自适应选择定位方法。该方法在字符分割之前增加了垂直投影处理方法使系统根据实际情况自适应地选择当前最优的算法作为分割算法。
      我国标准的车牌具有以下两个特点:
      1.车牌中含有7个字符,并且除“1”和,’I”外,其他字符的宽度大致相同;
      2.所有字符中除“陕”,“川”等少数不连通字符外,其他均为连通体。
      根据车牌的上述两个特点,本文在分割之前,首先对车牌进行垂直投影,因为车牌含有7个字符,因此,理想情况下投影后会形成7个波峰。在这种情况下,采用水平投影法进行分割就会得到准确的结果。但是,如果车牌中存在不连通的字符,如“陕” , “川”等,投影后的波峰个数就会大于7,显然,此时模板匹配法的效果要远远好于水平投影法。本文采用的自适应算法就是将投影的峰值个数和宽度这两个特征作为阀值进行选择,从而提高了分割的准确率以及算法的效率。车牌分割算法的流程图如图4-2所示。

4.3.1字符分割流程      
      车牌分割算法的具体流程如下:
      1.对定位后的车牌进行二值化,完成去除左右边框和分隔符等预处理过程;
      2.对处理后的车牌垂直投影,如果峰值的个数为7,再计算各峰的峰宽比,如果在所限定的门限内,则采用水平投影法,否则采用模板匹配法,具体的代码流程如下所示:

其中,num为峰值的个数,T1和T2为峰宽比所选定的闭值范围,本文根据实际的 车牌字符比例选择 其中,num为峰值的个数,双和兀为峰宽比所选定的闭值范围,本文根据实际的
车牌字符比例选择[0.8,1.5]作为参数,width为记录各峰值宽度的数组,f1()为水平投影法函数入口,f2()为模板匹配法函数入口。     
     3.提取分割后的车牌字符。
4.3.2车牌二值化
       车牌定位后得到的图像是灰度图像,但是字符分割算法都是基于二值图像的。所以在分割之前,需对图像进行二值化处理。二值化算法又称为阑值算法,所以二值化的关键在于闭值的选取。本文所采用的是otsu算法[2司。otsu算法是在判别最小二乘法基础上推导出来的。基本思想为取一个闭值t,将图像像素按灰度大小分为大于等于t和小于t两类C1和C2,然后求出两类像素平均值方差心(类间方差)和两个类各自均方差(类内方差),找出使两个方差比最大的阂值t,该阐值为二值化图像最佳闭值。
      设类C1和C2中各自的像素点总数为城和巩,两类的平均灰度值分别为M1和M1,   。则有:

      oisu算法基于图像像素的灰度值分类,按照类间方差与类内方差比值最大的原则获得门限值,使目标与背景之间方差最大,即找出使两个方差比最大的闭值,这种方法不论图像直方图有无明显的双峰,都能得到较为满意的结果。Otsu二值化算法的主要优点有:
      1)算法的实现简单;
      2)基于图像的整体特性的积分而非局部特性
      3)可推广到多闭值的分割方法;
      4)该算法的适用性强。
     车牌图像二值化后的结果如图4一3(b)所示。


4.3.3车牌边框的去除
      由于车牌定位不可能对位置限制特别精确,那么车牌的上下边宽及铆钉就会对字符分割产生噪声,为了分割的准确性需要在分割之前去除铆钉和车牌边框。在本文中,前一步的车牌定位是通过在水平方向上计算峰谷交互的次数实现的,而车牌的上下边框处是不具备这一特征的,所以定位出的图像是已经去除上下边框后的车牌,这样就减轻了字符分割的工作量。那么,我们只需要去除车牌的左右边框即可。


       本文采用垂直投影统计白色像素点个数的方法去除车牌的左右边框。首先,对车牌图像做垂直投影,如图4一4(a)所示,曲线一记录的是白色像素点的位置,可以看出边框和字符部分都表现为波峰。但是,对于车牌而言,第一个字符为汉字,不会出现宽度极小的峰值,那么投影左侧的第一个很大的波峰区域可能是边框,同理,本文从后1/3处向后进行搜索,如果发现与左侧类似的情况,则认为是右边框。由上述讨论可得,本文在去除左右边框时主要遵循以下两个条件:
      1.波峰值较大但宽度较小;
      2.波峰出现在所有垂直投影的边界上。
      根据上述条件,车牌去除边框后的投影图为图4一(b),相应的车牌图像为4一4(e)。
4.3.4去除分隔符
      分隔符是指第二个字符与第三个字符之间的圆点,二值化垂直投影后,它也会产生一个小的波峰,在分割之前需将其去除,否则可能会引入噪声,降低准确率。
      车牌中的分隔符比较窄,产生的波峰也相对较小,根据上述两个特点,车牌分隔符的去除方法为:
      (1)对垂直投影产生的波峰进行扫描,对于峰值较小的峰进行标记;
      (2)计算所标记的波峰的宽度,并计算其余整个车牌长度的位置关系,如果位置恰好为整个车牌大约1/4处,则认为此波峰为分隔符,将其置为0值。图4一5(b)为去除分隔符后车牌图像。

4.3.5字符的分割
       完成字符分割的一些处理工作后,系统开始进行车牌的分割工作。因为我国的车牌图像一共有7个字符,除个别左右结构的汉字(如“陕、川”等)外,对车牌进行垂直投影后,会呈现出7个主要的峰值,并且单个字符的宽度大致相同。因此本文选用的自适应峰值个数门限值为7,峰宽比的闭值范围为[0.8,1.5」。
4.3.5.1水平投影分割法
      水平投影分割法,就是简单的根据波峰的起始和终止位置对字符进行界定,其算法描述如下:
      (1)对图像从左到右逐列进行扫描,遇到第一个白色像素点,认为是字符的起始位置,记录位置begin1,j+1;
     (2)继续扫描,遇到第j列有白色像素点,第j+l列白色像素点为0,则认为是字符的结束位置,记录位置end1;
     (3)重复(1)的过程,记录第二个字符的起始位置begin2,并计算第二个字符与第一个字符的Ib]隔space1=begin2-end1;
     (4)重复上述(1),(2)的过程,直到扫描结束为止。
      本文所使用的车牌垂直投影后波峰数为7,并且各个峰值的宽度比在所规定的阐值范围内,因此水平投影法为当前最优算法,系统会自适应地选择该方法作为分割算法。水平投影分割的车牌字符如图4一6所示。

4.3.5.2模板匹配字符分割法
      上一节提到,如果车牌区域垂直投影后刚好具有7个峰值,那么可以直接利用水平投影法进行分割,但在实际环境中,一些字符存在粘连或不连通的现象(如“陕、川”等),经垂直投影后,产生的峰值数不符合水平投影的要求。在这种情况下,系统会切换到模板匹配法进行分割,通过在分割之前建立一个标准模板完成字符的分割。
     模板匹配法的具体方法为:
    (1)若相邻波谷i和i+1间的波峰较小时将气删除。主要是相对于字符间的噪声设置的;
   (2)若相邻波谷i和i+1间的波峰较大时,即使i和i+1间的距离不够单字符宽度,因为车牌中有“1”存在,也不能将其合并,需要设置标记;
   (3)若相邻矩形‘一1和弓的宽度较小且合并后宽度接近矩形序列的中值,将ri-1和ri合并,便于解决某些汉字的不连通问题;
   (4)若矩形ri的宽度接近两倍中值宽度且前后相邻矩形的宽度接近中值宽度,将ri等分成两份,以解决车牌字符中的粘连问题;
   (5)相邻矩形ri-1和ri 的宽度相差较大且合并后宽度接近两倍中值宽度时,调整ri-1的右边界和ri的左边界,使其尽量接近字符的真实边界。车牌图像中字符与字符之间有一定的近似空白的距离,以精确定位矩形框的左右边界。
     如图4一7(a)的车牌是以“川”字开头,而“川”是一个不连通的字符,在投影时会形成三个宽度较窄的峰值,在实际中需进行合并处理。此外,车牌中字符“R”和字符“9”之间出现了粘连,在投影时会产生一个较宽的峰值,需做分割处理。

    本文根据模板匹配方法采用的算法描述如下:
    (1)扫描垂直投影序列,找到垂直投影中所有不为0的序列R:
R=[1  2…57  77… 90  91…210  211  212  213」

   (2)对R做一次差分,即R1(i)=R(i+1)-R(i),得到R1(i):
R1=[1,1,…,4,1,…,20,1,…1,1]

   (3)在R1中寻找步长大于1的序列号向量R2。令R2=find(R1>1),得到:
R2=[7,12,18, 44, 94,119,142]

这里R(R2(j))为字符的终止序列号,相应的R(R(j-1)+1)为字符的起始序列号;
   (4)根据投影的序列号向量计算得到每个峰值的起始和终止序列号num:
num=[1, 7, I 1,15,18, 23, 32, 57, 77,126,134,158,164,186,192, 213]

   (5)根据num计算每个峰值的宽度序列向量width:
width=[7,5,6,26,50,25,23,22]

   (6)根据得到的width,利用ave=sum(width)/7计算峰值的平均宽度,计算得ave约等于23,然后利用这一平均宽度对峰值进行切分和合并。在宽度向量中,width[1]+width[2]+width约等于ave,故可能是不连通的字符,而width[5]约等于2*av。,则很有可能是字符粘连。根据判断及车牌字符特点,对宽度向量进行合并和分割,结果如图4一8所示。



   (7)按照上述分割和合并的方法,最终的序列范围为num',即最终匹配的模板。分割结果如图4一9所示。
num'=[1, 23, 32, 57, 77,101,101,126,134,158,164,186,192, 213]


你可能感兴趣的:(车牌识别)