本发明属于文字模式识别领域,是涉及一种应用直线段笔划特征和直线段笔划之间相对位置关系辨别手写体文字结构特征的识别技术。 目前,文字模式识别技术在识别印刷体文字上已趋实用化,但在手写体识别方面尚处于探索阶段。由于手写体文字形体变化大,与印刷体的特点恰恰相反,所以印刷体识别中常用的、有效的方法不可能移植到手写体领域中来。近几年来在手写体识别研究方面的参考文献有:
1 北京工业大学的“以笔画结构分析为基础的一种限制性手写汉字识别方法”(汪庆宝,张征,电子学报,VOL 15,NO 3,1987年5月),是以汉字笔划的交叉,包含为主要判决关系,以相对位置关系作为辅助判别关系,书写时不连笔,不潦草。经预学习后,对五百字所作试验,达到96.1%的识别率。
2 上海科技大学的“手写体汉字识别系统”(陶国轩,计算机学报,1989年11月),应用首尾划特征表示法,加上字形的总体外形特征进行识别。
3 美国波士顿东北大学计算机学院的“手书体中文字符的分解与识别”(中文信息,1989年第4期)采用一种数组语法来构造各种中文字符的分析序列。
上述文献介绍的手写体汉字识别研究,明显存在下列共同缺点:
1 提取的特征不很切合字的结构特征。
2 特征表示复杂。
3 抗干扰能力差,识别率不高。
本发明的目的在于研究一种准确,简单的识别技术,要求书写限制更少,不需预学习就能识别手写文字,本发明着重研究了手写体文字的结构特征,认为要提高手写体辨别能力,必须用直线段笔划特征和直线段笔划之间的相对位置关系来描述文字结构特征。其主要优点有:
1 非常切合文字的结构特征。
2 特征表示简单。
3 允许一定程度上的连笔和识错干扰。
4 只设一个标准样本,不需预学习。
发明内容:
1 图象输入:
图象输入装置将字稿转化成一幅二值化图象存储入图象存储器中,待识别处理装置从中进行识别处理。图象输入装置可采用任何一种图文扫描设备。
2 直线段笔划分割:
自上而下对象素串扫描并填入该直线段笔划序号,记下象素串长度L和始象素坐标,与邻接象素串比较,求出象素串长度增量和始象素位移量D,见图1。
当象素串长度增量大于预定数时(如3),继续对邻接的象素串扫描;当象素串长度增量小于或等于预定数时,此时的象素串长度和始点位移量分别记做LO和DO。以后继续对邻接象素串扫描时是用DO确定扫描上限和用LO确定扫描下限的。当由LO、DO限定扫描范围中的象素串长度减到零或象素串长度增量绝对值由大于预定数变为小于预定数时结束该直线段笔划。
3 直线段笔划特征:
直线段笔划特征包括了直线段笔划的长度、走向和端点位置。
4 直线段笔划的走向:
根据始象素串地始象素和终象素串的始象素二者的X-Y坐标差值从速算表中查出相应的距离S和方向值G,见图2。
当象素串长度LO>S时,笔划是竖向。当LO<=S时,笔划走向是G方向。
5 直线段笔划的端点:
直线段笔划的端点包括了上端点、下端点、左端点、右端点。当笔划是水平和接近水平时,以此笔划的始象素串的始象素为左端点,终象素串的始象素为右端点。当笔划是垂直和接近垂直时,以此笔划中最上的象素为上端点,最下的象素为下端点。同一直线段笔划上同时有多个象素是最上(或最下)时选取其中最左边的象素为上端点(或下端点)。当直线段笔划是左斜或右斜时,以此笔划的始象素串的始象素为上端点,终象素串的终象素为下端点。
6 直线段笔划的长度:
以直线段笔划两端点的X-Y坐标差值查速算表得出。
7 直线段笔划之间的相对位置关系:
直线段笔划之间的相对位置关系包括了上、下、左、右、交叉、端接共6种关系。它们都是选定已识别过的直线段笔划作为参考笔划的。对上、下、左、右四种相对位置关系的判别,是经过参考笔划端点作横竖界线,在平面上划出上、下、左、右区域。目标笔划的部分或全部落在上述某一区域时,该区域位置就是目标笔划相对于参考笔划的相对位置关系。见图3。图中目标笔划B、C相对于参考笔划的位置关系是“右”,目标笔划D既是“右”,也是“下”。
8 部件:
将字作左右分开,每一部分就是一个部件,如“汉”字可分成“氵”和“又”两个部件,“潜”字可分成“氵”和“替”两个部件,“推”字则可分成“扌”,“亻”和“”共三个部件。
9 基元:
将部件作上下分开,每一部分就是一个基元。如“各”部件可分成“攵”和“口”两个基元。对于内外包含的基元,则外部分作上基元,内部分作下基元。如“困”可分成“口”和“木”,“勾”可分成“勹”和“厶”。
10 基元链:
把一个部件中的基元的基元码自上而下顺序排列就构成基元链。如“各”部件的基元链顺序是“攵口”。
11 部件的链接信息:
部件的链接信息包括部件码左右排列顺序和相邻部件之间的间隔宽度值。
12 根据直线段笔划特征和直线段笔划之间的相对位置关系识别基元:
在图象区的字域处找到最上的笔划,根据其笔划特征进入路径网络,依据路径网络中提供的下一步目标笔划特征及相对位置关系进行搜索和匹配,根据匹配结果确定下一步的搜索方向,最后输出基元码。
13 由基元链识别部件:
先以基元链中的首基元为索引,把部件表中具有相同首基元的部件与基元链一一匹配,如完全匹配则输出,否则另以基元链上其他层次的基元为索引,重复上述匹配作法。输出匹配率最高的结果。
14 由部件链接信息识别字:
根据相邻部件的间隔宽度特征分割出字的部件链与字表相匹配。如果部件链中的部件数多于4个,则以最左边的4个部件作为部件链。当有多结果但部件数不等时,输出部件数最多而且下一部件可作另一字首部件的字,当有多结果而且部件数相等时,输出使用频率最高的字。
实施案例:
使用设备及要求:
输入装置:一台图文扫描仪,分辨率300点/英寸。
识别处理装置:一台IBM-PC微机。
图象存储器:在微机内存辟出64K图象存储空间。
输出装置:打字机。
识别过程:
图文扫描仪将字稿转化成二值化图象输入计算机。计算机对此图象进行行切割,求出行宽,以行宽和纵向间隔为特征大致切割出字。
在字域中自上而下水平扫描找出最上笔划,以此笔划特征对应进入路径网络。现以识别“午”字为例说明,见图4:
“午”中搜索到的最上笔划是“丿”,因此进入路径网络(下称网络)中“丿”口。网络中下一步是以“丿”为参考笔划的交叉判别,由于结果中无与之交叉的笔划,故转入第二步中的“丿”路径;网络中下一步是“丿”的右边笔划,结果是有横笔划,因此转入第三步的“”路径;网络中下一步是“一”笔划右端端接笔划,结果无端接笔划,则最终基元码是“”。
继续往下判别。
最上笔划是“丨”,由此进入网络中“丨”口。网络中下一步是以“丨”为参考笔划的交叉判别,结果是有横笔划交叉,转入第二步中的“十”路径;网络下一步是“一”笔划上的交叉判别,搜索结果无交叉,转入第三步的“十”路径;网络中下一步是“一”之上和“丨”之左的笔划,结果无笔划,故转入第四步的“十”路径;网络中下一步是“一”之下和“丨”之左的笔划,结果无笔划,转入第五步的“十”路径。最终基元码是“十”。
上述二个基元构成的基元链是“十”,以此基元链与部件表匹配,就可识别出“午”部件。整行图象都作部件识别后,就可根据部件链接信息将部件链与字表匹配识别出字了。
附图说明:
图1-笔划扫描示意图
图2-笔划走向判别图
图3-直线段笔划相对位置判别图
图4-部分基元路径网络图