对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf

上传人:a**** 文档编号:4585352 上传时间:2018-10-21 格式:PDF 页数:20 大小:769.14KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110137913.4

申请日:

2011.05.16

公开号:

CN102289667A

公开日:

2011.12.21

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||专利申请权的转移IPC(主分类):G06K 9/20变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150728|||实质审查的生效IPC(主分类):G06K 9/20申请日:20110516|||公开

IPC分类号:

G06K9/20; G06F17/22

主分类号:

G06K9/20

申请人:

微软公司

发明人:

B·拉达科维奇; M·武格代利亚; N·托迪奇; A·乌泽拉茨; B·德雷舍维奇

地址:

美国华盛顿州

优先权:

2010.05.17 US 12/780,991

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

黄嵩泉

PDF下载: PDF下载
内容摘要

本发明涉及对经历光学字符识别(OCR)过程的文本文档中出现的错误的用户纠正。通过经历OCR过程来创建图像文档的电子模型。电子模型包括图像文档的已经由OCR过程中多个顺序执行的阶段的每一个所确定的元素(例如,单词、文本行、段落、图像)。电子模型充当由处理该图像文档的前一阶段提供给各个阶段的输入信息。向用户呈现图形用户界面,使用户能提供对文档中出现的错误表征的项进行纠正的用户输入数据。基于用户输入数据,产生了引起错误表征的项的初始错误的处理阶段对该初始错误进行纠正。然后,该阶段之后的OCR过程的各阶段对由于初始错误而在它们的相应阶段中产生的随之发生的错误进行纠正。

权利要求书

1.一种用于执行光学字符识别的图像处理装置,包括:
输入组件30,用于接收文档的文本图像;
分段组件40,用于检测所述文档中的文本和图像并且标识单词位置;
读次序组件50,用于把单词排列到文本区域中并且以正确的读次序来排列
所述文本区域;
文本识别组件60,用于识别单词并且计算和各个单词和文本行有关的文本
属性;
段落检测组件70,用于把已经在所述文本区域中标识的文本行排列到段落
中;
用户界面90,用户经其提供用户输入数据,其中所述用户输入数据在经历
OCR之后纠正在所述文档中出现的第一个错误表征的项;以及
错误纠正组件80,用于接收用户输入数据、并且使其中初始错误产生所造
成的第一个错误表征的项的第一个组件纠正该初始错误,其中错误纠正组件还
被配置成使在第一组件之后处理所述图像的各组件纠正作为初始错误的结果
而产生的随之发生的错误。
2.如权利要求1所述的图像处理装置,其特征在于,所述组件30-90中
的第一个还被配置成自动地纠正造成和第一错误表征的项具有相同类型的其
他错误表征的项的其他错误。
3.如权利要求1所述的图像处理装置,其特征在于,所述用户界面90包
括预先选择的错误类型410的菜单,用户从所述菜单中选择作为用户输入数据
的部分。
4.如权利要求3所述的图像处理装置,其特征在于,所述预先选择的错误
类型410包括从由文本区域错误、段落区域错误、段落结尾错误、文本行错误、
单词错误和图像区域错误组成的组中选择的多个错误类型。
5.如权利要求1所述的图像处理装置,其特征在于,所述用户输入90包
括第一错误类型的选择,并且至少部分基于所述第一错误类型,所述错误纠正
组件80使一个或多个所选择的组件至少部分地重新执行以纠正初始错误。
6.如权利要求1所述的图像处理装置,其特征在于,所述用户界面90包
括显示420,在显示420中在经历OCR之后呈现文本图像的一部分,所述用户
界面90被配置成接收纠正第一错误表征的项的用户输入,并且识别和用户输
入所纠正的文本图像的选择相对应的显示420的用户区域部分。
7.如权利要求1所述的图像处理装置,其特征在于,所述随之发生的错误
以与用户之前纠正的错误表征的项一致的方式被纠正。
8.如权利要求1所述的图像处理装置,还包括用于存储所述图像文档的电
子模型的存储器组件,其中所述电子模型包括图像文档的由组件30-90的每
一个确定的元件,其中所述电子模型充当由处理所述图像文档的前一组件提供
给组件30-90的每一个的输入信息。
9.如权利要求8所述的图像处理装置,其特征在于,所述错误纠正组件80
使得文本识别组件60中产生的随之发生的错误通过增量地重新执行文本识别
组件60以仅处理已被改变的元件而被纠正。
10.如权利要求8所述的图像处理装置,其特征在于,所述电子模型包
括与元素的每一个相关联的属性,其中属性的每一个指定了与属性所关联至的
相应元素相关联的置信度水平。
11.如权利要求10所述的图像处理装置,其特征在于,所述初始错误在
电子模型中包括的至少一个元素中产生,其中所述纠正组件80在已经纠正初
始错误后为与至少一个元素相关联的一个或多个属性的置信度水平分配一个
最大值。
12.一种用于纠正已经历光学字符识别(OCR)的文本图像文档的方法,
包括:
在图像文档已经历OCR过程之后接收510所述图像文档的电子模型,所
述电子模型包括图像文档的已经由OCR过程中的多个顺序执行的阶段的每一
个所确定的元素,其中电子模型充当由处理所述图像文档的前一阶段提供给每
一个阶段的输入信息;
向用户呈现530图形用户界面,所述图像用户界面在经历OCR后接收对
出现在文档中的第一错误表征的项进行纠正的用户输入数据;
至少部分基于用户输入数据,使550产生了造成第一错误表征的项的初始
错误的OCR过程的第一阶段纠正所述初始错误;以及
使530所述第一阶段之后的OCR过程的各阶段对作为初始错误的结果而
在它们的相应阶段中产生的随之发生的错误进行纠正。
13.如权利要求12所述的方法,其特征在于,呈现530所述图像用户界
面包括:请求用户对错误表征的项所属的错误类型进行分类。
14.如权利要求12所述的方法,还包括:使第一阶段对产生和第一错误
表征的项同时产生其他错误表征的项的其他错误进行纠正。
15.如权利要求12所述的方法,其特征在于,所述用户界面90包括预
先选择的错误类型的菜单410,用户从所述菜单中选择作为用户输入数据的部
分。

说明书

对经历光学字符识别(OCR)过程的文本文档中出现的错误的用户纠正

技术领域

本发明涉及光学字符识别过程,尤其涉及光学字符识别过程中的错误纠
正。

背景技术

光学字符识别(OCR)是一般以标准的编码方案对文本的图像到作为机器
可编辑文本的数字形式的基于计算机的转换。这一过程消除了将文档手动键入
计算机系统的需求。由于扫描过程所导致的较差图像质量、非理想性等可引发
多个不同问题。例如,常规OCR引擎可被耦合到扫描文本的页面的平板式扫
描仪。由于页面被放置于与扫描仪的扫描面齐平,因此扫描仪所生成的图像通
常展示出平坦的对比度和照明度、减少的歪斜和失真、以及高的分辨率。由此,
OCR引擎可方便地将图像中的文本转换成机器可编辑的文本。然而,当图像对
于对比度、照明度、歪斜等而质量较低时,由于图像的较复杂的处理,OCR引
擎的性能可能会降级并且处理时间可能会增加。例如,当图像是从书中获取时
或者当由基于成像器的扫描仪生成时,这可能是该情况,因为在这些情况下,
文本/图像是从一距离、从变化的方向、以及在变化的照明中扫描的。即使扫描
过程的性能是良好的,当相对低质量的文本的页面正被扫描时,OCR引擎的性
能也可能会降级。因而,一般需要许多单独的处理步骤来以相对高的质量执行
OCR。

尽管OCR过程中的改进,仍会出现错误,诸如错误识别的单词或字符、
段落、文本行或页面布局的其他方面的错误标识。在各个处理阶段完成时,可
以给予用户标识和纠正在OCR过程期间出现的错误的机会。用户一般需要手
动地纠正每一个错误,即使错误之一传播通过OCR过程并引起了多个其他错
误。每一单独错误的手动纠正在用户方面来说会是耗时且令人生厌的过程。

发明内容

向用户给予在输入文档经历OCR过程之后对其作出纠正的机会。这种纠
正可以包括错误识别的字符或单词、错误对齐的栏、错误识别的文本或图像区
域等。OCR过程一般进行多个阶段,该多个阶段以顺序的或流水线的方式处理
输入文档。在用户纠正了错误识别的或错误表征的项(例如,错误表征的文本)
之后,负责错误表征的处理阶段就纠正引起该错误表征的底层错误(例如,过
大的单词边界框)。然后,OCR过程中的每一后续处理阶段尝试纠正在其相应
的阶段中由初始错误引起的任何随之发生的错误。当然,在产生初始错误的阶
段之前的处理阶段没有需要纠正的错误。这样,错误的纠正就在OCR处理流
水线中传播。也就是,在产生初始错误的阶段之后的每一个阶段都或者递增地
或者完全地重新计算其输出,因为其输入已经在前一阶段中被纠正。结果,用
户不需要纠正文档中已经在OCR过程期间被错误表征的每一项。

