一种中文手写词组识别方法转让专利

申请号 : CN200810029008.5

文献号 : CN101299236B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金连文龙腾

申请人 : 华南理工大学

摘要 :

本发明提供一种中文手写词组识别方法,包括如下步骤:(1)对手写词组输入进行旋转方向纠正;(2)提取手写词组的笔段信息;(3)将连笔书写的笔段进行拆分;(4)对所有笔段进行重新组合;(5)结合识别信息与词典信息对笔段组合进行字符合并路径搜索,根据每一条搜索路径得到的词组结果分数排序,得到词组识别结果。本发明不仅能使计算机自动识别用户以任意倾斜角度书写的中文词组,而且也能有效地处理无约束手写草书词组中存在的连笔书写、字符间笔画粘连甚至部分重叠等问题,故而可以让用户无约束地自由书写中文词组来实现汉字字符输入,不仅书写速度更快、书写更自由,而且由于利用了词组上下文信息,其识别准确度也更高。

权利要求 :

1.一种中文手写词组识别方法,其特征在于包括如下步骤:

(1)、对手写词组输入进行基于重心平衡的旋转方向纠正;

(2)、基于特征点检测来提取手写词组的笔段信息;

(3)、根据方向角将连笔书写的笔段进行拆分;

(4)、根据笔段的几何信息对所有笔段进行重新组合;

(5)、结合单字符识别信息与词典信息对笔段组合进行字符合并路径搜索,根据每一条搜索路径得到的词组结果分数进行排序,得到词组识别结果。

2.根据权利要求1所述的中文手写词组识别方法,其特征在于所述步骤(1)对手写词组输入进行旋转方向纠正所采用的方法为基于重心平衡的旋转方向纠正方法,其包括如下步骤:(11)、将词组按经过其重心的垂直线划分为左右两部分,分别计算左右两部分的重心,计算两个重心在水平方向上的投影距离D1;

(12)、将词组按经过其重心的水平线划分为上下两部分,分别计算上下两部分的重心,计算两个重心在垂直方向上的投影距离D2;

(13)、如果D1<D2,则顺时针旋转词组90°;

(14)、将词组按经过其重心的垂线划分为左右两部分,分别计算左右两部分的重心;

(15)、将计算出来的左右两部分的重心进行连线,计算该连线与水平方向的夹角θ,如果θ<τ,或者(180°-θ)<τ,则转到步骤(17),所述τ是一个预先定义好的阈值;

(16)、如果θ>τ且θ<90°,则将词组顺时针旋转θ角度,如果θ>90°,则将词组逆时针旋转180°-θ角度,返回步骤(14);

(17)将词组按照通过重心的垂直线划分为左右部分,如果书写的第一笔的笔画起点落在右边部分,则将整个词组旋转180°,否则结束旋转纠正处理过程;

所述步骤(11)~(17)的重心均为书写笔画像素的重心。

3.根据权利要求1所述的中文手写词组识别方法,其特征在于所述步骤(2)提取笔段信息首先对手写输入的笔画进行平滑处理,得到一个采样点序列{(Xi,Yi)|i=1,...,M},其中M为该笔画的总点数,设θi为在第i点的笔画方向角,设第t点为上一拐点或笔画起点,如果在第p点满足下面公式,则认为该点为一个拐点,找到手写输入笔画中的所有拐点后,笔画的起笔与落笔也作为拐点,每两个连续拐点间的笔画被提取出来成为一个笔段,笔段的两个端点中最先书写的点为笔段起点,最后书写的点为笔段终点。

4.根据权利要求1所述的中文手写词组识别方法,其特征在于所述步骤(3)将连笔书写的笔段进行拆分具体通过计算所有笔段的起点到终点的方向角,并将方向角属于-10°~85°的笔段从其中间断开,拆分为两个笔段。

5.根据权利要求1所述的中文手写词组识别方法,其特征在于所述步骤(4)对所有笔段进行重新组合包括如下步骤:(41)、将手写样本进行大小归一化,通过线性归一化的方法将其放大V倍,其中W和H为常数,width和height分别为词组原来的宽度和高度;

(42)、对相连的较短笔段进行组合,如果相连的两个笔段中有一个的长度小于L1或者通过组合后的长度小于L2,则将它们进行合并,称合并后的笔段组合为笔段组,L1和L2为常数,且L1<L2;

(43)、对任意两个笔段或笔段组,如果将其组合后的笔段框宽度小于L3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L3为常数;

(44)、对任意两个笔段或笔段组,如果其中一个的笔段框在另一个的笔段框内部,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;

