汽车牌照在图像中的位置,并进一步提取和识识别出文本字符。从不同车牌图像中分割出的字符图像各不相同,尺寸变化范围大,增加了识别的难度。尽管可以采用图像变换方法将分割出的所有字符图像归一化为相同尺寸,但归一化过程又不可避免地丢失有用的字符信息,造成图像失真,无助于提高识别准确率,并且浪费时间,降低了识别速度。
本文通过分析汽车牌照的特点,提出了一种利用字符的笔画特征和结构知识对汽车牌照中的字母和数字进行识别的方法。试验表明,该方法识别速度快、准确率高,不受字符图像大小影响,适应性强。
与其它识别系统一样,牌照字符识别系统的关键也在于字符特征的提取,也就是如何选取既容易提取又能为识别系统提供尽可能高的模式鉴别能力。特征的提取和选择对识别系统至关重要,它基本上决定了识别系统的性能和识别精确度,甚至还可能影响到整个系统的识别的成功与否,一般来说,用于字符识别的分类特征应满足以下要求:
具有较强的分辨能力,即同一类中各样本间距离应尽量小,而字与字之间的差距应尽量大,最好没有交叠部分。具有较高的稳定性和抗干扰性,对字符的平移、旋转和尺度变换不敏感,受字符笔划断裂或粘连的影响尽可能小。特征码应便于提取,算法要尽量简便,在保证识别系统的性能的条件下,特征码的算法代价不能过高,以减少机器开销,提高运算速度。
3.1.1 目前字符识别的一些常规方法
与其它的字符识别系统一样,牌照字符识别系统的关键在于字符特征提取和模式匹配。在特征提取和匹配时主要有以下几种方法:一种是利用字符的结构特征和变换进行特征提取,如:Fourier 变换、Karhuren-Loeve 变换等,这种方法对字符的倾斜、变形都有较高的容忍度,但运算量巨大,对计算机性能要求高;一种是利用字符的统计特征进行特征提取,目前多数字符识别系统均采用此方法;还有一种是基于字符结构分析的识别方法,这种方法可以识别有较大旋转、变形、缩放的字符图像,但需要进行复杂的字符笔划分析和抽取,对牌照字符图像质量要求较高。考虑到车辆牌照字符中只有26 个大写英文字母、10 个阿拉伯数字和50 个左右的汉字,所组成的字符集合较小,因此在实验归纳的基础上提取出较多的正交特征码是可能的。
MATLAB语言是由美国MathWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,是近几年来在国内外广泛流行的一种可视化科学计算软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。实验证明该软件功能强大,语言简洁易学,人机界面友好,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好。
3.2 字符轮廓分析
目前为止,已经有成熟的OCR商业软件,或者其他形式的产品。但在实际应用中,要根据实际需要开发精简的识别算法。这里介绍一种采用数字字符轮廓结构特征和统计特征相结合的方法,并从中选出稳定的局部特征,利用结构语句识别的方法进行数字的识别。能够实现多种样式的数字的准确识别。同时还提高了识别的速度。
我国汽车牌照中使用的字符包括59个汉字、25个英文字母(字母I不用)和10个阿拉伯数字三种类型共94个,且都是印刷体,结构固定、笔画规范。图1是车牌号码中使用的全部字母和数字的图像。这些字符的形态有5种类型:a左斜(L)、b右斜(R)、c竖直(V)、d圆弧(C)、和e突变(P)。如下图(3-1)。数字字符就是这5种基本字符形态的组合。所以,基于字符形态划分的字符识别的基本原理就是先通过字符轮廓提取出字符的形态信息,然后通过形态组合识别字符。
3.2.1 字符轮廓的划分
由于受噪声和随机污点的干扰,以及基于连通值的图像腐蚀和膨胀会引起字符的变形。为了尽量减少这种变形对信息特征的干扰,或者从变形的字符中提取可靠的特征信息,将字符的整体轮廓分解为,顶部,底部,左侧和右侧4个方向的轮廓特征来描述。是的当中某部位的笔划发生变形时,不会改变或者减少对其它部位特征的影响。
3.2.2 字符四方向轮廓公式化表示
字符轮廓可以分解为顶部,底部、左侧和右侧4个方向。下面对每个方向的轮廓定义作出论述: 左侧轮廓由式(3-1)(LP(k),k=1,2,?,M)定义为字符最左侧边界像素点的水平方向坐标值。
(3-1)
式 (3-1)中P(x,y)表示图像中坐标为(x,y)像素点的水平方向坐标值。同理,右侧轮廓由式(3-2)定义为为字符最右侧边界像素点的水平方向坐标值:
(3-2)
相应的,顶部轮廓(TP(k),式(3-3))定义为字符最高边界像素点的垂直方向坐标值。底部轮廓(BP(k),式(3-4))定义为字符最低边界像素点的垂直方向坐标值。
(3-3) (3-4)
左侧、右侧、顶部和底部轮廓定义如图(3-1):
3.3 字符轮廓的变化特征
轮廓的整形:
为了描述轮廓的变化特征,定义4个方向轮廓的一阶微分:
(3-5)
式(3-5)中
Y RP 0 BP TP 0
L
图3-1字符轮廓定义示意图
3.4 字符形态划分的结构基元 3.4.1 字符结构基元划分原理
利用上面的轮廓一阶微分变化趋势,可以定义构成字符轮廓的基本基元。基本基元共有5个,分别为:左斜(L)、右斜(R)、竖直(V)、圆弧(C)、和突变(P)基元: (1) 竖直
定义:假设SL,SV和SR分别表示某侧轮廓一阶微分值大于零,等于零和小于零的个数。若SR=0,SL=0,则微结构V。如图(3-2 a)所示: (2) 左斜
定义:假设SL,SV和SR分别表示某侧轮廓一阶微分值大于零,等于零和小于零的个数。若:SR=0,SL大于阈值LT,则为结构L,如图(3-2 b) (3) 右斜
定义:假设SL,SV和SR分别表示某侧轮廓一阶微分值大于零,等于零和小于零的个数。若:SR=0,SR大于阈值RT,则为结构R,如图(3-2 c) (4) 圆弧
定义:假设SL,SV和SR分别表示某侧轮廓一阶微分值大于零,等于零和小于零的个数。若:SR大于阈值RT,SL大于阈值LT,则为结构C,如图(3-2 d):
需要指出的是,圆弧示意图只是一种抽象,它表示结构中包含了上升和下降的两种趋势。而不仅仅只是如图(3-2 d)所示的具体形状: (5) 突变
对于连续的字符轮廓,其一阶微分值的变化量比较小,而当字符轮廓不连续时,其一阶微分值相对较大。因此,定义:当轮廓的一阶微分值超过阈值PT时则字符轮廓有突变,即为结构P,如图(3-2 e)所示:
基元结构示意图如图所示。
间断
图 3-2 字符基元结构示意图
[11]
。以左侧轮廓为例,定义上述基本
a b c d e
3.4.2 字符形态划分方法的特点
字符形态划分方法具有如下特点:
对字符进行充分的分析后得到的5种笔划,是对字符形态的充分解析。 字符结构相对独立,正交性好。识别误码率小。
不需要将待识别的字符与全部字符进行匹配识别,因而提高了识别速度和准确率。
3.5 利用字符结构基元划分的字符识别原理
字符的形态已经划分为5种类型斜(L)、右斜(R)、竖直(V)、圆弧(C)、和突变(P) 。数字字符可以是由5种基本字符基元中若干种的组合。
先对字符形态进行解析,得到每个字符是哪几种基元的组合。然后对图像上检测到的基元进行字符形态的重构。就可以识别出数字字符了。
3.5.1 基元的检测
根据上述的定义,考虑实际应用中存在的干扰,基元的检测规则如下:
假设PD(k)表示某侧轮廓的一阶微分,k=1,2,?,K,SL,SV和SR分别为检测到的PD(k)大于零,等于零和小于零的个数,PT、RT和LT为正整数,则: (1) 若PD(k)≥PT,则在k处检测到结构突变(P); 若SL
(2) 由于字符轮廓突变处,表示字符轮廓不连续,则突变前后的轮廓特征必须分别检测。即若k1处检测到P,则在[1,k1-1]的字符轮廓范围内统计SL,SV和SR独立进行结构基元检测。若在k2处又检测到P,则在[k1+1,k2-1]范围内进行基元检测,依此类推。
(3) 由于字符轮廓基元形成需要一定数量轮廓像素点,即只有当SL+SV+SR≥T时,才能进行基元检测,否则不进行基元检测。例如,当SL+SV+SR=2时,其形成的基元结构是不稳定。 (4) 检测到突变结构P的有效范围在x∈[ST,N-ST+1] ,y∈[ST,M-ST+1],其中ST表示字符笔划的宽度。这主要是为了避免干扰严重情况下,轮廓边缘光滑处理不够理想时,可能检测到的假突变基元。
3.5.2 轮廓的统计特征
采用上述的结构基元还不足以准确识别残缺和完整的数字,下面引入轮廓的统计特征加以补充。 (1) 水平方向的最大字符宽度Wmax:
(3-6)
该特征主要用于识别数字1。当 ,即为数字1,H=M。 (2) 垂直方向的笔划数
M为字符笔划高度,ST为字符笔划宽度。
该特征主要用于识别数字0和8。因为0和8的轮廓结构特征及其相似。所以借助于垂直方向笔划数加以区分。受数字底部残缺的影响,8在垂直方向上的最大笔划数也可能为2。采用检测到笔划数为2时垂直方向的最小值S2来代替。
假设j列上像素点 ,检测到垂直方向的笔划数为1,在 检测到了第二个笔划,则 ,表示,检测到第二个笔划像素点的位置。当 时,检测到的字符为8,否则为0。
3.5.3 用字符形态识别数字字符
用字符形态识别数字字符,首先要分析数字字符的特点,然后针对每个数字字符的特点,对应上面字符形态模型的内容,得到形态模型组合与数字字符的关系。
3.5.3.1 数字字符的特点
数字字符是这5种基本字符形态的组合。十个数字为:0123456789 下面逐个分析阿拉伯数字的特点:
0: 顶部轮廓是圆弧,且左侧轮廓和右侧轮廓各有一个圆弧,检测到垂直方向第二个笔划的位置在 左侧。
1: 水平方向的最大字符宽度小于字符高度的一半。
2: 顶部轮廓有一个圆弧,并且左侧轮廓有两个基元,一个是突变另一个是左斜。 3: 顶部轮廓有一个圆弧,并且左侧轮廓不是圆弧而是突变。 4: 顶部轮廓是左斜并且还包含一个突变,右侧轮廓是竖直。 5: 顶部轮廓是竖直,右侧轮廓有一个突变。
6: 顶部轮廓是圆弧,右侧轮廓有一个突变,左侧轮廓有一个基元(圆弧)。 7: 顶部轮廓是竖直,左侧轮廓有一个突变,右侧轮廓有一个基元(左斜)。
8: 顶部轮廓有一个圆弧,左侧和右侧各有一个基元(圆弧)。检测到垂直方向第二个笔划的位置在 右侧。
9: 顶部轮廓有一个圆弧,左侧轮廓有一个圆弧,还有一个突变。
3.5.3.2 数字字符的识别方法
将数字字符的顶部、左右两侧的局部轮廓结构特征和轮廓统计特征组合成特征向量,用以描述10个数字。根据特征向量,采用结构语句识别算法识别底部残缺的和完整的数字字符配识别都从顶部轮廓特征开始。局部轮廓结构特征和统计特征描述数字: Size()表示结构集合中有几个结构元素。 Ln表示左侧轮廓的结构元素个数。
[16]
。由于
底部特征丢失,会改变左右两侧的部分结构特征,但不会影响顶部特征。因此特征描述和机构匹
3.5.4 字符识别的matlab算法流程