定位已识别文本行中的每个字符的方法、设备和存储介质与流程

文档序号:27313362发布日期:2021-11-09 23:12阅读:184来源:国知局
定位已识别文本行中的每个字符的方法、设备和存储介质与流程

1.本公开内容涉及文本识别的领域,并且具体地涉及对已识别的文本中的每个字符进行定位。


背景技术:

2.单字定位算法是光学字符识别(ocr)和场景字符识别(str)领域内的一个长期、基本而又富有挑战的研究问题。一个好的单字定位算法可以提高文本行内容的字符识别、标记和分类的精度。
3.至今为止,已经提出了很多种关于单字定位的算法。这些算法主要可以分为以下四种:基于边缘的方法、基于纹理的方法、基于连通域(cc)的方法和基于深度学习算法的方法。其中,基于边缘的方法主要聚焦在如何利用文本与背景之间高对比度来提取文本,然而这种方法会受到阴影和高光的影响。类似地,基于纹理的方法利用纹理分析算法对文本的分布区域进行定位,常见的有:空间上的变化、gabor滤波和小波变换等。基于cc的方法则是对文本行图像进行连通域分析,从而提取出可能的字符,并进一步地将这些字符区域集合成一段文本。以上这些方法主要着重于如何从自然场景图像中提取出字符的分布区域,但是并不能直接定位出每个字符的具体区域。在最近几年中,由于深度学习算法的高速发展,神经网络,比如卷积神经网络(cnn),越来越频繁地被用来对文本行中的字符进行识别和定位。
4.进一步地,卷积递归神经网络(crnn)是一种新型和非常有效的识别算法,它是一种端到端的通用框架,非常适合于任意长度的序列场景。因此,crnn因其具有很高的识别精度而在ocr领域内被广泛使用。然而,crnn的单字定位性能并不高,而且常常带有较为严重的误差,因此还需要进一步的改善。


技术实现要素:

