用于照相机获得的文件的低分辨率光学字符识别的制作方法

文档序号:6637217阅读:443来源:国知局
专利名称:用于照相机获得的文件的低分辨率光学字符识别的制作方法
技术领域
本发明涉及光学字符识别(OCR),并且更具体地说,涉及改进由低分辨率设备成像的文件的处理的光学字符识别软件。
背景技术
在电子设备方面技术的进步在于迅速地减小照相机的尺寸,重量,成本,以及功率消耗。从而,移动计算设备例如手机,PDA,以及笔记本计算机可以使用小的,便宜的,低分辨率的,现在被设计为它的子部件的数字照相机获得信息。这种便宜的并且多用途的照相机当前使在没有使用笨重的外围设备例如一个扫描仪的情况下很容易地拍摄各式各样的文件成为可能。从书和法律文件到票据和商业名片范围的文件现在可以在手机,PDA,和便携式计算机上被即刻拍照。
然而,这样拍摄的文件的光学字符识别(OCR)带来了不同的挑战。当使用台式计算机和相配的外围扫描器时,从纸转换为数字表示以及反向转换都是简单的。相反,适合于支持移动计算的技术的飞速发展,现在通过这种更为复杂的设备进行这种文件的成像。例如,当取消一个相配的外围设备时很清楚难以打印和扫描文件。移动式的打印机是笨重的,功耗大的,以及昂贵的。便携式的扫描仪同样也是不便利的。此外,这些低分辨率照相机,无论独立还是嵌入在一个移动计算设备中,都对这种拍摄文件的光学字符识别带来了一个新的挑战。传统打印的字符系统首先通过二值化所述图像,分割所述字符,然后识别所述字符来进行。因为这些系统分离了所述步骤,得到的是比期望的低得多的识别率由此减少了使用这种设备性能的动机。当使用这些低分辨率照相机时所述OCR处理更加被复杂化,因为不依赖于所述识别处理来进行属性二值化或者字符分割实际上是不可能的。在所述OCR引擎把以像素扫描的图像的像素组成字符的地方进行分割。
如果这样的一种移动技术现在能够具有捕获和处理所述文件数据的OCR能力,人们将使用其中的照相机拍摄许多不同类型,范围延伸至餐馆账单,有趣的物品,报告,封面,商业名片,屏幕镜头,投射到一面墙的幻灯片,地图等等的文件的图片是可能发生的。所述捕获多种文件的动力是高的,因为这样的数字文件可以随后被整体地存储,检索,存档,编辑,并且甚至退回打印,只要以电子表格的形式。另外,对于所述信息工作者,这提供了大量的机遇。
现在便宜的照相机(例如大约$50)没有提供足够的分辨率来在一个底片中捕获具有11点字体的整个文件页和独立于字符识别执行字符分割。低分辨率的照相机图像是如此的模糊和质量差以至于二值化,分割,以及识别都不能独立地执行,而仍然要保持高的识别率。例如,以低分辨率,和许多其它的在字母之间的这种分割相比,字符中间列的″o″通常是用于分割较好的候选者。人们在没有有效地提出所述分割问题的情况下不能期待良好性能。对低分辨率OCR的改进也有益于高分辨率照相机,因此允许用户从远处且在焦点外的地方照相。
这样,所需要的是可以分辨低分辨率符号的OCR能力。
发明概述下面提供简化的发明概述以便提供本发明一些方面的基本认识。这个概述不是本发明的广泛的概述。它没有想要标识本发明关键性的/决定性的特征或描绘本发明的范围。它的唯一目的是以一种简化的形式介绍本发明的一些概念作为在之后介绍的更多的详细说明的前奏。
本发明在这里公开并且要求,它的一个方面,包括通过结合机器学习技术(例如,回旋的神经网络),动态编程,和结合的语言模型同时解决这些问题的体系结构,为照相机获得的符号和文件实现低分辨率光学字符识别能力提供必要的步骤。以回旋的神经网络为基础并且根据大量数据训练使用机器学习方法促进了最大的稳固性。
本发明由几个部分组成,这几个部分合作来识别拍摄页面上的符号。基于回旋神经网络的字符识别器用来预测在所述输入图像中的给定位置很可能会出现什么字符。一个整体排版分析部件执行在所述页面上查找文本行的位置的任务,并且返回一列用于文本的这些行的边界矩形。所述排版分析器进一步地分解所述行成为单个的字,标明每个字的边界。把所有这些连接在一起的是所述字识别器,其在所述页面上的一个给定的矩形内部查找最可能的字。字识别是使用动态编程解决的最佳化问题。
在本发明的另一个方面,提供了一种直接从所述灰度级图像中检测文本行的算法。
为了实现前述和相关的目的,本发明的某些说明性的方面与下列描述以及附加的附图相结合在这里被描述。然而,这些方面是表示了各种方法中的仅仅一些,本发明的原则可以被使用在这些方法中,本发明意图是包括所有这样的方面以及它们的等价物。当和附图一起考虑时本发明其它的优点和新颖的特征从下列本发明的详细说明中将变得显而易见。
附图的简要说明附

