参见图1,示出了一种用于识别手写字符的装置10。装置10包括有与数据处理器14相连接的输入装置12。输入装置12接收手写字符并将该字符变换为一系列的信号,再传送给数据处理器14。数据处理器14对接收的信号进行处理,以便检测送到输入装置12上的字符。输出装置16与数据处理器14相连接并接收相应于由输入装置12所接收的手写字符的国际ASCII输出代码。这就可重现所产生的手写字符。
装置10可在多个模式上工作,其中的每个模式都可识别并重现不同语言的手写字符。选择装置18允许用户在所操作的装置10中选择语言。因此,根据由选择装置18所选择的模式,处理器14响应于选择装置18并被划分为14a、14b……、14n部分;这样,就可以一个一个地存贮并存取适当的信息了。
为简单起见,将描述图1所示的装置,当处理装置14处于检测表意字符状态时,虽然选择装置18处于不同的模式状态,但对其它语言字符的检测可用同一种类似的方式实现。
参见图2,示出了表意字符IC。可以看出,该表意字符IC是由一系列基本笔划构成的。这些基本笔划分别标记为Pr1至Pr3。当用表意语言书写时,将基本笔划Pr1至Pr3用作为基础笔划。
对于表意字符,其笔划的书写顺序主要基于逻辑功能、经验和人的固有习惯。根据多次研究发现,当书写表意字符时,存在着一系列的基本规律。这些基本规律是:
上-下
左-右
外-内
横-竖
撇-捺
先入-后封
每个汉字都可以采用上述规律的一个或多个规律来构成该字。
以下表1举例说明表意字符的基本笔顺:
表1
![]()
为了减少当构成一个表意字符时用户必须按要求撰写的基本笔划数目,同时为了减少必须由处理器14处理的数据的总数,把在图3中说明的二十种基本笔划中的十五种Pra至Pro用于装置10。这十五种基本笔划Pra至Pro是用于构成表意字符的典型基本笔划的组成部分。因为在各种语言中所有的表意字符都可以由基本笔划Pra至Pro的不同组合而构成,所以可以选择这种基本笔划的子组。如将要描述的那样,当该装置正工作于检测用其它语言书写的字符时,则将基本笔划Pra至Prt同某些基本笔划Pra至Pro
合为一起使用。
现在参见图5,将更好地说明该装置10。输入装置12包括一个带有记录笔20a的联机数字转换器图形输入板20。把要识别的表意字符用记录笔20a写在图形输入板20上。这就导致对于被写入的构成表意字符IC的每个基本笔划Pra至Pro均产生一连串笛卡儿坐标数据点信号PNo至PNN。该数据点信号的大写字母“N”表示当构成字符IC时写入基本笔划的顺序,而角标“N”表示沿基本笔划取样点的编号。然后,将该数据点信号传送到数据处理器14。
将位于数据处理器14内的存贮器22连接到数字转换器图形输入板20上。该存贮器22接收未处理的笛卡儿坐标数据点信号,并在处理之前将它们存贮起来。预处理器24接收每个写入基本笔划的笛卡儿坐标数据点信号PNo至PNN的拷贝,并处理该数据,以便除去冗余数据和伪数据。将预处理的笛卡儿坐标数据点信号从预处理器24送至特征抽取部分26。该特征抽取部分26将每个基本笔划Pr的笛卡儿坐标数据点信号转换为矢量代码和一系列标量。
把由该特征抽取部分26产生的矢量代码和标量系列送到基本笔划检测部分28。该基本笔划检测部分28将每个构成字符IC写入的基本笔划Pra至Pro产生的矢量代码与检查表或字典中的内容相比较。该处理器14检测写入的基本笔划是否是15种基本笔划Pra至Pro的组成部分。在矢量代码的构成中,当一个写入的基本笔划Pr仅与在基本笔划检测部分28中所存贮的15种基本笔划中的一种笔划相关联的矢量代码相同时,则产生一个基本笔划代码a至o,并传送至存贮器30。对构成写入表意字符IC的表示每一个
基本笔划Pr的每个矢量代码都进行这一比较过程。因而,对于表示表意字符IC的写入字符产生一系列基本笔划代码或一个字符代码。然而,如果对于一个写入的基本笔划Pr所产生的矢量代码与一个同15种基本笔划Pra至Pro中的一种以上笔划相关联的矢量代码相同时,则检测部分28就要对与产生矢量代码相关联的一系列标量进行检测,以便检测出正确的写入基本笔划。
把所产生的字符代码从存贮器30传送到字符检测部分32,并与第二检查表或字典中的内容进行比较。字符检测部分32存贮该语言中表示每个表意字符的字符代码。所存贮的字符代码基本上要求该表意字符由图3中说明的15种基本笔划的组合而成,并且该字符是用上述规则所确定的笔顺写入图形输入板20上的。由于写入表意语言时,上述规则是普遍使用的,所以这些字符代码是可以表示表意字符的字符代码的,但从一种不正确的方式写入的基本笔划之中构成的那些字符代码,则在检查表中略去。
对于写入表意字符IC所产生的字符代码和在字符检测部分32中出现的字符代码相同时,则输出一个相关的输出代码或国际ASCII输出代码。然而,如果该字符代码和表示一个以上的表意字符的字符代码相同时,则字符检测部分32对存贮在存贮器22中的未处理的笛卡儿坐标数据点信号进行处理,以便判定字符代码所表示的正确的表意字符IC。这样,就使得正确的国际ASCII代码能够输出到存贮器34。
当写入字符代码与存贮在字符检测部分28中的一个字符代码不同时,则还提供了一个替换和校正装置36,以便对写入的字符代码进行检查。替换装置36替换该写入的字符代码。把认为是最有可能
的字符代码去表示该写入的字符代码,并且再将该字符代码送回到字符检测部分32,在那里完成上述过程。
将存贮在存贮器34中的表示表意字符IC的国际ASCII代码送到输出装置或输出装置组16。该输出装置或输出装置组16包括有视频显示终端(VDT)16a、打印机16b及/或视频合成器16c。该视频合成器内可进行表意字符IC的音频及/或视频的再现。
参见图6可更清楚地说明处理装置14。预处理器24包括有比较器24a和存贮器24b。该予处理器的作用是清除冗余的和伪笛卡儿坐标数据点信号。特征抽取部分26包括有第二比较器26a和检查表或字典26b。该特征抽取部分的作用是对构成每个基本笔划Pr的那些紧挨着的笛卡儿坐标数据点信号产生出矢量。存贮器26c接收该矢量并将该矢量依次送至第二比较器26a。该比较器26a检查该矢量并消除冗余信息以构成用于每个基本笔划Pr的一系列单元矢量或矢量代码及标量系列。对于每个基本笔划产生的矢量代码中,该标量表示在每个基本笔划所产生的矢量代码里每个单元矢量的长度。将每个基本笔划Pr所产生的矢量代码和标量序列送至存贮器26c,并将其在送到基本笔划检测部分28之前就存贮起来。
基本笔划检测部分28包括一个连接到第二检查表或字典28b的第四比较器28a。该检查表28b存贮了对于每个基本笔划Pra至Pro的一个基本笔划代码和预定矢量代码的清单。该矢量代码表示15种基本笔划Pra至Pro中的一种或几种。该基本笔划检测部分28还包括一个存贮器28c和检测部分28d。该存贮器28c存有对每个矢量代码所产生出的标量。如果与此相关联的矢量代码
与一个由15种基本笔划中的一种以上的笔划所表示的矢量代码相同时,则该检测部分28d执行该标量序列上的操作。这就得以确定正确的基本笔划了。当写入的基本笔划Pr的每个矢量代码位于字典28b中时,则与此相关联的基本笔划代码a至o送入存贮器30。
把该写入的表意字符IC所产生的一系列基本笔划代码或字符代码送至字符检测部分32。该字符检测部分32包括有第五比较器32a及第三检查表或字典32b。该字典32b存贮了构成该语言每个表意字符的字符代码和有关的国际输出代码的清单。该比较器32a和字典32b的作用是检测表示该写入的表意字符IC的字符代码是否与表示一个或多个表意字符的一个字符代码相同。字符检测部分32还包括有微分器32c。如果该字符代码与表示多个表意字符的字符代码相同时,则该微分器32c执行对未处理的笛卡儿坐标数据点信号的检测。这就使得能够检测出正确的表意字符了。当识别出该正确的表意字符时,将与此相关联的国际ASCII代码送至存贮器34,并依次送至输出装置16。
如上所述之,当该字符代码与在字典32b中查找的字符代码不相同时,则要用到替换及校正装置36。替换部分36包括有概率矩阵36a、第六比较器36b及存贮器36c。总的说来,它们的作用是确定把针对该写入的表意字符IC所产生的字符代码认为是最有可能的字符代码。这就提高了所检测的写入数字转换器图形输入板20上的表意字符IC的概率。
当一个表意字符IC通过数字转换器图形输入板20写入装置10时,把记录笔20a放置在图形输入板20上,并且把构成表意字符IC的每个基本笔划Pr都分别由记录笔20写出来。如上所述
之,用来构成表意字符IC的基本笔划必须要和15种基本笔划Pra至Pro中的一种基本相同。然而,这种限制并未造成多少问题,因为这15种基本笔划是每一个能够书写表意语言的人均使用的基本笔划。此外,当把写入的字符送入装置时,选择基本笔划Pra至Pro,使得产生相同字符代码的那些写入字符的数目能够减少,从而简化在部分14中的处理。当写入一个基本笔划Pr之后,记录笔20a将在预定持续期内被移出数字转换器图形输入板20。这就导致产生出一个暂停信号。该信号使得数据处理器14去识别那些已完全被写入的基本笔划Pr。之后,把构成该字符的下一个基本笔划再写入并又产生一个暂停信号。这种过程一直延续到把构成该字符的每个基本笔划都写进装置10为止。
当记录笔20a沿数字转换器图形输入板20移动,以构成基本笔划Pr时,则产生一系列的笛卡儿坐标数据点信号。数据处理器14以大约每秒100个取样数据的取样速度对每个基本笔划产生的笛卡儿坐标数据点信号进行取样,并将所取样的坐标数据信号存贮在存贮器22中。对于每个基本笔划该被取样的数据连续地存贮在各个寄存器中,直至数据处理器14接收到一个意味着所有的基本笔划已全部写入的暂停信号为止。当在数字转换器图形输入板20上正在形成下一个基本笔划Pr2时,在处理器14检测到下一个暂停信号之前,则分别把取样的笛卡儿坐标数据点信号存贮在存贮器22中各个不同的寄存器里。这个过程一直延续到把构成表意字符的每个基本笔划都写进去,并且为此也把所产生的笛卡儿坐标数据点信号一个一个地存贮在存贮器22中为止。为了向数据处理器14指出已经把完整的表意字符IC写入完毕,必须按下在数字转换器图形输入板20上
的“字符结束”(EOC)键。这就防止了在数字转换器图形输入板20上再写入同先前已写入的与表意字符相关联的数据相混淆的一些数据。
因为使用了数字转换器图形输入板20,由于记录笔20a同数字转换器图形输入板表面20的错误接触将会在取样过程中出现暂时的无规噪声。此外,由于操作员手移动上的不平滑,在所取样的笛卡儿坐标数据点信号同理想的笛卡儿坐标数据点信号之间也会引入偏差,因而出现小幅度的噪声。再有,记录笔20a以比相对于处理器14的取样速度慢的速度在数字转换器图形输入板20表面移动时,会导致太量的冗余数据点信号。这些冗余数据点信号,随之也就需要大量的存贮空间,并且增加了装置10的处理时间。因此,如上所述之,采用预处理器24来减少这些冗余数据和伪数据。
为了履行这一功能,将被取样的笛卡儿坐标数据点信号的拷贝送到比较器24a。为了减小由记录笔20a同数字转换器图形输入板20的偶然分离而引起的噪声,将被取样的笛卡儿坐标数据点信号进行各个分析。如果检测出任何被取样的笛卡儿坐标数据点信号的坐标系位置超出了数字转换器图形输入板20的边界,则删除该笛卡儿坐标数据点信号。再者,为了减少冗余数据的数目,并因此加快装置10的处理速度,在比较器24a中对前二个笛卡儿坐标数据点信号进行比较。如果这二个笛卡儿坐标数据点信号之间的距离小于预定的阈值时,则删除第二个被取样的数据点信号;而后,对第一和第三个被取样的笛卡儿坐标数据点信号进行检查。这个过程一直延续到两个数据点信号之间的距离大于该阈值为止。当该距离大于该阈值时,把该第一个数据点信号送至存贮器24b,并且将另外的数据点信号同
紧接着上述的数据点信号进行比较。
另外,如果这两个笛卡儿坐标数据点信号之间的距离大于第二个预定阈值时,则将第二个笛卡儿坐标数据点信号同第三个数据点信号进行比较。如果第二个和第三个数据点信号之间的距离大于第二阈值时,则认为第二个数据点信号是由于记录笔20a同数字转换器图形输入板20之间的偶然错误接触所产生的,并且将第二个数据点信号删除。但是,如果第二个数据点信号和第三个数据点信号之间的距离小于第二阈值时,则认为第一个数据点信号是偶然产生的,并且将第一个数据点信号删除。这种过程是在被取样的笛卡儿坐标数据点信号上针对每个构成写入字符的写入基本笔划而执行的,因而减少了需要处理的数据的数目。
例如,如果把由图2表明的表意字符IC写入装置10,则将构成该字符IC的基本笔划Pr1至Pr3一个一个地写到数字转换器图形输入板20上。数据处理器14取样由数字转换器图形输入板20产生的第一个基本笔划Pr1的笛卡儿坐标数据,并将如图4a至图4c所示的被取样的笛卡儿坐标数据点信号P11至P15存入存贮器22中。同样,处理器14取样分别由下面两个基本笔划Pr2和Pr3所产生的笛卡儿坐标数据点信号P21至P28和P31至P38,并将该取样的笛卡儿坐标数据点信号存入存贮器22中。
此后,将这些笛卡儿坐标数据点信号分别送到预处理器24。其中,再把它们存贮在比较器24a中。首先,对第一个基本笔划Pr1取样的笛卡儿坐标数据点信号P11同数字转换器图形输入板20的外部边界笛卡儿坐标系进行比较。如果检测到该取样的数据点信号是
处在数字转换器图形输入板20的边界之外,则删除该数据点信号。其次,将每一个剩余的数据点信号P12至P15同前面的数据点信号P11进行比较。例如,若数据点P12同P11之间的距离小于预定值时,则删除数据点信号P12,并且再将数据点信号P13同数据点信号P11进行比较。若数据点信号P13同P11之间的距离大于其阈值时,则将数据点信号P11存贮在存贮器24b中,并且重新开始如上过程,去检查数据点信号P13和P14。这个过程对按第一个基本笔划Pr1取样的每个数据点信号进行处理,直至表示输入的基本笔划Pr1的坐标数据减少为止。这个过程还对每一个其它被写入的基本笔划Pr2和Pr3所取样的笛卡儿坐标数据点信号进行处理,因而存贮器24b存贮每个写入基本笔划的被减少的笛卡儿坐标数据点信号。
当把针对每个写入的基本笔划的假的及冗余的被取样的笛卡儿坐标数据点信号移除之后,再将所得到的数据点信号从存贮器24b送至特征抽取部分26。
在特征抽取部分26中,为了简化检测写在数字转换器图形输入板20上的基本笔划的过程,将每个写入的基本笔划的笛卡儿坐标数据点信号转换成矢量代码及标量序列。但是,在对写入的基本笔划构成矢量代码和标量之前,检查该笛卡儿坐标数据,用以检测它是否已由预处理器24简化为一个单一的坐标系对了。如果基本笔划Pre写入数字转换器图形输入板20,就出现这种情况。如果检测到这种基本笔划,则把基本笔划代码e输出到存贮器,而且无需任何进一步的处理。当构成矢量代码和标量以确定其它的基本笔划时,特征抽取部分26采用了一种在图7中说明的改进的Freeman(付雷曼)代
码系统Fo。付雷曼代码系统使一系列笛卡儿坐标数据点信号(P0,P1,……,Pi,Pi+1)转换成一系列的单位矢量,而且它的每个矢量都有一个相应的长度。在上述一系列的笛卡儿坐标数据点信号中,P0等于(x0,y0),而Pi等于(xi,yi)。该单位矢量是用相邻的笛卡儿坐标数据点信号Pi和Pi+1之间所画的一条线与在付雷曼代码Fc中的8个付雷曼单位矢量FV1至FV8中的一个相比较而形成的。
然而,由于在数字转换器图形输入板20上写入的基本笔划具有多角度的外形,这就需要在一对笛卡儿坐标数据点信号Pi和Pi+1之间形成一条有公差的线。该线不与付雷曼单位矢量相重合也被认为是正确的付雷曼单位矢量。为了适应写入的基本笔划的这些差异,对于每个付雷曼单位矢量FVN,付雷曼代码系统FC采用了一个20°的公差,因而任何在一对笛卡儿坐标数据点信号之间形成的线,均落入A1至A8界限里的一个界限之中时,就可认为是与该界限相关的正确的付雷曼单位矢量FVN。
为了产生对每个基本笔划的每对相邻的笛卡儿坐标数据点信号之间形成的每条线的付雷曼单位矢量FVN,将预处理的笛卡儿坐标数据点信号送至比较器26a。在比较器26a中,检查相邻的笛卡儿坐标数据点信号,并在它们之间形成一条线。为了减小由于操作员偶然移动记录笔20a而引起的被取样的笛卡儿坐标数据的误差,将每相邻的数据点信号之间所形成的线的长度与一个阈值进行比较。如果这个长度小于预定阈值的长度,则认为第二个数据点信号是由操作员造成的假性手移动形成的,因而删去该数据。这种处理保证能滤除由操作员画出的一条水平线中所带有的少许不希望有的非水平成份,从
而产生出表示理想水平线的数据。
在移除偶然性数据点信号之后,所保留的相邻数据点信号之间所形成的线,将与修正的付雷曼代码FC相比较。如果该线落入公差范围A1至A8中的一个范围之内,则将与此相关的付雷曼单位矢量FV1至FV8送至存贮器26c。如果两个笛卡儿坐标数据点信号之间所形成的线落入付雷曼代码Fc中无效范围X1至X8中的一个范围内,则该第二个笛卡儿坐标数据点信号被下一个上述笛卡儿坐标数据点信号所置换,并在它们之间形成一条新的线。同样,将这条线与付雷曼代码Fc进行比较,俅渭觳馐欠窀孟叽τ谟行Х段1至A8中的一个范围之内。如果其结果是该线落入一个有效范围AN,则将与该范围AN有关的付雷曼单位矢量FVN送至存贮器26c。然而,如果没有检测到一个有效的付雷曼单位矢量,则将这一对中的第二个数据点信号用下一个上述数据点来置换,并重复以上同样的过程。如果在置换了对于写入的基本笔划所产生的每个剩余的笛卡儿坐标数据之后,还未检测到一条落入有效范围AN内的线,则该笛卡儿坐标用一个无效付雷曼单位矢量U′来表示,并且将该无效付雷曼矢量送至存贮器26c。
因此,对每一个写入的基本笔划形成一系列付雷曼单位矢量FVi至FVN或U′,并且一个一个地存贮在存贮器26c中。而后,再把该单位矢量序列一个一个地送至比较器26d。比较器26d将每个单位矢量FVi+1与前面的单位矢量FVi相比较,如果它们相同,则对这个单位矢量有一个增长的标量计数,并且删除单位矢量FVi+1。这个过程是对每个写入的基本笔划Pr所产生的单位矢量而执行处理的。这一操作的结果形成了一系列被简化了的构成该字符
的每个写入基本笔划的单位矢量或矢量代码,其每个矢量代码均有一个相关的标量序列。该标量序列表示在矢量代码中每个单位矢量的长度。
例如,如果把由图1和图4所表明的表意字符IC写入装置10,则比较器26a首先检查与第一个基本笔划Pr1相关的笛卡儿坐标数据点并在每两个相邻数据点P11至P15之间分别形成线L11至L14。然后,将线L11至L14与付雷曼代码FC相比较,并把所相关的付雷曼矢量FVi至FVN赋予这些线上。因为线L11至L14的每条线都落入界限A3(假设每条线的长度都大于该阈值),所以如图4中所表明的基本笔划Pr1由笛卡儿坐标数据点P11至P15及所产生的线L11至L14所构成。
随着基本笔划Pr1每个矢量的产生,将其矢量序列送至存贮器26c,并存贮在该存贮器之中。然后,在与基本笔划Pr2及Pr3相关的笛卡儿坐标数据点上执行上面所描述的处理,并由此而形成的结果矢量也送至存贮器26c。接着,将每个基本笔划Pr的付雷曼矢量送到比较器26d。之后,对每个基本笔划产生的相邻付雷曼矢量进行比较。如果相邻矢量相同,则删除其中的一个矢量,并且因而将该标量计数增1。然后,将比较器26d的结果送至存贮器26e。
例如,当把图4a所示的基本笔划Pr1处理为形成付雷曼矢量序列FV3、FV3、FV3、FV3时,则比较器26d将该矢量序列简化为具有一个标量为4的矢量代码FV3。例如,如果写入一个基本笔划,并且因此而产生付雷曼矢量序列为FV3、FV3、FV3、FV4、FV4、FV4、FV5、FV5、FV3,则将该单位矢量简化为矢量代码FV3、FV4、FV5、FV3,并且
将产生一个等于3、3、2、1的标量序列。
该矢量代码及相关的构成写入字符的每个基本笔划的标量序列从存贮器26e被送到基本笔划检测部分28。将该矢量代码送至比较器28a,并把该标量序列存贮在存贮器28c中。由比较器28a所接收的矢量代码同存贮在基本笔划字典28b中的矢量代码相比较。将字典28b划分成16个基本笔划部分。它的前15个部分只与Pra至Pro这15个基本笔划中的一个相关,并且只存贮与那个基本笔划相关的矢量代码。而第16个部分则容纳可表示一个以上基本笔划的含糊的矢量代码。该第16个部分还容纳每个含糊矢量代码唯一的测试信息,用以能够断定写入的是正确的基本笔划。
如果一个写入基本笔划代码的矢量代码与字典28b的前15个部分中的一个部分所存有的一个矢量代码相同,则将与此相关的基本笔划代码a至o送到存贮器30。对构成该写入字符的每个基本笔划所产生的每个矢量代码都执行这种处理。因而,产生了一系列的基本笔划代码或一个字符代码。该字符代码表示了在数字转换器图形输入板20上写入的表意字符。
但是,当一个基本笔划所产生的一个矢量代码与字典28b的内容相比较后,是与第16部分中存有的一个矢量代码相同时,则将与该含糊矢量代码相关的测试信息送至测试部分28d。该测试部分28d接收测试信息,并对它进行检查,以便确定正在被检查的矢量代码是哪一个。之后,该测试部分28d接收与该检查过的矢量代码相关的标量序列,并在该测试部分28d上完成由该唯一测试信息所确定的操作。将该测试结果再回送到字典28b,后者再选择表示写入基本笔划的正确笔划代码。虽然该矢量代码是含糊的,而标量序列仍
可在每个含糊的矢量代码之间提供出适当的用以鉴别的信息,但在该序列中每个标量的值是极不相同的。
例如,如果将图8a所表明的基本笔划Pra写入图形输入板20,则会产生一个等效于FV1、FV2、FV1的矢量代码。由于这个矢量代码也用来表示图8b所表明的基本笔划Prb,所以该矢量代码将在字典28b的第16个部分上被检测。虽然两个基本笔划的矢量代码等值,但与此相关的标量序列却很不相同。可以看到,与基本笔划Pra相关的标量序列是3、1、3;而与基本笔划Prb相关的标量序列却是1、5、1。因此,利用比较在该序列中的前面两个标量之间的相对长度,就可以确定出正确的基本笔划代码。
如果将该矢量代码与字典28b的内容相比较找不出在该字典中相等的矢量代码,则将该矢量代码作为是一个无法识别的基本笔划代码U,并且同样也把它送到存贮器30。因此,基本笔划检测部分28的输出包括一个表示输入的表意字符IC的基本笔划代码序列或字符代码。
将存贮在存贮器30中的字符代码加到字符代码识别部分32,并由比较器32a所接收。该比较器32a将字符代码同用于该写入字符所产生的字符字典32b的内容相比较。如前所述,字典32b存贮该语言中每一个可能的表意字符的字符代码以及它所相应的国际ASCII输出代码。在国际上均采用国际ASCII输出代码表示表意字符。因为许多表意字符是由相同写入笔顺的相同基本笔划所构成的,虽然在两个写入基本笔划之间的相对位置很不相同,但某些表意字符却具有相同的字符代码。当接收到一个含糊的字符代码时,为了能使装置10检测出正确的表意字符,该字符字典32b还包含与每个含
糊的字符代码唯一相关的测试信息。
当从存贮器30中接收一个字符代码时,则将该字符代码通过比较器32a与字典32b中的内容进行比较。如果所接收到的字符代码与在字典32b中发现的一个唯一只和一个表意字符相关的字符代码相同时,则将与此相关的国际ASCII输出代码从字典32b中输出,并存贮在存贮器34里。但是,当该写入的表意字符所产生的字符代码与一个同多个表意字符相关的含糊的字符代码相同时,则把与此相关的唯一的测试信息送至字符微分器32c。
为了确定表示输入的表意字符的国际ASCII输出代码,根据所接收到的测试信息,微分器32c从存贮器22中取出未处理的笛卡儿坐标数据,并执行由该测试信息所确定的操作。当执行这一测试操作时,所使用的未处理的笛卡尔坐标数据点与为此而形成的标量序列相反,因为未处理的笛卡尔坐标数据包含有关每一个写入的基本笔划相对位置的信息。当确定出正确的国际ASCII输出代码时,同样也把它送至存贮器34。
例如,如果把如图1所示的表意字符写入该装置,则将产生一个相当于“aba”的字符代码,并且与字典32b中的内容进行比较。但是,由于图9a和图9b分别表明的表意字符IC2和IC3也是由相同的字符代码“aba”来表示的,因而该字符代码是作为含糊的字符代码被检测到的。把与该字符代码“aba”相关的唯一的测试信息同来自存贮器22的未处理的笛卡尔坐标数据将一起送至微分器32c。对于这个例子来说,该测试信息将导致微分器32c去检查第二个基本笔划Pr2相对于第一个基本笔划Pr1的位置,以便确定第二个基本笔划Pr2是否穿过第一个基本笔划Pr1。如果这
个测试结果是负的,则微分器32c将证实写入的表意字符IC与表意字符IC2不相同,因为在字符IC2中这个特征不存在。为了在表意字符IC和IC3之间进行区分,将第三个基本笔划Pr3与构成写入的表意字符IC的第一个基本笔划Pr1进行比较,并检查它们之间的相对尺寸。因为基本笔划Pr1比基本笔划Pr3小,所以这个比较结果使微分器32c能够选择出正确的国际ASCII输出代码。字典32b接收由微分器32c所产生的结果,并将正确的国际ASCII输出代码送至存贮器34。
当确定了该国际ASCII输出代码并存贮在存贮器34中之后,为了产生一个输入表意字符的枷螅山偷街钊绱蛴』?6a、VDT终端16b或音频合成器16c之类的输出装置。
但是,如果由一个或多个基本笔划的一连串基本笔划代码构成的字符代码被认为是无法识别的基本笔划代码U或者如果该字符代码与在字符字典32b中所查找的任何字符代码都不相同时,则将该字符代码送至置换和校正部分36。该转换和校正部分36包括有概率矩阵36a。该概率矩阵是由16行乘16列寄存器36a′所组成的阵列。如图10所示,该矩阵的每一行与包括无法识别的基本笔划代码U在内的可能的16种基本笔划代码a至o中的一种相关,而该矩阵的每一列与15种可能的基本笔划代码a至o中的一种相关。每一个寄存器36a′都存有表示对于列的基本笔划代码来说,行基本笔划代码可能出错的概率数。
因此,存贮在寄存器中的概率值沿着该矩阵的对角线从左至右都为值1,因为把一个基本笔划代码作为其本身进行检测的概率就是高值的。至于将两个极不相似的基本笔划互相弄错,这几乎是不可
能的情况,因而在一个寄存器中存贮的与两个不相似的基本笔划相关的概率值为零。例如,观查矩阵36a的第一行是与基本笔划Pra相关的,所以基本笔划Pa的实际上可能被弄错为基本笔划Prc的概率为O.O。因为这些基本笔划在它们的构成方式上非常不同。把与另外的基本笔划具有某些相似的那些基本笔划的概率值指定为在0.1至0.9的范围内。这要取决于它们之间的相似程度。
当在比较器36b中所接收到的一个字符代码其中至少具有一个无法识别的基本笔划代码U时,则检查与该基本笔划代码U相关的那行中的概率。当在该行中检测出最高概率值时,则用那列的基本笔划代码置换该无法识别的基本笔划代码U。将所得到的字符代码回送到比较器32a,并与字符字典32b的内容相比较,从而检测该所得到的字符代码是否与其中所查找的一个字符代码相同。如果所得到的字符代码与字典中的一个字符代码相同,则从字典32b中取出国际ASCII输出代码,并将它送到存贮器34中存贮起来。如果所得到的输入字符代码与一个含糊字符代码相同,则用与上相同的方法对存贮在存贮器22中的笛卡尔坐标数据执行测试,从而确定出正确的国际ASCII输出代码。
然而,如果所得到的字符代码与在字典32b中所查找的一个字符代码不相同或者如果该原来写入的字符代码与在字典32b中查找的一个字符代码不相符时,则执行第二次置换。当上述情况中的一种情况出现时,则将该字符代码送至比较器36b,并检查识别构成该字符代码的基本笔划代码的数目。接着,把由同样数目的基本笔划代码构成的字符字典32b中的每个字符代码传送到比较器36b,并与未识别出的字符代码相比较。在这个比较期间里,检查构成每个字
符代码的基本笔划代码和构成未识别出的字符代码的基本笔划代码之间的差数。如果检查出在字符代码和未识别出的字符代码之间的差数大于阈值时,则丢弃该字符代码。
但是,应记下每一个具有与阈值差数较小的字符代码,并且把它们所相关的国际ASCII输出代码存贮在存贮器36c中。选取存贮在存贮器36c中的国际输出代码的次序,使在该存贮器中与该字符代码相关的第一个国际ASCII输出代码同未识别的字符代码最为相似。然后,把存贮在存贮器36c中的国际输出代码从存贮器36c中取出,并送至VDT终端,借此对用户显示出与写入的表意字符最为相象的每一个表意字符。用户通过编辑软件可以选择相应于写入装置10的表意字符的那个表意字符。如果置换部分36没有产生出所希望要的表意字符,则可用编辑程序从字典32b中取出正确的国际ASCII输出代码。
可把存贮在存贮器34中的表意字符信号送至打印机16a,从而重现所要产生的已输入的表意字符。另外,可把该字符信号送到VDT荧光屏,以便用户见到已写入装置10的字符。装置10还能够利用已知的编辑程序使用户改变存贮在存贮器34中的表意字符。
当把装置10调节到处于其它模式之一,使该装置还可以识别不同语言的字符时,则用图3中所示的同样的基本笔划来构成字符。很显然,图3中所示的基本笔划在构成表意字符和大写英文字符时,是非常有用的。因为这些语言中的所有字符都可以由这些基本笔划来构成。当然,也可增加另外一些基本笔划,以便可以构成所有文种语言的所有字符。但一般很少这样做,因为20种基本笔划基本上已经可以构成各种文种语言中的所有字符了。
如上所述,对于其它文种语言中的每个大写字符,把处理器14中各种字典划分为各个存有各种基本笔划代码、字符代码及ASCII输出代码的部分。把该大写字符存贮在该装置中,因为这些字符一般都是由精通该文种语言的每个人以相同的方式和笔顺写入的。在该处理器中的不同部分里,还包括用以识别产生相同字符代码的不同字符的测试信息。
对于使用和基本笔划Prp至Prt相似的笔划的文种语言来说,当构成字符时,除了把基本笔划Prp至Prt中的一个笔划写入图形输入板20之外,该基本笔划的检测及基本笔划代码的确定,均是由上述利用付雷曼代码相同的方式来实现的。因此,当把一个基本笔划写入图形输入板20时,在使用付雷曼代码之前,特征抽取部分26检查取样点之间所形成的线的切线,并沿着该基本笔划确定该基本笔划的弯曲度(即180°、270°、360°)。
如果检测该基本笔划为具有基本为270°或360°的曲率时,则立即确定与写入基本笔划Prs或Prt相关的基本笔划代码s或t,而且无需进一步处理。如果检测该基本笔划的曲率大约为180°,则沿着切线方向(即顺时针或反时针方向)检查基本笔划的起始和终止坐标数据信号。这将不需要进一步处理就可以把基本笔划Prp至Prr区分开来。否则,当检查该切线时,如果已写入的基本笔划具有一个基本恒定的梯度,则不必检测该基本笔划,并利用付雷曼代码去处理那些预处理的坐标数据信号,从而确定出正确的基本笔划代码。
例如,参考图11,如果将该装置调节到处于识别英文字符的状态,并且把字符“M”写到图形输入板20上,则利用基本笔划Prb、Prg、Prc及Prb构成该字符。这些基本笔划用上述同样的方
法由特征抽取部分26及基本笔划检测部分进行处理。因此,将产生出一个为“bgcb”的字符代码。因为这个代码仅与英文中的字符“M”相关,所以将会输出这个相关的ASCII输出代码。
例如,如果把如图12所示的英文字符“D”及“P”写到图形输入板20上,因为构成这两个字符的基本笔划是Prb及Prq,所以每个字符所产生的字符代码将是“bq”。因此,如果写入这些字符中的一个字符,则按照上述类似的方法使用存贮在字符字典中的测试信息,并检查基本笔划Prb的长度及基本笔划Prp的起始点与终止点之间的长度。即使对这两个字符所产生的字符代码相同,但用这种方法也能把这两个字符区分开来。
对于其它文种的语言,例如德语、法语等,虽然该装置必须通过装置18调节到处于适当的模式上,但检测手写字符的方法也是相同的。这种调节对于像德语、法语、英语这些文种语言尤其更为必要,因为在这些文种的语言中,构成的字符相同,但ASCII输出代码却可以不同。对于另外的各种语言,也可使用置换矩阵。由于在非表意语言中所使用的字符数目往往是很少的,所以使用置换矩阵也并不是必须的。
另外,当把装置10调节到处于检测一种语言的大写字符的状态时,如果要求的话,该装置还可以包括有输出等效于所检测的大写字符的小写字符ASCII代码的软件。虽然说,检测小写字母可用类似于检测大写字母的方法来进行,但各人书写小写字母的笔体各不相同,因而实现其检测处理确实非常困难,并且需要更多的存贮空间,以便适应对多种可能的书写手法所写的字符的检测。
本装置用于由国际商用机器公司制造的IBM PC XT个人
计算机中,该计算机提供有20兆位的硬磁盘,用它来存贮各个字典的信息。为了实现上述识别处理,该计算机配备有适当的软件。该软件能使输入的笛卡尔坐标数据点信号能按上述方法进行处理。由于把大量的数据存贮在字典32b中,即大约50,000个不同的表意字符的字符代码及所相关的国际输出代码,并使用了本技术领域内已公知的B-树算法,所以提高了在由已输入的表意字符所产生的字符代码及其中所存贮的字符代码之间进行检测的速度。虽然B-树算法提高了处理速度,但它也提高了对存贮器的要求,因为它要求有索引文件。
本装置10还可以制造在一块很小的能够连接到普通的个人计算机上去的集成电路板上。这块集成电路板上提供有存贮各种字典内容的ROM部件及包括有适当软件以完成数据处理功能的微处理器。
因此,本装置的优点是能够在以相同笔顺写入由相同的基本笔划所构成的字符之间进行区分。这就减少了操作员为了选择正确的表意字符而不得不暂停数据写入操作的困扰。此外,如果在装置10中没有查找龈檬淙胱址蛭咀爸媚芄谎≡癯鲆桓鲇胍研慈胱址拇胱钗嗨频牟煌址拇耄蚨没蛔爸每梢越徊郊跎偕鲜龅睦懦鱿帧4送猓捎诒咀爸每捎萌砑迪郑蛘咭部捎糜布圃欤愿米爸镁哂卸嘀钟猛静⒖稍诟髦只肪诚率褂谩?
本装置再一个优点是在本装置中用这种方法写入的被处理的笔划,除了少数产生出含糊的字符代码的字符之外,在图形输入板板面上的任何地方均可写进笔划。再有,在确定构成字符的基本笔划之前,所采用的处理除少数例外之外,允许要被确定的已写入的字符与已写入的基本笔划的长度不相关。此外,这种简单的方法和处理几乎可以很
快地识别所有文种语言的手写字符,因此可使该装置付诸实时应用。
显然,本专业领域内的普通技术人员可对本装置作出改型,以便检测任何输入字符,只要有关于此待检测字符的洽当信息已被存入该装置的字典里。