手写识别的训练与合成的制作方法

文档序号:6570214阅读:134来源:国知局
专利名称:手写识别的训练与合成的制作方法
专利说明手写识别的训练与合成
背景技术
计算环境的个性化已变得越来越流行。除了具有类似功能的大量软件包供用户选用外,用户可以个性化那些软件包中的设置。例如,


(微软视窗)操作系统的用户可以个性化他们的墙纸和声音以及操作系统的其他特征。尽管调节这些特征增强了用户个人体验,但允许用户在计算环境内再造他们自己的手写体可以能是最能将一个用户与他人区别并使其个性化的一种手段。此外,不象某些私人设置,如果用户的电子邮件或其他文档能以个性化手写体来书写,他/她可能会有兴趣分享他/她的手写体。
一般而言,已尝试两类生成或模仿手写体的方法直接手写体捕捉和个人字体设计。直接捕捉收集数字形式的手写体并使用记录的笔划点位置、压力和画笔风格在接收者的计算机上重新构造手写体,或可以简单地将手写体的图象发送给接收者。此方法经常在输入板PC上采用。不幸的是,这要求用户使用数字笔直接在屏幕上书写,使得诸如准备冗长的电子邮件那样需要大量书写的工作可能是不方便且令人厌倦的。
个人字体设计使一组手写体字符归入一系统字体,例如一个真实类型的字体。然而,个人的字体在字符形状不产生手写体应有的变化。此外也无法产生自然的草书手写体,因为在系统字体中的字符仅仅是并排呈现的。
因而,在本领域中存在一个需求,即允许计算机用户容易且有效地训练计算机识别他/她的手写体而不需要那些象是与直接捕捉相关联的时间密集的书写练习。对系统和方法还存在一个需求,就是能够从从手写体样本中捕捉比诸如用个人字体设计系统的单独字符的形状更多的特征。用本发明的一个或多个方面可满足那些和其他需求。


发明内容
本发明的诸方面涉及用于训练计算机识别用户手写体的系统和方法。在一示例中,计算机接收至少一个由用户书写的字符的手写体样本。这些样本可以包括提供作为单词开始字符的字符、提供作为在单词中间的字符、提供作为单词结尾字符的字符。可从样本中提取控制点以表示该字符的形状。在又一示例中,确定字符的垂直和水平对齐。
另一方面涉及用于显示计算机用户的手写体表示的系统和方法。在一示例中,同一字符如上所述的不同变化可根据该字符的特定用途之一而被使用。在另一示例中,方法可以确定在用户输入中接收的至少两个字符是否应被联结,即使这些字符是同一单词或字符串的一部分。在又一示例中,字符被调整,诸如切除字符的一些部分以构成更逼真的改造和合成。在再一示例中,字符在显示前被规格化。在一个这类示例中,规格化调整字符的美学特征。
根据本发明的具体示例,生成精确表示手写体的字符,手写体包括字母形状的变化、字母间自然合理且个性化的连接风格,以及看似有压力感觉的连接部分。
这些和其他优点从随后结合附图的详细描述变得显而易见。本发明及其优点的更完全的理解可从结合附图参考以下描述获得。在所有附图中相似的标号指类似的特征,且附图如下 附图简述

图1示出其中可实现本发明实施例的示例计算机系统。
图2示出一种用于训练计算机识别用户手写体的方法的功能框图。
图3a和3b示出可用于根据本发明的一个实施例接收多个字符样本的示例性用户界面。
图4示出根据本发明的一个实施例对一个字符的控制点的示例性提取。
图5示出在连接到单笔划字符的一多笔划字符之间的示例性连结概率。
图6是显示计算机用户的手写体表示的一种示例性方法的流程图。
图7示出按照本发明的一方面用概率表合成的一个示例性字符集合。
图8提供根据本发明一个实施例的4个示例性字符。
图9示出以一个水平距离彼此连结的示例性字符对。
图10示出按照本发明一个实施例表示加权函数的特征的图形。

