用于切分具有不同字符宽度的文本行中的字符的方法和系统的制作方法

文档序号:6437803阅读:169来源:国知局
专利名称:用于切分具有不同字符宽度的文本行中的字符的方法和系统的制作方法
技术领域
本发明涉及光学字符识别,更具体地说,涉及一种用于切分具有不同字符宽度的文本行中的字符的方法和系统。
背景技术
在光学字符识别(Optical Character Recognition,OCR)系统中,通常,如图3中的流程图所示执行OCR处理。首先,输入通过扫描仪或照相机或者通过其它装置获取的文档图像。该包括多个文本行的文档图像然后被分割成文本行图像。对于每个文本行图像,对该文本行中的字符执行字符切分。之后,基于字符切分的结果,执行字符识别以产生识别结果。通常,在字符切分步骤中,首先基于黑像素投影把文本行图像切分成字符。根据字符宽度、字符高度和行高度等的统计信息,计算平均字符宽度(average character width,ACW)。可选地,此时,可以执行根据连通域方法的字符切分。当切出字符的宽度大于平均字符宽度时,将根据平均字符宽度或者根据如在日本专利申请公报JP05-128307中公开的边界跟踪方法对其进行强制切分(force-split)。然后,通过根据平均字符宽度创建不同的切分模式(路径),把字符的片段(fragments)进行组合。最后,识别所有模式下的字符,并将不同切分模式下的最佳切分结果选择作为字符切分的结果。在该流程中,平均字符宽度是判断一个字符区域是包括一些实际字符还是只包括一个字符的部分或者多个字符的部分的非常重要的标准。在切分字符或者创建合理的切分模式的过程中,平均字符宽度也是重要的判断条件。然而,本发明的发明人发现,当文档图像中的文本行由具有彼此不同的宽度的字符构成时,看起来有时候一个均一的平均字符宽度无法适合于该文本行中的所有字符。如果平均字符宽度适合于“宽”字符,则一些连通的字符可能不会被正确切分,或者一些字符会被错误地组合为一个字符。“宽”的平均字符宽度还会导致更多的可能的切分模式,这涉及了更多的计算时间或复杂性。如果平均字符宽度仅仅适合于“窄”字符,则一些“宽”字符将被错误地切分成片段。这两种情况都将降低OCR精度。图4A和图4B中例示了说明现有技术中存在的缺陷的一些例子。在图4A中,文本行同时包括一些全宽字符和一些半宽字符(例如,字母、数字或者全宽字符的左或右偏旁)。当使用均一的平均字符宽度来切分字符时,在图4A中示出了字符切分的结果。在该现有技术的例子中,发生了一些字符切分错误,例如,日本汉字“特開”被错误地切分为片段。在图4B中,示出了使用现有技术的字符切分结果。即使对于相同的字体和字号,以日语作为例子,一些假名的宽度也不同于其它假名和/或日本汉字的宽度。例如,具有不同宽度的假名“ Λ 3 ”(在图4B的第二行中)被错误地切分。另外,由于在文本行中存在一些连通的字符,所以难以仅仅基于平均字符宽度找到最佳切分结果。例如,图4B中的假名^ ” (在第一行中)和“ &。”(在第三行中)是连通字符的例子,从而根据现有技术被错误地切分。因此,需要一种能够切分包括全宽字符和半宽字符或者包括具有不同字符宽度的假名和日本汉字的文本行中的字符从而提高OCR精度的技术。还需要一种能够切分具有连通域的字符的技术。

发明内容
考虑到前述的现有技术中存在的多个技术问题,提供了一种用于切分具有不同字符宽度的文本行中的字符的新的方法和系统。根据本发明的一个方面,提供了一种用于切分具有不同字符宽度的文本行中的字符的方法,包括以下步骤:第一切分步骤,根据基于投影的方法将所述文本行切分为第一字符集合;计算步骤,基于所述第一字符集合计算平均字符宽度;强制切分步骤,基于计算的平均字符宽度,对所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合;设置步骤,针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及组合步骤,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。

根据本发明的另一方面,提供了一种用于切分具有不同字符宽度的文本行中的字符的系统,包括:第一切分单元,被配置为根据基于投影的方法将所述文本行切分为第一字符集合;计算单元,被配置为基于所述第一字符集合计算平均字符宽度;强制切分单元,被配置为基于计算的平均字符宽度,对所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合;设置单元,被配置为针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及组合单元,被配置为通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。与根据现有技术的方法的图4A和图4B中的错误切分结果相比,图20A和图20B示出了应用根据本发明的方法后的切分结果。从图20A中的切分结果中,可以清楚地看出,包括全宽字符(日本汉字)和半宽字符(字母和数字)的文本行中的字符被正确切分。从图20B中的切分结果中,可以清楚地看出,包括具有连通部分的字符(诸如假名“〃 ^ ”(在第一行中)和“ (在第三行中))的文本行中的字符也被正确切分。基于正确的字符切分结果,对于包括全宽字符和半宽字符的文本行或者包括具有不同字符宽度的假名和日本汉字的文本行或者包括具有连通部分的字符的文本行,光学字符识别的精度将大幅提闻。通过参照附图的以下说明,本发明的另外的特征和优点将变得明显。


