用于从成像文件提取文本的方法和设备与流程

文档序号:11545557阅读:311来源:国知局
用于从成像文件提取文本的方法和设备与流程

本发明总体涉及文本提取,且更具体地涉及用于从成像文件提取文本的方法和设备。



背景技术:

存在许多不同的环境和理由,针对这些环境和理由,个人、商家和/或其它实体可能期望将文件(或其它项目)中的文本的图像转换为机器编码的文本。例如,成像文本到机器编码的文本的转换能够使该文本被电子编辑、被搜索、被组织和/或被存储在数据库中等。成像文本的识别和编码在本文中被称为文本提取。

附图说明

图1为根据本发明的教导所实现的包括示例性数据处理设施的示例性环境的示意图。

图2为图1的示例性数据处理设施的示例性实现的框图。

图3至图5示出根据本文中所公开的教导的字符的两个示例性子图像的比较。

图6示出与实际接收物分离的字符的示例性子图像。

图7示出数字“4”被误识别为数字“1”的示例性子图像。

图8至图13为表示可被执行以实现图1和/或图2的示例性数据处理设施的示例性机器可读指令的流程图。

图14为构造成执行图8至图13的示例性机器可读指令以实现图1和/或图2的示例性数据处理设施的示例性处理器平台的框图。

具体实施方式

手动文本提取包含人检查文件(或该文件的纸印本)的图像以及手动地键入文本。手动提取具有高的准确度但可以为成本昂贵的且费时的。光学字符识别(ocr)为使用计算机自动地检测、识别和编码基于图像的文本文件的技术。尽管使用ocr提取文本通常比手动提取更快速且更便宜,但是ocr不太准确且更容易出错。此外,当待提取的原始文本被不良打印或原始文本的图像的质量很低时,ocr技术的准确度变小。例如,尽管ocr引擎可以能够识别使用具有相对较高准确度级别的台式扫描器成像的杂志文章的清晰打印的文本,但是同一ocr引擎可能在识别在使用低质量的销售点打印机打印的且使用手持式照相机在照明不足情况下成像的接收物上的文本时是非常不准确的,尤其是如果该接收物已被弄皱且未放平。

因此,在期望相对较高准确度级别的一些示例中,ocr本身是不足的。可以在执行ocr之后执行手动检查以校正错误。然而,在许多这类实例中,手动检查可能恰恰和直接的手动提取一样高成本和/或耗时,和/或益处可能是微小的。此外,尽管基于计算机的文本提取(例如使用ocr)将很大可能随着技术进步、随时间推移而改善,但是将仍有很大可能存在至少一些错误,这些错误可能需要手动检查。因此,需要在文本提取期间减少手动检查的量,不管ocr的准确度如何。

本文中所公开的示例通过利用待识别的成像文本内的常规个体字符(例如字母、数字或符号)之间的视觉类似度来提高文本提取的准确度和/或效率。例如,在文本收集中的小写字母“h”在视觉上比例如该文本中的大写字母“t”(或任何其它字符)更类似于该小写字母“h”在该文本中的其它实例。基于这个事实,文本中的字符可以被分组为视觉类似字符的群集。更特别地,在一些示例中,将成像文本分段为文本的个体字符所对应的较小局部子图像,然后将子图像相比较且相应地分组为群集。例如,视觉上与字母“h”相关的一组字符的子图像将在一个群集中,而视觉上与字母“t”相关的另一组字符的子图像将在另一个群集中,等等。尽管一些不同的字符可能潜在地因为外观的类似(例如,大写字母“i”、小写字母“l”、和数字“1”)而被分组在一起,但是大多数群集将包括基本上仅一个特定字符所对应的子图像,这是因为每个字符在外观上的差别足以区分于其它字符。

在一些实例中,在同一字符所对应的任何两个子图像之间可存在细微差别,这是因为例如文本印刷时的不完美、文本成像时的不完美和/或子图像形成时的不完美。因此,在一些示例中,基于具有高于特定阈值的视觉相关性将子图像分组在多个群集中,以允许同一字符所对应的任何两个子图像之间的微小变化。然而,在一些示例中,文本打印或成像时的不完美可导致同一字符所对应的两个子图像在外观上的差别足以将其分组为不同的群集。例如,在一个特定字母“h”中的词干或升部的上半部分可被不良打印(例如褪色的、不完整的、或完全缺失),另一个字母“h”可在其弯曲部分或肩部上被不良打印,而第三个字母“h”可具有贯穿其中的条纹或线(由打印机的打印头上的残留油墨创建)。尽管这些字母中的每一者均对应于同一字符(小写字母“h”),但是因为其打印时的不完美,所以这些字符中的任何两者的子图像之间的视觉相关性可以不超过指定阈值,使得每个子图像位于其自身的群集中。因此,在一些示例中,可以具有对应于同一字符的多个群集。即,尽管每个群集包含基本上仅针对于单个特定字符的子图像,但是根据本发明的教导,子图像的群集的总数量可以超过正被分析的成像文件中实际上不同的字符的总数量。

根据文本中所公开的教导,上文描述的将子图像分组为群集基于对子图像的基于图像的视觉比较。因此,尽管群集对应于特定字符,但是针对该群集的特定字符的识别可以未被指定(例如还未被机器编码)。然而,因为子图像的每个群集对应于特定字符,所以识别表示群集的单个子图像中的字符可以用于识别该群集中的子图像中的每一者所对应的字符。识别成对应于特定群集中的子图像的字符在本文中被称为用于该群集的指定字符。例如,假设每个词平均有5个字母,则1000词的文件将包含约5000个字符(不包括标点符号)。在这类示例中,在5000个字符之中,可具有小写字母“h”的数十个(如果没有数百个的话)实例。如果字母“h”的所有实例被分组为单个群集,则从单个典型的子图像将字母“h”识别为用于该群集的指定字符可以被应用于该群集中的所有子图像。当然,如上所述,可能的是,字母“h”的一些实例将在外观上是充分不同的,使得对应的子图像将被分组为单独的群集。然而,字母“h”所对应的群集的数量仍很可能远小于成像文件中的字母“h”的实例的总数量。通过比较,完全手动的文本提取(不使用ocr引擎)将需要人类检测者来识别字母“h”(以及5000个字符中的其它每一者加上任何标点)的所有实例并测定其类型。

更通常地,被识别以编码成像文件的子图像的群集的总数量对应于用在文件中的唯一字符的总数量以及可基于特定字符的不同实例的外观的变化(例如基于所使用的不同字体、字符中的一些字符的打印错误、和/或由待分析的文件或文本的图像捕获引起的错误)划分每个唯一字符而成的不同群集的数量。例如,采用英语的大多数文本最多包括94个唯一字符(在标准键盘上可获得的),其对应于26个大写字母、26个小写字母、10个数字、和32个符号。如果每个字符可以在外观上不同以引起最多有n种不同方式将其分为不同群集,则来自任一特定成像文本的潜在不同群集的最大数量将为n×94。假设n(特定字符可分成的不同群集的最大数量)等于10,则用于任一成像文本的群集的总数量将不超过940个群集(10×94)。因此,利用本文中公开的群集,上文提及的全部5000个字符的文件可以被人类检查者(不使用ocr引擎)编码,其中该检查者最多进行940次字符识别,然后贯穿整个文本传播这些字符识别,而非使用传统的手动文本提取方法单独地识别全部5000个字符以及相关联的标点。在一些实例中,字符识别的总数量可以明显更少,这是因为该文本不可能包括全部的94个潜在字符,以及一些字符(例如句号或逗号)很可能具有其可出现的相对较少的方式(远少于n),从而形成较少的群集。

当成像文本包含甚至更多的字符时,在识别对应字符之前基于类似外观将子图像分组为群集的优势进一步变得明显。例如,如果文件为上文示例中的10倍长(包括近50000个字符),则将仍仅存在940个用于识别对应群集的子图像的群集(例如假设用于任何给定字符的群集的最大数量为n=10,如上文示例中)。与5000个字符的文本相关联的群集对比与50000个字符的文本相关联的群集之间的差别在于,50000个字符的文本中的群集将平均包含更多子图像。从人类检查者的视点看,没有增加提取(编码)用于较长文本的字符的时间或成本,这是因为表示群集的单个子图像的识别可以被应用于该群集中的每个子图像,不管群集的大小如何。因此,无论是需要识别5000个字符还是50000个字符,仍仅存在最多940(假设n=10)个待进行的字符指定。