具体实施例方式 示例性操作环境 图1是可用于结合实现本发明的方法和系统使用的常规通用数字计算环境的一个示例的功能框图。在图1中,计算机100包括处理单元110、系统存储器120和将包括系统存储器的各种系统组件耦合到处理单元110的系统总线130。系统总线130可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器120包括只读存储器(ROM)140和随机存取存储器(RAM)150。
基本输入/输出系统160(BIOS)包含如在启动时帮助在计算机100中的元件之间传输信息的基本例程,储存在ROM 140中。计算机100也包括用于对硬盘(未示出)进行读写的硬盘驱动器170、用于对可移动磁盘190进行读写的磁盘驱动器180、以及用于对诸如CD ROM或其它光媒质等可移动光盘192进行读写的光盘驱动器191。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别由硬盘驱动器接口192、磁盘驱动器接口193和光盘驱动器接口194连接到系统总线130。驱动器及其关联的计算机可读媒质为个人计算机100提供了计算机可读指令、数据结构、程序模块和其它数据的非易失存储。本领域的技术人员可以理解,在示例操作环境中也可使用可储存可由计算机访问的数据的其它类型的计算机可读媒质,如磁带盒、闪存卡、数字视频盘、贝努利盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等。
众多程序模块可储存在硬盘170、磁盘190、光盘192、ROM 140或RAM150中,包括操作系统195、一个或多个应用程序196、其它程序模块197和程序数据198。用户可通过输入设备,如键盘101和定位设备102向计算机100输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合到系统总线的串行端口接口连接到处理单元110,但也可通过其它接口连接,如并行端口、游戏端口和通用串行总线(USB)。所示的计算机100包括可选的PCMCIA接口103,它可将按照本发明的输入设备的至少一个实施例连结到计算机100。监视器107或其它类型的显示设备也通过如视频适配器108的接口连接到系统总线130。一个辅助显示设备199也可以与计算机100通信。该辅助设备可集成在计算机中(如图所示),可与计算机分开或在计算机外部。该辅助显示199能可选地与辅助处理器200通信,后者可集成在辅助显示器中或位于计算机100之中。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器或打印机。
计算机100可在使用到一个或多个远程计算机,如远程计算机109的逻辑连接的网络化环境中操作。远程计算机109可以是服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括上述涉及计算机100的许多或所有元件,尽管图1中仅示出了存储器存储设备111。图1所描述的逻辑连接包括局域网(LAN)112和广域网(WAN)113。这样的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
当在LAN网络环境中使用时,计算机100通过网络接口或适配器114连接到局域网112。当在WAN网络环境中使用时,个人计算机100通常包括调制解调器115或其它装置,用于通过广域网113,如因特网建立通信。内置或外接的调制解调器115通过串行端口接口106连接系统总线130。在网络环境中,相对个人计算机100画出的程序模块或其部分可存储在远程存储器存储设备中。
可以理解,所示的网络连接是说明性的,可以使用在计算机之间建立通信链路的其它技术。假定存在各种公知协议的任一种,如TCP/IP、以太网、FTP、HTTP、蓝牙、IEEE 802.11x等等,系统可在客户机-服务器配置中操作,以准许用户从基于web的服务器检索网页。可以使用各种常规web浏览器中任一种来显示并操控web页面上的数据。
说明性实施例的描述 图2示出一种训练计算机识别计算机用户的手写体的方法的功能框图。在一个实施例中,计算机可类似于计算机100安排。在步骤205,诸如计算机100的计算机接收由用户书写的至少一个字符的手写样本。手写样本可通过诸如书写用具、热敏表面、压敏表面或这些的组合的任何用户输入设备接收。在另一个实施例中,用户可“选择”一个字符或先前存储在计算机可读介质上的该字符的代表作为一个或多个样本。在又一个实施例中,用户可以通过在表面上移动鼠标、跟踪球、或其他用户输入设备“画出”该字符。
本文中的术语“字符”可指任何字母、数字、图标、或以包括说、写或用于编程计算设备的任何语言的文字数字表示。诚然,可以在计算设备处通过用户接口接收任何形状或设计是在本发明范围内的字符。诸样本包括提供作为多个其他字符中开始字符的至少一个字符的样本,提供作为在多个其他字符中间书写的同一字符的至少一个样本,和提供作为在多个字符的末尾字符书写的同一字符的至少一个样本。
图3a和3b示出可用于接收多个字符样本的一个示例性用户界面。如图所示,可以理解本发明的至少一方面的优点。图3a示出可通过诸如监视器107和/或辅助显示设备199的显示设备向用户显示的用户界面。向用户呈现用户界面302并允许用户输入相应于字母“a”的字符。如图3a所示,用户界面302包括分别具有用户输入310,312和314的用户输入域304,306和308。
提供在输入域304中示出的用户输入310以表示字母“a”在作为多个其他字符的开始字符时该字母的用户书写体。例如,开始字符可用于表示在以草书或以与另一字符相连方式书写时诸如单词“asia”的单词的第一个字母。然而单词的第一字母不是使用“开始”字符的仅有情况。确实,某些人在习惯上将单个词写成两个或多个字符的集合,其中在单词中间的某些字符是不连结的。此外,若用户通常不以草书形式书写,“开始字符”仍可用作一个单词或字符集合的中间或末尾的字符。如图所示,用户输入310示出带有可与下一字符连接的拖尾或“尾”部的“a”。本领域熟练人员认识到,在不同的用户的手写体中任何字符尾部的大小、角度与长度可以改变。
在输入域306中示出的由用户提供的用户输入312表示了在多个其他字符中间书写的字母“a”。例如,用户可以象他/她经常在一个单词中书写的那样书写输入312。如图所示,作为用户输入312提供的字母“a”具有如用户输入310那样的拖尾部分或尾部,但它还具有与该字符中间部分部分横穿的“头部”或引导部分,而这在用户输入310中是用户没有提供的。在一个实施例中,引导部分可用于连接前一字符。本领域普通技术人员将会认识到,引导部分在大小、形状、角度和长度方面可以变化。某些用户可以写出具有完全横穿字母中间并延伸超出字母体的开始的头部或引导部分的字母。
由用户提供在输入域308中示出的用户输入314表示作为多个字符的结尾字符书写的字母“a”。与用户输入310和312不同,用户没有书写出将该字符连结到后续字符的延伸尾部,但的确书写出用于连结在前字符的头部或引导部分。
如在每个输入域中所见,能在这些输入域中可选地提供诸如指导线316a、316b的一条或多条线,以帮助用户书写这些字符。在书写延伸超出这些线的字母,如字母“b”时,这些指导线会是有益的。在一个实施例中,这些指导线帮助用户书写规格化大小的字母,并保持字符的不同部分的恰当大小。见图3b,可通过诸如监视器107和/或辅助显示设备199的显示设备向用户显示的用户界面320被呈现给用户,并允许用户输入对应于字母“b”的字符。如图3b所见,用户界面320包含分别具有用户输入328、330和332的用户输入域322、324和326。
图中容易看出,字母b的竖画延伸超出了上指导线316a,而字母体基本上保留在由上指导线316a和下指导线316b限定的区域中。然而应注意,对于该字母本的用户输入存在一些变化,其中如用户输入330提供的字母体部分地延伸到下指导线之下。类似于对字母“a”提供的用户输入,用户输入328、330、和332分别将字母“b”示出作为多个其他字符中的开始字符、在多个其他字符中间书写的字符、和在多个字符末尾书写的字符。尽管在图3a和3b中示出三个输入域,ds本领域普通技术人员将会轻易认识到可使用任何数目的域。例如在一个实施例中,用户界面320可具有多个输入域,以接收用于将字母“b”与字母表的多个其他字母连接的用户输入。确实,在一个实施例中,向用户呈现多字符的单词。
在步骤210,从字符提取多个控制点,所提取的控制点的数目和控制点的位置可取决于无数因素,包括但不限于最终手写体分析的期望精度,由用户提供的样本,或输入的具体字符。提取所提取的控制点以表示字符的形状。在一个实施例中,字符的形状可基于经过这些控制点的样条内插来合成。例如,图4示出对一个字符控制点的示例性提取。参见该图,用户通过诸如用户界面302的用户输入设备提供诸如代表字母“a”的字符405的一个字符作为单个笔划。(正如本领域普通技术人员将会理解的,“a”的其他变种,如“A”或其他字符需要多个笔划,并将在本说明书的后面更详细地讨论)。
从字符405提取多个控制点410。笔划首先可使用Sklansky算法由折线逼近,该算法在诸如由Sklansky J.和Gonzalez V.在模式识别1980年第12卷327-331页(Pattern Recognition,Vol.12,pp.327-331,1980)的“Fast PolygonalApproximation of Digital Curves(数字曲线的快速多边形逼近)”中有所讨论,该文通过引用全文结合于此。如果折线的相继节点之间距离太大或该折线曲率较高,则可将笔划上的中间点加回到该折线上。查看图4中的示例性实施可以看到,与具有低曲率的区域相比,在高曲率区域中节点密度较高。
在步骤215中,确定该字符相对于如指导线316a、316b之一的基线或相对于其他字符的垂直位置。在一个实施例中,垂直定位的计算可包括确定从字符的底部到一条或多条基线的距离,而在另一实施例中,计算可包括确定从字符的顶部到一条或多条基线的距离。本发明的又一实施例中计算可包括确定(1)从该字符上特定控制点或位置的距离相对于(2)该字符总体高度的比例。如本领域普通技术人员将会轻易理解的,存在许多可以确定字符的垂直定位的方法。
在步骤220,针对至少一个字符而从用户接收的一个或多个样本可以被规格化。在一个实施例中,针对一具体字符的所有样本经受规格化处理。在另一实施例中,规格化处理可以取决于被规格化的字符的类型,例如不同类的字母组可经受不同的规格化处理。在一个这类实施例中,字符可按其形状分类。例如,具体字符可以传统地书写以便整体嵌入一范围或者字符的一段延伸超出一范围。例如,参看字符“b”,该字符的主体基本上在由上指导线316a和下指导线316b限定的范围内。然而,一竖画穿过上指导线316a。这些和其他特征可用于确定字符如何被规格化。
在本发明的一个实施例中,诸如“b”之类的上行字符(ascender)(高出上指导线316b)可以组合在一起。示例性的上行字符可以包括b、d、h、i、k、l和t。本领域普通技术人员将会理解,存在可以包括在此类别内的额外字母数字字符和其他字符。在本发明的一个实施例中,利用分类为上行字符的字符平均高度来规格化该字符样本。然而如下将更详细解释的,可以在另一步骤中承担各个字符的高度变化以进一步增强个性化。
另外可能的分类可包括整个字符基本上书写在由上指导线316a和下指导线316b限定的范围内的那些字符(称之为“中区字符”)。这类中区字符可包括字母a、c、e、m、n、o、r、s、u、v、w和x。然而,基本上位于两指导线之内的任何字符可被分类成中区字符。在本发明的一个实施例中,中区字符的平均高度可用于规格化字符样本。在一个实施例中,将中区字符和上行字符的平均高度应用于初始高度以供规格化。一个这类等式可以是 比例缩放=平均高度i/高度j,Wj=比例缩放*Wj,Hj=比例缩放*Hj, 其中i=1,2;j=a,c,e,m,n,o,r,s,u,v,w,x,b,d,h,i,k,l,t 关于分类,那些具有实质上穿过诸如316b的下指导线的竖画或段的字符(下文中称为“下行字符(descender)”)可以组合在一起。这些下行字符可以包括但不限于g和y。具有至少一竖画或段穿过上下两根指导线的字符(下文中称为“多区字符”)也可以组合在一起。如本领域普通技术人员将会轻易理解的,存在某些字符在由不同用户书写时可按不同分类方法进行分类的情况。例如,字母z可以写成中区字符或下行字符。按一个实施例,计算机可执行指令可以根据用户输入确定字符如何分类。在又一个实施例中,那些字符可以被分组到完全不同的类别中。
虽然某些字符组可通过利用这些字符的平均高度来优化,但是那些形状不是非常确定的诸如中区字符的其他分组可具有使用优化算法优化的字符。根据一个可能的算法,比例缩放因子可以约为1,使得字符的高度和宽度基本相等。在一个这类实施例中,字符可用si优化比例缩放,使得它们的宽度接近于W规格化,而它们的高度彼此几乎相等(需要规格化字母的大小,但按照宽度或高度的规格化不是最优的。因为字母的大小可能不是被此接近,所以引入W规格化。)此方法用于最小化下式 其中siwi和sihi是比例缩放后的宽度和高度,而N是样本字母的数目。最优的s使得 因此满足以下等式 (Λ-hhT)s=W(w1…wN)T,其中并且 (Λ-hhT)的逆为 最优的W规格化应使缩放比例缩放因子尽可能接近1,即它应最小化下式 其中e=(1…1)T并且w=(w1…wN)T。于是最优的W规格化为
用H规格化标记规格化高度。它等于优化比例缩放后字符的平均高度。对每个字符计算优化的W规格化和H规格化。
如果提供一个以上的字符,其中多个字符在字符串中提供,形成一单词,或确定以其他方式连接(无论是由计算机可执行指令或由用户连接),就可以启动可任选步骤225。在步骤225处,一个或多个字符可经受字距调整处理,以确定在两个或多个相继字符的中心轴之间的平均水平距离。在一个实施例中,在带倾斜l的相继字符的中心轴之间的平均距离d假设为L/M,其中L是该单词的同界平行四边形的宽度,而M是该单词中的字母数,其中由于每个多字符可提供平均距离d的估值,于是形成了di的分布。
也可以使用可任选的步骤230,其中在一个字符集以草书格式或以其他方式连接书写以确定连接的倾向。在一个实施例中,步骤230确定用户以草书风格书写的概率。处理过程可以与描述连接一对字母的流畅性的先验连接概率表相结合,以确定特定用户连接两给定字母的概率(对那两个字母的“连接倾向”)。
假设一个单词中的字母数是n。如果用户不带连接地书写它,将有k个笔划(k可以不等于n,因为存在多笔划的字母)。若从用户书写的单词收集到l个笔划,则对该单词的连接倾向计算为
如果