在一种实现中,通过经历OCR过程来创建图像文档的电子模型。电子模
型包括图像文档的已经由OCR过程中多个顺序执行的阶段的每一个所确定的
元素(例如,单词、文本行、段落、图像)。电子模型充当由处理该图像文档
的前一阶段提供给各个阶段的输入信息。向用户呈现图形用户界面,使用户能
提供对文档中出现的错误表征的项进行纠正的用户输入数据。基于用户输入数
据,产生了引起错误表征的项的初始错误的处理阶段对该初始错误进行纠正。
然后,该阶段之后的OCR过程的阶段对由于初始错误而在它们的相应阶段中
产生的任何随之发生的错误进行纠正。

提供本发明内容以便以简化形式介绍将在以下的详细描述中进一步描述
的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要
特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图说明

图1示出了用于对文本图像执行光学字符识别(OCR)的系统的一个说明
性示例。

图2是OCR引擎20的一个特定示例的高层逻辑图。

图3示出其中标记为区域1-8的文本区域已经由OCR标识的文本文档。

图4示出可由错误纠正组件提供给用户的图形用户界面的一个示例。

图5是示出用于纠正文档的文本图像的方法的一个示例的流程图。

具体实施方式

图1示出了用于对文本图像执行光学字符识别(OCR)的系统5的一个说
明性示例。系统5包括生成文档15的图像的数据捕捉装置(例如,扫描仪10)。
扫描仪10可以是基于图像的扫描仪,它利用电荷耦合器件作为图像传感器用
于生成图像。扫描仪10处理图像以生成输入数据,并且将输入数据发送给处
理装置(例如OCR引擎20)以供图像内的字符识别。在该具体示例中,将OCR
引擎20合并到扫描仪10中。然而,在其他示例中,OCR引擎20可以是分开
的单元,诸如独立单元或被合并到诸如PC、服务器之类的另一设备中的单元。

图2是OCR引擎20的一个特定示例的高层逻辑图。在该例中,OCR引擎
被配置为具有以下组件的应用:图像捕捉组件30,分段组件40、读次序组件
50、文本检测组件60、段落检测组件70、错误纠正组件80和图形用户界面(GUI)
组件90。然而,应当注意,图2仅仅表示了OCR引擎的一个抽象逻辑体系结
构,其元素通常用硬件、软件、固件或它们的任何组合来实现。此外,在这种
体系结构的其他例子中,所采用的组件的数量和/或类型、以及检测和识别各种
文本特征的次序可能不同。

图像捕捉组件30用于例如通过对置于从传真机或扫描仪接收到的存储文
件夹中的输入进行自动处理,来捕捉图像。图像捕捉模块30可以作为用于从
用户的图像捕捉数据的OCR引擎的主要部分,或者它可以作为单独的组件或
者用户的其他文档成像和文档管理应用的模块。分段组件40检测文档上的文
本和图像区域,并且定位单词位置作为第一近似。读次序组件50把单词排列
到文本区域中,并且确定这些区域的正确次序。文本识别组件60识别或标识
之前已被检测的单词,并且计算关于各个单词和文本行的文本属性。段落检测
组件70将已经在文本区域中被标识的文本行排列成段落,并且计算诸如段落
是左对齐、右对齐还是居中对齐等段落属性。如以下更详细描述的,错误纠正
组件80在文档经由GUI组件90经历了OCR之后允许用户纠正文档中的错误。

无论OCR引擎的详细体系结构如何,OCR过程一般进行多个阶段,该多
个阶段以顺序的或流水线的方式处理输入文档。例如,在图2所示的例子中,
段落检测在文本识别之后发生,文本识别在读次序确定之后发生,而读次序确
定在分段过程之后发生。每一个后续的组件把前一组件提供的输出用作其输
入。结果,一个组件中产生的错误会混合到后续组件中,导致额外的错误。

每个组件的输入数据可以被表示为电存储的存储器模型。存储器模型存储
文档的各个元素,包括例如:各个页面、文本区域(多栏文本页面中的各栏、
图像标题)、图像区域、段落、文本行和单词。存储器模型的这些元素的每一
个都可以包含诸如边界框坐标、(单词的)文本、字体特征、图像等属性。OCR
引擎的每个组件使用存储器模型作为其输入,并且提供一输出,在该输出中,
存储器模型通过例如添加新元素或通过向当前现有的元素添加新属性来改变
(一般被丰富)。

在OCR引擎的一个组件中产生的初始错误可以以两种不同的方式被增加
到后续组件中的额外错误中。第一,由于OCR过程的行为是确定性的,因此
它一般不止一次地作出同一种类型的错误,一般是每当在输入文档中找到有问
题的模式时。例如,如果在文档中使用了某一非常特殊的字体,字符“8”可
能被识别为字符“s”,该错误最有可能在每次出现字符“8”时重复。类似地,
如果实际上是项列表的段落被错误识别为标准文本时,同一错误也会对文档中
的其他列表产生。

第二,初始错误可能倍增,因为后续组件依赖于从前一组件获得的不正确
信息,从而引入新的错误。将结合图3说明这类错误传播的例子。图3示出其
中标记为区域1-8的文本区域已经由OCR标识的文本文档。在该例中,在文
档的扩大部分的圆周区域内示出的少量污迹被错误标识为文本,造成与圆周重
叠的单词边界框过大。由于这种错误标识,读次序组件把文本区域6标识为宽
度过大,在文本区域4和7间以及在文本区域5和8之间延伸。结果,标识了
五个文本区域(区域4-8),而实际上读次序组件应该仅仅正确地标识两个文
本区域,一个对应于由区域4、区域6的左半和区域7所所定义的栏,另一个
对应于由区域5、区域6的右半和区域8所定义的另一栏。

首次出现的错误将被称为初始错误,诸如上例中文本污迹的错误识别。从
初始错误产生的后续错误将被称为随之发生的错误,诸如上例中文本区域的错
误表征。

如下详述,向用户给予在输入文档经历OCR过程之后对其作出纠正的机
会。这种纠正可以包括错误识别的字符或单词、错误对齐的栏、错误识别的文
本或图像区域等。一旦负责错误表征(例如,错误表征的文本)的处理阶段纠
正了造成该错误表征的底层错误(例如,过大的单词边界框),则每一后续处
理阶段就尝试纠正它们相应的阶段中由初始错误造成的任何随之发生的错误。
当然,在产生初始错误的阶段之前的处理阶段没有需要纠正的错误。这样,错
误的纠正就在OCR处理流水线中传播。也就是说,每一后续阶段或者递增地
或者完全地重新计算其输出,因为其输入已经在前一阶段中被纠正。结果,用
户不需要纠正文档中已经在OCR过程期间被错误表征的每一项。

应当注意,由于用户一般不知道造成错误表征的底层错误,因此用户并不
直接纠正错误本身,而仅仅纠正错误的结果,该错误结果自身展现为错误表征
的项。因此,用户所执行的纠正仅仅充当OCR引擎可用来标识实际错误的提
示或建议。

除了纠正随之发生的错误之外,负责初始错误的阶段或组件尝试向纠正学
习,并且试图在适当时候自动地重新应用纠正。例如,在上例中,如果用户已
经表明字符“8”已被错误表征为字符“s”,则该错误可能对于字符“8”的许
多出现而发生。负责的组件因此会尝试纠正该错误的类似实例。

图4a示出可由GUI组件90提供给用户的图形用户界面400的一个示例。
当然,该界面仅仅是用来说明由OCR引擎的各个组件执行的错误纠正过程的
这种界面的一个特定例子。更一般地,可以向用户提供任何适当的界面,所述
界面提供工具以使他或她来表示在OCR过程期间发生的错误表征。

图4所示的示例性GUI 400向用户请求两个信息片段以实现纠正过程。首
先,请求用户定义或分类错误类型。该信息可以经由GUI以任何方便的方式被
纠正组件所接收。在图4a的例子中,用户经由下拉菜单410从一系列预先定义
的错误类别中选择被提供给用户的类别。这种预先定义的错误类别可以包括,
例如,文本区域错误、段落区域错误、段落结尾错误、文本行错误、单词错误、
图像区域错误等。

如果文本的大部分被完全忽略(例如由于低对比度),或如果所标识的文
本未被正确地分类到文本区域中(例如,标题、栏、页眉、页脚、图像标题等),
则可能产生文本区域错误。如果文本未被正确地分到段落中,则会产生段落区
域错误。如果在文本区域(通常是栏)的结尾处不正确地检测到段落的结尾,
则会产生段落结尾错误,尽管它实际继续到下一文本区域。如果文本行被完全
忽略或者如果文本行未被正确地分隔(例如,两个或更多行被不正确地垂直或
水平合并、或者一个行被不正确地分成两个或更多行),则会产生文本行错误。
单词错误会在以下情况下产生,例如,如果标点符号缺失、如果一行未被正确
地分成单词(例如,两个或更多单词被合并在一起,或者单个单词被分成两个
或更多单词)、或如果一个单词的全部或部分缺失(即,未被检测)。图像区
域类似于文本区域错误,并且可能在图像的全部或部分缺失时产生。其他类型
的错误从图像或文本的不正确检测产生,所述不正确检测可能在例如除文本以
外的内容(例如,污迹、线条)被不正确地检测为文本时出现。