本文中公开的教导可以被扩展到多批文件的文本提取。即,尽管成像文本可对应于单个独立的文件,但是当成像文本对应于多个单独的和/或多样化的文件时,相同的原理适用。例如,假设100个文件(每个均包含50000个字符)一起被成像且分析。在这类示例中,尽管总共具有5000000个待编码的字符,但是将仍仅存在与待识别以编码全部的100个文件的特定字符相关联的约n×94个不同群集。尽管存在参与分析100个成像文件以合适地将5000000个子图像(对应于5000000个字符中的每一者)分组为对应群集的一些时间和/或成本,但是该成本是可忽略不计的,这是因为这类分析是自动的,如本文中所公开。

尽管在上文示例中显著降低了手动文本提取的成本,但是当实施ocr技术来识别针对每个群集指定的合适字符时,可以进一步显著降低人类检查者的参与度。显然,如果ocr方法是完全准确的,则手动检查将不再是必需的。然而,ocr技术包括一定的误差容限。尽管可以使用ocr来准确地识别许多字符,但是通常将存在至少一些无法被识别的或以相对较低置信度识别的字符。因此,在本文中公开的一些示例中,使用ocr引擎对用于群集的指定字符的识别的可靠性被分析。在一些这类示例中,如果指定字符的识别的可靠性相对较高(例如高于阈值),则自动地将指定字符分配给群集中的每个子图像而无手动检查。在另一方面,如果指定字符的识别的可靠性相对较低(例如低于阈值),则由ocr引擎识别的指定字符可以被标记以备手动检查和/或确认。

除了上文提到的针对群集的纯手动检查的时间节省外,如上所述的使用ocr技术结合子图像的聚集可以大幅降低人类检查者的参与度。例如,假设ocr引擎80%的时间可以以足够的可靠性(例如高于阈值)识别指定字符。在这类场景中,在940个潜在群集(将识别用于这些群集的指定字符)的上文示例中,仅188个(20%)群集需要被手动检查。相比于完全手动文本提取中的5000000次字符识别,这是实质性改善。尽管可使用传统的ocr方法来分析5000000个字符以减少全手动检查,但是因为在本示例中,ocr的准确率仅为80%,所以仍留下识别不足够可靠的1000000(5000000的20%)个字符,因此需要手动检查。因此,如本文中所公开,将字符的子图像分组为具有类似外观的图像的群集具有显著降低手动文本提取的成本同时不管是否使用ocr技术仍达到令人满意的准确度级别的潜能。当然,ocr的使用协助进一步降低成本和/或人类检查者的需求。换言之,尽管本文中公开的教导不取决于ocr技术的准确度或甚至使用来降低人类检查者在文本提取期间的参与度,但是任一准确度的ocr技术可以用于进一步降低人类检查者的参与度。因此,当ocr技术随着时间推移而发展和改进时,可以根据本文中公开的教导立即实现ocr技术以进一步减少人类检查者的参与量。

此外,在一些示例中,用于子图像的群集的指定字符(对应于无法使用ocr可靠识别的字符)的手动识别被保存在数据库中,用于后续在分析附加文件时作为参考。即,除了将本文中公开的教导应用于处于一个特定时间的一个或多个成像文件(例如单批)之外,还可以使用群集中的指定字符的手动识别来自动地识别针对在后续分析的对应群集中的子图像指定的字符。换言之,针对特定子图像指定的字符的手动识别可以被应用于在如将被分析(不论是同时(例如在单批中)还是在一段时间内(例如多个连续批次)被分析)的一样多的不同文件中的类似子图像(例如在阈值内具有相同外观)的一样多的实例。

本文中公开的示例性方法包括利用处理器将文件的图像分段为对应于该文件中的个体字符的局部子图像。该示例性方法还包括利用处理器基于各自的子图像与基准子图像的视觉相关性将各自的子图像分组为群集。基准子图像与被分组为群集的各自的子图像之间的视觉相关性超出相关性阈值。该示例性方法还包括利用处理器基于被分组为群集的子图像识别用于该群集的指定字符。该示例性方法还包括利用处理器将指定字符与文件的图像中与被分组为群集的各自的子图像相关联的位置相关联。

示例性设备包括借助处理器实现的图像分析器,该图像分析器用于将文件的图像分段为对应于该文件中的个体字符的局部子图像,以及基于各自的子图像与基准子图像的视觉相关性将各自的子图像分组为群集。基准子图像与被分组为群集的各自的子图像之间的视觉相关性超出相关性阈值。该示例性设备还包括借助处理器实现的字符识别器,该字符识别器用于基于被分组为群集的子图像识别用于该群集的指定字符。该示例性设备还包括借助处理器实现的编码文本生成器,该编码文本生成器用于将指定字符与文件的图像中与被分组为群集的各自的子图像相关联的位置相关联。

示例性指令在被执行时引起机器至少将文件的图像分段为对应于该文件中的个体字符的局部子图像。该示例性指令还引起机器基于各自的子图像与基准子图像的视觉相关性将各自的子图像分组为群集。基准子图像与被分组为群集的各自的子图像之间的视觉相关性超出相关性阈值。该示例性指令还引起机器基于被分组为群集的子图像识别用于该群集的指定字符。该示例性指令还引起机器将指定字符与文件的图像中与被分组为群集的各自的子图像相关联的位置相关联。

图1示出了可实现本文中公开的教导的示例性场景。在图示示例中,零售店102向顾客104出售商品或服务。作为购买的一部分,零售店102可以向顾客104提供收据106。在一些示例中,顾客104为市场调查小组的顾客小组成员。顾客小组成员为在由市场调查实体108维持的小组中注册的顾客104,该市场调查实体108从小组成员收集可束缚于小组成员的人口统计特征的市场数据(例如关于购买的产品、购买的量、价格、购买的位置等)。即,市场调查实体108登记同意被监控和/或以其它方式向市场调查实体108提供反馈的人员(例如顾客小组成员104)。在登记期间,市场调查实体108从登记的人员(例如顾客小组成员104)接收人口统计信息,从而可以制定与那些小组成员相关联的市场数据和不同的人口统计市场之间的后续相关性。人员可以以任何合适的方式变为小组成员,诸如例如借助电话面试、通过完成在线调查等。附加地或可替选地,可以使用任何期望的方法(例如随机选择、统计选择、电话征集、因特网广告、调查、购物中心中的广告、产品包装等)联系和/或征募人员。

在一些示例中,一旦人员登记作为顾客小组成员,则市场调查实体108通过在数据处理设施110处收集收据(例如收据106)的副本来跟踪和/或监控顾客小组成员的购买行为,在该数据处理设施110处处理并分析这些收据。在一些示例中,请求小组成员104捕获收据106的图像112并将该图像转发到市场调查实体108的数据处理设施110。可以使用任何合适手段捕获图像112并将其转发到数据处理设施110。例如,小组成员104可以使用手持式设备(例如平板电脑、智能手机等)为收据106拍照,然后将产生的图像112发送到数据处理设施110(例如通过无线蜂窝网络)。尽管为收据拍照对于顾客小组成员104来说可以是方便的,但是它造成了对于后续文本提取的潜在挑战,如由顾客小组成员104捕获的图像112可能质量很差,这是因为例如没有合适地相对于照相机的视野来定向收据(例如,如图示示例中所示,图像112中的收据106相对于图像112定位不当)、可能存在照明不足、照相机可能焦点没对准等。在这类情况下,ocr技术可具有准确率使得使用人类检查者来达到可接受的准确度级别的需求可增长。在其它示例中,小组成员104可以使用扫描器扫描收据106,然后将产生的图像112发送到数据处理设施110(例如通过因特网)。在其它示例中,可以在线进行购买,从而电子地生成收据106(例如借助电子邮件被发送到小组成员104)。在这类示例中,可以将收据的电子副本转发到数据处理设施110。