如果


对第i个单词,可以得到piuser。假设存在m个单词,则用户的连接倾向计算为
连接倾向值的应用在本说明书的后面更详细地讨论。
在本发明的选择实施例中,可使用步骤235来确定样本包括在书写时需要多个用户笔划的多笔划字母的字符,并确定它如何连接到其他字符。这特别值得注意。一般而言,对用单笔划书写的字符,用户在笔划开始处连接前一字符而在笔划结束处连接后一字符。然而对于如“f,i,j,t,x,z”等多笔划字符,训练会变得十分复杂,因为不同的用户可具有不同的方式书写此字符并将其与相邻的字符连接。例如如图5所示,存在5种“x”与“a”连接的情况。因此可使用步骤235来确定用户将该具体字符与其他字符连接的方法。
在一个实施例中,图形用户界面向用户显示多笔划字符。UI可以要求用户书写“f,i,j,t,x,z”与“a”的多种组合(如“af”,“fa”,“ia”,“ai”等)以确定这些字母的哪个笔划与其他字符的笔划相连。本领域普通技术人员将会认识到,可选择“a”以外的其他字符,然而申请人发现字符“a”是用于测试的合适候选,因为它通常在一笔完成,因而减少了分析的复杂性,且“a”的笔划具有足够的长度,所以在连接风格检测中的长度测试会是有效的。
在步骤240中可以确定用户在输入手写样本时施加的压力的量。在一实施例中,用户可以在能感知压力的键盘或小键板上书写字符,在那里可以测量每个笔划或每个笔划中的各段的压力。在诸如按照以下讨论的一个或多个实施例合成用户的手写体时可以使用这些测量。
本发明的另外方面涉及到合成和显示计算机用户的手写体表示的计算机实现方法。图6是诸如监视器107和/或辅助显示设备199的显示设备上显示计算机用户的手写体表示的一种示例性方法的流程图。在步骤605,包括多个字符的用户输入通过诸如键盘的用户输入设备被接收。
在步骤610,确定在步骤605的用户输入中接收的至少两个字符是否应被连结。在一个实施例中,确实在计算机可读介质上具体化的计算机可执行指令命令可以确定在作为小写字母表的字符和/或数字字符书写的两个字符之间存在连接。例如在一个这类实施例中,可以利用连接概率表,例如一个针对小写字母数字字符而另一个针对数字字符。这些连接概率表可从某些数据集中估算,或简单地根据经验选定。引擎然后可对如一个单词的字符集合中的相邻字符进行连接状态采样。
在一个实施例中,可通过将用户的连接倾向(如在步骤230计算的)与对特定字符的概率连接表相结合来生成连接表。例如,在一个实施例中,连接两个字符(如第i字符与第j字符)的概率可用以下等式估算 如果(P用户==0||P用户==1) Pi,j=P用户; 否则Pi,j=min(max(Pi,j,αP用户),1) 其中α是P用户的加权值,因为用户通常在样本书写体中写得没有实际书写中潦草。在一个实例中,计算机可读指令将α设为1.25。
本领域普通技术人员将会认识到,上述等式只是确定两个或多个相邻字符是否应连结的一个示例性方法,其他等式可结合上述等式或独立于上述等式使用而不背离本发明的范围。然而在另一个实施例中,倾向可以由用户从“开”或“关”两者取一,且只考虑概率表本身。
图7示出按照本发明一个方面用概率表合成的一个示例性字符集合。参见该图,由用户通过用户输入设备提供一字符集合705。在示例性示例中,该字符集合具有单词的形式,该单词是“hello”。可访问如概率表710的概率表来确定是否连接各字符h-e-l-l-o。对该示例性示例而言,已将用户的连接倾向估算为0.9。此值已被输入至列710b。如前所述,连接倾向的使用是可任选的,并且不一定要并入以供概率表使用。
如表710所见,列710a提供针对每个分组或相邻字符的一行。在示例性的示例中,第一行具有表示单词“hello”的头两个字符的字符“h”和“e”。如列710c所指示,每对相邻字符具有连接概率。此值可通过首先将多个多字符的单词呈现给用户以确定某些字符配在由用户书写时会连接的概率。在一个实施例中,申请人已发现可从用户可接收少至20个的多字符单词来确定概率值,诸如在列710c中呈现的。在又一实施例中,可对用户的手写体进行连续地或例行地监视以确定并更新这些字符的连接概率。
查看第一行中的相邻字符“h”和“e”,存在80%的概率这些字符在用户以此组合书写它们时是连接的(见列710c;列出“0.8”的概率)。列710c的概率值可用于指示在字符“h”和“e”出现的80%的范例中它们是连接的。在又一实施例中,列710c的概率值可结合随机数使用,以确定字符是否连接。在一个实施例中,为整个表生成单个随机数(如示例性表中所示),而在另一实施例中,可以为每个字符组合(行)生成不同的随机数。
在示例性表中,概率值(列710c)与针对该用户的连接倾向(列710b)相乘以提供一生成数(列710d)。在一个实施例中,若该生成数大于随机数,对该特定字符组合作出连接。例如,查看“h”和“e”的第一字符组合(第一行),存在0.9的连接倾向和0.8的概率值。连接倾向乘以概率值提供0.72的生成数。因为生成数大于随机数(0.5),所以“h”连接至“e”。相反,在第二行示出的字符组合(“e”和“l”)具有0.4的概率值,与连结倾向(0.9)相乘得0.36的生成数。因为0.36低于随机数(0.5),所以“e”不连接至“l”。如在概率表710的余下行中所见,对该单词的每个余下相邻字符配对的生成数都大于随机数,藉此使得那些相邻的字符以草书方式连结。
在步骤715,选择针对该单词每个字符或字符集合的样本。所选的样本是存储在计算机可读介质中表示该字符的多个样本中的样本,其中该多个样本包括至少一个该字符作为多个其他字符中开始字符提供的样本,至少一个该字符作为在多个其他字符的中间字符提供的样本,和至少一个该字符作为多个字符中结尾字符提供的样本,其中所选的样本包括从由开头段、结尾段、和中心轴组成的组中选择的至少一个部分。这些样本可以存储在远程或本地的计算机可读介质上。在一个实施例中,样本包括在步骤205接收的那些样本。
使用图7的示例性实例,确定单词“hello”除“e”和“l”以外的所有字符都连接。输出715是根据本发明一个实施例的示意性输出。查看输出715,将选择针对字符“h”的样本。因为它是该单词的第一个字母,所以选择将“h”表示成开始字符而提供的样本。然而,选择表示字符“e”的样本不是那么简单。尽管“e”不是单词“hello”的结尾字符,但是步骤710确定“e”和“l”是不相连的。因而,在本发明的至少一个实施例中,计算机可执行指令确定针对“e”的合适样本是作为多个字符中的结尾字符提供的“e”的样本。
类似地,因为“hello”中的第一个“l”不与前一字符相连,所以计算机可执行指令可以确定合适的样本是作为多个其他字符中的开始字符提供的字符样本。查看输出715,十分明显,第二个“l”显得十分不同。这是因为第二个“l”跟着字符(“e”)且后面跟着另外字符(“o”);因而用于表示第二“l”的样本是作为在多个其他字符的中间字符提供的字符样本。这就提供了输出715的增强的个性化。最后,字符“o”是单词的末尾字符,因而使用表示结尾字符的样本。
在上述步骤引入了用户的手写体中的变化并创建了比现有方法更实际的改造的同时,可选步骤620可用于将几何变化创建到在步骤615中选择的一个或多个字符。众所周知,当用户在不同时间写出字符时,字符的大小、弯曲度、和其他特征方面存在微细变化。步骤620可通过局部随机旋转和在例如字符角上的高度弯曲点处比例缩放一个或多个笔划片段来实现几何变化。例如,字符“w”具有至少三个作为角或具有高曲率的点和至少两个端点,可以对它们应用几何变化。在本发明的一个实施例中,下列等式可用于提供对字符的角点的旋转和/或比例缩放 旋转
比例缩放
其中