用户所选择的预定义的错误类型帮助错误纠正组件标识OCR引擎的造成
初始错误的组件。然而,应当注意,不止一个组件可能负责一给定错误类型。
例如,文本区域错误可能指示分段组件中的(例如,因为根本未检测到文本的
一部分或者因为定义了不正确的单词边界框)或读次序组件中的(例如,因为
单词边界框是正确的但是单词未被正确地分类到文本区域中)初始错误。

用户为实现纠正过程而提供的另一信息片段是纠正错误表征的项的输入。
图4b中的GUI示出接收到这种用户输入的一种方式。在该例中,文档被呈现
在GUI的显示窗口420中。也示出在文档中的每个单词周围的单词边界框,以
便于用户纠正过程(尽管在一些实现中,用户可能能够关闭边界框使它们不可
见)。用户所选择的错误的分类是单词错误。在该例中,单词“plains”之后的
逗号原始是缺失的。该逗号未被包括的原因是OCR引擎已经将其错误表征为
单词“emotional”的一部分,使该单词被错误表征为“emotionai”。参见图4b,
该错误出现的原因是,单词“emotional”周围的边界框错误地将逗号包括在单
词“plains”之后。在该情况下,用户通过突出显示或以其他方式指示适当的一
个或多个边界框的已被不正确检测的部分,从而纠正该错误。然后,错误检测
组件如图4b所示地识别单词。然而,在图4b中,单词边界框尚未被更新以反
映该变化。在图4c中,错误纠正组件识别一用户区域430(即,用户在其上作
出纠正的文本图像的区域),其中用户已经重新定义了单词“plains”周围的边
界框。

错误纠正组件80还定义了所关注的地带440,它包括用户区域430以及与
该用户区域相交的所有单词边界框。图4d示出所关注的地带440。在该特定例
子中,与用户区域相交的单词边界框包括单词“to”“plains,”和“emotional”。
基于用户所指定的错误类型以及已由用户在显示窗口中重新表征的单词和标
点,分段组件首先重新计算所关注地带内的连通分支(即在被表示在边空白中
时组成每个字符或字母的组成部分)。然后,分段组件分析每一个连通分支相
对于用户区域以及之前检测到的单词边界框的位置。如果连通分支在用户区域
内的像素多于在用户区域外的像素,则该连通分支被视为属于用户区域。被认
为属于用户区域内的每一个连通分支都与一新单词或与某一之前检测到的单
词或行相关联。删除任何不具有与之相关联的连通分支的单词(在该情况下是
原始单词“plains”)。然后更新在所关注地带内的所有元素(例如单词)的边
界框,因为所述边界框可能已经丢失了它们的连通分支中的一些,或者可能接
收到一个或多个新的连通分支。

在此重申,在图4b-4d所示的例子中,用户区域430包含文本“Plains,”
(包括逗号),所关注的地带440被扩展到用户区域430之外以包括单词
“emotional”,因为这是与用户区域相交的唯一单词边界框。在该情况下,所
有连通分支将保留在它们的原始单词边界框中,除了那些在单词“Plains”中的
连通分支以及随后的逗号,后两者将全部与用户在用户区域内定义的新单词相
关联。由于单词“emotional”已经丢失了与逗号相关联的连通分支,因此其边
界框大小被减少,并且被指定为未被识别。这样,单词会由文本识别组件重新
识别。新单词“plains,”也会被指定为未被识别,因此它也会被重新识别。

概括而言,在用户纠正了用户区域中的任何错误表征的项之后,错误纠正
组件80使得一个或多个新单词被创建、所关注地带内的连通分支被重新指派、
边界框被重新计算、且单词被重新识别。

除了使用图4所示的当前用户输入数据以外,纠正组件还考虑到之前接收
到的已经被提供用来纠正其他错误表征的项的用户输入。例如,如果前一错误
类型是文本区域错误或单词错误,且如果在当前所关注地带内的某些单词或行
在纠正该错误的过程期间被修改,那么在纠正当前错误时采用的标准可能更为
严格。例如,现在纠正的任何错误应当维持之前的用户对错误表征的项的纠正。
这种之前的用户纠正可以以多个不同的方式被维持或保持。在一例中,可以向
存储器模型添加每一组件用作其输入数据的新属性。一种新属性是由OCR引
擎的各组件确定的各个项元素的置信度水平。被指派给每一元素的置信度水平
可以部分取决于该项是否在初始OCR过程期间被确定,或者它是否在对用户
纠正错误表征的项时标识的初始或后续错误进行纠正时被确定。例如,当单词
或字符由用户在纠正过程期间直接输入(或通过键入或通过从两个或多个备选
项中选择)时,该单词或字符的置信度水平可以被设为最大值。

在上述例子中,用户所选择的错误类别是单词错误。可以为其他错误类别
执行类似的纠正过程。例如,如果错误类别是文本区域错误,则这类错误通常
比单词错误更容易纠正,因为它较不可能涉及由于相交边界框引起的问题。这
是因为文本区域通常比单词或行更容易分隔。然而,如果错误涉及单词边界框
的相交,则可以以上面讨论的方式来检查连通分支。更一般地,可以使用更直
接的替代方式,即,仅仅检验位于显示窗口内的用户区域是否包含任何单词边
界框的中心。如果用户区域不包含任何单词框中心,则可以假定该区域中没有
单词。这意味着由于假定文本区域完全缺失,因此在分段组件中出现错误。在
该情况下,单词检测算法被重新执行,但这次仅仅限制为用户区域,使组件能
更好地确定背景色或前景色。任选地,分段组件也可以在重新执行单词检测组
件时提高对色彩对比度的敏感性。另一方面,如果用户区域确实包含一个或多
个单词边界框而不裁剪它们中的任一个(或者,如果用户区域包含某些单词边
界框的中心),则该错误可以被视为文本区域分隔错误。也就是,单词未被正
确地安排到区域中,意味着该问题在于读次序组件而非分段组件。在这一情况
下,没有东西需要分段组件纠正。

如果用户所选择的预定义的错误类别是图像区域错误,则用户输入可以比
图4所示方式更为复杂的方式由GUI接收。例如,可以向用户提供套索工具来
定义用户区域。这样,用户可以标识不正确地部署在图像区域中的连通分支。

如果用户所选择的错误类型是文本区域错误,则初始错误可能在读次序组
件中产生。读次序组件的主要任务是检测文本区域。该组件假定单词和图像边
界框被正确地检测。读次序组件执行文本区域检测算法,该算法一般通过逐行
地在单词间创建初始小空白矩形集合来操作。它然后尝试垂直地扩展空白矩形
而不重叠任何单词边界框。这样,空白矩形的尺寸较大,并且可能与其他空白
矩形合并,从而形成空白区域。高度过短(即,低于阈值高度)的空白区域被
放弃,就像在其左边界或右边界不接触足够数量的文本行的那些区域。然后,
文档被分成不同的文本区域,这些不同的文本区域由已经标识的空白区域隔
开。

因而,读次序组件将是响应于该错误的第一个组件,显示窗口420内的单
词或者完全位于用户区域内,或位于用户区域外。当用户标识文本区域错误时,
读次序组件如下修改其基本的文本区域检测算法。首先,用户区域内包含的所
有单词边界框都不再考虑,用户之前定义的所有区域被暂时移除。接着,执行
基本的文本区域检测算法,此后添加新定义的用户区域作为另一文本区域。此
外,暂时移除的区域都被添加回去。如果采用置信度水平属性,对于新定义的
区域(即用户区域),它可以被设为其最大值。

如果用户所选择的错误类型是文本行错误,则执行和上述对于文本区域错
误的过程类似的过程。

从用户输入学习

如上所述,负责初始错误的阶段或组件可能尝试从纠正中学习,并且在适
当时自动地重新应用纠正。其他组件也可以尝试从初始错误学习。为理解这如
何实现,识别出OCR引擎的各个组件基于组件计算的文档的一个或多个特征
来作出许多分类决定是有用的。分类过程可以使用基于规则的或基于机器学习
的算法来执行。这种分类决定的示例包括:

-决定淡色背景上的一组给定的暗色像素连通组是否应被分类为文本;

-决定两个给定的单词是否属于同一文本行(在下标、上标和标点的情况
下变得困难);

-决定同一文本行内的各文本部分之间的给定空白是否是单词结束(word 
break);

-决定在两个文本块之间的给定的水平延伸的空白条(一般有几行文本
高)是否是两个分开的文本栏;