(45)、对任意两个笔段或笔段组,如果两者水平投影重叠超过2/3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;

(46)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L4,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L4为常数;

(47)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L5,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L5为常数,且为L4的2倍;

(48)、如果最左边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最左边的笔段或笔段组进行组合,如果最右边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最右边的笔段或笔段组进行组合,W1、B1、T1为常数,且W1<B1<T1;

上述步骤(43)~(48)中,笔段框是指能包含笔段或笔段组的最小矩形框。

6.根据权利要求1所述的中文手写词组识别方法,其特征在于所述步骤(5)结合识别信息与词典信息对笔段组合进行字符合并路径搜索,其步骤为首先枚举步骤(4)得到的笔段或笔段组的所有合并路径,即对于从左到右的T个笔段或笔段组,设所有合并路径集合φ φ为{W },对于其中一条合并路径 中的每一个笔段或笔段组wi ,N为合

并路径中笔段和笔段组的总数,i取值为1,2,...,N,通过单字识别分类器可以得出一个候选字序列Li=Li1,...,LiK,K为正整数常数;对于每一条路径,如果得到的识别候选组合即词组{L1R(1),...,LNR(N)}能在词典中被找到,那么对于该路径的识别候选词组R通过如下公式计算其分数:这里R(i)为候选词组R的第i个汉字处于候选列表Li中的位置,范围为0到K-1,否则,其分数为0,最后通过对所有的候选词组按照其分数进行降序排序,得出最终词组识别的结果,分数最高的为首选识别结果,其余的为候选识别结果。

说明书 :

一种中文手写词组识别方法

技术领域

[0001] 本发明属于计算机模式识别技术领域,特别是涉及一种手写文字图像识别处理方法。

背景技术

[0002] 手写汉字识别一般是指用户通过手写输入设备(比如:手写板、触摸屏、鼠标等)书写汉字,同时计算机将手写输入设备采集到的汉字书写轨迹转换为相应的汉字机器内码的识别技术。传统的手写识别技术通常所采用的输入方式为单字符识别,即书写一个汉字识别一个汉字,这种方式需要让计算机知道一个汉字已经书写完毕,常用的判断书写完毕的方法有以下几种:
[0003] 1、点击特定的按钮告诉计算机已经书写完毕;
[0004] 2、书写结束后抬笔等待一段时间,当等待的时间超过一个阈值,计算机则判断已经书写完毕;
[0005] 3、书写一个字符后,隔较远距离再书写下一个字符,计算机判断抬笔与落笔之间的距离超过一定阈值时,则认为前一个字符书写完毕;
[0006] 4、提供两个或多个书写框,用户在一个框内书写完后换到另一个书写框书写时,计算机判断前一个书写框内的汉字书写完毕;
[0007] 以上这几种方式都存在不同程度的缺陷,如第一种方式需要点击按钮,费时费力且不够自然,第二种方式写完需要停顿一段时间,虽然不费力,但费时,直接影响输入的速度,第三种和第四种方式需要在书写完一个字后移动较远距离才能开始书写下一个字符,不符合人们自然书写的习惯。多字符连笔草书的手写方式是人们最自然且速度最快的的中文手写输入方式,但以上这些方法显然都无法解决多字符连笔输入的问题。

发明内容

