利用判定树减少手写体识别器差错的制作方法

文档序号:6415551阅读:120来源:国知局
专利名称:利用判定树减少手写体识别器差错的制作方法
技术领域
本发明一般涉及输入用户信息到计算机系统中,更具体地涉及识别用户输入的手写字符。
手写体识别技术中的最大问题之一为减小差错率。一种频发的差错类型来自当用户电子地输入紧密地与在计算机试图将手迹(即一组编码点)与之匹配的集合中的两个或更多可能字符的手写字符(称作手迹)匹配时。导致最多差错的字符通常是除了人能辨别但现代识别器不能辨别的单个差别之外互相相同的字符。例如,某些日文符号除了单个的细微差别之外基本上互相相同。
问题出现在大多数手写体识别系统采用基于神经网络、隐式马尔科夫(Markov)模型(HMM)或K个最近邻点(KNN)方法的识别器。这些系统在根据它们的总体外观区别字符的任务上完成得合理地好,但当两个字符除了单个差别以外相同时,它们经常失败。虽然已试图手工编码识别器来辨别特别麻烦的识别对,但存在着许多容易互相混淆的字符组。这使得编码过程非常费力及烦琐。此外,编码的结果取决于一或多人关于为了区别字符要测试什么的最佳猜测。这不一定是最好的,因为对于用什么来区分两个(或更多)接近的字符最好存在着许多可能性。其实,最好的这种系统并不实质性降低差错率。最后,每一次改变识别器时,该识别器混淆的字符集也改变,要求重复大部分费力的编码过程。
已试图将基于判定树,尤其是分类与回归树(Classificationand Regression Trees-CART),的另一类识别系统用于手写体识别。这些类型的系统已遭到拒绝,因为它们不能从大量字符中作出可靠的判定。作为示例,对于采用日文字符集的系统,支持6650个不同的字符。如能理解的,研制出能接收6550个字符中任何一个及重复地与正确地从适当的分支向下测试该字符直到找到单一的正确结果为止会是极为困难与烦重的任务。
相应地,本发明的总的目的为提供用于降低手写体识别中的差错率的改进的方法与机构。
为了达到这一目的,相关的目的为提供以高成功率区别通常混淆的字符的方法与机构。
另一目的为提供能用样本数据加以自动训练的上述种类的方法与系统。
又另一目的为提供快速、可靠、成本、高效、灵活与可扩展的上述种类的方法与机构。
简要地说,本发明提供用于识别输入到计算机系统中的手迹的方法与机构。提供了一级识别器将手迹转换成编码点,及研制与训练了二级识别器(诸如CART树)来区分生成选择的编码点的手迹。各个这种二级识别器是与各个选择的编码点关联的。在接收到手迹时,将手迹提供给一级识别器,从而接收与之对应的编码点。作出关于该编码点是否对应于具有与之关联的二级识别器的所选择的编码点之一的判定。如果没有,便返回一级识别器提供的编码点。如果有,便将手迹传递给二级识别器并从二级识别器返回编码点。
从下面结合附图所作的详细描述中,其它目的与优点将是显而易见的,附图中