标识来自连通分支的给定干净位图的字符;

-决定给定的文本行是否表示段落的结尾;

-决定给定段落是左对齐、右对齐、两端对齐还是居中对齐;

可以在分类过程期间检查的文档特征的例子包括:一组像素的大小、中值
前景/背景色彩强度之间的差异、以及这组像素和其最近的相邻组之间的距离。
这些特征可以用来确定该组像素是否应该与文本相关联。可以检查一些特征来
把两个单词分类为属于相同的或不同的文本行,这些特征包括:单词的高度、
它们垂直重叠的量、到前一行的垂直距离等等。

在纠正过程期间,OCR引擎作出结论说,一些特征集合会导致不同的分类
决定。一旦这些重分类规则已经被确定,它们就可以以多种不同的方式使用。
例如,它们可以仅应用于经历OCR的文档的当前页面。在该情况下,通过搜
索页面以找到重分类规则所采用的模式或特征组、然后使用重分类规则作出分
类决定,从而应用重分类规则。

在一些情况下,重分类规则被限制为仅应用于当前页面,而不是将重分类
规则应用于多页文档的每一页面。另一方面,如果多页文档在任何人类干预前
被完全处理,则重分类规则可以应用于文档的其他页面。然而,如果用户以逐
页模式工作,其中每一页在该页面经历OCR处理之后被立即纠正,则可能根
据用户偏好,在后续页面的初始处理期间可能应用所述规则或可能不应用所述
规则。

根据期望,重分类规则可以被应用于其他文档以及当前文档,并且可能甚
至成为该OCR引擎所执行的OCR过程的永久部分。然而,这一般不会是优选
的操作模式,因为格式和样式可能在各文档间显著地改变。OCR引擎一般被调
谐成在大多数情况下以高准确度执行,因此,当文档遭遇到诸如单词和标点符
号间的不寻常大间隔等不寻常的特征、或者在文本栏间具有极小的间隔时,重
分类规则一般最为有用。在这种情况下,从纠正错误表征的项的用户输入数据
学习在该文档内会是有用的,但不在其他文档中有用。因此,优选操作模式可
能是仅对当前文档应用重分类规则。例如,这可以是缺省操作模式,可以向用
户提供改变缺省值以便使规则也应用于其他文档的选项。

作为重分类规则的应用性的一个例子,当用户选择要求删除文本或者要求
正确地定义单词、文本行或文本区域的错误类型时,分段组件可以确定一小组
像素已经被错误地误归类为文本(诸如在污迹被识别为标点的情况下)。从这
一纠正过程产生的重分类规则可以被应用于整个文档。举另一个例子,当一个
别字符被错误识别为另一字符时产生的重分类规则可以被应用于文档中,因为
这可能是每当找到同一特征组合而发生的系统错误。同样,将文本行错误分类
为段落结尾或段落中间的连续行可能系统地发生,尤其对于具有不充分上下文
的短段落。对如何定义段落(或通过不正确地分隔文本或通过未检测到段落的
结尾)的错误进行纠正的用户输入一般会调用行重分类规则的创建,行重分类
规则然后用于纠正其他段落。

随之发生的错误纠正

在特定错误的纠正期间,OCR引擎的各个组件通过改变现有元素的属性,
或者通过向存储器模型添加元素或从中删除元素(例如,单词、行、区域),
从而修改该模型。因此,对于其过程在OCR流水线的稍后阶段执行的组件的
输入将会在错误已经在流水线的早期阶段被纠正后略微改变。后续组件或者通
过完全地重新处理输入数据、或者在可能时通过仅仅重新处理已经改变的输入
数据使得输出被增量地更新,从而把这种变化考虑在内。一般而言,耗时的阶
段可能以增量的方式工作,而快速的和/或对于输入数据中的小变化非常敏感的
组件可能完全地重新处理数据。因此,一些组件比其他组件更受执行增量更新
的影响。例如,由于分段组件是流水线中的第一阶段,因此它不需要处理已经
在前一阶段中编辑的输入数据。

读次序组件对于其输入数据中的变化非常敏感,因为小输入变化会急剧地
改变其输出(例如,读次序可能在将单个单词边界框收缩几个像素时改变),
使该组件难以增量地工作。幸运的是,读次序组件极快,因此它能够在每当有
改变时重新处理所有输入数据。因而,该组件一般使用与存储器模型的当前状
态相关联的数据来重新执行,存储器模型包含从用户输入产生的所有之前的改
变和纠正。

在分段过程使用用户输入纠正了错误后,某些单词边界框会略微改变,可
以标识完全新的单词并将其置于存储器模型中。一般而言,很少的单词会受到
影响。因而,文本识别组件仅需要重新识别那些新标识的单词。(尽管当读次
序组件作出纠正时一些之前识别的单词可能被移到不同的行和区域,但是这些
变化不会引入对单词重新识别的需求)。因此,文本识别组件可以通过搜索由
前一组件标记或以其他方式表示为需要被重新识别的单词,从而增量地工作。
这是有利的,因为已知文本识别过程是缓慢的。

由于读次序组件会在文档的存储器模型中引入显著的变化,因此它一般不
会使段落检测组件增量地工作。但由于段落组件一般极快,因此它在有变化时
重新处理所有输入数据是方便的。因此,段落组件通过使用用户输入来纠正该
组件中产生的初始错误、存储器模型的当前状态以及作为前一用户输入的结果
获得的信息(或者通过用户纠正错误表征所采用的所有以前动作的列表,或者
通过存储器模型中包括的其他属性,诸如置信度水平),从而作出纠正。

图5是示出用于纠正文档的文本图像的方法的一个示例的流程图。首先,
在步骤510中,文档经历OCR,在OCR期间产生图像的电子模型。接着,在
步骤520向用户呈现电子模型的视觉表示,使得用户能标识文本图像中任何错
误表征的项。在步骤530也向用户呈现图形用户界面(GUI)。用户可以使用
GUI来纠正所找到的文本的任何错误表征的项。在步骤540,经由纠正错误表
征的项的GUI接收用户输入。造成错误表征的项的在OCR过程期间发生的一
个或多个初始错误在步骤550得以纠正。在步骤560更新文档的电子模型以反
映已经被纠正的一个或多个初始错误。最后,在步骤570,使用经更新的电子
模型在产生初始错误的处理阶段之后的处理阶段中纠正随之发生的错误。

如在本申请中所使用的,术语“组件”、“模块”、“引擎”、“系统”、
“装置”、“接口”等一般旨在表示计算机相关的实体,该实体可以是硬件、
硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于
是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和
/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一
个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算
机内和/或分布在两个或更多的计算机之间。

此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的
软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装
置或制品。如这里所使用的术语“制品”可以包含可以从任何计算机可读的设
备、载体或介质进行访问的计算机程序。例如,计算机可读介质可以包括但不
限于磁存储设备(例如,硬盘、软盘、磁带...)、光盘(例如,紧致盘(CD)、
数字多功能盘(DVD)底)、智能卡,以及闪存设备(例如,卡、棒、键驱动
器...)。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的
范围或精神的前提下可以对这一配置进行许多修改。

尽管用专门描述结构特征和/或方法动作的语言描述了主题,但是应当理
解,在所附权利要求书中限定的主题并不一定局限于上述特定的特征或动作。
更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf_第1页
第1页 / 共20页
对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf_第2页
第2页 / 共20页
对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf》由会员分享,可在线阅读,更多相关《对经历光学字符识别OCR过程的文本文档中出现的错误的用户纠正.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102289667 A (43)申请公布日 2011.12.21 CN 102289667 A *CN102289667A* (21)申请号 201110137913.4 (22)申请日 2011.05.16 12/780,991 2010.05.17 US G06K 9/20(2006.01) G06F 17/22(2006.01) (71)申请人 微软公司 地址 美国华盛顿州 (72)发明人 B拉达科维奇 M武格代利亚 N托迪奇 A乌泽拉茨 B德雷舍维奇 (74)专利代理机构 上海专利商标事务所有限公 司 31100 代理人 黄嵩泉 (54) 发明名称 对经历光学。

2、字符识别 (OCR) 过程的文本文档 中出现的错误的用户纠正 (57) 摘要 本发明涉及对经历光学字符识别 (OCR) 过程 的文本文档中出现的错误的用户纠正。通过经历 OCR 过程来创建图像文档的电子模型。电子模型 包括图像文档的已经由 OCR 过程中多个顺序执行 的阶段的每一个所确定的元素 ( 例如, 单词、 文本 行、 段落、 图像 )。电子模型充当由处理该图像文 档的前一阶段提供给各个阶段的输入信息。向用 户呈现图形用户界面, 使用户能提供对文档中出 现的错误表征的项进行纠正的用户输入数据。基 于用户输入数据, 产生了引起错误表征的项的初 始错误的处理阶段对该初始错误进行纠正。 然后,。