[0008] 本发明的目的在于克服上述汉字手写识别方法的不足,提供一种更自由的汉字手写输入方式,即旋转方向无关的无约束手写中文草书词组识别。
[0009] 本发明采用的技术方案如下:
[0010] 一种中文手写词组识别方法,包括如下步骤:
[0011] (1)、对手写词组输入进行旋转方向纠正;
[0012] (2)、提取手写词组的笔段信息;
[0013] (3)、将连笔书写的笔段进行拆分;
[0014] (4)、对所有笔段进行重新组合;
[0015] (5)、结合识别信息与词典信息对笔段组合进行字符合并路径搜索,根据每一条搜索路径得到的词组结果分数排序,得到词组识别结果。
[0016] 所述步骤(1)对手写词组输入进行旋转方向纠正所采用的方法为基于重心平衡的旋转方向纠正方法,其包括如下步骤:
[0017] (11)、将词组按经过其重心的垂直线划分为左右两部分,分别计算左右两部分的重心,计算两个重心在水平方向上的投影距离D1;
[0018] (12)、将词组按经过其重心的水平线划分为上下两部分,分别计算上下两部分的重心,计算两个重心在垂直方向上的投影距离D2;
[0019] (13)、如果D1<D2,则顺时针旋转词组90°;
[0020] (14)、将词组按经过其重心的垂线划分为左右两部分,分别计算左右两部分的重心;
[0021] (15)、将计算出来的左右两部分的重心进行连线,计算该连线与水平方向的夹角θ,如果θ<τ,或者(180°-θ)<τ,则转到步骤(17),所述τ是一个预先定义好的阈值;
[0022] (16)、如果θ>τ且θ<90°,则将词组顺时针旋转θ角度,如果θ>90°,则将词组逆时针旋转180°-θ角度,返回步骤(14);
[0023] (17)将词组按照通过重心的垂直线划分为左右部分,如果书写的第一笔的笔画起点落在右边部分,则将整个词组旋转180°;
[0024] 所述步骤(11)~(17)的重心均为书写笔画像素的重心。
[0025] 所述步骤(2)提取笔段信息首先对手写输入的笔画进行平滑处理,得到一个采样点序列{(Xi,Yi)|i=1,...,M},其中M为该笔画的总点数,设θi为在第i点的笔画方向角,设第t点为上一拐点或笔画起点,如果在第p点满足下面公式,则认为该点为一个拐点,[0026]
[0027] 找到手写输入笔画中的所有拐点后,笔画的起笔与落笔也作为拐点,每两个连续拐点间的笔画被提取出来成为一个笔段,笔段的两个端点中最先书写的点为笔段起点,最后书写的点为笔段终点。
[0028] 所述步骤(3)将连笔书写的笔段进行拆分具体通过计算所有笔段的起点到终点的方向角,并将方向角属于-10°~85°的笔段从其中间断开,拆分为两个笔段。
[0029] 所述步骤(4)对所有笔段进行重新组合包括如下步骤:
[0030] (41)、将手写样本进行大小归一化,通过线性归一化的方法将其放大V倍,其中W和H为常数,width和height分别为词组原来的宽度和高度;
[0031] (42)、对相连的较短笔段进行组合,如果相连的两个笔段中有一个的长度小于L1或者通过组合后的长度小于L2,则将它们进行合并,称合并后的笔段组合为笔段组,L1和L2为常数,且L1<L2;
[0032] (43)、对任意两个笔段或笔段组,如果将其组合后的笔段框宽度小于L3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L3为常数;
[0033] (44)、对任意两个笔段或笔段组,如果其中一个的笔段框在另一个的笔段框内部,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;
[0034] (45)、对任意两个笔段或笔段组,如果两者水平投影重叠超过2/3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;
[0035] (46)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L4,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L4为常数;
[0036] (47)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L5,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组,L5为常数,且为L4的2倍;
[0037] (48)、如果最左边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最左边的笔段或笔段组进行组合,如果最右边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最右边的笔段或笔段组进行组合,W1、B1、T1为常数,且W1<B1<T1;
[0038] 上述步骤(43)~(48)中,笔段框是指能包含笔段或笔段组的最小矩形框。
[0039] 所述步骤(5)结合识别信息与词典信息对笔段组合进行字符合并路径搜索,其步骤为首先枚举步骤(4)得到的笔段或笔段组的所有合并路径,即对于从左到右的T个笔段φ或笔段组,设所有合并路径集合为{W },对于其中一条合并路径 中的
φ
每一个笔段或笔段组wi ,N为合并路径中笔段和笔段组的总数,i取值为1,2,...,N,通过单字识别分类器可以得出一个候选字序列Li=Li1,...,LiK;对于每一条路径,如果得到的识别候选组合即词组{L1R(1),...,LNR(N)}能在词典中被找到,那么对于该路径的识别候选词组R通过如下公式计算其分数:
[0040]
[0041] 这里R(i)为候选词组R的第i个汉字处于候选列表Li中的位置,范围为0到K-1,否则,其分数为0,最后通过对所有的候选词组按照其分数进行降序排序,得出最终词组识别的结果。
[0042] 本发明的基本原理是:汉字词组的书写讲究四平八稳,通常词组中每一个字的重心均近似处于同一条水平线上,因此即使词组被旋转后,只要能找到这条线,将其旋转纠正成水平线,则词组的方向就能被纠正成水平方向,同时考虑到纠正后的词组有可能是上下颠倒的,且通常书写方向都是从左到右的,因此通过词组的书写方向判断可以将上下颠倒的词组纠正过来。当旋转后的词组被纠正成水平位置后,通过笔段提取可以将连笔书写的笔画分割开来,另外考虑到大部分词组前一字的抬笔与后一字的起笔所成方向均朝右上方,因此将有此特点的笔段从中间拆分开,能有效地将字符间的连笔笔画断开。这样,整个手写输入词组被打散成一系列的笔段,通过这些笔段的几何位置关系将很有可能为同一个字的笔段组合在一起,然后对于无法判断是否为同一个字的笔段组合,通过单字符识别信息与词典信息的结合,来判断哪一种笔段组合方式能产生合理且可信度高的词组识别结果,这样,即使用户无约束地连笔输入中文草书词组,本发明所采用的方法也能将其识别正确。
[0043] 本发明与已有的手写识别方法相比,具有如下的优点和有益效果:
[0044] (1)、由于采用的是词组手写输入,不限制是否连笔或草书,因此其输入速度大大超过单字符手写输入方式,而且这种无约束的词组输入方式与传统的单字符输入方式相比也更加自然和容易被人们所接受。
[0045] (2)、由于采用了旋转纠正机制,用户即使在手持设备上倾斜着书写,本发明也能正确识别,现在还鲜有此类支持倾斜书写连笔词组的输入方式出现。
[0046] (3)、本发明所采用的词组切分方法主要为脱机切分方法,不限制笔顺,能很好地解决倒插笔问题,因此其切分效果优于限制笔顺的词组切分方法;
[0047] (4)、本发明在切分时不仅用到了单字符识别信息,而且也用到了词典信息,因此得到的词组结果更准确可靠;
[0048] (5)、相似的汉字比较多,但相似的词组相对很少,因此词组输入的识别结果的候选词数量比单字符识别的候选字数量更少,节省了用户选择候选字词的时间。