尽管在图示示例中仅示出了单个收据106,但是小组成员104可以图像式捕获任何数量的收据并将其转发到数据处理设施110。在一些示例中,可以具有来自同一零售店102的多个收据。在其它示例中,小组成员104可以已经从多个不同的零售店进行购买,因此可以向数据处理设施110提供来自这些零售店的收据的副本。此外,尽管在图1中示出仅一个小组成员104,但是在一些示例中,多个顾客可以登记作为小组成员并提供从各自的零售店(这些小组成员在此处进行购买)接收的收据。因此,在一些示例中,数据处理设施110可以接收从一个或多个顾客小组成员提供的源自一个或多个零售店的收据的多个图像。

附加地或可替选地,如在图示示例中所示,零售店102可以直接将顾客收据的副本或图像114提供给数据处理设施110,而不管顾客是否为小组成员。即,收据图像114可以对应于由小组成员104(和/或其它小组成员)订立的交易以及由其它非小组成员的顾客订立的交易。因此,在一些示例中,数据处理设施110可以从特定零售店102接收收据的大批图像以备分析和处理。当然,在一些实例中,零售店102可以有权访问电子形式的收据信息,从而文本提取变为非必需的。

在一些示例中,无论从小组成员(例如收据图像112)、从零售店102(例如收据图像114)、或从二者接收收据图像,数据处理设施110都以相同的方式分析收据,该方式基于:将对应于收据图像112、114中的个体字符的子图像分组为群集,识别用于每个群集的指定字符,以及将该指定字符应用于对应群集中的所有子图像。尽管数据处理设施110可以一次处理单个收据图像,但是在一些示例中,在多于一个收据的批次中分析多个收据图像以利用规模效益。例如,尽管一批中的较大数量的收据导致任何给定群集中的较大数量的子图像,但是由整个批次产生的群集的总数量很大可能保持基本相同,而不管该批次中的数据的数量如何。因此,对于该批次待识别的指定字符的总数量可以保持基本一致,而不管该批次的规模如何。

由于更多收据被包括在特定批次中用于分析,因此很有可能的是,这些收据中的个体收据将具有来自有规律打印的文本的独特印刷错误和/或其它像差(例如随机的墨水斑点),这将生成在视觉上区别于该批次中的所有其它字符的字符。因此,在一些示例中,群集的总数量在较大批次中可以略高于在较小批次中。然而,相比于通过与其它收据同时识别附加收据(包括在较大批次中)中的所有字符而获得的效率,源自这些像差的附加群集是相对次要的。

更重要地,如果从不同类型的打印机(使用不同字体)打印一批内的多个收据,则相对较高的可能性是,一种收据(例如来自具有第一字体的第一种打印机)中的许多字符将在视觉上不同于另一种收据(例如来自具有第二字体的第二种打印机)的字符。在这类场景中,每种收据可以生成其自身的一组群集,其不对应于另一种收据的字符,从而将收据组合为单个批次在单独分析每种收据的批次方面不提供任何显著效益。因此,在一些示例中,基于打印机和/或在收据中使用的字体的类型,将不同收据组织为不同批次。在一些示例中,假设特定商家很可能在生成其所有的顾客收据时使用相同类型的销售点打印机,则基于产生收据的商家(例如发行收据106的零售店102)分析多批收据。然而,在其它示例中,数据处理设施110可以分析单批中来自不同源的各种各样的收据,而不区分来源(例如,当小组成员104提供来自被该小组成员104访问的所有零售店的多个收据时)。下文结合图2进一步详细公开实现数据处理设施的示例性方式。尽管在图1中示出了收据图像112、114的文本提取,但是本文中公开的教导可以适合地适用于针对任一种类的数字成像文本提取(例如编码)文本。

图2为图1的示例性数据处理设施110的示例性实现的框图。示例性数据处理设施110包括示例性通信接口202、示例性批次指定器204、示例性图像分析器206、示例性字符识别器208、示例性用户界面210、示例性编码文本生成器212、和示例性字符识别数据库214。

尽管本文中公开的教导可以被实现以提取任一种类的成像文本,但是出于阐述目的,在如上文结合图1描述的对从顾客小组成员和/或零售店接收的收据执行文本提取的背景下描述图2。因此,在图2的图示示例中,数据处理设施110设置有示例性通信接口202,该示例性通信接口202用于与顾客小组成员104和/或零售店102进行通信。在一些示例中,通信接口202从顾客小组成员104和/或零售店102接收收据的图像(例如图像112、114)。另外,在一些示例中,通信接口202可以向小组成员和/或零售店发送反馈和/或指令,该反馈和/或指令关于先前收集的收据(例如给零售店的关于从提交的收据图像114处理的营销数据的报告)和/或待收集的未来收据(例如用于捕获和/或转发收据图像的指令)。

在图2的图示示例中,数据处理设施110设置有示例性批次指定器204,该示例性批次指定器204用于指定其中可放有由通信接口202接收的收据的合适批次以备批次分析。在一些示例中,来自零售店102和/或小组成员104的收据图像112、114的每次传输被指定为个体批次。在其它示例中,在一段时间内接收的收据在被分析之前被收集到单一批次中。在其它示例中,批次指定器204识别收据图像112、114所对应的原始来源(例如发行每个收据的零售店)并将来自不同来源的收据放在不同批次中。在一些示例中,批次指定器204基于来自提供收据图像112、114的零售店102和/或小组成员104的输入识别原始来源。在其它示例中,批次指定器204基于收据图像的分析(例如通过检测收据上的标志和/或商标)识别原始来源。

在图2的图示示例中,数据处理设施110设置有示例性图像分析器206,该示例性图像分析器206用于识别或分离待分析的收据图像112、114中的每个字符所对应的局部子图像。分离成像文件(诸如收据图像112、114)内的个体字符的过程在本文中被称为分段。存在大量已知的分段技术。作为一个示例,图像分析器206可以分析收据图像内的每个像素以确定最受欢迎的灰度级(假设该图像处于灰度模式),这对应于文本的背景。在一些这类示例中,图像分析器206然后将具有在最受欢迎的灰度级的指定范围内的值的所有像素设定为0值(对应于白色),以及将所有其它像素设定为1值(对应于黑色),因此将图像变为二元的黑白图像,其中黑像素对应于字符。在一些这类示例中,图像分析器206使用注入填充算法找出黑白图像内的每个连接分量。在一些示例中,假设通过白像素将个体字符与相邻字符分离,则每个连接分量被视为单独字符。图像分析器206可以计算用于每个这类分量的边界以确定用于由识别的分量表示的字符的边界。在分量边界小于相邻分量的边界和/或与相邻分量的边界不重合的一些示例中,较小的界定区域可以被识别成对应于单个字符的不同部分(例如小写字母“i”上的点和条或者由不良打印部分分离的字符的两个部分)并将这些不同部分一起分组以形成用于完整字符的边界。在一些示例中,计算用于分量(对应于特定字符)的边界包括确定该分量的尺寸以及该分量在黑白图像内的位置。采用该方式,每个字符的位置被指定,使得一旦识别该字符,则可以将指定字符应用于收据图像内的合适位置。然后将针对每个分量所计算的边界应用于原始收据图像112、114(相同尺寸和在相同位置)以分离每个收据图像内的每个字符的子图像。当然,除了上文描述的示例外或代替上文描述的示例,图像分析器206可以使用任何其它合适的分段技术来分离收据图像112、114中的每个字符所对应的子图像。

除了将收据图像112、114分段为分离的子图像外,在一些示例中,图像分析器206基于子图像的视觉比较的分析将子图像分组为群集。在一些示例中,当两个子图像之间的视觉相关性超出阈值时,图像分析器206将两个不同的子图像分组为公共群集。在一些示例中,图像分析器206通过将多个子图像中的第一子图像视为基准子图像以及将第二子图像与第一子图像相比较来计算两个子图像之间的视觉相关性。结合图3至图5描述计算两个子图像之间的视觉相关性的示例性过程。

