CN102637256B - 后光学字符识别处理中的形状聚类 - Google Patents
后光学字符识别处理中的形状聚类 Download PDFInfo
- Publication number
- CN102637256B CN102637256B CN201110425054.9A CN201110425054A CN102637256B CN 102637256 B CN102637256 B CN 102637256B CN 201110425054 A CN201110425054 A CN 201110425054A CN 102637256 B CN102637256 B CN 102637256B
- Authority
- CN
- China
- Prior art keywords
- ocr
- cluster
- clip image
- character
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/248—Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/1918—Fusion techniques, i.e. combining data from various sources, e.g. sensor fusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/224—Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Character Discrimination (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本申请涉及后光学字符识别处理中的形状聚类。用于在包括光学字符识别(OCR)处理的输出的各种文档处理中的应用和形状聚类的技术和***。
Description
本申请属于2009年5月7日提交的中国专利申请200780041456.0的分案申请。
该PCT申请要求以下四个美国专利申请的优先权:
于2006年9月8日提交的题为“Shape Clustering in Post OpticalCharacter Recognition Processing”的No.11/517,818;
于2006年9月11日提交的题为“Shape Clustering and Cluster-LevelManual Identification in Post Optical Character Recognition Processing”的No.11/519,368;
于2006年9月11日提交的题为“Optical Character Recognition basedon Shape Clustering and Multiple Optical Character RecognitionProcesses”的No.11/519,376;和
于2006年9月11日提交的题为“High Resolution Replication ofDocument based on Shape Clustering”的No.11/519,320。
以上专利申请的公开内容通过引用合并为本申请说明书的一部分。
技术领域
本说明书涉及形状聚类和光学字符识别。
背景技术
光学字符识别(OCR)使用一般将被称作OCR引擎的计算机软件来对原本在纸张、缩影胶片或其它介质上印刷的、打字的、手写的或其它书写文本的数字图像进行处理,并且从所述图像产生机器可识别和可编辑的文本。通过OCR引擎处理的文档的数字图像可包括多页书写材料的图像。要由OCR引擎进行处理的文本的图像可通过各种成像方法来获取,包括使用图像扫描仪来捕捉文本的数字图像。
OCR引擎通常产生矩形边框旨在共同地围住每个页面上所写的文本。通常,当文档图像具有灰度或色彩信息时,OCR引擎对所述图像进行二进制化以使得将每个图像像素确定为前景像素(例如,黑色文本)或背景像素(例如,白色区域)。每个边框通常围住OCR引擎所感知(perceive)的一个字符的文本像素的一个或多个连接群组,但是也可以与相邻字符的一部分重叠,或者在极端情况下,可以完全重叠。在这样的情形中,现有几种方法将OCR引擎识别为属于所述边框内部的像素与属于不同但重叠边框的像素分离。这些方法包括:通过阈值和所连接成分的分析来生成掩膜图像,构建轮廓多边形,并且构建并行四边形的边框。OCR引擎通常为每个边框指派一个或多个OCR字符码。每个OCR码识别所述引擎已认出在该边框内的一个或多个字符。如果OCR引擎无法认出边框中的任何字符,则其可不向该边框指派OCR字符码。OCR字符码所识别的每个字符可以以标准字符编码进行表示,例如ASCII或统一字符编码。
每个边框可被认为是对文档图像的一部分或小图像进行隔离的剪切(clipping)路径,无论其为原始形式或经二进制化的二进制形式。由于这些小图像可被认为是由其相应的边框从文档图像剪切而来,所以这些小图像将被称作剪切(clip)或剪切图像。由于每个剪切图像被绑定到边框、OCR字符码,所以指派给边框的字符也能够被称作或识别为指派给所述剪切图像的代码或字符。除非另外指出,术语剪切或剪切图像是指作为文档图像的一部分并且由OCR引擎所处理以便进行字符识别的图像。
OCR引擎在该处理期间可能产生错误。例如,OCR引擎通过例如仅包括边框中的部分字符或包括在单个边框中被认作单个字符的多个字符而对原始图像进行了不正确分割。作为另一个示例,OCR引擎由于边框所围住的剪切图像和用于不同字符码的参考图像之间的一些图像相似性或者由于该OCR引擎所接收的数字图像的低图像质量而对边框指派不正确的OCR字符。
发明内容
除其它内容之外,该说明书描述了用于在包括光学字符识别(OCR)处理的输出在内的各种文档的处理中进行形状聚类和应用的技术和***。
在一个方面,一种方法可包括以下:将在所接收的由OCR处理所处理的文档的OCR输出中限定的剪切图像归类为剪切图像的集群;处理每个集群中的剪切图像以生成每个集群的集群图像;比较所述集群图像来检测所述OCR处理对其错误指派了一个或多个OCR字符码的集群;对OCR输出中被检测为具有错误指派的一个或多个OCR字符码的第一集群指派一个或多个新的OCR字符码;并且在所述OCR输出中的第一集群的剪切图像之一每次出现时使用所述一个或多个新的OCR字符码替代错误指派的OCR字符码以产生经修改的OCR输出。每个集群包括被OCR处理指派了相同的一个或多个字符码的剪切图像。
在另一个方面,一种用于光学字符识别(OCR)的***可包括OCR引擎和后OCR引擎。所述OCR引擎可操作来处理文档的原始图像以产生包括从所述原始图像提取的剪切图像的OCR输出并且向每个剪切图像指派一个或多个字符。所述后OCR引擎可操作来将所述OCR输出的剪切图像归类为剪切图像的集群。每个集群包括被OCR引擎指派了相同的一个或多个字符码的剪切图像。所述后OCR引擎可操作来对每个集群中的剪切图像进行处理以生成每个集群的集群图像并且将所述集群图像进行比较以检测被OCR引擎错误指派了一个或多个OCR字符码的集群。所述后OCR引擎进一步***作来对OCR输出中被检测为具有错误指派的一个或多个OCR字符码的第一集群指派一个或多个新的OCR字符码,并且在所述OCR输出中的第一集群的剪切图像之一每次出现时使用所述一个或多个新的OCR字符码替代错误指派的OCR字符码以产生经修改的OCR输出。
在另一个方面,一种用于后光学字符识别(OCR)处理的方法可包括将在所接收的由光学字符识别(OCR)处理所处理的文档的OCR输出中限定的剪切图像归类为剪切图像的集群;处理每个集群中的剪切图像以生成每个集群的集群图像。每个集群包括大小相同或相似并且被OCR处理指派了相同的一个或多个字符码的剪切图像。对于被指派了一个或多个第一OCR字符码的第一集群,该方法识别:(1)被指派了与所述一个或多个第一OCR字符码不同的一个或多个第二OCR字符码的第二集群,其中所述第二集群的集群图像在形状上相比被指派了与所述一个或多个第一OCR字符码不同的一个或多个OCR字符的其它集群的集群图像更接近所述第一集群的集群图像,和(2)被指派了与第一集群相同的一个或多个第一OCR字符码的第三集群,其中所述第三集群的集群图像在形状上比被指派了一个或多个第一OCR字符码的其它集群的集群图像更接近所述第一集群的集群图像。该方法至少使用第一集群和第二集群的集群图像之间的形状差异以及第一集群和第三集群的集群图像之间的形状差异来确定指派给第一集群的一个或多个第一OCR字符码的置信等级。
在另一个方面,一种用于光学字符识别(OCR)的***可包括OCR引擎和后OCR引擎。所述OCR引擎可操作来处理文档的原始图像以产生包括从所述原始图像提取的剪切图像的OCR输出并且向每个剪切图像指派一个或多个字符;并且所述后OCR引擎可操作来将所述OCR输出的剪切图像归类为剪切图像的集群。每个集群包括大小相同或相似并且被OCR引擎指派了相同的一个或多个字符码的剪切图像。所述后OCR引擎可操作来对每个集群中的剪切图像进行处理以生成每个集群的集群图像。所述后OCR引擎还可操作来对于被指派了一个或多个第一OCR字符码的第一集群识别(1)被指派了与所述一个或多个第一OCR字符码不同的一个或多个第二OCR字符码的第二集群,其中所述第二集群的集群图像在形状上相比被指派了与所述一个或多个第一OCR字符码不同的一个或多个OCR字符的其它集群的集群图像更接近所述第一集群的集群图像,和(2)被指派了与第一集群相同的一个或多个第一OCR字符码的第三集群,其中所述第三集群的集群图像在形状上比被指派了一个或多个第一OCR字符码的其它集群的集群图像更接近所述第一集群的集群图像。在该***中,所述后OCR引擎可操作来至少使用第一集群和第二集群的集群图像之间的形状差异以及第一集群和第三集群的集群图像之间的形状差异来确定指派给第一集群的一个或多个第一OCR字符码的置信等级。
在另一个方面,一种用于光学字符识别(OCR)的***可包括集群生成引擎和集群处理引擎。所述集群生成引擎可操作来接收OCR输出,该OCR输出具有OCR引擎在处理文档的原始图像时所产生的分离图像以及由所述OCR引擎向每个分离图像指派的一个或多个字符。所述集群生成引擎可操作来将所述OCR输出中的分离图像归类为具有特定图像大小并且被OCR引擎指派了相同的一个和多个OCR字符码的分离图像的集群。所述集群处理引擎可操作来获取一个集群的集群图像和其它集群的集群图像之间的形状量度距离并且基于所获取的形状量度距离来检测在所述OCR引擎指派给每个集群的一个或多个OCR字符码的指派中是否存在错误。所述集群处理引擎可进一步***作来校正对集群错误指派的一个或多个OCR字符码。
在另一方面,一种用于光学字符识别(OCR)的方法可包括接收OCR输出,该OCR输出包括OCR引擎在处理文档的原始图像时所产生的分离图像以及由所述OCR引擎向每个分离图像指派的一个或多个字符,将所述OCR输出中的分离图像归类为具有特定图像大小并且被OCR引擎指派了相同的一个和多个OCR字符码的分离图像的集群;获取一个集群的集群图像和其它集群的集群图像之间的形状量度距离并且基于所获取的形状量度距离来检测在所述OCR引擎对每个集群指派的一个或多个OCR字符码的指派中是否存在错误;并且校正对集群错误指派的一个或多个OCR字符码。
在另一方面,一种方法可包括将从对原始文档图像进行处理的光学字符识别(OCR)处理所接收的OCR输出中限定的剪切图像归类为剪切图像的集群。每个集群包括被OCR处理指派了相同的一个或多个特定字符的图像大小和形状相同或相似的剪切图像。在每个集群的剪切图像的求平均中应用来自所述原始文档图像的灰度和色彩信息以生成每个集群的平均图像。
在另一方面,一种用于光学字符识别(OCR)的***可包括OCR引擎和后OCR引擎。所述OCR引擎可操作来处理文档的原始图像以产生具有从所述原始图像提取的剪切图像的OCR输出并且对每个剪切图像指派一个或多个字符。所述后OCR引擎可操作来将所述OCR输出中的剪切图像归类为剪切图像的集群。每个集群包括被所述OCR引擎指派了相同的一个或多个特定字符的图像大小和形状相同或相似的剪切图像。所述后OCR引擎可操作来在每个集群的剪切图像的求平均中应用来自所述原始文档图像的灰度和色彩信息以生成每个集群的平均图像。
在另一个方面,一种用于对来自光学字符识别(OCR)处理的输出进行处理的方法可包括将从处理文档的原始图像所生成的OCR处理的输出中的分离图像归类为分离图像的集群;使用集群图像来表示相应的集群中的分离图像;选择具有低置信等级的集群以获取一个或多个字符与所选择集群的集群图像的人工指派;并且使用所述人工指派所获取的一个或多个字符来验证或替代先前由所述OCR处理在OCR处理的输出中所指派的相应的一个或多个特定字符。在该方法中,每个集群包括被所述OCR处理指派了相同的一个或多个特定字符的图像大小和形状相似的分离图像。
在另一方面,一种用于光学字符识别(OCR)的***可包括OCR引擎和后OCR引擎。所述OCR引擎可操作来对文档的原始图像进行处理以产生从所述原始图像提取的分离图像并且向每个分离图像指派一个或多个字符。所述后OCR引擎可操作来将OCR输出中的分离图像归类为分离图像的集群。每个集群包括被所述OCR引擎指派了相同的一个或多个特定字符的图像大小和形状相似的分离图像。所述后OCR引擎可操作来生成表示相应的集群中的分隔图像的集群图像,选择具有低置信等级的集群来获取一个或多个字符与所选择集群的集群图像的人工指派,并且使用所述人工指派所获取的一个或多个字符来验证或替代先前由所述OCR引擎所指派的相应的一个或多个特定字符。
在另一方面,一种方法可包括将所接收的由光学字符识别(OCR)处理所处理的文档的OCR输出中限定的剪切图像归类为剪切图像的集群;生成集群图像来表示每个集群中的剪切图像;选择特定集群的集群图像作为在线挑战-响应(challenge-response)测试的一部分来请求对该特定集群的集群图像的用户识别;并且使用从所述在线挑战-响应测试接收的用户识别来验证或校正由所述OCR处理对所述特定集群所指派的一个或多个特定字符。在该方法中,每个集群包括被所述OCR处理指派了相同的一个或多个特定字符的图像大小和形状相似的剪切图像。
在另一方面,一种方法可包括将所接收的由光学字符识别(OCR)处理所处理的文档的OCR输出中限定的剪切图像分类为剪切图像的集群;使用集群图像来表示每个集群中的剪切图像;使用在线游戏向所述在线游戏的一个或多个用户提供特定集群的集群图像用于作为所述在线游戏的一部分的用户响应;并且使用从所述在线游戏所接收的用户响应来验证或校正由所述OCR处理对所述特定集群所指派的一个或多个特定字符。在该方法中,每个集群包括被所述OCR处理指派了相同的一个或多个特定字符的图像大小和形状相似的剪切图像。
在另一方面,一种用于光学字符识别(OCR)的***可包括OCR引擎、后OCR处理引擎和表决处理引擎。每个OCR引擎可操作来对文档的原始图像进行处理并且产生相应的OCR输出。每个后OCR处理引擎可可操作来从相应的OCR引擎接收OCR输出并且可操作来产生所述文档的相应的经修改的OCR输出。所述表决处理引擎可操作来从所述经修改的OCR输出选择部分并且将所选择的部分组合为所述文档的最终OCR输出。每个后OCR处理引擎可操作来将在所接收的所述文档的OCR输出中限定的剪切图像归类为剪切图像的集群并且每个集群包括由对应的OCR引擎所指派的相同的一个或多个特定字符的图像大小和形状类似的剪切图像。每个后OCR引擎可操作来生成表示每个集群中的剪切图像的集群图像。所述表决处理引擎可操作来使用每个集群的集群图像和其它集群的集群图像之间的形状差异来检测由对应的OCR引擎对每个集群所指派的一个或多个特定字符中是否存在错误;通过向特定集群新指派一个或多个特定字符来校正在所述特定集群中所检测到的每个错误;并且使用对所述特定集群新指派的一个或多个特定字符来替代在对应的经修改的OCR输出中先前由对应的OCR引擎所指派的相应的一个或多个特定字符。
在另一个方面,一种用于光学字符识别(OCR)的方法可包括使用OCR引擎来处理文档的原始图像并且分别产生OCR输出;独立于其它OCR输出的处理而对每个OCR输出进行处理以产生所述文档的相应的经修改的OCR输出,所述处理包括:将所接收的所述文档的OCR输出中限定的剪切图像归类为剪切图像的集群,生成集群图像来表示每个集群中的剪切图像,使用每个集群的集群图像和其它集群的集群图像之间的形状差异来检测由对应的OCR引擎对每个集群所指派的一个或多个特定字符中是否存在错误。每个集群包括由对应的OCR引擎所指派的相同的一个或多个特定字符的图像大小和形状类似的剪切图像。该方法进一步包括通过向特定集群新指派一个或多个特定字符来校正在所述特定集群中所检测到的每个错误,使用对所述特定集群新指派的一个或多个特定字符来替代对应的经修改的OCR输出中先前由对应的OCR引擎所指派的相应的一个或多个特定字符;并且从所述经修改的OCR输出选择部分并将所选择的部分组合为所述文档的最终OCR输出。
在另一方面,一种方法可包括利用第一光学字符识别(OCR)引擎来处理文档图像以生成第一OCR输出并且利用第二OCR引擎来处理所述文档图像以生成第二OCR输出。所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符。所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及对每个第二剪切图像指派的相应的一个或多个字符。该方法进一步包括对所述第一OCR输出应用形状聚类来产生具有第一剪切图像的第一集群以及对第一剪切图像的一个或多个字符的每个指派的相应的置信分值;对所述第二OCR输出应用形状聚类来产生具有第二剪切图像的第二集群以及对第二剪切图像的一个或多个字符的每个指派的相应的置信分值;并且根据所述第一OCR输出和第二OCR输出生成最终的OCR输出。所述最终的OCR输出包括边框并且使用对所述第一剪切图像和第二剪切图像的一个或多个字符的指派的置信分值来对每个边框选择和指派相应的一个或多个字符。
在另一方面,一种用于光学字符识别(OCR)的***可包括第一OCR引擎、第一后OCR引擎、第二OCR引擎、第二后OCR引擎和表决处理引擎。所述第一OCR引擎可操作来处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符。所述第一后OCR引擎可操作来对所述第一OCR输出应用形状聚类来产生具有第一剪切图像的第一集群以及对第一剪切图像的一个或多个字符的每个指派的相应的置信分值。所述第二OCR引擎可操作来处理文档图像以生成第二OCR输出,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及分别对每个第二剪切图像指派的一个或多个字符。所述第二后OCR引擎可操作来对所述第二OCR输出应用形状聚类来产生具有第二剪切图像的第二集群以及对第二剪切图像的一个或多个字符的每个指派的相应的置信分值。所述表决处理引擎被用来接收和处理所述第一OCR输出和第二OCR输出,并且基于置信分值从所述第一和第二集群产生最终的OCR输出。
在另一方面,一种方法可包括利用第一光学字符识别(OCR)引擎处理文档图像以生成第一OCR输出,并且利用第二光学字符识别(OCR)引擎处理文档图像以生成第二OCR输出。所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符。所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及对每个第二剪切图像指派的相应的一个或多个字符。该方法进一步包括将所述第一剪切图像和第二剪切图像归类为集群,其中每个集群仅包括对其指派了相同的一个或多个字符的剪切图像;生成每个集群的集群图像;使用所述集群图像来验证或校正对剪切图像的字符指派并且确定对剪切图像的一个或多个字符的每个指派的置信分值;并且使用对所述集群图像的字符指派来生成最终的OCR输出。
在另一方面,一种用于光学字符识别(OCR)的***可包括第一OCR引擎、第二OCR引擎、后OCR引擎和表决处理引擎。所述第一OCR引擎可操作来处理文档图像以生成第一OCR输出。该第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符。所述第二OCR引擎可操作来处理文档图像以生成第二OCR输出。该第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及对每个第二剪切图像指派的相应的一个或多个字符。所述后OCR引擎被用来接收所述第一和第二OCR输出并且将所述第一剪切图像和第二剪切图像归类为集群。每个集群仅包括对其指派了相同的一个或多个字符的剪切图像以及表示每个集群的剪切图像的集群图像。所述表决处理引擎可操作来基于从所述后OCR引擎对所述集群图像的字符指派来生成最终的OCR输出。
在另一方面,一种方法可包括利用第一光学字符识别(OCR)引擎处理文档图像以生成第一OCR输出;对所述第一OCR输出应用形状聚类以产生第一经修改的OCR输出。所述第一OCR输出包括识别位于所述文档图像中的剪切图像的第一边框以及对每个剪切图像指派的相应的一个或多个字符。所述第一经修改的OCR输出包括对于剪切图像的字符指派的修改以及在所述文档图像中认出的词。该方法进一步包括识别所述第一经修改的OCR输出中的可疑词,所述可疑词是具有被识别为可疑字符的字符的词;并且利用第二OCR引擎对所述可疑词进行处理以认出所述可疑词。
在另一方面,一种用于光学字符识别(OCR)的***可包括第一OCR引擎、第一后OCR引擎和第二OCR引擎。所述第一OCR引擎可操作来处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符。所述第一后OCR引擎可操作来对所述第一OCR输出应用形状聚类以产生第一经修改的OCR输出,所述第一经修改的OCR输出包括对于剪切图像的字符指派的修改以及在所述文档图像中认出的词。所述第一后OCR引擎可操作来识别所述第一经修改的OCR输出中的可疑词,并且所述可疑词是具有被识别为可疑字符的字符的词。所述第二OCR引擎可操作来接收并处理所述可疑词以认出所述可疑词。
在另一方面,一种方法可包括处理文档图像以产生所述图像的非重叠子区域的集合,其中每个子区域为第一分辨率;生成视觉上类似的剪切子区域的多个集群,其中所述集合中的每个子区域包括在集群之一中;以高于所述第一分辨率的第二分辨率根据在相应的集群中的所述子区域对所述多个集群中每一个生成代表性集群图像;并且通过利用其中包括相应的子区域的集群的代表性集群图像替代所述图像中的子区域来产生所述文档的副本图像。
在另一方面,一种方法可包括对文档的原始图像应用光学字符识别(OCR)处理以产生所述原始图像的不同位置的剪切图像,其中每个剪切图像为第一分辨率;将所述剪切图像归类为剪切图像的集群,其中每个集群包括被所述OCR处理指派了相同的一个或多个字符码并且大小相同或相似的剪切图像;将每个集群中的每个剪切图像转换为高于所述第一分辨率的第二分辨率的经转换的剪切图像;对在每个集群中的经转换的剪切图像求平均以产生集群图像;并且使用所述集群的集群图像来替代由所述OCR处理最初产生的对应的剪切图像从而以第二分辨率生成所述文档的原始图像的副本。
在又另一个方面,一种***可包括光学字符识别(OCR)引擎和后OCR引擎。所述OCR引擎可操作来处理文档的原始图像以产生包括所述原始图像不同位置的剪切图像的OCR输出。每个剪切图像为第一分辨率。所述后OCR引擎与所述OCR引擎进行通信以接收所述OCR输出。所述后OCR引擎可操作来将所述剪切图像归类为剪切图像的集群,其中每个集群包括被所述OCR引擎指派了相同的一个或多个字符码并且大小相同或相似的剪切图像。所述后OCR引擎可操作来将每个集群中的每个剪切图像转换为高于所述第一分辨率的第二分辨率的经转换剪切图像;对每个集群中的经转换剪切图像求平均以生成集群图像;并且使用所述集群的集群图像来替代由所述OCR引擎最初产生的对应的剪切图像从而以第二分辨率生成所述文档的原始图像的副本。
可实施本发明的特定实施例来实现一个或多个优势。例如,来自以普通方式印刷或书写的长篇文档的大量样本包括图像信息,所述图像信息可在样本数量足够大时被访问。这样的信息可被用来提高识别字符时的精度。该说明书中所描述的形状聚类技术可被应用来对大量样本进行处理以提取关于图案相似度和相异度的附加图像信息。
本发明的一个或多个实施例的细节在附图和在以下描述中进行阐述。根据所述描述、附图和权利要求,本发明的其它特征、方面和优势将变得显而易见。
附图说明
图1图示了从特定OCR引擎的输出获取的OCR所生成的边框、相关的剪切图像和指派的OCR字符码的示例。
图2示出了在后OCR处理中应用形状聚类的示例性方法。
图3是示出对OCR输出应用形状聚类以产生经修改的OCR输出的示例性后OCR处理引擎的示例的框图。
图4是示出用于由图3的集群生成引擎进行的集群归类的示例性处理的流程图。
图5图示了通过对集群中在其质心对齐的剪切图像求平均来计算集群图像的一个示例性处理。
图6图示了能够由集群处理软件330执行以使用用于OCR字符码指派的形状聚类的方法示例。
图7、8和9示出了从OCR引擎的输出获取的集群以及由图3的集群处理引擎所计算的相关集群参数的示例。
图10示出了滑动窗口处理的示例,其中通过使用具有高置信分值的集群作为用于对可疑集群图像进行重新分割的集群图像模板来将可疑集群图像重新分割为更小的集群图像。
图11A和11B示出了图10中的滑动窗口处理的操作细节。
图12图示了自动人工校正的一种实施方式,其中人工校正处理可被包括为图3中的集群处理软件的一部分。
图13示出了在表决配置中包括两个或更多OCR引擎和后OCR处理引擎的示例性OCR***。
图14示出了在表决配置中包括两个或多个OCR引擎和单个后OCR处理引擎的另一种示例性OCR***。
图15示出了使用第一OCR引擎处理原始文档图像并且使用第一后OCR引擎处理来自所述第一OCR引擎的OCR输出以产生经修改的OCR输出的示例性OCR***。
图16图示了用来产生文档的高分辨率版本的一种示例性处理。
图17图示了示例性的高分辩率按需打印***。
图18示出了实施OCR处理和后OCR处理的示例性计算机***。
图19示出了基于OCR和后OCR处理提供在线OCR服务的示例性计算机***。
类似的附图标记和标号在各附图中指示类似元素。
具体实施方式
不同OCR引擎的OCR输出可有所变化,但是许多包括字符边框和所述边框的OCR指派的字符码。图1图示了从特定OCR引擎的输出所获取的OCR生成的边框、相关的剪切图像和指派的OCR字符码的示例。所述OCR引擎对文档的原始数字图像进行处理并且将该原始图像分割为与被独立认出的字符相对应的独立剪切图像。所述OCR引擎产生并使用边框来围住和识别一个或多个单独认出的字符。例如,图1中的边框110、120、140和160分别围住标点符号的句点、字母“F”、字母“o”和数字“4”。每个OCR字符码能够表示一个或多个字符。每个字符可包括一个或多个语言标记,其中语言标记是语言的基本单元,并且可包括例如字母、数字以及符号或标志。符号或标记可以是例如标点符号、排字标记或变音符(diacritical mark)。因此,字符的示例可以是字母、数字、符号或标志以及两个或更多语言标记的连字(ligature)。图1包括根据对字母、数字和标点符号相应指派的OCR字符码而生成的OCR字符的特定示例。根据OCR引擎指派的OCR字符码生成文本字符130和150,其中对在边框120和边框160内所包含的文档图像部分分别生成字母“F”和数字“4”。
在图1所示的示例中,OCR引擎所生成的边框为矩形,并且其大小和纵横比随所围住的独立字符的大小和纵横比而变化。在该示例中,每个边框围住一个字符的图像像素。
所要处理的文档的原始图像可以是二进制图像、灰度图像或彩色图像中的一个或多个。灰度数据或色彩数据通常比二进制数据包含更为详细的图像信息,因此对于提取细致或详细的图像特征可以是有价值的。在一些OCR引擎中,原始图像首先被转换为二进制图像,并且接着对所转换的二进制图像进行处理以便进行光学字符识别。该转换可对OCR处理和后OCR处理的质量造成逆向影响。因此,以下所描述的一些技术访问原始图像以获取灰度信息或色彩信息以便在后OCR处理中使用并由此提高了处理精度。
该说明书中所描述的技术可被用来充分利用嵌入在来自以普通方式印刷或书写的长篇文档的大量样本中的图像信息,以提高识别字符时的精度。形状聚类技术被用来处理所述大量样本来提取关于图案类似度和相异度的附加图像信息。适于应用形状聚类技术的长篇文档的示例包括书、诸如报纸、期刊和杂志之类的周期性印刷出版物的集合以及由同一人或具有类似书写风格的不同人所书写的文档的集合等。
图2示出了在后OCR处理中应用形状聚类的示例性方法。文档的原始数字图像首先被OCR引擎处理,以产生包括独立边框的OCR输出,所述边框包围着所述原始数字图像内的剪切图像。所述OCR引擎还分别为所述边框指派OCR字符码。该OCR输出的后OCR处理可如下执行。在步骤210,所述OCR输出中的边框所限定的剪切图像被归类为剪切图像的不同集群。被归类在一个集群中的剪切图像已经被OCR引擎指派了一个或多个共同的OCR字符码且被识别为相同或相似的大小,并且被后OCR处理基于诸如形状距离之类的适当形状量度确定为具有相同或相似的形状。例如,这样的集群可包括处于特定剪切图像大小或与之近似的用于字母“C”的相同或相似的剪切图像。因此,以上归类处理使用适当的形状量度对被指派具有一个或多个共同OCR字符码并且大小相同或相似的不同剪切图像的形状进行比较。例如,可计算两个这样的剪切图像之间的形状距离来确定形状相似度的程度。该形状比较将剪切图像分离成集群,其中每个集群具有被形状量度测量为形状相同或相似、被相应的边框的大小(例如,沿边框的一个维度的像素数目)测量为大小相同或相似并且被指派具有一个或多个共同的OCR字符码的剪切图像。可生成集群图像来表示每个集群中的剪切图像(步骤220)。所述集群图像可以是每个集群的剪切图像的代表性图像,并且可以利用不同方法来生成。例如,可将集群中的剪切图像进行平均来产生平均图像作为集群图像。作为另一个示例,可选择集群中的一个剪切图像作为集群图像。在对每个集群生成集群图像之后,在各种后OCR处理操作中可由所述集群图像以及指派到集群的一个或多个OCR字符码来表示每个集群。
可注意到,在形成集群之后,一些后续处理操作可以以集群的级别进行。基于形状相似度将每个集群图像与其它集群图像进行比较来验证OCR输出中对集群的一个或多个OCR字符码的指派以及检测对集群错误指派的一个或多个OCR字符码(步骤230)。如果在比较不同集群图像时没有检测到错误,则由OCR引擎指派给集群的一个或多个OCR字符码被验证为正确。如果检测到错误,则生成一个或多个新的OCR字符码并指派给所述集群(步骤240)。该基于不同集群之间的形状相似度检查每个集群中的一个或多个OCR字符码指派并且校正错误指派的处理可被部分用于确定对集群图像的每个指派的置信分值,该置信分值指示每个指派的可信度级别。在生成了一个或多个新的OCR字符码后,所述一个或多个新的OCR字符码被用来在OCR输出中该集群的集群图像每次出现时替代错误指派的一个或多个OCR字符码,以产生经修改的OCR输出(步骤250)。OCR错误的这种校正以集群级别执行并且被应用到该集群中的所有图像。该集群级别的处理比每次对原始图像中的一个图像实例或出现执行错误校正的技术更为高效。至少出于该原因,该集群级别的处理在OCE处理中有效处理长篇文档时是有利的。
当基于形状相似度对集群图像所进行的比较没有发现OCR引擎对集群所进行的一个或多个OCR字符码的指派中存在错误时,该比较已经验证了所述OCR引擎所进行的指派。该验证是有价值的,原因在于在验证之后会提高对所述集群的一个或多个OCR字符码指派的置信等级。因此,及时没有对OCR引擎最初生成的一个或多个OCR字符码指派进行校正,集群图像的比较也能够提高后OCR处理中的OCR质量。置信分值还可以被其它因素所影响,例如对集群的一个或多个OCR字符码的指派是否由人工识别进行了验证以及集群中的剪切图像数目。出于该说明的原因,人工意味着需要诸如人的独立实体的作用。人工识别所进行的验证可被用来对集群指派高的置信分值。在统计上,与具有较小的剪切图像数量的集群相比,集群中剪切图像的数量大会表明高的集群置信分值。
图3是示出示例性后OCR处理引擎310的框图,所述后OCR处理引擎310对OCR输出应用形状聚类以产生经修改的OCR输出。OCR引擎300是对文档的数字图像301进行处理并且产生OCR输出302的OCR软件模块。后OCR处理引擎310是进一步对OCR输出302进行处理以对任意OCR错误进行校正并由此产生OCR精度得以提高的经修改的OCR输出的软件模块。在该示例中,后OCR处理引擎310包括集群生成软件320、集群处理软件330和输出处理软件340。集群生成软件320可操作来接收OCR输出302,并且基于剪切图像的形状相似度将OCR输出302中的独立剪切图像归类为集群322。集群处理软件330处理集群322并且能够对集群322进行表征和修改以产生经修改的集群332,其中一些集群被进一步表征并且OCR输出302中的一些OCR错误基于从集群处理获取的属性而得以校正。集群处理软件330能够应用形状聚类来从每个集群中的剪切图像提取形状信息。所提取的形状信息可被用来将不同集群的集群图像的形状进行比较并且获取不同集群的形状差异,尤其是具有不同的指派OCR字符码的集群之间的形状差异。该形状比较可接着被用来确定OCR输出302中的所指派的OCR字符码中是否存在错误。输出处理软件340可对OCR输出302应用经修改的集群332并且在生成经修改的OCR输出350时校正在OCR输出302中所检测到的错误。错误可以是对集群的一个或多个OCR字符码不正确指派。输出处理软件330还可以使用经修改的集群332中的集群信息来校正词中的剪切图像的不正确分割。在以下讨论剪切图像的不正确分割,例如参考图10、11A和11B。
图3所示的后OCR处理***及其变化形式可以在通信网络中的一个或多个计算机服务器中实施。所述一个或多个计算机服务器可被用来提供OCR引擎300和后OCR引擎310。所述网络中的客户端计算机可向所述一个或多个计算机服务器发送文档图像301来请求文档301的OCR输出。OCR引擎300和后OCR引擎310对客户端的文档图像进行处理并且产生OCR输出350,所述OCR输出350可通过所述通信网络发送到所述客户端计算机。
如图3所示,在一些实施方式中,集群生成软件320可直接访问文档的原始图像并且获取在OCR输出302中可能无法获得的文档原始图像的灰度或色彩数据,以生成集群322。因此,在该示例中,所述原始图像的灰度或色彩数据被用来验证并修改对于集群的OCR字符码指派并且提高后OCR处理引擎310的处理精度。
在其它实施方式中,集群处理软件330可选择具有所指派的一个或多个有疑问的OCR字符码的集群,并且获取对所选择集群的图像的人工识别。该人工识别生成具有所选择集群的图像的一个或多个字符的人工指派。该说明书在以下描述了一些实施方式将所指派的一个或多个OCR字符码确定为有疑问的方式。
集群处理软件330的输出为经修改的集群332。输出处理软件340使用经修改的集群332的OCR字符码来更新OCR输出320中的OCR字符码以产生经修改的OCR输出350。与集群处理软件330中的处理类似,输出处理软件340在更新OCR输出320中的OCR字符码时以集群级别进行操作。输出处理软件340还可以选择包括具有一个或多个OCR字符码的有疑问指派的可疑集群的词,以便进行重新分割,即将相关的集群图像重新分割为两个或更多新的集群图像并且基于来自具有高置信分值的所选择集群的匹配图像对新的集群图像指派OCR字符码,所述具有高置信分值的所选择集群诸如具有大量剪切图像的集群、具有经由人工识别获取的字符码的集群。
图4是示出能够由图3的集群生成软件320执行的集群生成的示例性处理的流程图。在该处理中,除OCR引擎300所指派的OCR字符码之外,集群生成软件320使用OCR输出302中关于剪切图像的形状和大小的信息将剪切图像归类为集群、组块(bucket)和类。归类于一个集群中的剪切图像已经被OCR引擎300指派了一个或多个共同的OCR字符码,并且被OCR引擎300基于相应的边框的大小而识别为近似为特定剪切图像大小。特别地,在该处理中,基于与另一个集群形状相同或相似的形状量度来选择一个集群中的剪切图像。在一些实施方式中,在集群生成软件320所进行的集群生成中并不明确使用字体类型信息。然而,在生成集群中使用的形状比较处理意在将字体相同或相似并且为相同或相似字体大小的字符置入相同集群中。例如,Time Roman字体且为12点大小的字母“g”的剪切图像可被归类于一个集群中,而TimeRoman字体且为10点大小的字母“g”的剪切图像可被归类于不同集群中。集群可被分组为组块,其中每个组块具有被指派以相同或相似大小的一个或多个共同OCR字符码的集群。被指派以一个或多个共同OCR字符码的所有组块可被分组在一起作为所述一个或多个共同OCR字符码所识别的集群类。例如,不同字体和字体大小的字母“c”的剪切图像的所有集群在“c”类中。因此,英文中26个字母的剪切图像被归类于26个不同类中。
在图4的示例性集群生成中,集群生成软件320首先将剪切图像划分为类,其中一个类中的剪切图像无论其形状和大小如何都被指派一个或多个共同的OCR字符码(步骤410)。在每个类中,集群生成软件320将剪切图像划分为组块,其中一个组块中的剪切图像具有相同或相似的大小但是可能形状有所不同,诸如不同的字体类型(步骤420)。在所有类中进行该操作。在每个组块中,集群生成软件320基于其形状与另一剪切图像的距离将剪切图像划分为集群,其中一个集群中的剪切图像具有相同或相似的形状,例如,字体类型和大小相同或相似的字符(步骤430)。
在将剪切图像归类到集群之后,集群生成软件320为每个集群生成表示集群形状的集群图像。所述集群图像是集群中的剪切图像的代表性图像,并且可以例如通过对每个集群中的剪切图像进行平均或者从剪切图像中选择特定的剪切图像来生成(步骤440)。结果,每个集群可由所述集群图像以及指派到所述集群的相应的一个或多个OCR字符码来表示(步骤450)。在后OCR引擎310所进行的后续处理中,能够以集群级别进行各种后OCR处理操作而不是处理各个剪切图像。可应用多种求平均技术来获取集群图像。图5图示了一种用于通过对在其质心对齐的剪切图像进行平均来计算集群图像的示例性处理。每个剪切图像的边框内的图像信息可被用来计算每个剪切图像的质心(步骤510)。集群内不同剪切图像的边框相对于其所计算的质心对齐(步骤520)。对集群的所对齐剪切图像的像素值进行平均来生成平均图像作为集群图像(步骤530)。根据集群生成软件320在集群生成期间比较不同剪切图像的形状时所最初使用的剪切图像的像素值,每个像素值可以是二进制值、灰度值或色彩值。剪切图像像素的灰度或色彩值可被用来生成集群并且计算具有详细和细致特征的集群图像,从二进制像素值获取的集群图像可能无法获得所述详细和细致特征。当OCR引擎300在OCR输出302中仅提供二进制图像信息时,后处理引擎310可直接访问文档301的原始图像以获取灰度或色彩信息。OCR输出302中每个独立剪切图像的边框的位置坐标是已知的,并且所述边框可基于已知位置坐标被应用到文档301的原始图像以从文档301的原始图像获取对应的灰度或彩色像素信息。所获取的每个剪切图像的灰度或色彩信息接着被用来比较剪切图像的形状以便生成集群320,并且计算每个集群内的剪切图像的平均图像作为对应的集群图像。
如上所述,作为集群的基本单元的剪切图像可以是表示一个或多个OCR字符码的图像。因此,可对单个剪切图像指派两个或更多OCR字符码。许多OCR引擎被设计为使用单个边框作为基本单元来向与每个单个边框相关联的剪切图像指派一个或多个OCR字符码。在实施该说明书中的聚类技术时,集群的基本单元可以是与OCR引擎所产生的单个边框相关联的剪切图像,以及与所述OCR引擎所产生的两个或更多相邻边框相关联的剪切图像。在后者的情况下,相连的剪切图像时作为分别与在所接收的OCR输出中的两个或更多相邻边框相关联的两个或更多剪切图像的组合的“相连”剪切图像。因此,集群生成软件320可被设计成将在所接收的OCR输出中的相连剪切图像归类为形状和大小相同或相似并且与所述OCR引擎指派给相应的相邻边框的相同字符相关联的相连剪切图像的相连集群。当与OCR引擎所产生的两个或更多相邻边框相关联的相连剪切图像被用作形成集群的基本单元时,图3中的集群生成软件320在确定剪切图像的大小时实质上分别将两个或更多的相邻边框当作相连的单个边框。这样的相连边框并非由OCR引擎所产生,而是由所给出的后OCR处理引擎310中的集群生成软件320所生成并作为其产生结果。
在该说明书中所描述的各种处理操作中,处理或使用这种具有两个或更多相邻的OCR所生成边框的相连边框可以与使用或处理单个OCR所生成边框类似,包括计算与边框相关联的剪切图像的形状距离、边框质心、不同边框的对齐、对与边框相关联的剪切图像求平均、获取人工识别以及内插(interpolation)边框中的剪切图像。因此,该说明书中的边框可以是OCR引擎所生成的单个边框或者将OCR引擎所生成的两个或更多相邻边框相连接的边框。因此,与将OCR引擎所生成的两个或更多相邻边框相连接的相连边框相关联的相连剪切图像可以是分别与将OCR引擎所生成的两个或更多相邻边框相关联的各个剪切图像的组合,并且可以在集群处理中以和关联于OCR引擎所生成的单个边框的剪切图像相同的方式来对待。
可注意到,与每一个连接OCR引擎所生成的两个或更多相邻边框的边框相关联的相连剪切图像可以在该说明书中所描述的聚类处理中进行聚类。因此,在将每个集群与不同字符的所有集群进行比较时,所述比较包括其中每个集群成员具有将两个或更多OCR所生成的边框相连接并且由此被指派多个字符的边框的集群。结果,聚类处理中的比较可由于不同集群而产生多个不一致。
例如,被指派字符“r”的OCR字符码的“r”集群包括字符“r”的剪切图像样本。“r”集群中的这些剪切图像样本中的一些,例如临近“n”剪切图像的“r”剪切图像,还可包括在被指派“rn”的OCR字符连字的2字符集群中作为“rn”的剪切图像的一部分。与包括“r”和“n”集群的许多其它集群相比,“rn”集群的集群图像在形状上可能与“m”集群更为接近。虽然会有冲突的情况,但是用于确定每个集群是否为可疑集群、不可接受集群或独立集群的整体处理保持相同。以上n=2的示例扩展到n阶(n-gram)集群,并且随着n的增加,计算需求会有所增加且返回精度会降低。
集群处理软件330对每个集群322进行估算来确定由OCR引擎300最初对每个集群指派的一个或多个OCR字符码是否充分可靠以便在经修改的OCR输出350中使用。当由OCR引擎300最初对集群指派的一个或多个OCR字符码被确定为不可靠时,集群处理软件330可对所述集群执行附加处理来获取一个或多个更为可靠的OCR字符码来表示集群图像。该处理修改了一些集群322以产生经修改的集群332。对经修改的集群322所指派的OCR字符码接着被用来产生经修改的OCR输出350。
对特定集群指派的一个或多个OCR字符码的可靠度级别也被称作置信等级,并且可由置信分值进行数字表示。可以对集群处理软件330设置置信分值阈值以便将具有所述置信分值阈值以上的置信分值的那些集群识别为可接收的集群,并且将具有所述置信分值阈值以下的置信分值的那些集群识别为可疑集群。可独立或以特定组合使用多个因素或参数来决定置信分值。一种相关因素是集群中剪切图像的数目。在统计上,与具有较小的剪切图像数量的集群相比,集群中剪切图像的数量大表明高的集群置信分值。另一种相关因素是获取剪切图像的一个或多个OCR字符码或能够反映特定的一个或多个OCR字符码的可靠度的集群图像的方式。例如,集群图像可由人进行人工识别,并且基于人工识别所生成的对应的一个或多个OCR字符码可被认为是高度可靠的指派并且由此被指派高的置信分值。
以下所描述的示例提供了关于如何使用集群中的多个剪切图像以及集群和其它集群之间的形状相似度来确定置信分值并且基于这样的分值对集群排名的细节。
集群处理软件330能够将集群生成软件320所生成的不同集群的形状信息相关联,以便检测和校正OCR引擎300所指派的OCR字符码中的错误并且验证OCR引擎300所指派的OCR字符码。在该处理期间,软件330能够通过校正OCR输出302中的错误来修改一些集群而产生经修改的集群332,更具体地,通过对每个集群图像的字符码指派进行验证(和校正,如果需要)来产生集群图像和字符码的关联。在一些实施方式中,集群处理软件330应用形状量度来计算形状距离,作为两个集群的集群图像之间的形状差异的度量并且作为确定集群的置信分值的一个因素。这种使用形状量度用于比较形状还可被用于在集群生成软件320首次生成集群320时对剪切图像进行比较。因此,集群处理软件330中用于计算两个集群图像之间的形状距离的以下示例性技术可被用来在集群生成软件320中计算剪切图像之间的形状距离。
在集群处理软件330中可使用多个形状量度。例如,对于二进制图像,可使用基于Hausdorff距离的各种形状距离。与在集群生成软件320中获取集群图像类似,可在计算形状距离时使用剪切图像的像素值的色彩或灰度表示来实现形状比较中的更高的精度。当OCR输出302仅提供了剪切图像的二进制图像信息时,可由后OCR引擎310从OCR引擎所处理的文档的原始图像301直接获取色彩或灰度信息。当集群生成软件320在计算集群322的集群图像时已经从原始图像301获取了色彩或灰度信息时,集群处理软件330可使用相同的色彩或灰度信息来计算形状距离。否则,集群处理软件330可访问原始图像301来获取所述色彩或灰度信息。
为了确定两个集群图像I和J之间的形状距离,基于其边框质心对齐集群图像I和J。在一些实施方式中,所对齐的集群图像I和J之间的形状距离可如下计算:
其中n是大于1的正整数,I(P)和J(P)是两个集群图像I和J在像素位置P的灰度或彩色像素值,并且对所有像素位置进行求和,其中所述像素位置P在其边框对齐后对于两个图像是相同的。
集群处理软件330可使用以上或其它形状量度来基于集群和其它集群之间的形状距离估算对每个集群指派的一个或多个OCR字符码的置信等级。例如,可选择形状距离阈值来识别与最接近集群离开大于形状距离阈值的形状距离的“孤立”集群。当集群过于远离所有组块和类中的所有其它集群时,该集群就不再能够基于仅仅形状距离与其它集群进行合理比较来批准或不批准集群图像的一个或多个所指派的OCR字符码的置信等级,尤其是对于被指派了不同OCR字符码的集群。因此,集群处理软件330可将孤立集群识别为其置信等级不可接受并且要进行进一步处理或验证的可疑集群。例如,集群处理软件330可选择孤立集群用于由人进行人工识别并由此将可疑集群转换为具有高置信分值的可接受集群。
用于测量集群的置信等级的另一个参数是集群中剪切图像的数目。具有大量剪切图像的集群会直接表明该集群的高置信等级。出于该原因,集群处理软件330能够使用集群中剪切图像数目的阈值来对集群进行估算。当集群中的剪切图像数目小于所述阈值时,该集群被标记为可疑集群并且要进行进一步处理和验证。集群处理软件330中进一步处理和验证的一种实施方式是由人进行人工识别。人工识别的结果可被用来将可疑集群转换为具有高置信分值的可接受集群。
对于并非可疑集群的集群而言,集群处理软件330能够将这样的集群识别为可接受集群并且将它们用于产生经修改的OCR输出350。当无法对可疑集群进行附加的处理或验证时,对于该可疑集群的一个或多个OCR字符码的指派可包括在经修改的OCR输出350中。集群处理软件330可暂时将可疑集群包括在经修改的OCR输出350中,并且当对该可疑集群的附加处理或验证变得可用时更新所述可疑集群。
在其相应的类中具有最高剪切图像数目的集群可被识别为主集群,原因在于这样的主集群比相同类中的非主集群倾向于更可能成为可接受集群。然而,主集群在各种情况下可能为可疑集群。例如,主集群可以为孤立集群或者可具有小于在集群处理软件330中设置的阈值的剪切图像数目。
集群处理软件330可应用阈值形状距离和集群中剪切图像数目的阈值来对集群生成软件320所输出的集群322进行排名和处理。在一种实施方式中,所有类中的所有集群基于剪切图像或集群中实例的数目而被降序排名并且每次以该顺序处理一个集群。对于每个集群C,如果集群C是其类中的主集群,则集群处理软件330能够跳过处理并且进行处理下一个较小的集群。在一些实施例中,如果集群C不是主集群,则集群处理软件330根据形状量度确定集群C到最接近的集群C’的距离,所述形状量度例如形状距离。集群C’是比集群C大并且没有被标记为可疑的集群。集群C’可以是主集群,或者是以以上所限定的顺序在集群C之前进行处理的集群。如果发现集群C’具有与集群C不同的相关联的所指派OCR字符码,则集群处理软件330确定OCR引擎300已经在对集群C的指派中出现了错误。因此,集群处理软件330能够改变对集群C指派的OCR字符码并且将与集群C’相关联的不同的OCR字符码指派给集群C,集群处理软件300确定OCR引擎300已经对集群C做出了正确的指派。集群处理软件330可反复进行以上处理来处理与当前所考虑的集群C最接近的集群C’被标记为可疑集群的情况。当发生这种情况时,集群处理软件330继续处理其它集群以搜索非可疑集群C’直至在相同类中没有集群C具有可疑的C’。
集群处理软件330可执行以上处理来检测OCR错误并且通过改变对一些集群指派的OCR字符码来校正一些错误。该处理产生了经修改的集群332,其OCR字符码的指派精度得以提高。输出处理软件340可将经改变的集群332应用至OCR输出302以产生错误减少的经修改的OCR输出350。
集群处理软件330还能够被编程为应用所选择的形状量度对整个文档中所有集群计算两个集群的平均图像之间的形状距离,并且基于所述形状距离和每个集群中的图像数目将所述集群分类为主集群、可接受集群、可疑集群和孤立集群。可通过相互比较来对这些不同类型的集群进行进一步处理,以将一些可疑集群改变为可接受集群。
图6图示了集群处理软件330所执行的对OCR字符码指派使用形状聚类的示例性处理。在该示例中,集群处理软件330对指派给集群的初始OCR字符码的置信等级进行估算,并且如果适当,则利用与被处理集群的形状距离最短的另一集群的一个或多个不同的OCR字符码来替代指派给所述集群的一个或多个初始字符码。集群处理软件330对所有集群进行估算和处理以产生在原始的OCR输出文档302中出现的文档301的经修改的集群集合332,其OCR错误有所减少。更特别地,计算特定集群和所有其它集群的集群图像之间的形状距离而无论类型如何(步骤610)。与所有类中的最接近集群的形状距离大于阈值距离的集群被标记为“孤立”集群,而不改变该集群的相应的一个或多个OCR字符码(步骤620)。该处理将集群归类为孤立集群和非孤立集群。对于每个孤立集群而言,集群处理软件330将这样的集群标记为可疑集群并且调用不同的处理机制来处理所述集群,例如使用人工识别或对包含该可疑集群中的剪切图像的每个词进行重新分割。对于每个非孤立集群而言,可识别相同类中相关联的最接近集群和来自不同类的相关联的最接近集群,并且每个这样的最接近集群比正在处理的当前非孤立集群具有更多的样本剪切图像(步骤630)。接下来,集群处理软件330确定以上两个所选择集群之间的最接近集群是否为可接受集群,即可对于在经修改的OCR输出350中使用充分可靠(步骤640)。如该说明书中较早部分中所描述的,可通过例如对集群指派的置信分值来确定该集群是否可接受。
如果最接近的集群为可接受集群并且与正在处理的非孤立集群处于不同类中,则以与所述最接近的集群相关联的一个或多个OCR字符码替代正在处理的当前非孤立集群的一个或多个OCR字符码作为所述当前集群的新的一个或多个字符码(步骤650和670)。如果最接近的集群为可接受集群并且与正在处理的非孤立集群处于相同类中,则将当前集群的一个或多个OCR字符码验证为正确并且由此保持不变以用于经修改的OCR输出350中(步骤650和680)。
另一方面,如果最接近的集群不是可接受集群,则集群处理软件330确定是否继续搜索与正在处理的当前非孤立集群最接近的可接受集群(步骤660)。如果是,则重复以上搜索处理;否则,保持正在处理的当前集群的一个或多个OCR字符码并且将其标记为可接受的以用于经修改的OCR输出350中(步骤680)。在后者的情况下,形状比较并不确认或反对原始的OCR指派。
图7、8和9示出了从OCR引擎的输出获取的集群以及集群的后OCR处理的结果的示例。标记出以上所描述的集群处理软件330所计算的集群参数。在图7中,顶部行710表示根据OCR引擎所归类的一个大小而形成的“C”集群图像。这些集群在形状和大小上稍有不同,并且在顶部行710的中间区域还包括被OCR引擎不正确地归类为“C”集群的6个“G”集群。中间行720示出了“C”类中所有“C”集群的对应最为接近的匹配。注意,中间行包括被OCR引擎不正确地归类为“C”集群的2个“G”集群。底部行730具有不在“C”类中的所有集群的对应的最接近匹配。底部行730中每个集群图像的左上角的标记示出了指派给所述集群的OCR字符码的OCR字符。在中间行中,三个数字701、702和703为表征第二行720中的集群的集群参数。顶部的数字701是集群的每个顶部行中的样本数目,第二个数字702为顶部的“C”集群和中间的其它“C”集群之间的形状距离,并且底部的数字703是顶部的“C”集群和底部的最接近的非“C”集群之间的形状距离。例如,图7中右上部的C集群具有1899个样本。如果中间的数字小于下部数字,则对应的顶部集群可能被OCR引擎正确归类为“C”集群;否则,所述OCR引擎可能如顶部行中错误归类的“G”集群的红色示例所指示的那样出现错误。在图7中,不正确标记的集群的样本总数为(1+20+9+1+2+7)=50,由此可能通过集群级别的处理自动校正50个错误。
图7进一步示出了基于形状聚类处理对集群进行的OCR指派的置信等级。集群处理软件330使用标记参数来标记集群是否可接受、以高置信分值进行验证、或者以错误的OCR指派可疑或反对。图7通过使用每个集群图像的右下角中的标志对该标记参数进行了图形表示。每个集群图像右下角中的该标志在这里被用来增进集群的特征表征和标记的理解,并且不被后OCR处理软件所使用。如果集群是可接受的但是没有通过人工识别或其它方式被验证为具有高置信分值,则不对集群图像右下角进行标记。如果集群为可接受的并且通过人工识别或其它方式被验证为具有高置信分值,则利用对钩符号在集群图像的右下角进行标记。如果集群是不可接受的并且被验证为错误,则利用叉号在集群图像的右下角进行标记。不正确标记的集群在其右下角以叉号进行标记,诸如顶部行710的中间区域中被OCR引擎不正确地归类为“C”的6个“G”集群。图8示出了最初都被OCR引擎识别为“B”的集群的示例。如图8所示,集群处理软件330所进行的集群分析正确发现了到最近的非“B”集群,该示例中为“R”集群,的距离小于到最接近的“B”集群的距离,由此14个集群中的10个实际为“R”集群。如右下角的叉号所指示的,图8的顶部行左端的字母“R”的第一集群被OCR引擎不正确的指派为“B”集群。
图9示出了“孤立”集群的示例,其中序列“fri”的剪切图像的38个示例被OCR引擎不正确地识别为“M”。如果使用人工识别来校正该OCR错误并且对所述孤立集群指派正确的连字“fri”,则所述孤立集群可被重新归类为具有高置信分值的可接受集群。在该重新归类之后,基于新指派的字符“fri”的单个集群级别的校正可被用来校正文档中所有的38个错误。
图9中的示例表明OCR引擎可能将一组不同字符不正确地分割为单个剪切图像(例如“fri”)并且由此将所述组当作单个字符(例如“M”)。具有这样的分割错误的集群易于与单个字符的典型集群相比通过其边框的大小测量的大。可使用由人进行的人工识别来校正这样的错误。集群处理软件330可被用来自动选择用于人工识别的可疑集群并且使用人工识别的结果来更新对所述集群的一个或多个OCR字符码的指派,由此将所述可疑集群转换为可接受集群。
作为选择,图3中的后OCR引擎310能够通过搜索与包括人工识别的形状聚类所获取的具有高置信分值的可接受集群的集群图像的匹配来将这样的大的可疑集群图像重新分割为两个或更多较小集群图像。在该处理中,具有高置信分值的可接受集群是从经修改的集群322中具有高置信分值的可接收集群池中选择的,并且被用作集群图像模板。通过在空间上将模板每次一个像素滑过可疑集群图像来比较所述集群图像模板和可疑集群,以比较所述集群图像模板和可疑集群的每个子部分之间的形状相似度。对池中的所有可接受集群重复该匹配处理来识别所有匹配。该匹配处理中所产生的两个或更多较小集群图像对应于两个或更多新集群并且接着对所述新集群进行处理。
这种使用具有高置信分值的可接受集群的池作为集群图像模板能够在集群定形之后处理OCR输出302中的可疑词。在一种实施方式中,输出处理软件340可被编程为将每个集群图像模板运行通过可疑词来识别任意匹配。当存在至少一个匹配时,被OCR引擎分割为OCR输出302中的不同相邻边框中的剪切图像的可疑词图像被重新分割为新的不同相邻边框中的新的剪切图像。例如,每个新的边框可以是单个字符或连字的剪切图像。
图10示出了滑动窗口1010的示例,其中通过使用经修改的集群322中具有高置信分值的所选择集群的池作为集群图像模板将可疑词的剪切图像1001重新分割为字符或连词的较小图像1002。例如,该所选择的集群的池可包括通过人工识别所获取的集群、具有大量样本剪切图像的集群、已经由形状聚类验证为正确的集群。所述滑动窗口将每个所选择集群与可疑词的子部分进行比较并且接着基于与所述集群图像模板的匹配重新分割可疑词。该滑动窗口处理1010可由作为输出处理软件340的一部分的软件来实施。
集群处理软件340选择所选择集群的集群图像作为集群图像模板。所选择的该集群对于所指派的一个或多个OCR字符码具有高置信分值。集群处理软件340首先将集群图像模板沿预先确定的滑动方向与可疑词的剪切图像1001内的不同图像部分对齐,每次一个部分。例如,所述预先确定的滑动方向可以是从左至右的水平方向。因此,集群图像模板与可疑词内的不同部分对齐。分别获取所述集群图像模板与词图像的不同部分之间的形状量度距离。所获得的形状量度距离被用来确定词图像的一部分是否与集群图像模板相匹配。将词图像的与集群图像模板匹配的匹配部分与所述词图像的一个或多个其它部分分离。对所选择的集群指派的一个或多个OCR字符码在经修改的OCR输出中被指派给所述词图像被分离的匹配部分。
图11A和11B示出了图10中的滑动窗处理1010的操作细节。图11A示出了使用从具有高置信分值的集群图像所选择的集群图像模板1100以与可疑词图像1001的不同部分对齐的滑动窗处理1010。例如,集群图像模板1100被放置在沿滑动方向的两个相邻位置之间以一个像素移位的一系列不同位置处以便与可疑词图像1001重叠。图11B示出了示例性的处理操作。首先,从具有高置信分值的可用集群图像中选择集群图像模板1100(步骤1110)。将集群图像模板1100的质心与可疑词图像1001的开始部分的质心对齐(步骤1120)。计算集群图像模板1100和可疑词图像1001被重叠的开始部分之间的形状距离(步骤1130)。接着将集群图像模板1100和可疑词图像1001沿滑动方向彼此移位一个像素以便将集群图像模板1100与可疑词图像1001的后续部分对齐(步骤1140),并且再次计算形状距离(步骤1150)。在不同部分重复该处理以使得滑动窗处理1010计算集群图像模板1100和可疑词图像1001的不同图像部分之间的相应的形状量度距离(步骤1160)。所计算的形状量度距离被用来确定可疑词图像1001的图像部分是否与集群图像模板1100相匹配。对所选择的具有高置信分值的所有集群重复以上处理(步骤1170)。
如果存在匹配,则将可疑词图像1001的匹配部分分离,并且指派所匹配的集群图像模板的相应的一个或多个OCR字符码。该结果被用在输出处理软件340所产生的经修改的OCR输出350中。如果可疑词图像1001在分割之后的一个或多个剩余部分已与集群图像模板匹配,则相应的OCR字符码被用在经修改的OCR输出350中。如果可疑词图像1001在分割之后的一个或多个剩余部分与集群图像模板不匹配,则这些部分被标记为不可识别的图像,并且可以通过其它方法(例如人工识别)进一步处理或者在经修改的OCR输出350中进行这样的标记。如果在滑动窗口处理之后不存在单个匹配,则可疑词图像1001被标记为不可识别的图像,并且可以通过其它方法(例如人工识别)进一步处理或者在经修改的OCR输出350中进行这样的标记。
图10、11A和11B所示的滑动窗口处理1010还可以作为集群处理软件330的一部分来实现以便将可疑集群图像重新分割为两个或更多的较小分割的集群图像。在这一点,图10、11A和11B所描述的处理步骤被应用于可疑集群的集群图像而不是可疑词图像。被分割的集群图像像集群320中的其它集群那样由集群处理软件330进一步处理。集群处理软件330选择第一集群的第一集群图像作为集群图像模板。所述第一集群图像对于所指派的一个或多个OCR字符码具有高置信分值。来自具有低置信分值的第二集群,例如可疑集群,的第二集群图像被选择通过滑动窗口处理1010被重新分割。集群处理软件330可首先沿预先确定的方向将集群图像模板与第二集群图像内的不同图像部分对齐,每次一个部分。如果存在匹配,则可疑集群图像的匹配部分接着被用作所要形成的第三集群的新的第三集群图像。将可疑集群图像中每个剪切图像中对应于集群图像模板1100的对应部分从所述剪切图像中分离,以形成新的剪切图像。分别从第二集群中的剪切图像分离的新的剪切图像被用来形成第三集群,所述第三集群被指派对集群图像模板1100所指派的一个或多个OCR字符码。所述可疑集群图像在分离第三集群的新剪切图像之后的其余剪切图像被用于形成至少一个第四集群。如果匹配部分的位置处于将可疑集群图像划分为三个部分的可疑集群图像中间,则所述可疑集群图像的其余剪切图像能够形成两个不同的新集群。新分割的集群接着被用来在产生经修改的OCR输出350时替代第二集群。
还可通过在自动方式中结合集群级别的人工识别和校正对可疑集群进行处理以开发高精度的人工识别。可实施该说明书中所描述的聚类技术来减轻许多其它人工OCR校正技术的高成本和费力的处理。
图12图示了自动人工校正的一种实施方式,其中可包括人工校正处理1210作为图3中的集群处理软件330的一部分。在操作中,集群处理软件330选择集群,例如可疑集群,的集群图像来请求进行人工识别,并且使用人工识别来生成所选择集群的一个或多个新的OCR字符码。
对于人工识别的请求可被发送到一个或多个在线人工校正资源1220。在线人工校正资源1220可以是在线计算机,操作人员通过所述在线计算机观看所请求的可疑集群图像以及所指派的OCR字符,并且将集群图像的相关文本的确认或所述集群图像经校正的新的文本发送回。单个请求可包括多个可疑集群的图像。人工校正处理1210使用来自在线人工校正资源1220的响应来更新经过修改的集群332中的集群。例如,人工校正处理1210能够利用基于从在线人工校正资源1220返回的响应所生成的一个或多个新的OCR字符码来替代可疑集群的一个或多个现有OCR字符码。对于每个经人工校正或确认的集群而言,集群处理软件330将所述集群从可疑集群改变为可接受集群,并且对所述集群指派高置信分值以便在后续的后OCR处理中使用。这允许由集群处理软件330利用人工校正结果对经修改的集群332进行更新。
作为选择,可通过使用在线资源而无需人工校正的指定人员或操作员来实施自动人工校正。所述在线人工校正资源可被设计为在线游戏或服务的一部分,其中需要用户对所述在线游戏或服务进行人工输入。
例如,可使用可疑集群的集群图像作为用于要求游戏人员识别图像的在线游戏的图像。http://www.espgame.org/的ESP游戏是这样的在线游戏的一个示例,其中向游戏人员呈现图像并且要求游戏人员输入图像中所示物体的名称。游戏人员所输入的名称,例如字符码,一方面被用作在线游戏的一部分,另一方面被同时用作后OCR处理的可疑集群图像的人工识别。
对于另一个示例,各种网站使用诸如“CAPTCHA”(全自动区分计算机和人类的图灵测试)之类的挑战-响应测试图像作为登录处理的一部分来确定网站的用户是否为人类。可以将可疑集群的图像用作CAPTCHA或CAPTCHA的一部分。因此,具有扭曲文本的CAPTCHA在这一端可被添加以可疑集群的图像。试图对服务进行访问的用户要解决CAPTCHA并对在CAPTCHA一端的可疑集群图像所表示的一个或多个字符是什么给出最佳猜测。用户所识别的字符被接收并被用来验证或校正由OCR处理对可疑集群图像所指派的一个或多个特定字符。为了提高经由CAPTCHA所进行的用户识别的精度,可在不同CAPTCHA中向不同用户发送可疑集群的相同集群图像以在返回的集群图像响应上提供冗余检查,其中来自不同用户的对于相同集群图像的一致回答是所返回的响应可靠的有力指示。因此,在一个实施方式中,基于在线挑战-响应测试从多个不同用户中的每一个获取对特定集群的平均图像的用户识别。使用从多个不同用户的其他用户获取的用户识别来验证对特定集群的平均图像的特定用户识别。经验证的用户识别接着被用来对OCR处理对特定集群指派的一个或多个特定字符进行验证或校正。
OCR引擎所生成的集群图像可能是不表示任何字符的无意义图像。这可能由不同方式所导致。例如,OCR引擎所进行的不适当分割会产生剪切图像中的字符的一部分,或者与剪切图像中另一字符的一部分相结合的字符。作为另一个示例,输入到OCR引擎中的原始文档图像可能在剪切图像中具有无意义标记。当无意义的集群图像被归类为用于以上自动人工校正技术中的任意一种中的人工识别的可疑集群图像时,观看所述无意义的可疑集群图像的人员可利用陈述所述图像无意义或所述图像不是单个或多个完整字符的消息进行响应。人工校正处理1210可被配置成通过保留这样的集群的可疑状态并且标记该集群的属性来对这种情形进行处理。例如,可对不正确分割的字符应用自动重新分割,并且可将结果反馈回人工验证处理,如果需要就进行重复,直至获得满意的分割。
图12所示的后OCR***及其变化可以在通信网络中的一个或多个计算机服务器中实施。所述一个或多个计算机服务器可被用来提供OCR引擎和后OCR引擎。所述网络中的客户端计算机可向一个或多个计算机服务器发送文档图像以请求所述文档的OCR输出。所述OCR引擎和后OCR引擎对客户端的文档图像进行处理并且产生OCR输出,所述OCR输出能够通过所述通信网络发送到所述客户端计算机。一个或多个在线服务器可连接到所述通信网络并且提供在线的人工校正资源供后OCR引擎使用。所述后OCR引擎可操作来选择具有低置信等级的集群来获取对所选择集群的集群图像的一个或多个字符的人工指派。在这方面,对在线服务器进行请求并且在线服务器接着对所选择的集群图像生成人工指派。例如,所述在线服务器可以是对访问所述在线服务器所托管的网站的用户计算机处的用户提供挑战-响应测试的计算机或者是托管ESP游戏或请求来自在线用户响应的其它游戏的计算机。
用于该说明书中所描述的后OCR处理技术的一个应用是具有两个或更多OCR引擎的OCR***中的后OCR处理。两个或更多OCR引擎的这种使用可进一步利用OCR处理中冗余的好处并且提高OCR精度。这样的***可以以各种配置来实施。
图13示出了包括两个或更多OCR引擎1301、1302和所连接的在表决配置中并行操作的后OCR处理引擎1311、1312的示例性OCR***。每个OCR引擎与一个后OCR处理引擎配对。因此,图像化文档1300由所有OCR引擎独立地并行处理。每个OCR输出接着由相应的后OCR处理引擎进一步处理。该处理产生同一个图像化文档1300的多个OCR输出。每个后OCR处理引擎可被设计成基于图3所示的后OCR处理来执行整个处理功能或其一部分。提供表决处理引擎1320以从后OCR处理引擎接收不同的OCR输出并且对所接收的不同OCR输出进一步进行处理以产生最终的OCR输出1330。所述表决处理引擎1320能够在产生最终OCR输出1330时应用不同的表决方法。
例如,在一种实施方式中,图13中的每个后OCR处理引擎能够执行集群生成320并对图3所示的集群产生剪切图像322,而不修改相应的OCR引擎所进行的字符指派。表决处理引擎1320能够选择最终OCR输出1330中的对应图像的不同后OCR处理引擎所产生的任意一个集群。不同的后OCR处理引擎能够对从后OCR处理引擎所生成的集群指派置信分值,并且表决处理引擎1320能够使用所述置信分值从后OCR处理引擎选择具有最高置信分值的集群用于最终OCR输出1330。结果,最终OCR输出1330由表决处理引擎1320基于来自不同后OCR处理引擎的最可靠集群的组合所生成并且能够比单对OCR引擎和后OCR引擎所产生的OCR输出具有更好的OCR精度。
在另一个实施方式中,图13中的每个后OCR处理引擎能够被配置成对相应的OCR引擎最初进行的字符指派进行修改或验证。该修改可通过例如图3中的应用聚类处理330来产生经修改的集群332来实现。图13中的每个后OCR处理引擎产生可靠性得以改进的经修改的OCR输出。表决处理引擎1320接着基于集群的置信分值使用经修改的OCR输出来产生最终的OCR输出1330。
在图13中的***的进一步实施方式中,每个后OCR处理引擎(1311或1312)可被配置成将从相应的OCR引擎(1301或1302)所接收的OCR输出中的边框中限定的剪切图像归类为剪切图像的集群。每个集群具有被对应的OCR引擎指派了相同的一个或多个特定字符的图像大小和形状类似的集群图像。每个后OCR处理引擎还对每个集群产生集群图像,例如对每个集群中的剪切图像求平均以生成平均图像作为集群图像。表决处理引擎1320可被配置成使用每个集群的集群图像和其它集群的集群图像之间的形状差异来检测在由对应的OCR引擎对每个集群指派的一个或多个特定字符中是否存在错误并且通过向特定集群新指派一个或多个特定字符来校正特定集群中所检测到的每个错误。表决处理引擎1320可进一步***作来在对应的经修改的OCR输出中使用特定集群新指派的一个或多个特定字符来替代对应的OCR引擎先前所分别指派的相应的一个或多个特定字符。
在图13的***中,两个不同的OCR引擎可不同地对图像进行分割。表决处理引擎1320能够从后OCR引擎的输出中选择最佳集群。考虑一个OCR引擎将单个字符的图像不正确地分割为两个相邻边框中的两个单独剪切图像,而其它OCR引擎将所述单个字符的相同图像正确识别为单个剪切图像并放置在一个边框中的示例。表决处理引擎1320可分别基于置信分值和产生两种选择的后OCR引擎的数量来仅选择两种选择之一。在以上示例中,在单个边框中包括了单个字符的全部图像的可选集群可被表决处理引擎1320所选择,原因在于更多的OCR引擎产生该可选集群。
图14示出了另一个示例性OCR***,其包括处于表决配置中的两个或更多的多个OCR引擎1401、1402以及单个后OCR处理引擎1420。OCR引擎1401、1402彼此独立操作以对原始的图像化文档1400进行处理以产生它们相应的OCR输出。单个后OCR处理引擎1410接收所述OCR输出并且将所接收的OCR输出中的所有剪切图像归类为集群。集群可包括来自不同OCR输出的剪切图像,并且例如通过将剪切图像求平均来使用每个集群中的剪切图像生成表示所述集群的集群图像。接下来,生成集群图像并且比较不同集群的形状以验证和校正所述集群的OCR字符码的指派。该处理产生经修改的集群。表决处理引擎1420被用来使用所述经修改的集群以生成最终的OCR输出1430。
在一个实施方式中,表决处理引擎140能够对不同OCR输出中所生成的原始图像化文档1400中特定位置的相同图像实例的冲突剪切图像进行处理。比较冲突图像的置信分值以选择具有较高置信分值的剪切图像来表示所述特定位置的图像实例。
考虑图14中具有用于并行处理原始图像化文档1400的两个OCR引擎1401和1402的***的更为具体的操作示例。第一OCR引擎1401被用来处理原始文档图像1400以生成第一OCR输出。所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及分别对每个第一剪切图像指派的一个或多个字符。第二OCR引擎1402被用来处理文档图像1400以生成第二OCR输出。所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及分别对每个第二剪切图像指派的一个或多个字符。接下来,后OCR处理引擎1410被用来将所述第一剪切图像和第二剪切图像归类为集群,其中每个集群仅包括具有对所述剪切图像指派的一个或多个相同字符的剪切图像。所述后OCR引擎1410还通过例如将集群中的剪切图像求平均来生成每个集群的集群图像。以上所生成的集群图像接着被用来校正对剪切图像的字符指派并且确定对剪切图像的一个或多个字符的每个指派的置信分值。可以获取所述原始文档图像1400的灰度数据或色彩数据并且由后OCR引擎1410用来改善所述集群处理。表决处理1420确定第一剪切图像中的任意一个是否与第二剪切图像中的任意一个共享文档图像1400中的一个位置以及对一个第一剪切图像指派的一个或多个字符是否与对一个第二剪切图像指派的一个或多个字符有所不同。如果是,则表决处理1420使用一个第一剪切图像和一个第二剪切图像相应的置信分值来选择所述位置的一个或多个字符。
图13和14所示的表决OCR***及其变化可以在通信网络中的一个或多个计算机服务器中实施。所述一个或多个计算机服务器可被用来提供OCR引擎、一个或多个后OCR引擎以及表决处理引擎。所述网络中的客户端计算机能够向所述一个或多个计算机服务器发送文档图像以请求所述文档的OCR输出。所述一个或多个计算机服务器上的OCR引擎、一个或多个后OCR引擎和表决处理引擎对客户端的文档图像进行处理并且产生OCR输出,所述OCR输出可通过所述通信网络被发送到所述客户端计算机。
图15示出了一种示例性OCR***,其使用第一OCR引擎1510来处理原始文档图像1500并且使用第一后OCR处理引擎1520对来自第一OCR引擎1510的OCR输出进行处理以产生经修改的OCR输出。所述第一后OCR处理引擎1520如以上所描述的那样在第一OCR引擎1510所输出的剪切图像上执行集群归类和集群处理,并且识别处于集群的可疑集群图像形式的每个可疑词,所述集群中存在可疑词的图像。第二OCR引擎1530接着被用来通过对可疑字符的一个或多个OCR字符码的指派进行验证和校正而对经修改的OCR输出中的任意可疑字符进行进一步处理并且产生最终的OCR输出1501。注意,第二OCR引擎1530能够将可疑集群的图像进行重新分割以便进一步处理。
作为选择,第二后OCR引擎可被用来进一步对来自第二OCR引擎1530的输出应用形状聚类,并且该形状聚类的结果被用来形成最终的OCR输出文档1501。
后OCR处理技术可被用来根据长篇文档的低分辨率扫描生成高分辨率打印输出。一些商业OCR引擎能够以例如200dpi或300dpi(每英寸点数)的低分辨率处理图像。这样的低分辨率图像对于高质量打印输出可能是不够的。本公开内容中所描述的后OCR处理技术中集群的平均图像趋向于具有比所扫描文档中的每个单独图像更高的分辨率,原因在于对每个集群中的大量图像进行了平均。此外,每个剪切图像可被内插更高分辨率的剪切图像。该内插进一步提高了每个集群的剪切图像的分辨率。因此,在诸如高分辨率的按需打印***之类的高分辨率应用中,集群图像可被用来以相同图像的超分辨(super-resolved)版本替代扫描文档中的图像的每个实例。
图16图示了一种用来产生文档的高分辨率版本的示例性处理。所述文档的图像首先被处理以产生所述图像的子区域的集合(步骤1610)。每个子区域处于第一分辨率。所述子区域在所述图像中处于不同位置。一个子区域可被完全与相邻子区域分离开,或者可以与相邻子区域部分重叠。所述文档可以为各种格式,例如诸如书本、报纸或期刊的以共同形式的文章之类的多个子文档的集合以及其中每个子区域作为一页文档的一部分的多页面文档。例如,OCR引擎在该处理中可被用来将文档的图像分离到作为子区域的边框中,并且每个边框具有与文档图像分离开来的相关联的剪切图像。所述边框可以是非重叠的子区域。在一些实施方式中,每个子区域可包括色彩或灰度数据。所述子区域接着被处理以生成视觉上相似的剪切子区域的多个集群,其中集合中的每个子区域包括在集群之一中(步骤1620)。该处理可通过形状聚类来实现,例如可使用k维树数据结构的分级凝聚集群算法。每个集群可以仅包括由OCR引擎指派了相同的一个或多个特定字符并且大小近似相同的子区域。接着对来自相应的集群中的子区域的多个集群中的每一个以高于第一分辨率的第二分辨率生成代表性的集群图像(步骤1630)。例如,可通过以第二分辨率将第一分辨率的每个子区域内插到内插子区域并且对每个集群中的内插子区域求平均来生成每个集群图像。接下来,利用其中包括相应的子区域的集群的集群图像替代图像中的子区域(步骤1640)。该替代产生了处于更高的第二分辨率的文档复本图像。所述副本图像可在打印机进行打印以产生所述原始文档的高分辨率打印输出。
图17图示了基于以上处理的示例性高分辨率按需打印***。首先将文档数字化为低分辨率图像1701。接着使用OCR引擎来处理图像1701以产生OCR输出302。接着提供后OCR处理引擎1710来处理低图像分辨率的OCR输出302并且产生高分辨率的经修改的OCR输出文档以便进行打印。引擎1710包括作为图3的后OCR处理引擎310的集群生成软件320和集群处理软件330。因此,可应用诸如图2、4、5和6中所描述的处理的上述集群操作以及人工识别处理来产生集群322和经修改的集群332。注意,在集群处理中可使用来自原始文档的色彩或灰度数据来捕捉原始文档中的图像细节以便呈现高分辨率的集群图像。与图3中的后OCR处理引擎310有所不同,引擎1710包括高分辨率内插引擎1712来基于集群处理软件330所产生的集群图像对图像化的输入文档中的每个图像执行图像内插以产生所需高分辨率的最终图像1720。
在一个实施方式中,后OCR处理引擎1710可如下进行操作。首先,集群生成软件320接收并处理具有例如200dpi或300dpi的低分辨率的OCR输出302以产生集群322。作为选择,集群生成软件320可被用来从原始文档获取OCR引擎300所生成的边框的剪切图像的色彩或灰度数据。每个剪切图像的色彩或灰度数据接着被集群生成软件320用来生成集群322。接下来,集群处理软件330对集群322进行处理以基于集群形状来表征或修改所述集群以产生OCR精度得以改进的经修改的集群332。集群处理软件330能够提供人工识别处理,诸如以上所描述的集群级别的人工识别方法,以对所选择集群图像的OCR字符指派进行验证或校正,所述所选择集群图像例如孤立集群或其它可疑集群。还可以对一个或多个所选择的可疑集群应用滑动窗口处理以基于具有高置信分值的那些集群332的集群图像分割每个所选择的可疑集群。在聚类处理之后,与最初的集群322相比,经修改的集群332通常具有改善的置信分值和提高的OCR精度。每个经修改集群332的分辨率实质上与每个集群322的分辨率相同。
接下来,高分辨率内插引擎1712对每个集群中的每个剪切图像应用图像内插算法并且产生每个剪切图像的高分辨率剪切图像。可使用各种内插算法,包括双线性内插算法。结果,所有剪切图像都被转换为高于内插前的分辨率的分辨率。作为示例,300dpi的剪切图像可被内插为1200dpi的剪切图像。对于每个集群,计算经内插的剪切图像的质心并且将所述经内插的剪切图像在其质心对齐。对每个集群的所对齐的经内插的剪切图像求平均以产生平均图像作为集群图像。由于每个剪切图像的内插和平均操作,该集群图像具有了比没有进行内插的集群图像更高的分辨率。高分辨率内插引擎1712接着使用每个高分辨率集群图像来替代该图像化的输入文档中的所有图像实例以产生高分辨率文档1720作为输入文档的图像的副本。该复本1720可被发送到打印机以便将所述文档以所内插的高分辨率进行打印。
图17所示的***可在通信***中的一个或多个计算机服务器中实现。所述网络中的客户端计算机能够向所述一个或多个计算机服务器发送低分辨率的文档图像来请求所述文档图像的高分辨率副本。所述一个或多个计算机服务器上的OCR引擎和后OCR引擎对客户端的文档图像进行处理并且产生高分辨率的副本。所述高分辨率的副本可通过所述通信网络发送到客户端计算机或者在连接到所述通信网络的打印机处进行打印。
所公开的和其它实施例以及该说明书中所描述的功能性操作能够以数字电路或者包括该说明书中所公开的结构及其结构等同物的计算机软件、固件或硬件来实施,或者以它们的一个或多个的组合来实施。所公开的和其它实施例可作为一个或多个计算机程序产品来实施,即在计算机可读介质上编码的计算机程序指令的一个或多个模块,以便由数据处理装置来执行或者控制其操作。所述计算机可读介质可以是机器可读的存储设备、机器可读的存储基片、存储器设备、影响机器可读的传播信号的合成物质或它们的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机、多个处理器或计算机。除了硬件之外,所述装置可包括创建所讨论的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理***和操作***或它们的一个或多个组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成来对信息进行编码以便传送到适当的接收器装置。
计算机程序(还被称为为程序、软件、软件应用、脚本或代码)可以以任意形式的编程语言来书写,包括编译的或解释性语言,并且其可以以任意形式被部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其它单元。计算机程序无需对应于文件***中的文件。程序可存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所讨论的程序的单个文件中、或者多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可被部署为在一个计算机或位于一个地点或分布在多个地点并且通过通信网络互连的多个计算机上执行。
该说明书中所描述的处理和逻辑流程可由执行一个或多个计算机程序以通过对输入数据进行操作并产生输出来执行功能的一个或多个可编程处理器来执行。所述处理和逻辑流程还可以由例如FPGA(现场可编程门阵列)和ASIC(专用集成电路)的特殊功能的逻辑电路来执行,并且装置也可以作为所述特殊功能的逻辑电路来实现。
作为示例,适合于执行计算机程序的处理器包括通用和特殊用途的微处理器,以及任意类型的数字计算机的任意的一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或这二者接收指令和数据。计算机的基本元件为用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如磁、磁-光盘或光盘,或者可操作地耦合到所述一个或多个大容量存储设备以便从其接收数据或向其发送数据或这二者。然而,计算机无需具有这样的设备。适合于存储计算机程序指令和数据的计算机可读介质包括所用形式的非易失性存储器、媒体和存储器设备,例如包括:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁-光盘;以及CD-ROM和DVD-ROM盘。所述处理器和存储器可由特殊用途的逻辑电路作为补充或结合于其中。
为了提供与用户的交互,所公开的实施例可在计算机上实施,所述计算机具有用于向用户显示信息的例如CRT(阴极射线管)或LCD(液晶显示器)监视器的显示设备以及键盘和例如鼠标或轨迹球的指示设备,用户利用其能够对计算机提供输入。也可使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任何形式的感应反馈,例如视觉反馈、听觉反馈或触觉反馈,并且来自用户的输入可以以任意形式被接收,包括声音、语音或触碰输入。
所公开的实施例可以在包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间组件,或者包括例如客户端计算机的前端组件,或者一个或多个这样的后端、中间或前端组件的任意集合的计算***中实施,所述客户端计算机具有图形用户界面或Web浏览器,用户通过其能够与这里所公开的实施方式进行交互。所述***的组件可通过任意形式或例如通信网络的数字数据通信介质进行互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
用于实施所公开实施例的***可包括客户端计算机(客户端)和服务器计算机(服务器)。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系可通过在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序而发生。
图18示出了实施OCR和后OCR处理的示例性计算机***。该***包括通信网络1800,所述通信网络1800使得连接到其的诸如计算机之类的通信设备能够进行通信。例如,通信网络1800可以是单个计算机网络,诸如企业内的计算机网络,或者互连的计算机网络的网络,诸如因特网。一个或多个OCR服务器1810连接到通信网络1800并且提供(1)用于OCR处理的一个或多个OCR引擎以及(2)用于该说明书中所描述的后OCR处理的一个或多个后OCR处理引擎。用于OCR处理的一个或多个OCR引擎还可以置于与提供一个或多个后OCR处理引擎的一个或多个计算机服务器不同的计算机服务器上。在操作中,一个或多个客户端计算机(例如,客户端1801和1802)能够为了OCR服务而使用通信网络1800来远程访问OCR服务器1810。客户端1801例如可以向OCR服务器1810发送对图像化文档进行OCR处理的请求。客户端1801将图像化文档发送给OCR服务器。在接收了图像化文档之后,OCR服务器1801将所述图像化文档导引到一个或多个用于OCR处理的OCR引擎。来自OCR引擎的OCR输出接着被发送到后OCR处理引擎以便进行进一步处理来产生经修改的OCR输出。OCR服务器1810接着将经修改的OCR输出发送到客户端1801。图16和17中所描述的高分辨率打印还能够在图18的***中实施。
图19示出了基于以上所描述的OCR和后OCR处理提供在线OCR服务的示例性计算机***。该***使用一个或多个OCR存储服务器1920来存储所选择文档图像的OCR输出的可搜索库,所述所选择的文档图像例如所选择的书本或文章。用户能够访问OCR存储服务器1920来搜索并检索感兴趣的特定文档的OCR文本文档。所述***包括通信网络1900,通信网络1900使得连接到其的诸如计算机之类的通信设备能够进行通信。例如,通信网络1900可以是诸如企业内的计算机网络的单个计算机网络或者诸如因特网之类的互连计算机网络的网络。一个或多个OCR服务器1910连接到通信网络1900并且提供(1)用于OCR处理的一个或多个OCR引擎以及(2)用于该说明书中所描述的后OCR处理的一个或多个后OCR处理引擎。用于OCR处理的一个或多个OCR引擎还可以置于与提供一个或多个后OCR处理引擎的一个或多个计算机服务器不同的计算机服务器上。存储由OCR服务器1910上的OCR处理和后OCR处理可搜索的预处理OCR输出的一个或多个OCR存储服务器1920也连接到通信网络1900。在图19中的***中提供***管理控制来控制OCR服务器1910上的OCR和后OCR处理以对OCR存储服务器1920提供OCR输出。对OCR存储服务器1920中的预先处理的OCR输出进行索引并编制目录以便进行搜索和检索。在从OCR服务器1910接收到所选择文档的新的OCR输出时,OCR存储服务器1920中的数据库被更新。在操作中,一个或多个客户端计算机(例如,客户端1901和1902)能够使用通信网络1900对OCR存储服务器1920进行远程搜索或访问来检索所需的OCR输出。例如,客户端1901能够而向存储服务器1920发送对图像化文档的OCR输出的请求,或者能够针而访问存储服务器1920以对数据库搜索所述图像化文档的OCR输出。如果在存储服务器1920中存在所请求的OCR输出,则服务器1920将所述OCR输出发送到客户端1901。否则,通知客户端1901当前无法获得所请求的OCR输出。服务器1920能够保持OCR请求的记录,并且***管理控制能够基于所述请求记录对OCR和后OCR处理进行控制以便对所选择的新文档图像进行处理,所述新文档图像由用户请求OCR服务但是它们的OCR输出并不存储在服务器1920上。图16和17中所描述的高分辨率打印还可以在图19中的***中实施。
虽然该说明书包括许多特定内容,但是这些并不构成任意发明或所要求的范围的限制,而是作为特定实施例的特定特征的描述。在本说明书中在单独实施例环境下所描述的某些特征还可以在单个实施例中组合实施。相反,在单个实施例环境下描述的各种特征也可以分散地或者以任意适当的子组合在多个实施例中实施。此外,以上可将特征描述为以某些组合发生作用,甚至最初要求为这样,但是来自所要求的组合的一个或多个特征在一些情况下可从所述组合中去除,并且所要求的组合可被指向子组合或子组合的变化形式。
类似地,虽然操作在附图中以特定顺序所描绘,但是这不应当被理解为要求以所示的特定顺序或连续顺序执行这些操作,或者执行所有所图示的操作来实现所需的结果。在某些情形中,多任务和并行处理是有利的。此外,以上所描述的实施例中的各种***组件的分隔不应当被理解为要求在所有实施例中进行这样的分隔,并且应当理解的是,所描述的程序组件和***通常能够在单个软件产品中集成在一起或者被封装到多个软件产品中。
由此,已经描述了特定实施例。其它实施例处于所附权利要求的范围之内。
Claims (26)
1.一种用于光学字符识别OCR的方法,包括:
利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及指派给每个第一剪切图像的相应的一个或多个字符;
使用第二OCR引擎处理所述文档图像以生成第二OCR输出,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及指派给每个第二剪切图像的相应的一个或多个字符;
对所述第一OCR输出应用形状聚类来产生具有第一剪切图像的第一集群,其中对每个所述第一剪切图像进行的一个或多个字符的指派具有表示该指派的可靠度级别的相应的置信分值;
对所述第二OCR输出应用形状聚类来产生具有第二剪切图像的第二集群,其中对每个所述第二剪切图像进行的一个或多个字符的指派具有表示该指派的可靠度级别的相应的置信分值;并且
基于所述第一OCR输出和所述第二OCR输出、以及所产生的具有所述第一剪切图像的所述第一集群和具有所述第二剪切图像的所述第二集群,生成最终的OCR输出,所述最终的OCR输出包括边框并且使用对所述第一剪切图像和所述第二剪切图像的所述一个或多个字符的指派的所述置信分值来对每个所述边框选择和指派相应的一个或多个字符,
其中形状聚类对多个集群中的每个集群指派相应的一个或多个字符,每个集群包括一个或多个剪切图像;并且
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
2.如权利要求1所述的方法,其中:
所述集群包括(1)其中每个剪切图像与相应的OCR引擎所产生的单个边框相关联的集群和(2)其中每个剪切图像与相应的OCR引擎所产生的两个或更多相邻边框相关联的集群。
3.如权利要求1所述的方法,进一步包括:
至少利用第三OCR引擎处理所述文档图像以生成第三OCR输出,所述第三OCR输出包括识别位于所述文档图像中的第三剪切图像的第三边框以及指派给每个第三剪切图像的相应的一个或多个字符,并且
其中生成所述最终的OCR输出包括使用所述第一、第二和第三OCR输出并且使用对所述第一、第二和第三剪切图像的字符指派的置信分值在所述最终的OCR输出中对每个边框选择和指派相应的一个或多个字符。
4.如权利要求1所述的方法,进一步包括:
在生成所述最终的OCR输出之前,处理所述第一集群以修改或验证所述第一OCR输出中对所述第一剪切图像的字符指派;并且
在生成所述最终的OCR输出之前,处理所述第二集群以修改或验证所述第二OCR输出中对所述第二剪切图像的字符指派。
5.一种用于光学字符识别OCR的***,所述***包括:
用于利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出的装置,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及指派给每个第一剪切图像的相应的一个或多个字符;
用于利用第二OCR引擎处理所述文档图像以生成第二OCR输出的装置,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及指派给每个第二剪切图像的相应的一个或多个字符;
用于对所述第一OCR输出应用形状聚类来产生具有第一剪切图像的第一集群的装置,其中对每个所述第一剪切图像进行的一个或多个字符的指派具有表示该指派的可靠度级别的相应的置信分值;
用于对所述第二OCR输出应用形状聚类来产生具有第二剪切图像的第二集群的装置,其中对每个所述第二剪切图像进行的一个或多个字符的指派具有表示每个指派的可靠度级别的相应的置信分值;并且
用于基于所述第一OCR输出和所述第二OCR输出、以及所产生的具有所述第一剪切图像的所述第一集群和具有所述第二剪切图像的所述第二集群,生成最终的OCR输出的装置,所述最终的OCR输出包括边框并且使用对所述第一剪切图像和所述第二剪切图像的所述一个或多个字符的指派的所述置信分值来对每个所述边框选择和指派相应的一个或多个字符,
其中形状聚类对多个集群中的每个集群指派相应的一个或多个字符,每个集群包括一个或多个剪切图像;并且
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
6.一种用于光学字符识别OCR的***,包括:
第一OCR引擎,可操作来处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框以及对每个第一剪切图像指派的相应的一个或多个字符;
第一后OCR引擎,可操作来对所述第一OCR输出应用形状聚类来产生具有第一剪切图像的第一集群,其中对每个所述第一剪切图像进行的一个或多个字符的指派具有表示该指派的可靠度级别的相应的置信分值;
第二OCR引擎,可操作来处理所述文档图像以生成第二OCR输出,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框以及指派给每个第二剪切图像的相应的一个或多个字符;
第二后OCR引擎,可操作来对所述第二OCR输出应用形状聚类来产生具有第二剪切图像的第二集群,其中对每个所述第二剪切图像进行的一个或多个字符的指派具有表示该指派的可靠度级别的相应的置信分值;以及
表决处理引擎,用来接收和处理所述第一OCR输出和所述第二OCR输出,并且通过从所述第一集群和所述第二集群中选择具有最高置信分值的那一个,来基于置信分值从所述第一集群和所述第二集群产生最终的OCR输出,
其中形状聚类对多个集群中的每个集群指派相应的一个或多个字符,每个集群包括一个或多个剪切图像;并且
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
7.如权利要求6所述的***,其中:
所述第一后OCR引擎可操作来获取对集群图像的人工识别以验证或校正对所述集群图像的一个或多个字符的指派。
8.如权利要求6所述的***,其中:
所述第一和第二OCR引擎、所述第一和第二后OCR引擎和所述表决处理引擎处于一个或多个服务器计算机上;并且
所述一个或多个服务器计算机与通信网络进行通信,所述通信网络可操作来将所述文档的原始图像从客户端计算机导引到所述第一和第二OCR引擎并且将来自所述表决处理引擎的最终OCR输出导引到所述客户端计算机。
9.如权利要求8所述的***,其中:
所述第一和第二OCR引擎、所述第一和第二后OCR引擎和所述表决处理引擎分别处于不同的服务器计算机上。
10.如权利要求6所述的***,其中:
所述第一和第二OCR引擎、所述第一和第二后OCR引擎和所述表决处理引擎处于一个或多个服务器计算机上;
所述一个或多个服务器计算机与通信网络进行通信;
一个或多个OCR存储服务器计算机与所述通信网络进行通信并且存储所述第一和第二OCR引擎、所述第一和第二后OCR引擎和所述表决处理引擎产生的所选择文档的图像的最终OCR输出;并且
所述通信网络提供在客户端计算机和所述一个或多个OCR存储服务器计算机之间的通信以允许所述客户端计算机从所述一个或多个OCR存储服务器计算机获取现有的最终OCR输出。
11.一种用于光学字符识别OCR的方法,包括:
利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框,所述第一OCR输出进一步包括指派给每个第一剪切图像的相应的一个或多个字符;
利用第二OCR引擎处理所述文档图像以生成第二OCR输出,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框,所述第二OCR输出进一步包括指派给每个第二剪切图像的相应的一个或多个字符;
将所述第一剪切图像和所述第二剪切图像归类为集群,每个集群仅包括对其指派了相同的一个或多个字符的剪切图像;
生成每个集群的集群图像;
使用所述集群图像来验证或校正对剪切图像的字符指派并且确定对剪切图像的一个或多个字符的每个指派的置信分值,其中所述置信分值表示每个指派的可靠度级别;以及
使用对所述集群图像的字符指派来生成最终的OCR输出,
其中将所述第一剪切图像和所述第二剪切图像归类为集群包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
12.如权利要求11所述的方法,其中:
通过对所述集群中的剪切图像求平均来生成所述集群的集群图像。
13.如权利要求11所述的方法,进一步包括:
在生成所述最终的OCR输出中,确定任意一个所述第一剪切图像是否与任意一个所述第二剪切图像共享所述文档图像中的位置,以及指派给所述一个第一剪切图像的一个或多个字符与指派给所述一个第二剪切图像的一个或多个字符是否不同,如果是,则使用所述一个第一剪切图像和所述一个第二剪切图像的相应的置信分值来选择所述位置的一个或多个字符。
14.如权利要求11所述的方法,其中:
所述集群包括(1)其中每个剪切图像与相应的OCR引擎所产生的单个边框相关联的集群和(2)其中每个剪切图像与相应的OCR引擎所产生的两个或更多相邻边框相关联的集群。
15.一种用于光学字符识别OCR的***,所述***包括:
用于利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出的装置,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框,所述第一OCR输出进一步包括指派给每个第一剪切图像的相应的一个或多个字符;
用于利用第二OCR引擎处理所述文档图像以生成第二OCR输出的装置,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框,所述第二OCR输出进一步包括指派给每个第二剪切图像的相应的一个或多个字符;
用于将所述第一剪切图像和所述第二剪切图像归类为集群的装置,每个集群仅包括对其指派了相同的一个或多个字符的剪切图像;
用于生成每个集群的集群图像的装置;
用于使用所述集群图像来验证或校正对剪切图像的字符指派并且确定对剪切图像的一个或多个字符的每个指派的置信分值的装置,其中所述置信分值表示每个指派的可靠度级别;以及
用于使用对所述集群图像的字符指派来生成最终的OCR输出的装置,
其中将所述第一剪切图像和所述第二剪切图像归类为集群包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
16.一种用于光学字符识别OCR的***,包括:
第一OCR引擎,可操作来处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的第一剪切图像的第一边框,所述第一OCR输出进一步包括指派给每个第一剪切图像的相应的一个或多个字符;
第二OCR引擎,可操作来处理所述文档图像以生成第二OCR输出,所述第二OCR输出包括识别位于所述文档图像中的第二剪切图像的第二边框,所述第二OCR输出进一步包括指派给每个第二剪切图像的相应的一个或多个字符;
后OCR引擎,用来接收所述第一和第二OCR输出并且将所述第一剪切图像和所述第二剪切图像归类为集群,每个集群仅包括对其指派了相同的一个或多个字符的剪切图像以及表示每个集群的剪切图像的集群图像;和
表决处理引擎,可操作来通过从所述第一集群和所述第二集群中选择具有最高置信分值的那一个,来基于从所述后OCR引擎对所述集群图像的字符指派来生成最终的OCR输出,
其中将所述第一剪切图像和所述第二剪切图像归类为集群包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
17.如权利要求16所述的***,其中:
所述第一和第二OCR引擎、所述后OCR引擎和所述表决处理引擎处于一个或多个服务器计算机上;和
所述一个或多个服务器计算机与通信网络进行通信,所述通信网络可操作来将所述文档的原始图像从客户端计算机导引到所述第一和第二OCR引擎并且将来自所述表决处理引擎的最终OCR输出导引到所述客户端计算机。
18.如权利要求17所述的***,其中:
所述第一和第二OCR引擎、所述后OCR引擎和所述表决处理引擎分别处于不同的服务器计算机上。
19.如权利要求16所述的***,其中:
所述第一和第二OCR引擎、所述后OCR引擎和所述表决处理引擎处于一个或多个服务器计算机上;
所述一个或多个服务器计算机与通信网络进行通信;
一个或多个OCR存储服务器计算机与所述通信网络进行通信并且存储所述第一和第二OCR引擎、所述后OCR引擎和所述表决处理引擎产生的所选择文档的图像的最终OCR输出;并且
所述通信网络提供在客户端计算机和所述一个或多个OCR存储服务器计算机之间的通信以允许所述客户端计算机从所述一个或多个OCR存储服务器计算机获取现有的最终OCR输出。
20.一种用于光学字符识别OCR的方法,包括:
利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的剪切图像的边框以及对每个剪切图像指派一个或多个字符的字符指派;
对所述第一OCR输出应用形状聚类以产生第一经修改的OCR输出,所述第一经修改的OCR输出包括对于剪切图像的字符指派的修改,所述第一经修改的OCR输出进一步包括在所述文档图像中认出的词;
识别所述第一经修改的OCR输出中的可疑词,所述可疑词是具有被识别为可疑字符的字符的词;并且
通过验证或校正对可疑字符的一个或多个OCR字符码的指派,来利用第二OCR引擎对所述可疑词进行处理以认出所述可疑词,
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
21.如权利要求20所述的方法,进一步包括:
作为正确认出所述可疑词来选择所述第一经修改的OCR输出或所述第二OCR引擎的输出。
22.如权利要求20所述的方法,进一步包括:
在所述第一经修改的OCR输出中应用形状聚类来产生对剪切图像的一个或多个字符的每个指派的相应的置信分值;
利用所述第二OCR引擎处理所述文档图像以生成第二OCR输出;
对所述第二OCR输出应用形状聚类以产生第二经修改的OCR输出,所述第二经修改的OCR输出包括所述第二OCR引擎对剪切图像的字符指派的修改,所述第二经修改的OCR输出包括对剪切图像的一个或多个字符的每个指派的相应的置信分值,所述第二经修改的OCR输出进一步包括在所述文档图像中认出的词;
使用所述第一经修改的OCR输出的置信分值和所述第二经修改的OCR输出的置信分值,作为正确认出所述可疑词来选择所述第一经修改的OCR输出或所述第二OCR引擎的输出。
23.如权利要求22所述的方法,其中:
对所述第二OCR输出应用形状聚类包括:
将所述第二OCR引擎所定位的剪切图像归类为集群,每个集群仅包括被所述第二OCR引擎指派了相同的一个或多个字符的剪切图像;
对每个集群生成集群图像,所述集群的集群图像是通过对所述集群中的剪切图像求平均而生成的;
使用所述集群图像以生成对所述剪切图像的经校正的字符指派;并且
使用所述经校正的指派的经校正的指派字符来认出词。
24.一种用于光学字符识别OCR的***,所述***包括:
用于利用第一光学字符识别OCR引擎处理文档图像以生成第一OCR输出的装置,所述第一OCR输出包括识别位于所述文档图像中的剪切图像的边框以及对每个剪切图像指派一个或多个字符的字符指派;
用于对所述第一OCR输出应用形状聚类以产生第一经修改的OCR输出的装置,所述第一经修改的OCR输出包括对于剪切图像的字符指派的修改,所述第一经修改的OCR输出进一步包括在所述文档图像中认出的词;
用于识别所述第一经修改的OCR输出中的可疑词的装置,所述可疑词是具有被识别为可疑字符的字符的词;并且
用于通过验证或校正对可疑字符的一个或多个OCR字符码的指派,来利用第二OCR引擎对所述可疑词进行处理以认出所述可疑词的装置,
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
25.一种用于光学字符识别OCR的***,包括:
第一OCR引擎,可操作来处理文档图像以生成第一OCR输出,所述第一OCR输出包括识别位于所述文档图像中的剪切图像的边框以及对每个剪切图像指派一个或多个字符的字符指派;
第一后OCR引擎,可操作来对所述第一OCR输出应用形状聚类以产生第一经修改的OCR输出,所述第一经修改的OCR输出包括对于剪切图像的字符指派的修改,所述第一经修改的OCR输出进一步包括在所述文档图像中认出的字,其中所述第一后OCR引擎可操作来识别所述第一经修改的OCR输出中的可疑词,所述可疑词是具有被识别为可疑字符的字符的字;和
第二OCR引擎,可操作来通过验证或校正对可疑字符的一个或多个OCR字符码的指派,来接收并处理所述可疑词以认出所述可疑词,
其中应用形状聚类包括访问原始文档图像并且获取灰度或色彩数据来确认或修改对集群的字符指派。
26.如权利要求25所述的***,其中:
所述第一和第二OCR引擎和所述第一后OCR引擎处于一个或多个服务器计算机上;并且
所述一个或多个服务器计算机与通信网络进行通信,所述通信网络可操作来将所述文档的原始图像从客户端计算机导引到所述第一OCR引擎并且将来自所述第二OCR引擎的OCR输出导引到所述客户端计算机。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/517,818 US8175394B2 (en) | 2006-09-08 | 2006-09-08 | Shape clustering in post optical character recognition processing |
US11/517,818 | 2006-09-08 | ||
US11/519,320 US7646921B2 (en) | 2006-09-11 | 2006-09-11 | High resolution replication of document based on shape clustering |
US11/519,368 | 2006-09-11 | ||
US11/519,376 US7650035B2 (en) | 2006-09-11 | 2006-09-11 | Optical character recognition based on shape clustering and multiple optical character recognition processes |
US11/519,320 | 2006-09-11 | ||
US11/519,368 US7697758B2 (en) | 2006-09-11 | 2006-09-11 | Shape clustering and cluster-level manual identification in post optical character recognition processing |
US11/519,376 | 2006-09-11 | ||
CN200780041456.0A CN101542504B (zh) | 2006-09-08 | 2007-09-07 | 后光学字符识别处理中的形状聚类 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780041456.0A Division CN101542504B (zh) | 2006-09-08 | 2007-09-07 | 后光学字符识别处理中的形状聚类 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102637256A CN102637256A (zh) | 2012-08-15 |
CN102637256B true CN102637256B (zh) | 2015-08-26 |
Family
ID=39157593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110425054.9A Active CN102637256B (zh) | 2006-09-08 | 2007-09-07 | 后光学字符识别处理中的形状聚类 |
Country Status (4)
Country | Link |
---|---|
EP (2) | EP2074558A4 (zh) |
KR (1) | KR101486495B1 (zh) |
CN (1) | CN102637256B (zh) |
WO (1) | WO2008031063A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317760B2 (en) | 2014-04-14 | 2016-04-19 | Xerox Corporation | Methods and systems for determining assessment characters |
US10255516B1 (en) * | 2016-08-29 | 2019-04-09 | State Farm Mutual Automobile Insurance Company | Systems and methods for using image analysis to automatically determine vehicle information |
CN110414496B (zh) * | 2018-04-26 | 2022-05-27 | 百度在线网络技术(北京)有限公司 | 相似字识别方法、装置、计算机设备及存储介质 |
CN112667831B (zh) * | 2020-12-25 | 2022-08-05 | 上海硬通网络科技有限公司 | 素材存储方法、装置及电子设备 |
CN114463766B (zh) * | 2021-07-16 | 2023-05-12 | 荣耀终端有限公司 | 一种表格的处理方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0790574A2 (en) * | 1996-02-19 | 1997-08-20 | Fujitsu Limited | Character recognition apparatus and method |
CN1482571A (zh) * | 2003-04-11 | 2004-03-17 | 清华大学 | 基于单个字符的统计笔迹鉴别和验证方法 |
JP2004246546A (ja) * | 2003-02-13 | 2004-09-02 | Ricoh Co Ltd | 画像処理方法、該方法の実行に用いるプログラム及び画像処理装置 |
US7072514B1 (en) * | 2003-02-06 | 2006-07-04 | The United States Of America As Represented By The National Security Agency | Method of distinguishing handwritten and machine-printed images |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379349A (en) * | 1992-09-01 | 1995-01-03 | Canon Research Center America, Inc. | Method of OCR template enhancement by pixel weighting |
GB2281997B (en) * | 1993-09-20 | 1997-10-15 | Ricoh Kk | Method and apparatus for improving a text image by using character regeneration |
US5970170A (en) * | 1995-06-07 | 1999-10-19 | Kodak Limited | Character recognition system indentification of scanned and real time handwritten characters |
US6208765B1 (en) * | 1998-06-19 | 2001-03-27 | Sarnoff Corporation | Method and apparatus for improving image resolution |
US6640010B2 (en) * | 1999-11-12 | 2003-10-28 | Xerox Corporation | Word-to-word selection on images |
US6741745B2 (en) * | 2000-12-18 | 2004-05-25 | Xerox Corporation | Method and apparatus for formatting OCR text |
US6751351B2 (en) * | 2001-03-05 | 2004-06-15 | Nsc Pearson, Inc. | Test question response verification system |
CN1426017A (zh) * | 2001-12-14 | 2003-06-25 | 全景软体股份有限公司 | 一种校对多个电子文件的方法及其*** |
DE60227643D1 (de) * | 2002-04-23 | 2008-08-28 | St Microelectronics Srl | Vwefahren zur Erfassung eines digitalen Bildsatzes mit hoher Auflösung |
JP4172584B2 (ja) * | 2004-04-19 | 2008-10-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 文字認識結果出力装置、文字認識装置、その方法及びプログラム |
US7480403B2 (en) * | 2004-11-16 | 2009-01-20 | International Business Machines Corporation | Apparatus, system, and method for fraud detection using multiple scan technologies |
-
2007
- 2007-09-07 KR KR20097007242A patent/KR101486495B1/ko active IP Right Grant
- 2007-09-07 EP EP07842090.8A patent/EP2074558A4/en not_active Withdrawn
- 2007-09-07 CN CN201110425054.9A patent/CN102637256B/zh active Active
- 2007-09-07 EP EP09168563.6A patent/EP2116971A3/en not_active Withdrawn
- 2007-09-07 WO PCT/US2007/077925 patent/WO2008031063A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0790574A2 (en) * | 1996-02-19 | 1997-08-20 | Fujitsu Limited | Character recognition apparatus and method |
US7072514B1 (en) * | 2003-02-06 | 2006-07-04 | The United States Of America As Represented By The National Security Agency | Method of distinguishing handwritten and machine-printed images |
JP2004246546A (ja) * | 2003-02-13 | 2004-09-02 | Ricoh Co Ltd | 画像処理方法、該方法の実行に用いるプログラム及び画像処理装置 |
CN1482571A (zh) * | 2003-04-11 | 2004-03-17 | 清华大学 | 基于单个字符的统计笔迹鉴别和验证方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2074558A1 (en) | 2009-07-01 |
CN102637256A (zh) | 2012-08-15 |
KR101486495B1 (ko) | 2015-02-04 |
KR20090058557A (ko) | 2009-06-09 |
EP2116971A3 (en) | 2013-07-31 |
EP2116971A2 (en) | 2009-11-11 |
EP2074558A4 (en) | 2013-07-31 |
WO2008031063A1 (en) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101542504B (zh) | 后光学字符识别处理中的形状聚类 | |
US7646921B2 (en) | High resolution replication of document based on shape clustering | |
US7650035B2 (en) | Optical character recognition based on shape clustering and multiple optical character recognition processes | |
US7697758B2 (en) | Shape clustering and cluster-level manual identification in post optical character recognition processing | |
US6950533B2 (en) | Sorting images for improved data entry productivity | |
US7529408B2 (en) | System and method for electronically processing document images | |
US8218872B2 (en) | Computer-readable medium storing information processing program, information processing method and information processing system | |
US8520941B2 (en) | Method and system for document image classification | |
CN102236800B (zh) | 经历ocr过程的文本的单词识别 | |
WO2006002009A2 (en) | Document management system with enhanced intelligent document recognition capabilities | |
US20090234867A1 (en) | Operation procedure extrapolating system, operation procedure extrapolating method, computer-readable medium and computer data signal | |
JP6357621B1 (ja) | 会計処理装置、会計処理システム、会計処理方法及びプログラム | |
CN102637256B (zh) | 后光学字符识别处理中的形状聚类 | |
US7694216B2 (en) | Automatic assignment of field labels | |
US20120320388A1 (en) | Relevance based print integrity verification | |
US7508986B2 (en) | Document recognition device, document recognition method and program, and storage medium | |
JP7484176B2 (ja) | 情報処理装置、情報処理システムおよびプログラム | |
JPH10134141A (ja) | 文書照合装置および方法 | |
EP3611664A1 (en) | System for optical character recognition (ocr) | |
US20200311493A1 (en) | Character recognizing apparatus and non-transitory computer readable medium | |
JP2022159774A (ja) | 画像処理装置、画像処理システム、その制御方法及びプログラム | |
CN115311671A (zh) | 一种纸质公文批量电子化的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Google limited liability company Address before: American California Patentee before: Google Inc. |