基于速度的手写体识别方法和系统的制作方法

文档序号:6411020阅读:375来源:国知局
专利名称:基于速度的手写体识别方法和系统的制作方法
本申请为转让给本发明的同一受让人的、1994年9月9日提交的共同未决申请序列号08/304,008的部分继续申请。通过引用将上述申请包含在此。
本发明一般涉及手写体识别,更具体地涉及用于识别手写文本的计算机可实现的系统。
多年来,科学家一直在试图找到简化人与机器之间的界面的装置。诸如键盘、鼠标器及触摸屏幕等输入装置为当前实现人/机界面的最常用工具。然而,人与机器之间更简单、更自然的界面可能是手写体。自动识别手写体输入的装置提供这种界面。
可靠的手写体识别系统的潜在应用包括用于诸如个人计算机与数字助手等计算机系统的自动化数据输入与编辑。
不幸的是,自动化手写体识别不是一项简单的任务。理由之一是人与人之间的手写体明显地不同。例如,手写体可包含断开的、连笔的(草书)或混合的字,后者是断开与连笔字的组合。
从60年代后期起,已为手写体识别引入了各种方法学。某些方法是基于带有探索性策略的广泛的知识的,其它方法则依赖于词汇数据库及学习方法学。
先有技术教给许多已应用在手写体识别问题上的不同模式识别技术,下面简要地讨论其中的四种。这些技术为与传统模式识别结合的抽头延迟线、语法模式识别、延时神经网络以及隐藏的Markov模型建立。下面说明这些方法与它们各自的缺点。
先有技术的某些专业人员曾试图利用稍加修改的传统的或非时间的模式识别方法来识别手写体,其中将一系列输入样本用抽头延迟线分割。这意味着,如果在抽头延迟线中采用n个延迟元件,则能够并行地将n+1个样本的序列提交给非时间的分类器,并作为单一模式加以处理。从而,对于特定的应用,如果一个时间模式由100个样本组成,便使用99个抽头的延迟线一次将整个模式提交给分类器。这一方法的问题是对于定义在大量样本上的模式,对分类器的输入数目能很快地增长到太大,以致成为无法管理。
语法模式识别是基于一个模式是原子模式元素的组合的假设的模式识别技术。在这一假设下,可将子模式与语法关联。利用语法,便有可能定义一种识别特定的原模式是否存在的形式文法。这一技术的代表性功能通常超过在其它模式识别方法中见到的功能,从而是语法模式识别的主要吸引力。然而,随着模式复杂性的增加,越来越难于定义形式文法。此外,一旦定义了文法,它容易受到模式与类定义中的意想不到的变化的不利影响。
延时神经网络(TDNN)是一类神经网络,其中模式的时间动力学是用延迟样元件编码在TDNN系统结构中并在TDNN的训练阶段中捕集的。研究人员已将这一类神经网络用于手写体与语音识别中。在手写体识别中使用TDNN的缺点是必须在训练阶段中捕集模式弯曲与压缩,而导致计算强度极大的、从而非常费时的训练阶段。
隐藏Morkov模型建立(HMM)是研究模式的概率技术。这一技术利用随机方法生成时间序列,然后用参数模型分析它。HMM具有两个组成部分有限状态Markov链及输出概率分布的有限集合。
HMM的直接困难是其复杂性,这导致实现中的问题实践中存在大量的互相关联的调节参数,某些调节参数需要通常得不到的先验知识。此外,用于HMM的训练样本必须根据相当复杂的标准选择。实现HMM的另一缺点是前向后向计算(用于模型参数的最大似然性估算)中的计算成本可能非常昂贵。
先有技术手写体识别系统总有时候包含上述执行模式识别的技术。然而,这些手写体识别系统具有上面给出的相同缺点。
先有技术还提出基于帧的手写体识别系统。在这些系统中,将输入数据流分解成多个数据帧。然后对这些帧进行处理以识别输入的手写体。基于帧的识别系统具有许多优点,包括改进识别处理速度和减小计算复杂性。然而,用于将输入流分解成数据帧的现有技术不那么有效也不可靠。
例如,先有技术提供基于手写体输入的空间属性的数据帧提取技术。一项这样的技术使数据帧边界等于具有高曲率手写体输入中的诸点。该项技术对于分解具有环的输入字符,如“o”、“g”、“a”等有困难。
先有技术还提出使用固定长度帧。借助该方法,无需考虑输入手写体的特性就可以确定数据帧边界,这样降低了手写体识别系统的精度。
因此,存在着对能够以降低手写体识别系统(HRS)的总体复杂性的方式精确地识别混合手写文本的基于帧的HRS系统的突出需求。此外,需要一种对手写体输入中由于不同用户和噪声引起的变化不敏感的基于帧的HRS系统。
本发明是在所附的权利要求书中用特征指出的。然而,通过结合附图参照下面的评细描述,本发明的其它特征将更为清楚并且最好地理解本发明,附图中

