乱笔顺库建立方法及联机手写汉字识别评测系统的制作方法

文档序号:6379450阅读:191来源:国知局
专利名称:乱笔顺库建立方法及联机手写汉字识别评测系统的制作方法
技术领域
本发明涉及手写汉字识别系统的评测方法,特别涉及一种建立乱笔顺库的方法及联机手写汉字识别技术的评测系统。
背景技术
在手写识别研究领域,数据库的建设变得尤为重要,它是发展、评价和比较不同字符识别技术的必然要求。鉴于联机手写汉字识别的应用范围越来越广、参与联机手写识别技术研发推广的机构越来越多,国家质检总局于2002年7月颁布了国家标准《联机手写汉字识别技术要求与测试规程GB/T18790-2002》,因此,如何建立联机手写汉字识别汉字库,以对联机手写汉字识别技术进行客观公正的评测,变得越来越重要。
在国外,联机手写数据库建设中最著名的是UNIPEN,它始于1992年,是由许多大学和公司,如Tetsu Fujisaki(IBM),Ronjon Nag(Lexicus),Sandy Benett(GO/EO),Dick Lyons(Apple),Yves Chauvin(NetID),Dave Reynolds and Dan Flickinger(HP),Isabelle Guyon(AT&T)and Lambert Schomaker(NICI),参与的联机手写数据库采集与评测的国际开放性项目,对其样本数据格式进行了统一规定,但是,其主要字符集为英文字符,没有中文汉字字符。
目前,国外汉字库建设资料中,主要有ETL9和PE92,其中,ETL9是日本国家标准(脱机)汉字库,字符集为日本JIS第1级汉字2965个字符、平假名71个字符,采集对象为4,000个人,共607,200个样本字;PE92为韩国的脱机汉字库,其字符集为2350个KS5601字符,每个字符的200个样本保存为灰度或二值图片(pdi=200),在联机汉字库建设方面,国外还未见诸相关资料、报道或介绍。
在国内,乱笔顺样本库的建立为随机打乱笔顺方法(详见国家标准GB/T18790-2002),即对整个字的所有笔画进行随机排列,得到打乱笔顺的样本,从而建立乱笔顺样本库,然后,在此基础上评测联机手写汉字识别系统。这种方法没有很好地利用汉字的结构特征,导致所产生的乱笔顺样本不能如实地反映书写者的书写习惯,其明显的弊端是用这种方法产生的乱笔顺样本,会出现不同偏旁部首之间笔顺的交叉打乱,而在实际书写时,除非故意书写者不会还没写完一个偏旁部首就着手写下一个偏旁部首,因此这种乱笔顺样本显然不能反映书写者的书写习惯,影响了识别系统的识别率,从而不能对联机手写汉字识别技术进行客观公正地评测。

发明内容
本发明的目的在于提供一种建立乱笔顺库的方法,解决现有乱笔顺库建立方法中包含了在一般书写时不可能出现的不同偏旁部首之间笔顺的交叉打乱的缺陷,本发明的另一目的还在于提供一种联机手写汉字识别技术的评测系统,以克服现有乱笔顺库所导致的无法合理评测联机手写汉字识别技术的不足。
本发明提供的一种建立乱笔顺库的方法,包括标准样本库的采集和乱笔顺库的生成,所述乱笔顺库是按照笔画的连通关系,对采集的联机手写汉字笔迹数据进行等价划分,分割出至少一个以上的部件后,再打乱每个部件内笔画的顺序生成的。
作为建立乱笔顺库的方法的一种改进,在打乱每个部件内笔画的顺序之前或之后,还包括打乱部件之间排列顺序的步骤。
所述的部件是将联机汉字笔迹数据转化成一幅二值图像后,深度优先搜索二值图像分割得到的连通分量。
本发明提供的联机手写汉字识别技术的评测系统,包括一计算机,该计算机包括一存储设备,用于存储标准样本库和乱笔顺库;和一采集模块,用于采集标准样本库;该计算机还包括转换模块,用于将联机汉字笔迹数据转化成一幅二值图像;分割模块,用于按照笔画的连通关系从二值图像中分割出至少一个以上的部件;生成模块,包括一用于打乱每个部件内笔画的顺序的单元。
所述生成模块还包括一用于打乱部件之间排列顺序的单元。
本发明的优点在于本发明建立乱笔顺库的方法,基于汉字的结构特征以及书写习惯,对原始样本进行分割,得到分割后的部件;然后以部件为基元,将同一部件内的笔顺、部件之间排列顺序随机打乱,得到一种新的乱笔顺库,不会出现如附图3中(e)、(f)、(g)所示的不同部件之间笔画的交叉打乱情况,例如,(e)中左边“口”还未写完就开始写右边“艹”中的竖(笔画2到3的突变);(f)中的笔画1到2、5到6、6到7,以及(g)中的笔画2到3、3到4、5到6都存在这种交叉打乱情况;避免了正常书写条件下不会出现一个部件还没写完就开始书写另一部件的情况。
本发明联机手写汉字识别技术的评测系统,在本发明的乱笔顺库的基础上评测联机手写汉字识别技术,能更客观地评测联机手写汉字识别技术,为应用系统的集成和成果推广提供科学依据,以促进联机手写汉字识别技术的交流与提高,推动成果的应用推广和产业化。


