图案列匹配装置和图案列匹配方法

文档序号:6580584阅读:146来源:国知局
专利名称:图案列匹配装置和图案列匹配方法
技术领域
本发明涉及用于文字识别装置等的图案列匹配装置和图案列匹配方法,该装置和方法,例如,对由识别结果文字构成的想要匹配的文字列等的第1文字列和被登录在数据库中的文字列等的第2文字列进行匹配。
以往,在从图象数据识别文字的文字识别装置中,作为最终要得到文字识别结果的重要的处理,有图案列匹配处理。该图案列匹配处理,对作为由在文字识别中得到的文字候补构成的想要匹配的文字列的第1文字列的候补与作为被登录在数据库(辞典)中的文字列的第2文字列的候补进行匹配。由此,在图案匹配处理中,确定从文字识别的结果得到的文字列是否和被登录在数据库中的某文字列最匹配。
当进行这种图案列匹配处理的情况下,检索文字列的候补,根据在文字识别中得到的文字候补,有各种各样的组合。另外,对检索文字列进行匹配的辞典文字列也存在很多候补。
在以往的图案列匹配处理中,有DP匹配法、采用投票法的匹配处理等。
在上述DP匹配法中,对构成检索文字列的候补的多个文字候补进行一个循环检索。但是,在上述DP匹配法中,如果使检索文字列的识别文字的候补增加为1位、2位、3位,则检索空间急剧增加,处理变得非常缓慢。
另外,采用投票法的匹配方法是,对于第2文字列的候补的各文字,对每个由识别结果的文字候补组成的第1文字列的各文字进行投票,选择得票率最高的第2文字列的候补。但是,在该方法中未考虑文字列的文字排列。因此,在构成检索文字列的文字相同,文字排列不同的情况下,看不出区别。特别是由于在罗马字文化圈中文字种类少于26种,所以这种问题更严重。
因此,如何高效率且正确地进行多个文字列的候补和多个文字列的候补的匹配处理就是图案列匹配处理的最大课题。即,期望“高速”并且“考虑文字的排列”的图案列匹配处理。
另外,在图案列匹配处理中,干扰是个问题。例如,假设在构成检测文字列的文字的识别处理中,文字分离失败,在检索文字列中包含和单词不同的文字列。这种情况下,尽管在检索文字列中包含正确的文字列,但在DP匹配法等的以往的方法中不能匹配的现象很多。
另外,即使在投票法中进行匹配后,也很难知道哪部分匹配,并且很难去掉干扰。
这样,在匹配处理中,就期望“抗干扰性”高,“干扰位置的特定”高精度。
如上所述,就是期望高速并且高精度、考虑到文字排列的匹配处理,为此,本发明以提供可以高速并且高精度、考虑到文字排列的匹配处理的图案列匹配装置和图案列匹配方法为目的。
另外,就是期望抗干扰性高,干扰的位置可以特定的匹配处理,为此,本发明以提供可以进行抗干扰性高,干扰位置可以特定的匹配处理的图案列匹配装置和图案列匹配方法为目的。
本发明的图案列匹配装置,在对分别由多个图案组成的第1图案列和第2图案列进行匹配处理的装置中,包括投票单元和判定单元,其中的投票单元,在对上述第1图案列的各图案和上述第2图案列的各图案进行匹配的情况下,根据匹配的图案在上述第1图案列中的位置,以及在上述第2图案列中的位置进行投票;其中的判定单元,根据该投票单元的投票结果,判定匹配结果。
本发明的图案列匹配方法,在对由多个图案组成的第1图案列和第2图案列的匹配处理的方法中,在对上述第1图案列的各图案和上述第2图案列的各图案进行匹配的情况下,根据匹配的图案在上述第1图案列中的位置,以及在上述第2图案列中的位置进行投票,根据投票结果,判定匹配结果。
本发明的其它目的和优点将通过以下的描述得以说明,并且通过以下的实施例及其组合得以实现。
下面将根据附图及实施例对本发明的原理进行描述。