图1根据本发明举例说明对于照相机获得的文件的低分辨率光学字符识别是一个整体最佳化框架的系统。
附图2举例说明本发明的低分辨率光学字符识别系统的一个主要操作的流程图。
附图3举例说明一个原始文件的样本和在使用照相机捕获之后成像的文件的样本。
附图4根据本发明举例说明预处理前后一个文件的样本文本和一个字。
附图5根据本发明举例说明用于预处理训练的一个方法。
附图6根据本发明举例说明一个用于产生标号数据的预处理的流程图。
附图7举例说明已经被扫描和定位到地面实况位图的样本文本。
附图8根据本发明举例说明一种用于排版分析的方法。
附图9根据本发明举例说明一个用于文本检测的方法的流程图。
附图10根据本发明举例说明一个表示文本检测滤波器的结果的图表。
附图11根据本发明举例说明一个与被加到所述照相机图像中的文本检测器的输出相比的原始的照相机图像,与在第二复制图上一样。
附图12根据本发明举例说明一个用于检测字母之间的间隔的处理的流程图。
附图13根据本发明举例说明用于使用间隔检测的行提取的处理的样本文本。
附图14根据本发明举例说明一个用于检测字间间隔的方法。
附图15根据本发明举例说明一个用于训练回旋的神经网络的执行过程的流程图。
附图16根据本发明举例说明一个用于使用基于回旋的神经网络的字符识别器识别字符的处理的流程图。
附图17根据本发明举例说明所述用于低分辨率打印的文本光学字符识别(OCR)的回旋的神经网络的图表。
附图18根据本发明举例说明一个用于所述回旋的神经网络的训练方法。
附图19根据本发明举例说明一个用于识别一个字的动态编程方法。
附图20根据本发明举例说明一个样本字分割。
附图21根据本发明举例说明一个动态编程表,其用于当没有使用语言模型时保存部分的动态编程问题的解决。
附图22根据本发明举例说明一个用于字典模型最佳化的样本动态编程表格,其被用于确定对一个特定的字中的字母的观察的一个最佳的分配。
附图23根据本发明举例说明一个基于特里(trie)结构的字典查找图表。
附图24根据本发明举例说明一个标点符号检测的方法。
附图25举例说明一个根据本发明的体系结构成像样本的结果。
附图26举例说明根据本发明的体系结构语言模型和被成像文本的一部分的对比。
附图27举例说明一个电脑可操作的执行所述公开的体系结构的方框图。
附图28根据本发明举例说明一个示范性的计算环境的图解的方框图。
发明的详细说明参考附图,现在将描述本发明,其中相同的参考数字一直用来参照相同的部件。在下面描述中,为了解释起见,阐述了许多的细节以便对本发明提供彻底的了解。然而,也许很明显,可以在没有这些细节的情况下实践本发明。在其它的情况中,以方框图形状显示公知的结构和设备以便简化描述本发明。
正如在这个申请中所使用的,术语″部件″和″系统″意图是涉及一个与计算机有关的实体,或者硬件,硬件和软件的组合,软件,或执行中的软件。例如,一个部件可以是,但是不局限于,在处理器运行的进程处理器,对象,可执行态,执行线程,程序,和/或电脑上。通过举例说明,在一个服务器上运行的应用程序和所述服务器两者都可以是一个部件。一个或多个部件可以存在于一个执行的进程和/或线程的内部,并且一个部件可以被定位于一台计算机上和/或被分布在两台或更多计算机之间。
正如在这里所使用的,术语″推断″或″推论″通常指的是根据经由事件和/或数据捕获时的一组观测推出或推断系统状态,环境和/或用户的处理。推论可以被使用以标识特定的上下文或动作,或者可以产生例如,关于状态的一个概率分布。推论可以是随机的-也就是说,基于对数据和事件的一种考虑,计算感兴趣的状态的一个概率分布。推论也可以指的是为了从一组事件和/或数据中组成高级的事件所使用的技术。根据一组已观测的事件和/或存储的事件数据这种推论产生新的事件的结构或者动作,无论是否所述事件是以紧密地暂时的近似方式相关,以及是否所述事件和数据来自于一个或者多个事件和数据源。
照相机获得的文件的光学字符识别当使用低分辨率符号和/或文件图像时本发明易于捕获并精确的光学字符识别(OCR)符号和文本。这种能力也获得包括降级符号,文本,和/或文件的方案的应用,其中介质已经以某种方式被损害或者被污染,并且所关联的符号更难以识别。
现在参考图1,根据本发明举例说明一个系统100,其是用于低分辨率照相机获得的文件的光学字符识别的一个整体最佳化框架。所述系统100通过同时结合至少一个回旋的神经网络102,一个动态编程部件104,和一个语言模型106解决了现有技术中的所述问题。这样,对于一个由所述系统100捕获和处理的文件108,识别率是非常高,生成的结果输出适于所述用户的数字表示110。
所述回旋的神经网络102可以通过重新使用在相邻位置的计算中的一个位置的部分结果在多个位置有效地计算一个分类函数。这是进一步地简化,因为一个神经网络可以处理一个灰度级输入。利用一个在大量数据上进行训练的机器学习方法提供一个稳固的系统。回旋的神经网络102被使用因为它在多个位置上有效地计算一个分类函数,使用大量训练的数据较好地定标,输出可以使它便于与隐藏的马尔可夫模型(HMM)算法结合的概率,并且它采用灰度级输入,其产生不必要的二值化。通过以不同的照明条件,字体,大小,照相机角度,聚焦,等等收集数据,所述机器学习算法执行构造一个对这些因素无变化的分类器的任务。
利用所述动态编程部件104解决字识别的最佳化。一个字识别器使用所述动态编程部件104确定哪个字位于一个通过排版分析返回的给定的字边界矩形处。动态编程通过积累一系列的初始问题的部分问题的最优解寻找对于一个问题的最优解。当确定总体的最优解时这促进了大部分用于寻找最佳的部分问题的计算的再次使用。
所述语言模型部件106简化字符以及字识别。
现在参考附图2,举例说明本发明的低分辨率光符识别系统的主要操作200的流程图。首先,执行一个预处理函数202以捕获一个文件图像为进一步地处理作准备。一个整体排版分析函数204执行在捕获的文件上寻找文本的行的位置的任务,并且返回一栏用于文本的这些行的边界矩形。然后所述排版分析器进一步地分解所述行成为单个的字,标明每个字的边界。使用字符识别器206来预测什么字符很可能出现在输入图像的一个给定的位置上。在一个执行过程中,基于回旋的神经网络的字符识别器用来简化字符识别和其它函数。将所有这些连接在一起的是一个字识别器208,其在所述文件上给定的矩形内部寻找最可能的字。字识别是一个使用动态编程解决的最佳化问题。
现在参考附图3,举例说明一个原始文件的样本300和在使用一个照相机捕获之后成像的文件302。所述成像文件302根据所述照相机的低分辨率性能显示出一个黑暗的背景色和模糊的文本。
预处理现在参考附图4,根据本发明举例说明在预处理前后一个文件的样本文本和一个字。一个被扫描的文件可以显示出许多的问题,这些问题当一个用户使用一个照相机(例如一个网络照相机)捕获所述文件时将是通常遇到的。例如,如果照相机太靠近所述文件,那么照相机就会相对于该文件表面具有不正确的旋转的和聚焦轴调整,以及不正确的或者不均匀的照明。旋转的调整导致在所述图像中文本的行不是完全地水平。当所述照相机不直着面对所述文件时视角的偏差引起了由于视角造成的变形。另外,由于相对质量差的光学桶形失真可能出现。一些照明问题通过使用适应的白色平衡算法预处理所述图像得到缓和,该白色平衡算法力求最大化所述图像中的区域或者块的局部的对比度。每当一个记录图像被提供给所述系统用于光学字符识别处理时这些处理可以被运行。
训练现在参考附图5,根据本发明举例说明用于预处理训练的一个方法。同时,为了简明解释起见,在这里介绍的一个或多个方法,例如,以流程图的形式,被显示和描述为一系列的动作,应该理解和领会本发明并没有受限制于动作的顺序,根据本发明,因为根据这里的显示和描述一些动作可以以不同的顺序和/或与其它的动作同时出现。例如,那些本领域中的技术人员将会了解和领会一个方法能够换句话说被表示为一系列的相关的状态或事件,例如在一个状态图中。此外,根据本发明不是所有举例说明的动作都可以被要求实现一种方法。
下列预处理不同于图4中的,由于只要初始化所述基于神经网络的系统它就被执行。在500,产生一个标记的数据。在502,神经网络字符识别器被训练。所述处理然后到达一个停止方框。为了训练所述基于神经网络的字符识别器,需要大量的标记的训练数据的语言资料库。这样的语言资料库能够通过具有一个人类注释扫描的页面,以及在所述页面上为每个字符标识所述位置和ASCII码来构造。然而,这可能是一个非常耗时的并且易于出错的处理。因此,提供一个半自动化的机构以产生所述标记的数据。
现在参考附图6,根据本发明举例说明一个用于产生标记的数据的预处理的流程图。所述本发明的数据获取系统由一个特殊的打印机驱动器和一个工具组成,该打印机驱动器为页面上的每一字符记录边界方框和字符码,该工具帮助这些边界方框和扫描的图像对准。在600,提供所述打印机驱动器。在602,用所述打印机驱动器处理所述文件。在604,地面实况数据(GTD)通过创造所述文件的一个高分辨率位图以及为所述文件上的每个字符记录几何信息来产生。所述文件以及所述高分辨率位图是″地面实况,″其中每个字符被正确地标记并且它的位置是已知的。在606,利用所述照相机系统打印和扫描所述高分辨率的位图。在608,将扫描的图像对准所述地面实况位图以便为扫描的页面上的每一字符取得所述位置。为了进行这个校正步骤,在610,对于在所述文件上的四点的每一个,扫描图像和地面实况位图之间对应的位置被标识。在612,为了把所扫描的图像变换为所述复制的图像,所述最适合的视角变换被计算。在614,如果必要的话,扫描的图像被扭曲,来校准所述复制的图像。所述处理然后到达一个停止方框。
不幸地,使用一个视角变换来调整扫描的图像并不是总能足够将所述边界方框对准所述被扫描的字符。为了改进所述匹配,通过在每个方向上达到五个像素使每个字符被转化,并且使用最小二乘方距离测量来记录所述最佳匹配。然后对于每个训练实例,所对应的偏移的边界方框被用作在所述扭曲的,扫描的图像中的位置。
现在参考附图7,举例说明已经被扫描以及被与地面实况位图对准的样本文本。所显示的,是使用所述视角变换(如附图6中描述的)来将所述字符边界方框对准所述扫描的图像的结果。将所扫描的文本700与所述地面实况数据702对准。
排版分析现在参考附图8,根据本发明举例说明一个用于排版分析的方法。在800,接收一个通过照相机成像的文件。在802,排版分析在所述页上通过寻找所述字,行,以及列检测文本的排版。使用行信息,所述沿着行的字符可以被分割,定标,以及被表示为一个字符分类算法,如在806所表示的。所述处理然后到达一个停止方框。在扫描的图像中,这类排版分析可以使用简单的,然而可信赖的图像处理操作诸如连通分量分析进行。这些连通分量然后被用作基本的输入给所述排版处理。
正如先前所表示的,从一个办公室环境中的照相机捕获的记录图像完全不同于在一个外围计算装置诸如一个扫描仪上的记录图像。所述用于照像的灯光是不受控制的导致了对比度和亮度的大量变化。这些变化对于简单的文本检测算法提出了一个挑战。当输入时连通分量分析需要一个二进制映象(即黑和白)作为输入。因此,可能很难构造一个适合的阈算法,其可靠地从所述背景纸中区分所述文本。当其它文本被合并成为非常大的字符块时,在对比度和亮度两者中的变化可以致使一些文本消失成为所述背景。
现在参考附图9,根据本发明举例说明一个用于文本检测方法的流程图。在一个执行过程中,文本检测如下进行。在900,两个线性的滤波器被用于输入图像中的每个位置。在902,每个滤波器被分配一个阈值。值在这些阈值之上的位置被称作″文本″,那些下面的是″非文本″。在904,通过两个滤波器被确定为是文本的位置被使用和保留为可能的文本区域。所述处理然后到达一个停止方框。
在一个执行过程中,所述阈值用实验方法确定(100和6000,用于七个像素高的行和一个像素间隔的字符)。在另一个执行过程中,附加的特点可以被结合并且所述阈值可以使用″辅助程序″被自动地计算。辅助程序是一个用于改进任何学习算法的性能的一般的方法,其不断地产生分类器,该分类器需要仅仅比随机猜测稍微多的执行。
现在参考附图10,根据本发明举例说明一个图表1000,其表示所述文本检波滤波器的一个结果。第一滤波器在文本″Now is″上操作以获得字符之间的间隔。这里,在所述字母″o″和″w″之间检测间隔。第二滤波器在同一个文本上操作以获得所述相关的行。因此,第二滤波器检测超过和低于所述字″Now″的空间。
现在参考附图11根据本发明举例说明一个与被加到所述照相机图像中的文本检测器的输出相比的原始的照相机图像1100,与在第二复制图1102上一样。第二复制图的白色区域表示检测的文本。
现在参考附图12根据本发明举例说明一个用于检测字母之间间隔的处理的流程图。结果是两个滤波器大略地检测字符之间的间隔,正如在1200中所表示的。在1202,根据″间隔像素″计算连通分量(CC)分析。在1204,根据作为结果的″间隔连通分量″执行排版分析。然后通过测验它们的相对几何关系来对所述间隔连通分量进行分组,如1206所表示的。例如,如果间隔连通分量相对的为同样大小并且,是水平地靠近并成一直线,就检测到一行。所述测试使用稳固统计量,诸如当前行中的连通分量的正中的高度和宽度,并且所述算法执行多遍。在1208,通过越来越大的组的连通分量以及通过许多文件来确定阈值。所述处理然后到达一个停止方框。
由于根据越来越大的组的连通分量收集所述统计量,因此分组的测试更进取地的进行。通过许多文件的语言资料库试验性地确定所述阈值。给定间隔连通分量,行检测步骤对于比例和字母是无变化的,因为仅仅比较间隔连通分量的边框的相对位置。
现在参考附图13,根据本发明举例说明用于使用间隔检测为进行行提取处理的样本文本1300。实质上,所述系统用一个有界的矩形限定文本的被检测的行。在这两栏文件中,行检测导致每一栏的每一检测的行都用边界矩形进行限定。如果它是单独一栏文件,伸展横跨所述页面的文本的每一行将要用边界矩形进行限定,表明所述行被检测。
现在参考附图14,根据本发明举例说明一种用于检测字间间隔的方法。在1400,文本的行被检测。在文本的行已经被检测之后,这些行被进一步地分割为页面的多个区域,该页面包含所述文件中的每一个字,如在1402中所标明的。确定每一行中字间间隔的位置,并且使用这些间隔来分割行,如在1404中所标明的。为了查找所述间隔,检测到贯穿行的边框的空白的垂直栏。在1406,如果在那栏中的所有像素都比一些阈值明亮,那么这栏分类为空白。通过穿越当前行的中间交叉扫描一水平分层,沿着这个扫描线查找像素的最低和最高亮度值,并且由此计算一个阈值来确定所述阈值。在一个执行过程中,一个明亮度大于(最低明亮度+3*最高明亮度)/4的像素,被分类为一个空白像素。在1408,然后所述间隔控测器交叉扫描文本的行来检测空白像素栏,并且使用这些间隔位置将所述行分为多个字。在1410,然后所述字被发送给所述字符识别器。所述处理然后到达一个停止方框。
字符识别器现在参考附图15,根据本发明举例说明用于训练一个基于回旋的神经网络的字符识别器的处理的流程图。在所述低分辨率光符识别系统的核心处是所述基于回旋的神经网络的字符识别器。在1500,提供第一回旋的层以用高分辨率提取简单特征。在1502,提供第二回旋的层以用不精确的分辨率将所述简单特征转换成为复杂特征。在1504,提供两个附加的完全连接的层以形成一个用于学习的多用途的分类器。在1506,四个层被同时训练。在1508,训练所述网络以最小化交叉熵。所述处理然后到达一个停止方框。
现在参考附图16,根据本发明举例说明所述用于低分辨率打印的文本的光学字符识别的回旋的神经网络1600的一个图表。一个回旋网络的一般策略是以高分辨率提取简单特征,然后以不精确的分辨率将所述简单特征转换成更为复杂的特征。一种产生不精确分辨率的方法是通过两个特征中的一个对一个层作二次抽样。所述网络1600包括一个具有用于接收数据的29×29像素的感受范围的输入图像1602。第一层1604一般提取非常不精确的特征诸如X和Y导数,低通和X-Y导数。第一层1604使用五个13×13像素特征检测器神经元(或者映射表)扫描所述输入图像1602。因为所述特征是根据所述数据学习的,直到训练已经完成为止很难预测它们将实际上产生什么。第二回旋层1606以不精确的分辨率提取更加复杂的特征。第二层1606使用五十个5×5像素特征检测器神经元扫描第一层1604的输出。特征的数目并不是关键性的,只要存在足够传送所述信息给分类层(1608和1610)的特征即可。在这一点上,该特征很难解释因为它们被分配在若干单元上。假设该特征是循环,交集,曲率等等。第一二层(1604和1606)可以被看作为一个可训练的特征提取器。后面二层(1608和1610)被完全地连接,并且可以被看作为形成了一个多用途的分类器,因为一个2层完全连接地神经网络可以学习任何函数。四个层(1604,1606,1608,和1610)被同时训练。然后训练所述网络1600以最小化交叉熵。
上述的使用这个回旋的体系结构的经验表明在一个执行过程中,用于所述第一回旋层1604的五个特征和用于第二回旋层1606的五十个特征的选择适用于大范围的基于图像的字符识别,包括本发明的低分辨率打印的光学字符识别。在这个执行过程中,为了完全地连接层(1608和1610)使用了七十六个输出单元和七百六十个隐藏单元。隐藏单元的数目是可变的,并且通过控制这个数目,全部分类器的容量和通用化得到控制。然而,本领域中的一个技术人员应该理解为了进一步地最佳化可以使用其它值。
现在参考附图17,根据本发明举例说明一个用于使用基于回旋的神经网络的字符识别器识别字符的处理的流程图。在1700,提供一个训练的神经网络。在1702,输入一个字符图像的位图。在这种情况下,所述位图是29×29像素的感受范围。在1704,所述网络输出一列概率,其表明由所述图像表示的最可能是什么字符。所述处理然后到达一个停止方框。
现在参考附图18,根据本发明举例说明一种用于所述回旋的神经网络的训练方法。在1800,所述系统通过从一个训练图像的数据库中获取实例字符来进行训练。接下来,在1802,所述训练图像被随机地散开在所述输入窗口内。在1804,所述训练图像的明亮度和对比度被随机地改变。在1806,对于训练的每个时期(或者整套模式的曝光),每个字符的一个随机地散开和调整的对比度的实例提供给所述网络。然后所述处理到达一个停止方框。在一个执行过程中,所述训练用数据库包含取自文件文本的十五页的57,555个字符。
字识别器现在参考附图19,根据本发明举例说明用于识别一个字的动态编程方法。所述字符识别器提供,在每个位置,对于将会显示的并且集中于所述神经网络的输入窗口的每个字符的概率。所述排版分析器在所述页上标识每个字的边界矩形。不幸地是,在所述页上单个字母的位置是未知的,因此,字符识别器的中心经由每个字符以读出它的最好的猜测是不可能的。甚至,字符识别器将恰当地报告对于任何给定的位图哪一个字母′是最可能的,不管它实际上是否是一个字母。
在1900,在输入到所述字识别器时字符识别器的一系列观测被接收。通过扫描穿过所述字并且在每个可能有效的字符位置调用所述字符识别器来产生所述观测。在1902,有效的字符位置被定义。为了定义所述有效的字符位置,所述系统将字分割成为小块,或者间隔,该间隔被设置为供一个字符用的最小可能的尺寸,如在1904所显示的。在一个执行过程中,所述间隔有两个像素宽。因为所述字被分成表示用于一个字符的最小可能的尺寸的间隔,多个间隔(例如,合并直到四个间隔)可能需要被连接在一起以查找一个表示字母的组合的间隔序列,如在1906所显示的。在1908,用字符识别器的结果填充一个表用于所有的有效的间隔序列。然后在1910,所述字识别器努力使这个识别器输出的序列和一个特定的字一致。所述处理然后到达一个停止方框。
所述字识别器使用一个动态编程算法确定哪个字位于一个由排版分析步骤返回的给定的字-边界矩形中。动态编程对于一个问题通过积累一系列用于所述初始问题的子问题的最佳的解答来寻找最佳的解决方案。当确定总体最优解时,其允许大部分用于查找最佳子问题的计算的再次使用。
现在参考附图20,按照本发明举例说明一个样本字分割2000。所述小的散列符号2002表明所述用于分割一个字的间隙尺寸。所述大的散列符号2004表明实际地被用于在字″private″和″certainly″中的每一个字母的间隔。
语言模型在一个执行过程中,所述字识别器没有内含的特定的语言模型(语言中性的),但完全努力产生字符识别器观测的一个序列的最可能的解释。这个识别器使用一个简单的1维的动态编程算法,其中所述将被最大化的目标函数仅仅是所述字符得分的和。所述字符得分是关于最可能的字符(正如由所述字符识别器返回的)的概率,乘以一个换算系数,该换算系数取决于最可能字符的平均宽度和所述正在为这个字符考虑的图像的一部分的宽度有多少不同。在所述动态编程表中的每个单元包含用于所述解决方案的终点的字母,返回到之前字母的链接和所述迄今为止累积的用于解决方案的得分。通过在后面从上次入口穿过所述表进行跟踪,来还原所述(反向的)最可能的一行。
现在参考附图21,根据本发明举例说明一个动态编程表,该表被用于保存一个当没有使用语言模型时动态编程问题的部分解。一般地,动态编程通过填写在一个表中来进行,其中在所述表中的每个单元表示所述初始问题的一个子问题。例如,假定有一个(1维的)表2100,被用于保存一个动态编程问题的部分解。所述表2100包含一个单元2102用于所述输入序列中的每个间隔。这些单元2102中的每一个表示一个终点,其是用于在所述相应于那个单元的间隔处的字尾的一部分的最优解。每个解决方案按照一个小的子问题的最优解来表示(如通过所述相关的箭头所指示的)。在这些例子中,所述字被认为是″FOOD″。在所述表2100中每个单元2102包含那个特定子问题的适当的一个测量和一个回到上一单元的指针,其表示用于先于这个字母的字的一部分的最优解。当所述表2100已经被完全填满时,最后的单元2104表示用于所述全部的观测值序列的最佳的字。
现在参照附图22,根据本发明举例说明一个用于一个字典模型最佳化的样本动态编程表2200,其被用于确定对于一个特定的字中的字母的观测值2202的一个最佳的分配。在一个执行过程中,所述字识别器努力找出从字的字典当中哪个字是最可能和一个给定的输入图像相称的。如果在所述词典中没有十分似乎可能的字来描述所述图像,所述系统求助于之前的一个方法。
在第一执行过程中,一个基于字典的识别器的方案被使用,其仅仅线性地扫描穿过整个的词典,估计每个字的概率,并且输出最可能的字。第二执行过程描述了一个可供选择的机构,其允许将所述动态编程最佳化与所述字典遍历交错以更快的计算最可能的字。
在这个问题中,在所述动态编程表2200中的每个列表示在所述输入序列中终止于一个特定位置(间隔)的子问题,并且所述表的每一行表示一个来自所讨论的字的字母。在表格2200的列c和行r的条目表示在间隔c处一个部分识别的字尾,并且以由行r表示的字母结束。保存在这个表格位置中的是回到之前字母的指针和字母于此结束的间隔,以及累积的得分。
一个类似的得分方法用于字识别器的第二执行过程-观测匹配由当前的单元暗含的字母,调节取决于所述字符的间隔宽度和平均宽度的换算系数的概率。此外,所述累积的得分是用于所述当前单元的得分加上用于表示上述部分答案的单元的累积的得分。一旦填写表格已经完成,所述字的最佳的得分被保存在最后的(上右方)单元中。然后通过除以这个字中的字母的数目来标准化这个得分。在没有这个标准化的情况下,具有相对贫乏地得分字母的长字能够积累高分并且击败那些具有很好的字母得分的短字。因此,希望对于每一字母都使所述得分达到最大值。
因为在字典中的许多字和其它的字共用前缀,因此通过为每个字计算这个共享信息会存在着重复工作。例如,考虑使用一个动态编程表格以查找字″FOOL″的得分。它具有和上述的″FOOD″例子相同的前三行。因此,一种方法是希望当计算具有共同前缀的字的得分时共用这些相同的行。
注意一些单元不需要被填写,因为对于除了第一个的任意字符占有第一个间隔是不可能的,并且每个字母仅仅能够对截至四个间隔负责。所述最佳路径通过沿着具有最高观测值的单元移动的箭头来表示。
现在参考附图23,根据本发明举例说明一个基于特里结构的字典查找图表2200。一个特里结构(来源于数据检索)是一个用于存储字符串的数据结构或k元的位置树结构,其中为每个共同的前缀存在一个节点。字符串被保存在额外的叶节点中。特里结构用来实现一个字典抽象数据类型(ADT),其中像置零,检索,插入,和删除的基本操作能够被执行。它们能够用于编码和压缩以及,正规表达式的检索和近似的字符串匹配。
一种解决方案是每次字典被遍历时创建和评估表格2200(附图22)的一行。为了以最大化再次使用的计算的数量的次序遍历所述字典,所述字典被设置成为特里结构2300。在特里2300中的任何节点2302或者表示部分的字或者表示完整的字(或者,两者-“fool”是一个字并且也是″foolish″的前缀)。当所述字典特里结构被遍历时,所述动态编程表格正在被构造。当访问一个节点时,一个新的″行″2304被创建用于这个虚拟的表格2300,其相当于由那些特里结构中的节点表示的字母,并且所述行用所述得分填写。
因此,作为结果的特里结构2300具有一个最高级的″F″节点,该节点与图22的字典表格2200的″F″行的值相关。向下遍历,第二节点(第一″O″节点)具有相关的表格2200的第一″O″行。继续移动,第三节点(第二个″O″节点)具有来自于表格2200中的与此相关的对应的行。第三节点具有相应于字″FOOD″的″D″节点的第一分支和相应于字″FOOL″的″L″节点的第二分支。″D″节点与来自表格2200的″D″行有关。类似的,可是产生了下一行的评价并且与″L″节点有关。
注意需要这个操作的上下文仅仅是前一行,其作为一个参数被传给了所述递归的特里结构遍历程序。如果所讨论的节点表示一个全字,在所述行中的最后的条目能够被观察以求出在那个字中的字母的得分的和。此外,字母得分的和除以字的长度以得出最后的字的得分。当所述特里结构遍历结束时,遇到的最高得分的字被返回。
存在一些极大加速所述计算的试探优化。首先,仅仅访问从很可能是所述字的初始字母的字母开始的字。这个最佳化在速度方面提供了好几倍的增大,尤其用于从生僻的字母开始的字。另一个加速来自于修剪所述检索以便在不可能形成高的得分的字的特里结构中的链接不被追随。如果在一个给定的节点(在所述列的最后条目中的值,除以字母的数目)字前缀的字母的平均分劣于一些阈值,假定所述字的剩余字母的得分不管多好,它们决不会好到足以使平均值击败迄今为止看到的最好的字。在没有显著地妥协于所述结果的情况下第二最佳化在速度方面提供了显著的增大。
标点符号对于基于字典的字识别器引起了一个问题,因为具有拖尾的标点符号的字可能不出现于所述词典中。现在参考附图24,根据本发明举例说明一个标点符号检测的方法。在识别位置的一个序列被传给所述字识别器之前,所述系统确定所述字的末字符是标点符号的可能性,如在2400所标明的。如果是这样的话,所述字符识别器用来标识所述特定的标点符号。为了确定是否所述末字符是标点符号,所述系统检查对于每个可能的末字符位置的最可能的字符,如在2402所标明的。在2404,对于每个最可能的字符产生一个得分。在2406,每个得分与一个预定的阈值相比。在2408,系统确定是否所述得分已经超过了所述阈值。如果在这些字符识别器输出之中的最高分超过一个阈值,流程图进行到2410并且也考虑是否所述字符很可能是标点符号。如果两者都是,流程图进行到2412其中假定一个加标点的字。所述字的剩余部分然后被发送给所述基于字典的识别器,如在2414所标明的。在2416,然后所述标点符号被添加给所述字识别器的结果。所述处理然后到达一个停止方框。如果所述得分没有超过所述阈值,或者如果它超过了,但其是不被考虑的标点符号,流程图从2408和2410进行到所述停止方框。
现在参考附图25,举例说明根据本发明的体系结构的一个成像的样本2502的结果2500。所述处理通过一个用户界面变得更为方便,该用户界面产生一个窗口2506,用于观察成像文本2502和处理结果2500的并行的对比。在这个例子中,所述系统正确地光学字符识别118个字符和标点符号的104个。如果用连字符号连接被忽略,在其中相关的字片段不在所述字典里,所述结果会更好。在这个特定的界面中,所述用户能够在无语言模式,频率模型,和字典模型之间进行选择。
现在参考附图26,举例说明根据本发明的体系结构语言模型和成像文本的一部分的对比。在左边,使用所述字典模型,并且示出了比在右边示出的高的多的识别率,在右边示出的没有使用模型。
分类器如在上文所指出的,主题发明能够基于执行主题发明的各个方面的方案使用各种的人工智能。例如,一种用于确定阈值的处理能够经由一个自动的分类器系统和处理变得更为方便,其中该阈值用于确定是否一个字符是标点符号。
一个分类器是一个将输入的属性向量,x=(x1,x2,x3,x4,xn)变换为所述输入属于一类的置信度的函数,即,f(x)=置信度(类)。这种分类可以使用概率和/或概率的分析(例如,因数分解成为分析实用程序和费用)来预测或者推断一个用户希望自动执行的操作。
一个辅助向量机(SVM)是能够被使用的分类器的一个例子。所述SVM通过在可能的输入的间隔中查找一个超曲面来进行操作,其中该超曲面设法从所述非触发事件中分裂所述触发器标准。直观地这使得分类作测试数据的校正,该测试数据接近而不是等同于训练数据。其它的定向的和不定向的模型分类方法包括,例如,na ve Bayes,贝叶斯定理的网络,决策树,并且可以使用提供独立的不同类型的随机的分类模型。如这里使用的分类也包括统计的回归在内,该统计的回归被用于发展优先的模型。
与从主体说明书容易理解的一样,所述主体发明可以使用明确的受过训练的分类器(例如,通过一般的训练数据)以及隐含的受过训练的分类器(例如,通过观察用户行为,接收外在的信息)。例如,SVM经由一个在分类器构造器和特征选择模块内的学习或训练阶段而配置。因此,所述分类器(多个)可用于自动地执行多个函数,包括而不是仅限于以下确定所述文件的大量的上下文以便更好的分辨所识别的符号;并且执行双字母组,三字母组,等等的增加当前的字是正确的的概率的处理。例如,如果所述字被开始识别为″wosd″,上述的或随后的字(双字母组)还可以被处理。如果随后的字是processor,″wosd″更可能的应该为″word″。
在另一个执行过程中,所述字内容能够被分析以促进所述识别率。例如,如果所述字是money,并且后面的被识别的字是securities,于是推论被产生,所述内容可以被处理为finances,securities,等等。因此,所述系统能够自动地启用包括术语和/或与分辨这种术语相关的能力的一种或多种语言模型。此外,这种语言模型模块化易于简化数据必要条件,因为如果所述使用了新颖的体系结构的计算装置被主要地利用在一个金融环境中,仅仅这种语言模块(多个)需要被安装在所述设备中或在该设备中变得可利用。这和提供一种包罗万象的语言模型形成对比,该语言模型可能过度地负荷安装了它的设备的存储能力和/或处理能力。
在另一个执行过程中,所述分类器能够被使用以估计将被分辩的符号的数目,并且推断,如果符号的数目是两个,例如,所述字更加可能的是一个代词或冠词。因此,这种关联字预处理能够在其它的语言模型将要被启用之前被使用。
所述分类器还可以用来自动地调整所述被用来确定标点符号,及其它将被识别的符号的阈值。这个调整能够根据在光学字符识别处理中正确识别的内容来进行。也就是说,存在一个根据历史自动地影响所述阈值的反馈机制。
所述阈值还可以根据所述内容的重要性自动地调整。例如,当所述光学字符识别处理进行时,如果确定识别的字正变得越来越与合法的合同文件相关,所述分类器能够导致所述系统提高所述阈值以改进所述精确性(例如也用于病历),并且甚至重新运行所述处理,如果想要的话。但是,如果所述内容被确定为与一个杂货店目录更相关,当所述光学字符识别处理继续时所述阈值能够被放松。
对于所述分类器的许多其它的运用包括根据符号的大小,标点符号的类型,句子的长度,与它的在一串符号中的位置有关的符号的类型,等等产生推论。
注意所述新颖的体系结构没有局限于使用一个回旋的神经网络用于字符识别。任何人能够使用一种在每个关于所述文件的位置上计算或完全地分类所述结果的处理,并且在没有回旋处理的情况下进行动态编程。然而,在一个较少稳固的执行过程中,这能够影响系统性能。
现在参考附图27,举例说明一个计算机可操作的执行所公开的体系结构的方框图。为了提供用于本发明各个方面的附加的上下文,附图27及下列讨论意图是提供一个适当的计算环境2700的一个简短的,一般说明,在该计算环境中本发明的各个方面能够被实现。虽然本发明已经在一般的可以在一个或多个计算机上运行的计算机可执行指令的上下文中进行了如上的描述,那些本领域中的技术人员将要认识到本发明也能够与其它的程序模块结合和/或作为一个硬件和软件的组合来实现。
通常,程序模块包括例行程序,程序,部件,数据结构,等等,其执行特定的任务或实现特定的抽象数据类型。此外,那些本领域中的技术人员将会理解本发明的方法能够用其它的计算机系统结构来实践,其中其它的计算机系统结构包括单一的处理器或多处理器计算机系统,小型计算机,主计算机以及个人电脑,手提式的计算装置,基于微处理器的或可编程的消费电子产品,等等,其中每个都能够被可操作的耦合到一个或多个相关的设备上。
本发明举例说明的方面也可以在分布式计算环境中被实践,其中由通过一个通信网络连接的远程处理设备执行某些任务。在一个分布式计算环境中,程序模块能够既位于本地的又位于远程的存储器存储设备中。
一个计算机一般包括各种计算机可读的介质。计算机可读的介质可以是任何可用的介质,该介质能够通过计算机访问,并且包括易失性的和非易失性的介质,可移动的和不可移动的介质。举例来说,而不是限制,计算机可读的介质可以包含计算机存储介质和传播介质。计算机存储介质包括以任何方法或技术实现的易失性的和非易失性的,可移动的和不可移动的介质用于存储信息诸如计算机可读指令,数据结构,程序模块或其它数据。计算机存储介质包括但是不局限于,随机存取存储器(RAM),只读存储器(ROM),电可擦可编程只读存储器(EEPROM),闪速存储器或其它存储器技术,光盘(CD-ROM),数字化视频光盘(DVD)或其它光盘存储,磁带盒,磁带,磁盘存储器或其它磁存储器,或任何其它可用于存储所希望的信息以及可以由计算机访问的介质。
传播介质一般包含计算机可读指令,数据结构,程序模块或在一个已调数据信号诸如一个载波中的其它数据或其它传送机构,并且包括任何信息传输介质。所述术语″已调数据信号″指的是一种具有一个或多个它的特征集合或用这样一种以便编码所述信号中的信息的方式改变的信号。举例来说,而不是限制,传播介质包括有线的介质诸如有线网络或直接有线连接,以及无线介质诸如声波,射频RF,红外线及其它无线的介质。上述任何的组合应该也被包括在计算机可读介质的范围内。
再一次的参考附图27,举例说明用于实现本发明各个方面的一个示范性的环境2700,包括一个计算机2702,计算机2702包括处理单元2704,系统存储器2706以及系统总线2708。系统总线2708将系统部件包括但不限于,系统存储器2706耦合到处理单元2704。处理单元2704可以是任何各种的市场上买得到的处理器。双重的微处理器及其他多处理器体系结构也可以被用作为所述处理单元2704。
所述系统总线2708可以是任何若干种类的总线结构,其可以使用任何各种各样的市场上买得到的总线体系结构进一步地互连到一个存储器总线上(具有或者不具有一个存储器控制器),一个外围总线上,以及一个本地总线上。系统存储器2706包括只读存储器(ROM)2710和随机存取存储器(RAM)2712。一个基本输入/输出系统(BIOS)被存储在一个诸如只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器之类的非易失性存储器2710中,其BIOS包含基本的,例如在启动期间,帮助计算机2702内的元件之间传送信息的例行程序。所述随机存取存储器2712还可以包括一个高速随机存取存储器例如用于高速缓存数据的静态随机存取存储器。
计算机2702进一步地包括一个内部的硬盘驱动器(HDD)2714(例如,EIDE,SATA),在一个适当的机箱中(未示出)中内部的硬盘驱动器2714也可以被配置为外用的,一个磁性的软盘驱动器(FDD)2716,(例如,由此读出或写入到一个可移动的磁盘2718中)和一个光盘驱动器2720,(例如,读取一张CD-ROM光盘2722或,由此读出或写入到其它大容量的光学介质例如DVD中)。硬盘驱动器2714,磁盘驱动器2716和光盘驱动器2720可以分别通过硬盘驱动器接口2724,磁盘驱动器接口2726和光盘驱动器接口2728被连接到所述系统总线2708上。用于外部驱动执行的接口2724包括至少一个或两个通用的串行总线(USB)和IEEE1394接口技术。
驱动器和它们关联的计算机可读介质提供给非易失存储器数据,数据结构,计算机可执行指令,等等。对于计算机2702,所述驱动器和介质提供具有适当数字格式的任何数据的存储。尽管上述的计算机可读介质的描述涉及了硬盘驱动器,可移动的软磁盘,和可移动的光学介质例如CD或DVD,那些本领域中的技术人员应该理解其它类型的通过一个计算机可读取的介质,例如压缩驱动器,磁带盒,快擦写存储卡,盒式磁带等等,也可以用于所述示范性的操作环境中,并且进一步地,任何这种介质可以包含用于执行本发明方法的计算机可执行指令。
多个程序模块可以被存储在驱动器和随机存取存储器2712中,包括操作系统2730,一个或多个应用程序2732,其它程序模块2734以及程序数据2736。所述操作系统应用程序,模块,和/或数据的所有或部分还可以被高速缓存在随机存取存储器2712中。
应当理解本发明可以用各种的市场上买得到的操作系统或操作系统的组合来实现。
一个用户可以通过一个或多个有线/无线的输入装置,例如键盘2738和指示设备,诸如鼠标2740将命令和信息输入到计算机2702中。其它的输入装置(未示出)可以包括扩音器,红外的遥控,操纵杆,游戏键盘,记录笔,触摸屏等等。这些及其它输入装置经常通过一个输入设备接口2742被连接到所述处理单元2704,该接口被耦合到系统总线2708上,然而可以通过其它接口诸如并行端口,IEEE1394串行端口,游戏端口,USB端口,红外的接口等等进行连接。
一个监视器2744或其它类型的显示设备也经由一个接口,诸如一个视频适配器2746连接到所述系统总线2708上。除所述监视器2744之外,计算机一般包括其它的外围输出设备(未示出),诸如扬声器,打印机等等。
计算机2702可以在一个网络环境中进行操作,该网络环境经由有线和/或无线通信使用逻辑连接到一个或多个远程计算机,诸如远程计算机(多个)2748上。所述远程计算机2748可以是一个工作站,一个服务器计算机,一个路由器,一个个人计算机,便携式计算机,基于微处理器的娱乐装置,一个窥视设备或其它公用网络节点,并且一般地包括相对于所述计算机2702描述的许多或所有的元件,尽管,为了简洁起见,仅仅举例说明了一个存储器存储装置2750。所描述的逻辑连接包括到一个局域网(LAN)2752和/或较大的网络,例如,广域网(WAN)2754的有线/无线连通性。这种局域网与广域网连网环境在办公室和公司中是普遍现象,并且便于组织广阔的计算机网络,诸如内部网,所有的都可以连接到一个全球通信网络,例如,因特网中。
当用于一个局域网连网环境时,计算机2702通过一个有线和/或无线通信网络接口或适配器2756被连接到所述局域网络2752上。适配器2756可以便于与所述局域网2752进行有线的或无线的通信其也可以包括一个无线的在其上处理的用于和无线的适配器2756通信的存取点。当用于一个广域网连网环境时,计算机2702可以包括一个调制解调器2758,或被连接到所述局域网上的一个通信服务器上,或具有其它的用于经由广域网2754,诸如经由因特网建立通信的装置。调制解调器2758,其可以是内部的或外部的以及有线的或无线的设备,经由串行端口接口2742连接到所述系统总线2708。在一个网络环境中,相对于计算机2702描述的程序模块,或它的一部分,可以被存储在所述远程存储器/存储装置2750中。将要理解示出的网络连接是示范性的并且在计算机之间建立一个通信链路的其它装置可以被使用。
计算机2702可操作的和以无线通信方式可操作处理的任何无线设备或实体通讯,例如,打印机,扫描器,台式和/或便携式计算机,便携式的数据助理,通信卫星,与无线可检测的标记(例如,亭子,报摊,休息室)有关的任何一种设备或位置,和电话。这至少包括Wi-和Fi和BluetoothTM无线技术。因此,所述通信可以是一个就象传统的网络一样的预先确定的结构或简单的在至少两个设备之间的特别通信。
Wi-Fi,或无线保真度,允许在没有电线的情况下从在家的床上,在饭店房间中的床上或在工作处的会议室中连接到所述互联网。Wi-Fi是一种像蜂窝式便携无线电话一样的无线技术,该无线电话使这种诸如计算机之类的设备能够发送和接收室内和室外的数据;在一个基站范围内的无论何处。Wi-Fi网络使用称作IEEE 802.11(a,b,g等等)的无线电技术来提供安全的,可靠的,牢固的无线连通性。Wi-Fi网络可用于将计算机彼此连接,连接到互联网,以及连接到有线网络(其使用IEEE 802.3或以太网)。Wi-Fi网络以未经当局许可的2.4和5千兆赫无线电频带方式操作,具有11兆比特每秒(802.11b)或54兆比特每秒(802.11a)数据速率或具有包含两个频带(双重频带)的产品,因此所述网络可以提供类似于被用于许多办公室中的基本的10BaseT有线的以太网的现实性能。
现在参考附图28,根据本发明举例说明一个示范性的计算环境2800的示意性的方框图。所述系统2800包括一个或多个客户2802。所述客户2802是硬件和/或软件(例如,线程,进程,计算装置)。所述所述客户2802可以例如,通过使用本发明嵌入cookie应用程序和/或关联的上下文信息。所述系统2800也包括一个或多个服务器2804。服务器2804也可以是硬件和/或软件(例如,线程,处理,计算装置)。服务器2804可以例如,通过使用本发明嵌入线程来执行变换。在客户2802和服务器2804之间一个可能的通信可以采用数据包的形式,该数据包适合于在两个或更多个计算机处理之间被传送。所述数据包可以包括一个cookie应用程序和/或关联的上下文信息,例如。所述系统2800包括一个通信结构2806(例如,一个全球通信网诸如所述互连网),其可以被使用以易于在客户2802和服务器2804之间的通信。
经由有线(包括光纤)和/或无线技术通信可以变得更为方便。客户2802被可操作的连接到一个或多个客户数据存储2808上,其可以被使用以存入对于客户2802本地的信息(例如,cookie应用程序和/或关联的上下文信息)。类似地,服务器2804被可操作的连接到一个或多个服务器数据存储2810上,其可以被使用以存入对于所述服务器2804本地的信息。
如上已经描述的内容包括了本发明的多个例子。当然,对描述本发明来说描述每个可以想象的部件或方法的组合是不可能的,但是本领域中的一个普通的技术人员可以认识到本发明的许多进一步地组合和置换都是可能的。因此,本发明意图是包含所有的落入附加的权利要求的精神和范围内的诸如此类的变更,修改和变化。此外,在这样的范围内术语″包括″用于详细的描述或者用于权利要求,这样的术语意思是以类似于术语″包含″的方式包括在内的,如同当在一个权利要求中被用作为一个过渡的词时″包含″被解释的一样。
权利要求
1.一种易于低分辨率符号的光学字符识别(OCR)的系统,包括分割部件,易于分割图像中的符号;和识别部件,其实质上在所述符号的分割同时识别符号。
2.如权利要求1所述的系统,进一步地包括机器学习分类算法,其处理灰度级输入并且通过在一符号位置计算分类函数来易于识别所述符号。
3.如权利要求1所述的系统,进一步地包括机器学习分类算法,其是回旋的神经网络,该网络处理所述灰度级输入并且在多个符号位置计算所述分类函数。
4.如权利要求1所述的系统,进一步地包括行检测部件,其易于根据所述符号的灰度级图像检测文本的行。
5.如权利要求1所述的系统,进一步地包括至少一个语言模型和一编程模型,其易于解释所述符号为一个字或它的一个部分。
6.如权利要求1所述的系统,所述识别部件既识别一个符号又识别一串符号,其中所述符号或符号串被表示为一个字。
7.如权利要求1所述的系统,所述识别部件使用回旋的神经网络,语言模型,和动态编程算法中的至少一个。
8.如权利要求1所述的系统,所述识别部件构建一对于不同的照明条件、字体、符号大小、照相机类型、角度和聚焦中的至少一个无变化的分类器。
9.如权利要求1所述的系统,所述识别部件预测在所述图像的一给定位置上哪个字符通过所述符号来表示。
10.如权利要求1所述的系统,进一步地包括滤波器,其检测邻近符号之间的间隔和邻近符号行之间的间隔中的至少一个。
11.如权利要求10所述的系统,所述滤波器包括在检测期间使用的预定阈值,用实验和自动的方法中的至少一个计算阈值。
12.如权利要求1所述的系统,所述识别器以高分辨率提取简单的特征,并且以较不精确的分辨率将所述简单的特征转换为更复杂的特征。
13.一种易于低分辨率照相机获得的文件的光学字符识别的系统,包括分割部件,易于分割图像中的符号;语言模型,其易于处理字符串中的字符;和动态编程部件,其易于识别所述字符串为一个字。
14.如权利要求13所述的系统,所述动态编程部件确定哪个字位于一给定的字边界矩形中。
15.如权利要求13所述的系统,所述语言模型是字典模型,其扫描通过整个词典,对于所述词典的每个字评估一概率,并且输出最可能的字。
16.如权利要求13所述的系统,所述语言模型是语言中性的,其产生字符识别器观测序列的最可能解释。
17.如权利要求13所述的系统,所述语言模型将动态编程最佳化与词典遍历交错来计算最可能的字。
18.一种在其上存储用于执行如权利要求13所述的系统的计算机可执行指令的计算机可读介质。
19.一种使用如权利要求13所述系统的计算机。
20.如权利要求13所述的系统,进一步地包括分类器,其根据与识别字符和字中的至少一个有关的一个或多个观测自动地产生一个推论。
21.一种具有计算机可执行指令的计算机可读介质,该计算机可执行指令用于执行照相机获得的文件的低分辨率光学字符识别的方法,所述方法包括接收具有多个成像符号的照相文件;执行排版分析以检测在所述文件上成像符号的相关排列;通过检测成像符号之间的间隔将所述相关排列拆析成为一组或多组成像符号;分割这些成像符号组成为分离的成像符号;以较高的水平分辨率在水平位置为每个成像符号计算得分;将在所述水平位置每个成像符号的得分合并成为总的得分,该总的得分用来确定一个字;和输出所述字,该字表示这些成像符号组中的一组。
22.如权利要求21所述的方法,进一步地包括动作以较高的分辨率提取所述分离的符号的简单特征;和以较不精确的分辨率将所述简单特征转换成为更复杂的特征;其中通过回旋的神经网络执行提取和转换动作中的至少一个。
23.如权利要求21所述的方法,进一步地包括使用动态编程以关联排列的方式定位该组符号,其中所述关联排列是行。
24.如权利要求21所述的方法,分割,提取,和转换的动作被实质上同时执行。
25.如权利要求21所述的方法,进一步地包括训练机器学习算法以在给定的水平位置从成像符号中产生所识别的符号。
26.如权利要求25所述的方法,进一步地包括为所述机器学习算法产生训练组,产生的动作进一步地包括下列动作中的至少其中之一在纸介质和在电子介质两者上打印文件集合;和将所述纸介质的每个字符的位置与对应成像符号的位置相匹配以产生标记的字符图像的数据库。
27.如权利要求21所述的方法,进一步地包括用间隔滤波器检测符号之间的间隔;使用行滤波器检测符号的行;和根据间隔滤波器和行滤波器两者的结果定义文本区域。
28.如权利要求21所述的方法,进一步地包括执行关于与符号之间的间隔有关的像素的连通分量分析。
29.一种对拍照的文件执行低分辨率光学字符识别的方法,包括预处理所述拍照的文件以调整被引入到所述拍照文件中的缺陷;分析所述文件的排版以确定文本的行;将文本的行分割成为单个的字;为每一单个的字标明边界;在每一单个的字中使用机器学习分类算法识别字符;和用动态编程算法识别所述单个的字以确定哪个单个的字位于给定的位置。
30.如权利要求29所述的方法,进一步地包括识别标点符号。
31.如权利要求29所述的方法,进一步地包括用白色平衡算法预处理所述拍照的文件以最大化关于所述文件区域的对比度。
32.如权利要求29所述的方法,所述机器学习分类算法是回旋的神经网络和辅助向量机的其中之一。
33.如权利要求29所述的方法,进一步地包括下列动作的至少其中之一将字典设置成为最大化再使用的计算量的结构;和当遍历所述结构时产生动态编程表格以确定对于单个字的字符的观测的最佳的分配。
34.如权利要求33所述的方法,所述结构是特里结构。
35.如权利要求29所述的方法,进一步地包括分析作为一对的第一字和第二字以识别所述第一字。
36.如权利要求29所述的方法,进一步地包括使用第一和第二语言模型,以便如果使用第一语言模型未能产生输出字,就自动地使用第二语言模型。
37.如权利要求29所述的方法,进一步地包括根据阈值检测字中的字符之间的间隔,并且使用辅助程序自动地计算阈值。
38.如权利要求29所述的方法,进一步地包括通过测试连通分量的相对几何关系检测文本的行。
39.如权利要求38所述的方法,进一步地包括根据越来越大的组的连通分量产生统计量。
40.如权利要求29所述的方法,进一步地包括用训练图像训练所述机器学习分类算法,训练包括下列中的至少一个在输入窗口中随机地散开所述训练图像;和在所述输入窗口中随机地改变所述训练图像的亮度和对比度。
全文摘要
一种用于对低分辨率拍照的文件进行光学字符识别(OCR)的整体最佳化结构,它将二值化类型处理、分割和识别组合成为单一的处理。所述结构包括根据大量数据训练的机器学习方法。可以使用回旋的神经网络以在多个位置计算分类函数并采用消除二值化的灰度级输入。所述结构使用预处理、排版分析、字符识别和字识别以输出高的识别率。所述结构还使用动态编程和语言模型以达到期望的输出。
文档编号G06K9/20GK1737822SQ200510092380
公开日2006年2月22日 申请日期2005年5月20日 优先权日2004年5月20日
发明者C·E·雅各布斯, J·R·林克, R·Y·西马尔, P·A·维奥拉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1