5.在下文中给出了关于本公开内容的简要概述,以便提供关于本公开内容的某些方面的基本理解。应当理解,这个概述并不是关于本公开内容的穷举性概述。它并不是意图确定本公开内容的关键或重要部分,也不是意图限定本公开内容的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
6.根据本发明的一个方面,提供了一种用于定位已识别的文本行中的每个字符的方法。该方法包括:步骤s1:给所述文本行中的每个字符标记核心笔画,所述标记指示笔画属于所述文本行中的哪个字符;步骤s2:基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,所述孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画;和步骤s3:将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值,重复进行步骤s2和s3,直到所有笔画都被标记到所述文本行中的字符为止。
7.根据本发明的另一个方面,提供了一种用于定位已识别的文本行中的每个字符的设备,包括:第一标记装置,其被配置成给所述文本行中的每个字符标记核心笔画,所述标记指示笔画属于所述文本行中的哪个字符;第二标记装置,其被配置成基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,所述孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画;和合并装置,其被配置成将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值,其中,所有笔画都被标记到所述文本行中的字符。
8.根据本发明的其它方面,还提供了相应的计算机程序代码、计算机可读存储介质和计算机程序产品。
9.通过本发明的用于定位已识别的文本行中的每个字符的方法和设备,使得能够提高单字符的定位精度,从而有利于与其他识别引擎加以结合以进一步提高文本识别精度。
10.通过以下结合附图对本发明的优选实施方式的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
11.为了进一步阐述本公开内容的以上和其它优点和特征,下面结合附图对本公开内容的具体实施方式作进一步详细的说明。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分。具有相同的功能和结构的元件用相同的参考标号表示。应当理解,这些附图仅描述本公开内容的典型示例,而不应看作是对本公开内容的范围的限定。在附图中:
12.图1示出了根据一个实施方式的、在标记核心笔画之前对已识别文本行中的每个字符的结束位置进行修正的方法的流程图;
13.图2a示出了通过crnn识别获得的每个时间戳候选项的soft-max值;
14.图2b示出了crnn和过切分结果;
15.图2c示出了修正后的每个字符的新的结束位置;
16.图3示出了根据本发明的一个实施方式的、用于定位已识别的文本行中的每个字符的方法;
17.图4示出了根据一个实施方式的标记核心笔画的流程图;
18.图5示出了根据一个实施方式的标记粘连笔画和孤立笔画的流程图;
19.图6示出了根据一个实施方式的合并前n对或前m%对彼此相隔最近的两个相邻笔画的流程图;
20.图7a示例性地示出了标记核心笔画的结果;
21.图7b示例性地示出了粘连笔画分类的结果;
22.图7c示例性地示出了孤立笔画分类的结果;
23.图7d示例性地示出了合并前n对或前m%对相隔最近的两个相邻笔画的结果;
24.图7e示例性地示出了所有笔画都被标记到已识别字符的结果;
25.图8是根据一个实施方式的用于定位已识别的文本行中的每个字符的设备的框图;
26.图9是其中可以实现根据本发明的实施方式的方法和/或设备的通用个人计算机的示例性结构的框图。
具体实施方式
27.在下文中将结合附图对本公开的示范性实施方式进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
28.在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的设备结构和/或处理步骤,而省略了与本公开关系不大的其他细节。
29.如前文所述,现有的文本识别方法在单字定位性能方面不令人满意。
30.为了克服现有技术的缺陷,本发明提出了一种基于crnn和过切分算法的新型单字定位算法。首先,使用crnn对手写单行文本行进行识别,并定位出每个字符的位置。这一定位结果相对粗糙,而且只能提供一个大概的字符范围。同时,还使用过切分算法对图像进行过切分,即将图像切分成一个一个笔画。然后,对利用crnn识别过程中产生的soft-max分数,对crnn给出的每个字符的结束位置进行了适当的修正,以提高crnn的定位精度。接着,对每个识别出的字符进行初始化,然后寻找并标记文本行中的每个字符的核心笔画,从而给文本行中的每个字符尽可能准确地匹配到至少一个笔画。最后,基于这些核心笔画以及一些先验知识,利用合适的算法对每个未标记的笔画进行标记,以将每个笔画都标记给crnn识别出的每个字符,从而得到每个字符对应的笔画,即每个字符的分布区域。
31.下面首先结合图1和图2a至图2c来描述在标记核心笔画之前如何对已识别文本行中的每个字符的结束位置进行修正,该结束位置是利用crnn和过切分算法获得的。
32.图1示出了根据一个实施方式的、在标记核心笔画之前对已识别文本行中的每个字符的结束位置进行修正的方法的流程图。
33.首先,在步骤101中,使用crnn算法对图像文本行进行识别,并且使用过切分算法对识别出的文本行中的字符进行笔画切分。
34.具体地,在本实施方式中,如图2a和图2b所示,首先使用crnn算法对图像文本行进行识别,以获得文本行的内容、每个字符的可能候选项以及其对应的置信度、每个字符的结束时间戳位置。图2a展示了在第12至14个时间戳中,每个时间戳里预测出的前十个候选项以及其对应的置信度值。图2b中的竖线则展示了crnn给出的每个字符对应的结束时间戳位置,即相邻几个时间戳里具有最高概率的位置。例如,在图2b中,字符“山”在第12个时间戳的概率最高,因此字符“山”的结束位置即为第12个时间戳。从图2b可以看出,crnn可以为每个字符提供一个粗糙且不太可信的结束位置。
35.接着,利用过切分算法将crnn识别出的每个字符切分为一个一个零散的笔画,其结果如图2b中的方框所示。
36.从图2b可以看出,crnn提供的单字结束位置并不准确。优选地,可以事先对crnn提
供的结束位置进行细微的修正,以修正一些相对明显和简单的错误。
37.接着,在步骤102中,选择crnn识别出的文本行中的某个字符为当前字符。并继续进行步骤103,确定当前字符与其下一个字符是否相同。
38.在当前字符与其下一个字符不同的情况下(即步骤103中的“否”),继续进行至步骤1031。在步骤1031中,找到当前字符结束位置后的下一个时间戳,针对该时间戳的识别结果,确定其前p个候选中是否存在当前字符并且相应置信度是否大于阈值th2。
39.如果是,则进行到步骤1033,即将该下一个时间戳重新划分为该当前字符的结束位置。然后,进行到步骤1036。在步骤1036中,确定新的结束位置的下一个时间戳是否为(通过crnn识别的)下一个字符的结束位置。如果是,则当前字符的结束位置已经修正完毕,继续进行至步骤104。如果不是,则回到步骤1031,继续对当前字符的结束位置进行搜索。
40.如果步骤1031的结果为否,则进行到步骤1035,不修正当前字符的结束位置。然后,继续进行至步骤104即可。
41.在步骤104中,判断当前字符是否为待修正字符中的最后一个字符。如果是,则过程结束,所有待修正字符的结束位置均被修正了一遍。如果不是,则继续进行步骤105。在步骤105中,选择待修正字符中的下一个字符为新的当前字符并且重新回到步骤103,按照同样逻辑进行迭代判断,直到所有待修正字符的结束位置都被修正为止。
42.优选地,取p=2,并且th2=0.01。然而应理解,p和th2的值不限于此,而是可以根据需要来设定。
43.例如,如图2a所示,第12个时间戳具有字符“山”的最高置信度,因此该时间戳也是crnn识别出的字符“山”的结束位置。然而从图2b中可以看出,这一结束位置显然是不准确的,因为一部分字符“山”的笔画并没有被包括在内。实际上,第13个时间戳仍然属于字符“山”,而第14个时间戳则不属于字符“山”。
44.为了修正字符“山”的结束位置,在步骤103中,根据crnn识别出的结果(如图2a所示),从其结束时间戳12开始,依次向后对每个时间戳进行搜索。经过搜索发现,“山”字符存在于第13个时间戳中的第2个候选项中,并且该候选项的置信度为0.02,高于阈值0.01,则认为时间戳13仍然属于字符“山”,进一步地,可以发现在时间戳14中,“山”字符的置信度低于阈值0.01,因此,将时间戳13而不是时间戳14标记为“山”字符的结束位置,即将“山”字符的结束位置向后延展到第13个时间戳上,修正后的结束位置如图2c所示。
45.在当前字符与其下一个字符相同的情况下(即步骤103中的“是”),继续进行至步骤1032。在步骤1032中,针对这两个相同字符结束位置之间的每个时间戳,确定每个时间戳的前q个候选中是否都存在该当前字符。如果是,则进行到步骤104,判断当前字符是否为待修正字符中的最后一个字符。如果是,则过程结束,所有待修正字符的结束位置均被修正了一遍。如果不是,则继续进行步骤105。在步骤105中,选择待修正字符中的下一个字符为新的当前字符并且重新回到步骤103,按照同样逻辑进行迭代判断,直到所有待修正字符的结束位置都被修正为止。
46.应指出,为了防止叠字对这一修正方法的错误混淆影响,需要事先对crnn识别出的文本进行检测。如果在某一位置出现了连续两个相同的字符,那么需要对其进行混淆检测,即步骤1032,如果在这两个字符的结束位置之间的所有时间戳内,该字符一直出现在前q个候选项中,则认为信息出现了混淆,本修正方法无法对其进行准确地修正,因此,不对叠
字中的第一个字符(即当前字符)的结束位置进行修正。
47.优选地,取q=5,、p和q是大于1的正整数并且p小于q。然而应理解,p和q的值不限于此,而是可以根据需要来设定。
48.通过上述修正方法,可以将通过crnn识别的文本行中的字符的结束位置修正到正确的结束位置,从而提高crnn的定位性能。
49.下面结合图3至图7e来描述根据本发明的一个实施方式的用于定位已识别的文本行中的每个字符的方法300。
50.如图3所示,首先,在步骤s1中,给文本行中的每个字符标记核心笔画,该标记指示笔画属于文本行中的哪个字符。
51.优选地,在本实施方式中,所述文本行是通过crnn识别的文本行。然而,应理解,本发明不限于此,而是所述文本行也可以是通过任何其他现有识别引擎识别的、未经过或已经过位置修正的文本行。
52.为了将每个过切分后的笔画与通过crnn识别出的字符之间建立对应关系,首先需要给通过crnn识别出的每个字符寻找并标记出至少一个核心笔画。所谓核心笔画是指在一个字符的所有笔画之中的最有可能属于该字符的笔画。由于核心笔画的选择方式会严重影响后续步骤的性能,因此在步骤s1中仅选择那些最有可能属于该字符的笔画作为核心笔画。
53.基于crnn给出的每个字符的结束位置,可以得到每个字符的一个大致分布范围,这里称之为该字符的识别范围。虽然这一范围经常在边缘区域内判断得不是很准确,但是在一些核心范围内(比如中间偏右的区域)往往判断地较为准确。此外,显然地可以认为当笔画与字符的识别范围之间的重叠面积越高时,这一笔画越有可能属于该字符。
54.图4示出了根据一个实施方式的标记核心笔画(即步骤s1)的流程图。
55.在步骤401中,将笔画范围包含或者被包含于文本行中的字符的识别范围并且与该字符的核心范围重叠的笔画标记为该字符的核心笔画。
56.具体地,在本实施方式中,如果一个笔画与某一字符的核心区域有重叠,并且该笔画完全包含于该字符的crnn识别范围内或者相反地,该笔画的分布范围完全涵盖了该字符的crnn识别范围,那么将该笔画标记为该字符的核心笔画。
57.优选地,在横向上若将一个字符的crnn识别范围设为0到1,则通常将该字符的识别范围内的0.4到0.8的区间视为该字符的核心区域。应理解,该区间值只是一个示例,本发明不限于此。
58.接着,在步骤402,确定文本行中是否存在仍未标记核心笔画的字符。如果是,则在步骤403中,将与该字符的核心范围重叠的未标记笔画标记为该字符的核心笔画。如果否,则继续进行到将在下面详细描述的步骤s2。
59.具体地,在本实施方式中,在进行了步骤401之后,如果文本行中仍存在不含有核心笔画的字符,那么需要略微地放松约束条件,在剩下未标记的笔画中进行寻找,从而给这些字符寻找到一个概率最高的笔画作为核心笔画。因此,在步骤403中,将与该字符的核心范围重叠的未标记笔画标记为该字符的核心笔画。
60.接着,在步骤404中,确定文本行中是否存在仍未标记核心笔画的字符。如果是,则在步骤405中,将与该字符的识别范围具有最大重叠比例的未标记笔画标记为该字符的核
心笔画。如果否,则继续进行到将在下面详细描述的步骤s2。
61.应指出,在进行了步骤405之后,如果文本行中仍存在未标记核心笔画的字符,则认为crnn对该字符存在较为严重的识别或者定位错误,因此将该字符删除并且不对其进行定位。
62.还应指出,在步骤403中,如果一个笔画同时被标记为多个字符的核心笔画,则不将该笔画标记为任何字符的核心笔画。类似地,在步骤401和405中,如果一个笔画同时被标记为多个字符的核心笔画,则将该笔画标记为最左侧那个字符的核心笔画。
63.图7a示出了通过图4所示的方法标记了核心笔画的文本行的示例,其中深色和浅色代表不同字符对应的核心笔画,而灰色代表未标记笔画。
64.返回图3,在为文本行中的每个字符标记了核心笔画之后,继续进行步骤s2。在步骤s2中,基于已标记的笔画,对与已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画。
65.具体地,在本实施方式中,在尽可能地给每个字符标记了核心笔画之后,需要基于这些已标记的笔画对其他未标记的笔画进行标记。具有相同标记的笔画可以被视为一个整体,即一个类别的已标记笔画的集合。
66.图5示出了根据一个实施方式的标记粘连笔画和孤立笔画的流程图。
67.如图5所示,在步骤501中,如果一个未标记笔画与已标记笔画发生粘连,则将该未标记笔画合并至该已标记笔画的集合。
68.应指出,在一些特殊情况下,某些笔画可能会与两个以上的已标记笔画集合发生粘连。此时,由于无法对其类别进行判断,因此暂时不对其进行分类和融合。
69.图7b示出了粘连笔画分类的示例。如图7b所示,所有粘连的笔画被归类到它们所属的识别字符。
70.接着,在步骤502中,将未标记的孤立笔画合并至与其距离最近的那个已标记笔画。
71.具体地,在本实施方式中,孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画,此时将这一未标记笔画成为孤立笔画,显然地,当存在孤立笔画时,该笔画不是属于左侧笔画所属的集合,就是属于右侧笔画所属的集合。因此,可以通过如下距离公式来对孤立笔画进行归类:
72.d=max(s1,c1)-min(s2,c2)+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
73.其中,s1,s2分别表示孤立笔画的左侧和右侧边缘的像素坐标,并且c1,c2表示与其计算距离的对象的左侧和右侧边缘的像素坐标。
74.应指出,这一计算距离的对象可以是另一个已标记笔画、或者是一个已标记的笔画集合、亦或是crnn提供的字符的识别范围。
75.还应指出,当d>1时,表示两个对象之间没有重叠区域;当d≤1时,则表示两者存在重叠区域,且重叠区域的宽度为2-d个像素。
76.应理解,由于书写文字时存在一定的随机性,因此,当孤立笔画与两个相邻笔画之间的距离非常接近,即两个距离之差的绝对值小于阈值th1,无法仅仅根据距离信息对该孤立笔画的归属加以判断,此时需要引入新的信息。针对这一情况,根据本实施方式的方法将根据公式(1)对孤立笔画和两个相邻字符的识别范围的重叠宽度加以计算,并且将该孤立
笔画归属到重叠宽度最大的字符类别上去。
77.优选地,阈值th1为8个像素。然而应理解,本发明不限于此,而是可以根据需要来设置th1的值。
78.最后,在步骤503中,确定是否所有粘连笔画和孤立笔画都被标记。如果是,则继续进行将在下面描述的步骤s3。如果否,则返回步骤501。
79.具体地,在本实施方式中,由于在分类粘连笔画和孤立笔画后,可能产生新的粘连或者孤立笔画,因此需要对步骤501和502进行迭代直至不产生新的粘连或者孤立笔画为止。
80.图7c示出了孤立笔画分类的示例。在该示例中,位于字符“息”右侧中部的那个笔画“1”与字符“息”的距离更近,因此被分类到了字符“息”的类别中。
81.返回图3,继续进行步骤s3。在步骤s3中,将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,这两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值。
82.具体地,在本实施方式中,在步骤s1和s2之后,可能仍有些笔画没有被分类,此时只能使用贪心的策略对它们进行分类。
83.图6示出了根据一个实施方式的将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起的流程图。
84.首先,在步骤601中,将通过步骤s1和s2得到的所有具有相同标记的笔画合并在一起并且视为一个笔画。
85.接着,在步骤602中,计算两个相邻笔画之间的距离。具体地,在本实施方式中,例如可以根据公式(1)计算所有相邻笔画之间的距离。
86.接着,在步骤603中,将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,这两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值。具体地,在本实施方式中,对在步骤602中计算的所有的距离按照大小进行排序、选取其中最小的前n个或者前m%个距离并且将与该距离对应的相邻笔画对合并为一类,即属于同一个字符。
87.应指出,如果选取的相邻笔画对已经被标记给两个不同的crnn识别字符,则跳过这一距离,不进行选取。此外,在对笔画进行分类合并时的策略与孤立笔画分类策略是类似的,即:首先根据笔画之间的距离,将笔画合并到距离更近的相邻笔画上去;如果该笔画分别与左右两侧笔画的两个距离相互接近,则将该笔画分类到重叠度更大的那个字符上去。
88.还应指出,在计算距离时,有可能会将数个未标记笔画彼此合并,从而产生了一个新的类别,而这个类别并不存在于crnn识别出的字符之中。因此,这个新类别只是一个融合合并时的中间变量。通过整个流程中的多次迭代后,这些新产生的临时类别会逐步地融合合并到crnn产生的识别字符类别中去,最后结果的类别只会与crnn产生的识别字符相对应。
89.图7d示出了合并前n对或前m%对最近笔画的一个示例。在这个示例中,n选取为1,笔画“1”与笔画集合
“け”
的距离最近,因此这里将它们标记为相同的类别,并且对它们进行合并。
90.返回图3,最后,在步骤s4中,确定是否仍存在未标记的笔画。如果是,则返回步骤
s2。如果否,则方法300结束。
91.具体地,在本实施方式中,确定是否还存在没有被标记到crnn识别出的字符上的笔画。如果是,则回到步骤s2。在进行多次的迭代计算后,所有笔画都被分类并且新产生的临时类别也到被合并消失。由此,所有的笔画均被分类标记到了crnn识别的字符上,换句话说,所有识别出的字符对应的位置信息均被精确地定位。
92.图7e示出了所有笔画都被标记到识别字符的一个示例。如图7e所示,所有的识别字符对应的笔画均被找到。
93.根据本实施方式的方法300基于crnn的结束位置以及笔画之间的空间分布将每个笔画高准确度地分配到它们对应的识别字符上去,从而实现了每个字符的笔画级别的定位。该定位结果为在多个识别引擎之间相互融合识别结果提供了可能。
94.通过使用多个手写日文数据集(aibu、questionnaire、cogent和pfu)来测试根据本实施方式的方法300,获得了如下表1所示的识别准确度。从表1可以看出,方法300的平均准确度约为95%,因此提供了很高的精确度。
95.数据集(图像数)aibu(897)questionnaire(319)cogent(26)pfu(25)总计(1267)准确度95.0%94.2%93.5%94.9%95.0%
96.表1
97.以上所讨论的方法可以完全由计算机可执行的程序来实现,也可以部分地或完全地使用硬件和/或固件来实现。当其用硬件和/或固件实现时,或者将计算机可执行的程序载入可运行程序的硬件设备时,则实现了下文将要描述的用于定位已识别的文本行中的每个字符的设备。下文中,在不重复上文中已经讨论的一些细节的情况下给出这些设备的概要,但是应当注意,虽然这些设备可以执行前文所描述的方法,但是所述方法不一定采用所描述的设备的那些部件或不一定由那些部件执行。
98.图8示出了根据一个实施方式的用于定位已识别的文本行中的每个字符的设备800,其包括第一标记装置801、第二标记装置802和合并装置803。第一标记装置801用于给文本行中的每个字符标记核心笔画,该标记指示笔画属于文本行中的哪个字符。第二标记装置802用于基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画。合并装置803用于将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值。经过所述第二标记装置和所述合并装置的处理之后,所有笔画都被标记到所述文本行中的字符。
99.图8所示的用于定位已识别的文本行中的每个字符的设备800对应于图3所示的用于定位已识别的文本行中的每个字符的方法300。因此,用于定位已识别的文本行中的每个字符的设备800中的各装置的相关细节已经在对图3的用于定位已识别的文本行中的每个字符的方法300的描述中详细给出,在此不再赘述。
100.上述装置中各个组成模块、单元可通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图9所示的通用计算机900)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
101.图9是其中可以实现根据本发明的实施方式的方法和/或设备的通用个人计算机的示例性结构的框图。如图9所示,中央处理单元(cpu)901根据只读存储器(rom)902中存储的程序或从存储部分908加载到随机存取存储器(ram)903的程序执行各种处理。在ram 903中,也根据需要存储当cpu901执行各种处理等等时所需的数据。cpu 901、rom 902和ram 903经由总线904彼此连接。输入/输出接口905也连接到总线904。
102.下述部件连接到输入/输出接口905:输入部分906(包括键盘、鼠标等等)、输出部分907(包括显示器,比如阴极射线管(crt)、液晶显示器(lcd)等,和扬声器等)、存储部分908(包括硬盘等)、通信部分909(包括网络接口卡比如lan卡、调制解调器等)。通信部分909经由网络比如因特网执行通信处理。根据需要,驱动器910也可连接到输入/输出接口905。可移除介质911比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器910上,使得从中读出的计算机程序根据需要被安装到存储部分908中。
103.在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可移除介质911安装构成软件的程序。
104.本领域的技术人员应当理解,这种存储介质不局限于图9所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可移除介质911。可移除介质911的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(cd-rom)和数字通用盘(dvd))、磁光盘(包含迷你盘(md)(注册商标))和半导体存储器。或者,存储介质可以是rom 902、存储部分908中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
105.本发明还提出了相应的计算机程序代码、一种存储有机器可读取的指令代码的计算机程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明实施方式的方法300。
106.相应地,被配置为承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
107.通过以上描述,本公开的实施方式提供了以下的技术方案,但不限于此。
108.附记1.一种用于定位已识别的文本行中的每个字符的方法,包括:
109.步骤s1:给所述文本行中的每个字符标记核心笔画,所述标记指示笔画属于所述文本行中的哪个字符;
110.步骤s2:基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,所述孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画;和
111.步骤s3:将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值,
112.重复进行步骤s2和s3,直到所有笔画都被标记到所述文本行中的字符为止。
113.附记2.根据附记1的方法,其中,所述标记核心笔画依次包括:
114.将笔画范围包含或者被包含于所述文本行中的字符的识别范围并且与该字符的核心范围重叠的笔画标记为该字符的核心笔画,
115.对于所述文本行中的仍未标记核心笔画的字符,将与该字符的核心范围重叠的未
标记笔画标记为该字符的核心笔画,以及
116.对于所述文本行中的仍未标记核心笔画的字符,将与该字符的识别范围具有最大重叠比例的未标记笔画标记为该字符的核心笔画。
117.附记3.根据附记2的方法,
118.其中,如果与所述字符的核心范围重叠的笔画同时被标记为多个字符的核心笔画,则不将该笔画标记为任何字符的核心笔画,
119.以及其中,如果笔画范围包含或者被包含于所述字符的识别范围并且与所述字符的核心范围重叠的笔画、或者与所述字符的识别范围具有最大重叠比例的笔画同时被标记为多个字符的核心笔画,则将该笔画标记为最左侧字符的核心笔画。
120.附记4.根据附记3的方法,其中,将所述识别范围设为1,则所述核心范围是0.4至0.8。
121.附记5.根据附记1的方法,其中,基于所述已标记的笔画,对所述未标记的粘连笔画和未标记的孤立笔画进行标记包括:
122.如果所述未标记的粘连笔画与所述已标记的笔画粘连,则将该未标记的粘连笔画合并至该已标记的笔画;以及
123.将所述未标记的孤立笔画合并至与其距离最近的那个已标记的笔画;以及
124.重复以上步骤,直到所有粘连笔画和孤立笔画都被标记为止。
125.附记6.根据附记1的方法,其中,所述步骤s3还包括:
126.将在步骤s1和步骤s2中得到的所有具有相同标记的笔画合并在一起;
127.计算两个相邻笔画之间的距离;和
128.将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起。
129.附记7.根据附记5或6的方法,其中,所述距离基于两个相邻笔画中的一个笔画的最左侧位置和另一个笔画的最左侧位置之中的最大值与所述一个笔画的最右侧位置和所述另一个笔画的最右侧位置之中的最小值之差。
130.附记8.根据附记1至6中任一项的方法,其中:
131.如果一个笔画与其两个相邻笔画的距离之差的绝对值小于第一阈值,则将该笔画标记至其识别范围与该笔画的范围重叠最大的那个字符;以及如果一个笔画与其两个相邻笔画的距离之差的绝对值大于所述第一阈值,则将该笔画标记至与其相隔最近的那个字符。
132.附记9.根据附记8的方法,其中,所述第一阈值为8个像素。
133.附记10.根据附记1至6中任一项的方法,其中,所述已识别的文本行是通过卷积循环神经网络获得的,并且所述字符的笔画是通过过分割算法获得的。
134.附记11.根据附记10的方法,还包括在标记所述核心笔画之前对已识别的文本行中的每个字符的通过所述卷积循环神经网络获得的结束位置进行修正。
135.附记12.根据附记11的方法,其中,所述修正包括:
136.在所述字符与其下一个字符不同的情况下:
137.如果确定所述字符结束位置后的下一个时间戳的识别结果的前p个候选中存在所述字符并且相应置信度大于第二阈值,则将该下一个时间戳重新划分为所述字符的结束位置,
138.迭代进行所述重新划分的步骤,直到移动到所述字符的下一个字符的结束位置之前的那个时间戳为止;以及
139.在所述字符与其下一个字符相同的情况下:
140.如果这两个相同字符结束位置之间的每个时间戳的前q个候选中都存在所述字符,则不改变所述字符的结束位置,和
141.如果这两个相同字符结束位置之间的每个时间戳的前q个候选中都不存在所述字符,则进行与所述字符与其下一个字符不同的情况相同的处理,
142.其中,p和q是大于1的正整数并且p小于q。
143.附记13.根据附记12的方法,其中,所述第二阈值为0.01。
144.附记14.根据附记1至6中任一项的方法,还包括利用最终定位结果来融合通过不同识别模型识别的文本行,以得到准确的识别结果。
145.附记15.一种用于定位已识别的文本行中的每个字符的设备,包括:
146.第一标记装置,其被配置成给所述文本行中的每个字符标记核心笔画,所述标记指示笔画属于所述文本行中的哪个字符;
147.第二标记装置,其被配置成基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,所述孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画;和
148.合并装置,其被配置成将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值,
149.其中,经过所述第二标记装置和所述合并装置的处理之后,所有笔画都被标记到所述文本行中的字符。
150.附记16.根据附记15的设备,其中,所述第一标记装置还被配置成:
151.将笔画范围包含或者被包含于所述文本行中的字符的识别范围并且与该字符的核心范围重叠的笔画标记为该字符的核心笔画,
152.对于所述文本行中的仍未标记核心笔画的字符,将与该字符的核心范围重叠的未标记笔画标记为该字符的核心笔画,以及
153.对于所述文本行中的仍未标记核心笔画的字符,将与该字符的识别范围具有最大重叠比例的未标记笔画标记为该字符的核心笔画。
154.附记17.根据附记15或16的设备,其中,所述第二标记装置还被配置成:
155.如果所述未标记的粘连笔画与所述已标记的笔画粘连,则将该未标记的粘连笔画合并至该已标记的笔画;以及
156.将所述未标记的孤立笔画合并至与其距离最近的那个已标记的笔画;以及
157.重复以上处理,直到所有粘连笔画和孤立笔画都被标记为止。
158.附记18.根据附记17的设备,其中,所述合并装置还被配置成:
159.将所有具有相同标记的笔画合并在一起;
160.计算两个相邻笔画之间的距离;和
161.将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起。
162.附记19.根据附记15的设备,还包括修正装置,其被配置成在标记所述核心笔画之
前对已识别的文本行中的每个字符的通过卷积循环神经网络获得的结束位置进行修正
163.附记20.一种计算机可读存储介质,所述计算机可读存储介质存储有能够由处理器运行来执行以下操作的程序:
164.操作s1:给所述文本行中的每个字符标记核心笔画,所述标记指示笔画属于所述文本行中的哪个字符;
165.操作s2:基于已标记的笔画,对与所述已标记的笔画粘连的未标记的粘连笔画和未标记的孤立笔画进行标记,其中,所述孤立笔画是指在两个已标记笔画之间仅有的一个未标记笔画;和
166.操作s3:将前n对或前m%对彼此相隔最近的两个相邻笔画合并在一起,其中,所述两个相邻笔画没有被标记至不同的字符,以及其中,n是大于或等于1的整数,并且m是0至100之间的任意数值,
167.重复操作s2和s3,直到所有笔画都被标记到所述文本行中的字符为止。
168.最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
169.以上虽然结合附图详细描述了本发明的实施方式,但是应当明白,上面所描述的实施方式只是被配置为说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式作出各种修改和变更而没有背离本发明的实质和范围。因此,本发明的范围仅由所附的权利要求及其等效含义来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1