在图3的图示示例中,第一子图像302(对应于数字“4”)为基准子图像,并将其与第二子图像304(也对应于数字4)相比较。出于阐述目的,仅用轮廓表示子图像302、子图像304中的字符。然而,大多数字符在打印时通常被填满。在图6中示出了来自实际收据的实际字符的示例性子图像。在图3的图示示例中,基准子图像302中的数字“4”被直立定向,如由矩形边界306所指示,但底部拐角308缺失。在一些示例中,缺失的拐角308可能是由于数字“4”的该部分的不良打印而造成的。相比之下,第二图像304中的数字“4”被全部打印但在外观上是倾斜的,如由边界310的非矩形形状所指示。在一些示例中,第二子图像304中的数字“4”的不规则形状可能是由于收据的图像捕获过程(从该过程拍摄第二子图像304)而造成的。例如,可能已经相对于捕获收据的图像的照相机的视野成一定角度来定位该收据,和/或当拍摄图像时,收据可能已经被折叠、被弄皱和/或被起皱,导致某些字符的失真。

在一些示例中,为了比较图3中示出的两个子图像,图像分析器206首先将第二子图像304变形或变换为如图4所示的变换的子图像402。在一些示例中,变换的子图像402具有通常对应于第一子图像302(即,将与第二子图像相比较的基准子图像)的形状或空间取向。由于子图像中的字符(数字“4”)还未被识别,因此在一些示例中,变换基于子图像302的边界306、子图像304的边界310的分析,而非每个子图像内的任何具体内容。

一旦已经将第二子图像302变换为变换的子图像402,则示例性图像分析器206在变换的子图像402周围添加指定数量的像素的边界404。边界404提供一些内边距或余地以促进变换的子图像402与基准图像302的比较,这是由于每个子图像302、402中的字符可能处于相对于其各自边界306、310略微不同的位置。在一些示例中,图像分析器206计算表示基准子图像302和变换图像402之间在基准子图像302相对于由边界404限定的区域内的变换的子图像402的多个位置中的每个位置处的类似度的相关值。例如,如图4所示,在第一比较408中,基准子图像302(用虚线表示)置于边界404的左上角中,而在第二比较410中,基准子图像302置于边界404的右下角中。

在一些示例中,图像分析器206基于图像的逐像素比较计算用于子图像302、子图像402的每个相对位置的相关值。在一些示例中,相关值在0和1之间,其中1指示子图像完全相关(即,子图像是相同的且恰好对齐)。在图示示例中,在由边界404限定的界线内的每个相对位置处(例如每次使图像相对于彼此偏移一个或多个像素),比较子图像302、子图像402。在一些示例中,比较在每个相对位置处计算的相关值以及选择最高相关值作为表示第一子图像302(即基准子图像)和第二子图像304(从其生成变换的子图像402)之间的视觉相关性的值。从图示示例可知,在第一比较408中,基准子图像302中的数字“4”高于变换的子图像402中的数字“4”、或在变换的子图像402中的数字“4”左边,而在第二比较410中,基准子图像302中的数字“4”低于变换的子图像402中的数字“4”、或在变换的子图像402中的数字“4”右边。因此,用于第一比较408、第二比较410中的每一者的相关值将小于在基准子图像302中的数字“4”与变换的子图像402中的数字“4”更对齐时(例如两个图示极端之间的某处)所对应的相关值。

边界404设置在变换的子图像402周围以确保基准子图像302和变换的子图像402的不同相对位置围绕两个图像之间的最高可能相关值所对应的最大对齐的位置。例如,如图5所示,在不具有边界404的情况下,尽管基准子图像302位于变换的子图像402的左上角,但是基准子图像302中的数字“4”可以从不位于如变换的子图像402中的数字“4”那样高或那样远离左边。因此,在不具有边界404的情况下,两个子图像302、402之间的最大对齐的位置不会被比较,以及比在每个图像中的数字“4”被基本对齐时更低的相关值会被分配为用于第一子图像302和第二子图像304之间的视觉相关性的值。

如上所述。在一些示例中,图像分析器206基于两个子图像之间的视觉相关性(基于如上所述计算的最大相关值所确定)确定两个子图像是否足够相关而属于同一群集。例如,当两个子图像之间的视觉相关性超出相关性阈值时,将两个子图像分组为同一群集。相关性阈值的值可以为任何合适的值(例如0.8、0.85、0.9等)。在图3至图5中示出的图示示例中,第一子图像302和第二子图像304之间的视觉相关性将小于1,这是因为子图像之间存在略微差别。然而,可存在被分组在同一群集中的外观的足够类似性(例如视觉相关性超出相关性阈值)。通过比较,如果第二子图像304对应于数字“3”,则高度不可能的是两个子图像会被分组为同一群集,这是因为最大计算的相关值不可能超出相关性阈值。为了进一步说明这点,在图6中示出了实际子图像601、602、603、604、605、606、607。基于阈值0.85,前五个子图像601-605(所有均对应于数字8)在外观上足够类似而被分组为公共群集608。通过比较,从群集608中排除第六子图像606(对应于数字3)和第七子图像607(对应于字母b),这是因为第六子图像606和第七子图像607不与群集608的子图像601-605足够相关。

在一些示例中,为了识别不同群集,图像分析器206比较在被分析的成像文件(例如图1的收据图像112、114)内分离的每个子图像。在一些示例中,为了避免冗余,将每个附加子图像与用于每个群集的已被识别的仅单个基准子图像相比较。在一些示例中,用于群集的基准子图像为针对群集识别的第一子图像。例如,如果以从左到右的次序分析图6的子图像601-607。第一子图像601会自动地被指定为用于第一群集(例如群集608)的基准子图像。在一些这类示例中,图像分析器206然后将第二子图像602与第一子图像601相比较以确定第二子图像属于与第一子图像601相同的群集608。在一些示例中,可以将第三子图像603与第一子图像601、第二子图像602二者相比较。然而,在一些示例中,可以将第三子图像与第一子图像601(其为用于群集608的指定基准子图像)相比较,但不与群集中包括的其它子图像(诸如第二子图像602)相比较。同样的方法可适用于第四子图像604和第五子图像605。在图像分析器206将第六子图像606与第一子图像601相比较且确定第六子图像606不属于第一群集608之后,图像分析器206可以创建新群集,其中第六子图像606作为对应的基准子图像。在这类示例中,将第七子图像607与第一子图像601(作为用于第一群集608的基准子图像)以及第六子图像606(作为用于第二群集的基准子图像)相比较,然后因为其与前两个群集的视觉差别而被指定为用于新群集的基准子图像。

在一些示例中,用于群集的基准子图像对应于如已被分组为群集的子图像的滑动平均生成的子图像的合成物。在这类示例中,在将图6的前两个子图像601、602分组为第一群集之后,对这两个子图像601、602进行平均以生成与第三子图像603相比较的合成子图像。此后,基于第三子图像603的像素值更新合成子图像,然后将该合成子图像与第四子图像604相比较,以此类推。

除了将收据图像112、114分段为分离的子图像且将子图像分组为各自群集以外,在一些示例中,在字符已被识别且被指定用于群集之后,图像分析器206分析该群集内的子图像。如下文更全面描述的,在一些示例中,在将子图像分组为群集之后,由子图像表示的字符被识别且被指定用于该群集中的所有子图像。该群集广泛指定基于被分组在群集中的每个子图像对应于同一字符的假设。然而,存在字符的某些集合,其被视为具有可引起被分组在同一群集中的不同字符的相对较小的视觉差别。例如,大写字母“p”和大写字母“r”在外观上类似,除了字母的右下部分,在此“r”包括一条腿而“p”不包括。因此,在一些这类示例,如果用于群集的指定字符被识别成对应于大写字母“p”或大写字母“r”,则图像分析器206可以分析群集内的每个子图像,其中特别聚焦于右下部分以确定是否存在一条腿(对应于“r”),从而确认指定字符对于特定子图像是正确的或者针对该特定子图像适当地校正该字符指定。

