表示和识别手写的装置和方法,及其基本表的制作方法

文档序号:6412540阅读:175来源:国知局
专利名称:表示和识别手写的装置和方法,及其基本表的制作方法
技术领域
本发明是关于手写识别和手写表示,例如手写汉字的使用。
长期存在着对于基于书写语言例如中文,日文,朝鲜文等语言的象形文字的自动识别的方法的需要。
在汉语中存在着几千个字符。例如,这里存在着在中国使用的GB编码标准支持的接近7000个汉字,和在台湾和香港使用的大5编码标准支持的大约13000个汉字。中文的一些词在其中具有一个字符,而绝大部分的词具有两个或者多个字符。词中的字符的平均数约为2.5。大量的字符数使得设计汉字手写识别系统很困难,先前的研究已经考虑把手写汉字分为子结构。这些子结构构成了手写汉字的基本表,且所有手写汉字能使用这个基本表表示。汉字子结构的一种熟知的选取是中文字典中使用的一组字根。当它用于汉字手写识别时,字根被限制使用作为子结构,这是由于它们相对较大的数目(这存在着500和600之间的字根),和从手写输入中机器提取字根的困难。类似的问题也存在于其它语言的书写识别中。
手写汉字输入的字符识别的通常使用的词形变化表是为感兴趣的每一个字符存储一个或者多个模板和使用最邻近的分类器去发现手写输入的一致性、最接近的分类器是发现最接近或最匹配的模板和报导该模板的特性为手写输入的特性。由于汉语有几千个字符,该词形变化表需要相对大的存储量去存储所有字符的模板。
这就需要带有手写识别的手写语言的较好的基本表(alphabet),和改进的手写识别方法。


