字符结构知识在车牌识别中的应用
扫描二维码
随时随地手机看文章
汽车牌照识别是基于图像分割和图像识别理论,对含有汽车牌照的图像进行分析处理,从而确定汽车牌照在图像中的位置,并进一步提取和识别出文本字符。从不同车牌图像中分割出的字符图像各式各样,尺寸变化范围大,增加了识别的难度。尽管可以采用图像变换方法将分割出的所有字符图像归一化为相同尺寸,但归一化过程又不可避免地丢失有用的字符信息,造成图像失真,无助于提高识别准确率,并且浪费时间,降低了识别速度。
本文通过分析汽车牌照的特点,提出了一种利用字符的笔画特征和结构知识对汽车牌照中的字母和数字进行识别的方法。试验表明,该方法识别速度快、准确率高,不受字符图像大小影响,适应性强。
1 车牌字符结构和识别
中国大陆汽车牌照中使用的字符包括59个汉字、25个英文字母(字母I不用)和10个阿拉伯数字三种类型共94个,且都是印刷体,结构固定、笔画规范。图1是车牌号码中使用的全部字母和数字的图像。这些字符的结构在水平方向有三种类型:左右对称、左大右小、左小右大。在竖直方向同样有三种结构,即上下对称、上大下小、上小下大。如车牌号码中使用的数字"8",就属于左右对称且上下对称。
从图1可以看出,全部字母和数字的笔画共有两大类:直笔画和弧笔画。直笔画又可分为横笔画、竖笔画、左斜笔画(相当于汉字笔画中的"撇")和右斜笔画(相当于汉字笔画中的"捺")。弧笔画是一条曲线段,本文将其分为两类:开弧笔画和闭弧笔画。所谓开弧笔画,指该弧笔画没有形成封闭环,如字母"C"。而闭弧笔画则形成一个封闭的环,如数字"0"。
根据字符图像的这一特点,本文采用下述方法对字母和数字进行逐级分类,形成一棵识别判定树,每个字符就是一个叶子:
(1)首先在待识别的字符图像中搜索封闭环的数量和位置。
(2)根据搜索到封闭环的结果判断字符所在的类封闭环字符类、双封闭环字符类、无封闭环字符类。 (3)针对每一类分别进行处理。
(4)双封闭环字符只有"8"和"B",因此只要抽取竖笔画即可区分出这两个字符。"B"的左半部分有一长竖,而"8"没有。
(5)单封闭环的字符有"A"、"D"、"O"、"P"、"Q"、"R"、"0"、"4"、"6"和"9"。根据封闭环的位置将这些字符分成三类:封闭环在上部;封闭环在下部和封闭环在中间,然后再根据结构特点和抽取的笔画特征进行识别。
.封闭环在上部的字符有"P"、"R"和"9"。如果待识别字符图像上半部分有一个封闭环,则从左半部分抽取竖笔画;若左侧部分没有竖笔画,则该字符为"9";若在左半部分抽取到竖笔画,继续抽取右斜笔画;抽取到右斜笔画,该字符为"R";否则为"P"。
.封闭环在下部的字符有"A"、"4"和"6"。如果待识别字符图像下半部分有一个封闭环,则从右半部分抽取竖笔画;若右侧部分有竖笔画,则该字符为"4";若在右半部分没有抽取到竖笔画,继续抽取横笔画;抽取到横笔画,该字符为"A";否则为"6"。
.封闭环在中间的字符有"D"、"O"、"Q"和"0"。实际应用中,"O"和"0"的图像完全相同,可以作为同一个字符处理。如果待识别字符图像中间有一个封闭环,则首先利用上下对称特点判断是否为"Q";若上下对称,则为"0"("O")或"D";然后按照左右对称特征区分字符"0"和"D"。
(6)无封闭环的字符有"C"、"E"、"F"、"C"、"H"、"J"、"K"、"L"、"M"、"N"、"S"、"T"、"U"、"V"、"W"、"X"、
"Y"、"Z"、"l"、"2"、"3"、"5"和"7",通过抽取笔画对这些字符进行识别,具体步骤如下:
· 抽取横笔画和竖笔画。
· 若待识别字符图像没有横笔画和竖笔画,则该字符为"S"、"V"或"X"。
· 若待识别字符图像只有横笔画而没有竖笔画,则该字符为"2"、"3"、"7"或"Z"。
· 若待识别字符图像只有竖笔画而没有横笔画,则该字符为"1"、"C"、"J"、"K"、"M"、"N"、"U"、"W''或"Y"。
· 待识别字符图像既有横笔画又有竖笔画的字符为"5"、"E"、"F"、"C"、"H"、"l"或"T"。
."S"、"V"和"X"的识别。抽取左斜笔画和右斜笔画,"S"没有这两种笔画,从而可识别出"S"。"X"的两条斜笔画交点位于字符图像的中间位置,而"V"的两条斜笔画相交于字符图像的下部,以此识别"X"和"V"。
· 识别2"、"3"、"7"和"Z"。这四个字符中只有"Z"有两条横笔画,从而可以此识别出"Z"。"3"和"7"的横笔画都位于上部,而"2"的横笔画位于下部,这样又可以识别出"2"。对于"3"和"7",利用左斜笔画进行识别。"7"具有左斜笔画,而"3"没有。
·识别"1"、"C"、"J"、"K"、"M"、"N"、"U"、"W"和"Y"。根据竖笔画的数量将这些字符分为三类,"1"、 "C"、"J"、"K"和"Y"都是一条竖笔画、"M"、"N"和"U"是两条竖笔画,而"W"有三条竖笔画,这样就完成了"W"的识别。
对于一条竖笔画的字符,判断该笔画的位置是在左边("C"和"K")、中间("1"和"Y")还是在右边("J"),即可识别出"厂。根据有无右斜笔画区分"C"和"K",按照中间竖笔画的长短区分"1"和"Y"。
.由于字符"N"有一右斜笔画,以此将其从"M"和"U"中识别出来。对于"M"和"U",依靠结构特征已无法识别,本文使用字符图像中前景像素个数与背景像素个数的比值来判断。根据这两个字符的特点,只计算字符上半部分即可。 · 识别"5"、"E"、"F"、"G"、"H"、"I"和"T"。这些字符中,只有"E"具有三条横笔画,"F"有两条横笔画,其余为一条横笔画。剩下的字符中,按照竖笔画的数量分为两组: "5"、"L"和"T"为一条竖笔画,"G"和"H"为两条竖笔画。"H"的两条竖笔画长度相同,而"G"的两条竖笔画则一长一短,这是区分"G"和"H"的标志。"T"的竖笔画在中间,"5"和"L"的竖笔画在左边。"L"的竖笔画长,"5"的竖笔画短,这样就完成了"5"、"T"和"L"的识别。
搜索封闭环实际上就是在字符图像中搜索连通域。在字符的二值图像中,假定字符像素值"1",背景像素值为"0",则:
(1)无封闭环的字符图像中只有两个连通域,即字符连通域和背景连通域,图2(a)中的B和F。
(2)只有一个封闭环的字符图像中有三个连通域,即一个字符连通域和两个背景连通域,图2(c)中的B1、B2和F。
(3)有两个封闭环的字符图像中有四个连通域,即一个字符连通域和三个背景连通域,图2(b)中的B1she、B2、B3和F。
搜索封闭环的算法如下:
(1)读入二值字符图像。
(2)找到一个像素值为"0"的背景像素点B。
(3)搜索B的连通域,并将该连通域内的像素全部标记为背景1。
(4)遍历图像中像素值为"0"的像素。
(5)若所有"0"像素都已标记为背景1,则该图像内封闭环个数为0,跳转到(11)。
(6)若存在没有标记为背景1的"0"像素点B1,则有封闭环。
(7)搜索B1的连通域,并将该连通域内的像素全部标记为背景2。
(8)遍历图像中像素值为"0"的像素。
(9)若所有"0"像素都已标记为背景1或背景2该图像内封闭环个数为1,跳转到(11)。
(10)若存在没有标记为背景1或背景2的"0"像素,则该图像内封闭环个数为2。
(11)结束搜索,返回封闭环个数。
字符的笔画抽取可参见文献[1]
2 识别测试
利用本识别方法,笔者对从车牌中分割出的字符进行了识别测试。所测试的字符包括了车牌中所使用的全部35个数字和字母共7000幅图像,其中图幅最大的为l00xl00像素,而最小的是20x20像素。正确识别的有6946幅,正确率超过99%。其中识别错误的图像主要集中在字母"0"和"D"。通过对这些容易识别错误的字符进行二次识别,可以大大提高识别准确率
本文提出的字符识别方法的核心就是通过判定树对字符群体层层分类,从树干开始逐步缩小识别范围,直到最后只有一类字符,即识别成功。
该方法具有如下特点:
(1)不需要建立识别样本库,完全依据字符自身的结构特征进行逼近识别。
(2)不需要将待识别字符与全部字符进行匹配识别,因而提高了识别速度和准确率。