3、 该阶段之后的 OCR 过程的各阶段对由于初始错误 而在它们的相应阶段中产生的随之发生的错误进 行纠正。 (30)优先权数据 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 9 页 附图 8 页 CN 102289682 A1/2 页 2 1. 一种用于执行光学字符识别的图像处理装置, 包括 : 输入组件 30, 用于接收文档的文本图像 ; 分段组件 40, 用于检测所述文档中的文本和图像并且标识单词位置 ; 读次序组件 50, 用于把单词排列到文本区域中并且以正确的读次序来排列所述文本区 域 ; 文本识别组件 60, 用于识别单。

4、词并且计算和各个单词和文本行有关的文本属性 ; 段落检测组件 70, 用于把已经在所述文本区域中标识的文本行排列到段落中 ; 用户界面 90, 用户经其提供用户输入数据, 其中所述用户输入数据在经历 OCR 之后纠 正在所述文档中出现的第一个错误表征的项 ; 以及 错误纠正组件 80, 用于接收用户输入数据、 并且使其中初始错误产生所造成的第一个 错误表征的项的第一个组件纠正该初始错误, 其中错误纠正组件还被配置成使在第一组件 之后处理所述图像的各组件纠正作为初始错误的结果而产生的随之发生的错误。 2.如权利要求1所述的图像处理装置, 其特征在于, 所述组件30-90中的第一个还被配 置成自动。

5、地纠正造成和第一错误表征的项具有相同类型的其他错误表征的项的其他错误。 3. 如权利要求 1 所述的图像处理装置, 其特征在于, 所述用户界面 90 包括预先选择的 错误类型 410 的菜单, 用户从所述菜单中选择作为用户输入数据的部分。 4.如权利要求3所述的图像处理装置, 其特征在于, 所述预先选择的错误类型410包括 从由文本区域错误、 段落区域错误、 段落结尾错误、 文本行错误、 单词错误和图像区域错误 组成的组中选择的多个错误类型。 5. 如权利要求 1 所述的图像处理装置, 其特征在于, 所述用户输入 90 包括第一错误类 型的选择, 并且至少部分基于所述第一错误类型, 所述错误纠。

6、正组件 80 使一个或多个所选 择的组件至少部分地重新执行以纠正初始错误。 6. 如权利要求 1 所述的图像处理装置, 其特征在于, 所述用户界面 90 包括显示 420, 在 显示 420 中在经历 OCR 之后呈现文本图像的一部分, 所述用户界面 90 被配置成接收纠正第 一错误表征的项的用户输入, 并且识别和用户输入所纠正的文本图像的选择相对应的显示 420 的用户区域部分。 7. 如权利要求 1 所述的图像处理装置, 其特征在于, 所述随之发生的错误以与用户之 前纠正的错误表征的项一致的方式被纠正。 8. 如权利要求 1 所述的图像处理装置, 还包括用于存储所述图像文档的电子模型的存 。

7、储器组件, 其中所述电子模型包括图像文档的由组件 30-90 的每一个确定的元件, 其中所 述电子模型充当由处理所述图像文档的前一组件提供给组件 30-90 的每一个的输入信息。 9. 如权利要求 8 所述的图像处理装置, 其特征在于, 所述错误纠正组件 80 使得文本识 别组件60中产生的随之发生的错误通过增量地重新执行文本识别组件60以仅处理已被改 变的元件而被纠正。 10. 如权利要求 8 所述的图像处理装置, 其特征在于, 所述电子模型包括与元素的每一 个相关联的属性, 其中属性的每一个指定了与属性所关联至的相应元素相关联的置信度水 平。 11. 如权利要求 10 所述的图像处理装置,。

8、 其特征在于, 所述初始错误在电子模型中包 括的至少一个元素中产生, 其中所述纠正组件 80 在已经纠正初始错误后为与至少一个元 权 利 要 求 书 CN 102289667 A CN 102289682 A2/2 页 3 素相关联的一个或多个属性的置信度水平分配一个最大值。 12. 一种用于纠正已经历光学字符识别 (OCR) 的文本图像文档的方法, 包括 : 在图像文档已经历 OCR 过程之后接收 510 所述图像文档的电子模型, 所述电子模型包 括图像文档的已经由 OCR 过程中的多个顺序执行的阶段的每一个所确定的元素, 其中电子 模型充当由处理所述图像文档的前一阶段提供给每一个阶段的输入。

9、信息 ; 向用户呈现 530 图形用户界面, 所述图像用户界面在经历 OCR 后接收对出现在文档中 的第一错误表征的项进行纠正的用户输入数据 ; 至少部分基于用户输入数据, 使 550 产生了造成第一错误表征的项的初始错误的 OCR 过程的第一阶段纠正所述初始错误 ; 以及 使530所述第一阶段之后的OCR过程的各阶段对作为初始错误的结果而在它们的相应 阶段中产生的随之发生的错误进行纠正。 13. 如权利要求 12 所述的方法, 其特征在于, 呈现 530 所述图像用户界面包括 : 请求用 户对错误表征的项所属的错误类型进行分类。 14. 如权利要求 12 所述的方法, 还包括 : 使第一阶段。

10、对产生和第一错误表征的项同时 产生其他错误表征的项的其他错误进行纠正。 15. 如权利要求 12 所述的方法, 其特征在于, 所述用户界面 90 包括预先选择的错误类 型的菜单 410, 用户从所述菜单中选择作为用户输入数据的部分。 权 利 要 求 书 CN 102289667 A CN 102289682 A1/9 页 4 对经历光学字符识别 (OCR) 过程的文本文档中出现的错误 的用户纠正 技术领域 0001 本发明涉及光学字符识别过程, 尤其涉及光学字符识别过程中的错误纠正。 背景技术 0002 光学字符识别 (OCR) 是一般以标准的编码方案对文本的图像到作为机器可编辑 文本的数字形。

11、式的基于计算机的转换。这一过程消除了将文档手动键入计算机系统的需 求。 由于扫描过程所导致的较差图像质量、 非理想性等可引发多个不同问题。 例如, 常规OCR 引擎可被耦合到扫描文本的页面的平板式扫描仪。 由于页面被放置于与扫描仪的扫描面齐 平, 因此扫描仪所生成的图像通常展示出平坦的对比度和照明度、 减少的歪斜和失真、 以及 高的分辨率。由此, OCR 引擎可方便地将图像中的文本转换成机器可编辑的文本。然而, 当 图像对于对比度、 照明度、 歪斜等而质量较低时, 由于图像的较复杂的处理, OCR 引擎的性能 可能会降级并且处理时间可能会增加。例如, 当图像是从书中获取时或者当由基于成像器 的。

12、扫描仪生成时, 这可能是该情况, 因为在这些情况下, 文本 / 图像是从一距离、 从变化的 方向、 以及在变化的照明中扫描的。 即使扫描过程的性能是良好的, 当相对低质量的文本的 页面正被扫描时, OCR 引擎的性能也可能会降级。因而, 一般需要许多单独的处理步骤来以 相对高的质量执行 OCR。 0003 尽管 OCR 过程中的改进, 仍会出现错误, 诸如错误识别的单词或字符、 段落、 文本 行或页面布局的其他方面的错误标识。在各个处理阶段完成时, 可以给予用户标识和纠正 在 OCR 过程期间出现的错误的机会。用户一般需要手动地纠正每一个错误, 即使错误之一 传播通过 OCR 过程并引起了多个。

13、其他错误。每一单独错误的手动纠正在用户方面来说会是 耗时且令人生厌的过程。 发明内容 0004 向用户给予在输入文档经历 OCR 过程之后对其作出纠正的机会。这种纠正可以包 括错误识别的字符或单词、 错误对齐的栏、 错误识别的文本或图像区域等。OCR 过程一般进 行多个阶段, 该多个阶段以顺序的或流水线的方式处理输入文档。在用户纠正了错误识别 的或错误表征的项(例如, 错误表征的文本)之后, 负责错误表征的处理阶段就纠正引起该 错误表征的底层错误 ( 例如, 过大的单词边界框 )。然后, OCR 过程中的每一后续处理阶段 尝试纠正在其相应的阶段中由初始错误引起的任何随之发生的错误。当然, 在产。

14、生初始错 误的阶段之前的处理阶段没有需要纠正的错误。这样, 错误的纠正就在 OCR 处理流水线中 传播。也就是, 在产生初始错误的阶段之后的每一个阶段都或者递增地或者完全地重新计 算其输出, 因为其输入已经在前一阶段中被纠正。结果, 用户不需要纠正文档中已经在 OCR 过程期间被错误表征的每一项。 0005 在一种实现中, 通过经历 OCR 过程来创建图像文档的电子模型。电子模型包括图 像文档的已经由OCR过程中多个顺序执行的阶段的每一个所确定的元素(例如, 单词、 文本 说 明 书 CN 102289667 A CN 102289682 A2/9 页 5 行、 段落、 图像)。 电子模型充当。