图1是本发明的实施例的文字识别装置的概略构成的图。
图2是文字列匹配处理部分的概略构成的方框图。
图3是矩阵的例子。
图4是对矩阵投票例子的图。
图5是取矩阵的投影情况的例子的图。
图6是取矩阵的投影情况的例子的图。
图7是用于说明不考虑干扰情况下的匹配处理的流程图。
图8是在检索文字列之前带有干扰的情况的投票例子的图。
图9用于说明在检索文字列的前后带有干扰的情况下的匹配处理的流程图。
图10是在检索文字列之间带有干扰的情况下的投票例子的图。
图11是用于说明在检索文字列之间带有干扰的情况下的匹配处理的流程图。
图12是文字列匹配处理部分的另一构成例子的方框图。
图13是用于说明对投票用的存储器投票的图。
图14是用于说明在对投票用的存储器直接投票情况下的匹配处理的流程图。
图15是投票用表数据库的例子的图。
图16-19是根据本发明进行文字识别的实施例。
图1是概略地展示本发明的实施例的文字识别装置的全体构成的图。文字识别装置由图象输入部分1、区域检测部分2、行分离部分3、文字分离部分4、文字识别部分5,以及文字列匹配处理部分(图案列匹配装置)6构成。
在上述图象输入部分1中,输入图象。上述区域检测部分2,从由图象输入部分1输入的图象中检测出记载有文字的区域。上述行分离部分3,从由区域检测部分2检测出的区域中分离出文字行。上述文字分离部分4,从由行分离部分3分离出的文字行中分离出每一文字候补。
上述文字识别部分5,对由文字分离部分4分离出的各文字候补进行文字识别处理。在该文字识别处理中,比较文字(图案)的图象和被存储在文字识别辞典5a中的文字(图案),选择出识别文字的候补。
上述文字列匹配处理部分6,进行第1文字列和第2文字列的匹配处理。上述第1文字列,是根据由上述文字识别部分5选择出的识别文字的候补,选择出单词等的每一文字列的识别结果的文字列。上述第2文字列,是预先被登录在数据库(后述)中的文字列。但是,上述文字列匹配处理部分6,对从在文字识别中得到的文字候补中作为想要匹配的文字列的第1文字列和预先被登录在数据流中的第2文字列进行匹配处理。该文字列的匹配处理的结果,即第1文字列最匹配的第2文字列被作为识别结果输出。
图2是文字列匹配处理部分6的构成的图。如图2所示,文字列匹配处理部分6由以下部分构成匹配用文字列数据库(文字列匹配用辞典)11、第2文字列输入部分12、第2文字列存储器13、第1文字列输入部分14、第1文字列存储器15、矩阵制成部分16、矩阵用存储器17、比较投票部分18、投票结果计算部分10、计算值用存储器20、匹配确定部分21、匹配结果输出部分22、干扰消除部分23、邻接计算部分24。
在上述匹配用文字列数据库11中存储着第2文字列的候补。
从匹配用文字列数据库11向上述第2文字列输入部分12输入第2文字列(第2图案列)的候补。被输入的第2文字列,被存储在上述第2文字列存储器13中。
从由文字识别部分5得到的文字候补中向上述第1文字列输入部分14输入识别文字列(第1图案列)。该被输入的第1文字列,被存储在第1文字列存储器15中。
上述矩阵制成部分16,在矩阵用存储器17中制成与上述第2文字列和第1文字列对应的矩阵。该矩阵被制成如下形式,即在矩阵用存储器17上把上述第2文字列的各文字(图案)排列成1行作为横轴,把上述第1文字列的各文字(图案)排列成1列作为纵轴。即,当构成上述第1文字列的文字数是m个,构成上述第2文字列的文字数是n个的情况下,m行n列的矩阵被制成在矩阵用存储器17中。
例如,如图3所示,当对于被称为“STRING”的第1文字列,匹配处理被称为“STRING”的第2文字列的情况下,在矩阵用存储器17中,制成由与作为第1文字列的STRING的各文字对应的行,和与作为第2文字列的STRING的各文字对应的列组成的6行6列的矩阵。
上述比较投票部分18,比较第2文字列的各文字和第1文字列的各文字,判定比较后的文字是否匹配。进而,当比较后的文字匹配的情况下,比较投票部分18,对在上述矩阵用存储器17上的用于矩阵匹配的与第2文字列的文字和第1文字列的文字对应的行和列交叉的位置进行投票。另外,在该投票中,也可以用与第1文字列的文字的相似度等对应的值进行投票。
例如,如图4所示,当相对于第2文字列“STRING”来匹配处理第1文字列“STRING”的情况下,相对于第2文字列的“S”匹配第1文字列的“S”。因此,比较投票部分18,投票于矩阵的第1行第1列。进而,比较投票部分18,对于第2文字列的“T”、“R”、“I”、“N”、“G”的各文字,也在第1文字列的匹配的文字交叉的位置,即,第2行第2列、第3行第3列、第4行第4列、第5行第5列、第6行第6列处分别进行投票。
上述投票结果计算部分19,对由比较投票部分18投票后的矩阵的倾斜方向进行计算。在该投票结果计算部分19中,用矩阵的倾斜方向的各要素进行规定的计算。例如,投票结果计算部分19,在由比较投票部分18对矩阵进行投票后,对于矩阵的行在倾斜45度方向上的每一投影部分进行规定的计算,把计算值存储在计算值用存储器20中。
另外,投票结果计算部分19,在把计算值存储在计算值用存储器20中时,制成用于把计算值存储在计算值用存储器20中的线段。该线段,如果假设第1文字列的长度(第1文字列的文字数)为SEARCHLEN,第2文字列的长度(第2文字列的文字数)为DICLEN,则其长度(计算值的数)为DICLEN+SEARCHLEN-1。该线段,在第1文字列和第2文字列是同一长度(文字数)的情况下,与从矩阵的左下到右上的对角线方向的线段对应。在该线段上,存储在矩阵的右倾斜下方的投票结果的计算值。
上述匹配确定部分21,根据被存储在计算值用存储器20中的计算值判断表示第2文字列和第1文字列匹配程度的得分。进而,匹配确定部分21,根据判断的得分确定第2文字列和第1文字列是否匹配,由匹配结果输出部分22输出匹配结果。
上述干扰消除部分23,如后所述,在判断为在第1文字列上带有干扰时,从第1文字列中消除干扰。
上述邻接计算部分24,如后所述,当在第1文字列之间带有干扰时,对于在被存储在计算用存储器20中的计算值中的峰值位置的值,和与峰值位置相邻的位置的值进行计算。
以下,说明作为对矩阵的投票结果的计算值。
当相对于第2文字列第1文字列的各文字是相同的位置并且完全一致的情况下,在矩阵中,只对于n行n列的成分投票。因而,如果投票结果计算部分19在矩阵的倾斜方向上进行计算,则在计算值用存储器20上,存储只在线段中间位置上大值的计算值。
例如,如图5所示,在第2文字列“STRING”和第1文字列“STRING”的情况下,第2文字列的文字和第1文字列的文字位置相同并且完全一致。因而,在矩阵上,只对1行1列、2行2列、3行3列、4行4列、5行5列、6行6列的成分投票。因此,如果投票结果计算部分19对从矩阵的左上向右下方向(倾斜方向)的成分进行计算,则投票结果的计算值,只在线段的中央位置增大。例如,是如图5所示的第2文字列和第1文字列的情况下,如果把各自的投票数设置为1,取矩阵的倾斜方向的投影,则投票结果的计算值,在线段的中间位置上为6。该值和第2文字列的长度相同。
另外,即使第2文字列的各文字和第1文字列的各文字一致,当第1文字列的各文字的位置,和第2文字列的各文字的位置不同时,在计算存储器20中的线段,并不是只中间位置的计算值增大。
例如,如图6所示,当在第2文字列“STRING”和第1文字列“GNIRTS”的情况下,虽然第2文字列的各文字和第1文字列的各文字一致,但第1文字列的各文字的位置,和第2文字列的各文字的位置不同。因而,在矩阵中,根据6行2列、5行2列、4行3列、3行4列、2行5列、1行6列的成分投票。因此,如果投票结果计算部分19对从矩阵的左上到右下方向(倾斜方向)的成分进行计算,则投票结果的计算值,分布与线段全体上。
总之,在图6中,例如,在图6所示的情况下,如果取矩阵的倾斜方向的投影,则投票结果的计算值,并不集中在线段的中间位置,而是在线段的全体上广泛分布计算值。
接着,不考虑干扰,说明使用矩阵进行匹配处理的情况。进而,在以下的说明中,作为与投票结果有关的矩阵的倾斜方向中的计算例子,说明取投票数的投影的情况。
当在第1文字列中不包含干扰的情况下,一致的第1文字列的长度(文字数)SEARCHLEN和第2文字列的长度(文字数)DICLEN是相同的长度(文字数)。这种情况下,该投票结果计算部分19,把长度(数)是DICLEN+SEARCHLEN-1的线段制成在计算值用存储器20内。
该线段(投影部分),对应于从矩阵的左下向右上的对角线方向的各成分。投票结果计算部分19,在制成在计算值用存储器20内的线段上,对每个右倾斜下方向的各成分进行投票结果的计算。
另外,当第1文字列的前后不带干扰时,如果把投影线段的长度设置成PROJLEN,则是PROJLEN=DICLEN+SEARCHLEN-1。这种情况下,在投影线段的峰值位置的两侧,有DICLEN-1个块(存储计算值的位置)。
接着,如上所述,不考虑干扰,参照图7所示的流程图说明使用矩阵的匹配处理。
即,第1文字列输入部分14,输入第1文字列(步骤1),将其存储在第1文字列存储器15中。另一方面,第2文字列输入部分12,从匹配用文字列数据库11输入第2文字列(步骤2),将其存储在第2文字列存储器13中。于是,矩阵制成部分16,在矩阵用存储器17上,以第2文字列为横轴,以第1文字列为纵轴制成矩阵(步骤3)。这样制成的矩阵,由与第1文字列的各文字对应的行,和与第2文字列的各文字对应的列构成。
如果制成矩阵,则比较投票部分18,判断相对于第2文字列的各文字第1文字列的各文字是否匹配。即,如果把第1文字列的文字数设为m,把第2文字列的文字数设为n,则比较投票部分18,顺序判断第1文字列的第i(i=1~m)个文字和第2文字列的第j(j=1~n)个文字是否匹配(步骤4)。
当通过该判断判断为第1文字列的第i个文字和第2文字列的第j文字匹配时,比较投票部分18,对矩阵用存储器17上的矩阵的i行、j列的成分进行投票(步骤5)。
该投票,在第1文字列的文字识别中的识别文字的候补有多个的情况下,可以在文字列的候补中某一个一致的情况下进行投票。另外,也可以投票根据第1文字列的文字识别中的识别文字的候补的优先顺序,或者识别文字的相似度加权后的数值。另外,也可以在第1文字列的文字识别中的识别文字的相似度在规定的基准值以下的情况下不投票。
在这样的投票后,或者在上述步骤3中判断为不匹配的情况下,判断是否还有未比较的文字的组合(步骤6)。通过该比较当判断为还有未比较的文字的组合的情况下,返回上述步骤4再次处理。
当判断出全部的文字都已比较完的情况下,投票结果比较部分19,在作为投票结果得到的矩阵的倾斜方向上进行规定的计算(步骤7)。这时,投票结果计算部分19,在计算值用存储器20中制成与矩阵的倾斜方向的成分对应的长度(数)的线段。在被制成在该计算值用存储器20中的线段上,存储计算结果。
如果投票结果的计算值被存储在计算值用存储器20中,则匹配确定部分21,根据存储在计算值用存储器20中的值算出表示第2文字列和第1文字列匹配的程度的得分。
例如,在匹配确定部分21中得到的得分,被作为相似度算出。这种情况下,用第2文字列的长度,或者第1文字列的长度正规化被存储在计算值用存储器20中的值的峰值,把该正规化后的峰值值作为文字列的匹配的相似度。该相似度,在第2文字列和第1文字列越接近时越高。
匹配确定部分21,判断基于被存储在计算用存储器20中的值的峰值值的得分是否是高得分(步骤8)。是否是高得分的判断,可以根据是否在规定的得分以上判断,也可以根据和其它的第2文字列的候补的匹配的得分的比较结果判断。
当通过上述判断判断为是高得分的情况下,匹配确定部分21,判断为第1文字列和第2文字列匹配,并输出匹配结果(步骤9)。
另外,当匹配确定部分21判断为非高得分的情况下,改变第2文字列返回上述步骤2,再次执行处理。
如上所述,对把第2文字列和第1文字列作为两条边的矩阵进行投票,进行投票后的矩阵倾斜方向的计算。根据该计算结果的峰值的得分判断是否匹配。
由此,可以通过简单的投票进行考虑了文字列的排列的匹配处理,可以防止在第1文字列的各文字的位置和第2文字列的各文字的位置不同的情况下判定为匹配的现象。
接着,说明在第1文字列的前后带有干扰的情况下使用矩阵的匹配处理。
图8是用于说明对在文字列“STRING”之前带有称为“IT”的2个文字程度的干扰的第1文字列的匹配处理的图。即,图8展示,在第1文字列是“ITSTRING”、第2文字列是“STRING”的情况下,被制成的矩阵、对矩阵的投票结果,以及匹配的投影结果。
这种情况下,因为第2文字列和第1文字列的长度不同,所以矩阵制成部分16,在矩阵用存储器17上制成与第1文字列对应的纵边长(与列数相比行数多)的矩阵。
作为这样的第1文字列“ITSTRING”的干扰的“I”以及“T”,和第2文字列“STRING”的“I”以及“T”匹配。因此,比较投票部分18,在矩阵中,在与作为第1文字列的干扰的“I”以及“T”对应的行,和与第2文字列的“I”以及“T”对应的列交叉的矩阵位置上进行投票。
矩阵制成部分16对应第1文字列“ITSTRING”和第2文字列“STRING”制成的矩阵,为8行6列,行数比列数多。因此,在计算用存储器20上,如图8所示,制成长度(数)是DICLEN+SEARCHLEN-1=13的线段。被存储在该线段上的值,对应相对于矩阵的行方向45度的线段的投影成分的计算值。例如,如图8所示,在取矩阵投影的情况下,投影结果计算部分19,对通过第8行第1列和第3行第6列的方向的成分计算线段的投影。
在这样制成于计算用存储器20上的线段上,存储相对于矩阵的右倾斜下方向的成分的投票结果的计算值。根据被存储在该计算值用存储器20中的值,可以得到峰值的位置离开线段中心的值。这是因为,由于称为干扰的文字的长度(文字数)附在第1文字列上所以第1文字列的长度比第2文字列的长度长,相当于干扰的部分出现在作为投票结果的计算值的线段上的缘故。因而,对前后有干扰的第1文字列和第2文字列进行匹配的情况下,可以根据投票结果的计算值判断被包含在第1文字列中的干扰。
即,在作为投票结果的计算值的线段中根据从峰值的位置到两端的长度,就可以判断干扰在第1文字列的前后的哪一边,有几个。
当在作为投票结果的计算值的线段中从峰值位置到左端部分的长度比(DICLEN-1)长的情况下,判断为干扰附在第1文字列的前面。另外,当从峰值位置到右端的长度比(DICLEN-1)长的情况下,判断为干扰附在第1文字列的后面。
例如,当作为投票结果的计算值取矩阵的倾斜方向的投影的情况下,如果假设投影线段的长度是PROJLEN、从投影线段的左下到峰值位置的长度是PEAKLEN、第2文字列的长度是DICLEN时,附在第1文字列的前面的干扰的数NHEAD为NHEAD=PROJLEN-PEAKLEN-(DICLEN-1)另外,附在第1文字列后面的干扰的数NTAIL为NTAIL=(PEAKLEN-1)-(DICLEN-1)如上所述,当在第1文字列的前后附有干扰时,根据作为投票结果的计算值的线段的从峰值的位置到端部的长度就可以判断干扰的数。另外,长度比(DICLEN-1)长的一方根据从峰值的位置向右端还是向左端就可以判断干扰是附在第1文字列的前面还是附在后面。
接着,如上所述,参照图9的流程图说明在第1文字列的前后附有干扰情况下的匹配处理。
即,和上述步骤1~步骤8一样,第1文字列输入部分14,以及第2文字列输入部分12,把第1文字列、第2文字列存储在第1文字列存储器15、第2文字列存储器13中(步骤11、12)。矩阵制成部分16,在矩阵用存储器17中以第2文字列为横轴,以第1文字列为纵轴制成矩阵(步骤13)。
而后,比较投票部分18,对于各文字,判断第2文字列的文字和第1文字列的文字各文字是否匹配,在匹配的情况下,对矩阵进行投票(步骤14、15、16)。
如果有关全部的文字的组合的比较结束,则投票结果计算部分19,根据投票结果的矩阵进行倾斜方向的计算(步骤17)。该计算值,被存储在被制成在计算用存储器20中的线段上。根据被存储在该计算值用存储器20中的计算值,匹配确定部分21,判断基于峰值的得分是否是高得分(步骤18)。通过该判断当判断为基于峰值的得分不是高得分的情况下,改变第2文字列返回上述步骤12,再次执行处理。
另外,当判断为基于峰值的得分是高得分的情况下,干扰消除部分23,分别计数从被存储在计算值存储器20中的作为计算值的线段的峰值位置到右端以及到左端的长度。干扰消除部分23,根据是否比这样计数的“长度是辞典文字列的长度-1(DICLEN-1)”长,判断在第1文字列的前后是否有多余的干扰(与干扰对应的线段上的计算值)(步骤19)。总之,当两端距峰值位置的长度都是DICLEN-1的情况下,判断为没有多余的干扰,当距峰值位置的长度比DICLEN-1长的情况下,判断为有多余的干扰。
当通过该判断判断为没有多余的干扰的情况下,干扰消除部分23,输出由匹配确定部分21确定的匹配结果(步骤20)。
另外,当判断为有多余的干扰的情况下,干扰消除部分23,只根据多余干扰的数,从第1文字列的前面或者后面消除多余的干扰文字(步骤21),并作为匹配结果输出(步骤22)。这时,干扰消除部分23,从距峰值位置的长度比DICLEN-1长的一端,只将比DICLEN-1长的部分作为干扰消除。由此,就可以消除附在第1文字列的前面或者后面的干扰。
如上所述,在与第1文字列和第2文字列对应矩阵中对相同文字交叉的位置上进行投票,进行倾斜方向的计算。根据该计算结果判断峰值的位置,根据峰值判断匹配的结果。进而,根据从峰值位置到右端或者左端的长度是否比“第2文字列的长度-1”长判断干扰的有无。
由此,即使在第1文字列中包含有干扰,也可以实现高精度的匹配处理,可以判定第1文字列的干扰的有无。
另外,在判断为有干扰时,判定为从投影的峰值位置到投影的2端的长度(数)中,在比“第2文字列的长度-1”长的一方中包含有干扰,从距峰值位置的长度长的一端,只将长度长的部分判断为干扰并消除。
由此,作为匹配的结果可以输出消除了干扰的文字列,可以提高匹配的精度。
接着,说明在第1文字列中包含干扰的情况下的使用矩阵的匹配处理。
图10是用于说明在文字列“STRING”之间带有叫做“N”的干扰的第1文字列的情况下的匹配处理的图。即,图1O,展示在第1文字列是“STNRING”、第2文字列是“STRING”的情况下的矩阵、向矩阵的投票结果,以及投票结果的计算值。
这种情况下,因为第2文字列和第1文字列的长度不同,所以矩阵制成部分16,和在第1文字列的前后附有干扰的情况一样,在矩阵用存储器17中制成与第1文字列对应的行比与第2文字列对应的列多的矩阵。
作为这样的第1文字列“STNRING”的干扰的“N”,在第2文字列“STRING”中和“N”匹配。因此,比较投票部分18,在与第1文字列的“N”对应的行和与第2文字列的“N”对应的列交叉的矩阵的位置上进行投票。
这种情况下,矩阵如图10所示,为7行6列。因此,在计算用存储器20中,制成长度为DICLEN+SEARCHLEN-1=12的线段。被存储在该线段中的值,对应于相对矩阵的行方向45度的线段方向的投影成分的计算值。例如,如图10所示,当取矩阵的投影的情况下,投票结果计算部分19,对通过第7行第1列和第2行第6列的方向的成分计算线段的投影。
在这样制成于计算值用存储器20中的线段上,存储相对于矩阵的右倾斜下方向的投票结果的计算值。例如,在把投票值设置为1,取矩阵的投影的情况下,如图10所示,在计算值用存储器20中,得到峰值位置的投票数(峰值)是4的计算结果。该峰值,不够作为辞典文字列的长度(数)的6。这是因为在附于第1文字列之间的干扰的前后,投影的线段上的位置移动了1个的缘故。
另外,在图10所示的例子中,与干扰后的文字列对应的部分的峰值为4,与对应于干扰前面的部分的峰值位置相邻的右上位置的投票数表示为2。因此,将峰值位置的投票数和与峰值位置相邻的位置投票数相加的值,与第1文字列和第2文字完全匹配时的投票数(辞典文字列的文字列数)一致。
即,当只允许包含在第1文字列之间的干扰为1个的情况下,邻接计算部分24,通过在投票结果的计算值的线段中根据与峰值位置的计算值和与峰值位置相邻的位置的计算值进行规定的计算(再计算)。当该相邻位置的计算值是高得分的情况下,判断为第1文字列和第2文字列匹配。这时,判断为在第1文字列之间夹着1个干扰。
例如,如图10所示,当作为投票结果的计算值取矩阵的投影的情况下,如果只允许一个包含在第1文字列之间的干扰,则加算峰值位置的投票数4和相邻的位置的投票数2。由此,峰值位置和与峰值位置相邻的位置的投票数为6与第2文字列的文字数一致。
另外,当增加包含在第1文字列之间的干扰数的允许范围的情况下,邻接计算部分24,根据峰值位置附近的位置计算值,只对允许范围的干扰部分进行规定的再计算。由此,可以在考虑文字列的排列的同时,进行与允许的干扰数对应的匹配处理。
如上所述,当只允许规定的数的干扰包含在第1文字列之间的干扰的情况下,根据允许的干扰的数,对作为投票结果的计算值的线段的峰值位置和峰值位置附近的位置的值进行再计算,根据该计算值判定匹配。
由此,即使在第1文字列之间包含干扰的情况下,也可以实现考虑了文字列排列的高精度的匹配处理。
接着,如上所述,参照图11的流程图说明在第1文字列之间附有干扰的情况下的匹配处理。
即,和上述步骤1~步骤8一样,第1文字列输入部分14,以及第2文字列输入部分12,把第1文字列、第2文字列存储在第1文字列存储器15、第2文字列存储器13中(步骤31、32)。矩阵制成部分16,在矩阵用存储器17上以第2文字列作为横轴,以第1文字列为纵轴制成矩阵(步骤33)。
而后,比较投票部分18,对各文字,判断第2文字列的文字和第1文字列的文字和各文字是否匹配,在匹配的情况下,对矩阵进行投票(步骤34、35、36)。
如果有关全部文字组合的比较结束,则投票结果计算部分19,根据投票结果的矩阵进行倾斜方向的计算(步骤37)。该计算值,被存储制成于计算用存储器20中的线段中。根据被存储在该计算值用存储器20中的计算值,匹配确定部分21,判断基于峰值的得分是否是高得分(步骤38)。
当通过该判断判断为是基于峰值的得分是高得分的情况下,匹配确定部分21,输出匹配结果(步骤39)。
另外,当判断为基于峰值的得分不是高得分的情况下,邻接计算部分24,根据峰值位置和邻接的位置的值进行规定的计算(再计算)(步骤40)。由此,匹配确定部分21,判断再次计算后的计算值是否是高得分(步骤41)。当通过该判断判断为不是高得分的情况下,改变第2文字列返回上述步骤32,再次执行处理。
另外,当再次计算峰值位置和相邻的位置的值的计算值是高得分的情况下,匹配确定部分21,输出第1文字列和第2文字列匹配这一匹配结果。与此同时,匹配确定部分21,输出在第1文字列中包含干扰的结果(步骤42)。
进而,如上述那样当根据峰值位置和相邻的位置的值进行的再计算后判定为匹配的情况下,还可以判断包含在第1文字列中的干扰的位置。这种情况下,把未在峰值位置或者成为再计算的对象的峰值位置和相邻的位置上投票的文字判定为干扰。
如上所述,在第1文字列和第2文字列对应的矩阵中在相同的文字交叉的位置进行投票,计算在倾斜方向上的投票结果。根据作为该计算结果的线段判断峰值位置,根据峰值位置的值判定匹配的结果。通过该判定结果当未显示峰值位置的值匹配的情况下,根据峰值位置的值和与峰值位置相邻的位置的值进行再计算,根据该再计算的值判定匹配的结果。
由此,即使在第1文字列之间包含干扰的情况下,也可以实现高精度的匹配处理,可以判定第1文字列的干扰的有无。
接着,说明不对矩阵投票,直接对存储投票结果的计算值的线段投票的情况。
图12是概略地展示直接向存储投票结果的计算值的线段投票的情况下的文字列匹配处理部分30的构成的图。
如图12所示,文字列匹配处理部分30,由第1文字列输入部分14、第1文字列存储器15、投票用表数据库31、投票部分32、投票用存储器33、匹配确定部分21、匹配结果输出部分22、干扰消除部分23、邻接计算部分24构成。
上述投票用表数据库31,存储有辞典文字列。
上述投票部分32,根据被存储在上述第1文字列存储器15中的第1文字列和上述投票用表数据库31的第2文字列,对投票用存储器33投票。
接着,说明由上述那样构成的文字列匹配处理部分30进行的匹配处理。该文字列匹配处理部分30,不制成矩阵,而根据第1文字列的各文字和第2文字列的各文字的位置关系直接对投票用存储器33投票,判定匹配结果。
在上述投票用存储器33中,制成与第1文字列的长度(文字数)以及第2文字列的长度(文字数)对应的长度(数)的线段。被制成在该投票用存储器33中的线段,是与以第1文字列为横轴、以第2文字列为纵轴的矩阵的向右倾斜下方向的成分对应的长度。在该投票用存储器33上的线段,矩阵的倾斜方向的成分分别被投票在对应的位置上。
在矩阵的对角线方向的位置对应的投票用存储器33上的线段上,累积投票的值。这时,被累积在线段上的值,在每次投票时由投票部分32进行规定的计算后被存储在投票用存储器33上。其结果,在投票结束时,不通过向矩阵投票,就可以在投票用存储器33上,直接得到相当于作为对上述矩阵的投票结果的在上述计算值用存储器22上的投票结果的计算值的线段的部分。
在此,当设第1文字列的长度为SEARCHLEN、第2文字列的长度为DICLEN的情况下,以第1文字列为横轴、以第2文字列为纵轴的矩阵的右倾斜向下方向的成分,是SEARCHLEN+DICLEN-1个。因此,在投票用存储器33上,准备SEARCHLEN+DICLEN-1个长度的投票位置。
在第1文字列的第SEARCHP的文字和第2文字列的第DICP的文字匹配的情况下,向投票用存储器33投票的位置POS是POS=(SEARCHP-DICP)+(DICLEN-1)该投票的位置POS,成为以第1文字列为横轴、以第2文字列为纵轴的矩阵的SEARCHP行DICP列的成分对应的投票用存储器33上的位置。
例如,当匹配处理第1文字列“STRING”和第2文字列“STRING”的情况下,在投票用存储器33上,准备作为SEARCHLEN+DICLEN-1=11个长度的投票位置的线段。
如果把该投票用存储器33的投票位置如图13所示,设置成从右开始0、1、2、……、10,则在第1文字列的第i个文字和第2文字列的第j个文字是相同的文字的情况下,对投票用存储器33的第(j-i)+(DICLEN-1)的投票位置进行投票。
例如,作为第1文字列的第2文字的“T”和作为第2文字列的第2号的“T”匹配。这种情况下,在投票用存储器33的第POS=(2-2)+(6-1)=5位置上投票。
图14是用于说明在作为投影线段的投影用存储器33上直接进行投票的情况下的匹配处理的流程图。
即,第1文字列输入部分14,输入第1文字列(步骤51),将其存储在第1文字列存储器15中。另一方面,第2文字列输入部分12,从匹配用文字列数据库11中输入第2文字列(步骤52),将其存储在第2文字列存储器13中。
而后,如果设第1文字列的文字数为m,设第2文字列的文字数为n,则投票部分32,判断第1文字列的第i(i=1~m)个的文字和第2文字列的第j(j=1~n)个文字是否是相同的文字(步骤53)。这时,投票部分32,在投票用存储器33中设备m+n-1个长度的投票位置。
投票部分32,在判断为第1文字列的第i个文字和第2文字列的第j个文字是相同的文字时,根据上式,在POS=(i-j)+(n-1)所示的投票用存储器33的投票位置上直接进行投票(步骤54)。这时,向投票用存储器33的投票,和向上述的矩阵投票的情况一样,当第1文字列是通过文字识别的识别文字的情况下,进行基于识别文字的相似度,或者识别文字的文字候补的优先顺序加权的投票。
另外,在进行投票时,投票部分32,用投票的值,和已经存储在投票用存储器33中的值进行规定的计算,改写被存储在投票用存储器33中的值。
如果对全部文字的组合的比较结束(步骤55),则匹配确定部分21,根据被存储在该投票用存储器33中的投票结果的值判定第2文字列和第1文字列的匹配程度(步骤56、57)。
这种情况下,匹配确定部分21,根据投票结果,可以如上述步骤18~22那样判定第1文字列的前后的干扰,还可以如上述步骤38~步骤42那样,判定包含在第1文字列之间的干扰。
如上所述,可以在以第1文字列为横轴、以第2文字列为纵轴的矩阵的倾斜方向的成分对应的线段上直接进行投票,判定匹配。
由此,第1文字列和第2文字列的匹配处理的效率高,可以谋求处理的高速化。
接着,说明通过图15所示的投票用表数据库31,在使用表查找的投影线段上直接进行投票的匹配处理。
这种情况下,如图15所示,准备投票用表数据库31。该投票用表数据库31,具有2个表。如图15所示,左边的表(第1表)31a与第1文字列对应,右边的表(第2表)31b与第2文字列对应。
左边的表31a,例如,如26个字母的情况下的“a”~“z”那样取与文字种类对应的文字(图案的种类)为纵轴,取在第1文字列中出现的顺序位置(第1文字列的开头的位置)的从第1位置开始到可能的位置为横轴。
右边的表31b,取各第2文字列为纵轴,与各第2文字列对应的投影线段为横轴。相对于该各第2文字列设置的横轴与上述计算值用存储器20或者上述投票用存储器33对应。
进而,左边的表31a和右边的表31b,以接线连接对应的位置。总之,右边的表31b的各第2文字列的线段的位置与在左边的表中特定的文字和出现的顺序位置对应。例如,在图15中,左边的表31a的“a”的第1个,和右边的表31b的第2文字列“AMERICA”的线段的中央位置以及右端的位置连接。
使用上述那样的表31,以第1文字列为基准,在左边的表31a中找到相应的位置,对该位置连接的右边的表31b进行投票。这样,对右边的表31b的各第2文字列进行与第1文字列的各文字对应的投票。
由此,在右边的表31b中,可以得到各第2文字列对于第1文字列的投票结果的值。进而,如果在该右边的表31b中得到各第2文字列的投票结果的值,则对于右边的表31b进行从上边开始的检索,用和上述顺序同样的顺序进行第1文字列和各第2文字列的匹配。
如上所述,预先使对应第1文字列存储文字的表,和对应第2文字列成为投影线段的表相关联,从第1文字列直接投票到相对各第2文字列的线段。根据作为其结果得到的相对各第2文字列的投票结果的值,判定和各第2文字列的匹配结果。
由此,可以谋求在匹配处理中的处理速度的高速化。
另外,在上述实施例中,说明了第1文字列是1个的情况,但在文字识别装置等中,因为第1文字列可以作为识别文字列的候补得到,所以可以对于第1文字列的各文字加权后进行投票。
例如,在各文字的识别结果是以文字候补的顺序得到的情况下,根据识别结果的顺序,可以在投票的得分上加权后投票。另外,当各文字的识别结果以相似度得到时,可以投票与各文字的相似度对应进行加权的得分。
这样,在第1文字列可以作为文字识别的结果得到的情况下,通过在第1文字列的各文字上进行加权后的投票,就可以进行高精度的匹配处理。
另外,当第1文字列是识别文字,并且该识别文字的相似度在一定的水平之下的情况下,可以设置成即使和第2文字列的文字一致也不投票。
由此,在第1文字列由识别文字构成时,除了相似度极低的文字外可以进行匹配处理,可以提高和由识别文字构成的第1文字列进行匹配处理的精度。
另外,当第1文字列的各文字作为文字识别结果在每个优先位置上得到多个候补的情况下,把第1文字列的各文字作为多个候补,通过判定这些候补和第2文字列的各文字的一致就可以进行匹配。这种情况下,例如,即使和第1个候补不一致,在和第2个候补一致的情况下投票。
由此,在第1文字列由识别文字构成时,当作为识别文字的各文字的候补有多个的情况下可以实现考虑了多个文字候补的高精度的匹配处理。
如上所述,比较第1文字列的各文字和第2文字列的各文字,对由与第1文字列的各文字和第2文字列的各文字分别对应的2边组成的矩阵投票,对矩阵倾斜方向的每个成分计算投票结果的值。根据该投票结果的计算值,判定匹配结果。由此,可以进行考虑文字排列,高速并且高精度地进行抗干扰强的匹配处理。
如上所述,如果采用本发明,则可以提供可以进行高速且高精度,考虑文字排列,进而,抗干扰性高,干扰位置可以特定的匹配处理的图案列匹配装置和图案列匹配方法和文字列匹配装置和文字列匹配方法。
权利要求
1.一种图案列匹配装置,用于对分别由多个图案组成的第1图案列和第2图案列进行匹配处理,其特征在于包括投票单元,它用于在对上述第1图案列的各图案和上述第2图案列的各图案匹配时,对应于匹配的图案的上述第1图案列中的位置以及上述第2图案列的位置进行投票;判定单元,它根据该投票单元的投票结果,判定匹配结果。
2.如权利要求1所述的图案列匹配装置,其特征在于进一步包括制成单元,它制成由与上述第1图案列的各图案对应的行、和与上述第2图案列的各图案对应的列组成的矩阵,上述投票单元,对于由上述制成单元制成的矩阵,在第1图案列的图案和第2图案列的图案匹配的情况下,在与匹配的图案对应的行和列的交叉位置上投票,上述判定单元,根据用上述投票单元在上述矩阵上投票的投票结果,判定匹配结果。
3.如权利要求2所述的图案列匹配装置,其特征在于进一步包括计算单元,它对用上述投票单元投票的矩阵,计算与在倾斜方向上的投票结果有关的计算值,上述判定单元,根据用上述计算单元计算出的投票结果的计算值,判定匹配结果。
4.如权利要求1所述的图案列匹配装置,其特征在于进一步包括存储器,它用于在和上述第2图案列的图案匹配的情况下,存储由与上述第1图案列的各图案对应的行和与上述第2图案列的各图案对应的列组成的矩阵在倾斜方向的计算值,根据上述投票单元投票的值,进行与上述矩阵的倾斜方向有关的计算,并将计算值存储在上述存储器中,在上述投票单元的投票结束时,根据被存储在上述存储器中的计算值判定匹配结果。
5.如权利要求2所述的图案列匹配装置,其特征在于上述计算装置包括用正规化与投票结果有关的计算值后的值进行计算的单元,上述判定单元包括根据与被正规化的投票结果有关的计算值判定匹配结果的单元。
6.如权利要求2所述的图案列匹配装置,其特征在于上述判定单元包含,根据上述计算单元的计算值,和上述第1图案列的长度,和第2图案列的长度,判定上述第2图案列与上述第1图案列的哪部分匹配的单元。
7.如权利要求1所述的图案列匹配装置,其特征在于进一步包括第1表,它特定出现在上述第1图案列中的图案种类,和在上述第1图案列中出现的图案的顺序;第2表,与用上述第1表特定的图案的种类和出现的顺序对应,对各种第2图案列的每一列,存储与上述矩阵的倾斜方向的投票结果有关的计算值,上述投票单元,对于上述第1图案列的各图案,在与用上述第1表特定的图案的种类和出现的顺序固定对应的上述第2表上进行投票,上述判定单元,根据用上述投票单元投票的上述第2表判定匹配的结果。
8.如权利要求2所述的图案列匹配装置,其特征在于上述第1图案是由多个文字组成的第1文字列,上述第2文字列是由多个文字列组成的第2文字列。
9.如权利要求2所述的图案列匹配装置,其特征在于上述第1文字列是由有相似度的识别文字组成的检索文字列,上述第2文字列是辞典的辞典文字列的文字,上述投票单元根据上述第1文字列的识别文字的相似度进行投票。
10.如权利要求2所述的图案列匹配装置,其特征在于上述第1图案列是由具有优先顺序的文字候补组成的检索文字列,上述第2文字列是辞典的辞典文字列的文字,上述投票单元进行基于上述第1文字列的文字候补的优先顺序加权后的投票。
11.一种图案列匹配方法,用于进行由多个图案组成的第1图案列和第2图案列的匹配处理,其特征在于在上述第1图案列的各图案和上述第2图案列的各图案进行匹配时,对应于匹配的图案的上述第1图案列中的位置以及上述第2图案列中的位置进行投票,根据该投票结果,判定匹配结果。
12.如权利要求11所述的图案列匹配方法,其特征在于进一步制成由与上述第1图案列的各图案对应的行、和与上述第2图案列的各图案对应的列组成的矩阵,上述投票,对于被制成的矩阵,在和第2图案列的图案匹配的情况下,在与匹配的图案对应的行和列交叉的位置上进行,上述判定,根据被投票在上述矩阵上的投票结果,判定匹配结果。
13.如权利要求12所述的图案列匹配方法,其特征在于进一步对上述被投票的矩阵,计算与倾斜方向中的投票结果有关的计算值,上述判定,根据上述投票结果的计算值,判定匹配结果。
14.如权利要求11所述的图案列匹配方法,其特征在于对上述投票的值,在进行了与上述矩阵的倾斜方向有关的计算后,在与上述第2图案列的图案匹配时,被存储在存储由与上述第1图案列的各图案对应的行、和与上述第2图案列的各图案对应的列组成的矩阵的在倾斜方向上的计算值的存储器中,在上述投票结束时,根据被存储在上述存储器中的计算值判定匹配。
15.如权利要求12所述的图案列匹配方法,其特征在于上述计算,用正规化与投票结果有关的计算值后的值计算,上述判定,根据与被正规化的投票结果有关的计算值判定匹配结果。
16.如权利要求12所述的图案列匹配方法,其特征在于上述判定,根据上述计算的计算值,和上述第1图案列的长度,和第2图案列的长度,判定在上述第2图案列中与上述第1图案列的哪部分匹配。
17.如权利要求11所述的图案列匹配方法,其特征在于上述投票,对上述第1图案列的各图案,在与用第1表特定的图案的种类和出现的顺序固定对应的第2表上投票,上述第1表,是特定出现在上述第1图案列上的图案的种类、和在上述第1图案列中出现的图案的顺序的表,上述第2表,是与在上述第1表中特定的图案的种类和出现的顺序固定对应的、对各个第2图案列的每一列存储与上述矩阵的倾斜方向的投票结果有关的计算值的表,上述判定,根据上述被投票的上述第2表,判定匹配结果。
18.如权利要求12所述的图案列匹配方法,其特征在于上述第1图案是由多个文字组成的第1文字列,上述第2图案列是由多个文字组成的第2文字列。
19.如权利要求12所述的图案列匹配方法,其特征在于上述第1图案列是由具有相似度的识别文字组成的检索文字列,上述第2图案列是根据辞典的辞典文字列的文字,上述投票对应上述第1文字列的识别文字的相似度进行投票。
20.如权利要求12所述的图案列匹配方法,其特征在于上述第1图案列是由具有优先顺序的文字候补组成的检索文字列,上述第2图案列是根据辞典的辞典文字列的文字,上述投票进行基于上述第1文字列的文字候补的优先顺序加权后的投票。
全文摘要
本发明通过比较检索文字列的各文字和辞典文字列的各文字,对由与检索文字列的各文字和辞典文字列的各文字对应的两条边组成的矩阵进行投票,对矩阵倾斜方向的每个成分计算投票结果的值。根据该投票结果的计算值,判定匹配结果。由此,可以考虑文字排列,高速并且高精度地进行抗干扰强的匹配处理。
文档编号G06T7/00GK1284686SQ0012253
公开日2001年2月21日 申请日期2000年8月4日 优先权日1999年8月6日
发明者赤木琢磨 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1