在一些实例中,较小的视觉差别源自字符本身的性质。例如,具有相对较小视觉差别的字符的集合包括字母“r”和“p”;数字“6”和字母“g”;数字“0”和字母“o”;数字“1”和字母“l”等。在其它场景中,较小的视觉差别可以源自部分打印的字符。例如,当部分打印字符之一时具有相对较小视觉差别的字符的集合包括数字“8”和“3”;字母“f”和“e”;字母“e”和“l”;数字“7”和斜杠(/)符号。另外在一些示例中,一些字符的集合具有由字符之一被损坏而引起的相对较小视觉差别。例如,损坏的斜杠(/)符号可能看上去像字母“x”。可潜在地被分组为单个群集的其它字符集合可以被适当地识别和分析以降低用于任何特定子图像的未校正的字符指定的可能性。在一些示例中,如在上文的“r/p”示例中所描述的,通过聚焦于子图像的特定区域来分析这类字符所对应的群集。附加地或可替选地,在一些示例中,图像分析器206可以再次将群集的个体子图像相比较以确定各个子图像之间的视觉相关性,但应用比在初始将子图像分组为群集时更高的相关性阈值。

在图2的图示示例中,数据处理设施110设置有示例性字符识别器208,该示例性字符识别器208用于识别用于由图像分析器206生成的子图像的每个群集的指定字符。在一些示例中,针对整个群集识别单个指定字符,不管该群集中的子图像的数量为多少。采用该方式,单个字符识别可以被传播和/或应用到许多不同子图像所对应的字符的许多实例,从而显著提高可机器编码的成像文件(例如收据图像112、114)的效率。

在一些示例中,字符识别器208基于用于群集的单个代表性子图像识别用于该群集的指定字符。在一些示例中,代表性子图像对应于基准子图像,当确定子图像属于同一群集时通过图像分析器206将该基准子图像与其它子图像相比较。当然,由于群集内的所有子图像在视觉上类似,因此群集内的任何子图像均可以用作代表性子图像。在一些示例中,代表性子图像对应于群集内的一些或全部子图像的合成物。即,在一些示例中,在识别指定字符之前,字符识别器208通过对包括在合成物中的各个子图像内的各个对应像素位置处的像素值求平均来生成子图像的合成物。在一些示例中,对应像素位置基于识别最大相关值的子图像的相对位置所对应的子图像的对齐。在一些情况下,采用该方式生成的合成子图像降低了可出现在群集的任何特定子图像内的噪声和/或模糊强度,从而合成子图像更清晰且因此更易于分析和/或识别在子图像中表示的字符。在一些示例中,图像分析器206可以生成合成子图像,同时如上所述将子图像分组为群集。例如,当识别用于群集的每个附加子图像时,基于新识别的子图像更新合成子图像。在一些这类示例中,更新的合成子图像被用作基准子图像,用于与被分析用于分组为群集的后续子图像相比较。

在一些示例中,字符识别器208通过提示人类检查者借助用户界面210(例如与任一种类的计算机终端216通信)的反馈来识别用于群集的指定字符。即,在一些示例中,字符识别器208在终端216处向人类检查者显示用于群集的代表性子图像,以及提示人类检查者或确认识别在子图像中表示的字符。因此,在一些示例中,字符识别器208识别指定字符而不使用光学字符识别(ocr)引擎。在一些这类示例中,可以基于提供给人类检查者(作为裁员)多于一个代表性子图像来识别用于群集的指定字符,以验证该识别是准确的和/或该群集受限于单个字符。即,在一些示例中,除了代表性子图像外,还可以将群集内的多个子图像显示给检查者。附加地或可替选地,在一些示例中,在例如显示与子图像分离的收据图像112、114(或其部分)的背景下,可以将群集内的子图像中的一者或多者显示给检查者。在一些这类示例中,可以识别或标定(例如突出、用边界识别等)子图像以辅助检查者识别这些子图像在图像内的位置。在一些示例中,终端216可以与数据处理设施110共同定位。在其它示例中,终端216可以远离数据处理设施110定位。

尽管字符识别器208可以识别指定字符而不使用ocr(例如纯粹基于来自人类检查器的反馈),但是在一些示例中,字符识别器208基于代表性子图像的ocr分析来识别指定字符。因此,在一些示例中,字符识别器208包括和/或实施ocr引擎。在一些这类示例中,示例性字符识别器208确定如由ocr引擎确定的指定字符的可靠性。即,字符识别器208确定由ocr引擎提供的字符指定是否为可靠的。在一些示例中,如果指定字符为可靠的,则自动地将指定字符分配给群集中的每个子图像而无需进一步分析。然而,在指定字符不可靠(例如指定为可疑的)的一些示例中,字符识别器208可以寻找来自人类检查者的指定确认。例如,字符识别器208可以在终端216处借助用户界面210将由ocr引擎分析的代表性子图像连同由ocr引擎识别的指定字符提供给人类检查者,以及请求检查者确认指定(例如通过按下键盘上的回车键或空格键)或校正指定(例如通过按下代表性子图像所对应的合适键)。在一些示例中,不是寻找确认,字符识别器208可以提供代表性子图像并请求人类检查者识别字符(例如通过按下合适键)而不提供如由ocr引擎确定的指定字符。在一些示例中,可以寻找对于相对可靠的指定字符(但不足以自动被接受)的确认,同时可以寻找来自检查者的对于相对不可靠的字符指定的直接识别。在一些示例中,可以使用ocr针对冗余分析用于特定群集的多于一个代表性子图像,以验证指定字符的识别是准确的以及提高指定字符的可靠性和/或验证该群集受限于单个字符。

在一些示例中,字符识别器208基于ocr引擎的一个或多个输出是否超出对应阈值来确定指定字符是否可靠。例如,ocr引擎可以提供用于识别的每个字符的两个输出:(1)字符的指定和(2)针对该指定的置信度值。在一些示例中,置信度值为0和1之间的值,其中1表示置信度度100%。在一些示例中,当置信度值高于置信度阈值时,字符指定是可靠的。置信度阈值可以为任何合适值(例如0.8、0.85、0.9等)。

在一些示例中,可以请求ocr引擎输出用于识别的每个字符的位置信息。在一些示例中,位置信息表示从其识别字符的图像内的指定字符的边界的位置。即,由ocr引擎输出的位置信息可相比于在分段期间确定的子图像的边界的位置,除了相对于指定字符限定边界。如果指定字符对应于在被分析的子图像中表示的实际字符,则由ocr引擎输出的位置信息应当接近子图像的边界。然而,如果ocr引擎已经指定错误字符,则在由ocr引擎输出的位置信息和子图像的边界之间可以存在一些差别。因此,在一些示例中,字符识别器208计算位置误差值,该位置误差值表示由ocr引擎输出的位置信息和子图像的边界之间的差别量。

例如,图7示出了对应于数字“4”的示例性子图像702,其具有不良打印的部分704(在图示示例中被轻微遮蔽)。通过拐角706、拐角708、拐角710、拐角712(具有对应的位置标签(0,0)、(m,0)、(0,n)和(m,n))识别子图像702的边界。在图示示例中,ocr引擎错误地将用于子图像702的指定字符识别为数字1。指定字符具有通过拐角716、拐角718、拐角720、拐角722(具有对应的位置标签(x0,y0)、(x1,y1)、(x2,y2)和(x3,y3))识别的指定字符边界714。在一些示例中,字符识别器208基于指定字符所对应的子图像内的区域(例如由指定字符边界714限定的区域)的位置与子图像的边界(例如子图像702的边界)之间的总差别来计算位置误差值。更具体地,在一些示例中,字符识别器208基于子图像702的拐角706、拐角708、拐角710、拐角712中的每一者与指定字符边界714的对应的拐角716、拐角718、拐角720、拐角722之间在竖直方向和水平方向上的位置总差别来计算位置误差值。参照图7在数学上的表达,位置误差值可以被计算为|0–x0|+|0–y0|+|m–x1|+|0–y1|+|m–x2|+|n–y2|+|0–x3|+|n–y3|。最大位置误差等于子图像702的宽度(m)和高度(n)之和的二倍。因此,在一些示例中,通过将上文计算中的拐角的位置差除以最大位置误差,来将位置误差值归一化到0和1之间。在一些示例中,当位置误差值低于位置误差阈值时,字符指定被视为可靠的。位置误差阈值可以为任何合适值(例如,当将位置误差值归一化到0和1之间时的0.1、0.15、0.2等)。在一些示例中,用固定宽度(m)和固定高度(y)限定用于每个子图像的边界,从而可以将位置误差阈值限定在低于宽度和高度之和二倍的某值,而无需将该计算归一化在0和1之间。