包含在说明书中并且构成说明书的一部分的附图例示了本发明的实施例,并且与说明一起用来解释本发明的原理。图1是例示了根据本发明的用于切分具有不同字符宽度的文本行中的字符的计算装置的布置的框图。图2是示出了根据本发明的一个实施例的用于切分具有不同字符宽度的文本行中的字符的系统的一般结构的功能框图。图3是示出了本发明在光学字符识别中的应用的流程图。图4A和图4B示出了根据现有技术的对于具有不同字符宽度的文本行中的字符的字符切分结果的例子。图5是示出了根据本发明的一个实施例的用于切分具有不同字符宽度的文本行中的字符的方法的流程图。图6是示出了根据本发明的一个实施例的字符切分方法的每个步骤的切分结果的表格。图7示出了需要强制切分处理的文本行的例子。图8示出了在强制切分处理中使用的切分组的例子。图9示出了需要添加新切分点的强制切分的例子。图10是示出了根据本发明的一个实施例的图5中的方法的步骤S200的处理的流程图。图11是示出了根据本发明的一个实施例的图5中的方法的步骤S300的处理的流程图。图12是示出了根据本发明的一个实施例的图5中的方法的步骤S400的处理的流程图。图13是基于平均字符宽度在一个切分组中寻找切分点的一种方法的流程图。图14示出了如何在切分组中设置搜索位置。图15是示出了动态确定的搜索点的搜索范围的表格。图16示出了步骤S400之后的强制切分结果。图17是示出了根据本发明的一个实施例的图5中的方法的步骤S500的处理的流程图。图18是示出了根据本发明的另一个实施例的图5中的方法的步骤S500的处理的流程图。图19示出了图17中的步骤S530的详细处理。图20A和图20B示出了在应用了根据本发明的方法后对于具有不同字符宽度的文本行中的字符的字符切分结果的例子。
具体实施例方式在下面将参照附图详细说明本发明的实施例。在本说明书中,术语“左”和“右”表示当按照人正常阅读文档时的通常方式观看图像时的左手侧和右手侧。
在本说明书中,术语“字符”表示切分结果中的个体元素,其可以是实际字符、实际字符的一部分、标点或它们的任意组合。在本说明书中,除非另外指明,否则所有尺寸(诸如高度或宽度)的单位是“像素”。例如,L < 5是指L小于5个像素。图1是例示了根据本发明的用于切分具有不同字符宽度的文本行中的字符的计算装置的布置的框图。为了简明起见,该系统被示出为建立在单个计算装置中。然而,无论该系统是建立在单个计算装置中还是建立在作为网络系统的多个计算装置中,该系统都是有效的。如图1中所示,计算装置100用于实现切分具有不同字符宽度的文本行中的字符的处理。计算装置100可以包含CPU 101、芯片组102、RAM 103、存储控制器104、显示控制器105、硬盘驱动器106XD-ROM驱动器107、以及显示器108。计算装置100还可以包括连接在CPU 101和芯片组102之间的信号线111、连接在芯片组102和RAM 103之间的信号线112、连接在芯片组102和各种外围装置之间的外围装置总线113、连接在存储控制器104和硬盘驱动器106之间的信号线114、连接在存储控制器104和⑶-ROM驱动器107之间的信号线115、以及连接在显示控制器105和显示器108之间的信号线116。客户端120可以直接或经由网络130连接到计算装置100。客户端120可以将字符切分任务发送给计算装置100,并且计算装置100可以将切分结果返回给客户端120。图2是示出了由各个模块单元构成的用于切分具有不同字符宽度的文本行中的字符的系统的一般结构的框图。如图2中所示,字符切分系统200可以包括:第一切分单元201,被配置为根据基于投影的方法将文本行切分为第一字符集合;计算单元203,被配置为基于所述第一字符集合计算平均字符宽度;可选的第二切分单元205,被配置为使用连通域方法对所述第一字符集合中的宽字符进行切分,以获得第三字符集合;强制切分单元207,被配置为基于计算的平均字符宽度,对所述第三字符集合中的宽字符进行强制切分,以获得第二字符集合;设置单元209,被配置为针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及组合单元211,被配置为通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。在字符切分系统200中,第二切分单元205被用于进一步提高光学字符识别的精度,并且在一个实施例中可以被省略。为此,第二切分单元205由虚线指示。如果省略了第二切分单元205,则强制切分单元207被配置为基于计算的平均字符宽度,直接对由第一切分单元201获得的所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合。上述单元是用于实现下面要描述的处理的示例性优选模块,可以通过硬件或软件实现。以上并未穷尽地描述用于实现各步骤的模块。然而,当存在执行特定处理的步骤时,就存在用于实现该处理的对应的功能模块或单元。图5是示出了根据本发明的一个实施例的用于切分具有不同字符宽度的文本行中的字符的方法的流程图。该方法包括:第一切分步骤,根据基于投影的方法将文本行切分为第一字符集合(Sioo);计算步骤,基于所述第一字符集合计算平均字符宽度(S200);可选的第二切分步骤,使用连通域方法对所述第一字符集合中的宽字符进行切分,以获得第三字符集合(S300);强制切分步骤,基于计算的平均字符宽度,对所述第三字符集合中的宽字符进行强制切分,以获得第二字符集合(S400);设置步骤,针对所述第二字符集合中的不同字符设置不同的平均字符宽度(S500);以及组合步骤,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。在图5中,第二切分步骤S300被用于进一步提高光学字符识别的精度,并且在一个实施例中可以被省略。为此,步骤S300由虚线指示。如果省略了第二切分步骤S300,则在强制切分步骤S400中基于计算的平均字符宽度,直接对在第一切分步骤SlOO中获得的所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合。在步骤SlOO中,基于原始文本行图像,使用基于投影的方法对文本行中的字符进行切分以得到第一字符集合。这里,基于投影的方法包括黑像素投影、白像素投影等,它们都是光学字符识别领域中众所周知的字符切分方法,因此在此不再详细描述。第一字符集合中的字符数被计算为VI。图6是示出了根据本发明的实施例的字符切分方法的每个步骤的切分结果的表格。在通过基于投影的方法切分图6中的文本行的情况下,获得该表格中的第一行。在此情况下,Vl = 14。在步骤SlOO中,连通的字符以及具有分离的左右偏旁的字符会被错误地切分。例如,该表格的第一行中的日本汉字“能”就被错误地切分。在步骤S200中,基于第一字符集合计算整个文本行的平均字符宽度。稍后将说明步骤S200的细节。在一个实施例中,为了进一步提高光学字符识别的精度,根据本发明的字符切分方法可以包括步骤S300。在步骤S300中,使用连通域方法切分第一字符集合中的宽字符,以获得第三字符集合。这里,连通域方法也是光学字符识别领域中众所周知的字符切分方法,因此在此不再详细描述。所谓的“宽”字符表示其宽度大于阈值THO的字符。THO大于0.9XACW,并且例如THO = 1.1XACW。第三字符集`合的字符数被计算为V2。在通过连通域方法切分图6中的文本行的情况下,获得该表格中的第二行。在此情况下,V2 = 16。即使采用通过连通域方法的切分,一些连通的字符仍未被切分,诸如图4B中的假名^ ”。将在稍后说明步骤S300的细节。在步骤S400中,基于计算的平均字符宽度对第三字符集合(或者在省略了步骤S300的情况下为第一字符集合)进行强制切分,以获得第二字符集合。即使在可选的步骤S300之后,在文本行中仍然存在宽度大于阈值THO的宽字符。因此,需要进行强制切分。第二字符集合的字符数被计算为V3。在通过强制切分来切分图6中的文本行的情况下,获得该表格中的第三行。在此情况下,V3 = 27。将在稍后说明步骤S400的细节。在步骤S500中,针对第二字符集合中的不同字符,设置不同的平均字符宽度。针对宽字符(或者全宽字符)设置一个(较大的)ACW,并且针对正常字符(或者半宽字符)设置另一个ACW。将在稍后说明步骤S500的细节。在步骤S600中,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。简短地说,通过强制切分获得的第二字符集合中的字符可能是实际字符的片段(例如,日本汉字“能”被切分为两个部分)。为了获得实际字符,存在这些片段的许多可能的组合,这也被称为切分模式。切分模式表示第二字符集合中的相邻字符的组合。平均字符宽度是创建合理的模式时的非常重要的条件。均一的平均字符宽度将不适合为同一文本行中的宽字符和窄字符两者进行模式约束。这意味着合适的平均字符宽度将会排除不合理的模式并且包括正确的模式,这降低了计算量并且提高了 OCR的精度。本发明主要关注何时以及如何为单个文本行计算不同的平均字符宽度。使用计算的平均字符宽度来进行模式约束的方法在光学字符识别领域是众所周知的,并且对其的详细说明之一可以在“ASurvey of Methods and Strategies in Character Segmentation,,(Richard G.Casey andEric Lecolinet,IEEE Transactions on pattern analysis and machine intelligence,Vol.18, N0.7, July 1996)中找到。图10是示出了根据本发明的一个实施例的图5中的方法的步骤S200的处理的流程图。在步骤S210中,计算第一字符集合的粗略平均字符宽度ACWl。也就是说,在该计算中,考虑(文本行中的)第一字符集合中的所有字符。然后,为了确定计算出的平均字符宽度ACWl是否合适,如下计算ACWl的置信度。对三种类型的字符进行计数。将第一字符集合中的所有字符计数为值Cl。将宽高比合理的字符计数为值C2。将宽高比合理并且宽度接近ACWl的字符计数为值C3。这里,如果一个字符的宽高比被视为合理,则需要满足:1-TH16 <宽高比< 1+TH16,其中TH16例如是范围为0.1到0.5的阈值,优选地,TH16 = 0.1。如果一个字符的宽度被视为接近ACW1,则需要满足:(1-TH16)*ACW1 <字符宽度< (1+TH16)^ACfflο在得到值Cl、C2和C3之后,ACffl的置信度=Minimum (C2/C1, C3/C2),其中,Minimum (A,B)是指A和B中的最小值。如果计算出的ACWl的置信度小于阈值THl (其中,THl例如大于0.6,并且优选地,THl = 0.75),这意味着ACWl不是足够合适,则处理继续进行到步骤S220。否则,ACWl被用作整个文本行的ACW。

在步骤S220中,计算从第一字符集合中选择的宽高比在预定范围内的字符的平均字符宽度ACW2。例如,宽高比的预定范围为[1-TH17,1+TH17] (TH17的范围为O到0.4),并且宽高比的预定范围优选地为
。计算这些选择的字符的平均字符宽度ACW2。除了在计算C3时用ACW2代替ACWl以外,按照与步骤S210中相同的方式计算ACW2的置信度。如果计算出的ACW2的置信度小于阈值TH1,意味着ACW2不是足够合适,那么处理继续进行到步骤S230。否则,使用ACW2作为整个文本行的ACW。在步骤S230中,根据前一文本行或下一文本行的平均字符宽度计算平均字符宽度ACW3。具体地,确定当前文本行的相邻(前一或下一)文本行是否存在以及当前文本行和相邻文本行之间的行高度差是否小于阈值TH2,其中,TH2 = X^cLineHeight和pLineHeight中较大的一个,X的范围为0.1到0.5, cLineHeight是当前文本行的最大字符高度,PLineHeight是相邻文本行的最大字符高度。如果确定结果是否定的,那么处理继续进行到步骤S240。如果确定结果是肯定的,那么计算相邻文本行的平均字符宽度的置信度。如果该置信度小于阈值TH1,那么处理继续进行到步骤S240 ;否则,通过下面的式子根据相邻文本行的平均字符宽度计算当前文本行的平均字符宽度ACW3:ACW3 = coeff X ACffcurrentune+(1-coeff) X ACffprevious(orNext)Line其中,coeff的范围为O到I并且优选地为0.7,并且ACWamentune = ACffl或ACW2。在步骤S240中,通过将文本行的高度乘以一个值来计算平均字符宽度ACW4。通过将文本行的高度乘以一个值,获得平均字符宽度ACW4。然后,除了在计算C3时用ACW4代替ACffl以外,按照与步骤S210中相同的方式计算ACW4的置信度。如果计算出的置信度小于阈值TH1,使用ACWl作为整个文本行的ACW ;否则,使用ACW4作为整个文本行的ACW。图10仅仅例示了根据本发明的计算整个行的平均字符宽度的一种优选方法。在一个简化的实施例中,不必计算置信度以及基于图10中的级联式方法获得平均字符宽度,可以按照下述的方式之一直接计算平均字符宽度:计算第一字符集合的平均字符宽度;计算从第一字符集合中选择的宽高比在预定范围内的字符的平均字符宽度;根据前一文本行或下一文本行的平均字符宽度计算平均字符宽度;或者通过将文本行的高度乘以一个值来计算平均字符宽度。图11是示出了根据本发明的一个实施例的图5中的方法的步骤S300的处理的流程图。在图5中的方法中,步骤S300是可选的。在步骤S310中,对于第一字符集合中的字符宽度大于阈值THO的每个字符(即,其为宽字符),使用连通域方法对该宽字符进行切分。这里,THO = XXACW,X例如大于0.9并且优选地X =1.1。在步骤S310之后,获得第三字符集合。把第三字符集合的字符数计算为V2。在通过连通域方法切分图6中的文本行的情况下,获得该表格中的第二行。在步骤S320中,如果在步骤S310中切分出过多的字符,即,如果V2/V1大于阈值TH4(TH4大于1.1,优选地TH4 = 1.3),则使用在步骤S210中描述的方法重新计算平均字符览度。图12是示出了根据本发明的一个实施例的图5中的方法的步骤S400的处理的流程图。由于步骤S300是可选的,在步骤S300被省略的情况下对步骤S400的输入可以是第一字符集合(基于投影的方法的切分结果),或者在包括步骤S300的情况下对步骤S400的输入可以是第三字符集合(连通域方法的切分结果)。为了简化说明,作为示例仅说明前一情况。但是,本领域技术人员将理解,本发明以相同的方式也适用于后一情况。在步骤S410中,对于第一字符集合中的每个字符,确定该字符是否具有大于阈值TH5的宽度(B卩,是否过宽)。这里,TH5 = X*ACW,X大于1,并且优选地X = 1.1。如果确定结果是肯定的,则要使用步骤S420-S450对该字符进行强制切分。图7示出了需要强制切分处理的文本行的例子。例如,假定处理图7中的文本行图像并且在步骤S200中计算的平均字符宽度为78。在步骤SlOO之后(甚至在步骤S300之后),图7中用圆形标记的字符无法被正确切分,该标记的字符的宽度为104。由于104 > 1.1*78,所以该标记的字符是览子符并且将被强制切分。在步骤S420中,对于该宽字符,产生由该宽字符或者该宽字符和相邻字符的组合构成的多个切分组,并且基于平均字符宽度,搜索每个切分组中的可能的切分点,并且获得每个切分点的分数。以图7中的宽字符为例,产生了四个切分组,如图8所示。图8示出了在强制切分处理中使用的切分组的例子。在图8中从左到右,作为单独的当前字符、当前字符与前一字符的组合、当前字符与下一字符的组合、当前字符与前一字符和下一字符的组合,顺序地示出了四个切分组。然后,基于平均字符宽度,分别从每个切分组的左边缘开始以及从每个切分组的右边缘开始,搜索各个切分组中的可能的切分点,并获得每个切分点的分数。
现在,将参照图13说明步骤S420的详细处理。图13是基于平均字符宽度在一个切分组中寻找切分点的一种方法的流程图。在步骤S421中,根据平均字符宽度设置切分组中的一个或多个搜索位置。这些搜索位置位于从该切分组的左边缘和右边缘起的位置(N*ACW)处,其中,N= 1,2,...,INT(切分组的宽度/ACW),并且INT⑴等于X的整数部分。以图8中的四个切分组作为例子,在图14中示出了所有的搜索位置。图14示出了如何在切分组中设置搜索位置。在图14中,四个行分别对应于图8中的四个切分组,左侧列示出了从切分组的左边缘开始搜索可能的切分点的情况,右侧列示出了从切分组的右边缘开始搜索可能的切分点的情况。在步骤S422中,对于每个搜索位置,根据平均字符宽度的倍数与搜索位置所处于的切分组的宽度之间的差,动态地判定以该搜索位置为中心的切分点搜索范围。具体地说,在每个搜索位置附近搜索可能的切分点。根据ACW的倍数和切分组的宽度之间的差动态地判定切分点搜索范围。切分点搜索范围是以搜索位置为中心的[_TH7,TH7]。例如,TH7 =5% *ACW。假定Ratio =“切分组的宽度"M0D“ACW”/“ACW”(M0D表示取余数的数学算子)。如果Ratio大于85%或者小于15%,则TH7被扩大为10% *ACW。在图14的情况下,针对前三个切分组的以搜索位置为中心的搜索范围被示出在图15的表格中。在图15中,对于表格中的第三个切分组,由于Ratio为91%,大于85%,所以TH7被动态地扩大为10% *ACff,从而该切分组的搜索范围为以该切分组中的搜索位置为中心的[-10% *ACff,10% *ACW]。在此情况下,如果使用固定的搜索范围,无法找到正确的切分点。在步骤S423中,在每个搜索范围中,针对每个像素列(或行)计算切分分数,并且选择具有最小切分分数的像素列(或行)作为该搜索范围中的切分点。这里,显然,在文本行是水平的情况下,切分点是像素列,而在文本行是垂直的情况下,切分点是像素行。例如,所述分数是像素列(或行)的黑像素投影量和与邻接像素列(或行)中的其它黑像素相连的黑像素的数目之和。在步骤S424中,对于每个切分点搜索范围,选择具有最小切分分数的像素列(或行)作为其切分点。在步骤S425中,对于每个切分组,获得其切分点和这些切分点的分数。现在,返回参照图12,在步骤S430中,基于切分组中的每个切分点的分数,计算每个切分组的分数。具体地,对于每个切分组,存在两个分数。一个(分数I)是从左边缘搜索切分点的分数;另一个(分数2)是从右边缘搜索切分点的分数。分数I是切分组中从左边缘起的所有切分点的平均分数。分数2是切分组中从右边缘起的所有切分点的平均分数。切分组的最终分数是分数I和分数2中的最小值。在步骤S440中,选择所有组中的具有最小分数的切分组作为强制切分结果。在一个实施例中,强制切分处理可以在步骤S440之后结束。在另一个实施例中,在步骤S440之后可以进行进一步的确定。在步骤S450中,如果所选择的切分组的分数大于一阈值,则根据基于投影的方法在当前宽字符的中间添加新切分点。具体地,如果最佳切分组的分数仍然大于阈值TH6,那么根据基于投影的方法在当前宽字符的中间添加新切分点。该新切分点必须满足以下条件:a)该切分点的黑像素投影量在范围A中是最小的,范围A是字符的中间部分,从字符的1/4宽度处到3/4宽度处;
b)该切分点的黑像素投影量小于范围A中的黑像素投影量的最大值的1/3 ;以及c)在与该切分点对应的像素列(或行)中仅有一个黑像素块,所述黑像素块是指连续的黑像素的组。图9示出了需要添加新切分点的强制切分的例子。在图9中,示出了字符切分结果的一种情况。垂直线2是基于平均字符宽度的搜索位置。正确的切分点在切分点搜索范围之外。垂直线I是通过执行步骤S410-S440而找到的切分位置。垂直线3是在步骤S450中添加的新切分点。图17是示出了根据本发明的一个实施例的图5中的方法的步骤S500的处理的流程图。针对图17中的处理,通过步骤S400中的强制切分获得的第二字符集合和在步骤S200中获得的平均字符宽度被输入。在步骤S510中,计算第一字符集合(S卩,步骤SlOO中的基于投影的方法的切分结果)中的字符之间的平均间隔。在步骤S520中,根据第一字符集合和第二字符集合中的字符数和所述平均间隔,判断文本行是否包括大量的具有不同宽度的字符。具体地,判断是否满足以下条件:
条件1:存在在强制切分方法(步骤S400)中切分出的许多字符,即,(V3-V1)/V1> TH18,例如,TH18 = 3/7。条件2:通过步骤SlOO中的基于投影的方法切分出的字符之间的平均间隔足够大,即,该平均间隔大于阈值TH8 (TH8 = ACff/X, X大于8,并且优选地X = 10)。在包括步骤S300的情况下,当进行上述判断时可以考虑第三字符集合的字符数。具体地,在此情况下,条件I是(V3-V1)/V1 > TH18并且(V2-V1)/V1 < TH19,例如,TH19 =3/20。在步骤S530中,如果在步骤S520中的判断结果是肯定的,则针对被强制切分进行切分的宽字符设置另一个平均字符宽度。具体地,肯定的判断结果表示许多宽字符位于该文本行中并且被强制切分。被强制切分方法(步骤S400)切分的字符被视为错误地切分的宽字符。此时,因为宽字符已被强制切分,针对宽字符设置另一平均字符宽度表示宽字符中的第一个片段被设置了该另一平均字符宽度。图19示出了图17中的步骤S530的详细处理。在步骤S531中,搜索高度与当前文本行相似的相邻文本行作为相似行。该相似行必须满足以下条件:i)相邻行中的字符的数目大于阈值TH13,例如,TH13 > 10,并且优选地TH13 =20 (这意味着其ACW可靠);以及ii)两个行之间的行高度的差小于阈值TH14,例如,TH14 = X*当前行高度和相邻行高度中的较大者,这里,X <0.5并且优选地X = 3/10。如果找到了相似行,那么处理继续进行到步骤S532。在步骤S532中,使用该相似行的平均字符宽度来设置所述另一平均字符宽度。具体地,使用下面的式子为宽字符设置另一平均字符宽度:
π V ACW_L A V ACW
「millAr1W—CurrentLine 丁 " a m w SimilarLine
LUl I I」^wideCharacter —7
a + b其中,b > a,优选地a = I且b = 4。如果没有找到相似行,那么处理继续进行到步骤S533。在步骤S533中,把在步骤S200中计算的平均字符宽度直接乘以一个参数以设置所述另一平均字符宽度。具体地,使用下面的式子为宽字符设置另一平均字符宽度:ACWffidecharacter — ACffCurrentLine X THl 5其中,TH15> 1.1,并且优选地 TH15 = 7/5。在图6中的表格中,示出了为宽字符设置另一 ACW的实际例子。在此情况下,字符之间的平均间隔为大约10个像素。在步骤S500(S530)之后,宽字符的ACW为大约60,而其它字符的ACW没有改变。根据本发明的各种实施方式,在该表格中列出的值是非限制性的例子。图18是示出了根据本发明的另一个实施例的图5中的方法的步骤S500的处理的流程图。针对图18中的处理,通过步骤S400中的强制切分获得的第二字符集合以及在步骤S200中获得的平均字符宽度被输入。在步骤S540中,搜索仅被强制切分所切分的相邻字符的目标组,该目标组中的最后一个字符与其下一个字符之间的间隔大于阈值TH10,其中,THlO = ACff/X, X < 10,优选地X = 7,该ACW是在步骤S200中计算的。图16示出了在步骤S400之后的强制切分结果。在图16中的该切分结果中,找到了两组相邻的字符并将它们标记为“groupl”和“gr0Up2”。在此情况下,spacel等于21, space2等于25,并且ACW等于63 (半宽字符的宽度),因此,group I和gr0Up2满足在步骤S540中列出的条件。如果找到了目标组,则处理继续进行到步骤S550 ;否则,处理进行到步骤S600而不设置另一平均字符宽度。在步骤S550中,计算目标字符组的宽高比WHR。在图16所示的情况下,group I的宽度、高度和WHR分别是109、105和1.04 ;group2的宽度、高度和WHR分别是95、104和0.91。在步骤S560中,如果目标组的宽高比小于阈值,则针对该目标组中的第一个字符设置另一平均字符宽度。具体地,如果目标字符组的WHR小于阈值TH11(例如,THll > 1,并且优选地THll = 1.1),则目标字符组中的第一个字符的ACW被设置为值TH12(例如,TH12=X*目标字符组的高度,X > I并且优选地X = 1.1)。应该注意的是,当WHR < 1.1时,这意味着该目标字符组很可能原本是一个宽的全宽实际字符并且被步骤S400中的强制切分错误地切分。图17和图18示出了实现图5中的步骤S500的两个实施例。图17中的处理适合于长文本行,而图18中的处理适合于例如文档的段落的末尾处的短文本行。图17和图18中的处理可以如上所示地单独使用,也可以结合使用,这意味着可以顺序地执行这两个处理以构成步骤S500。在步骤S500之后,针对具有不同宽度的字符设置了两个ACW ( —个用于正常字符,另一个用于宽字符)。在步骤S600中,基于在步骤S400中获得的字符切分结果(第二字符集合)和这两个不同的ACW,根据现有技术,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳的切分模式,对第二字符集合中的字符进行组合。最后,例如,在图20A和图20B中示出了在应用了本发明的方法之后针对具有不同字符宽度的文本行中的字符的正切字符切分结果。在本说明书中,所有阈值的值都仅仅是示例性而非限制性的。在本说明书中,使用日语作为说明根据本发明的用于切分具有不同字符宽度的文本行中的字符的方法和系统的例子。然而,日语是非限制性的例子,可以想到的是,还可将本发明应用于诸如汉语、韩语等的其它语言。在本说明书中,文本行图像被示出为水平的行。使用这种文本行作为说明本发明的例子。然而,可以想到的是,也可将本发明应用于按照垂直的列书写的文本行。因此,术语说明书中的“文本行”并不一定是指水平文本行。可以通过许多方式来实施本发明的方法和系统。例如,可以通过软件、硬件、固件、或其任何组合来实施本发明的方法和系统。上述的方法步骤的次序仅是说明性的,本发明的方法步骤不限于以上具体描述的次序,除非以其它方式明确说明。此外,在一些实施例中,本发明还可以被实施为记录在记录介质中的程序,其包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于实现根据本发明的方法的程序的记录介质。虽然已通过示例详细展示了本发明的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是示例性的而非限制本发明的范围。本领域技术人员应该理解,上述实施例可以被修改而不脱离本发明的范围和实质。本发明的范围是通过所附的权利要求限定的。
权利要求
1.一种用于切分具有不同字符宽度的文本行中的字符的方法,包括以下步骤: 第一切分步骤,根据基于投影的方法将所述文本行切分为第一字符集合; 计算步骤,基于所述第一字符集合计算平均字符宽度; 强制切分步骤,基于计算的平均字符宽度,对所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合; 设置步骤,针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及组合步骤,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。
2.根据权利要求1所述的方法,其中,所述强制切分步骤包括以下步骤: 对于宽度大于阈值的每个宽字符,产生多个由所述宽字符或所述宽字符和相邻字符的组合构成的切分组,并基于所述平均字符宽度在每个切分组中搜索可能的切分点并获得每个切分点的分数; 基于切分组中的每个切分点的分数计算每个切分组的分数;以及 从所有组中选择具有最小分数的切分组作为强制切分结果。
3.根据权利要求2所述的方法,其中,所述强制切分步骤还包括以下步骤: 如果所选择的切分组的分数大于阈值,则根据基于投影的方法在当前宽字符的中间添加新切分点。
4.根据权利要求2或3所述的方法,其中,在每个切分组中搜索可能的切分点并获得每个切分点的分数包括以下步骤: 根据所述平均字符宽度在切分组中设置一个或多个搜索位置; 对于每个搜索位置,根据所述平均字符宽度的倍数与该搜索位置所处于的切分组的宽度之间的差,动态地判定以该搜索位置为中心的切分点搜索范围; 在每个搜索范围中,在所述文本行为水平的情况下针对每个像素列计算切分分数,并且选择具有最小切分分数的像素列作为该搜索范围中的切分点,并且在所述文本行为垂直的情况下针对每个像素行计算切分分数,并且选择具有最小切分分数的像素行作为该搜索范围中的切分点; 对于每个搜索范围,选择具有最小切分分数的像素列或像素行作为其切分点;以及 对于每个切分组,获得其切分点以及这些切分点的分数。
5.根据权利要求1所述的方法,其中,所述设置步骤包括以下步骤: 计算所述第一字符集合中的字符之间的平均间隔; 根据所述第一字符集合和所述第二字符集合中的字符的数目和所述平均间隔,判断所述文本行是否包括大量的具有不同宽度的字符; 如果判断结果是肯定的,则针对被强制切分所切分的宽字符设置另一平均字符宽度。
6.根据权利要求1所述的方法,其中,所述设置步骤包括以下步骤: 搜索仅被强制切分所切分的相邻字符的目标组,所述目标组中的最后一个字符与其下一个字符之间的间隔大于一阈值; 如果找到了所述目标组,则计算该目标组的宽高比;以及 如果该目标组的宽高比小于一阈值,则针对该目标组中的第一个字符设置另一平均字符宽度。
7.根据权利要求5所述的方法,其中,针对被强制切分所切分的宽字符设置另一平均字符宽度包括以下步骤: 搜索高度与当前文本行相似的相邻文本行,作为相似行; 如果找到相似行,则使用该相似行的平均字符宽度来设置所述另一平均字符宽度;以及 如果没有找到相似行,则把在所述计算步骤中计算的平均字符宽度直接乘以一参数,以设置所述另一平均字符宽度。
8.根据权利要求1所述的方法,其中,所述切分模式指示所述第二字符集合中的相邻字符的组合。
9.根据权利要求1或2所述的方法,其中,在所述计算步骤中,按下述方式之一计算所述平均字符宽度: 计算所述第一字符集合的平均字符宽度; 计算从所述第一字符集合中选择的宽高比在预定范围内的字符的平均字符宽度; 根据前一文本行或下一文本行的平均字符宽度计算所述平均字符宽度;或者 通过将所述文本行的高度乘以一个值来计算所述平均字符宽度。
10.根据权利要求1-9中任一项所述的方法,还包括第二切分步骤,该第二切分步骤使用连通域方法对所述第一字符集合中的宽字符进行切分以获得第三字符集合,并且在此情况下,在所述强制切分步骤中代替所述第一字符集合对所述第三字符集合进行处理。
11.一种用于切分具有不同字符宽度的文本行中的字符的系统,包括: 第一切分单元,被配置为根据基于投影的方法将所述文本行切分为第一字符集合; 计算单元,被配置为基于所述第一字符集合计算平均字符宽度; 强制切分单元,被配置为基于计算的平均字符宽度,对所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合; 设置单元,被配置为针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及 组合单元,被配置为通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。
12.根据权利要求11所述的系统,其中,所述强制切分单元包括: 被配置为对于宽度大于阈值的每个宽字符产生多个由所述宽字符或所述宽字符和相邻字符的组合构成的切分组,并基于所述平均字符宽度在每个切分组中搜索可能的切分点并获得每个切分点的分数的单元; 被配置为基于切分组中的每个切分点的分数计算每个切分组的分数的单元;以及 被配置为从所有组中选择具有最小分数的切分组作为强制切分结果的单元。
13.根据权利要求12所述的系统,其中,所述强制切分单元还包括: 被配置为如果所选择的切分组的分数大于阈值,则根据基于投影的方法在当前宽字符的中间添加新切分点的单元。
14.根据权利要求12或13所述的系统,其中,被配置为基于所述平均字符宽度在每个切分组中搜索可能的切分点并获得每个切分点的分数的单元包括: 被配置为根据所述平均字符宽度在切分组中设置一个或多个搜索位置的单元;被配置为对于每个搜索位置,根据所述平均字符宽度的倍数与该搜索位置所处于的切分组的宽度之间的差,动态地判定以该搜索位置为中心的切分点搜索范围的单元; 被配置为在每个搜索范围中,在所述文本行为水平的情况下针对每个像素列计算切分分数,并且选择具有最小切分分数的像素列作为该搜索范围中的切分点,并且在所述文本行为垂直的情况下针对每个像素行计算切分分数,并且选择具有最小切分分数的像素行作为该搜索范围中的切分点的单元; 被配置为对于每个搜索范围,选择具有最小切分分数的像素列或像素行作为其切分点的单元;以及 被配置为对于每个切分组,获得其切分点以及这些切分点的分数的单元。
15.根据权利要求11所述的系统,其中,所述设置单元包括: 被配置为计算所述第一字符集合中的字符之间的平均间隔的单元; 被配置为根据所述第一字符集合和所述第二字符集合中的字符的数目和所述平均间隔,判断所述文本行是否包括大量的具有不同宽度的字符的单元; 被配置为如果判断结果是肯定的,则针对被强制切分所切分的宽字符设置另一平均字符宽度的单元。
16.根据权利要求11所述的系统,其中,所述设置单元包括: 被配置为搜索仅被 强制切分所切分的相邻字符的目标组,所述目标组中的最后一个字符与其下一个字符之间的间隔大于一阈值的单元; 被配置为如果找到了所述目标组,则计算该目标组的宽高比的单元;以及被配置为如果该目标组的宽高比小于一阈值,则针对该目标组中的第一个字符设置另一平均字符宽度的单元。
17.根据权利要求15所述的系统,其中,针对被强制切分所切分的宽字符设置另一平均字符宽度的单元包括: 被配置为搜索高度与当前文本行相似的相邻文本行作为相似行的单元; 被配置为如果找到相似行,则使用该相似行的平均字符宽度来设置所述另一平均字符宽度的单元;以及 被配置为如果没有找到相似行,则把在所述计算单元中计算的平均字符宽度直接乘以一参数,以设置所述另一平均字符宽度的单元。
18.根据权利要求11所述的系统,其中,所述切分模式指示所述第二字符集合中的相邻字符的组合。
19.根据权利要求11或12所述的系统,其中,所述计算单元按下述方式之一计算所述平均字符宽度: 计算所述第一字符集合的平均字符宽度; 计算从所述第一字符集合中选择的宽高比在预定范围内的字符的平均字符宽度; 根据前一文本行或下一文本行的平均字符宽度计算所述平均字符宽度;或者 通过将所述文本行的高度乘以一个值来计算所述平均字符宽度。
20.根据权利要求11-19中任一项所述的系统,还包括第二切分单元,被配置为使用连通域方法对所述第一字符集合中的宽字符进行切分以获得第三字符集合,并且在此情况下,所述强制切分单元代替所述第一字符集合对所述第三字符集合进行处理。
全文摘要
提供了一种用于切分具有不同字符宽度的文本行中的字符的方法和系统。该方法包括第一切分步骤,根据基于投影的方法将所述文本行切分为第一字符集合;计算步骤,基于所述第一字符集合计算平均字符宽度;强制切分步骤,基于计算的平均字符宽度,对所述第一字符集合中的宽字符进行强制切分,以获得第二字符集合;设置步骤,针对所述第二字符集合中的不同字符设置不同的平均字符宽度;以及组合步骤,通过根据所设置的不同的平均字符宽度创建不同的切分模式并且选择最佳切分模式,对所述第二字符集合中的字符进行组合。
文档编号G06K9/34GK103106406SQ201110352060
公开日2013年5月15日 申请日期2011年11月9日 优先权日2011年11月9日
发明者罗兆海, 李献 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1