基于形体特征的手写体数字识别

时间:2010-10-16

     摘要:通过对手写体数字识别技术的研究,本文建立了一个脱机手写体数字识别系统,对手写体数字的识别提出了一些新的思路,并对识别过程中所采用的关键算法进行了阐述。本文提出了二次毛刺去除法对手写体数字图像进行预处理,采用骨架搜索法来提取字符的孔洞特征,使用模板匹配加骨架搜索的方法来确定不同方位的端点,利用模板匹配法来提取字符的横线及竖线特征,采用特征匹配法对字符进行识别。实验证明,本文所建立的基于形体特征的手写体数字识别系统能较全面地反映手写体数字各方面的特征,总的识别率达到95.5%,有着较好的识别性能和十分广泛的应用前景。

  1、引言

  随着计算机硬件速度的快速提高及价格的不断下降,计算机的应用逐渐渗透到人们工作和生活的方方面面,然而硬件运算速度的提高并不意味着数据处理速度也能同样得到大幅度的提高,因为它还受到信息数据采集速度的制约。为了提高信息数据的采集录入速度,本文对手写体数字识别技术进行了研究,并建立了一个脱机手写体数字识别系统。

  2、基于形体特征的手写体数字识别系统的软件架构

  手写体数字识别系统主要由五大模块组成(如图1所示),分别是:字符读入模块、预处理模块、特征提取模块、字符识别模块和输出显示模块


图 1 系统软件架构图

  3、手写体数字字符的预处理

  预处理的目的是去除图像中的噪声,将原来的灰度图像转变成清晰的二值图像,以便字符特征的提取。本系统在预处理的过程中,提出了二次毛刺去除法和分方位毛刺去除法等多种新方法对字符进行预处理。

  3.1.读图并将其二值化

  二值化后的bmp 数字图像的像素值统一为“0”和“1”两种。“1”值代表数字数据, “0”值代表背景数据。图4.a 即是二值化后的数字字符图像。

  3.2.平滑:毛刺去除

  平滑的作用是去除数字边缘的粗糙点,采用模板匹配法来进行平滑。本文提出了二次毛刺去除法对数字图像进行毛刺的去除,即在粗线条和细线条两种不同的情况下对字符的毛刺进行两次去除,这里是在粗线条的情况下对字符毛刺进行的次去除,如图4(b)所示。其算法如下所示:

  (1)平滑去噪。

  归一化后的数字矩阵中,1 代表数字数据,0 代表背景数据。若在数字矩阵的某一部分中,一条线段的四周都是0,则认为该线段不是数字数据,属于噪声,因此将其去掉;而如果在一个0 的周围都是1,则认为此0 不该出现,因此令其为1,如图2 模板1 和模板2 所示。

  (2)去掉对于拓扑分析无贡献的点。

  将数字矩阵从上到下、从下到上各扫描一遍,对数字拓扑进行两遍分析和处理,首先建立一个如图3所示的模板模型。

  从上到下对图像进行扫描,其处理准则为:

  1)P0、P1、P2、P3、P4、P6 等于0,g 等于1,若P5 或P7 等于1,则令g 等于0。

  2)若P5、P6、P7 至少有两个等于1,P0、P1、P2、P3、P4 等于0 且g 等于1,则令g 等于0。

  从下到上扫描是做位置上下对称的相同处理,这里不在重复介绍。


图 2 平滑去噪模板图


图3 去掉对于拓扑分析无贡献的点

  3.3.切割

  切割是指沿着字符的上下左右边缘将数字剪切出来。首先采用扫描的方法,找出字符的上下左右切点,然后根据上下切点的行数和左右切点的列数来决定所要剪切的字符的起始和终止的行数与列数,就可以将字符剪切出来。图4(c)即是对数字字符图像进行切割后的结果。

  3.4.细化

  细化是将字符的粗线条变为细线条,为后面的骨架搜索奠定基础。本系统的细化步骤采用Matlab 库函数里的细化函数:bwmorph (J,'skel',Inf) 来完成,图4(d)即是细化处理后的结果。

  3.5.归一化

  归一化是将细化后的字符放在32*24 的图像空间的中间,统一字符的大小及格式,如图4(e)所示。

  3.6.二次毛刺去除及断点修复

  去毛刺即是去除细化后的数字边缘的粗糙点,采用模板匹配法来实现。这里是二次毛刺去除法中在细线条的情况下对字符毛刺进行的第二次去除。在第二次毛刺去除的过程中,本文又提出了分方位毛刺去除法对毛刺进行去除,即使用不同的模板对字符的左上、左下、右上、右下、左中、右中、上中和下中八个方向分别进行处理。在去毛刺的同时采用模板匹配法对字符中出现的断点进行修复。图4(f)即是对字符进行第二次毛刺去除和断点修复处理后得出的结果。