附图说明

[0049] 图1是本发明的系统结构框图;
[0050] 图2是本发明的旋转方向纠正方法的流程框图;
[0051] 图3是对具体手写词组样本的旋转纠正步骤示例;
[0052] 图4是对具体手写词组样本的笔段提取示例;
[0053] 图5是本发明的笔段重组方法的流程框图;
[0054] 图6是对具体手写词组样本“微软”的笔段框合并路径搜索示例;
[0055] 图7是本发明的实施效果示例。

具体实施方式

[0056] 下面结合附图对本发明做进一步的说明,实施本发明所用的识别设备可以采用手写板书写汉字,用计算机进行识别,用纯平型显示器显示用户图形界面,可采用C语言编制各类处理程序,便能较好地实施本发明。
[0057] 本发明的系统结构框图如附图1所示,中文手写词组笔画的时序点输入后,首先对手写词组输入进行旋转方向纠正,然后提取笔段信息,并将可能为连笔书写的笔段进行拆分,之后对所有笔段进行重新组合,得到一系列的笔段组,然后结合识别信息与词典信息对笔段组合进行字符合并路径搜索,根据每一条搜索路径得到的词组结果分数排序,最后得到词组识别结果。
[0058] 本发明的词组旋转方向纠正所采用的方法为基于重心平衡的旋转方向纠正方法,其流程图如附图2所示,具体步骤如下:
[0059] (A)、将词组按经过其重心的垂直线划分为左右两部分。分别计算左右两部分的重心。计算两重心在水平方向X轴上的投影的距离D1;
[0060] (B)、将词组按经过其重心的水平线划分为上下两部分。分别计算上下两部分的重心。计算两重心在垂直方向Y轴上的投影的距离D2;
[0061] (C)、如果D1<D2,则顺时针旋转词组90°;
[0062] (D)、将词组按经过其重心的垂线划分为左右两部分。分别计算左右两部分的重心;
[0063] (E)、将计算出来的左右两部分的重心进行连线,计算该连线与水平方向的夹角θ,如果θ<τ,或者(180°-θ)<τ,则转到步骤(G)。这里的τ是一个预先定义好的阈值,通常是一个很小的角度值;
[0064] (F)、如果θ>τ且θ<90°,则将矩形顺时针旋转θ角度,否则,将矩形逆时针旋转(180°-θ)角度。回到步骤(D);
[0065] (G)将词组按照通过重心的垂直线划分为左右部分,如果书写的第一笔的笔画起点落在右边部分,则将整个词组旋转180°,否则算法结束。
[0066] 以上步骤中所提到的重心均为书写笔画像素的重心。
[0067] 对于具体的一个倾斜书写的手写词组样本“下午”的旋转纠正过程如附图3所示,可以看出,经过2次旋转纠正后,该词组被旋转到水平位置。其中左右两部分中间的小圆圈分别为左右部分的重心。附图3所示的词组“下午”,按照上述步骤,处理过程如下:
[0068] 在步骤(C),由于D1>D2,直接进行第(D)步的计算,然后判断第(E)步,也不满足第(E)步的旋转条件,然后进行第(F)步骤的处理,进行第一次旋转,然后算法返回到第(D)步,再运行到第(F)步进行第二次旋转处理,返回到第(D)步,进行第(E)判断,θ<τ成立,跳到第(G)步,判断算法的起点及终点位置,不需要进行180度旋转,算法结束。
[0069] 本发明的笔段信息提取具体实施为首先对手写输入的笔画进行平滑处理,得到一个采样点序列{(Xi,Yi)|i=1,...,M},其中M为该笔画的总点数,设θi为在第i点的笔画方向角,设第t点为上一拐点或笔画起点,如果在第p点满足下面公式,则认为该点为一个拐点。
[0070]
[0071] 当找到手写输入笔画中的所有拐点后,并将笔画的起笔与落笔都认为是拐点后,每两个连续拐点间的笔画被提取出来成为一个笔段。将笔段的两端点中最先书写的点认为是笔段起点,最后书写的点认为是笔段终点。如附图4所输入的中文词组“文章”,共有16个拐点,通过圆圈表示。
[0072] 本发明的连笔笔段拆分具体实施为计算所有笔段的起点到终点的方向角,并将方向角属于(-10°~85°)的笔段从其中间断开,拆分为两个笔段。
[0073] 本发明的笔段重新组合流程图如附图5所示,具体实施步骤如下:
[0074] (I)、将手写样本进行大小归一化,通过线性归一化的方法将其放大V倍,其中这里可以选取W为320,H为80,width和height分别为词组原来的宽度和高度;
[0075] (II)、对相连的较短笔段进行组合,如果相连的两个笔段中有一个的长度小于L1或者通过组合后的长度小于L2,则将它们进行合并,称合并后的笔段组合为笔段组。可以选取L1为8,L2为15;
[0076] (III)、对任意两个两个笔段或笔段组,如果将其组合后的笔段框宽度小于L3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组。这里可以选取L3为20;
[0077] (IV)、对任意两个笔段或笔段组,如果其中一个的笔段框在另一个的笔段框内部,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;
[0078] (V)、对任意两个笔段或笔段组,如果两者水平投影重叠超过2/3,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组;
[0079] (VI)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L4,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组。这里可以选取L4为50;
[0080] (VII)、对任意两个笔段或笔段组,如果组合后的笔段框宽度小于L5,且两者的笔段框重叠面积大于其中任意一个笔段框面积的1/2,则将其组合,每次组合后都重复这一步骤,直至没有可组合的笔段或笔段组。这里可以选取L5为100;
[0081] (VIII)、如果最左边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最左边的笔段或笔段组进行组合,如果最右边的笔段或笔段组的宽度小于W1,或者其底部纵坐标小于B1,或者其顶部纵坐标大于T1,则将其与除它以外的最右边的笔段或笔段组进行组合,这里可以选取B1为25,T1为55,W1为15;
[0082] 本发明的结合识别信息与词典信息对笔段组合进行字符合并路径搜索,其步骤为首先枚举重组后的所有笔段或笔段组的所有合并路径,即对于从左到右的T个笔段或笔段φ组,设所有合并路径集合为{W },对于其中一条合并路径 中的每一个笔段组φ
wi ,通过单字识别分类器可以得出一个候选字序列Li=Li1,...,LiK。对于每一条路径,如果得到的识别候选组合即词组{L1R(1),...,LNR(N)}(这里R(i)为候选词组R的第i个汉字处于候选列表Li中的位置,范围为0到K-1)能在词典中被找到,那么对于该路径的识别候选词组R通过如下公式计算其分数:
[0083]
[0084] 否则,其分数为0。最后,通过对所有的候选词组按照其分数进行降序排序,得出最终词组识别的结果。
[0085] 对于具体的手写词组样本“微软”的笔段组合并路径搜索示例如附图6所示,其中给出了3条笔段组合并路径,并对每条路径中的每个笔段组分别给出了单字符识别的候选字序列,其中第二条路径中的两个笔段组的识别首候选所组成的词组得到的分数最高,因此最后的词组识别结果为“微软”。
[0086] 本发明的具体实施效果示例如附图7所示,可以看出,对于任意角度书写的无约束草书手写词组,本发明均能较好地识别,各手写词组样本的下方是本发明对其的识别结果(个别词组有2个候选识别结果)。