发明人已发现选择θ∈[-3°,3°],比例缩放∈
,其中每个被均匀采样,可以提供字符的可接受改造和变化,然而本领域普通技术人员将会认识到,比例缩放和/或旋转也可以按不同参数实现。
众所周知,各个用户在不同字符之间的水平间隔大小是变化的。因此,通过确定一个单词或字符集合的两个或多个字符之间的水平距离,输出将显得更加个性化。在本发明的一个实施例中,执行步骤625以确定在至少两个选定样本中心轴之间的水平距离,其中在两个样本之间的水平距离可以是与在另外两个选定的样本之间的水平距离不同的距离。
在一个实施例中,定位字符中的特定线,例如下列的一条或多条线头线(“h”),左线(“l”),右线(“r”),和尾线(“t”)。如本领域普通技术人员将会认识到的,术语“线”简单地指字符的一段,因而不要求“线”是直的。图8提供的四个示例字符(805、810、815和820)更清楚地示出按照本发明的一个实施例的这些线。如示例的各图所见,头线和尾线正是分别经过笔划的起点和终点的线。在一个实施例中,头线和尾线的检测可以基于角和最大-最小x和y值。左线和右线是在消除字母的头部和尾部之后该字母的左和右边界线,可以认为头部和尾部是连接的部分并可以恰当地切除以便更好连接(见以下步骤630)。
根据一个实施例,从字距调整分布采样一字距调整d,随后可用md标记当前字母和后续字母中心轴之间的水平距离。图9示出以一个水平距离彼此连结的示例性字符对。在一个实施例中,字符按照字距调整以基本水平的排列逐个放置,并且可以调整诸如结尾段和/或头段的段。例如,若Li,t<Li,r,诸如象是字符配对915(“b”与“a”配对)和920(“b”与“d”配对),则不切除尾部;然而若Li,t>Li+1,l,诸如象是配对910(“a”与“d”对配)或Li,t>Li+1,h,诸如配对905(“a”与“a”配对),则第i个字母的尾部可被切除,例如在