15、由处理该图像文档的前一阶段提供给各个阶段的输入信息。 向用户呈现图形用户界面, 使用户能提供对文档中出现的错误表征的项进行纠正的用户输 入数据。基于用户输入数据, 产生了引起错误表征的项的初始错误的处理阶段对该初始错 误进行纠正。然后, 该阶段之后的 OCR 过程的阶段对由于初始错误而在它们的相应阶段中 产生的任何随之发生的错误进行纠正。 0006 提供本发明内容以便以简化形式介绍将在以下的详细描述中进一步描述的一些 概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征, 也不旨在用 于帮助确定所要求保护的主题的范围。 附图说明 0007 图 1 示出了用于对文本图像执行光学字符。

16、识别 (OCR) 的系统的一个说明性示例。 0008 图 2 是 OCR 引擎 20 的一个特定示例的高层逻辑图。 0009 图 3 示出其中标记为区域 1-8 的文本区域已经由 OCR 标识的文本文档。 0010 图 4 示出可由错误纠正组件提供给用户的图形用户界面的一个示例。 0011 图 5 是示出用于纠正文档的文本图像的方法的一个示例的流程图。 具体实施方式 0012 图 1 示出了用于对文本图像执行光学字符识别 (OCR) 的系统 5 的一个说明性示 例。系统 5 包括生成文档 15 的图像的数据捕捉装置 ( 例如, 扫描仪 10)。扫描仪 10 可以 是基于图像的扫描仪, 它利用电。

17、荷耦合器件作为图像传感器用于生成图像。扫描仪 10 处理 图像以生成输入数据, 并且将输入数据发送给处理装置 ( 例如 OCR 引擎 20) 以供图像内的 字符识别。在该具体示例中, 将 OCR 引擎 20 合并到扫描仪 10 中。然而, 在其他示例中, OCR 引擎 20 可以是分开的单元, 诸如独立单元或被合并到诸如 PC、 服务器之类的另一设备中的 单元。 0013 图 2 是 OCR 引擎 20 的一个特定示例的高层逻辑图。在该例中, OCR 引擎被配置为 具有以下组件的应用 : 图像捕捉组件 30, 分段组件 40、 读次序组件 50、 文本检测组件 60、 段 落检测组件 70、 。

18、错误纠正组件 80 和图形用户界面 (GUI) 组件 90。然而, 应当注意, 图 2 仅 仅表示了 OCR 引擎的一个抽象逻辑体系结构, 其元素通常用硬件、 软件、 固件或它们的任何 组合来实现。此外, 在这种体系结构的其他例子中, 所采用的组件的数量和 / 或类型、 以及 检测和识别各种文本特征的次序可能不同。 0014 图像捕捉组件 30 用于例如通过对置于从传真机或扫描仪接收到的存储文件夹中 的输入进行自动处理, 来捕捉图像。图像捕捉模块 30 可以作为用于从用户的图像捕捉数 据的 OCR 引擎的主要部分, 或者它可以作为单独的组件或者用户的其他文档成像和文档管 理应用的模块。分段组件。

19、 40 检测文档上的文本和图像区域, 并且定位单词位置作为第一近 似。读次序组件 50 把单词排列到文本区域中, 并且确定这些区域的正确次序。文本识别组 件 60 识别或标识之前已被检测的单词, 并且计算关于各个单词和文本行的文本属性。段落 检测组件 70 将已经在文本区域中被标识的文本行排列成段落, 并且计算诸如段落是左对 齐、 右对齐还是居中对齐等段落属性。如以下更详细描述的, 错误纠正组件 80 在文档经由 GUI 组件 90 经历了 OCR 之后允许用户纠正文档中的错误。 说 明 书 CN 102289667 A CN 102289682 A3/9 页 6 0015 无论 OCR 引擎。

20、的详细体系结构如何, OCR 过程一般进行多个阶段, 该多个阶段以顺 序的或流水线的方式处理输入文档。例如, 在图 2 所示的例子中, 段落检测在文本识别之后 发生, 文本识别在读次序确定之后发生, 而读次序确定在分段过程之后发生。 每一个后续的 组件把前一组件提供的输出用作其输入。结果, 一个组件中产生的错误会混合到后续组件 中, 导致额外的错误。 0016 每个组件的输入数据可以被表示为电存储的存储器模型。 存储器模型存储文档的 各个元素, 包括例如 : 各个页面、 文本区域 ( 多栏文本页面中的各栏、 图像标题 )、 图像区域、 段落、 文本行和单词。存储器模型的这些元素的每一个都可以包。

21、含诸如边界框坐标、 ( 单词 的)文本、 字体特征、 图像等属性。 OCR引擎的每个组件使用存储器模型作为其输入, 并且提 供一输出, 在该输出中, 存储器模型通过例如添加新元素或通过向当前现有的元素添加新 属性来改变 ( 一般被丰富 )。 0017 在 OCR 引擎的一个组件中产生的初始错误可以以两种不同的方式被增加到后续 组件中的额外错误中。第一, 由于 OCR 过程的行为是确定性的, 因此它一般不止一次地作出 同一种类型的错误, 一般是每当在输入文档中找到有问题的模式时。 例如, 如果在文档中使 用了某一非常特殊的字体, 字符 “8” 可能被识别为字符 “s” , 该错误最有可能在每次出。

22、现字 符 “8” 时重复。类似地, 如果实际上是项列表的段落被错误识别为标准文本时, 同一错误也 会对文档中的其他列表产生。 0018 第二, 初始错误可能倍增, 因为后续组件依赖于从前一组件获得的不正确信息, 从 而引入新的错误。将结合图 3 说明这类错误传播的例子。图 3 示出其中标记为区域 1-8 的 文本区域已经由 OCR 标识的文本文档。在该例中, 在文档的扩大部分的圆周区域内示出的 少量污迹被错误标识为文本, 造成与圆周重叠的单词边界框过大。 由于这种错误标识, 读次 序组件把文本区域 6 标识为宽度过大, 在文本区域 4 和 7 间以及在文本区域 5 和 8 之间延 伸。 结果,。

23、 标识了五个文本区域(区域4-8), 而实际上读次序组件应该仅仅正确地标识两个 文本区域, 一个对应于由区域4、 区域6的左半和区域7所所定义的栏, 另一个对应于由区域 5、 区域 6 的右半和区域 8 所定义的另一栏。 0019 首次出现的错误将被称为初始错误, 诸如上例中文本污迹的错误识别。从初始错 误产生的后续错误将被称为随之发生的错误, 诸如上例中文本区域的错误表征。 0020 如下详述, 向用户给予在输入文档经历 OCR 过程之后对其作出纠正的机会。这种 纠正可以包括错误识别的字符或单词、 错误对齐的栏、 错误识别的文本或图像区域等。一 旦负责错误表征 ( 例如, 错误表征的文本 )。

24、 的处理阶段纠正了造成该错误表征的底层错误 ( 例如, 过大的单词边界框 ), 则每一后续处理阶段就尝试纠正它们相应的阶段中由初始错 误造成的任何随之发生的错误。当然, 在产生初始错误的阶段之前的处理阶段没有需要纠 正的错误。这样, 错误的纠正就在 OCR 处理流水线中传播。也就是说, 每一后续阶段或者递 增地或者完全地重新计算其输出, 因为其输入已经在前一阶段中被纠正。 结果, 用户不需要 纠正文档中已经在 OCR 过程期间被错误表征的每一项。 0021 应当注意, 由于用户一般不知道造成错误表征的底层错误, 因此用户并不直接纠 正错误本身, 而仅仅纠正错误的结果, 该错误结果自身展现为错误。

25、表征的项。因此, 用户所 执行的纠正仅仅充当 OCR 引擎可用来标识实际错误的提示或建议。 0022 除了纠正随之发生的错误之外, 负责初始错误的阶段或组件尝试向纠正学习, 并 说 明 书 CN 102289667 A CN 102289682 A4/9 页 7 且试图在适当时候自动地重新应用纠正。例如, 在上例中, 如果用户已经表明字符 “8” 已被 错误表征为字符 “s” , 则该错误可能对于字符 “8” 的许多出现而发生。负责的组件因此会尝 试纠正该错误的类似实例。 0023 图 4a 示出可由 GUI 组件 90 提供给用户的图形用户界面 400 的一个示例。当然, 该界面仅仅是用来说。

26、明由 OCR 引擎的各个组件执行的错误纠正过程的这种界面的一个特 定例子。 更一般地, 可以向用户提供任何适当的界面, 所述界面提供工具以使他或她来表示 在 OCR 过程期间发生的错误表征。 0024 图 4 所示的示例性 GUI 400 向用户请求两个信息片段以实现纠正过程。首先, 请 求用户定义或分类错误类型。该信息可以经由 GUI 以任何方便的方式被纠正组件所接收。 在图4a的例子中, 用户经由下拉菜单410从一系列预先定义的错误类别中选择被提供给用 户的类别。 这种预先定义的错误类别可以包括, 例如, 文本区域错误、 段落区域错误、 段落结 尾错误、 文本行错误、 单词错误、 图像区域。