图4 预处理过程图

  4、手写体数字字符的特征提取

  特征提取是手写体识别系统中一个非常重要的环节。本文在对前人所采用的特征提取方法进行研究的基础上,从多角度、多方位对数字字符的特征进行提取。

  4.1.孔洞特征

  对孔洞特征的提取,首先是寻找字符的上切点,以上切点为起始点,按照右、右上、上、左上、左、左下、下和右下八个方向的顺序开始进行骨架的搜索,当搜索到非零像素点时,即以该点作为中心点,重复上述操作,同时记录上一个中心点的行列数,以避免重复搜索已搜索到的点。在字符骨架线链码形成过程中,若搜索到的下一点就是该骨架搜索的起始点,且已形成的骨架链码码长超过了一定的域值,则认为搜索到一个孔洞;接着寻找字符的下切点,以下切点为起始点按照左、左下、下、右下、右、右上、上和左上八个方向的顺序,重复上述操作,再次进行骨架的搜索。在搜索的过程中,若搜索到的骨架线的链码码长小于设定的阈值,则该骨架线被当成干扰曲线,不参与特征提取。

  4.2.端点特征

  连接数为1 的点定义为端点,按照字符的特征,端点总共可以分为八种:上中端点、下中端点、左上端点、左下端点、右上端点、右下端点、左中端点和右中端点。本文对端点特征的提取提出了模板匹配加骨架搜索的方法,即先对字符的上中、下中、左上、左下、右上、右下、左中和右中这八个方向进行扫描,找出各自的切点,然后采用模板匹配法判断该切点的连接数是否为1,如果是,证明该点即是端点,如果不是,再采用骨架搜索的方法,对各个切点所在方位可能的延伸方向进行搜索,若在搜索的阈值(阈值为7)内找到连接数为1 的点,仍证明该方位上存在端点,若超过阈值仍找不到连接数为1 的点,则说明该方位上不存在端点。采用这种方法来寻找端点,在判别端点的方位,去除伪端点方面比先前单靠以连接数为1 作为判别条件,在整个图像区域内进行搜索的方法来得更加准确、方便和快捷。

  4.3.四交叉点特征

  确定四交叉点的存在是识别字符4 的关键所在。正常情况下的四交叉点如图5 所示,因为手写字符带有一定的随机性,所以也会出现如图6 所示的不规则四交叉点。


图5 规则的四交叉点图


图6 不规则的四交叉点

  对于确定不规则四交叉点的存在,先前所采用的方法是将不规则的四交叉点转变为规则的四交叉点,然后再进行识别,这样做无疑是兜了一个不必要的大圈子。本系统在对无数个不规则四交叉点样本的像素组合进行研究的基础上,总结出不规则四交叉点大多数的像素组合方式(其中部分的组合方式如图4.3 所示),然后将这些组合方式采用模板的形式表达出来,使用模板匹配的方法确定四交叉点的存在。


图 7 部分四交叉点的组合方式图

  由图 7 可见,不规则四交叉点都是由放置位置各不相同的“T”字型和“L”字型组合而成的。由此可得到如图8 所示的九个模板,只要具备一个模板1 或具备模板2 至模板9 中的任意两个,就可以断定四交叉点的存在。


图 8 四交叉点判定模板

  4.4.左右截距特征

  找出字符的左右切点所对应的列数,就可以算出其左右截距。提取字符的左右截距特征是专门为识别数字1 而设置的,因为十个字符中只有1 的宽度明显比其它的字符窄。

  4.5.竖线特征

  竖线特征的提取是专门为字符5 和字符7 而设立的,因为字符5 和字符7 都有明显的竖线存在。竖线的搜索采用模板(如图9 模板1 所示)匹配的方法。根据字符5 和7 的特征,字符5 的竖线搜索范围仅限于图像的左上部分,而字符7 的竖线搜索范围仅限于图像的右半部分。

  4.6.横线特征

  横线特征的提取是专门为字符2 而设立的,采用模板匹配的方法,对图像的下半部分进行搜索,寻找与图9 模板2 相匹配的点。


  5、手写体数字字符的识别

  本系统本着提高正确率、尽量降低误识率、允许一定拒识率的原则对各个手写体数字字符进行识别。在识别的过程中,本系统在模板匹配法的启发下,提出了特征匹配法,即规定每一个字符应具备的特征,当某个字符具备这些特征时,就可判定该字符所代表的数字。

  6、系统的测试结果

  系统的测试结果如表1 所示:

表 1 数字字符的测试结果表


  本系统总共对1000 个样本进行了测试,识别正确的有955 个,正确率达到95.5%;识别错误的有26个,错误率为2.6%;拒识的有19 个,拒识率为1.9%。对于单个字符而言,字符“1”的正确识别率,达到98%,字符“8”的正确识别率,只有93%。

  7、小结

  到目前为止,计算机识别手写体数字的能力还远远不能与人相提并论,因此设计高的手写体识别系统也就成为了众多学者所追求的目标。本文对手写体的数字识别系统进行了一定的研究,建立了一个基于形体特征的手写体数字识别的软件系统。在该系统各个模块的算法上,既有对前人好方法的继承,又有本人的一些想法和创新,以下是对本系统所出现的一些创新点的总结:

  在预处理模块的去毛刺环节中,提出了二次毛刺去除法,使在毛刺的去除上达到了良好的效果,而在毛刺的去除过程中,又提出了区分方位毛刺去除法,使对毛刺的去除更具有针对性。

  在端点特征的提取过程中,提出了模板匹配加骨架搜索的方法,使在判别端点的方位,去除伪端点方面比先前单靠以连接数为1 作为判别条件,在整个图像区域内进行搜索更加准确和方便。

  在四交叉点特征的提取过程中,摈弃了先纠正不规则四交叉点再进行识别的做法,直接对不规则四交叉点进行识别,有效地节省了系统的运算量和运算时间。

  在特征提取的过程中,本系统努力寻找各个字符稳固的特征,例如在十个字符中,字符1 的宽度明显比其它的字符窄,以此作为字符1 的特征,具有很好的鲁棒性,使1 的识别率高达98%。


  
上一篇:LabWindows/CVI 在虚拟信号发生器设计中的应用
下一篇:同步整流技术的应用与实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料