的情况下,其中ConCPIndex[1]-=Count(切除片段),这里的ConCPIndex
和ConCPIndex[1]是在采样后可被计算的字符的连结点的索引。在又一个实施例中,可以调整字符头部。在一个实施例中,若Li+1,h>Li+1,l,诸如字符配对910和920所示的,则头部将不被去除,然而若Li+1,h<Li,r,诸如配对915或Li+1,h<Li,t,诸如配对905,则头部可被切除,例如在

的情况下,其中ConCPIndex[1]-=Count(切除片段)并且End If(结束条件)这里ConCPIndex[1]指示当前字符的结尾连接点的索引。
本领域普通技术人员将会认识到,可利用连接段来连结两个或多个字符(步骤630),如通过将一个字符的结尾部分连接到另一字符的头部。在一个实施例中,可利用3阶多项式拟合由尾部、头部和联结尾部结束点和头部起始(或第二点)的线段组成的连结部分。通过使用这一方法,利用三个能量函数分别测量老的和新的连接部分的紧密度、弯曲能量、和连接平滑度。按照一个实施例,可用于最小化总能量的多项式可被用于最终的连接片段。
在本发明的一个实施例中,连接曲线由下式参数化 则 它测量老的和新的连接的紧密度, 它测量弯曲能量, 它测量连接平滑度。
在一个实施例中,试图最小化下式 (0) 其中若k=0或i=3,则E31=0,Ei2(k)=0,且若k<2或l<2,则Ei3(k,l)=0,服从于 , (1) 通过使用关系式(1)可以移除(0)式中的P0,…,P3 P0=OS,P1=O′S, 其中OS,O′S,OE,O′E分别是老连接曲线的起始点、终止点、和它们的切线向量,且作出P4,…,PP的函数E,然后计算 , (j=4,…,P) 令基数样条为且刚性参数曲线是为方便起见,假设已经向连结前一字母结尾点和后一字母起始点的线段添加了足够数量的控制点,使得样条内插曲线充分接近该连结线段。
3阶基数样条内插公式为 则 在后面我们仍然使用s和Δs标记它们经比例缩放的版本。然而s仍然是不准确的曲线长度。
存在因为没有考虑在连结结尾和起始点的线段上的控制点。
为了确保在L1和L2处的平滑性,应该在L1和L2附近具有峰值(如图10a所示)。直观上L应满足或令ξ3(s)是满足下列条件的分段多项式 ξ3(0)=a,ξ3(1)=a,(2) ξ3(L1)=b,ξ3(L)=c,ξ3(L2)=b, (3) ξ′3(L1)=0,ξ′3(L)=0,ξ′3(L2)=0, 则 其中 这给出系数ξ3,i,m。
ξ1(s)看上去基本上类似于图10b所示曲线图。令ξ1(s)为满足下列条件的分段多项式 ξ1(0)=e,ξ1(L)=f,ξ1(1)=e, (4) ξ′1(0)=0,ξ′1(L)=0,ξ′1(1)=0, 则 其中 这给出系数ξ1,i,m。
在选择的实施例中,可以向连接部分分配笔压力。一般而言,在正常书写情况下,在连接部分的笔压力小于在字符主体中的压力,且压力在整个连接过程中变化。可启动步骤635以分配这种笔压力。除了在连接部分的某些点处减少压力外还可以在其他点处增加压力。确实,可以向字符和/或连接段的任何部分分配笔压力值。示出在连接部分的笔压力变化能很大地改善合成手写体的视觉质量。如下将描述向连接部分分配笔压力的方法。
假设在连接片段(开头和结尾部分)上存在有m个点和它们的压力值,且在生成最终连接曲线之后在新的连接片段上有n个点。因此对于该最终连接曲线上的每个点可用等式计算压力值,其中k是i/n*m的整数部分,i=1,...,n。该步骤可用小宽度描绘低压力部分而用大的宽度描绘高压力。
在本发明的又一实施例中,用户可以在其中手写输出诸如本段以多线方式显示的计算环境中利用本发明的各个方面。因此,可执行步骤640以选择合适的行间隔。在大多数人的手写体中,第二行的顶部与第一行的底部交会,所以一个实施例可如下地确定间距 d=H大写字母+H下行字母-H中区字母+Δh 其中H大写字母、H下行字母和H中区字母分别是所有大写字母、所有下行字母、和中区字符的平均高度,且Δh是预定义的值。在一个实施例中,申请人已确定值3为可接受的Δh。
已关于示例性实施例描述了本发明。本领域普通技术人员通过审阅本公开将会发现落入所附权利要求书的范围和精神中的许多其他实施例、修改和变化。例如本领域普通技术人员将会认识到,可执行额外的或更少的步骤来显示或关联本发明的用户小贴图(user tiles)。此外,虽然示例性实施例说明了在PC环境中用户小贴图的使用,然而本发明可配置用于诸如



