本发明的实施方式涉及识别装置、识别方法及程序。
背景技术:
作为进行字符识别中的知识处理的方法,已知有将识别对象的字符串模型化而保存到知识辞典中、将符合模型的字符串作为知识辞典的结果的方法。例如,已知有以下这样的系统,该系统具备:登录有想要对照的单词的单词辞典部、和具有受理登录在单词辞典部中的单词的有限自动机的单词对照部,将有限自动机受理的单词作为知识处理的结果输出(例如,参照专利文献1)。此外,已知有通过将用上下文无关文法记述的地名表述与字符识别候选对照来进行知识处理的技术(例如,参照专利文献2)。
现有技术文献
专利文献
专利文献1:日本特开平11-143893号公报
专利文献2:日本专利第4006176号公报
技术实现要素:
发明要解决的课题
但是,在将识别对象的字符串模型化、将知识处理的结果限定为符合模型的字符串的以往的技术中,作为知识处理的结果难以将不可能的字符串及不自然的字符串等效率良好地排除。例如,在英文中元音字连续5字符以上的字符串作为单词是不自然的,但在以往的技术中,难以将这样的字符串效率良好地排除。
本发明要解决的课题是将不会被使用的字符串及被禁止使用的字符串等效率良好地排除,精度良好地识别字符串。
用来解决课题的手段
有关技术方案的识别装置具备:候选检测部,从输入图像中检测字符候选,上述字符候选是被推测为包含字符的像素的集合;识别部,对上述字符候选的每一个进行识别,生成至少1个识别候选,上述识别候选是识别结果的候选的字符;对照部,将上述至少1个识别候选的每一个与将识别对象的字符串模型化而得到的知识辞典对照,生成将被推测为包含在上述输入图像中的字符串与知识辞典进行对照而得到的对照结果;以及禁用处理部,在上述对照结果中,删除将包含禁止对象的字符串在内的字符串与知识辞典进行对照而得到的对照结果。
附图说明
图1是表示有关实施方式的识别装置10的结构的图。
图2是表示有关实施方式的识别装置10的处理的流程图。
图3是表示输入图像的一例的图。
图4是表示样式数据的结构的图。
图5是表示从输入图像生成一系列的字符候选的处理的图。
图6是表示片断数据的结构的图。
图7是表示片断编号的一例的图。
图8是表示字符候选数据的结构的图。
图9是表示字符候选编号的一例的图。
图10是表示字符候选的起点编号及终点编号的一例的图。
图11是表示字符候选矩阵的一例的图。
图12是表示字符识别辞典的结构的图。
图13是表示识别候选的排列的结构的图。
图14是表示知识辞典的结构的图。
图15是表示禁用辞典的结构的图。
图16是表示第一非确定有限自动机的一例的图。
图17是表示通过将第一非确定有限自动机变换而得到的第二非确定有限自动机的一例的图。
图18是表示对照结果数据的结构的图。
图19是表示对照处理的流程图。
图20是表示知识辞典探索处理的流程图。
图21是表示知识辞典探索处理中的数据的访问的流程的一例的图。
图22是表示禁用辞典探索处理的流程图。
图23是表示禁用辞典探索处理中的数据的访问的流程的一例的图。
图24是表示结果提取的处理的流程的流程图。
图25是表示在结果提取中参照的数据和堆积到堆栈上的字符代码的一例的图。
图26是表示字符和标记的一例的图,所述字符被有关变形例的识别装置10作为识别结果使用,所述标记表示这些字符的类别。
图27是表示将由变形例的识别装置10识别的字符串作为表示字符的类别的标记的列而表现的知识辞典的内容的一例的图。
图28是表示有关变形例的对照结果数据的一例的图。
图29是表示有关实施方式的识别装置10的硬件结构的图。
具体实施方式
图1是表示有关实施方式的识别装置10的结构的图。识别装置10将例如由扫描仪等读取到的输入图像中包含的字符串识别,将识别出的字符串输出。
识别装置10具备输入部30、输入图像存储部32、样式数据存储部34、候选检测部36、候选存储部38、字符识别辞典存储部40、识别部42、知识辞典存储部44、对照部46、对照结果存储部48、禁用辞典存储部50、禁用处理部52、结果提取部54和输出部56。
输入部30将由扫描仪等获取到的输入图像输入。输入部30也可以经由网络等从其他的计算机将输入图像输入。输入图像存储部32将由输入部30输入的输入图像存储。
样式数据存储部34存储对输入图像中的记载有字符串的区域进行确定的样式数据。
候选检测部36基于存储在样式数据存储部34中的样式数据,从输入图像中检测字符候选。各个字符候选是被推测为包含1个字符的像素的集合。候选检测部36将检测出的字符候选向候选存储部38写入。
候选存储部38存储字符候选。进而,候选存储部38与字符候选的每一个对应地存储识别候选,所示识别候选为该字符候选的识别结果的候选的字符。
字符识别辞典存储部40存储字符识别辞典。字符识别辞典保存用来计算识别对象的图像与预先登录的字符的每一个之间的类似度的信息。
识别部42基于存储在字符识别辞典存储部40中的字符识别辞典,对存储在候选存储部38中的字符候选的每一个进行识别。并且,识别部42对于1个字符候选,生成作为识别结果的候选的字符的、至少1个识别候选。识别部42将所生成的至少1个识别候选与字符候选建立对应而向候选存储部38写入。
知识辞典存储部44存储将识别对象的字符串模型化的知识辞典。在本实施方式中,知识辞典是将识别对象的字符串模型化而得到的确定有限自动机。
对照部46将至少1个识别候选分别与知识辞典对照,生成将被推测为包含在输入图像中的字符串与知识辞典对照而得到的至少1个对照结果。在该过程中,对照部46生成包含表示对应的字符串的似真度的得分在内的对照结果。并且,对照部46将所生成的至少1个对照结果向对照结果存储部48写入。
对照结果存储部48存储由对照部46生成的至少1个对照结果。对照结果存储部48存储将对字符候选的识别候选进行排列而得到的字符串从开头起与知识辞典对照的过程中的开始时刻、中途阶段及完成时刻的对照结果。另外,对照部46在对照的中途阶段中,以节约存储区域为目的,也可以将得分较低的对照结果删除。
禁用辞典存储部50存储将禁止对象的字符串模型化而得到的禁用辞典。在本实施方式中,禁用辞典是将禁止对象的字符串模型化而得到的确定有限自动机。
禁用处理部52将至少1个对照结果中的、将包含禁止对象的字符串的字符串与知识辞典对照而得到的对照结果删除。在本实施方式中,禁用处理部52将由对照结果确定的各个字符串与作为确定有限自动机的禁用辞典对照,在字符串被禁用辞典的确定有限自动机受理的情况下,将对应的对照结果删除。
禁用处理部52也可以在由对照部46进行的对照的中途阶段中、产生了将包含禁止对象的字符串在内的字符串与知识辞典对照而得到的对照结果的情况下,将该中途阶段的对照结果删除。此外,禁用处理部52也可以在由对照部46进行的对照全部完成之后,对照在多个对照结果各自中是否包含禁止对象的字符串,进而删除将包含禁止对象的字符串在内的字符串与知识辞典对照而得到的对照结果。
结果提取部54在由对照部46进行的对照及由禁用处理部52进行的删除全部完成之后,基于得分从存储在对照结果存储部48中的至少1个对照结果中选择1个以上的对照结果,提取由所选择的1个以上的对照结果确定的字符串。结果提取部54作为一例,提取由得分最好的对照结果确定的字符串。
输出部56将由结果提取部54提取出的字符串向外部输出。
图2是表示实施方式的识别装置10的处理的流程图。首先,在步骤s1中,识别装置10将输入图像输入。
接着,在步骤s2中,识别装置10从输入图像中,检测字符候选,所述字符候选为被推测为包含1个字符的像素的集合。接着,在步骤s3中,识别装置10基于字符识别辞典识别字符候选的每一个,生成作为识别结果的候选的字符的、至少1个识别候选。
接着,在步骤s4中,识别装置10将至少1个识别候选的每一个与知识辞典对照,生成将被推测为包含在输入图像中的字符串与知识辞典对照而得到的至少1个对照结果。与此同时,在步骤s4中,识别装置10将由对照结果确定的各个字符串与禁用辞典对照,删除将由禁用辞典的确定有限自动机受理的字符串与知识辞典对照而得到的对照结果。
接着,在步骤s5中,识别装置10在对照处理全部完成后,基于得分从对照结果中选择1个对照结果,提取由所选择的对照结果确定的字符串,作为识别结果的字符串。在字符候选的个数是0个的情况下,即在输入图像上不包含字符的情况下,在步骤s5中不生成应选择的对照结果,在此情况下使识别结果的字符串为空字符串。最后,在步骤s6中,识别装置10输出识别结果的字符串。
图3是表示输入图像的一例的图。在本实施方式中,输入图像如图3所示,是由扫描仪等获取了用来订购商品的订购书后得到的图像数据。在输入图像的预先设定的记入框的内侧记入有订购者的姓名。在本实施方式中,识别装置10识别记入在预先设定的记入框的内侧的日语的姓名的字符串,将识别出的表示字符串的文本数据输出。
图4是表示样式数据的结构的图。样式数据存储部34存储预先制作出的样式数据。
样式数据如图4所示,包括表示输入图像所包含的记入框的个数的值、和对记入框的个数的量的记入框记录进行保存的排列。在本例中,排列的最初的条目的索引是0。即,排列是0起始(origin)。另外,在本实施方式中使用的其他排列也只要没有特别的记载就是0起始。记入框记录分别与包含在输入图像中的各个记入框一对一地对应。
各个记入框记录包含表示输入图像内的、对应的记入框的位置的信息。在本例中,表示记入框的位置的信息是对应的记入框的左右的端部的x坐标(横向的坐标)及上下的端部的y坐标(纵向的坐标)。
图5是表示从输入图像生成一系列的字符候选的处理的图。候选检测部36基于记入框记录中示出的信息来确定记入框的区域(例如图5中的由点线包围的区域),从所确定的区域中提取部分区域图像。接着,候选检测部36将提取出的部分区域图像二值化,生成二值图像。接着,候选检测部36在二值图像上提取黑像素的连结成分,对各个连结成分进行加标签(labeling)。加标签后的各个连结成分是构成字符的要素,称作片断。接着,候选检测部36将连续排列的1个以上的片断组合,生成字符候选。字符候选是被推测为表示1个字符的像素的集合。
图6是表示片断数据的结构的图。候选存储部38存储表示片断的片断数据。片断数据如图6所示,包括表示片断的个数的值、和对片断的个数的量的片断记录进行保存的排列。片断记录分别与各个片断一对一地对应。
各个片断记录包含表示对应的片断的位置的信息、和表示片断的形状的二值图像。在本例中,表示片断的位置的信息是对应的片断的左右的端部的x坐标及上下的端部的y坐标,表示该片断的外切矩形。表示片断的形状的二值图像,是在该片断的外切矩形内使该连结成分上的像素为黑像素、使其余为白像素的图像。
候选检测部36关于各个片断,计算中心的x坐标和中心的y坐标。中心的x坐标是左右的端部的x坐标的平均值。中心的y坐标是上下的端部的y坐标的平均值。并且,候选检测部36将排列内的多个片断记录以中心的x坐标的升序整齐排列(日语:整列)。由此,候选检测部36能够将排列内的多个片断记录在记入框中的字符记入方向(在本例中是从左朝右的方向)上整齐排列。
图7是表示片断编号的一例的图。各个片断记录由排列的索引识别。将把片断记录在字符记入方向上整齐排列后的索引称作片断编号。因而,如图7所示那样将片断编号与各个片断建立对应。
图8是表示字符候选数据的结构的图。候选检测部36对连续排列的1个以上的片断进行组合,生成字符候选。在该过程中,候选检测部36以外切的矩形的横宽l为预先设定的长度(lmax)以下的全部的图案,将1个以上的片断组合,生成字符候选。
候选存储部38存储表示字符候选的字符候选数据。字符候选数据如图8所示,包括表示所生成的字符候选的个数的值、字符候选矩阵(详细情况后述)、和保存字符候选的个数量的字符候选记录的排列。字符候选记录分别与各个字符候选一对一地对应。
各个字符候选记录包括表示对应的字符候选的位置的信息、对应的字符候选的起点编号及终点编号(详细情况后述)、表示字符候选的形状的二值图像、和包含识别候选条目的识别候选的排列(详细情况后述)。在本例中,表示字符候选的位置的信息,是对应的字符候选的左右的端部的x坐标及上下的端部的y坐标,表示二值图像上的该字符候选的外切矩形。表示字符候选的形状的二值图像,是在该字符候选的外切矩形内使该字符候选上的像素为黑像素、使其余为白像素的图像。识别候选条目由识别部42设定值,不由候选检测部36设定值。
图9是表示字符候选编号的一例的图。各个字符候选记录由排列的索引识别。将字符候选记录的索引称作字符候选编号。因而,如图9所示,将字符候选编号与各个字符候选建立对应。
图10是表示字符候选的起点编号及终点编号的一例的图。字符候选将连续排列的1个以上的片断组合而生成。因此,字符候选能够由作为源的1个以上的片断的排列中的、针对开头的片断的片断编号和在针对最后的片断的片断编号上加1后的值的集合,来唯一地识别。
在本实施方式中,将针对开头的片断的片断编号称作该字符候选的起点编号,将在针对最后的片断的片断编号上加1后的值称作该字符候选的终点编号。因而,如图10所示,将起点编号及终点编号与各个字符候选建立对应。另外,由于起点编号及终点编号表示字符候选的划分位置,所以也将起点编号及终点编号的两者一起称作位置编号。
图11是表示字符候选矩阵的一例的图。字符候选矩阵如图11所示,是以起点编号为第1索引、以终点编号为第2索引的字符候选编号的二维排列。字符候选矩阵在字符候选记录的生成的开始前,通过将全部的条目设定为-1而被初始化。并且,候选检测部36每当制作了字符候选,就对字符候选矩阵的对应的条目写入字符候选编号。
图12是表示字符识别辞典的结构的图。字符识别辞典存储部40存储预先制作出的字符识别辞典。字符识别辞典如图12所示,包括表示辞典条目的个数的值和保存辞典条目的排列。
各个辞典条目包括字符代码、和预先设定的dsub个基础矢量。基础矢量是表示与字符代码对应的字符的部分空间的特征矢量。特征矢量作为一例,通过将对应的字符的二值图像在纵向及横向上以预先任意设定的个数分割,求出分割后的区域各自的黑像素的个数的比率,将所求出的一系列的比率作为特征矢量的要素来计算。
图13是表示识别候选的排列的结构的图。保存在字符候选记录中的识别候选的排列如图13所示,包括预先设定的ncand个识别候选条目。各个识别候选条目包括字符代码和类似度。
识别部42对字符候选的每一个进行字符识别,生成作为识别结果的候选的字符的至少1个识别候选。在本实施方式中,识别部42对各个字符候选记录生成预先设定的ncand个识别候选条目,向识别候选的排列写入。
更具体地讲,识别部42从包含在对应的字符候选记录中的二值图像中提取特征矢量,通过部分空间法,与保存在字符识别辞典的各个辞典条目中的基础矢量进行对照,来计算类似度。识别部42对于类似度较高的ncand个辞典条目的每一个,提取保存在该辞典条目中的字符代码,生成包括所提取的字符代码和计算出的类似度在内的识别候选条目。并且,识别部42将所生成的ncand个识别候选条目向对应的字符候选记录的识别候选的排列写入。进而,识别部42将在各个字符候选记录的识别候选的排列中包含的识别候选条目以类似度的降序整齐排列。
图14是表示知识辞典的结构的图。知识辞典存储部44存储设计者等预先制作的知识辞典。
在本实施方式中,知识辞典是将识别对象的字符串模型化的确定有限自动机。在本实施方式中,也将作为确定有限自动机的知识辞典称作dfaα。dfaα例如通过设计者将识别对象的字符串以标准表现进行记述、将该标准表现变换为确定有限自动机而生成。
dfaα如图14所示,包括表示状态数的值、保存状态数的量的状态记录的状态排列、和保存边(edge)数的量的边记录的边排列。
各个状态记录与包含在dfaα中的各个状态一对一地对应,状态由状态记录的编号即状态编号唯一地识别。另外,状态排列是0起始,因而状态编号为0的状态是开始状态。各个状态记录包括:受理状态标志、向边排列内的边记录的指针、和边记录的要素数。
受理状态标志表示该状态是否是受理状态。受理状态标志作为一例,在1的情况下表示是受理状态,在0的情况下表示不是受理状态。
向边记录的指针表示边排列内的、从该状态出来的边的集合的保存位置。边记录的要素数表示从该状态出来的边的个数。根据向边记录的指针及要素数,能够确定与从该状态出来的全部的边对应的边记录。
各个边记录与包含在dfaα中的各个边一对一地对应。各个边记录包括迁移目标的状态编号和代码。
迁移目标的状态编号表示用于确定基于该边的迁移目标的状态的状态编号。
代码表示引起由该边表示的迁移的输入标记。在本实施方式中,在代码中保存有表示字符的字符代码。因而,在dfaα中,通过表示识别候选的字符的字符代码,发生从某个状态向其他状态的迁移。
图15是表示禁用辞典的结构的图。禁用辞典存储部50存储设计者等预先制作的禁用辞典。
在本实施方式中,禁用辞典是将禁止对象的字符串模型化的确定有限自动机。禁止对象的字符串是被禁止输入的字符串、不可能输入的字符串及不自然的字符串等,例如由设计者定义。在本实施方式中,也将作为确定有限自动机的禁用辞典称作dfaβ。
dfaβ如图15所示,包括:表示状态数的值、保存状态数的量的状态记录的状态排列、和保存边数的量的边记录的边排列。构成禁用辞典的各个要素与在图14中表示的知识辞典(dfaα)相同,所以省略详细的说明。
dfaβ通过设计者将禁止对象的字符串用标准表现记述(模型化),将该标准表现变换为第一非确定有限自动机,将第一非确定有限自动机变换为第二非确定有限自动机,将第二非确定有限自动机变换为确定自动机而得到。
图16是表示第一非确定有限自动机的一例的图。图17是表示通过将第一非确定有限自动机变换而得到的第二非确定有限自动机的一例的图。在图16所示的自动机中,从开始状态到受理状态为止的路径上的输入标记列表示禁止对象的字符串。
第二非确定有限自动机通过将图16所示那样的第一非确定有限自动机用以下的次序变换而得到。首先,对于第一非确定有限自动机,追加从开始状态向开始状态返回、且全部的字符(代码)被分配为输入标记的自循环的边。接着,通过对追加了自循环的自动机追加从除了开始状态以外的全部的状态分别向开始状态返回、并分配了空标记ε作为输入标记的空边(ε迁移),能得到图17所示那样的第二非确定有限自动机。
即,第二非确定有限自动机如图17所示,从开始状态到受理状态的路径上的输入标记列表示禁止对象的字符串。进而,第二非确定有限自动机包括:从开始状态向开始状态返回、且全部的字符被分配为输入标记的自循环的边;和从除了开始状态以外的全部的状态分别向开始状态返回、并被分配空标记作为输入标记的空边。
通过将这样构成的第二非确定有限自动机变换为确定有限自动机而得到的dfaβ为将禁止对象的字符串模型化而得到者,构成为,在输入了包括禁止对象的字符串在内的字符串的情况下,向受理状态可靠地迁移。
另外,从标准表现生成非确定有限自动机或确定有限自动机的方法、从非确定有限自动机生成确定有限自动机的方法例如记载在a.v.エイホ,r.セシィ,j.d.ウルマン著,原田健一译,コンパイラi,初版1986,pp.134-172等中。
图18是表示对照结果数据的结构的图。对照部46将包含在字符候选中的识别候选的每一个从开头起依次与知识辞典对照,生成将被推测为记载在输入图像的记入框内的字符串与知识辞典对照而得到的对照结果。并且,对照部46将所生成的对照结果向对照结果存储部48写入。与此同时,禁用处理部52将由对照结果确定的字符串与禁用辞典对照,将表示禁用辞典的确定有限自动机所受理的字符串的对照结果从对照结果存储部48删除。
对照结果存储部48存储对照结果数据。对照结果数据在各个位置编号的每一个中包括:对照结果的个数和对照结果的排列。
对照结果的个数表示与该位置编号建立了关联的对照结果的个数。对照结果的排列保存与该位置编号建立了关联的对照结果。各个对照结果包括状态编号α、状态编号β、得分、代码、和位置编号及对照结果的编号的对。此外,各个对照结果用将保存目标的排列建立了关联的位置编号、及保存目标的作为排列内的排列要素的编号的对来唯一地识别。以后,将与对照结果的保存目标的排列建立了关联的位置编号称作“与对照结果建立了关联的位置编号”,将对照结果的保存目标的作为排列内的排列要素的编号称作“对照结果的编号”。
状态编号α表示知识辞典(dfaα)的状态。即,状态编号α表示对应于从开头的识别候选到该位置的识别候选的各个字符、使dfaα从开始状态依次迁移的情况下到达的状态。
状态编号β表示禁用辞典(dfaβ)的状态。即,状态编号β表示对应于在由该对照结果确定的字符串中包含的各个字符、使dfaβ从开始状态依次迁移的情况下到达的状态。
得分表示将与从开头的识别候选到该位置的识别候选为止的各个识别候选建立了对应的类似度累计而得到的值。即,得分表示从开头的识别候选到该位置的识别候选为止的字符串的似真度。代码是表示该位置的识别候选的字符的字符代码。
位置编号及对照结果的编号的对(pair)表示一边从开头到该位置为止1个个地探求字符候选、一边以字符候选的识别候选为输入标记而使dfaα迁移、一边生成对照结果的过程中的与紧前的对照结果建立了关联的位置编号及紧前的对照结果的编号。在结果提取部54提取识别结果的字符串时参照位置编号及对照结果的编号的对。
图19是表示对照处理的流程图。参照图19对在图2的步骤s4中表示的对照处理的详细情况进行说明。
首先,在步骤s11中,对照部46将对照结果数据初始化。具体而言,对照部46关于对照结果数据的全部的位置编号,将对照结果的个数设定为0,并使对照结果的排列为空。
接着,在步骤s12中,对照部46与位置编号0建立关联地生成新的1个对照结果。新的1个对照结果中,状态编号α及状态编号β被设定为0,得分被设定为0,位置编号及对照结果的编号被设定为-1,代码被设定为-1。接着,在步骤s13中,对照部46将与位置编号0建立了关联的对照结果的个数设定为1。接着,在步骤s14中,对照部46将0代入到表示位置编号的变量pst中。
接着,在步骤s15中,对照部46判断pst是否是pstmax以下。pstmax是从最后的位置编号ped减去了1的值。对照部46在pst是pstmax以下的情况下(步骤s15的真),将处理向步骤s16推进。
在步骤s16中,对照部46将禁用处理部52调出。在步骤s16中,禁用处理部52对于与位置编号pst建立了关联的各个对照结果,使用禁用辞典执行禁用辞典探索处理。由此,禁用处理部52能够删除将包含禁止对象的字符串在内的字符串与知识辞典对照而得到的对照结果。另外,关于禁用辞典探索处理的详细情况参照图22及图23后述。
接着,在步骤s17中,对照部46将与pst建立了关联的对照结果缩减为从得分最高起到第npr个。即,对照部46将得分比第npr个低的对照结果删除。
接着,在步骤s18中,对照部46对与pst建立了关联的各个对照结果,使用知识辞典而执行知识辞典探索处理。由此,对照部46能够生成与比pst靠后的位置编号建立了关联的新的对照结果。另外,关于知识辞典探索处理参照图20及图21在后面叙述。
接着,在步骤s19中,对照部46对pst加1。对照部46如果结束步骤s19,则将处理向步骤s15返回。并且,对照部46反复进行从步骤s16到步骤s19的处理,直到pst超过pstmax。
在pst不是pstmax以下的情况下(步骤s15的假),对照部46将处理向步骤s20推进。在步骤s20中,对照部46将禁用处理部52调出。在步骤s20中,禁用处理部52对于与最后的位置编号ped建立了关联的各个对照结果,使用禁用辞典来执行禁用辞典探索处理。由此,禁用处理部52能够将得到了禁止对象的字符串与知识辞典对照后的结果的对照结果删除。并且,对照部46如果结束步骤s20的处理,则结束本流程。
图20是表示知识辞典探索处理的流程图。图21表示知识辞典探索处理中的数据访问的流程的一例。
一边参照图20及图21,一边说明图19的步骤s18的知识辞典探索处理。首先,在步骤s31中,对照部46参照对照结果数据,列举与pst建立了关联的全部的对照结果。
接着,在步骤s32中,对照部46参照字符候选数据的排列内的字符候选记录,列举以pst为起点位置的全部的字符候选。对照部46扫描字符候选矩阵中的起点编号与pst一致的全部的条目,收集-1以外的字符候选的编号,从而能够列举以pst为起点位置的全部的字符候选。
接着,对照部46对在步骤s32中列举出的全部的字符候选记录的每一个执行步骤s34~步骤s48的处理(步骤s33与步骤s49之间的循环处理)。之后,将与该循环处理中的处理对象的字符候选记录对应的字符候选称作“字符候选cc”。
在步骤s34中,对照部46参照与字符候选cc对应的字符候选记录的识别候选的排列,列举该字符候选的全部的识别候选条目。
接着,对照部46对在步骤s34中列举的全部的识别候选条目的每一个执行步骤s36~步骤s47的处理(步骤s35与步骤s48之间的循环处理)。之后,将与该循环处理中的处理对象的识别候选条目对应的识别候选称作“识别候选cr”。
接着,对照部46对在步骤s31中列举出的、与pst建立了关联的全部的对照结果的每一个,执行步骤s37~步骤s46的处理(步骤s36与步骤s47之间的循环处理)。之后,将该循环处理中的处理对象的对照结果称作“对照结果mp”。
在步骤s37中,对照部46参照知识辞典(dfaα),列举与对照结果mp中包含的状态编号α对应的状态记录。
接着,在步骤s38中,对照部46通过在步骤s37中列举的状态记录中包含的向边记录的指针及边记录的要素数,确定边记录被保存的范围,列举表示从状态编号α的状态出去的边的全部的边记录,所述边记录表示从状态编号α的状态出去的边。
接着,对照部46对步骤s38中列举的全部的边记录的每一个执行步骤s40~步骤s45的处理(步骤s39与步骤s46之间的循环处理)。之后,将该循环处理中的处理对象的边记录称作“边记录er”。
在步骤s40中,对照部46判断设定在识别候选cr的识别候选条目中的字符代码与设定在边记录er中的字符代码是否一致。在不一致的情况下(步骤s40的否),对照部46将处理向下个边记录转移,重复从步骤s40起的处理。在一致的情况下(步骤s40的是),对照部46将处理向步骤s41推进。
在步骤s41中,对照部46与字符候选cc的字符候选记录的终点位置建立关联而生成新的对照结果mn,向对照结果数据写入。
接着,在步骤s42中,对照部46在新的对照结果mn中作为状态编号α而设定边记录er中所设定的状态编号(迁移目标的状态编号)。此外,对照部46对新的对照结果mn作为状态编号β而设定-1。
接着,在步骤s43中,对照部46在新的对照结果mn中作为代码而设定识别候选cr的识别候选条目中所设定的字符代码。
接着,在步骤s44中,对照部46在新的对照结果mn中作为位置编号而设定与对照结果mp建立了关联的位置编号pst。此外,对照部46在新的对照结果mn中作为对照结果的编号而保存对照结果mp的编号。
接着,在步骤s45中,对照部46在新的对照结果mn中作为得分而设定将保存在对照结果mp中的得分与保存在识别候选cr的识别候选条目中的类似度相加后的值。
在步骤s46中,对照部46如果对于全部的边记录,结束步骤s40~步骤s45的处理,则脱离循环,将处理向步骤s47推进。
在步骤s47中,对照部46如果对于与pst建立了关联的全部的对照结果,结束了步骤s37~步骤s46的处理,则脱离循环,将处理向步骤s48推进。
在步骤s48中,对照部46如果对于与字符候选cc对应的全部的识别候选条目,结束了步骤s36~步骤s47的处理,则脱离循环,将处理向步骤s49推进。
并且,在步骤s49中,对照部46如果对于全部的字符候选记录,结束了步骤s34~步骤s48的处理,则脱离循环,结束本流程。
这样,对照部46在第1字符候选的对照结果中,写入表示通过对照而到达的知识辞典(dfaα)的状态的编号(状态编号α)。并且,对照部46当将接着第1字符候选的第2字符候选与知识辞典(dfaα)对照时,通过从由写入到第1字符候选的对照结果中的编号(状态编号α)表示的状态沿着对应于由第2字符候选的识别候选带来的状态迁移的边,来对照第2字符候选。
图22是表示禁用辞典探索处理的流程图。图23表示禁用辞典探索处理中的数据的流动。
边参照图22及图23边说明禁用辞典探索处理。首先,在步骤s51中,禁用处理部52参照对照结果数据,列举与pst建立了关联的全部的对照结果。
接着,禁用处理部52对在步骤s51中列举出的全部的对照结果的每一个执行步骤s53~步骤s62的处理(步骤s52与步骤s63之间的循环处理)。之后,将该循环处理中的处理对象的对照结果称作“对照结果mt”。
在步骤s53中,禁用处理部52取得由保存在对照结果mt中的位置编号及对照结果的编号确定的紧前的对照结果m。
接着,在步骤s54中,禁用处理部52参照禁用辞典(dfaβ),取得与保存在紧前的对照结果m中的状态编号β对应的状态记录。
接着,在步骤s55中,禁用处理部52通过在步骤s54中取得的状态记录中保存的向边记录的指针及边记录的要素数,确定保存有表示从状态编号β的状态出去的边的边记录的范围,列举表示从状态编号β的状态出去的边的全部的边记录。
接着,在步骤s56与步骤s58之间的循环处理中,禁用处理部52对步骤s55中列举的全部的边记录的每一个,执行步骤s57的判断处理。之后,将该循环处理中的处理对象的边记录称作“边记录et”。
在步骤s57中,禁用处理部52判断保存在处理对象的对照结果mt中的字符代码是否与保存在边记录et中的字符代码一致。在不一致的情况下(步骤s57的否),禁用处理部52向下个边记录的处理转移,重复步骤s57的处理。在一致的情况下(步骤s57的是),禁用处理部52从步骤s56与步骤s58之间的循环处理脱离,将处理向步骤s59推进。
在步骤s59中,禁用处理部52确认由边记录et的迁移目标的状态编号确定的状态记录st的受理状态标志,判断与状态记录st对应的dfaβ的状态是否是受理状态。
在是受理状态的情况下(步骤s59的是),在步骤s61中,禁用处理部52将对照结果mt删除。在不是受理状态的情况下(步骤s59的否),在步骤s60中,禁用处理部52在对照结果mt中作为状态编号β而设定边记录et的迁移目标的状态编号。
此外,禁用处理部52在步骤s56与步骤s58之间的循环处理中,在字符代码关于全部的边记录不一致的情况下,将处理向步骤s62推进。在步骤s62中,禁用处理部52在对照结果mt中作为状态编号β而设定表示初始状态的0。
如果结束步骤s60、步骤s61或步骤s62的处理,则禁用处理部52对于下个对照结果从步骤s52起重复处理。
并且,在步骤s63中,禁用处理部52如果对于全部的对照结果,结束了步骤s53~步骤s62的处理,则脱离循环,结束本流程。
这样,禁用处理部52将表示通过对照由第1对照结果确定的字符串而到达的禁用辞典(dfaβ)的状态的编号(状态编号β),向第1对照结果写入。并且,当禁用处理部52将由第2对照结果确定的字符串对照时,通过从写入到第1对照结果中的编号所表示的dfaβ的状态沿着对应于由第2字符候选的识别候选带来的状态迁移的边,将由第2对照结果确定的字符串对照,第2对照结果是将接着第1对照结果的第2字符候选与知识辞典(dfaα)对照而得到的。
图24是表示由结果提取部进行的结果提取的处理的流程的图。图25是表示在结果提取中参照的数据与在堆栈上堆积的字符代码的状况的图。
图2的步骤s5所示的结果提取由结果提取部54进行。之后,参照图24及图25对结果提取的详细情况进行说明。首先,在步骤s70中,结果提取部54确认字符候选的个数是否是0,在字符候选的个数是0的情况下,在步骤s84中使识别结果的字符串为空字符串,结束本流程。在字符候选的个数不是0的情况下,在步骤s71中,结果提取部54在列举了与最后的位置编号ped建立了关联的全部的对照结果后,执行步骤s72以后的处理。
接着,在步骤s72中,结果提取部54对于在步骤s71中列举出的对照结果的每一个,从知识辞典(dfaα)取得与状态编号α对应的状态记录,确认受理状态标志。
接着,在步骤s73中,结果提取部54判断是否有与状态编号α对应的状态为受理状态的对照结果。之后,将与状态编号α对应的状态为受理状态的对照结果称作“dfaα中受理状态的对照结果”。在有dfaα中受理状态的对照结果的情况下(步骤s73的是),在步骤s74中,结果提取部54在dfaα中受理状态的对照结果中,选择得分最大的对照结果,作为对照结果mx。在没有dfaα中受理状态的对照结果的情况下(步骤s73的否),在步骤s75中,结果提取部54在列举出的全部的对照结果中,选择得分最大的对照结果,作为对照结果mx。
接着步骤s74或步骤s75的处理,在步骤s76中,结果提取部54将与所选择的对照结果mx建立了关联的位置编号px代入到表示位置编号的变量p中。此外,结果提取部54将所选择的对照结果mx的编号mx代入到表示对照结果的编号的变量m中。
接着,在步骤s77中,结果提取部54将作为filo(firstinlastout,先入后出)存储器的堆栈清空。
接着,在步骤s78中,判断p和m所指的对照结果的代码是否是-1。在p和m所指的对照结果的代码不是-1的情况下(步骤s78的假),结果提取部54将处理向步骤s79推进。
在步骤s79中,结果提取部54将保存在p和m所指的对照结果中的代码向堆栈堆积。接着,在步骤s80中,结果提取部54在p中代入保存在p和m所指的对照结果中的位置编号,在m中代入保存在p和m所指的对照结果中的对照结果的编号。
并且,结果提取部54如果结束步骤s80的处理,则将处理向步骤s78返回,在保存在p和m所指的对照结果中的代码成为-1之前,重复步骤s79和步骤s80的处理。由此,结果提取部54如图25所示,能够从字符串的末尾起依次选择字符代码,推升到堆栈中。
在p和m所指的对照结果的代码是-1的情况下(步骤s78的真),即,在指与位置编号为0建立了关联的对照结果的情况下,结果提取部54将处理向步骤s81推进。在步骤s81中,结果提取部54将保存在存储器中的识别结果的字符串初始化为空字符串。
接着,在步骤s82中,判断堆栈是否是空。在堆栈不是空的情况下(步骤s82的假),结果提取部54在步骤s83中从堆栈的顶部起将代码取出1个,向保存在存储器中的识别结果的字符串的末尾追加。
如果结束了步骤s83的处理,则结果提取部54将处理向步骤s82返回,在堆栈成为空之前重复步骤s83的处理。由此,结果提取部54能够生成从字符串的开头到末尾。
并且,结果提取部54在堆栈为空的情况下(步骤s82的真),结束本流程的处理。
如以上这样,本实施方式的识别装置10使用将禁止对象的字符串模型化的禁用辞典,删除将包含禁止对象的字符串在内的字符串与知识辞典对照而得到的对照结果。由此,在本实施方式的识别装置10中,能够将不会被使用的字符串及被禁止使用的字符串等效率良好地排除,将字符串精度良好地识别。
(变形例)
有关变形例的识别装置10除了知识辞典及对照结果数据的形式、和对照部46、禁用处理部52及结果提取部54的作用不同这些点以外,与参照图1至图25说明过的结构是同样的。以下,关于变形例的识别装置10,说明与参照图1至图25说明过的结构的不同点。
图26是表示由变形例的识别装置10作为识别结果使用的字符、和表示这些字符的类别的标记的一例的图。图27是表示将由变形例的识别装置10识别的字符串作为表示字符的类别的标记的列而示出的知识辞典的内容的一例的图。
变形例的识别装置10使用将对表示字符的类别的标记进行了排列的字符串模型化的知识辞典。表示字符的类别的标记作为一例,使用了表示从1到9的数字的标记“n”,表示从0到9的数字的标记“n”,表示连字符的标记“-”,表示在高级公寓名、公寓名、栋名中使用的字符的标记“m”。知识辞典包含有图27所示那样的、排列有这些标记的通配符字符串。
图28是表示变形例的对照结果数据的一例的图。在本变形例中,包含在对照结果数据中的对照结果的每一个包括得分s、已替换字符数c、和将通配符字符串部分地用识别结果替换后的字符串w的组。
对照结果数据与每一个位置编号对应而包括保存有对照结果的排列和排列的要素数。另外,在图28中,对照结果的字符串w的显示有下划线的字符表示从通配符被替换为识别结果的部分。
在本变形例中,对照部46首先将知识辞典中包含的字符串的每一个复制,并设定到位置编号0的对照结果的排列的要素中,从而将位置编号0的对照结果的排列初始化。在各个对照结果中,作为得分而设定0,作为已替换字符数而设定0,作为字符串w而设定从知识辞典复制的字符串。接着,对照部46一边使位置编号pst从1到pstmax依次1个个地增加,一边生成位置编号pst+1以后的对照结果。
在本变形例中,对照部46在知识辞典探索处理中,取得对照结果的已替换字符数c,在该对照结果的字符串w的第c个字符与字符候选cc的识别候选cr的字符代码一致的情况下,与等于字符候选cc的终点编号的位置编号建立关联,生成新的对照结果mn。对于新的对照结果mn,设定对紧前的对照结果的得分加上识别候选cr的类似度后的得分、已替换的字符数c+1、和将对照结果的字符串w的第c个字符替换为识别候选cr后的字符串。
在本变形例中,禁用处理部52在禁用辞典探索处理中,取得对照结果的已替换字符数c,确认对照结果的字符串的到第c-1个字符为止的部分字符串是否由保存在禁用辞典中的dfaβ进行了受理。并且,禁用处理部52在被受理的情况下,将该对照结果删除,在没有被受理的情况下使该对照结果保留。
这样,识别装置10只要是通过将对识别对象的字符串进行模型化的知识辞典和字符候选对照而得到对照结果的方法,则用怎样的方法将字符串对照都可以。此外,识别装置10只要是根据对照结果来检测禁止对象的字符串的方法,则用怎样的方法检测禁止对象的字符串都可以。
图29是表示实施方式的识别装置10的硬件结构的图。
识别装置10可以由能够执行程序的通常的计算机系统实现。识别装置10作为一例而具备显示器110、键盘112、扫描仪114、外部存储装置116、通信装置118和计算机120。
显示器110是显示装置,显示识别出的字符串等。键盘112是输入装置,受理来自用户的操作而输入信息。扫描仪114将记载在纸等上的信息读取,取得输入图像等。外部存储装置116是硬盘驱动器或光盘驱动器等,存储各种信息。通信装置118经由因特网等与外部的计算机等输入输出信息,例如从外部取得输入图像,或将字符串向外部输出。
计算机120作为一例而具有cpu122、输入输出控制部124和存储装置126。cpu122、输入输出控制部124及存储装置126通过总线128连接。
cpu122执行程序,进行识别装置10的整体的控制。输入输出控制部124是与显示器110、键盘112、扫描仪114、外部存储装置116及通信装置118等的接口。此外,输入输出控制部124还控制经由总线128的数据转送等。
存储装置126包括rom、ram或硬盘驱动器等。在存储装置126中,用相同的地址空间对于rom、ram或硬盘驱动器等的哪种设备都能够访问。存储装置126存储程序、输入图像、样式数据、辞典数据(字符识别辞典、知识辞典及禁用辞典)及作业数据(字符候选及对照结果)等。这些数据可以存储到构成存储装置的任何设备(rom、ram及硬盘驱动器)中。此外,这些数据也可以一部分或全部被存储到外部存储装置116或经由通信装置118可访问的服务器等中。
由本实施方式的识别装置10执行的程序被以可安装的形式或可执行的形式的文件记录到cd-rom、软盘(fd)、cd-r、dvd等能够由计算机读取的记录媒体中来提供。此外,也可以构成为,将由本实施方式的识别装置10执行的程序保存到连接在因特网等网络上的计算机上,通过经由网络下载来提供。此外,也可以构成为,将由本实施方式的识别装置10执行的程序经由因特网等网络提供或分发。
由本实施方式的识别装置10执行的程序为包括上述各部(输入部30、候选检测部36、识别部42、对照部46、禁用处理部52、结果提取部54及输出部56)的模组结构,作为实际的硬件,cpu122(处理器)通过从上述存储介质将程序读出并执行,将上述各部装载到主存储装置上,在存储装置126上生成输入部30、候选检测部36、识别部42、对照部46、禁用处理部52、结果提取部54及输出部56。另外,输入部30、候选检测部36、识别部42、对照部46、禁用处理部52、结果提取部54及输出部56也可以一部或全部由硬件构成。
说明了本发明的一些实施方式,但这些实施方式是作为例子提示的,不是要限定发明的范围。这些新的实施方式能够以其他各种各样的形态实施,在不脱离发明的主旨的范围内能够进行各种各样的省略、替换、变更。这些实施方式及其变形包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明和其等价的范围中。