27、错误等。 0025 如果文本的大部分被完全忽略 ( 例如由于低对比度 ), 或如果所标识的文本未被 正确地分类到文本区域中 ( 例如, 标题、 栏、 页眉、 页脚、 图像标题等 ), 则可能产生文本区域 错误。如果文本未被正确地分到段落中, 则会产生段落区域错误。如果在文本区域 ( 通常 是栏 ) 的结尾处不正确地检测到段落的结尾, 则会产生段落结尾错误, 尽管它实际继续到 下一文本区域。如果文本行被完全忽略或者如果文本行未被正确地分隔 ( 例如, 两个或更 多行被不正确地垂直或水平合并、 或者一个行被不正确地分成两个或更多行 ), 则会产生文 本行错误。单词错误会在以下情况下产生, 例如, 。

28、如果标点符号缺失、 如果一行未被正确地 分成单词 ( 例如, 两个或更多单词被合并在一起, 或者单个单词被分成两个或更多单词 )、 或如果一个单词的全部或部分缺失 ( 即, 未被检测 )。图像区域类似于文本区域错误, 并且 可能在图像的全部或部分缺失时产生。其他类型的错误从图像或文本的不正确检测产生, 所述不正确检测可能在例如除文本以外的内容(例如, 污迹、 线条)被不正确地检测为文本 时出现。 0026 用户所选择的预定义的错误类型帮助错误纠正组件标识 OCR 引擎的造成初始错 误的组件。然而, 应当注意, 不止一个组件可能负责一给定错误类型。例如, 文本区域错误 可能指示分段组件中的 ( 。

29、例如, 因为根本未检测到文本的一部分或者因为定义了不正确的 单词边界框 ) 或读次序组件中的 ( 例如, 因为单词边界框是正确的但是单词未被正确地分 类到文本区域中 ) 初始错误。 0027 用户为实现纠正过程而提供的另一信息片段是纠正错误表征的项的输入。图 4b 中的 GUI 示出接收到这种用户输入的一种方式。在该例中, 文档被呈现在 GUI 的显示窗口 420中。 也示出在文档中的每个单词周围的单词边界框, 以便于用户纠正过程(尽管在一些 实现中, 用户可能能够关闭边界框使它们不可见 )。用户所选择的错误的分类是单词错误。 在该例中, 单词 “plains” 之后的逗号原始是缺失的。该逗号。

30、未被包括的原因是 OCR 引擎已 经将其错误表征为单词 “emotional” 的一部分, 使该单词被错误表征为 “emotionai” 。参 见图 4b, 该错误出现的原因是, 单词 “emotional” 周围的边界框错误地将逗号包括在单词 “plains” 之后。在该情况下, 用户通过突出显示或以其他方式指示适当的一个或多个边界 框的已被不正确检测的部分, 从而纠正该错误。然后, 错误检测组件如图 4b 所示地识别单 词。然而, 在图 4b 中, 单词边界框尚未被更新以反映该变化。在图 4c 中, 错误纠正组件识 说 明 书 CN 102289667 A CN 102289682 A5/。

31、9 页 8 别一用户区域 430( 即, 用户在其上作出纠正的文本图像的区域 ), 其中用户已经重新定义 了单词 “plains” 周围的边界框。 0028 错误纠正组件 80 还定义了所关注的地带 440, 它包括用户区域 430 以及与该用户 区域相交的所有单词边界框。图 4d 示出所关注的地带 440。在该特定例子中, 与用户区域 相交的单词边界框包括单词 “to” “plains, ” 和 “emotional” 。基于用户所指定的错误类型 以及已由用户在显示窗口中重新表征的单词和标点, 分段组件首先重新计算所关注地带内 的连通分支(即在被表示在边空白中时组成每个字符或字母的组成部分)。

32、。 然后, 分段组件 分析每一个连通分支相对于用户区域以及之前检测到的单词边界框的位置。 如果连通分支 在用户区域内的像素多于在用户区域外的像素, 则该连通分支被视为属于用户区域。被认 为属于用户区域内的每一个连通分支都与一新单词或与某一之前检测到的单词或行相关 联。删除任何不具有与之相关联的连通分支的单词 ( 在该情况下是原始单词 “plains” )。 然后更新在所关注地带内的所有元素 ( 例如单词 ) 的边界框, 因为所述边界框可能已经丢 失了它们的连通分支中的一些, 或者可能接收到一个或多个新的连通分支。 0029 在此重申, 在图 4b-4d 所示的例子中, 用户区域 430 包含文。

33、本 “Plains, ” ( 包括逗 号 ), 所关注的地带 440 被扩展到用户区域 430 之外以包括单词 “emotional” , 因为这是与 用户区域相交的唯一单词边界框。在该情况下, 所有连通分支将保留在它们的原始单词边 界框中, 除了那些在单词 “Plains” 中的连通分支以及随后的逗号, 后两者将全部与用户在 用户区域内定义的新单词相关联。由于单词 “emotional” 已经丢失了与逗号相关联的连通 分支, 因此其边界框大小被减少, 并且被指定为未被识别。这样, 单词会由文本识别组件重 新识别。新单词 “plains, ” 也会被指定为未被识别, 因此它也会被重新识别。 0。

34、030 概括而言, 在用户纠正了用户区域中的任何错误表征的项之后, 错误纠正组件 80 使得一个或多个新单词被创建、 所关注地带内的连通分支被重新指派、 边界框被重新计算、 且单词被重新识别。 0031 除了使用图 4 所示的当前用户输入数据以外, 纠正组件还考虑到之前接收到的已 经被提供用来纠正其他错误表征的项的用户输入。例如, 如果前一错误类型是文本区域错 误或单词错误, 且如果在当前所关注地带内的某些单词或行在纠正该错误的过程期间被修 改, 那么在纠正当前错误时采用的标准可能更为严格。 例如, 现在纠正的任何错误应当维持 之前的用户对错误表征的项的纠正。 这种之前的用户纠正可以以多个不同。

35、的方式被维持或 保持。在一例中, 可以向存储器模型添加每一组件用作其输入数据的新属性。一种新属性 是由 OCR 引擎的各组件确定的各个项元素的置信度水平。被指派给每一元素的置信度水平 可以部分取决于该项是否在初始 OCR 过程期间被确定, 或者它是否在对用户纠正错误表征 的项时标识的初始或后续错误进行纠正时被确定。例如, 当单词或字符由用户在纠正过程 期间直接输入 ( 或通过键入或通过从两个或多个备选项中选择 ) 时, 该单词或字符的置信 度水平可以被设为最大值。 0032 在上述例子中, 用户所选择的错误类别是单词错误。可以为其他错误类别执行类 似的纠正过程。例如, 如果错误类别是文本区域错。

36、误, 则这类错误通常比单词错误更容易 纠正, 因为它较不可能涉及由于相交边界框引起的问题。这是因为文本区域通常比单词或 行更容易分隔。 然而, 如果错误涉及单词边界框的相交, 则可以以上面讨论的方式来检查连 通分支。更一般地, 可以使用更直接的替代方式, 即, 仅仅检验位于显示窗口内的用户区域 说 明 书 CN 102289667 A CN 102289682 A6/9 页 9 是否包含任何单词边界框的中心。如果用户区域不包含任何单词框中心, 则可以假定该区 域中没有单词。这意味着由于假定文本区域完全缺失, 因此在分段组件中出现错误。在该 情况下, 单词检测算法被重新执行, 但这次仅仅限制为用。

37、户区域, 使组件能更好地确定背景 色或前景色。任选地, 分段组件也可以在重新执行单词检测组件时提高对色彩对比度的敏 感性。另一方面, 如果用户区域确实包含一个或多个单词边界框而不裁剪它们中的任一个 ( 或者, 如果用户区域包含某些单词边界框的中心 ), 则该错误可以被视为文本区域分隔错 误。也就是, 单词未被正确地安排到区域中, 意味着该问题在于读次序组件而非分段组件。 在这一情况下, 没有东西需要分段组件纠正。 0033 如果用户所选择的预定义的错误类别是图像区域错误, 则用户输入可以比图 4 所 示方式更为复杂的方式由 GUI 接收。例如, 可以向用户提供套索工具来定义用户区域。这 样, 。

38、用户可以标识不正确地部署在图像区域中的连通分支。 0034 如果用户所选择的错误类型是文本区域错误, 则初始错误可能在读次序组件中产 生。读次序组件的主要任务是检测文本区域。该组件假定单词和图像边界框被正确地检 测。读次序组件执行文本区域检测算法, 该算法一般通过逐行地在单词间创建初始小空白 矩形集合来操作。 它然后尝试垂直地扩展空白矩形而不重叠任何单词边界框。 这样, 空白矩 形的尺寸较大, 并且可能与其他空白矩形合并, 从而形成空白区域。高度过短 ( 即, 低于阈 值高度 ) 的空白区域被放弃, 就像在其左边界或右边界不接触足够数量的文本行的那些区 域。然后, 文档被分成不同的文本区域, 。