图1是生成乱笔顺样本库的流程图。
图2是联机汉字样本“哎”的部件分割示意图。
图3是联机汉字样本“哎”的乱笔顺样本,其中,(a)是未打乱的原始样本;(b)、(c)和(d)是本发明可能生成的乱笔顺样本;(e)、(f)和(g)是本发明乱笔顺样本中不会出现的不符合书写习惯的乱笔顺样本。
具体实施例方式
为了更好地理解本发明,下面结合附图和具体实施方式
进一步说明本发明乱笔顺库的建立过程及评测系统。
(1)首先,由书写者用压力式手写板和采集模块书写规定测试字符样本,建立标准样本库。
联机手写汉字识别的对象,也即识别系统的输入,是表示成一系列坐标点的手写汉字。这些坐标点是对书写时笔尖运动的轨迹进行时域采样得到的。这些记录单个汉字的所有坐标点的数据称之为POT数据块,即联机手写汉字笔迹数据。具体地说,每个POT数据块中包含一个手写汉字的字型采样数据和相应的汉字内码等信息。在GB/T18790-2002中,对POT数据块的格式进行了统一规定。
采集时,每位书写者用压力式手写板和采集模块对测试字符集上的每个字符书写一遍,按GB/T18790-2002规定的格式保存为一个样本文件,称为一套样本,由所有书写者的样本文件组成标准样本库。
例如,我们在2003年度863计划联机手写汉字识别评测中,根据评测组制定的测试大纲,采集并建立了60套联机手写汉字样本库。样本的字符集范围是国家标准GB18030-2000中的全部27533个汉字字符和62个常用的数字字母,共采集了1,094,910字,其中数字、字母、GB18030双字节2区汉字字符各采集了60套,GB18030双字节3、4区和四字节区汉字各采集了30套。在此基础上,建立了10套乱笔顺样本库(共275,330字),成功地完成了对各参评系统的评测。
(2)然后,在标准样本库中随机选取规定套数的汉字字符样本(用于建立乱笔顺库),经过转换模块,将联机汉字样本的笔迹数据转化成二值图像。
笔迹数据转化为二值图像的算法描述如下
输入联机汉字样本的笔迹数据(POT数据块);输出联机汉字样本的二值图像;步骤Step 1.生成一幅缺省的二值图像,其宽度和高度分别是联机汉字样本的宽度W和高度H,将其所有像素值均初始化为255。
Step 2.读取POT数据块中的总笔画数,假设为N。
Step 3.初始化循环变量i=1;Step 4.若i>=N,则说明所有笔画处理完毕,则转Step 9;Step 5.初始化循环变量j=1;Step 6.对于当前第i个笔画Si中的第j个点Pj,在POT数据块中取其坐标(xj,yj),在二值图像中置其相应位置的像素值为0,并记录该点所属的笔画序号iStroke[xj][yj]=i(二维数组Stroke为全局变量);Step 7.若当前笔画Si的点未处理完毕,即在POT数据块中没有遇到笔画结束标志(0xFFFF和0x0000,见GB/T18790-2002),则j=j+1,转Step 6,处理当前笔画的下一点;Step 8.i=i+1,转Step 4,处理下一笔画;Step 9.算法结束。
(3)再由分割模块采用深度优先搜索算法遍历该二值图像,得到的连通分量即为分割后的部件。
汉字由位点、笔画、部件和单字组成,部件是指构成汉字的最小笔画结构单位,其下限必须大于基本笔画,上限小于或等于偏旁。
本发明中的部件是指联机手写汉字笔迹数据中一个独立的连通元。其中,关于连通元的定义如下在联机手写汉字笔迹数据中,笔画的连通关系是由所有笔画构成的集合上的一个关系①若任意两笔画有公共的交叉点,则称两者是连通的;②笔画的连通关系具有自反性,即一个笔画与它本身是连通的;③笔画的连通关系具有对称性,即若笔画a与笔画b连通,则笔画b与笔画a也是连通的;④笔画的连通关系具有传递性,即若笔画a与笔画b连通,笔画b与笔画c连通,则称笔画a与笔画c是连通的。
由以可知,笔画的连通关系是等价关系(满足自反、对称、传递性要求),由此构成的等价类称为连通元。
部件的分割就是按笔画的连通关系对联机手写汉字笔迹数据进行等价划分,得出分割后的部件。因此,部件的分割算法就是确定等价类的算法在这方面的具体应用,可有多种方法实现。
本发明采用图的深度或广度优先搜索法(下面仅以深度优先搜索算法为例),即将联机汉字样本的笔迹数据转化成一幅二值图像,然后采用图的深度优先搜索遍历该二值图像,得到的连通分量即为分割后的部件。
如以下的算法描述所示,通过调用部件分割算法(PotCharSegmentation),该算法调用深度优先搜索算法(DFSBmp),便可完成部件分割,得到包含所有部件的集合P。
①部件分割算法(PotCharSegmentation)输入联机汉字样本的二值图像;输出经分割得到的、包含所有部件的集合P。
步骤Step 1.初始化置部件集合P为空,全局访问标志变量数组Visited[i][j]=False,表示未访问,其中i=0,…,H-1;j=0,…,W-1,H、W分别为图像的高度和宽度;Step 2.初始化循环变量i=0;Step 3.若i>=H,则转Step 11;Step 4.初始化循环变量j=0;Step 5.若j>=W,则转Step 10;Step 6.若Visited[i][j]==True,则表示点V(i,j)已访问,转Step 9;Step 7.以当前像素点V(i,j)为搜索起点,调用深度优先搜索算法DFSBmp,求出每一连通分量即一个部件PV,PV为存放部件笔画序号的一维整形数组;Step 8.将部件PV加入到部件集合P中;Step 9.j=j+1,转Step 5,处理下一列;Step 10.i=i+1,转Step 3,处理下一行;Step 11.算法结束。
②深度优先搜索算法(DFSBmp)输入搜索起点V0(x0,y0),联机汉字样本的二值图像;输出一个连通分量即一个部件P0;步骤Step 1.构造一个空栈SInitStack(S),并置部件P为空;Step 2.将V0入栈Push(S,V0),并置全局标志数组Visited[x0][y0]=True;Step 3.若栈S为空,则转Step 14;
Step 4.出栈令V=Pop(S);Step 5.初始化循环控制变量i=0,其中i=0,…,7,代表8个方向;Step 6.若i>=8,则表示V的8个邻接点处理完毕,转Step 3;Step 7.求V在第i方向上的邻接点U,不妨设U的坐标为(x,y);Step 8.若U的像素值≠0,则说明U不是笔画上的点,转Step 13;Step 9.若Visited[x][y]==True,则说明U已访问,转Step 13;Step 10.置Visited[x][y]=True,并将U入栈Push(S,U);Step 11.令j=Stroke[x][y],表示V所属的笔画序号;Step 12.若j没有加入到部件P0中,则将j加入到部件P0中;Step 13.i=i+1,转Step 6,处理V的下一邻接点;Step 14.算法结束。
如图2示例了样本“哎”字在采用以上算法后得到的分割部件。
鉴于在打乱笔顺之前,我们已知待打乱笔顺的样本是什么字,以及该字的偏旁部首等结构信息。因此,在完成上述的部件分割之后,还可以利用这种结构信息帮助解决部件合并以及笔画粘连问题,以使分割后的部件更趋合理。因为联机手写汉字样本与印刷体汉字相比,可能存在较大变形,所以这方面还有待于进一步研究。
(4)最后,由生成模块先打乱每个部件内笔画的顺序后,再打乱部件排列顺序;也可先打乱部件排列顺序,再打乱部件内的笔顺。
在本例中,部件内笔画顺序的打乱是指对每个部件的所有笔画顺序按一定比例进行随机打乱,再将笔迹数据中的部件按打乱后的笔画顺序重新组织,便得到打乱笔顺的部件。
现将本发明中打乱部件内笔顺的随机打乱算法(Perturb)描述如下输入打乱比例α(缺省值为
范围内的一个随机小数);输出一维整数数组R
,其中的数组元素R[i]表示打乱前序号为R[i]的元素经打乱后序号为i;说明随机函数unrand()返回一[0,1)区间内的一个随机小数;步骤Step 1.计算待打乱的数组元素个数Num=N*α;Step 2.初始化R每一元素为最大随机整数R
=RAND_MAX,表示都未被打乱,其中RAND_MAX>N;Step 3.若Num<=1,则不需打乱,转Step 18;Step 4.随机产生打乱起始结点Start=N*unrand();
Step 5.初始化前驱结点Pre=Start和当前结点Cur=-1;Step 6.初始化循环变量i=0,其中i=0,…,Num-1;Step 7.若i>=Num,则表示随机打乱完毕,转Step 18;Step 8.随机产生当前结点Cur=N*unrand();Step 9.若R[Cur]≠RAND_MAX或者Cur==Pre,则说明当前结点已打乱或者实际上没有打乱,需随机另选当前结点,转Step 8;Step 10.R[Cur]=Pre;Step 11.若Cur≠Start,则不需要重新产生起始结点,转Step 15;Step 12.随机产生起点Start=N*unrand();Step 13.若R[Start]≠RAND_MAX,则说明起始结点已打乱,需另选起始结点,转Step 12;Step 14.Cur=Start;Step 15.更新前驱结点Pre=Cur;Step 16.i=i+1,转Step 7,处理下一结点;Step 17.若Cur≠-1,则回填起始结点R[Start]=Cur;Step 18.i∈
,若R[i]==RAND_MAX,则说明该结点不需要打乱,置R[i]=i;Step 19.算法结束。
通过调用以上随机打乱算法,得到数组R
,然后将原始笔迹数据中部件的笔画按R
,…,R[N-1]顺序重新排列,便得到打乱笔顺的部件。
部件之间排列顺序的打乱是指对部件的排列顺序按一定比例进行随机打乱,再将笔迹数据按打乱后的部件顺序重新组织,便得到打乱部件顺序的笔迹数据。本发明中部件顺序的随机打乱算法与部件内笔顺的随机打乱算法(Perturb)相同,在此从略。
综上所述,乱笔顺库生成是指按以下四种笔顺打乱方法之一生成乱笔顺库(1)仅打乱部件内的笔顺;(2)仅打乱部件排列顺序;(3)先打乱部件内的笔顺,再打乱部件排列顺序;(4)先打乱部件排列顺序,再打乱部件内的笔顺。
在实现乱笔顺库生成算法时,需要考虑笔顺打乱方法的选择。本发明采用的选择方法为若分割后的部件总数大于1,则从以上四种方法中随机选取一种方法生成乱笔顺库;否则表示整个样本字就是一个部件,仅按(1)打乱部件内的笔顺生成乱笔顺库。
权利要求
1.一种建立乱笔顺库的方法,包括标准样本库的采集和乱笔顺库的生成,其特征在于,所述乱笔顺库是按照笔画的连通关系,对采集的联机手写汉字笔迹数据进行等价划分,分割出至少一个以上的部件后,再打乱每个部件内笔画的顺序生成的。
2.按权利要求1所述的建立乱笔顺库的方法,其特征在于,在打乱每个部件内笔画的顺序之前或之后,还包括一打乱部件之间排列顺序的步骤。
3.按权利要求1或2所述的建立乱笔顺库的方法,其特征在于,所述的部件是将联机汉字笔迹数据转化成一幅二值图像后,深度优先搜索二值图像分割得到的连通分量。
4.一种联机手写汉字识别技术的评测系统,包括一计算机,该计算机包括一存储设备,用于存储标准样本库和乱笔顺库;和一采集模块,用于采集标准样本库;其特征在于,所述计算机还包括转换模块,用于将联机汉字笔迹数据转化成一幅二值图像;分割模块,用于按照笔画的连通关系从二值图像中分割出至少一个以上的部件;生成模块,包括一用于打乱每个部件内笔画的顺序的单元。
5.按权利要求4所述的联机手写汉字识别技术的评测系统,其特征在于,所述生成模块还包括一用于打乱部件之间排列顺序的单元。
全文摘要
本发明涉及一种建立乱笔顺库的方法及联机手写汉字识别技术的评测系统。本发明方法,包括标准样本库的采集和乱笔顺库的生成,其特征在于,所述乱笔顺库是按照笔画的连通关系,对采集的联机手写汉字笔迹数据进行等价划分,分割出至少一个以上的部件后,再打乱每个部件内笔画的顺序生成的。本发明的评测系统,包括存储设备,用于存储标准样本库和乱笔顺库;采集模块,用于采集标准样本库;转换模块,用于将联机汉字笔迹数据转化成一幅二值图像;分割模块,用于按照笔画的连通关系从二值图像中分割出至少一个以上的部件;生成模块,包括一用于打乱每个部件内笔画的顺序的单元,以及一用于打乱部件之间排列顺序的单元。
文档编号G06K9/72GK1641686SQ20041000082
公开日2005年7月20日 申请日期2004年1月17日 优先权日2004年1月17日
发明者唐胜, 钱跃良, 林守勋, 李锦涛 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1