的个人游戏系统,诸如



等的基于蜂窝电话应用的手持式系统。在又一个实施例中,本发明可配置用于并入或独立于基于蜂窝电话应用的基于Web的应用。
权利要求
1.一种训练计算机(100)以识别计算机用户的手写体的计算机实现方法,包括下列步骤
(a)接收由所述用户书写的至少一个字符(405)的手写样本,所述样本包括至少一个作为多个其他字符的开始字符提供的字符(405)的样本、至少一个在多个其他字符中间提供的字符(405)的样本、和至少一个作为多个字符的结尾字符提供的字母(405)的样本;
(b)从所述诸样本提取多个控制点(410),其中所述控制点表示所述字符(405)的形状;
(c)确定所述字符(405)相对于基线(316)的垂直位置包括确定所述字符(405)底部到基线(316)的距离的步骤;以及
(d)规格化至少一个字符(405)的至少一个样本。
2.如权利要求1所述的计算机实现方法,其特征在于,所述至少一个字符(405)是以单词型布置排列的多个字符,所述方法还包括以下步骤
(e)确定在以单词型布置排列的至少两个字符的中心轴之间的平均水平距离。
3.如权利要求1所述的计算机实现方法,其特征在于,所述至少一个字符(405)是以单词型布置排列的多个字符,所述方法还包括以下步骤
(e)确定在单词型布置中至少两个相继字符之间的连接倾向。
4.如权利要求3所述的计算机实现方法,其特征在于所述连接倾向根据计算。
5.如权利要求1所述的计算机实现方法,其特征在于,还包括以下步骤
(e)确定所述样本包括在书写时需要多个用户笔划的多笔划字母的一个字符;
(f)呈现显示出步骤(e)的多笔划字符连同需要单个用户笔划的不同字符的图形用户界面(302),其中所述图形用户界面(302)被呈现给用户以指示所述用户应该以将所述单笔划字符连接到所述多笔划字母的手写体样本的形式提供一输入;
(g)以手写体样本的形式接收来自所述用户的输入;以及
(h)确定步骤(e)的所述多笔划字母如何连接到其他字母。
6.如权利要求1所述的计算机实现方法,其特征在于,还包括以下步骤
(e)在规格化之前将至少一个字符归类到从由上行字符、下行字符、中区字符、多区字符及其等价物组成的组中选出的一个组。
7.如权利要求1所述的计算机实现方法,其特征在于,还包括以下步骤
(e)确定用户在步骤(a)中输入所述的手写体样本时施加的压力的大小。
8.如权利要求1所述的计算机实现方法,其特征在于,所述字符(405)是字母数字字符。
9.如权利要求8所述的计算机实现方法,其特征在于,所述字符(405)是以小写格式提供的。
10.如权利要求1所述的计算机实现方法,其特征在于,步骤(c)包括确定(1)从所述字符的底部到基线(316)的距离相对于(2)所述字符的整体高度的比例。
11.一种在显示设备上显示计算机用户的手写体的表示的计算机实现方法,包括以下步骤
(a)通过用户输入设备(101)接收包括多个字符的用户输入;
(b)确定在所述用户输入中接收的至少两个字符是否应被联结;
(c)针对每个字符(405),从存储在计算机可读介质(120)上表示所述字符(405)的多个样本中选择一个样本,其中所述多个样本包括至少一个作为多个其他字符中的开始字符提供的所述字符(405)的样本,至少一个在多个其他字符中间提供的所述字符(405)的样本,以及至少一个作为多个字符中的结尾字符提供的所述字母(405)的样本,其中所选择的样本包括从由开头段、结尾段和中心轴组成的组中选出的至少一个段;
(d)确定在至少两个所述样本的中心轴之间的水平距离,其中在一个样本之间的水平距离可以是与另一个样本之间的水平距离不同的距离;
(e)针对在步骤(b)中确定连接的至少两个字符,调节至少一个字符的结尾段的至少一部分和至少一个字符的开头段的至少一部分;
(f)连结步骤(e)的所述至少两个字符;以及
(g)在显示设备上显示所述至少两个字符,所述至少两个字符是在步骤(a)以所述用户手写体的形式接收的字符的表示。
12.如权利要求11所述的计算机实现方法,其特征在于,步骤(f)包括使用连结段将第一字符的所述结尾段连接至第二字符的所述开头段。
13.如权利要求12所述的计算机实现方法,其特征在于,所述连接段按照考虑老的与所述新的连接部分的紧密性、所述弯曲能量、和所述连接平滑性的3阶多项式形成。
14.如权利要求13所述的计算机实现方法,其特征在于,所述连接曲线按t∈
参数化。
15.如权利要求11所述的计算机实现方法,其特征在于,还包括以下步骤
(h)针对在(c)中选择的所述字符,应用至少一个所述样本的几何变化,其中所述几何变化包括从由所述样本的至少一部分的比例缩放和旋转组成的组中选出的过程。
16.如权利要求11的计算机实施方法,其特征在于还包括步骤
(h)计算施加到字符(405)的一分段的至少一部分的压力值。
17.如权利要求16所述的计算机实现方法,其特征在于,所述压力值用等式来计算,其中k是i/n*m的整数部分,i=1,...,n。
18.如权利要求11所述的计算机实现方法,其特征在于,用户手写体的所述表示在多行上显示,还包括以下步骤
(h)用等式d=H大写字母+H下行字母-H中区字母+Δh确定在手写体的各行之间的行间距,其中H大写字母、H下行字母和H中区字母分别是所有大写字母、所有下行字母、和中区字母的平均高度,而Δh是预定义的值。
19.在具有图形用户界面(302)的包括显示设备和用户接口输入设备(101)的计算机系统中,一种配置计算机(100)识别用户手写体的方法包括以下步骤
(a)在所述显示设备上显示至少一个输入域,用于接收手写样本字符形式的用户输入,其中所述手写样本字符包括至少一个作为多个其他字符中开始字符提供的字符(405)的样本、至少一个作为多个其他字符的中间字符提供的字符(405)的样本、和至少一个作为多个字符中的结尾字符提供的字母(405)的样本;
(b)接收指示所述用户接口输入设备(101)提供包括从由开头段、结尾段和中心轴组成的组中选出的至少一段的至少一个样本字符(405)的输入信号;
(c)基于所述信号,将所述接收的样本字符(405)分配为针对从包括下列的组中选择的子类别的代表性字符多个其他字符中的开始字符、作为多个其他字符中的中间字符提供的字符、和多个字符中的结尾字符,其中所述选择的样本包括从由开头段、结尾段和中心轴组成的组中选出的至少一段;
(d)规格化所述代表性字符;以及
(e)在计算机可读介质(120)上存储所述分配的经规格化的字符。
20.如权利要求19所述的方法,其特征在于,所述系统还包括第二用户接口输入设备(101),所述方法还包括以下步骤
(f)接收指示所述第二用户接口输入设备(101)提供至少两个字符的输入信号;
(g)确定是否联结步骤(e)接收的所述至少两个字符;
(h)从存储在所述计算机可读介质(120)上的多个代表性字符中选择一个代表性字符以表示在步骤(f)中接收的每个所述字符,其中所述多个字符包括至少一个作为多个其他字符中的开始字符提供的所述字符的样本、至少一个在多个其他字符中间提供的所述字符的样本、和至少一个作为多个字符中的结尾字符提供的字母(405)的样本;
(i)在至少一个所选字符上执行几何变化;以及
(j)在显示设备上显示所述至少两个字符,所述至少两个字符是在步骤(f)中接收的所述字符的表示,其中所述字符以所述用户手写体的形式显示。
全文摘要
提供用于将文本转换成自然人手写体的方法与系统。一个方面涉及训练计算机以识别用户的手写体风格。在一个实施例中,计算机接收由用户书写的至少一个字符的手写样本,诸如作为在多个其他字符中开始、中间、或结尾字符提供的字符。另外的实施例考虑到手写体的增强的个性化。另一方面涉及用于显示计算机用户的手写体表示的系统和方法。在一个实施例中,手写体包括字母的变化形状、字母之间的个性化连接风格以及看上去压力敏感的连接部分。在另一个实施例中,字符被调整,诸如切除字符的一些部分以建立手写体的更现实的改造和合成。
文档编号G06K9/18GK101351811SQ200680049535
公开日2009年1月21日 申请日期2006年12月21日 优先权日2005年12月29日
发明者Z·林, L·万, C-H·胡, J·王 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1