39、这些不同的文本区域由已经标识的空白区域隔开。 0035 因而, 读次序组件将是响应于该错误的第一个组件, 显示窗口 420 内的单词或者 完全位于用户区域内, 或位于用户区域外。 当用户标识文本区域错误时, 读次序组件如下修 改其基本的文本区域检测算法。 首先, 用户区域内包含的所有单词边界框都不再考虑, 用户 之前定义的所有区域被暂时移除。 接着, 执行基本的文本区域检测算法, 此后添加新定义的 用户区域作为另一文本区域。此外, 暂时移除的区域都被添加回去。如果采用置信度水平 属性, 对于新定义的区域 ( 即用户区域 ), 它可以被设为其最大值。 0036 如果用户所选择的错误类型是文本行错。

40、误, 则执行和上述对于文本区域错误的过 程类似的过程。 0037 从用户输入学习 0038 如上所述, 负责初始错误的阶段或组件可能尝试从纠正中学习, 并且在适当时自 动地重新应用纠正。 其他组件也可以尝试从初始错误学习。 为理解这如何实现, 识别出OCR 引擎的各个组件基于组件计算的文档的一个或多个特征来作出许多分类决定是有用的。 分 类过程可以使用基于规则的或基于机器学习的算法来执行。这种分类决定的示例包括 : 0039 - 决定淡色背景上的一组给定的暗色像素连通组是否应被分类为文本 ; 0040 - 决定两个给定的单词是否属于同一文本行 ( 在下标、 上标和标点的情况下变得 困难 ) ;。

41、 0041 - 决定同一文本行内的各文本部分之间的给定空白是否是单词结束 (word break) ; 0042 - 决定在两个文本块之间的给定的水平延伸的空白条 ( 一般有几行文本高 ) 是否 是两个分开的文本栏 ; 0043 标识来自连通分支的给定干净位图的字符 ; 说 明 书 CN 102289667 A CN 102289682 A7/9 页 10 0044 - 决定给定的文本行是否表示段落的结尾 ; 0045 - 决定给定段落是左对齐、 右对齐、 两端对齐还是居中对齐 ; 0046 可以在分类过程期间检查的文档特征的例子包括 : 一组像素的大小、 中值前景 / 背景色彩强度之间的差异。

42、、 以及这组像素和其最近的相邻组之间的距离。这些特征可以用 来确定该组像素是否应该与文本相关联。 可以检查一些特征来把两个单词分类为属于相同 的或不同的文本行, 这些特征包括 : 单词的高度、 它们垂直重叠的量、 到前一行的垂直距离 等等。 0047 在纠正过程期间, OCR 引擎作出结论说, 一些特征集合会导致不同的分类决定。一 旦这些重分类规则已经被确定, 它们就可以以多种不同的方式使用。 例如, 它们可以仅应用 于经历 OCR 的文档的当前页面。在该情况下, 通过搜索页面以找到重分类规则所采用的模 式或特征组、 然后使用重分类规则作出分类决定, 从而应用重分类规则。 0048 在一些情况。

43、下, 重分类规则被限制为仅应用于当前页面, 而不是将重分类规则应 用于多页文档的每一页面。 另一方面, 如果多页文档在任何人类干预前被完全处理, 则重分 类规则可以应用于文档的其他页面。 然而, 如果用户以逐页模式工作, 其中每一页在该页面 经历 OCR 处理之后被立即纠正, 则可能根据用户偏好, 在后续页面的初始处理期间可能应 用所述规则或可能不应用所述规则。 0049 根据期望, 重分类规则可以被应用于其他文档以及当前文档, 并且可能甚至成为 该 OCR 引擎所执行的 OCR 过程的永久部分。然而, 这一般不会是优选的操作模式, 因为格式 和样式可能在各文档间显著地改变。OCR 引擎一般被。

44、调谐成在大多数情况下以高准确度执 行, 因此, 当文档遭遇到诸如单词和标点符号间的不寻常大间隔等不寻常的特征、 或者在文 本栏间具有极小的间隔时, 重分类规则一般最为有用。 在这种情况下, 从纠正错误表征的项 的用户输入数据学习在该文档内会是有用的, 但不在其他文档中有用。 因此, 优选操作模式 可能是仅对当前文档应用重分类规则。 例如, 这可以是缺省操作模式, 可以向用户提供改变 缺省值以便使规则也应用于其他文档的选项。 0050 作为重分类规则的应用性的一个例子, 当用户选择要求删除文本或者要求正确地 定义单词、 文本行或文本区域的错误类型时, 分段组件可以确定一小组像素已经被错误地 误归。

45、类为文本 ( 诸如在污迹被识别为标点的情况下 )。从这一纠正过程产生的重分类规则 可以被应用于整个文档。举另一个例子, 当一个别字符被错误识别为另一字符时产生的重 分类规则可以被应用于文档中, 因为这可能是每当找到同一特征组合而发生的系统错误。 同样, 将文本行错误分类为段落结尾或段落中间的连续行可能系统地发生, 尤其对于具有 不充分上下文的短段落。对如何定义段落 ( 或通过不正确地分隔文本或通过未检测到段落 的结尾 ) 的错误进行纠正的用户输入一般会调用行重分类规则的创建, 行重分类规则然后 用于纠正其他段落。 0051 随之发生的错误纠正 0052 在特定错误的纠正期间, OCR 引擎的各。

46、个组件通过改变现有元素的属性, 或者通过 向存储器模型添加元素或从中删除元素(例如, 单词、 行、 区域), 从而修改该模型。 因此, 对 于其过程在 OCR 流水线的稍后阶段执行的组件的输入将会在错误已经在流水线的早期阶 段被纠正后略微改变。后续组件或者通过完全地重新处理输入数据、 或者在可能时通过仅 仅重新处理已经改变的输入数据使得输出被增量地更新, 从而把这种变化考虑在内。一般 说 明 书 CN 102289667 A CN 102289682 A8/9 页 11 而言, 耗时的阶段可能以增量的方式工作, 而快速的和 / 或对于输入数据中的小变化非常 敏感的组件可能完全地重新处理数据。因。

47、此, 一些组件比其他组件更受执行增量更新的影 响。 例如, 由于分段组件是流水线中的第一阶段, 因此它不需要处理已经在前一阶段中编辑 的输入数据。 0053 读次序组件对于其输入数据中的变化非常敏感, 因为小输入变化会急剧地改变其 输出 ( 例如, 读次序可能在将单个单词边界框收缩几个像素时改变 ), 使该组件难以增量地 工作。幸运的是, 读次序组件极快, 因此它能够在每当有改变时重新处理所有输入数据。因 而, 该组件一般使用与存储器模型的当前状态相关联的数据来重新执行, 存储器模型包含 从用户输入产生的所有之前的改变和纠正。 0054 在分段过程使用用户输入纠正了错误后, 某些单词边界框会略。

48、微改变, 可以标识 完全新的单词并将其置于存储器模型中。一般而言, 很少的单词会受到影响。因而, 文本识 别组件仅需要重新识别那些新标识的单词。( 尽管当读次序组件作出纠正时一些之前识别 的单词可能被移到不同的行和区域, 但是这些变化不会引入对单词重新识别的需求 )。因 此, 文本识别组件可以通过搜索由前一组件标记或以其他方式表示为需要被重新识别的单 词, 从而增量地工作。这是有利的, 因为已知文本识别过程是缓慢的。 0055 由于读次序组件会在文档的存储器模型中引入显著的变化, 因此它一般不会使段 落检测组件增量地工作。但由于段落组件一般极快, 因此它在有变化时重新处理所有输入 数据是方便的。

49、。因此, 段落组件通过使用用户输入来纠正该组件中产生的初始错误、 存储 器模型的当前状态以及作为前一用户输入的结果获得的信息 ( 或者通过用户纠正错误表 征所采用的所有以前动作的列表, 或者通过存储器模型中包括的其他属性, 诸如置信度水 平 ), 从而作出纠正。 0056 图 5 是示出用于纠正文档的文本图像的方法的一个示例的流程图。首先, 在步骤 510 中, 文档经历 OCR, 在 OCR 期间产生图像的电子模型。接着, 在步骤 520 向用户呈现电子 模型的视觉表示, 使得用户能标识文本图像中任何错误表征的项。在步骤 530 也向用户呈 现图形用户界面 (GUI)。用户可以使用 GUI 来纠正所找到的文本的任何错误表征的项。在 步骤540, 经由纠正错误表征的项的GUI接收用户输入。 造成错误表征的项的在OCR过程期 间发生的一个或多个初始错误在步骤 550 得以纠正。在步骤 560 更新文档的电子模型以反 映已经被纠正的一个或多个初始错误。最后, 在步骤 570, 使用经更新的电子模型在产生初 始错误的处理阶段之后的处理阶段中纠正随之发生的错误。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1