附加地或可替选地,字符识别器208基于在指定字符边界714外但在子图像702内的前景像素的存在来确定指定字符的可靠性。在一些示例中,前景像素被识别为具有满足阈值的像素值的像素,该阈值对应于与子图像内的字符的打印部分而非背景相关联的像素。例如,如果打印文本在浅色(例如白色)的背景上为深色(例如黑色),则前景像素对应于具有满足表示深色像素的阈值的像素值的像素。相反,如果打印文本在深色(例如黑色)的背景上为浅色(例如白色),则前景像素对应于具有满足表示浅色像素的阈值的像素值的像素。作为具体示例,图7示出了用于打印文本的深色(例如黑色)以及浅色背景(例如白色)。假设图7的子图像702中的数字4的不良打印部分704至少被局部打印,则不良打印部分704的区域724将包括在指定字符边界714外部的前景像素(例如深色像素)。对应于指定字符的区域(即由指定字符边界714限定的区域)外部的前景像素指示,该区域可以不包括子图像中表示的整个字符。因此,在这类场景中,字符识别器208可以确定指定字符是不可靠的。当然,在一些示例中,在指定字符边界714外部可具有实际上不对应于实际字符的离群像素。在一些这类示例中,当指定字符边界714外部的前景像素的数量(例如按绝对数量和/或作为与指定字符边界714外部的整个区域的比率)超出阈值时,字符识别器208可以确定指定字符是不可靠的。

在一些示例中,当(1)置信度值超出置信度阈值、(2)位置误差值小于位置误差阈值、和/或(3)指定字符所对应的区域外部的前景像素的数量小于像素阈值中的一种或多种情况出现时,字符识别器208可以确定指定字符是可靠的。在一些示例中,在字符识别器208确定指定字符是可靠的之前,必须满足以上情况中的多于一种的情况。在一些示例中,对于可靠的指定字符,必须满足以上所有情况。

在一些示例中,某些字符(诸如标点符号(例如逗号、句号、破折号等))不填充与子图像的边界相关联的整个空间(可以基于被分析的特定字体将该空间归一化到固定高度和/或宽度)。在这类示例中,甚至当识别正确字符时,表示的字符所对应的区域(例如在图7中示出的指定字符边界714)可以远小于导致相对较高的位置误差值的子图像的边界。因此,在一些示例中,当置信度值高于合适阈值时,将该位置误差值与针对指定字符期望的位置误差值相比较。当然,如果置信度值很低,则可以将指定字符视为不可靠的,不管位置误差值如何。

在图2的图示示例中,数据处理设施110设置有示例性编码文本生成器212,该示例性编码文本生成器212用于生成正被分析的成像文本(例如图1的收据图像112、114)所对应的机器编码文本。在一些示例中,编码文本生成器212将用于特定群集的指定字符(如由字符识别器208确定的)与成像文本中的对应于包括在群集中的各自子图像的位置(如由图像分析器206确定的)相关联。采用该方式,单个指定字符的识别(例如基于由人类检查的和/或由ocr引擎分析的代表性子图像)可以应用于该字符在成像文件内的多个实例,只要该字符的每个实例在外观上足够类似而被分组为公共群集即可。在群集很大的情况下(这可能发生在分析多个收据时),为人类检查者节省时间可以是重要的。此外,在指定字符的ocr识别可靠的情况下,可以完全不需要人类检查者。

在一些示例中,编码文本生成器212将基于上下文的校正应用于提取的文本。即,在一些示例中,一旦用于每个群集的所有指定字符已经与成像文件(例如收据图像112、114)的对应子图像相关联使得已经编码全部文本,则示例性编码文本生成器212按语境分析文本以识别任何错误。例如,如果特定一串字母不形成可识别的词(例如基于词典查找),则编码文本生成器212可以分析每个个体字母以确定该字母是否已被正确识别以及可以被改变以形成可识别的词。类似地,如果一串字符包括全部字母和一个非字母(例如符号的数字),则编码文本生成器212可以分析非字母符号以确定其是否应当为字母以形成可识别的词。作为另一示例。字符串“10x14/2015”实质上具有日期格式,除了字母“x”取代了第一个斜线符号(/)。在一些这类示例中,编码文本生成器212可以识别该字符串的格式并修正未正确识别的字母“x”。采用该方式结合上下文分析成像文件使得能够在编码文本生成器212生成收据图像112、114所对应的完整的机器编码文本文件之前检测和修正任何最终错误。

在图2的图示示例中,数据处理设施110设置有示例性字符识别数据库214,该示例性字符识别数据库214用于存储各自群集的指定字符和/或代表性子图像以备后续参考。当用于群集的指定字符初始被识别为不可靠使得人类检查者必须确认和/或指定正确字符时,这是特别有利的。在检查者验证指定字符之后,可以将验证的指定字符和相关联的代表性子图像存储在字符识别数据库214中。因此,如果以后出现对应于与指定字符相关联的群集的另一子图像,则可以直接将新的子图像与该指定字符相关联而不必再次寻找来自检查者的关于该特定子图像的验证。因此,子图像的ocr分析的准确度可以随时间推移而改进,从而进一步降低对成像文件的手动检查的需求。

尽管在图2中示出了实现图1的数据处理设施110的示例性方式,但是图2中所示的元件、过程和/或设备中的一者或多者可以被组合、划分、重排、省略、消除和/或以任何其它方式来实现。另外,示例性通信接口202、示例性批次指定器204、示例性图像分析器206、示例性字符识别器208、示例性用户界面210、示例性编码文本生成器212、示例性字符识别数据库214、和/或更一般地,图1的示例性数据处理设施110可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例性通信接口202、示例性批次指定器204、示例性图像分析器206、示例性字符识别器208、示例性用户界面210、示例性编码文本生成器212、示例性字符识别数据库214、和/或更一般地,图1的示例性数据处理设施110中的任一者可以通过一个或多个模拟或数字电路、逻辑电路、可编程处理器、专用集成电路(asic)、可编程逻辑设备(pld)和/或现场可编程逻辑设备(fpld)来实现。当阅读覆盖纯软件和/或固件实现的本专利的设备或系统权利要求中的任一者时,示例性通信接口202、示例性批次指定器204、示例性图像分析器206、示例性字符识别器208、示例性用户界面210、示例性编码文本生成器212和/或示例性字符识别数据库214中的至少一者由此明确地被限定成包括有形的计算机可读存储设备或存储盘,诸如存储软件和/或固件的内存、数字通用光盘(dvd)、光盘(cd)、蓝光碟等。另外,图1的示例性数据处理设施110可以包括除了图2中所示那些以外或代替图2中所示那些的一个或多个元件、过程和/或设备,和/或可以包括图示元件、过程和设备中的任何或全部中的多于一者。

在图8至图13中示出了表示用于实现图1和/或图2的示例性数据处理设施110的示例性机器可读指令的流程图。在本示例中,机器可读指令包括由处理器执行的程序,该处理器诸如在下文结合图14所讨论的示例性处理器平台1400中示出的处理器1412。该程序可以被嵌入在软件中,该软件存储在有形的计算机可读存储介质上,该存储介质诸如cd-rom、软盘、硬驱动、数字通用光盘(dvd)、蓝光碟或与处理器1412相关联的存储器,但是整个程序和/或其部分可以替选地由处理器1412以外的设备来执行和/或被嵌入在固件或专用硬件中。另外,尽管参照在图8至图13中所示的流程图来描述示例性程序,但是可以替选地使用许多其它实现示例性数据处理设施110的方法。例如,框的执行次序可以被改变,和/或描述的一些框可以被改变、消除、或组合。

