发明内容
本发明提供一种手写识别方法、***及字符识别终端,以解决现有的字符识别结果经常出现错误,导致识别率下降,进而影响多字输入的手写体验的问题。
为了解决上述问题,本发明公开了一种手写识别方法,包括:采集连续输入的笔迹;提取笔迹特征;将笔迹特征输入到最大熵模型中,最大熵模型判断当前的笔画是否为切割点;如果是,则对字符进行切割,得到最终识别结果。
优选的,最大熵模型判断当前的笔画是否为切割点包括:最大熵模型利用笔迹特征给出当前笔画为切割点的概率;如果得到的概率大于预设概率则当前笔画为切割点。
优选的,还包括确定预设概率的步骤,确定预设概率包括:对所述字符笔迹进行切割,得到至少一条切分路径;对各切分路径进行单字识别,针对每一个切分路径得到候选识别结果及得到该候选识别结果的第一概率值;利用语言模型对各候选识别结果进行打分,得出针对每个候选识别结果的表示字符间关联信息的第二概率值;根据各候选识别结果的第一概率值和第二概率值得到各候选识别结果的综合概率值;选择最大综合概率值为预设概率。
优选的,采集连续输入的笔迹包括:采集以叠字连续输入的字符笔迹或以行或以列连续输入的字符笔迹。
优选的,还包括建立最大熵模型,所述建立最大熵模型包括:选择最大熵模型特征,准备训练数据,训练最大熵模型。
优选的,选择的最大熵模型特征包括:选择以叠字连续输入的字符笔迹的笔迹特征;即选择笔画间的相对位置、笔画位于书写区域的位置、笔画落笔点所在的区域位置、抬笔点所在的区域位置、增加笔画的大小比例、笔画高度占书写区域高度的比例或笔画宽度占书写区域宽度的比例中至少一个特征作为最大熵模型的特征。
优选的,选择的最大熵模型特征包括:选择以行连续输入的字符笔迹的笔迹特征,即选择当前字符前面空隙的宽度、后面空隙的宽度和当前字符的宽高比中至少一个特征作为最大熵模型的特征;选择以列连续输入的字符笔迹的笔迹特征,即选择当前字符上面空隙的宽度、下面空隙的宽度和当前字符的宽高比中至少一个特征作为最大熵模型的特征。
本发明还公开了一种手写识别***,包括:采集模块,用于采集连续输入的笔迹;特征提取模块:用于提取笔迹特征;切割模块,用于将笔迹特征输入到最大熵模型中,最大熵模型判断当前的笔画是否为切割点;识别模块,用于当当前的笔画为切割点时,对字符进行切割,得到最终识别结果。
优选的,手写识别***还包括:确定模块,用于确定预设概率;所述确定模块包括:
切割子模块;用于对所述字符笔迹进行切割,得到至少一条切分路径;
单字识别子模块;用于对各切分路径进行单字识别,针对每一个切分路径得到候选识别结果及得到该候选识别结果的第一概率值;
语言模型识别子模块;用于利用语言模型对各候选识别结果进行打分,得出针对每个候选识别结果的表示字符间关联信息的第二概率值;
综合判断子模块;用于根据各候选识别结果的第一概率值和第二概率值得到各候选识别结果的综合概率值;
选择子模块;用于选择最大综合概率值为预设概率。
本发明还公开了一种手写识别终端,包括本发明公开的一种手写识别***。
与现有技术相比,本发明具有以下优点:
本发明给出的基于最大熵的字符切割方法,是基于统计的预测模型,可以对字符笔画与笔画之间的关系进行更加准确的判断,从而确认是否为切割点,并给出判断为切割点的概率,更加综合且全面的判断字符间的切割,提高识别结果的准确性。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提出一种手写识别方法、***及终端,该方法可以提取用户连续书写的笔迹特征输入到最大熵模型中进行是否为切割点的判断,可以对字符笔画与笔画之间的关系进行更加准确的判断,提高识别结果的准确性。
下面通过实施例进行详细说明。
参照图1,是本发明实施例所述一种手写识别方法流程图。
步骤11,采集连续输入的笔迹;
步骤12,提取笔迹特征;
用户在同一块手写区域中可以重复连续输入多个字符,所述字符包含中文文字、标点符号、英文字母等形式。
采集用户连续输入的字符笔迹,所述字符笔迹是指以笔画形式输入的信息。采集手写输入的设备有多种,如电磁感应手写板、压感式手写板、触摸屏、触控板、超声波笔等,不同设备在采集时都是利用设备上安装的感应装置记录下用户书写的坐标,即笔迹点。通常将落笔的位置记为一个笔画的起始位置,将抬笔的位置记为一个笔画的终止位置,落笔位置和抬笔位置之间的一系列笔迹点构成一个输入笔画。
步骤13,将笔迹特征输入到最大熵模型中,最大熵模型判断当前的笔画是否为切割点;
本实施例所述的手写识别方法中,采集到的是用户连续输入的多个字符笔迹,实际应用中可以是采集以叠字连续输入的字符笔迹的笔迹点;或者采集以行连续输入的字符笔迹的笔迹点;或者采集以列连续输入的字符笔迹的笔迹点。
在进行判断是否为切割点之前还需要建立最大熵模型,具体的建立最大熵模型可以包括:选择最大熵模型特征,准备训练数据,训练最大熵模型。
下面举个具体的例子详细说明:
(1)选择最大熵模型特征
选择与字符笔画位置有关的特征作为最大熵模型的特征。在选择时根据不同的输入情况选择不同的笔迹特征,例如:在叠字连续输入的情况下,选择的笔迹特征可以包括:笔画间的相对位置、笔画位于书写区域的位置、笔画落笔点所在的区域位置、抬笔点所在的区域位置、增加笔画的大小比例、笔画高度占书写区域高度的比例或笔画宽度占书写区域宽度的比例等特征中的至少一个等特征作为最大熵模型的特征。所选取的特征包括但不局限于上述罗列的特征,可以根据实际应用的需用而选取所需笔迹特征。在以行连续输入的情况下,选择的笔迹特征可以包括:当前字符前面空隙的宽度、后面空隙的宽度、当前字符的宽高比等特征中的至少一个特征作为最大熵模型的特征;以列连续输入的字符笔迹的笔迹特征,即选择当前字符上面空隙的宽度、下面空隙的宽度和当前字符的宽高比中至少一个特征作为最大熵模型的特征。下面以叠字输入举例说明。
(2)准备训练数据
在选择最大熵模型的特征之后,进行训练数据的准备,需要确定模型中字符笔画位置的特征。如笔画间的相对位置、笔画位于书写区域的位置等等,即上述模型中的x。然后进行数据准备,准备一些叠字字符笔画,并根据确定的特征进行标注。
考虑一个随机过程p(y|x),它根据能观测到的向量x,以一定的概率输出某个y,y属于一个有限集合Y。在字符切割的判断中,Y={1,0},分别表示切割点和非切割点。x代表与字符笔画位置有关的特征,即待判决的叠字字符笔画,包括笔画间的相对位置、笔画位于书写区域的位置等等。为了重建随机过程p(y|x),我们对其输出进行采样,得到N个训练样例(x1,y1),(x2,y2),……,(xN,yN)。由于这些训练样例由此随机过程产生,所以我们假设某个事件在训练样例中的经验概率,等于该事件在已知p(y|x)时的期望概率。
(3)训练最大熵模型
在准备好训练数据后,利用准备好的训练数据来训练最大熵模型。将上一步标注了笔画间的相对位置、笔画位于书写区域位置的字符笔画位置后的数据送入最大熵模型训练,数据格式为:是否切割,特征1,特征2……
某个事件可以用一个表征函数fi(x,y)来表示。如果样例(xj,yj)中发生了此事件,则fi(xi,yi)=1;否则为0。例如:如果x满足前一个字符书写完成,且y为切割点,则fi(x,y)=1;其他情况,则fi(x,y)=0。该事件在训练样例中的经验概率表示为:
如果已知p(y|x),则事件fi(x,y)的期望概率表示为:
其中,p(x)是训练例中x的概率。
我们称表征函数fi(x,y)为特征函数,或简称特征。所以上式被称为关于特征fi(x,y)的一个约束方程,简称为约束。约束是随机过程p(y|x)和训练样例关于某一特征的一个等式,它对p(y|x)的分布做了某些限制,使之产生的样例在特征指示的方面,从统计意义上接近训练样例。
假设已经定义了n个特征,满足这n个特征的所有随机过程构成一个集合:
一般地,|C|>1。我们选取其中熵最大的那个随机过程作为重建出来的模型。这里的熵是条件熵,表示为:
则我们最终重建出来的模型为:p*=arg max p∈CH(p) (6)
该模型称之为最大熵模型。熵最大的原则保证了最大熵模型具有很好的泛化效果。最大熵模型的表达形式和参数计算
求解(6)式得到最大熵模型具有如下的形式:
上式中,λi是特征fi(x,y)的权重,可以使用IIS或L-BFGS迭代算法,从训练字符笔画中训练得到。Z(x)是归一化系数。
完成建立最大熵模型之后,将采集的笔迹特征输入最大熵模型进行判断。判断的具体过程可以是如步骤14所述。
步骤14,如果最大熵模型判断当前的笔画是切割点,则对字符进行切割,得到最终识别结果。如果最大熵模型判断当前的笔画不是切割点,则不对字符进行切割,可以继续采集连续输入字符的笔迹特征。
判断的过程具体可以包括最大熵模型会给字符笔画与笔画之间是否为切割点的概率。如果该概率很大,则认为是字符笔画间的切割点,对字符完成切割。如何判断所得到的是否为切割点的概率很大,可以根据经验设定一个固定值,如果得到的切割概率大于这个固定值,则说明字符笔画与笔画之间是切割点的概率很大,可以进行切割。
如何判断所得到的是否为切割点的概率很大,也可以将得到的是否为切割点的概率,加入到路径搜索中,进一步提高识别率。具体实施时,可以是设定一个预设概率,如果得到的是否为切割点的概率大于预设概率,则说明字符笔画与笔画之间是切割点的概率很大,可以进行切割。预设概率可以通过如下方法获得:
对所述字符笔迹进行切割,得到至少一条切分路径;
例如,将“天下”切割后得到4条切分路径,分别是“二∣人∣下”、“二人∣下”、“二∣人下”、“二人下”,每条切分路径都对应一个切割概率值。
对各切分路径进行单字识别,针对每一个切分路径得到候选识别结果及得到该候选识别结果的第一概率值;
其中,所述识别过程可采用现有的多种识别方法,本发明实施例在此不做限定。
每一个切分路径中,对以候选切割点切分开的每个单字进行识别,对于每个单字的识别可能得到多个候选识别结果(是单字候选识别结果),并得到每个候选识别结果的单字识别概率,称为第一概率值。
例如,对于输入较短的“天下”,对相应的4条切分路径“二|人|下”、“二人∣下”、“二∣人下”、“二人下”分别进行识别:针对切分路径“二人∣下”分别对“二人”、“下”进行单字识别,对应“二人”得到的候选识别结果可能是“天”、“夫”等等,每一个候选识别结果都得到一个单字识别概率,如对应“天”、“夫”的第一概率值分别是A、B;同样,对于“下”也进行单字识别得到相应的一个或多个候选识别结果及每个候选识别结果的第一概率值。其他切分路径的单字识别过程相同,不再一一详述。
利用语言模型对各候选识别结果进行打分,得出针对每个候选识别结果的表示字符间关联信息的第二概率值;
所述语言模型可表示字符之间的关联信息,这种关联信息可通过概率来表示。语言模型是指用来计算短语或句子概率的模型,对于一句话,如果有多条切分路径就会有多个候选识别结果,此处的候选识别结果是指上述步骤131得到的单字候选识别结果根据语言模型组合成字、词、短语或句子的候选识别结果,如“二”与“人”组合成一个字“天”,“天”即为一个候选识别结果,“文”与“件”组合成词组“文件”也为一个候选识别结果。则对每个候选识别结果,语言模型会计算出这个句子正确的概率有多大。例如,用户输入笔迹点的一个候选识别结果为“文仵”,另一个候选识别结果为“文件”,由语言模型可知,“文件”的概率要大于“文仵”的概率;若“文件”和“文仵”的识别概率相差不大,则语言模型会将结果确定为更为常用的“文件”。
关于语言模型的实现,一种简单的方法是只考虑前后两个字的概率,如“件”前面是“文”字的概率是多少,“仵”前面是“文”字的概率是多少,而与再往前是什么字无关。但实际上情况并不是这样,所以复杂一点的实现方法也可以考虑前前字(或更多的字),或者考虑基于词的语言模型,但计算量和存储空间会增加很多。
同样,对于候选识别结果“二人下”、“天下”、“夫下”等“,由于“天下”为常用词,因此根据语言模型得出的概率最高;而“二人下”不是常用词,因此语言模型的概率较低。
根据各候选识别结果的第一概率值和第二概率值得到各候选识别结果的综合概率值;计算综合概率值时,一种简单的方法是将每个候选识别结果的第一概率值和第二概率值进行加权相加,得到对应该候选识别结果的一个综合概率值。当然,也可以采用其他更复杂的计算方法,本发明实施例在此不做限定。
选择最大综合概率值为预设概率。这个最大综合概率值可以表示切分路径的切割代价,即根据输入顺序和笔画相对位置得出的切割正确的概率值。
上面的例子给出了基于统计方法中最大熵模型的方法对连续字符进行切割识别,在具体应用中也可以包括利用其他统计方法对连续字符进行切割识别,例如支持向量机SVM(Support Vector Machine)方法等,这些方法的具体应用在现有技术中多有描述,不再赘述。
综上所述,经过以上流程的处理,上述手写识别方法可以提取用户连续书写的笔迹特征输入到最大熵模型中进行是否为切割点的判断,可以对字符笔画与笔画之间的关系进行更加准确的判断,提高识别结果的准确性。同时,由于用户一次可输入多个字,大大提高了输入速度。
在实际应用中,本发明实施例所述手写识别方法可应用于一些有手写输入需求的产品中,如PC机、笔记本电脑、平板电脑、手写板等桌面操作***中。此外,也可以应用到嵌入式操作***中,例如掌上电脑、手机、PAD、PDA、小屏手机或者横屏手机等智能移动终端;个人信息终端、车载信息终端等GPS/GIS终端;eBOOK、电子词典、智能玩具等智能学习终端;税控机输入终端、二代身份证读卡信息终端、大型数据库查询终端、酒店管理***输入终端、智能报警器、数字电视互动遥控器、卡拉OK点歌器、信息家电控制器等其他数据终端。本发明对手写区域的屏幕尺寸要求较低,尤其适用于小屏幕设备的叠字输入与识别,对于目前的手机等小屏幕设备具有较大优势。
优选的,在多任务***中,上述切割和综合识别过程可与书写过程(即笔迹采集过程)同步进行,从而进一步加快识别处理速度。所述多任务***是指可以进行多线程的***。在用户写字的时间段内,由于笔迹采集占用CPU较低或者基本不占用CPU,因此大部分CPU处于空闲状态。而在多任务***中,可以将这部分空闲的CPU利用起来,边写边识别,所以可以加快识别速度。
基于上述内容,本发明实施例还提供了相应的***实施例。
参照图2,是本发明实施例所述一种手写识别***的结构图。
采集模块21,用于采集连续输入的笔迹;
特征提取模块22,用于提取笔迹的特征;
切割模块23,用于将笔迹特征输入到最大熵模型中,最大熵模型判断当前的笔画是否为切割点;
识别模块24,用于当当前的笔画为切割点时,对字符进行切割,得到最终识别结果。
其中,所述切割模块23可充分利用统计方法尤其是上述方法实施例中的基于最大熵模型判断的方法对字符之间是否为切割点进行更为准确的判断。为了进一步的提高判断的准确率,可以将基于最大熵模型得到的切割概率加入到路径搜索中,进一步提高识别率。因此所述***可进一步包括确定模块25,确定模块25可以包括:
切割子模块251;用于对所述字符笔迹进行切割,得到至少一条切分路径;
单字识别子模块252;用于对各切分路径进行单字识别,针对每一个切分路径得到候选识别结果及得到该候选识别结果的第一概率值,并将各候选识别结果输入语言模型识别子模块253;
语言模型识别子模块253;用于利用语言模型对各候选识别结果进行打分,得出针对每个候选识别结果的表示字符间关联信息的第二概率值;
综合判断子模块254;用于根据各候选识别结果的第一概率值和第二概率值得到各候选识别结果的综合概率值;
选择子模块255;用于选择最大综合概率值为预设概率。
确定预设概率值之后,可以将最大熵模型得到的切割概率与预设概率值比较,如果切割概率大于或等于预设概率值则可以判断得到字符之间是切割点。经过这样再次的概率对比,提高了判断字符之间是否为切割点的准确性,增强了字符识别能力。
基于上述基于最大熵模型的手写识别***,本发明实施例还提供了一种手写识别终端,该手写识别终端可包括上述的手写识别***,从而支持连续字符输入的识别。所述手写识别***的具体结构可参照图2所示,在此不再详述。
所述手写识别终端可以是PC机、笔记本电脑、平板电脑、手写板等桌面操作***终端,也可以是掌上电脑、手机、PAD、PDA、小屏手机或者横屏手机等智能移动终端,还可以是具有多任务***的各类终端。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种手写识别方法、***及手写识别终端,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。