手写汉字自动分割和识别 方法以及使用该方法的系统 本发明涉及手写汉字自动识别技术,具体地说,涉及对连续输入的手写汉字串进行自动分割和识别的方法以及使用该方法的系统。
在目前可以接收用户手写汉字输入的信息处理系统中,通常包括一个基于笔的输入装置,该装置一般由书写笔和书写板组成。这样的基于笔的输入装置一般要求用户在书写完一个汉字之后,按下书写笔或书写板上的一个按钮,以对书写的汉字串进行手动分割。自动手写汉字识别机可以直接对这种经过手动分割的汉字串进行识别。但是手动分割过程影响了用户书写的连续性,因此这种书写方式不符合用户的书写习惯。
IBM公司的ThinkScribe是一种集成了手写数字化仪和传统的基于纸上记录系统的设备。该设备按笔画和相关时序记录用户的手写输入,并能够按原来的时序再现用户的手写输入。用户一般在ThinkScribe上以连续方式进行书写,书写的字与字之间的间隔很小或连在一起。这样在进行自动识别之前必须进行文字分割。
目前还没有一种有效的文字分割方法,手写汉字识别技术只能对单个汉字或字间隔很大地手写汉字串进行识别。对手写汉字串进行自动分割困难在于:
1)许多汉字是左右结构,当在水平线上从左到右快速书写时,左右成分之间的间隔和字与字之间的间隔非常相似。除了这种空间上的混淆之外,有些汉字的左、右成份本身就可以是一个独立的汉字或与某个独立的汉字非常象。同样,对于在垂直行上书写的手写汉字串也有类似的问题,因为有些汉字是上下结构的。
2)当用户快速以草书方式书写时,对于相邻的汉字来说,前一个汉字的最后一个笔画和后一个汉字的开始笔画之间可能相连,彼此没有任何清楚的界限。
于是,如何克服以上困难提供一种对连续输入的手写汉字串进行自动分割的方法,是实现对连续输入的手写汉字串进行自动识别的基础。
根据本发明的手写汉字串自动分割和识别方法在不同层次上利用了来自于不同源的信息,例如人们的书写习惯、汉字串的几何特征、书写时的时序信息以及语言模型等实现了对连续输入的手写汉字串的自动分割和识别。
根据本发明的手写汉字串自动分割和识别方法包括以下步骤:
建立描述手写汉字串中笔画序列几何特征的几何模型和描述汉语中字(词)依赖关系的语言模型;
基于所述相关时序信息和几何模型找出连续输入的手写汉字串中所有的潜在分割方案;
对于每一种分割方案,对任意两个分割点之间的笔画组进行识别,并计算出表征识别结果正确性的概率;
用语言模型修正上述表征识别结果正确性的概率;和
选择对应于概率值最大的识别结果和该识别结果所对应的分割方案作为对用户连续输入的手写汉字串的分割和识别结果。
根据本发明的手写汉字串自动分割和识别系统包括:
输入装置,用于接收用户连续输入的手写汉字串,并按笔画和相关时序记录用户的手写输入;
模型存储装置,用于存储描述手写汉字串中笔画序列几何特征的几何模型和描述汉语中字(词)依赖关系的语言模型;
分割装置,基于所述相关时序信息和几何模型找出连续输入的手写汉字串中所有的潜在分割方案;
识别装置,对于每一种分割方案,对任意两个分割点之间的笔画组进行识别,并计算出表征识别结果正确性的概率;
仲裁装置,用语言模型修正上述表征识别结果正确性的概率,选择对应于概率值最大的识别结果和该识别结果所对应的分割方案作为对用户连续输入的手写汉字串的分割和识别结果。
通过以下结合附图的说明可以使本发明的目的、特征和优点更加清楚。
图1为根据本发明的手写汉字串自动分割和识别方法的概念性流程图;
图2为根据本发明第一实施例的手写汉字串自动分割和识别方法的流程图;
图3为根据本发明第二实施例的手写汉字串自动分割和识别方法的流程图;
图4为根据本发明第三实施例的手写汉字串自动分割和识别方法的流程图;
图5为根据本发明的手写汉字串自动分割和识别系统的框图。
根据本发明的手写汉字串自动分割和识别方法可由下述公式来描述:C*→=argmaxPr(C→|S→)---(1)]]>识别的目标是检索出尽可能与用户书写的实际汉字串相近的汉字串这可以通过使识别误差尽可能小来实现。于是,识别问题可以看作是找出对给定的手写输入序列具有最大后验概率的汉字串使用Bayes规则,等式(1)可以写成:C*→=argmaxPr(S→|C→)Pr(C→)---(2)]]>
在等式(2)中,Pr是一源模型,它描述了在涉及的语言中该汉字串出现的可能性。可以通过语言模型获得概率测量Pr,就其复杂度来讲这可以是一简单的字典也可以是一个基于n元文法(字或词)的较复杂的统计语言模型。Pr描述了对于每个给定的汉字串可以产生的所有书写序列。让书写序列s=f1,f2,…fN,其中fi是一书写单元(书写单元可以是部分笔画、笔画或笔画组,也可以是汉字的偏旁部首)。类似地,让汉字串=c1,c2…cM,其中每个ci代表了一个单独的汉字。通常,每个汉字与一组由两边界点确定的书写单元有关。具体地说,存在M+1个边界点{bj},0≤j≤m,其中(i)bO=0并且bM=1;(ii)满足bj-1+1≤n≤bj的每个书写单元fn与cj相关。在书写状态为分立的情况下,边界点{bj}是唯一确定的,因为每个汉字是单独书写的。在这种情况下,Pr可表示为:Pr(S→|C→)=Πj=1MPr(Φj|cj)---(3)]]>
其中Φj=fbj-1+1…fbj代表了与汉字cj相关的书写单元组。
然而,在书写状态为连续的情况下,边界点{bj}是任意的。在这种情况下,Pr可表示为:Pr(S→|C→)=ΣΠj=1MPr(Φj|cj)---(4)]]>
其中Φj的含义同等式(3)。等式(4)中的求和考虑了对于各种假设将书写序列分成M段的所有可能分割。
这样,
i)在分立的书写状态下,识别模型可表示为:C*→=argmax{[Πj=1MPr(Φj|cj)]Pr(C→)}---(5)]]>
ii)在连续的书写状态下,识别模型可表示为:C*→=argmax{ΣΠj=1MPr(Φj|cj)]Pr(C→)}---(6)]]>
由以上分析可以看出手写汉字识别是分割和识别的组合。
图1示出了根据以上分析得出本发明的手写汉字自动分割和识别方法的具体步骤。如图1所示:
步骤S102:对于用户的手写输入序列,首先找出所有的潜在分割方案:1=1…N;
步骤S102:对于每一种分割方案进行识别并计算出Πj=1MPr(Φj|cj)]]>或ΣΠj=1M(Pr(Φj|cj);]]>步骤S103:用语言模型修正上述计算结果,即计算〔Πj=1MPr(Φj|cj)]]>〕Pr或[ΣΠj=1M(Pr(Φj|cj)]Pr(C→);]]>;和
步骤S104:从以上计算结果中找出最大值,该值所对应的Φj和(j=1…M)即为用户手写汉字输入序列的分割和识别结果。
从以上可以看出,根据本发明的对手写汉字串进行自动分割和识别的方法,在完成分割的同时完成了识别。
实际上,现有的手写汉字识别方法都是从大量样本中计算出Pr(Фj|cj),取Pr(Фj|cj)最大值所对应的cj作为对Фj的识别结果。于是,本发明的手写汉字串自动分割和识别方法可以利用现有的识别机,对于每一种潜在的分割方案利用现有的识别机计算出Πj=1MPr(Φj|cj)]]>或∑(Pr(Фj|cj)。再用语言模型Pr校正以上结果,从各种分割方案对应的计算结果中找出最大值,该值所对应的Φj和cj(j=1…M)即为用户手写汉字输入序列的分割和识别结果。
通常在上述方法中,Φj被认为是笔画组,cj是单个汉字。但对于cj为一个汉字的组成部分,例如汉字的偏旁部首时该方法也适用。同时,cj也可以是一个词,这样对于那些包括重叠笔画无法自动分割的汉字串可以进行组合识别。但在这种情况下,无法利用现有的识别机。可以通过手写汉字串训练程序来计算Pr(Фj|cj)。当然该汉字串中包括单个汉字。
以下以IBM的ThinkScribe所记录的手写汉字串数据为例,详细地描述一下本发明的手写汉字串自动分割方法。
在进行手写汉字串自动分割时,我们做了以下的假设:
(1)每个汉字由一些书写笔画组成;尽管一些书写笔画可能与打印出的汉字笔画不一定一一对应的,但一个汉字总是在某一书写笔画结束时结束。这也就是说,该边界检测方法不考虑前一汉字的最后一个书写笔画和下一个汉字的第一个笔画相连的情况。如果这种出现概论很小的事件发生了,用户可以启动一个手动程序断开相连的笔画来表明分割边界。
(2)按顺序书写汉字串。这也就是说,前一个汉字总是在书写下一个汉字之前完全书写完毕。
(3)汉字串在一行中从左到右的方向书写。如果按从上到下的方向书写汉字串可以相应地修改分割方案。
(4)以IBM的ThinkScribe所记录的数据为例。每个书写笔画由一系列离散的笔画点的x、y坐标以及时序信息值来表示。于是第i个书写笔画可以表示成:
s(i)=((x(i,1),y(i,1),t(i,1)),…,(x(i,j),y(i,j),t(i,j)),…(x(i,e(i)),y(i,e(i),t(i,e(i)))
其中e(i)是笔画i中笔画点的个数。于是所要分割的笔画序列可表示为:
s(1),s(2)…s(i)
其中s(1)是属于未分割汉字串中的第一个笔画。
我们注意到用于汉字分割的一个很明显的标准是两相邻汉字之间的物理间隔。当用户按从左到右方向书写时,这样的间隔可以用两相邻笔画之间垂直方向上的间隙G表示。于是,我们可以在每个笔画s(K)的起始点处使用下述条件来测试这样的间隙:
Max (x(i,j)) ≤ Min (x(i,j))-G (7)
对于满足t(i,j)< 对于满足t(i,j)
t(K,1)的所有点 ≥t(K,1)的所有点
请注意,在等式(7)的右边我们考虑了所有的点。实际上,当人们开始在距离上一个已确定为潜在边界的笔画足够远处开始书写时就可以结束这种测试。于是,条件“包含满足x(i,j)<x(i,1)+D的某个点的所有笔画”可以用作测试结束条件。这里D是可由经验来确定的G的上界(例如它可以是行宽,或至今所确定的文字边界之间最大距离的1.5倍)。我们现在在定义f(G)是G的一个单调上升函数,因为G愈大,笔画s(K)成为边界笔画的可能性愈大,f(G)对于给定的汉字串来说是笔画s(K)为一汉字的起始笔画的累积概率函数。注意,此函数可以通过对典型用户的书写数据进行分析而得到,也可以对某一特定用户进行训练。理论上,它与书写的具体情况有关。然而,实际上由于人们的书写习惯不总是固定不变的,所以最好取一个近似函数,特别是与用户无关。
等式(7)用于描述在水平方向上彼此相隔开的笔画的垂直间隙。通常,即使笔画之间不相连,并且在水平方向上与先前笔画相隔开,也不一定存在垂直间隙。我们可以使用不同的标准确定这样的水平间隔:
Max (x(i,j)) ≤ Min (x(i,j))-G (8)
满足t(i,j)<t(K,1)且 满足t(i,j)≥t(K,1)
y(i,j)=每个Y值的 且y(i,j)=每个值
所有点 的所有点
由于笔画是用离散的点来定义的,所以可以将等式(8)进一步修改成为等式(9),其中T选做笔画点的统计函数,这样,如果一笔画跨跃一水平带,则某一笔画点将出现在该水平带上。
Max (x(i,j))≤Min (x(i,j))-G (9)
满足t(i,j)<t(K,1) 满足t(i,j)≥t(K,1)
且nT≤y(i,j)≤ 且(i,j)≤
(n+1)T的所有点 (n+1)T的所有点这里nT从汉字串的y坐标值的最小值变化到最大值。对于给定汉字串的累积概率函数f(G)在此可按相同的方式使用。用检测到的笔画间的垂直间隙或水平间隔,可以识别出一组潜在的分割点。于是我们重写等式(2):C*→=argmaxPr(S→|B→)Pr(B→|C→)Pr(C→)---(10)]]>其中对于所有的{bj},(0≤i≤m)寻找最大值,即,对于所有潜在分割点的组合序列寻找最大值。项Pr表示单个汉字识别结果的组合概率。于是Pr(B→|C→)=Πj=1MPr(Φi|cj)---(11)]]>等式(10)中的第一因子Pr是从所观测的笔画几何特征中俘获概率参数的最有效因素。Pr(S→|B→)=Pr(B→|S→)Pr(S→)/Pr(B→)---(12)]]>
由于在没中不同有继承概率差,所以Pr可认为是匀一的。同样,对于给定,Pr是一常数。于是Pr(S→|B→)∝Pr(B→|S→)---(13)]]>
Pr是可以从两个信息源中通过观测笔画几何特征得出的几何模型。一个是间距模型G,它与有关,另一个是不同的候选汉字的笔画特征模型也称分布模型D,该模型也与有关。于是Pr(B→|S→)=Pr(g)(B→|S→)×Pr(d)(B→|S→)---(14)]]>
在理论上,Pr(g)和Pr(d)都可以看作是上下文有关的,即是的函数。然而,Pr(g)对的依赖性非常小,且Pr(g)可以上下文无关的间隔模型G中计算出来:Pr(g)(B→|S→)=ΠiMfi(G)ΠjM(1-fj(G))]]>
其中i的范围是中的潜在分割点,而j的范围为不在中的那些潜在分割点。
对于分布模型,Pr(d)可用不同方式计算出来,这依赖于所采用的策略,与各种性能参数之间的权衡,如复杂度、可靠性和准确的增益有关。一般来说,我们假设可以从每一个汉字的书写样本中建立X方向上笔画密度分布。相对于平均大小的汉字来说可以是归一化的。当对于给定考虑特定时,我们可以对于中的每个ci计算出各个X方向上笔画密度分布,并将与其所存储的典型分布相比较,得出用于匹配似然性的概率。例如只考虑候选汉字在X方向的分布就可以达到实际目的。这样,对于每个汉字,首先从收集的书写样本中得到X方向上分布的归一化概率分布函数并将其存储起来。于是所观测到的每个的X方向上的分布可以给出似然概率图。于是Pr(d)(B→|S)=ΠiMmi]]>
其中mi表示由分布模型D给出的候选汉字ci的似然概率。实际上mi在X方上的分布变得很大时,如≥0,mi将为零。
因子Pr是从汉字串中得出的语言模型。由于汉语是基于词的,所以应该使用词一级的语言模型。这意味着,对于每个汉字串,我们将进行词分割,使用词频率和可能更高层的n元文法来计算Pr。实际上,我们可以简单地使用词这一级上的单一元文法概率并将它们乘在一起。对于一个截断的汉字串,在进行词分割后可能会在汉字串中出现相同的单字词。在确定汉字分段和识别结果的处理中考虑这种截断的影响。我们注意到在等式(10)中基于笔画的几何特征的几何模型Pr占主导地位。例如,当人们书写时字与字之间留有很大间隔时,Pr(g)对于特定很大(≈1),而对于其它的则很小≤1。在这种情况下,很明显可以单独使用等式(15)来进行文字分割,而不必使用识别结果和语言模型。
在等(14)中使用的间距模型和分布模型是基于手写样本的统计模型。
由以上分析可以看出,本发明的自动分割和识别方法,在寻找潜在的分割点时考虑了笔画的几何特征,具体地说使用了间距模型G和分布模型D。G模型使用两相邻笔画之间的间隔来描述所述两相邻笔画中后一笔画为一个潜在分割点的可能性,所述两相邻笔画按相关时序信息分为前一笔画和后一笔画。进一步说,所述G模型为一单调上升函数,其中自变量为两相邻笔画之间的间隔,因变量描述后一笔画为一个潜在分割点的可能性。
此外,所述几何模型还包括分布模型D,使用当前笔画与前一个已确定为潜在分割点的笔画之间的距离来描述当前笔画和潜在的分割点之间的笔画为一个字的可能性。
进一步说,所述D模型可以是一个类正态分布函数,其中自变量为当前笔画与前一个已确定为潜在分割点的笔画之间的距离,因变量描述当前笔画和潜在分割点之间的笔画为一个字的可能性,当自变量在于某一连续的值域内时该类正态分布函数值较大,而当自变量落在所述值域外时该类正态分布函数值较小。
图2示出了根据本发明第一实施例的手写汉字串自动分割和识别方法的具体步骤。
首先使用户的手写汉字串S经过间隔模型G的分析,确定所有的潜在分割点,对于每一种潜在的分割方案产生一条路径,将所以路径按队列存放。然后对于队列中的每条路径进行识别。再用分布模型D和语言模型PLM对Pgap·PR进行校正,即计算PLM·PD·PR·Pgap。经排列后求出得分最高的路径,其所对应的分割方案和识别结果即为手写汉字串的分割和识别结果。
图3示出了根据本发明另一个实施例的手写汉字串自动分割和识别方法的具体步骤。手写汉字串经过G模型和D模型的分析后才确定出潜在的分割点。这有助于减少路径数,提高分割和识别效率。
图4示出了根据本发明第三实施例的手写汉字串自动分割和识别方法的具体步骤。对于识别结果用分布模型D′进行校正,以提高分割和识别的准确度。在书写方向为水平方向时,当识别结果为左右结构的汉字时,使用字宽度模型D′来修正表征识别结果正确性的概率值,字宽度模型D’使用即可以为左右结构汉字中的一个组成部分又可以为单个汉字的成分的宽度来描述在该宽度下该成分为左右结构汉字中一个组成部分的可能性或为单个汉字的可能性。而在书写方向为垂直方向时,当识别结果为一上下结构的汉字时使用字高度模型D’来修正表征识别结果正确性的概率值,字高度模型D’使用即可以为上下结构汉字中的一个组成部分又可以为单个汉字的成分的高度来描述在该高度下该成分为上下结构汉字中一个组成部分的可能性或为单个汉字的可能性。
此外,正如前边已讨论过的那样,识别结果可以是偏旁部首、单字词或多字词。
在具体实施例本发明的手写汉字串自动分割和识别方法时,可以使用树状结构。这样可以有效地表示代表潜在分割方案的每条路径。
使用树状结构进行手写汉字串自动分割和识别的具体步骤为:
步骤(1):分析手写数据样本,构造f(G)和f(D)。
步骤(2):对每一笔画计算G。如果G大于0,则该笔画可能是一潜在的分割点。
步骤(3):以最初确定的分割点为根,产生一代表潜在分割方案的二叉树。左分枝表示不接受前一个潜在分割点,右分枝表示接受前一个潜在的分割点。每当产生新的潜在分割点时,树就向下产生分枝。从根到叶子节点的每条路径都代表了一个潜在的分割方案。于是可用等式(10)求出每条路径的得分。然而实际上,当我们向下生长树时,对于每个新产生的分枝都用f(G)和识别结果来估计分枝存在的可能性,以对树进行裁剪。
步骤(4):如果对于某一个潜在的分割点f(G)=1,则可以将左分枝裁剪掉。这种情况发生在两相邻笔画之间存在很大物理间隔时。
步骤(5):如果某个特定的似然概率mi等于零,则可以将上一个左分枝裁剪掉。
步骤(6):如果由于包含前一个潜在分割点,而使识别结果的概率值落入预定阈值L之下,则左分枝裁剪掉,L值可由经验来定。
步骤(7):对于剩下的每一分枝计算公式(10)的值。
以上结合附图详细地描述了根据本发明的手写汉字自动分割和识别方法。下面结构图5描述一下使用该方法的系统。
如图5所示,根据本发明的手写汉字自动分割和识别系统包括:
输入装置,用于接收用户连续输入的手写汉字串,并按笔画和相关时序记录用户的手写输入;
模型存储装置,用于存储描述手写汉字串中笔画序列几何特征的几何模型和描述汉语中字(词)依赖关系的语言模型;
分割装置,基于所述相关时序信息和几何模型找出连续输入的手写汉字串中所有的潜在分割方案;
识别装置,对于每一种分割方案,对任意两个分割点之间的笔画组进行识别,并计算出表征识别结果正确性的概率;
仲裁装置,用语言模型修正上述表征识别结果正确性的概率,选择对应于概率值最大的识别结果和该识别结果所对应的分割方案作为对用户连续输入的手写汉字串的分割和识别结果。
输入装置例如可以是IBM公司的ThinkScribe。ThinkScribe是一种集成了手写数字化仪和传统的基于纸上记录系统的设备。该设备按笔画和相关时序记录用户的手写输入,并能够按原来的时序再现用户的手写输入。ThinkScribe可以将数据流S(1),S(2),S(3)…存储在自已的非易失存储器中,并且在需要时可以通过输入/输出端口送到例如一台PC机中,PC机可以运行ThinkScribe的手写输入再现程序,按原来的时序再现用户的手写输入。当PC机安装有识别程序时,也可以作为一台识别机,对用户的手写输入进行识别。
以上结合附图描述了根据本发明的在手写汉字信息处理系统中自动分割和识别用户连续输入的手写汉字串的方法和使用该方法的系统。正如本领域技术人员所理解的那样,本发明不限于以上的实施例。在不违背本发明的精神和范畴的条件下,可以对本发明作出各种修改和变型,本发明旨在包括所有这些修改和变型。本发明的保护范围由所附权利要求书来限定。