如上所述,图8至图13的示例性过程可以使用编码指令(例如计算机和/或机器可读指令)来实现,该编码指令存储在有形的计算机可读存储介质上,该存储介质诸如硬盘驱动、闪存、只读存储器(rom)、光盘(cd)、数字通用光盘(dvd)、缓存、随机存取存储器(ram)和/或任何其它存储设备或存储盘,其中存储信息达任何时长(例如延长的时段、永久地、短时地、暂时缓存、和/或信息的高速缓存)。如在本文中使用的,术语“有形的计算机可读存储介质”明确地被限定成包括任何类型的计算机可读存储设备和/或存储盘以及排除传播信号且排除传输媒体。如在本文中使用的,可交换地使用“有形的计算机可读存储介质”和“有形的机器可读存储介质”。附加地或可替选地,图8至图13的示例性过程可以使用编码指令(例如计算机和/或机器可读指令)来实现,该编码指令存储在非易失性计算机和/或机器可读介质上,该可读介质诸如硬盘驱动、闪存、只读存储器、光盘、数字通用光盘、高速缓存、随机存取存储器和/或任何其它存储设备或存储盘,其中存储信息达任何时长(例如延长的时段、永久地、短时地、暂时缓存、和/或信息的高速缓存)。如在本文中使用的,术语“非易失性计算机可读介质”明确地被限定成包括任何类型的计算机可读存储设备和/或存储盘以及排除传播信号且排除传输媒体。如在本文中使用的,当短语“至少”用作权利要求的前序中的过渡术语时,它是开放式的,同样术语“包括”也是开放式的。

详细转到流程图,图8的示例性程序开始于框802,在框802,示例性通信接口202接收一个或多个基于文本的文件的图像(例如图1的收据图像112、114)。在框804,示例性批次指定器204识别包括在批次中的图像以备分析。在一些示例中,所有接收的图像被包括在单个批次中。在其它示例中,可以基于例如不同发起源(例如发起基于文本的文件的不同零售店)将图像分离为单独批次。在框806,示例性图像分析器206将图像分段为对应于个体字符的子图像。在框808,示例性图像分析器206将视觉上类似的子图像分组为群集。下文结合图9提供关于框808的实现的附加细节。

在框810,示例性字符识别器208选择用于群集的代表性子图像。在一些示例中,代表性子图像对应于群集中的子图像之一。在一些示例中,代表性子图像对应于群集内的多个子图像的合成子图像。在框812,示例性字符识别器208基于用于群集的代表性子图像识别用于群集的指定字符。下文结合图11提供关于框812的实现的附加细节。在框814,示例性编码文本生成器212将指定字符关联到该字符在一个或多个基于文本的文件的图像中的每个对应位置。在一些示例中,指定字符关联到的对应位置对应于分组在群集中的每个子图像在一个或多个文件内的位置。

在框816,示例性编码文本生成器212确定指定字符是否对应于一组具有最小视觉差的字符,因此为具有相对高的可能被误认为不同字符的字符。如果示例性编码文本生成器212确定指定字符对应于一组具有最小视觉差的字符,则控制前进到框818,在框818,示例性编码文本生成器212分析群集内的每个子图像以确认或校正每个子图像所分配到的群集。控制然后前进到框820。如果示例性编码文本生成器212确定指定字符不对应于一组具有最小视觉差的字符(框816),则控制直接前进到框820。

在框820,示例性编码文本生成器212确定是否存在要识别的附加字符。如果是,则控制返回到框808。否则,控制前进到框822,在框822,示例性编码文本生成器212将基于上下文的校正应用于提取的文本。在框824,示例性编码文本生成器212生成一个或多个基于文本的文件的图像所对应的完整的机器编码文本文件,于是图8的示例性程序结束。

如上所述,图9示出了实现图8的将视觉上类似的子图像分组为群集的框808的示例性程序。该示例性程序开始于框902,在框902,示例性图像分析器206检索分配给第一群集的作为基准图像的第一子图像。在框904,示例性图像分析器206识别先前未分配给群集的另一子图像。在框906,示例性图像分析器206计算识别的子图像和用于群集的基准子图像之间的视觉相关性。下文结合图10提供关于框906的实现的附加细节。

在框908,示例性图像分析器206确定视觉相关性是否满足(例如大于或等于)相关性阈值。如果不满足,则控制前进到框910,在框910,示例性图像分析器206确定是否具有待检查的另一现存群集。如果具有另一现存群集,则控制返回到框906以计算识别的子图像与用于另一现存群集的基准子图像之间的视觉相关性。如果示例性图像分析器206确定不具有其他现存群集(框910),则控制前进到框912,在框912,示例性图像分析器206将识别的子图像分配给新群集,于是控制前进到下文讨论的框916。然后控制前进到框916,在框916,示例性图像分析器206确定是否具有先前还未被分配给群集的另一子图像。如果是,控制返回到框904以重复用于另一识别的子图像的过程。否则,图9的示例性程序结束且返回以完成图8的示例性程序。

返回到框908,如果示例性图像分析器206确定视觉相关性不满足相关性阈值,则控制前进到框914,在框914,示例性图像分析器206将识别的子图像分配给现存群集。此后,控制前进到框916以重复用于另一子图像的过程或结束并返回以完成图8的示例性程序。

如上所述,图10示出了实现图9的计算识别的子图像和用于现存群集的基准子图像之间的视觉相关值的框906的示例性程序。该示例性程序开始于框1002,在框1002,示例性图像分析器206变换识别的子图像以在空间上对应于基准子图像。在框1004,示例性图像分析器206将边界添加到变换的子图像。在框1006,示例性图像分析器206计算第一相关值,该第一相关值表示子图像之间在第一相对位置处的类似度。在框1008,示例性图像分析器206将子图像之间的视觉相关性设置为第一相关值。

在框1010,示例性图像分析器206计算用于子图像的另一相对位置的另一相关值。在框1012,示例性图像分析器206确定最新计算的相关值是否大于视觉相关性。如果是,则控制前进到框1014,在框1014,示例性图像分析器206将子图像之间的视觉相关性设置为最新的相关值。然后控制前进到框1016,在框1016,示例性图像分析器206确定是否存在子图像的另一相对位置。如果是,则控制返回到框1010以重复用于另一相对位置的过程。否则,该示例性过程结束并返回以完成图9的示例性程序。返回到框1012,如果示例性图像分析器206确定最新计算的相关值不大于视觉相关性,则控制直接前进到框1016。

如上所述,图11示出了实现图8的基于用于群集的代表性子图像识别用于群集的指定字符的框812的示例性程序。该示例性程序开始于框1102,在框1102,示例性字符识别器208确定是否使用光学字符识别(ocr)引擎。如果是,则控制前进到框1104,在框1104,示例性字符识别器208基于用于群集的代表性子图像的ocr分析识别用于群集的指定字符。在框1106,示例性字符识别器208分析ocr输出以确定指定字符的可靠性。下文结合图12提供关于框1106的实现的附加细节。

在框1108,示例性字符识别器208确定指定字符是否为可靠的。如果是,则图11的示例性程序结束并返回以完成图8的示例性程序,这是因为针对该群集自动接受该指定字符。然而,如果示例性字符识别器208确定指定字符为不可靠的(框1108),则控制前进到框1110。在框1110,示例性字符识别器208确定代表性子图像是否对应于存档集群(例如存储在字符识别数据库214中)。如果是,则控制前进到框1112,在框1112,示例性字符识别器208将指定字符识别成对应于用于该存档集群的指定字符,于是图11的示例性程序结束并返回以完成图8的示例性程序。

返回到框1102,如果示例性字符识别器208确定不使用ocr引擎,则控制前进到框1114,在框1114,示例性字符识别器208检索用户输入以识别用于群集的指定字符。下文结合图13提供关于框1114的实现的附加细节。在框1116,示例性字符识别数据库214存储用于群集的指定字符的用户输入识别,于是图11的示例性程序结束并返回以完成图8的示例性程序。返回到框1110,如果示例性字符识别器208确定代表性子图像不对应于存档集群,则控制前进到框1114以如上所述继续进行。