图1为可包含本发明的计算机系统的框图;图2为表示按照本发明的一个方面训练一级手写体识别器的功能部件的框图;图3为表示用于将一级识别器所识别的手迹分类到基于编码点的文件中以开发按照本发明的二级识别系统的功能部件的框图;图4表示图3中的一级识别器所归类的示范性文件的内容;图5为归类手迹所采取的总的步骤的流程图;图6为表示从图3的文件生成二级识别系统的功能部件的框图;图7-9包括构造与训练二级识别系统所采取的总的步骤的流程图;图10为表示优化本发明的识别机制的功能部件的框图;图11-13包括表示优化本发明的识别机制所采取的总的步骤的流程图;图14为表示利用本发明的识别机制来识别手迹的功能部件的框图;以及图15为表示在利用本发明的识别机制来识别手迹时所采用的总的步骤的流程图。
翻到附图并首先参见图1,其中示出了可包含本发明的总体指示为20的计算机系统。计算机系统20包括可操作地连接到存储器24上的处理器22,存储器包括随机存取存储器(RAM)26及诸如硬盘驱动器、光盘驱动器之类的非易失性存储器28。能够理解,非易失性存储器能结合RAM使用,通过众所周知的交换技术提供相对地大的虚拟存储量。
处理器22还通过I/O电路32连接到一个或多个输入设备30上,诸如键盘及诸如鼠标器、笔触输入板、触摸设备或其它取得电子墨水的装置等指点设备。系统20还包括连接在I/O电路32上的至少一个本地输出设备34,用于诸如通过图形用户接口将信息传递给系统20的用户。操作系统加载在存储器24中。
按照本发明的一个方面,并如下面更详细地描述的,将经常使识别器混淆的那些手迹提供给二级识别进程。为了达到这一目的,对于各输入手迹,传统的(一级)识别器输出一个编码点。不是直接返回该编码点,而是首先检验该编码点来判定它是否对应于一个混淆集合,即表示经常互相混淆的手迹的两个(或多个)编码点之一。如果返回的编码点并不属于一个混淆集合,该机构便返回被一级识别器原先返回的编码点。然而,如果该编码点表示一个混淆集,便将该手迹给予特别为区分该特定混淆集开发的二级识别器。二级识别器利用比一级识别器所执行的更定向的测试来分析手迹,并根据测试结果返回两个(或多个)编码点之一。注意这种经常混淆的手迹不限于两个的集合,而经常与两个或更多的其它手迹混淆。
在替代实施例中,能训练一级识别器来识别表示表面相似的编码点(或编码点子集)的形状类。当提供手迹时,一级识别器从而返回至少一个形状类索引。然后二级识别器从形状类索引中确定手迹表示哪一个编码点。注意形状类索引是更一般的概念,即一个编码点是形状类索引的特定类型。然而,为了简单起见,本发明将相对于返回编码点的一级识别器加以描述,除非另有说明。
从而,应指出本发明具有两个不同的方面。第一方面涉及利用取自若干(最好是诸如数千的大量)用户的手写体样本数据来开发本发明的改进的识别机制。第二方面涉及采用按照本发明的第一方面开发的识别机制将手迹转换成编码点。第一方面,识别机制的开发通常是在相对强大的计算机系统上的开发环境中进行的,该计算机系统可通过网络连接之类连接到样本数据的大型数据库上。第二方面,识别机制的使用通常是在手持式(掌上)计算设备之类上执行的。这一设备最好在加载在存储器24中的Windows CE操作系统下运行,并包含用于输入手写字符(手迹)的触敏液晶显示屏。其它较佳的系统包含基于图形输入板的在Windows95或Windows NT操作系统下运行的桌面个人计算机。
参照图2-4回到识别机制的开发上,构造/训练进程42利用样本字符的第一训练集合40来开发与训练一级识别器44(图3)。训练集合是包含与它们的实际、正确编码点(即标识用户想要写的字符的编码点)结合存储的手迹的文件。一级识别器44最好是采用最近邻(nearest neighbor KNN)方法的那种。这些识别器与它们的构造及训练是已知的,从而此后不作详细描述,除外说明识别器44将手迹与训练过的识别器数据46(诸如终点信息)进行匹配来输出编码点。同时指出识别器44实际上可根据输入其中的手迹返回替换编码点的表(按概率排列的),然而为了简单起见,本发明将参照单一的返回的编码点描述,除非另有说明。注意一级识别器也能具有返回任何类型的形状索引的形式,用形状码来训练一级识别器。如熟悉本技术的人员所能理解的,这一技术对于返回离散提议的任何识别器或模式匹配技术工作得一样好。
按照本发明的一个方面及如图3中开头最好地示出的,利用一级识别器44来开始构成上述二级识别机构。通常,分类进程47按照一级识别器44为该手迹返回的任何编码点(或其它形状索引)分类手迹,从而相对于它们的实际编码点分类手迹的方式最终揭示一级识别器44趋向于混淆的手迹。为了达到这一目的,一旦构成了一级识别器44(图2),便将包含各与其实际编码点一起存储的样本手迹的第二训练集合48提供给一级识别器44。利用其训练过的识别器数据46,一级识别器44返回编码点给分类进程47,后者将手迹与实际编码点分类到不同的文件501-50n中。注意如果正在使用其它类型的形状索引,则根据一级识别器44返回的形状索引类似地将手迹分类到各形状索引的文件中。
更具体地,如图5中所示,在步骤500上分类进程47首先为识别机构要支持的各编码点建立独立的文件。在步骤502上选择第二训练集合48中的第一手迹,并在步骤504上将其发送到一级识别器44。在步骤506上,一级识别器44将一个编码点(实际上可能是不正确的)返回给分类进程47,并在步骤508上将其连同从训练集合48中知道的实际编码点一起写入与返回的编码点关联的文件中。例如,如果返回标识“A”的编码点,分类进程47便将引发“A”响应的手迹连同其实际编码点(可能不是“A”)写入“A”文件502中。从图5中显而易见,步骤510-512用下一个手迹重复分类进程47直到以这一方式分类了训练集合48中的所有手迹为止。注意对于编码点以外的形状索引,进程是相同的。
以示例方式,图4示出了一个这种文件50x的内容,其中的两个混淆的手迹具有不同的实际编码点NX与NY。在分类进程中某一时间上,一级识别器44将各不同的手迹(编码点NX与NY)识别为将NX作为其编码点。从而,分类进程47将各手迹及其实际编码点写入NX文件50x。注意,如果一级识别器44不出错,所有文件将只包含与标识该文件的编码点匹配的(手迹,实际编码点)对。然而在提供了适当地大的训练集合时,从未发现具有这种精确度的一级识别器。
一旦将第二训练集合48分类成文件501-50n,二级识别器开发/训练进程52便用文件501-50n来开发二级识别器。如图6中所示,将分类与回归树(CART或CART树)用作二级识别器。CART树为在名称为“分类与回归树”(Classification and RegressionTrees,Breiman、Friedman、Olshen与Stone,Chapman与Hall,(1984),)中描述的二叉判定树,这里通过引用将其全部结合在此。在进程中这一时间上,将为各支持的编码点(或形状索引)开发与训练集合541-54n中的一个CART树。
图7-9一般性地描述如何开发各CART树。首先汇集认为与区分混淆对相关的问题表。这些问题通常是基于手写体笔划的,诸如“手迹中一共有多少笔划?”,“第一笔划的长度多少?”与/或“第三笔划相对于第一笔划的角度多大?”。当前尚无标准问题集合,只有基于熟悉本技术者的经验与观察的问题。注意可将问题修剪到系统已知的手迹中的笔划计数上。如果是显而易见的,问题的次序并不重要。此外,除了构造进程自己的墨水的特征之外,一级识别器可能已提供了某些构造进程能影响的特征信息。
通常,为了确定与排列对于给定的文件哪些问题最好地解决一级识别器的混淆,CART建立进程52将所有问题应用在所有样本上(在各文件501-50n中)。然而,在建立CART之前,通过在步骤700上扫描样本数据来判定给定文件中所有实际编码点是否都相同(并与文件匹配)来执行初步测试。如果是,样本中的数据是纯的,从而二级识别不会改进总体识别。相应地,CART建立进程52对这一样本文件结束。
然而,在文件中存在大量样本数据的更典型的情况中,至少某些手迹会具有并不与一级识别器所确定的编码点(并从而与对应的文件)直接匹配的实际编码点。从而,为了建立CART,在图7的步骤701上,取得表中的第一个问题,在步骤702上(从诸如501等文件之一)取得第一样本手迹,并在步骤704上将问题应用在该样本上而产生一个结果。例如,问题可以是查询第一笔划的水平长度,而对第一样本得出值9(最大X坐标减最小X坐标等于9)。
在步骤706上将得出的值与该样本的实际编码点一起保存,诸如(值,实际编码点),并且在步骤708-710上,进程在选择的文件501中的下一个样本上重复。这时从头至尾,步骤706再一次保存这一下一样本对这一第一问题得出的任何(值,实际编码点)。最终,通过步骤708-710,对照第一问题测试文件中的所有样本,从而所有得出的值及它们的相关编码点在正在为这一问题开发CART树的给定文件中是已知的。
此时,执行图8的步骤,通常找出哪些值沿它们的相关实际编码点的线分开(分裂)文件中的手迹。应指出虽然一般不实际,但是有可能以强制方法测试各问题的每一个可能的值来确定最佳分裂。例如,可为长度问题测试从1到1000的每一个长度,等等,对其它问题测试其它广范围的值。然而,只将图7的步骤得出的实际结果用于这一目的,实质性地加速了图8的分裂测试进程。此外,虽然可应用各唯一的结果作为对各样本的二叉问题来确定分裂,但更好的方法为利用已存在的结果数据来确定最佳分裂。
更具体地,步骤720将为给定问题得到的结果(图7中)分类进(值,实际编码点)的有序范围中。从而,对于长度示例,最短长度可以是40而最长为100。为了测试分裂的质量,在步骤722上,将具有“值等于40”的各编码点移到一个(如左方)子集中,并将具有其它值的所有编码点放置(或留在)另一子集(如右子集)中。编码点的移动是增量地发生的。然后在已移动了所有“40”的值时,在步骤724上按下面描述测定分裂的质量。如能理解的,CART树是二叉的,从而该移动实际上是问文件501中的所有样本问题“第一笔划的水平长度小于或等于40吗?”,即Xmaxs1-Xmins1<=40?各手迹实际上是按照这一问题分类的,将回答是的编码点放在一个(左分支)集中而将回答否的编码点放置在另一(右分支)集中。
按照本发明,在步骤724上,按照某种分裂标准评价分裂的质量。确定分裂质量的较佳方法为用Gini差异指数(Gini diversityindex)测试集合的均匀性。通常Gini差异指数利用在左与右集合的各个中的编码点的量的均匀性(h)使用平方和方法,即,hLeft=[CP1Left/(CP1Left+CP2Left+…CPnleft)]2+[CP2Left/(CP1Left+CP2Left+…CPnleft)]2+…[CPnLeft/(CP1Left+CP2Left+…CPnleft)]2及hRight=[CP1Right/(CP1Right+CP2Right+…CPnRight)]2+[CP2Right/(CP1Right+CP2Right+…CPnRight)]2+…[CPnRight/(CP1Right-CP2Right+…CPnRight)]2,where其中下标“left”与“right”表示左与右集合而CP1,CP2…CPn表示各集合中各编码点值的编码点数目。然后用各集合中的编码点数目加权均匀性结果,从而这一问题(Q1)与值(V1)的最终均匀性公式如下H(Q1,V1)=[(hLeft)(CP1Left+CP2Left)+(hRight)(CP1Right+CP2Right)]/(CP1Left+CP2Left+CP1Right+CP2Right).步骤726相对于任何前面的结果测试分裂的质量(如果有前面的结果的话),如果较好,步骤727保存均匀性结果H(Q1,V1)作为最佳质量分裂。注意步骤727保存到此为止所有问题上的最佳分裂,有可能包含当前的问题在内,从而步骤726相对于来自前面确定的最佳(问题,值)的结果比较各后面的分裂。
步骤728-730导致再一次测试与比较对于下一个值的分裂,这一次使用该范围中的下一个值,诸如41。通过在步骤722上将对应于这一值的编码点增量地移动到左分裂子集中,实际上将样本分割成在左子集中带有具有小于或等于41的值的编码点。注意前面移到左子集中的与40关联的编码点保留在那里,由于它们也小于41。然后在步骤724上,计算下一个均匀性H(Q1,V2),在步骤726上(相对于到此为止最佳的值40)进行比较,如果有改进,便在步骤727上连同其对应的问题标识作为最佳值保存。
一旦以这一方式测试了所有的值,如步骤728所确定的,便确定了这一第一问题的最佳值(即提供最均匀的分裂的值)。随后,选择下一个问题(步骤732-734),而进程利用这一下一问题在文件中的样本上重复。为相对于其它问题与值分裂的比较继续保存最佳(问题,值)对,等等,直到知道了全体最佳单个(问题,值)对为止。
最终,利用了所有问题的所有值来分裂样本及计算其均匀性,及保存了最佳(问题,值)对。此时,执行图9的步骤来建立按照生成编码点的最佳(最均匀)分裂的最佳次序适当地问该最佳的问题的CART树。有重大意义地,进程这样自动地定位各级上的最佳(可利用的)问题/值对。结果,进程经常发现最佳的可利用问题不是原先人们认为这样重要的、但尽管如此仍然提出的问题。注意对于均匀地分裂样本集合这不一定是理想的问题与值的组合,只是可利用的最佳问题与值。
在任何情况下,一旦知道了最佳问题与值,便在步骤742上利用这一最佳问题/值对将样本集合(文件501)分成两个子集。然后,如步骤744所示,进程在这两个子集的每一个上循环重复来找出最均匀地分割各子集的下一个最佳问题与值对。递归地重复进程(即,进程返回到图7的步骤700去最优地分裂两个子集的每一个),分支成更多更多的均匀子集直到到达不再能改进均匀性时为止。如能理解的,在越来越低的级上的递归操作在各分支与级上建立最佳的问题/值对来进一步细分混淆对的差别。在步骤746上,从各级上的这些问题与值的对中建立CART树。
然而,主要因为可利用的样本数据是有限的,CART树会是不完善的,尤其是在较低的级上。此外,CART树可能很大,需要通常在手持式计算设备中不能获得的大量存储单元。从而,在步骤748上将一个新的样本集合应用在CART上来测试其蕴藏的问题中哪些作出正确的判定。在步骤750上从树中去掉(删除)在解决混淆对上确定为低效的问题。这在规模上留下更好管理的CART,同时对识别精度无不利影响。
所有文件501-50n都具有了以上述方式为其开发的CART树之后,系统所支持的各编码点都存在一个CART树。然而某些CART树可能只有与一级识别器输出的编码点相同的一个可能的输出。这种CART树并不改进识别,从而将其丢弃。
类似地,(如果一级识别器是返回编码点的那种),则没有保证特定的CART树将改进一级识别器的识别精度。当CART树是用较少量数据开发时,这特别真实,因为通常训练数据越多,CART在解决混淆上越好。如果特定的CART树并不改进识别的某些阈值量(这可以是甚至非常小的改进),便没有理由保留它,因为CART树消耗存储空间。类似地,即使CART树是极快的,采用CART树的二级识别也会增加总的识别时间,并再一次增加成本。
从而,图10及11-13示出通过丢弃不必要的CART树来优化识别机制的一个进程。首先,在步骤900上,从第三训练集合56(图10)中选择第一手迹。在步骤902上将手迹发送给一级识别器44。在步骤904上,如果一级识别器44返回的编码点与实际的正确编码点相同,便在步骤906上将该CART树(即该文件)的一级识别器匹配计数62递增。
然后在步骤908上,选择对应于从一级识别器44返回的编码点的适当CART树。在步骤920上,将相同的手迹提供给该CART树,借此由CART树作出判定并返回其编码点。在步骤922,如果该CART树52返回的编码点与实际的正确编码点相同,便在步骤924上将这一CART树的CART匹配计数66递增。步骤926-928重复该进程直到测试了第三训练集合56中的所有手迹为止。
最后,图13比较各CART树的一级与CART匹配计数来确定该CART树是否改进识别。更具体地,在步骤940上选择第一个支持的编码点(每一个有一个文件),并将这一CART树的CART匹配计数66与一级识别器匹配计数62进行比较。如果该CART匹配计数小于或等于一级匹配计数,便在步骤944上丢弃该CART树,因为它并不改进识别机构,否则保留这一编码点的CART树。步骤946-948重复这一比较直到已测试过所有支持的编码点为止。注意如果需要,步骤942可以是更复杂的测试,以便丢弃并不改进某一阈值量的识别进程的任何CART树。例如,如果CART匹配计数对一级匹配计数之比并不超过1加上某一小数量,则可将该CART树丢弃。然而,应指出,利用上述优化,CART树(可能有数百个)只在一兆字节的一级识别器上增加大约18千字节,因此从丢弃只是很少地改进识别的CART树中得到的任何存储器节省可能并不值得识别精别精度的降低。
确实,已彻底地测试过本发明的组合一级与二级识别机制,对于某些混淆对具有99.7%的精确率。认为0.3%的差错率是从人也难于辨认的太拙劣地书写的字符中得出的,并且事实上与人的识别差错率相当。注意本发明是高度灵活与可扩展的。例如,如果一级识别器改变,从而改变了混淆对,能以上述方式自动生成与测试新的CART树。类似地,随着设想出另外的问题,可以简单地相对于其它问题试验这些问题,来确定它们是否改进给定分裂的均匀性并从而改进该机制的精确性。
注意,利用返回与编码点不同的形状索引的一级识别器,至少需要某些将形状索引映射到编码点上的最小CART树。然而,虽然这增加了CART存储量,利用形状码来训练一级识别器及分裂用于生成CART树的数据,及随后用实际编码点来训练CART树,得出有限的但更小与更快的一级识别器。由于将一级识别器优化成将手迹数据分裂成形状的类,同时将CART树优化成集中注意在手迹的精微差别上,而再一次获得优越性。
一旦开发了包含CART树的识别机制,便可在手持式个人计算设备等相对地低功能的系统中使用该识别机制。图14-15示出如何用该系统来识别字符。首先,在步骤1100上以已知方式接收来自用户的手迹80(图14),诸如通过笔在触敏屏幕上的输入。然后本发明的识别机制将手迹提交给一级识别器44并从其接收编码点(或形状索引)82(步骤1102)。在步骤1104上,利用编码点82(由查找进程84之类)来确定该编码点是否具有与之关联的CART树。如果否,在步骤1108识别机制将一级识别器返回的编码点82作为返回的编码点88返回。
然而,如果存在着与编码点82关联的CART树,便选择可利用的CART树的集合72中的适当CART树并在步骤1106上将手迹80提交给它。注意本身不是编码点的形状索引码具有与之关联的二级识别器(CART树),即使只是非常小的将形状索引转换成编码点的二级识别器。在步骤1108将选择的CART树返回的编码点返回作为返回的编码点88。识别机制一直重复到用户完成书写为止,如步骤1110检测到的。
虽然对于本发明并非必要,但如果一级识别器返回替代的编码点的表,便能在表中扫描具有关联的CART树的编码点,而二级识别器则为表中的一个或多个编码点操作。二级进程利用来自位于顶部的CART树的结果,即具有最高的概率来重新排序该表。此外,CART树能提供用概率排列的替代品,所有这些都能编排进复合的按概率排列的表中。
此外,能将多个CART树与单个字符关联。例如,能将第一CART树作为用于区别两笔划的“A”形字符的二级进程提供,及第二区分CART树用于区别三或多笔划“A”形字符。此外,可将一级识别器配置成分裂笔划,例如,一级识别器在分析它之前可将单笔划“A”形字符首先分裂成两个笔划。一级与/或二级识别器可类似地利用笔划计数以外的其它特征。
最后,可以理解,本发明可应用于联机及脱机字符识别两者。在联机字符识别中,字符中的点是作为(x,y,时间)形式的坐标接收的,即序列中的点连同下笔与收笔位置是已知的。脱机手迹只是没有特定次序的x-y点。本发明在两种识别中都是有价值的,虽然一级与二级识别器(诸如它们的问题)会相当不同。
从上面的详细描述中能够看出,提供了用于降低手写体识别中的差错率的改进的方法与机制。本方法与机制以高成功率辨别通常混淆的字符,并能利用样本数据加以自动训练。本方法与机制是快速、可靠、节省费用、灵活及可扩展的。
虽然本发明是对各种修正与替换构造敏感的,并在附图中示出一些示例的实施例及在上面已加以详细描述。但是,应理解,并没有将本发明限制在所公开的特定形式上的意图,而是与之相反,意在包括落入本发明的精神与范围内的所有修改、替代构造及等效物。
权利要求
1.一种识别输入到计算机系统中的手迹的方法,包括下述步骤提供用于将手迹转换成编码点的一级识别器;训练多个二级识别器来辨别在提供给一级识别器时生成选择的编码点的手迹,并将一个二级识别器与各选择的编码点关联;接收手迹;将该手迹提供给一级识别器并接收与之对应的编码点;判定该编码点是否对应于具有与之关联的二级识别器的选择的编码点,如果是,将该手迹传递给该二级识别器并从该二级识别器返回一个编码点。
2.权利要求1的方法,其中各该二级识别器为一个CART树。
3.权利要求1的方法,其中训练二级识别器的步骤包括下述步骤提供包括多个手迹与实际编码点的第一训练集合;接收来自该训练集合的手迹;将各接收的手迹提供给一级识别器及从其接收识别出的编码点;将各手迹及其实际编码点组合进多个集合之一中;一级识别器返回用识别出的编码点确定的集合。
4.权利要求3的方法,其中训练二级识别器的步骤还包括下述步骤选择组合成一个选择的集合的集合之一;在选择的集合的手迹上应用多个问题之一;根据该问题的结果将该集合分裂成编码点的两个子集;测定子集的分裂质量;将多个问题中的另一个作用在选择的集合中的手迹上;根据另一问题的结果将该集合分裂成编码点的两个其它子集;测定这两个其它子集的分裂质量;以及比较分裂的质量来确定哪一个问题最好地分裂该子集。
5.权利要求4的方法,其中各问题是至少与一个值组合的,而根据手迹对该值的比较各问题的结果是真或伪。
6.权利要求5的方法,还包括通过将问题应用在包含该手迹的数据上及接收应答该问题的值,而获得各问题的至少一个值的步骤。
7.权利要求4的方法,其中分裂的质量是用子集中的编码点的均匀性确定的。
8.权利要求7的方法,其中编码点的均匀性是用各子集中的编码点的量加权的。
9.权利要求7的方法,其中比较分裂的质量来确定哪一个问题最佳地分裂该子集的步骤包括确定哪一个分裂最均匀的步骤。
10.权利要求4的方法,还包括在按照分裂的质量所组织的CART树中排列多个问题的步骤。
11.权利要求10的方法,还包括下述步骤从另一训练集合提供手迹给该CART树;监视哪些问题在将手迹的实际编码点与问题所确定的编码点的匹配中是低效的;以及从CART树中消除低效的问题。
12.权利要求3的方法,还包括下述步骤确定哪些二级识别器改进一级识别器的识别精度;以及选择对应于改进识别精度的二级识别器的编码点作为选择的编码点。
13.权利要求12的方法,其中确定哪些二级识别器改进一级识别器的识别精度的步骤包括下述步骤将来自另一训练集合的手迹单个地提供给一级识别器与二级识别器;以及对于各手迹,接收来自各识别器的识别出的编码点;将一级识别器识别出的编码点与该手迹的实际编码点比较,如果这两个编码点相等,将与该实际编码点关联的一级匹配计数器递增,将二级识别器识别出的编码点与该手迹的实际编码点比较,如果这两个编码点相等,将与实际编码点关联的二级匹配计数器递增,将各编码点的一级匹配计数器与二级匹配计数器进行比较,以及如果二级匹配计数器小于或等于一级匹配计数器,便丢弃该编码点的二级识别器。
14.一种用于识别输入到计算机系统中的手迹的机构,包括用于将手迹转换成编码点的一级识别器;用于开发与训练多个二级识别器来区别提供给一级识别器时生成选择的编码点的手迹的装置,当提供有在一级识别器上生成的选择的编码点的手迹时,各二级识别器返回一个编码点;用于将二级识别器与各选择的编码点关联的装置;用于接收手迹的装置;用于将手迹提供给一级识别器及接收与之对应的编码点的装置;用于判定该编码点是否对应于具有与之关联的二级识别器的选择的编码点的装置,以及当用于判定的装置指示选择的编码点没有与之关联的二级识别器时,用于返回从一级识别器接收的编码点的装置;以及当用于判定的装置指示选择的编码点具有与之关联的二级识别器时,用于返回从二级识别器接收的编码点的装置,所述装置包括用于将该手迹传递给二级识别器的装置及用于接收来自它的编码点的装置。
15.一种识别输入到计算机系统中的手迹的方法,包括下述步骤提供用于将手迹转换成形状索引的一级识别器;训练多个二级识别器来将手迹转换成编码点,并将二级识别器与形状索引关联;接收手迹;将手迹提供给一级识别器并从其接收形状索引;确定哪一个二级识别器与该形状索引关联;以及将该形状索引与手迹传递给对应于该形状索引的二级识别器及从该二级识别器返回一个编码点。
全文摘要
一种用于识别输入到计算机系统中的手迹的方法与机构。提供了一级识别器(44)用于将手迹转换成编码点,开发与训练诸如二叉CART树等二级识别器(52)来区分在一级识别器上生成某些编码点的手迹。各二级识别器与各选择的编码点关联。在接收到手迹时,将该手迹提供给一级识别器(44),一个对应的编码点。如果该编码点对应于二级识别器之一,便将该手迹传递给该二级识别器,并从该二级识别器返回一个编码点。如果为否,便返回一级识别器所提供的编码点。本发明设置一个自动化进程用于训练CART树及通过丢弃并不改进一级识别器的识别精度的CART树(70)来优化识别机构。
文档编号G06K9/62GK1236458SQ98801107
公开日1999年11月24日 申请日期1998年6月4日 优先权日1997年6月6日
发明者G·N·胡尔伦德尔, J·R·本内特, P·M·哈鲁普特佐克 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1