图1是依本发明的优选实施例的为得出基本表的训练过程的流程图。
图2示出了经历预处理步骤的笔输入。
图3和4是将笔划分组为子结构的实例。
图5给出了示出图2中提取笔划子结构的例子的特定步骤。
图6和7是依照本发明的优选的实施例并且每个符号分别带有一个和两个笔划的基本表的诸符号的示例。
图8的流程图示出了手写表示的方法。
图9示出了经历图8的处理步骤的手写字符。
图10是手写识别装置的框图。
图11是依照本发明的优选的实施例使用图1处理推得到的基本表的手写识别处理的流程图。
图12示出了经历图11的对准步骤的手写字符。
现以实例的方式描述为手写识别提供子笔划基本表的优选的方法。该方法包括收集笔输入,分段笔输入为笔划和笔划子结构,建立基本表的大小和分簇诸笔划和笔划子结构为第一笔划集和至少第二笔划子结构集,在集中元素的总数不大于基本表的大小,该方法最好也包括其它步骤例如在一簇中平均诸样品,产生簇中心和依照定义诸簇中心的参数存储簇中心。
通过上述的描述,一新的基本表集通过使用真实汉字或其它手写数据的训练步骤自动地推得到来。该基本表集对于表示和存储手写汉字是有用的。
当写汉字时,并不期望用户使用新的人为的基本表。这新的基本表方面对照着熟知的英语例如Graffiti(TM)的人为字母表。例如通过字符识别系统以以后使用的紧凑形式使用基本表去存储手写输入。
提供了表示手写的方法,包括接收笔输入;分段输入为笔划;分组笔划为笔划子结构;依照预定笔划的子结构的集(基本表)量化笔划的子结构。
同样,提供的手写识别方法包括接收笔的输入;分段输入为诸笔划;分组诸笔划为诸输入笔划子结构;计算输入笔划子结构和笔划的预定集的诸成员和原始笔划子结构之间的距离测量。原始笔划子结构是人为的或没有意义的一组笔划。
下面进一步描述手写识别方法的细节,手写识别的新方法具有在速度,存储器要求和给定处理能力的性能(识别精度)和存储器大小方面均极大超出现有的手写识别的方法的优点。它因此是极适合用户的产品。
进而,手写识别方法独立于使用的实际的基本表,所选取的基本表可以为许多汉语写字者,区域的写字者,甚至单个的写字者最佳化,或者基本表能为日文手写识别,或朝鲜文手写识别,甚至英文或者其它表示几乎基于相同原理的手写识别而产生。
首先描述得到手写汉字的基本表的过程,参看图1,这里示出了得到手写汉字基本表的训练过程。
使用数字化板10和笔11,(这里不过是笔尖)收集手写输入,来自数字化仪10的x和y坐标以现有技术熟知的方式提供给微处理器。在微处理器中来自(图1没有示出)数字化仪的输入发送给预处理模块12。预处理器将手写输入分为一系列“笔划”。分段模块13然后对一系列笔划进行分段且分组模块14使用预定的鉴别规则将笔划分为称为笔划子结构的较小的单元。手写输入为汉语中感兴趣的所有字符从大量的写字者中收集,笔划子结构存储在能是任何形式的适当的存储器的存储装置15中,在训练步18中,使用存储的笔划子结构得到基本表19。基本表的大小是事先确定的,使用公知的分簇技术产生所需大小的基本表。
用来得到手写汉字的基本表的过程细节将描述如下,参看图1,预处理模块12使用分段线段来近似输入而将手写输入分为一系列笔划。这里的笔划被定义为直线段。获得手写输入的分段线段近似使用的提取方法在此并不相关。对于进一步的细节,可以参考由Parthasarathy等人在1995年6月5日的未决专利申请08/463,366,这在此一并做为参考。预处理的主要步骤是(a)使用滤波器平滑输入以去掉抖动;(b)平滑的输入被定标以适合标准的尺寸框;(c)选取连续的笔落下的“墨水”段的开始点和结束点;(d)局部角度变化是局部最大值和超出了设定阀值的诸点也被选取(这一点实质上选取手写输入的所有显著的弯曲);在上述步(c)和(d)选取的接连的点之间的直线被画出。这顺序的诸直线线段是由处理器产生的笔划。
图2示出了预处理的步骤,该图的(a)部分示出了手写汉字。该图的(b)部分的填充圈示出了连续的笔落下的墨水段的开始点和结束点,而图2的(c)的填充方块示出了局部角度变化是局部最大值和超出了阀值的诸点。部分(d)示出了预处理的结果,它是一序列连接图(b)和(c)部分示出的点的6个直线段。术语“笔划”在这里被使用来指直线段。注意,在图2(d)中标有5的笔划是使用点划线。已经使用的点划线突出这样的事实,在处理过程中笔划5是人为引入的。图2(d)的笔划5反映了笔的运动,和并不对应着原始笔划输入的任何实际的墨迹。在处理后,在真实诸笔划(即那些真实对应手写输入的笔划)和人为笔划(即那些在预处理时人为引入的笔划)之间并没有区分。通过处理真实的笔划和人为的笔划为等同,书写的草写形式能以与书写的印刷形式相同的方式加以处理。图2所示的字符能够等同地以单一墨水段而不在点5和6之间抬笔而写出。在预处理后产生的最后一笔划集是相同的,不管字符是手写的还是被印刷的(即具有抬笔段)。
预处理模块或步骤12分手写输入为一系列笔划,这里一笔划是简单直线段。在分段模块或步骤13,诸笔划被分别分为组,使用的简单规则如下。
开始,在基本表内任何符号能具有的标为NLS-MAX的最大线段数必须被确定,在基本表中的任何符号本身是一系列直线段。某特别选取的NLS-MAX规定,在基本表的诸符号的线段数的范围在1至NLS-MAX之间。NLS-MAX的选取是基于下面的考虑。如果NLS-MAX大,用来表示任何手写输入需要的基本表的符号数将是小的,这是非常希望的。然而,NLS-MAX的大值使用基本表的符号在表示手写输入时将产生更多的近似错误。注意,使用基本表符号表示手写输入仅是手写输入的近似。已经发现,在2和4之间的NLX-MAX的值是满意的。示于讨论的简洁和容易起见,下述的解释将使用NLS-MAX=2的实例。
图3示出了分组笔划为笔划子结构的处理,在图3中,假设,手写输入通过分段模块13已经被预处理为6个笔划40-45。在这种情况下,每两个接连笔划(当NLS-MAX不是2时的每个NLS-MAX接连笔划)在分组模块14中被分组在一块为笔划子结构,如,笔划40和41被分组为笔划子结构46。因此,笔划40和41被分组为笔划子结构46,笔划42和43被分组为笔划子结构47,笔划44和45被分组为笔划子结构48,替换的分组49和50以虚线示出并在下面讨论。
通过描述的操作,最后的笔划子结构能少于两个笔划。在图4中,示出了手写输入被预处理为7个笔划的情况,在这种情况下,4个笔划子结构被提取,最后一个笔划子结构70内仅具有一个笔划(笔划66)。
在图5中示出了从手写输入中提取笔划子结构的更特定的实例。在图5中的手写输入被预处理为6个笔划。这6个笔划进而分段为3个笔划子结构。
在已经描述了预处理的步骤后,更详细地描述训练处理18。在汉语字符中的感兴趣的所有字符的手写输入是从大量的书写者中收集的且每一个字符样品的笔划的子结构被提取并被存储在存储装置15内。这些存储的笔划子结构然后被用来得到表示手写汉字输入的基本表19。
得到基本表的训练处理的第一步是确定基本表的大小。基本表的大小就是基本表中的不同符号的符号数。已经发现基本表的大小为256是方便和有效的,单个字节(8位)能被用来表示基本表中的任何符号。然而,在理论上可以使用任何大小的基本表。
通过对从实际手写输入提取的存储的笔划子结构进行分簇可以获得基本表内的符号。在John Wiley & Son,1973的“模式分类和场景分析”中的由R.O.Duda,P.E.Hart描述的K装置分簇技术是特别适用的,但也能使用其它的分簇技术以产生类似的结果。
为了使用K装置分簇技术,笔划的子结构必须以适当的样式参数化。笔划子结构是一系列笔划,这里笔划是直线段,每个直线段使用两个量加以表示依照某种参照的长度和角度。这样,使用一系列长度和角度对表示笔划的子结构。注意,仅使用长度和角度表示直线,笔划子结构的转换的描述是不变的(即,独立于字符内的笔划子结构的位置)。具有n个笔划的笔划子结构可以用2n维矢量[I1,θ1;I2,θ2;…;Inθn]表示,这里Ii和qi分别是笔划子结构的第I线段的长度和角度。
当NLS-MAX是2时,在基本表内的所有符号具有一个笔划或者二个笔划。在进行训练处理时,存储的笔划子结构被分为具有一个笔划的笔划子结构和具有两个笔划的笔划子结构,然后对这两组分别执行分簇。这样,K装置分簇对仅有一个笔划的存储的笔划子结构进行以给出具有一个笔划的基本表的诸符号,类似地,具有两笔划的存储笔划子结构产生具有两个笔划的基本表的诸符号。
不需要对一般K装置分簇算法做出修改。最初,所有的样品被随机地指定给诸簇,通过对一簇的所有样品平均发现每一簇的平均。在分簇处理的每一阶段或周期,所有样品被顺序地测试以确定是否它们需要被重新指定给一新簇。通过计算样品和每一组的中心的距离并选取对样品有最小距离的簇中心完成样品的再指定。具有特征矢量[L1,θ1;L2,θ2;…;In,θn]的样品和具有特征矢量[L1c,θ1c;I2cθ2c;…;Inc,θnc]的簇中心之间的距离为定义如下的加权的曼哈顿距离。d=Σi=1nwl|lic-li|+wθ|θic-θi|]]>(等式1)这里W1和Wθ分别是笔划长度和笔划角度的加权值。从字符识别的观点看,当与笔划长度比较时,笔划角度是被使用的更可靠的特征。W1的值=1,Wθ=4是适当的。在阶段结束时(即所有的样品已经被测试和只要可能就重新指定给新的诸簇),通过平均簇内的所有样品计算新簇的中心,新分簇阶段又开始了。当在整个阶段中重新指定给诸新簇的样品数为0时,分组结束。
图6和7示出了使用讨论的算法得到的基本表的样品。基本表的32个符号的头16个仅具有如图6所示的一笔划。在基本表内的32个符号仅具有一个笔划。在图6中,笔划的开始使用小圆圈强调,和这就清楚地表示了写的笔划的方向。图7示出了具有两个笔划的基本表的224个符号的头16个。图6和7示出的诸符号的顺序是随机的。这意指,在图6的符号(A1)和图6示出的其它任一符号同样重要。
用来得到基本表的手写汉字数据按如下获得。首先,6763个简化汉字和13052个传统汉字的手写样品从大量写书者处收集来。对于每一个字符,统计分析被执行以提取捕获书写该字符的变化的样品的小的子集,书写风格的变化包括了形状变化和笔划顺序的变化。使用被收集的手写汉字字符的上述的子集可以得到表示手写汉字字符的基本表。指定为NLS-MAX的在基本表内任何符号能具有的线段的最大数被设置为2。这样,在“基本表”内的所有的符号具有一个或者两个笔划。这里的笔划是指直线段。带有一个笔划的在基本表内的符号的数目被设置为32,带有两个笔划的在基本表内的符号的数目被设置为224。在基本表内的总的符号数为256,使用单一字节表示基本表内的任一符号。
应该理解的是,基本表中使用的实际符号并不重要。不同的样品的分析将给出不同的基本表。由于该理由,所有的256个符号并不示出,图6和7仅示出了代表性的样品。
表1示出了图6中所有符号的真实笔划的参数,即笔划长度和笔划角度。
表1单笔划的符号的笔划参数
在处理过程中,手写输入被定标以适合尺寸为180×180的方框。该定标确保画出最长的直线,即方框的对角线长度小于255。示出的角度为0和255之间的数目(一致量化),这里0指0度和256指360度。表2示出了图7示出的基本表的符号的参数。
表2具有两笔划的基本表的符号
长度和角度的量化是均匀分布的,然而该需要并不是实际情况。特别是在汉字中,大部分笔划是从上到下或从一侧到另一侧,在这些方向上提供角度的较大分辨率和在对角方向上提供较小的分辨率是大有好处的。
图8示出了依照得到的基本表表示手写汉字字符的步骤的框图。使用得到的基本表表示任何手写汉字字符的处理共享需要得到基本表本身所用的许多步骤。另外,在图8所示的量化步75,已经被分段的每个笔划的子结构和基本表19的所有成员(符号)相比较,选取出最接近笔划子结构的成员(符号)。这样,在每一个笔划子结构已经被量化为基本表的最接近成员之后,手写输入在量化器的输入端76表示为一串符号,这些就是得到的基本表的诸成员。
举例说明,图9最上边的手写输入在预处理以后被分为7个直线段或笔划。在分段步骤13内,每两个邻接的笔划被分组在一块成为分离的诸笔划子结构。由于这里具有7个笔划,分段步骤给出4个笔划子结构S1,S2,S3和S4。笔划子结构S1,S2和S3每个具有两个笔划。笔划子结构S4仅具有一个笔划。在量化步骤75内,用基本表的一个符号近似每个笔划子结构。该近似是基于上述等式1给出的距离量度。分别使用基本表的符号A152,A223,A48和A27近似笔划子结构S1,S2,S3和S4。这样,在图9的上部示出的手写输入能用串{A152,A223,A48,A27}加以表示。由于在基本表内仅有256个符号,需要单个字节编码得到的基本表的每一个符号且图9示出的手写输入能仅用4个字节表示。在图9的底部,把符号A152,A223,A48和A27连接在一起和画出来以重构手写输入的诸笔划。从图中所见,重构的笔划相当好地近似手写输入的原始的笔划。
这样,一旦基本表19已经从表示手写汉字字符中得到,任何手写汉字输入通过使用基本表的符号以紧凑的方式在输出端76加以表示。该输出能被用来产生如下所述的存储的模板。
注意,该基本表仅被用来表示手写汉字字符(例如在计算机存储器内的存储)而在写汉字字符时并不使用。用户能以通常的方式连续地写手写汉字字符,而无需知道用来表示字符的作为基础的基本表。
现参看图10描述手写识别的装置。该装置包括数字化仪10,微处理器80,显示器81,程序存储器82,随机存取存储器83,基本表存储器84和模板存储器85。
基本表存储器84存储256(或其它数目)个符号的符号数86和表1和2示出的相应的角度和长度数据87。
模板存储器85存储大量的预定字符的模板。通过统计分析大量手写字符样品可以获得感兴趣的每个字符的诸模板。为每个字符存储几个模板以考虑书写的变化。典型的存储器85存储表示13,052不同汉字字符的50,000个模板。诸模板已经依照预定的基本表被量化且每一个在列89内具有模板数,并且由阵列90内的一系列符号数加以表示(典型的每个模板具有1到8个符号)。这是存储这样大量模板的非常紧凑的方式。
图11示出了依照得到的基本表在识别手写汉字字符时由微机80执行的诸步骤的框图。
手写输入在数字化仪10被收集,并且严格地按照前述的处理在步骤12,13和14中被预处理和分段为笔划子结构,分组步14的较小修改将描述如下,手写识别跟随着分组步14并且由预计算步102开始。
在预计算步102中,笔划子结构和基本表符号之间的距离被计算。使用与上述等式1给出的一个的类似的量度计算基本表的256个符号的每一个和每一个输入笔划子结构之间的距离,并存储在RAM83的表内。
在预计算步之后执行对准步103。在该步中,在手写输入的笔划的子结构和表示一模板的串内的基本表符号之间发现对应或对准。对准是必需的,这是因为在手写输入的笔划结构的数目和表示一模板的串内的符号数可以是不相等的,对准的计算上花费少的技术是线性对准。
图12示出了线性对准的实例,其中手写输入被拆成三个笔划子结构S1,S2和S3,并和其串表示为{A152,A223,A48,A27}的模板加以比较,该模板在其串表示中具有4个符号,而输入仅有3个笔划子结构。对准的目的是为在手写输入的每一笔划子结构发现在模板的串表示中相对应的符号。如果笔划的子结构沿着矩阵200的上边加以表示,而模板的串表示的符号沿着矩阵的垂直侧呈现,那么矩阵的对角线给出了需要的线性对准。在图12中有阴影的方框示出了线性对准。这样,符号A152和笔划子结构S1对准,符号A223和笔划子结构S1对准,符号A48和笔划子结构S2对准,和最后,符号A27和笔划子结构S3对准。
在图11的对准步103之后,在步104执行粗略距离计算以选取候选模板的“最好集”,例如,从模板存储器85中选出100候选模板。这在快速匹配步中是有效的。
图11的分组步14是从图1和8内的分组步14略加修改得出的,笔划子结构的比较窗包括在感兴趣的一笔划子结构的前面包括至少一笔划(和最好是两笔划)和一笔划(最好是两笔划)跟在感兴趣的笔划后面。为在窗口内的笔划的子结构进行距离计算。这由图3的分组49和50示出,它们分别是在子结构47后面和之前一笔划的分组的实例,在步104将使用这些分组以选取最好的模板候选表。
在快速匹配步内,(非量化的)手写输入和每个存储的模板加以比较并计算粗略距离。快速匹配的目的是产生类似字符特性的小表,这匹配手写输入而无需做大量的计算。例如,在含有13052字符的通常汉字字符集的情况下,快速匹配模式能够产生100字符的表。
使用在笔划子结构和在步102产生的(存储在RAM83中的)表的基本符号之间的预计算的距离在步104中计算粗略的距离和通过粗略距离的计算以为存储在存储器85内的字符模板集选取候选字符的“最佳集”,参看图12,快速匹配(fastmatching)距离是dfastmatch=dT(S1,A152)+dT(S1,A223)+dT(S2,A48)+dT(S3,A27)(等式2)在上述等式中,dT(Si,Aj)是笔划子结构Si和符号Aj之间的距离。注意,对于在手写输入的所有笔划子结构和所有基本符号而言dT(.,.)是被预先计算并被存储在RAM83的表内。这样,使用较少的计算就能有效地计算快速匹配的距离。快速匹配的目的是产生类似的匹配手写输入的字符特性的小表。
使用候选字符模板,详细的距离计算(最邻近的分类器)是通过使用步13的行段在步108中完成的。
详细的距离计算可以现有技术公知的方式加以完成,例如,在1995.6.5由Parthasarathy申请的申请号为08/465,502的美国专利申请描述了此技术和在此一并作为参考。为了详细的距离计算的目的,在步110从存储器85中打开诸模板。详细的匹配模块计算手写输入和为由快速匹配模块产生的表中每一字符存储的模板之间的详细的匹配距离。
详细的匹配模块计算手写输入和为由快速匹配模块产生的表中每一个字符存储模板之间的详细的匹配距离。由于模板是以压缩形式存储的,在它能够同手写输入比较之前,每一个模板必需被打开。回忆一下,模板是以基本集的符号串的形式存储的。打开是对应串中每个符号实际笔划模型被存取和串接在一起的过程。在打开后,模板被表示为笔划是直线段的一系列笔划并和手写输入的系列笔划加以比较。详细的匹配距离能以几种方式加以计算。一个技术是使用类似于使用在语音识别的动态时间卷曲方法(见H.Sakoe,S.Chiba“Dynamic”Programming Algorithm Optimization for Spoken WordRecognition.”Readings in Speech Recognition,A.Waibel and K-F.Lee,editors.Morgan Kaufmann,San Mateo,California,USA.1990)。
以这样的方式,详细的(或慢的)计算108能非常快地完成,使用了在存储器84中存储的(典型的)50,000个模板中的例如100可能的模板的候选表。通过以紧凑形式使用早些章节描述的得到的基本符号来存储诸模板极大地缓解了在现有技术中使用最接近分类器所流行的诸多问题。
对手写输入具有最小距离的存储模板的字符被报道为在输出120的手写输入的字符。替换地,所说最匹配的10个的候选表可以显示在显示器81上以供用户选取希望的字符。
权利要求
1.手写识别的方法,包括以下诸步骤接收笔输入;分段输入为笔划;分组诸笔划为输入笔划子结构;和计算输入笔划子结构和原始笔划子结构与笔划的预定集的诸成员之间的距离。
2.权利要求1的方法,其中,原始笔划子结构包括2至4个笔划。
3.权利要求1的方法,还包括存储一模板集,每个模板包括从笔划子结构的一预定集中选出的若干笔划子结构,其中,每一模板的诸笔划子结构依照笔划子结构的该预定集被量化;和计算输入笔划子结构和模板笔划子结构之间的距离。
4.权利要求3的方法,还包括从一模板集中选取与计算距离步相关的模板选出的子集,这里选出的子集的模板与不包括在选取的子结构的其它模板的笔划子结构相比具有较低的测量距离,和使用模板的选出的子集识别笔的输入。
5.权利要求4的方法,还包括执行模板的选取子集的诸模板和笔输量之间的距离计算以确立至少1个最紧密匹配笔输入的模板,其中,计算距离测量的步骤包括相对粗的距离计算和使用模板的选取子集的步骤包括相对细的距离计算。
6.权利要求4的方法,还包括打开选取子集的诸模板为定义诸笔划子结构的诸笔划的打开的数据和用打开的数据匹配笔输入。
7.权利要求3的方法,其中,每一个模板包括从笔划子结构的预定集中选出的笔划子结构和还包括建立笔划子结构的比较窗口,该窗口在要比较的笔划子结构之前至少呈现出一笔划,并一笔划跟随着要比较的笔划子结构和计算在窗口内的笔划子结构的测量距离。
8.手写识别装置包括存储指令和数据的存储器,当执行时使数字处理器包括笔划信息输入;连到输入的并且具有笔划和笔划子结构输出的分段器和分组器;和在分段器和分组器上操作的量化器;
9.权利要求8的装置,其中,存储器存储指令和数据,当执行时使数字处理器包括的笔划子结构预定集,和使量化器接收预定集的子结构作为输入。
10.识别手写的装置包括接收手写输入的数字化仪;已经存储模板的预定集的存储器,每一个模板包括从笔划子结构的预定集来的笔划子结构;和依照笔划子结构的预定集对笔划子结构量化的微处理器。
全文摘要
表示手写的方法包括,例如在数字化仪(10)上接收笔输入,将输入分段为笔划(13),分组笔划为笔划子结构(14)和依照笔划子结构的预定集(基本符号)量化笔划子结构,为手写识别,计算输入笔划子结构和笔划子结构的预定集或“基本表”(19)之间的距离。
文档编号G06K9/78GK1188285SQ9712270
公开日1998年7月22日 申请日期1997年10月17日 优先权日1996年10月17日
发明者坎南·帕尔哈萨拉西 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1