图1示出包含本明的一个实施例的第一手写体识别系统的方框图。
图2示出操作图1中所示的手写体识别系统的方法的流程3示出包含本发明的一个实施例的第二手写体识别系统的方框图。
图4示出表示图3中所示的累加器/选择器的方框图。
图5示出包含本发明的一个实施例的第三手写体识别系统的方框图。
图6描绘混淆矩阵的图形表示。
图7示出表示图5中所示的累加器/选择器的方框图。
图8示出操作图5中所示的手写体识别系统的方法的流程图。
图9示出根据本发明第一实施例的帧提取器的方框图。
图10示出手写文本的图形表示。
图11示出对应于图10的手写文本的速度轮廓的图形表示。
图12示出示范性速度轮廓的图形表示。
图13示出根据本发明第二实施例的图9中所示的帧提取器的使用方法的流程图。
图14示出根据本发明的第三实施例的帧提取器的方框图。
图15示出根据本发明第四实施例的图14中所示的帧提取器的使用方法的流程图。
图16示出根据本发明第五实施例的帧提取器的方框图。
图17示出表示图16中所示的峰值极值检测器的方框图。
图18示出表示图16中所示的线上极值检测器的方框图。
图19示出根据本发明第六实施例的图16中所示的帧提取器的使用方法的流程图。
图20示出表示图3与5中所示的词汇后处理器的实施例的方框图。
图21示出图20中所示的词汇后处理器的使用方法。
图22示出图20中所示的字发生器的详细方框图。
图23-25示出表示图22的词汇后处理器的使用方法的流程图。
本发明的优点是提供一种基于速度的数据帧提取器,它对手写体的变换旋转和比例不敏感。本发明的再一优点是提供一种帧提取器,它能有效地改进HRS系统的识别精度。本发明的另一优点是提供一种对诸如由生理颤动和笔颤动引起的噪声不敏感的帧提取器。
还应注意,在此描述的帧提取器的各种实施例包括一个极值滤波器,它能消除由噪声引起的极值,这样,本发明的实施例能够显著地改进HRS的识别精度。
在此公开的本发明的其它实施例,包括图9、13-16和19所示的,可以用于识别许多不同语言和字母表的手写体文本。例如,可识别的字符集可以包含大写和小写英文字母、数字、标点符号,或诸如用来编辑文件的手写体手势符(gesture)。
图1示出包含本发明的一个实施例的HRS的方框图。该HRS包括特征提取器30及多项式分类器32。特征提取器30接收手写体输入,并作出响应从手写体输入中提取多个特征。然后将这些特征作为输入提供给多项式分类器32。多项式分类器32响应这些特征,按照多项式展开式生成判别函数输出信号。多项式展开式可表示为y=Σi=0mWi[Πj=0nXjgji]----(1)]]>式1中,Xj表示特征;y表示判定函数输出信号;Wi表示系数;gji表示指数;而i、j、m与n为整数。
在本发明的较佳实施例中,判定函数为下列形式的二次多项式展开式y=a0+Σi=0nbiXi+Σi=0nΣj=0nCijXiXj----(2)]]>在式2中,a0表示零次系数,bi表示一次系数,而Cij表示二次系数;Xi与Xj表示特征,y表示判定函数输出信号,而i、j、m与n为整数。
在HRS的各其它实施例中,判定函数可以基于诸如正弦、余弦、指数/对数、付里叶变换、Legendre多项式等正交函数、诸如Volterra函数等非线性基函数或径向基函数、或其它函数、或多项式展开与正交函数的组合。
在本发明的较佳实施例中,将多项式判定函数拟合到p维特征空间中表示输入样本的样本集合上。如果多项式中的项数等于样本数,可采用矩阵求逆技术解出各系数之值。如果项数不等于样本数,则采用最小二乘方估算技术解出各系数之值。适用的最小二乘方估算技术包括诸如最小二乘方、广义最小二乘方、伪逆算法、Kalman滤子、最大似然算法、Bayesian估算等等。
输入手写体文本是根据判定函数输出信号y识别的。通常将判定函数输出信号与其它判定函数输出进行比较。具有最大幅度的判定函数输出信号指定文本的类别。HRS输出诸如表示文本的ASCII符号等与类别关联的标记。
图2示出操作图1所示手写体识别系统的方法的流程图。框40中,从手写体输入提取多个特征。在框42中,通过将特征作用在多项式判定函数上而识别手写体输入中的文本。判定函数可用式1与2中给出的任一多项式展开式表示。
图3示出包含本发明一个实施例第二HRS的方框图。该HRS包括笔50、图形输入板52、预处理器54、帧提取器56、特征提取器58、多个字符分类器60-64、段分类器65、累加器/选择器66及词汇后处理器(LPP)68。
笔50用于输入手写体输入到图形输入板52上。响应该输入,图形输入板52作为输出生成表示手写体文本的一序列坐标对。预处理器54滤波坐标对序列以消除重复的坐标对及有害的噪声。在本发明的一个较佳实施例中,预处理器54在坐标对序列上执行低通滤波来减少噪声。
帧提取器56将来自预处理器54的滤波后的序列分割成一序列数据帧。然后,特征提取器58接收这些数据帧,并从这些数据帧中提取多个特征。然后将这些特征分配给多个分类器60-65,图3中示出了其中四个。
各分类器实现一个不同的判别函数。这些分类器生成传送给累加器/选择器66的多个判别函数输出信号。累加器/选择器66在一段时间上累计这些判别函数输出信号,以生成多个置信度值。根据置信度值,累加器/选择器66确定“胜利”分类器,并将与该胜利分类器关联的置信度值与类标记输出到IPP68。LPP68将置信度值中至少一个与词典比较以生成表示包含在手写体输入中的文本的输出信号。
参见图3中所示的HRS的部件,图形输入板52捕集手写体输入并将其转换成数字格式。基于笔的提供图形输入板52的较佳功能性的电子装置是可从诸如Wacom公司等供应商购得的。主要是图形输入板52提供用户在其上面书写的平面。该平面通常包含对笔50的笔尖位置敏感的并与各具有0.005″分辨率的x与y轴的坐标平面关联的电荷耦合器件。在这一平面上,手写体输入可用多个坐标对(x,y)表示。通过作为时间的函数抽样这些坐标对来生成一序列数字化坐标对(x,y)而捕集笔50的位置与运动。虽然抽样可在任何频率上进行,但最好在大约100Hz上执行。
除了生成表示坐标对序列的数字信号,图形输入板52还能生成笔动作指示,诸如抬笔与下笔信号。抬笔信号指示笔不与书写平面接触,而下笔信号则指示笔与平面接触。
本领域的普通技术人员会理解可使用得到用户输入的其它装置来代替笔50与图形输入板52。例如,也可用光栅监视器上的光笔来向预处理器54提供用户输入。
预处理器54滤波与平滑坐标对来消除噪声及优化提供给特征提取器58的数据的光谱内容。预处理器54通过将坐标对序列传送通过一个或多个低通滤波器(未示出)来做到这一点。取决于从图形输入板52接收的数据的特征,这些滤波器能自适应地开或关。这些低通滤波器可以是多抽头有限脉冲响应(FIR)滤波器。此外,预处理器54可从一个给定的坐标对序列中生成一个以上的滤波后的序列。
在本发明的一个实施例中,预处理器54包含执行低通滤波的自适应滤波器。自适应滤波器支持可变抽样率。
通常由笔暂停及噪声导致的重复坐标对也能被预处理器54滤掉。重复坐标对与另一坐标对具有相同的(x,y)值,但与不同的抽样时间关联。
在本发明的一个较佳实施例中,预处理器54生成表示一序列笔划的滤波的序列。笔划定义为从笔50初始接触图形输入板52的书写表面开始,到随后笔与书写表面断开接触结束的时间段上从手写体输入抽样的坐标对。一个笔划可包含一个字符的一部分、一个完整的字符或由许多字符构成的一个整字。预处理器54最好将一个笔划的滤波的坐标对采集到一个单一数据包中,然后将其传递给帧提取器56。可将控制信号55传输给累加器/选择器66以指示一个笔划的开始或结束。
在接收到一个笔划的滤波的坐标对时,帧提取器56将笔划分割成多个子笔划,也称作数据帧或帧。子笔划包含笔划坐标对的子集。此外,子笔划表示与特征提取器58、分类器60-65及累加器/选择器66相关的最佳数据单元大小。帧提取器56根据笔尖在书写中的速度为子笔划定界。为了简明起见,这里所用的“速度”指速度的标量,或更传统地指速率而言。图形输入板52最好在恒定频率上抽样手写体输入。结果,笔尖的速度是与坐标对之间的物理距离成正比的。对于各坐标对,帧提取器56计算近似速度。在本发明的一个较佳实施例中,帧提取器56将子笔划的边界与手写体输入中的选择的速度极小值关联。
特征提取器58处理它所接收的各子笔划以提取对应的特征或测定值组。这得出特征化手写体输入的相关特征的子笔划的表示。可将特征提取器58的功能看成是数据精简过程,它保持输入的有活力的特征并消除由不相干的特征导致的无用干扰,从而方便了分类器60-65、累加器/选择器66及LPP68的作出判定过程。
可提取的特征的例子有平均直线速度、曲线速度、角速度、笔划角度、数据帧索引、笔划曲率、付里叶系数或多项式系数。特征提取器58也能生成多帧特征。多帧特征的例子包含特征连续性与特征持久性。本发明的各种实施例所能利用的特征的进一步细节可在共同未决美国专利申请序号08/315,784中找到,通过引用将其结合在此。
响应从给定的子笔划中提取的特征,各分类器60-65通过计算一个多项式判别函数生成各自的判别函数输出信号。多项式判别函数通常具有式1给出的形式并最好具有式2给出的形式。
在图3中所示的实例中,字符分类器60-64指定不同的字符,而段分类器65则指定连接线即连接字符的草书手写体部分。段分类器生成用作累加器/选择器66内的控制信号的段判别信号67。HRS可包含一个或多个段分类器。
当手写体输入包括用段分隔的字符时,为了确定各字符的边界而识别段。确定字符的边界提高了正确地识别字符的概率。与字符相同的方式识别段,即它们是通过分类特征识别的。
在本发明的一个较佳实施例中,由分类器60-65分类一序列子笔划。响应子笔划序列,各分类器60-65生成各自的判别函数输出信号序列。累加器/选择器66独立地累计各分类器输出序列以生成对应于各分类器的字符置信度值。字符置信度值指示子笔划序列表示特定字符或段的相对似然性。累加器/选择器66确定哪一个字符置信度值具有最大值,然后选择一个表示该对应字标识体的标记。
作为输出,累加器/选择器66提供包含一个或多个字符标记与字符置信度值的一个字。累加器/选择器66主要存储识别的字符直到HRS收到完整的笔划,如用控制信号55所指示的。在处理完整个笔划之后,累加器/选择器66将字传递给LPP68。
在本发明的一个较佳实施例中,累加器/选择器66生成的输出为从计算机可读的格式编码的数字字。然而,本领域中的普通技术人员会理解,根据系统的应用,所提供的输出形式可以改变。如这里所描述的信号一样,输出也可能是模拟或光信号。
LPP68将它所接收的字信息与一个或多个词典比较。这一比较过程提高了识别手写的字中HRS的总体精度。作为输出,LPP68生成它从累加器/选择器66接收的原来的字、选自词典的替代字或相关的字的建议表之一。
图4示出图3中所示的累加器/选择器66的详细方框图。累加器/选择器66包含多个类累加器80-84、选择器86、多个类标记92、开关88及字符累加器90。
类累加器80-84求出来自字符分类器60-64中相应的一个的判别函数输出之和,以生成字符置信度值。选择器86选择具有最大值的字符置信度值,然后将这一选中的置信度值传递给字符累加器90。此外,选择器86生成开关88用来选择与最大置信度值关联的类标记的开关控制信号89 。
当基于段判别信号67的段置信度值超过预定的段阈值时,最好复位类累加器80-84及选择器86。
在本发明的另一实施例中,可以在一序列帧上累计段判别信号67,以生成段置信度值。
在本发明的又一实施例中,将段判别信号67与统计曲线样板比较,以复位类累加器80-84及选择器86。
类标记92标识HRS正在使用的字母表中的字符。类标记92可用存储在计算机存储器中的数字字实现。在这一实现中,开关控制信号89可以是一个存储器地址,而开关88则可以是耦合在计算机存储器上的地址解码器。该数字字最好表示ASCII符号。
字符累积器90保持选定的类标记与置信度值直到控制信号55指示已处理了整个字为止。可以延时控制信号55来考虑字符累积器90前面的HRS过程中的等待时间。字符累积器90为累加器/选择器66生成输出的字。
图5示出包括本发明的一个实施例的第三HRS的方框图。图5的HRS包括许多结合图3中所示的HRS描述的元件,即笔50、图形输入板52、预处理器54、帧提取器56、特征提取器58、字符与段与类器60-65及LPP68。然而与之对比,图5的HRS还包含元类分类器100及元类累加器/选择器106。元类分类器100与累加器/选择器106明显地改进HRS的识别精确度。
元类是包含两个或两个以上字符的类。通常元类包含不能容易地互相辨别的字符。例如,第一元类可包含草书小写字符i、e与c,而第二元类可包含草书小写的m与n。元类是用混淆矩阵定义来确定类成员的。元类与元类字符是HRS以与字符相同的方式识别的,即它们是通过使用具有上面给出的式1或2之一的形式的多项式展开式分类特征而得到识别的。
元类的使用在两个或两个以上的类充分地相似以致提取的特征不足于区分它们时提供优越的识别功能。这种实例之一便是小写草书‘m’与‘n’。HRS中通常采用的特征几乎经常混淆‘m’与‘n’。通过将类‘m’与‘n’组合成元类,便能训练相关的元类分类器识别‘m’或‘n’输入。这产生一个有力的高度准确的“mn”元类分类器。识别为属于该元类的输入这时便能由局部训练的“m”与“n”元类字符分类器来进一步仔细推敲。
元类字符分类器具体地刻划该元类的两个成员“m”与“n”。此外,可将对元类成员特定的局部化特征提供给元类字符分类器。为了有效地利用局部化特征,分开训练(与实例符合的)“m”与“n”多项式判别函数,从而诸如奇异值分解(SVD)算法等训练算法便能利用这些特征提供的判别信息。
元类分类器100生成对识别手写体输入中的文本有用的判别信号。元类累加器/选择器106根据字符置信度值及判别信号输出识别出的字。
图6描述了混淆矩阵的图形表示。该混淆矩阵由HRS的字符识别性能的实验结果组成。通常,这些结果可以不通过使用LPP68而获得。混淆矩阵提供用于改进HRS识别性能的手写体误差模型的基础。
混淆矩阵包含验证对话期间HRS的字符识别性能的实验结果。验证对话是为了建立混淆矩阵而用HRS处理多个手写体样本的行动。通常,验证对话发生时不使用LPP68。混淆矩阵提供用于改进HRS识别性能的手写体错差模型的基础。
混淆矩阵中的列表示已知的输入字符,而行则表示在验证对话期间HRS识别的实际字符。字母表中的各字符具有与之关联的一个矩阵列。矩阵中的各数值表示响应用对应的列表示的已知输入字符在行中生成的识别字符的次数。例如,“a”列中的总值为1104。从而,在示范性验证对话期间,HRS处理了字母“a”的1104个样本。位置(a,a)上的值为“665”。这一值表示在1104次中HRS正确地识别出字母“a”665次,或者次数的60.23%。(a,b)上的值为“45”。该值表示HRS不正确地将输入字符“a”识别成“b”45次。
元类便是根据给定的列中的各数字之比定义的。通常,离开矩阵对角线的相对大的数字表示字符分类器将一个输入字符与另一个混淆,从而需要元类分类器。如该例中所示,列“n”、行“m”与“n”表示能构成包含字符m与n的元类。在该HRS中,总共处理了760个“n”的样本。 HRS正确地识别输入“n”306次或40.3%,同时不正确地将它识别为“m”270次。
通过为这一特定的HRS定义一个“mn”元类,可将不同的多项式判别函数拟合到表示“m”与“n”实例的特征空间上。然后使用不同的次数、输入特征或项数为单个字符“m”与“n”定义独立的多项式判别函数。这便明显地改进了HRS的识别性能。
图7示出表示图5中所示的累加器/选择器的详细方框图。累加器/选择器106包括多个类累加器120-124、选择器132、多个类标记148、开关144、元类累加器126、多个元类字符累加器128-130、元类选择器138、多个元类字符标记150、元类开关143及字符累积器146。
类累加器120-124求出来自相应的字符分类器60-64的判别函数输出之和以生成字符置信度值。选择器132选择具有最大值的字符置信度值,然后将这一选中的置信度值134传递给字符累积器146。此外,选择器132生成开关144用来选择与最大置信度值关联的类标记的开关控制信号136。
元类字符累加器128-130类似地求出来自相应的元类字符分类器的判定函数输出之和以生成置信度值。元类选择器138选择最大的置信度值并生成元类控制信号142来设定元类开关143。
如果元类累加器126生成最大置信度值,选择器132便发布控制信号136令开关144连接在元类开关143上。依次,将元类字符标记150之一及其对应的置信度值140传递给字符累积器146。
当基于段判别信号67的段置信度值超过预定的段阈值时,便复位类、元类、及元类字符累加器120-130以及选择器132与元类选择器138。虽然在图5或7中未描述,可以在一序列帧上累计段判别信号67以生成段置信度值。
类与元类字符标记148-150在性质上类似于结合图4描述的类标记92。此外,字符累积器146以类似于图4中所示的字符累积器的方式工作。
图8示出操作图5所示手写体识别系统的方法的流程图。在框160中,接收表示手写体输入的一序列坐标对。这些坐标对最好是由图形输入板52生成的。
框162中,将坐标对传输通过低通滤波器以消除由诸如生理振颤、书写表面的粗糙等事物引起的噪声。随后在框164中,从序列中消除重复的坐标对以减少HRS所需的数据处理量。
框166中,将坐标对序列分割成一序列数据帧(子笔划)。帧边界最好基于笔尖的速度最小值。框168中,从数据帧中提取特征。
框172中,将特征分配给一个或多个元类判别函数。在框174中,将相同的特征分配给字符判别函数。这些判别函数最好是二次多项式展开式。在框176中,累计元类与字符判别函数的输出以生成多个字符置信度值。
在框178中,根据这些置信度值生成一个识别出的字,如前面参照图4与7所描述的。该字可能具有一个或多个字符。在框180中,将该字与词典比较。这一比较导致下述HRS输出该识别出的字、候选的替代字、相关的字的建议表、或拒绝指示符。
帧提取图9示出根据本发明第一实施例的帧提取器56的详细方框图。通过将手写体笔划分割成多个子笔划,帧提取器56改进了HRS的总体识别性能。帧提取器56从手写体的笔划中建立多个数据帧。各数据帧包括多个坐标对。主要是一个数据帧只编码一笔的一部分。通过分类对应地从数据帧中提取的特征增量地累积识别资料,得到非常高的精确性与坚实性水平。此外,采用数据帧能够产生对手/笔振动、字符挥舞及来自图形输入板52的噪声的免疫力。
帧提取器56最好将子笔划的边界分配在笔划中笔尖速度为极值的点上。极值为函数的极大值或极小值。在典型的手写体笔划中有许多速度极值。帧提取器56提供一个装置来高效地选择速度极值来表示帧边界是其优点之一。在本发明的一个较佳实施例中,帧提取器56用选择的笔尖的速度极小值分界帧。
帧提取器56包括一个速度轮廓计算器(VPC)190、峰值极值检测器(PED)192、i线上极值检测器(IED)194及极值滤波器196。
VPC190生成横跨图形输入板的书写面的笔迹的速度轮廓。虽然存在着诸如使用多项式逼近等计算笔尖速度的不同方法,VPC190最好直接从取自手写体输入的坐标对样本之间的距离确定速度。如上所述,HRS最好在固定频率上抽样手写体输入,并且作为其结果,笔尖速度是与样本之间的物理距离成正比的,它能简单地从坐标对中计算出。计算速度的这一技术提高了计算效率。将从手写体输入计算出的轮廓提供给PED192与IED194两者。
PED192识别速度轮廓内的多个峰值极值。极值可以是出现在轮廓中的极小值或极大值。极小值定义为具有较其紧靠两侧的邻接点更小的值的速度点。反之,极大值定义为具有较其紧靠两侧的邻接点更大的值的速度点。各极值具有相关的方面,方向为极大值或极小值。
PED192通过比较第一极值与具有相反方向的后面的极值,即它对极大值比较极小值或反之,而检测轮廓中的峰值极值。这可以通过确定当前最小的极小值与当前最大的极大值之间的差来完成。如果该差大于预定的峰值阈值,便将该对中第一个出现的极值识别为峰值极值。
在本发明的一个实施例中,PED192相对于时间向前扫描通过一笔划的速度轮廓。为了做到这一点,维护了两个软件标志指示当前最小的极小值的峰值极小值标志及指示当前最大的极大值的峰值极大值标志。将这两个标志分别初始化成指示第一极小值与第一极大值,如果当前最大极大值与当前最小极小值之间的差超过了峰值阈值,便将对中第一个出现的极值标识为峰值极值,然后将相应的标志更新为指示轮廓中的下一个后面的极值,并重复上面的比较。
如果未超过峰值阈值,将轮廓中下一个极值与具有相同方向的当前极值比较。如果下一个极值比相应的当前极值更为极端,便将相应的标志更新为指示下一个极值,并重复上述峰值阈值比较。否则,定位另一个后继的极值,并重复上述对相应的当前极值的比较。
PED192输出方向交替的一个或多个检测到的峰值极值到极值滤波器196。
IED194通过确定第一极值与具有相反方向的后一个极值之间的差而检测轮廓中的线上极值。如果该差大于预定的线上阈值,则将第一及后面的极值标识为线上极值。
在本发明的一个实施例中,IED194检验相反方向的两个相邻峰值极值之间的一组极值。IED194确定该组中各极值与相反方向的边界峰值极值之间的差,即将组中的极小值极值与定界该组的极大值峰值极值比较。如果其差大于预定的峰值/线上阈值,则将该极值组成员视为候选的线上极值。
然后,以类似于PED192的方式,IED194向前扫描通过候选线上极值,并比较同一方向的候选线上极值,即它将极小值与极小值比较,并选择最小的极小值候选线上及最大的极大值候选线上。维护当前最小的极小值候选线上极值及当前最大的极大值候选线上极值的标志。IED194通过确定当前最小的极小值候选值与当前最大的极大值候选值之间的差检测出轮廓中的一个线上极值。如果该差大于预定的线上阈值,便将该对的较早的候选线上极值识别为是线上极值。识别出一个极值为线上极值之后,IED194复位同一方向的当前候选线上极值的标志,即当识别出一个极大值极值为线上极值时,便复位当前最大的极大值候选线上极值标志。IED194输出一个或多个方向交替的检测到的峰值极值到极值滤波器196。
极值滤波器196通过滤波峰值与线上极值检测子笔划边界。极值滤波器保证子笔划边界相距至少预定数目的样本。从而,消除某些线上与峰值极值,以便生成互相隔开最小数目的介入样本的滤波的极值。一个样本可以是带有其相关速度的坐标对。各滤波的极值表示一个子笔划边界。此外,子笔划边界也可限制在具有相同方向的滤波的极值上。
图10示出手写体文字的一笔的图形表示。笔划中的文字是字“old”。样本点1-9表示笔划中速度在极小值上的点。
图11示出对应于图10的笔划的速度轮廓的图形表示。y轴表示笔尖速度,而x轴表示时间。样本点1-9与图10中所示的对应。
图12示出示范性速度轮廓的图形表示。轮廓中示出的有多个线上极值197及多个峰值极值198-199。峰值极值包含峰值极小值198与峰值极大值199。如图所示,峰值极值是用峰值阈值Tpk分隔开的。峰值极值在它们各自的峰值组中是最极端的值。峰值组包含具有相反方向的峰值极值之间的所有速度点。此外,在峰值极值的按时间排序的序列中,相邻的峰值极值具有相反的方向。
线上极值197由线上闽值Til互相隔开。此外,在本发明的一个实施例中,线上极值197至少与邻接的峰值极值由峰值/线上阈值Tpk-il隔开。这是为了防止不正确地将接近噪声峰值的极值识别为线上极值。
图13示出表示使用图9中所示的帧提取器56根据本发明第二实施例来生成子笔划边界的方法的流程图。在框200中,从手写体输入中生成速度轮廓。在计算机中,速度轮廓可以用按照时间加下标的速度数据的数组来表示。
在框202中,识别出速度轮廓中的多个峰值极值。下面,在框204中,识别出速度轮廓内的多个线上极值。在这一点上,线上与峰值极值是可能的子笔划边界。
在框206中,通过滤波峰值与线上极值检测子笔划边界。为了保证子笔划边界相隔最小数目的介入样本点,这些极值是相对于时间滤波的。
图14示出根据本发明第三实施例的帧提取器56的方框图。帧提取器56的这一实施例的元件190-196直接对应于结合图9描述的元件190-196。除了元件190-196之外,图14的帧提取器56还包括半子笔划检测器(HSD)210及帧发生器212。
HSD210根据它从极值滤波器196接收的滤波后的极值,识别手写体输入中的半子笔划。半子笔划是用一对具有相反方向的邻接的滤波的极值定界的。这一点与完全的子笔划相反,后者是用方向相同的滤波的极值定界的。通常,半子笔划出现在一笔的开始或结束处。最好,HSD210连接检测到的半子笔划到邻接的完全的子笔划上。然而作为替代,HSD210也可明确地强制将半子笔划作为独立的完全的子笔划对待或滤掉该半子笔划。这样能防止连接的子笔划成为难于操纵地大的。HSD210的输出为多个子笔划边界。
帧发生器212利用子笔划边界来生成按时间排序的数据帧(子笔划)序列。各数据帕包含取自子笔划边界之间的手写体输入的多个样本,最好是坐标对。除了样本,数据帧还可包含从速度轮廓导出的信息,诸如笔尖速度等。
图15示出根据本发明第四实施例使用图14中所示的帧提取器的方法的流程图。这一方法的步骤200-206直接对应于结合图13描述的步骤200-206。
在框214中,利用滤波的极值识别一个或多个半子笔划。或者将这些半子笔划连接到邻接的子笔划上以构成一个完全的子笔划,或者将它们指明为正规的完全子笔划。
在框216中,根据子笔划边界生成数据帧。将这些数据帧传输给特征提取器58。
图16示出根据本发明第五实施例的帧提取器56的详细方框图。帧提取器56的这一实施例的VPC190、极值滤波器196、HSD210及帧发生器212直接对应于结合图9与14描述的相同元件。除了上列元件之外,图16的帧提取器56还包含增强的PED220及增强的IED222。
图17示出图16中所示的增强的PED220的详细方框图。PED220包含局部极值检测器(LED)230、第一选择器234及第一比较器236。
LED230识别速度轮廓中的多个局部极值。LED230通过将各速度点与紧邻接的速度点进行比较而做到这一点。如果考虑中的速度点或者是三个点中的最大者或者是最小者,便将它标识为一个局部极值。在总线232上将这些局部极值分配给第一选择器234、第一比较器236与IED222。
第一选择器234与第一比较器236联合操作来识别峰值极值。第一选择器234从多个局部极值中选择第一局部极值。在PED220的操作期间可以迭代地重复这一选择进程。将第一极值传递给第一比较器236。
第一比较器236将第一局部极值与具有相反方向的后面的局部极值比较以生成一个差。后面的局部极值是选自总线232上接收的局部极值的。然后第一比较器236判定该差是否大于峰值阈值。如果是,便将第一局部极值与后面的局部极值标识为峰值极值并传递给IED222与极值滤波器196。如果否,选择另一个后面的极值并重复比较。如果对一个给定的第一局部极值完成了所有比较之后该差从未超过峰值阈值,便丢弃该给定的第一极值,并由第一选择器234发送另一第一极值。然后第一比较器236为后续的第一极值重复上述处理。
图18示出图16中所示的增强的IED222的详细的方框图。IED222包括峰值组检测器(PGD)240、第二选择器242及第二比较器246。
响应来自PED220的峰值极值,PGD240识别速度轮廓中的一个或多个峰值组的边界。一个峰值组包括用一对方向相反的峰值极值定界的一个局部极值集合。通常,峰值组边界是相对于时间定义的。将峰值组边界传输给第二选择器242。
第二选择器242与第二比较器协同操作来识别线上极值。响应在总线232上接收的局部极值及一个峰值组边界集合,第二选择器242从峰值组中选择第一与后面的局部极值。第二局部极值与第一局部极值方向相反。
第二比较器246比较第一局部极值与后面的局部极值以产生一个差。然后,第二比较器246判定该差是否大于线上阈值。如果是,第二比较器246便将第一与后面的局部极值识别为是线上极值并将它们输出到极值滤波器196。如果否,便选择另一个后面的极值并重复比较。如果为一个给定的第一局部极值完成了所有比较之后,该差从未超过线上阈值,便丢弃给定的第一极值并由第二选择器242发送另一第一极值。然后第二比较器246为后续的第一极值重复上述处理。
在IED222的另一实施例中,第二比较器246进行附加的比较以消除与噪声峰值关联的任何伪线上极值。这是通过对照峰值/线上阈值比较局部极值而完成的。为了执行这一第二测试,第二比较器246将第一与后面的局部极值与界定它们的各峰值组的峰值极值比较。最好将各局部极值与相反方向的定界峰值极值比较。这一比较产生两个第二差。然后,第二比较器246判定各第二差是否大于线上/峰值阈值。如果是,第二比较器246识别第一与后面的局部极值为线上极值。否则,不认为考虑中的局部极值对为可能的子笔划边界。
图19示出根据本发明第六实施例使用图16中所示的帧提取器从手写体输入中生成子笔划的方法的流程图。在框252中,接收表示手写体输入的一序列坐标对。在框254中,从坐标对序列中生成速度轮廓。在框256中,在速度轮廓中识别多个局部极值,其中各局部极值具有关联的方向。
在框258中,在局部极值中识别峰值极值。这是通过比较第一与后面的局部极值以产生第一差而完成的。这些极值是选择为具有相反方向的。如果第一差大于峰值阈值,则识别第一与后面的局部极值为峰值极值。
下面在框260中,识别速度轮廓中的峰值组。各峰值组是用一对具有相反方向的峰值极值定界的。
在框262中,在各峰值组内识别线上极值。这是通过比较峰值组内的局部极值而达到的。这些比较是在具有相反方向的局部极值之间进行的。如果两个这种局部极值之间的差超过线上阈值,便将这两个极值识别为是线上极值。
在框264中,从识别出的峰值与线上极值中选择滤波的极值。滤波的极值是选择为它们互相隔开最小数目的介入坐标对的。这得出由预定间隔最小地分隔开的按时间排序的极值序列。
在框266中,将各滤波的极值等价于子笔划边界,得出一序列子笔划边界。
在框268中,使用过滤的极值识别一个或多个半子笔划。半子笔划是用具有相反方向的滤波的极值定界的。用任何下述步骤处理半子笔划将它连接到邻接的子笔划上以构成一个完全的子笔划;将它们表示为一个正规的完全子笔划;或把它们滤掉。
在框270中,根据子笔划边界生成子笔划数据帧。子笔划帧中包含出现在一对连续的子笔划边界之间的坐标对。将数据帧传输给特征提取器58。
词汇后处理图20示出表示图3与5中所示的词汇后处理器(LPP)68的一个实施例的方框图。LPP68为包含输入接口300与字发生器302的词汇处理器。输入接口300提供用于接收输入的字的装置。在HRS中,输入的字是由累加器/选择器66或元类累加器/选择器106之一生成的。输入接口300能高速缓存输入的字供字发生器302以后处理。字发生器302作为输入的字与混淆矩阵的函数生成词汇输出。
图21示出图20中所示的词汇后处理器68的使用方法。在框310中,接收输入的字。在框312中,作为输入的字与混淆矩阵的函数生成词汇输出。
图22示出表示图20中所示的字发生器302的详细方框图。字发生器302包括字置信度值(WCV)计算器320、比较器322、拼写检验器324、选择器326及计算机存储器328。
将输入的字分配给WCV计算器320与选择器326。WCV计算器提供从输入的字中导出字置信度值的装置。将字置信度值传递给比较器322,后者作出响应通过将字置信度值与第一对阈值比较而生成第一结果。选择器326根据第一结果生成词汇输出。取决于第一结果的值,选择器326提供拒绝指示符、候选字、建议表或原来输入的字作为词汇输出。
候选字是选择器326以下述方式生成的。选择器326利用存储在计算机存储器328中的替换矩阵选择一个替换字符。替换矩阵是从诸如图6中所示的混淆矩阵导出的。然后通过用替换字符替换输入的字中的一个字符而生成候选字。然后拼写检验器324对照词典检验候选字的拼写。如果该候选字不出现在词典中,拼写检验器324生成相关的字的建议表并将其传递回选择器326。
在本发明的一个较佳实施例中,选择器326只选择具有使候选字与输入字之间的距离最小的似然值的那些替换字符。距离用下式给出D=∑(C/L) (3)在式3中,D表示距离,C表示与输入字中被替换的字符关联的字符置信度值,而L则表示与替换字符关联的似然值。
似然值为表示输入字中的一个字符已误分类为与之关联的替换字符的概率的相对测定值。从而,似然值越大,输入字符被分类器不正确地识别的可能性越大。例如,输入字符“a”可能与具有对应地高的似然值的替换字符“0”相关联。这表示分类为“a”的输入字符实际上是“0”的可能性较高。似然值包含在替换矩阵中。
替换矩阵为替换字符与它们的对应似然值的数组。该数组是从混淆矩阵导出的。替换矩阵中的各列与HRS正在使用的字母表中一个字符关联。各列中的元素数可以不同。各元素包含诸如ASCII数字字等表示替换字符的符号及与该替换字符关联的似然值。列中的元素是按似然值的降序排列的。在给定的一行中,具有相同似然值的元素是按字母表排列的。
通过首先将一个字符与替换矩阵中的一列匹配,然后选择该列中具有最大似然值的元素而选择替换字符。这一选择进程可以循环重复,选择具有递降的似然值的替换字符序列。
通常以下述方式从混淆矩阵导出替换矩阵。采用图6中所示的混淆矩阵作为参照,用相对于给定的列中的所有元素的总和正规化该列中的各元素。为矩阵中每一列重复这一列正规化。接着,在各行中,将得出的列正规化的值相对于该行的对角线元素正规化。这是通过将各列正规化值单个地除以对角线元素而完成的。这些正规化的结果为多个似然值。然后通过将正规化混淆矩阵中的各行赋值给替换矩阵中的一列而生成替换矩阵。
图23-25示出表示图22的词汇后处理器的使用方法的流程图。
图23中,示出了将输入字对照一对阈值进行比较的进程的流程图。在框350中,词汇处理器接收输入字。该输入字包含多个字符及与这些字符关联的多个字符置信度值。
在框352中,将各字符置信度值与预定的拒绝阈值(RT)比较。从比较结果中计算拒绝比(RR)。拒绝比便是具有小于拒绝阈值的置信度值的字符的百分比。
在判定框354中,判定拒绝比是否大于拒绝字符比阈值(RCRT)。如果是,将输入字作为不能识别的加以拒绝,并输出拒绝指示符(框356)。如果否,方法进行到框358。
在框358中,计算平均字符置信度(MCC)。MCC为输入字的字符置信度值的平均值。
在判定框360中,判定MCC是否大于可接受阈值(AT)。如果是,词汇输出等于原来的输入字。如果否,便按照图24中的进程生成一个候选字。
图24中,示出了生成候选字的进程的流程图。候选字是输入字的变体。候选字是通过用替换字符替换输入字中的一个或多个字符生成的。替换字符是按照基于混淆矩阵的替换矩阵选择的。
在框364中,将候选字初始化成输入字。初始候选字的字距离阵为零。字距离提供选择候选字的基础。它是量化输入字与一个可能的候选字之间的差别的数值。通常,可能的候选字与输入字之间的字距离越大,选择该可能候选字来替换输入字的可能性越小。
在框366中,在一本或多本词典中搜索候选字。词典是字的字典。HRS的用户可定制与更新词典而将HRS裁剪到特定的应用上。此外,词典可以从字典数据库的第三方供应商加入,诸如能从Wiutertree软件公司购买的。
在判定框368中,检验判定该候选字是否出现在词典中。如果是,按照图25中描述的进程生成词汇输出。如果否,方法进行到判定框370。
在判定框370中,检验判定是否超过了发生器极限。如果是,便按照图25中描述的进程生成词汇输出。如果否,方法进行到框372。发生器极限是确定候选字生成范围的预定值。极限中包含候选字的最大数目与最大字距离。
在框372中,生成一个新的候选字及其相关的字距离。新的候选字是用从混淆矩阵导出的替换矩阵选择的。
在框374中,将该新候选字附加在建议表上。建议表中包括所有生成的候选字,包含初始候选字,即输入字在内。从框374出口时,过程返回到框366。
图25示出生成词汇输出的过程的流程图。该进程是从图24中所示的框368-370之一进入的。
如果已经超过了发生器极限,便进入框380。通常,框380-390中所示的子进程类似于框352-362中所示的;然而这两个子进程最好用不同的阈值进行比较。
在框380中,将原来的输入的各字符置信度值与预定的未命中拒绝阈值(MRT)比较。
在框382中,从比较结果计算未命中拒绝比(MRR)。MRR为具有小于MRT的置信度的字符的百分比。
在判定框384中,判定未命中拒绝比是否小于未命中拒绝字符比阈值(MRCRT)。如果是,便将输入字作为不能识别的加以拒绝,并输出拒绝指示符(框386)。如果否,方法进行到判定框388。
在判定框388中,判定输入字的MCC是否小于未命中接受阈值(MAT)。如果是,方法进行到框394。如果否,令词汇输出等于原来的输入字(框390)。
参见框392,如果候选字位于词典中便进入判定框392。在框392中,判定候选字的字距离是否大于命中距离阈值(HDT)。如果是,方法进行到框394。否则,作为词汇输出提供该候选字(框398)。
在框394中,将临时字典附加在建议表上。临时字典中包含尚未出现在建议表中的选自词典的字。将这些字提供给用户作为可能的替换字。
下面在框396中,将建议表作为词汇输出提供。
在本发明的一个实施例中,帧提取器56是用运行在诸如微处理器等处理器上的软件实现的。然而,本领域的普通技术人员会理解,可编程逻辑阵列、ASIC或其它数字逻辑装置也能用来实现帧提取器所执行的功能。
在本发明的另一实施例中,帧提取器是作为制造成品实现的。该制造成品包括可用于导致计算机识别手写体输入的文本的计算机可读的存储器。该制造成品是通过将计算机程序存储在计算机可读的存储器中的行动生产的,其中该计算机程序包含识别手写体输入的文本的方法,该方法按照这里公开的本发明的各种实施例之一。该计算机可读的存储器可以是任何用于存储计算机程序的装置,包括CD-ROM、硬盘驱动器、软盘、ROM或RAM。
这里已描述了利用笔尖速度极值限定子笔划边界的帧提取器的概念,及包括一个优选实施例的若干实施例。因为帧提取器的各种实施例如这里所述描的利用了线上滤波器和峰值滤波器,它们对于手写体翻译、转动和按比例放大、缩小不敏感。
也可以理解在此描述的帧提取器的各种实施例包括一个能够消除由噪声引起的极值的极值滤波器,于是,本发明的实施例从实质上改进了HRS的识别精度。
本技术中的技术人员清楚可以多种方式修改所公开的发明,并且可以假设上面具体提出与描述的较佳形式以外的许多实施例。
从而,旨在用所附的权利要求书来覆盖落入本发明的真实精神与范围内的所有本发明的修正。
权利要求
1.在计算机中检测手写体输入的子笔划边界的方法,该方法包括下列步骤(a)从手写体输入产生速度轮廓;(b)识别速度轮廓中的多个峰值极值;(c)识别速度轮廓中的多个线上极值;以及(d)通过滤波所述多个峰值极值和多个线上极值检测所述子笔划边界。
2.权利要求1的方法,其中所述步骤(b)包括下列子步骤识别速度轮廓中的多个局部极值,每个局部极值都具有一方向;从所述多个局部极值中选出第一局部极值;将所述第一局部极值与一个具有相反方向的后继局部极值进行比较,以产生一差值;以及判定所述差值是否大于峰值阈值,如果是,将所述第一局部极值和所述后继局部极值每一个都识别为一峰值极值。
3.权利要求1的方法,其中步骤(c)包括下列子步骤识别速轮廓中的一个峰值组,该峰值组包括多个局部极值并且由一对具有相反方向的峰值极值定界,所述多个局部极值的每一个都具有一方向;从所述多个局部极值中选择一第一局部极值;将所述第一局部极值与一个具有相反方向的后继局部极值进行比较,以生成一个差值;以及判定该差值是否大于线上阈值,如果是,则将所述第一局部极值和所述后继局部极值每一个都识别为线上极值。
4.权利要求1的方法,其中步骤(c)包括下列子步骤识别速度轮廓中的一个峰值组,该峰值组包括多个局部极值并且由一对具有相反方向的峰值极值定界,所述多个局部极值的每一个都具有一方向;从所述多个局部极值中选择一第一局部极值;将所述第一局部极值与一具有相反方向的后继局部极值进行比较,以产生一第一差值;将所述第一局部极值和所述后继局部极值与所述峰值极值对中的至少一个进行比较,以产生第二差值对;以及判定所述第一差值是否大于一线上阈值以及所述第二差值对是否大于一线上/峰值阈值,如果是,将所述局部极值和所述后继局部极值中的每一个都识别为一线上极值。
5.权利要求1的方法,其中步骤(d)进一步包括下列子步骤从多个峰值极值和多个线上极值中选择多个滤波后的极值,该多个滤波后的极值由最小数目的插入采样彼此分隔开;以及将子笔划边界等价于所述多个滤波后的极值。
6.一种用于检测手写体输入中子笔划边界的系统,包括用于从所述手写体输入产生速度轮廓的速度轮廓计算器;用于识别速度轮廓中多个峰值极值的峰值极值检测器;用于识别速度轮廓中多个线上极值的线上极值检测器;以及通过滤波所述多个峰值极值和所述多个线上极值来检测子笔划边界的极值滤波器。
7.权利要求6的系统,其中子笔划边界由具有相同方向的极值来表示。
8.权利要求7的系统,其中子笔划边界由速度轮廓中的最小值来表明。
9.权利要求6的系统,进一步包括半笔划检测器,用于识别手写体输入中的半子笔划,半子笔划由一对具有相反方向的子笔划边界定界;用于把半子笔划连在一起形成邻接子笔划的装置。
10.权利要求6的系统,进一步包括半笔划检测器,用于识别手写体输入中的半子笔划,半子笔划由一对具有相反方向的子笔划边界定界;用于表明半子笔划是一常规子笔划的装置。
全文摘要
本发明提供一种用于检测手写体输入中子笔划边界的计算机可实现的方法。该方法选择笔尖速度极值以表示子笔划边界。该方法包括步骤:从手写体输入产生速度轮廓(200);识别速度轮廓中的多个峰值极值(202);识别速度轮廓中的多个线上极值(204);以及,通过滤波所述多个峰值极值及所述多个线上极值来检测子笔划边界(206)。
文档编号G06K9/00GK1177407SQ96192320
公开日1998年3月25日 申请日期1996年11月27日 优先权日1995年12月1日
发明者詹姆斯·H·厄里克, 米切尔·C·穆多克, 托马斯·沙-平·王 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1