如上所述,图12示出了实现图11的分析ocr输出以确定指定字符的可靠性的框1106的示例性程序。该示例性程序开始于框1202,在框1202,示例性字符识别器208检索用于指定字符的识别的置信度值。在框1204,示例性字符识别器208确定置信度值是否满足(例如大于或等于)置信度阈值。如果不满足,则控制前进到框1218,在框1218,示例性字符识别器208将指定字符识别为不可靠的,之后返回以完成图11的示例性程序。如果示例性字符识别器208确定置信度值不满足置信度阈值,则控制前进到框1206。

在框1206,示例性字符识别器208检索表示指定字符的边界位于代表性子图像内的位置信息。在框1208,示例性字符识别器208基于位置信息计算位置误差值。在框1210,示例性字符识别器208确定位置误差值是否满足(例如小于)位置误差阈值。如果不满足,则控制前进到框1218,在框1218,示例性字符识别器208将指定字符识别为不可靠的,之后返回以完成图11的示例性程序。如果示例性字符识别器208确定位置误差值满足位置误差阈值,则控制前进到框1212。

在框1212,示例性字符识别器208确定在代表性子图像内但在指定字符的边界外的前景像素的数量。在框1214,示例性字符识别器208确定前景像素的数量是否满足(例如小于)像素阈值。如果不满足,则控制前进到框1218,在框1218,示例性字符识别器208将指定字符识别为不可靠的,之后返回以完成图11的示例性程序。如果示例性字符识别器208确定前景像素的数量满足像素阈值(框1214),则控制前进到框1216,在框1216,示例性字符识别器208将指定字符识别为可靠的,之后返回以完成图11的示例性程序。

如上所述,图13示出实现图11的检索用户输入以识别用于群集的指定字符的框1114的示例性程序。该示例性程序开始于框1302,在框1302,示例性用户界面210显示用于群集的代表性子图像。在框1304,示例性字符识别器208确定用于群集的指定字符的识别的置信度值(例如由ocr引擎输出)是否满足(例如大于或等于)确认阈值。在一些示例中,确认阈值低于置信度阈值(高于该置信度阈值时,指定字符被识别为可靠的)但足够高,使得仍存在指定字符为正确的合理可能性。在一些这类示例,假设指定字符为准确的但是依赖人类检查者确认该指定。例如,可以将置信度阈值设定为0.85,而将确认阈值设定为0.7。在一些示例中,低于确认阈值的置信度值不足够可靠,从而依赖人类检查者识别正确的指定字符而不呈现有由ocr引擎识别的不可靠的指定字符。

因此,如果示例性字符识别器208确定用于群集的指定字符的识别的置信度值满足确认阈值(框1304),则控制前进到框1308。在框1308,用户界面210显示代表性子图像旁边的指定字符。在框1310,示例性字符识别器208提示人类检查者确认指定字符对应于代表性子图像。在一些示例中,人类检查者可以通过采取特定动作(例如在键盘上的回车键或空格键)确认指定字符。通过检查者采取特定动作,当采用该方式确认指定字符时可以提高检查者的效率。例如,将由人类检查者确认的大多数指定字符很可能是正确的,这是因为这些指定字符的置信度值相对较高(高于确认阈值)。因此,人类检查者需要仅执行该确认动作(例如敲击空格键)而无需其它尝试。虽然指定字符不正确的可能性不大,但是检查者可能必须采取附加步骤(例如指定正确字符),但这将因为相对高的置信度值(高于确认阈值)而在少数时间发生。

在框1312,示例性字符识别器208确定人类检查者是否确认指定字符对应于代表性子图像。如果是,则控制前进到框1314,在框1314,示例性字符识别器208基于由ocr引擎识别的指定字符来识别用于群集的指定字符,于是控制返回以完成图11的示例性程序。如果示例性字符识别器208确定人类检查者未确认指定字符对应于代表性子图像(框1312),则控制前进到框1316,在框1316,示例性字符识别器208基于由人类检查者输入的指定来识别用于群集的指定字符。即,如果如由ocr引擎确定的指定字符是不正确的使得人类检查者将不如此确认,则人类检查者可以键入代表性子图像所对应的正确字符,该正确字符然后被用作用于群集的指定字符。此后,图13的示例性程序结束并返回以完成图11的示例性程序。

返回到框1304,如果示例性字符识别器208确定用于群集的指定字符的识别的置信度值不高于确认阈值,则控制前进到框1306。在框1306,示例性字符识别器208提示人类检查者识别代表性子图像所对应的指定字符。然后控制前进到框1316,在框1316,示例性字符识别器208基于由人类检查者输入的指定来识别用于群集的指定字符,之后图13的示例性程序结束并返回以完成图11的示例性程序。

图14为能够执行图8至图13的指令以实现图1和/或图2的示例性数据处理设施110的示例性处理器平台1400的框图。处理器平台1400例如可以为服务器、个人计算机、移动设备(例如移动手机、智能手机、平板电脑,诸如ipadtm)、个人数字助理(pda)、因特网器件、和/或任何其它类型的计算设备。

图示示例的处理器平台1400包括处理器1412。图示示例的处理器1412为硬件。例如,处理器1412可以通过来自任何期望家庭或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器来实现。

图示示例的处理器1412可以包括本地存储器1413(例如高速缓存)。在图示示例中,处理器1412实现图2的示例性通信接口202、示例性批次指定器204、示例性图像分析器206、示例性字符识别器208、示例性用户界面210、和/或示例性编码文本生成器212。图示示例的处理器1412借助总线1418与主存储器通信,该主存储器包括易失性存储器1414和非易失性存储器1416。易失性存储器1414可以通过同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram)、和/或任何其它类型的随机存取存储设备来实现。非易失性存储器1416可以通过闪存和/或任何其它期望类型的存储设备来实现。对主存储器1414、1416的访问受存储器控制器控制。

图示示例的处理器平台1400还包括接口电路1420。接口电路1420可以通过任何类型的接口标准来实现,诸如以太网接口、通用串行总线(usb)、和/或pciexpress接口。

在图示示例中,一个或多个输入设备1422连接到接口电路1420。一个或多个输入设备1422允许用户将数据和命令输入到处理器1412中。该一个或多个输入设备可以通过例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点和/或声音识别系统来实现。

一个或多个输出设备1424也连接到图示示例的接口电路1420。输出设备1424可以通过例如显示设备(例如发光二极管(led)、有机发光二极管(oled)、液晶显示器、阴极射线管显示器(crt)、触摸屏、触摸式输出设备、发光二极管(led)、打印机和/或扬声器)来实现。图示示例的接口电路1420因此通常包括图形驱动卡、图形驱动芯片或图形驱动处理器。

图示示例的接口电路1420还包括通信设备,诸如发送器、接收器、收发器、调制解调器和/或网络接口卡以促进借助网络1426(例如以太网连接、数字用户线路(dsl)、电话线、同轴电缆、移动电话系统等)与外部机器(例如任何类型的计算设备)的数据交换。

图示示例的处理器平台1400还包括用于存储软件和/或数据的一个或多个大容量存储设备1428。例如,大容量存储设备1428可包括示例性字符识别数据库214。这类大容量存储设备1428的示例包括软盘驱动、硬驱动盘、光盘驱动、蓝光碟驱动、raid系统、和数字通用光盘(dvd)驱动。

图8至图13的编码指令1432可以被存储在大容量存储设备1428、易失性存储器1414、非易失性存储器1416、和/或可移除的有形计算机可读存储介质(诸如cd或dvd)中。

从前文可知,将理解的是,当利用人类检查者严格完成时以及当使用ocr技术执行时,上文公开的示例性方法和设备大幅提高了文本提取的效率。更具体地,本文中公开的示例使得文本提取通过针对类似字符的整个群集使用字符的单一指定而利用规模效益。此外,单次识别的字符的群集(通过人类检查者或ocr引擎)可以从单个文件中的字符或从一批多个文件生成。另外,一旦人类检查者已经识别无法可靠地由ocr引擎识别的特定字符,则字符指定可以被存储,用于每当分析类似出现的字符时作为参考,从而可以完成该字符的自动指定而无需人类检查者第二次识别该字符。

尽管本文中公开了某些示例性方法、设备和制品,但是本专利的覆盖范围不限于此。相反,本专利覆盖公正地落在本专利的权利要求的范围内的所有方法、设备和制品。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1