PhotoOCR:在不可控条件下阅读文本外文翻译资料

 2022-12-19 06:12

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


PhotoOCR:在不可控条件下阅读文本

Alessandro Bissaccolowast;,Mark Cumminslowast;,Yuval Netzerlowast;,Hartmut Neven Google Inc.

摘要:我们把PhotoOCR描述为一种从图像中提取文本的系统。在此系统中我们的特别关注点是从智能手机的图像中提取可靠的文本,且最终目标是能将文本识别作为与语音识别相类似的用户输入模式。但商业上可用的OCR在这个方面上表现得并不是很好。近年来机器学习上的一些进展大大改善了单独的字符分类;而我们在此进展的基础上通过使用这些技术展示出了一个完整的OCR系统。此外我们还整合了现代数据中心范围内的分布式语言建模。我们的方法能够在传统OCR系统出现故障的各种具有挑战性的成像条件下识别文本,尤其是在带有大量模糊,低分辨率,低对比度,高图像噪声和其他失真的情况下。它还以低延迟来运行;每张图像的平均处理时间为600毫秒。我们在公共基准数据集上评估了我们系统的文本提取能力,最终结果优于以前报告的所有结果,在降低错误率上超过了多个基准。该系统目前在Google的许多应用程序中被使用,并且可在安卓的谷歌翻译中作为用户输入模式使用。

  1. 介绍

从不受控制的图像中提取文本在许多实际应用中是极具挑战性的问题。可靠的文本识别能为智能手机提供有用的输入模式,特别是在诸如翻译这些文本可能难以由用户通过其他方式输入的应用中。文本提取作为大型图像集合中的搜索信号在机器人技术中也很有用处,此外在可穿戴设备和许多其他领域中也有不错的用途。

商业上可用的OCR系统主要设计为用于文档图像,例如来自平板扫描仪的图像,且在一般图像上表现不佳。它们通常依赖于诸如二值化之类的脆弱技术,其中第一阶段处理是用于将图像分成文本和非文本像素的简单阈值操作[19]。对现有商业系统的具有挑战性的输入包含场景文本(如图1)以及更多类似通常在手机中的模糊,低分辨率或其他降级的图片。(参见图2)。

图1:我们的系统检测和识别的场景文本示例。

为了解决这些问题,本文描述了使用现代计算机视觉技术构建的完整OCR系统的设计。特别是我们在机器学习[6,10]和大规模语言建模[1]上获得的最新的实质性进展。我们的系统大大优于以前的方法,在主要公共基准上错误率减半以上。我们将系统的各个组成部分扩展到比先前工作中所探索的更大的规模制度。特别是,我们的深度神经网络字符分类器在多达200万个手动标记的示例上进行了训练,并且我们的语言模型是在超过一万亿个语言符号的语料库中学习的。我们主要通过精心的设计来维持亚秒识别延迟。我们有29种语言的系统训练版本,包括拉丁文,加上希腊语,希伯来语和四种西里尔语。

  1. 相关工作

设计用于自然图像的完整OCR系统是一项重要任务,因此文献中的例子相对较少。许多出版物都涉及子任务,如文本检测和孤立的字符分类。其中一种表现最佳的文本检测方法是[8]中的笔画宽度变换。孤立的字符分类被广泛用作机器学习基准[17]。然而,用于完整文本提取的融合字符分类器和语言模型信号的中级问题不太常见。在应用为打印文档设计的商业OCR系统之前,应用文件通常执行文本检测和预处理,例如在[4]中。

在用于场景文本提取方面的完全完整的系统中,语言建模通常不如图像处理组件那样发达。例如,[18]的方法使用二元语言模型和一组手工设计的图像特征以及用于文本检测和识别的支持向量机分类器。在[27]的方法中,文本检测被假设为识别是通过在稀疏信念传播框架中融合外观,自相似性,词典和二元语言信号来执行的。 [23]的工作集中在使用外观相似性约束来提高性能。其他几个系统通过假设要识别的单词来自固定词典来简化问题。 [20]的系统描述了一种大词典设计,使用加权有限状态传感器对外观,自我一致性和语言信号进行联合推理。其他系统假设一个小词典(将问题从OCR转换为单词定位)。一种这样的方法是[25],其中使用随机蕨在单个步骤中进行检测和字符分类。 [15]的方法还依赖于小词典来允许条件随机场(CRF)模型中的强二元约束。

最后,我们注意到手写识别系统的经典工作[14]基本上解决了本文中讨论的相同问题,并且我们的系统与该设计具有相似之处。关于低分辨率文件OCR [11]的工作也密切相关。

  1. 系统设计

总的来说,我们的系统采用传统的多阶段方法进行文本提取,类似于设计[2]。我们首先在输入图像上执行文本检测。检测器返回包含单独文本行的候选区域。检测被调整为高召回率,依赖于后续处理阶段来拒绝误报。处理来自检测阶段的候选文本行以进行文本识别。识别开始于文本行的一维分割以识别候选字符区域。然后,我们搜索分割空间以最大化分数,该分数结合了字符分类器和语言模型可能性。然后,使用额外的信号对这种搜索产生的顶部假设进行重新评分,这些信号在初始推断期间过于昂贵而无法应用。这种分阶段方法的理由是计算上的:在所有位置应用完全推理并且在输入图像,或在每个候选文本区域的所有位置应用我们的字符分类器将会过高的昂贵。我们的主要用途是将文本提取作为智能手机用户的输入模式,将每个图像的总可接受处理时间限制为最多一秒或两秒。这种约束告知了我们的一些设计决策。以下部分详细描述了该过程的每个阶段。

3.1文字检测

我们系统的文本检测部分的详细描述超出了本文的范围。简而言之,我们将三种不同文本检测方法的输出结合起来。第一种方法是使用Viola-Jones类型的Haar小波级联[24]。第二种方法从二值化图像中提取连通分量,并使用图形切割通过最小化具有学习能量项的MRF来找到文本/非文本标记,大致类似于[21]。最终检测器是一种基于各向异性高斯滤波器的新方法。该系统的这一部分还涉及将文本区域分成单独的行并将方向校正为水平,这两者都是相对微不足道的。对于本文的其余部分,我们将着重于从水平线区域候选中提取文本。

3.2过分割

过分割步骤将文本行分成应包含不超过一个字符的段(但字符可以分成多个段)。这是一维分段任务。我们结合两种不同分割方法的输出来改善查全率。

使用的第一种分割方法是典型的文档OCR系统。使用Niblack二值化[19]对输入图像进行二值化,应用形态学的打开操作,并从得到的二值图像中提取连通分量。这种简单的方法对于更简单的图像非常有效,但在模糊,低分辨率,复杂背景等情况下可能会失败。

第二种分割方法旨在处理这些更复杂的情况。它由一个二进制滑动窗口分类器组成,经过训练可以检测字符之间的分割点。我们结合使用HOG特征[5]和加权方向码直方图特征(WDCH)[13]。 WDCH特征类似于在图像的二值化版本上计算的HOG,并且在OCR系统中是典型的。在组合特征向量上训练二元逻辑分类器。在0.1倍线高的步幅且宽度等于线高度的窗口中评估分类器,并且高于阈值的所有响应被接受为分割点。我们评估了该分段器的多个分类器和功能选项,并选择此配置来衡量速度和查全率。

分割阶段输出了包含检测到的分割点的位置的矢量B,包括文本检测框的起点和终点。

3.3光束搜索

我们现在搜索分割的空间以找到最大化我们的分数函数的空间,由下式给出:

(1)

这里bsub;B是N 1个分割点bi的矢量,它定义了将线分割成N个分段。c是类赋值的向量,第i个段被赋予标签ci.Psi;(ci,bi,bi 1)是类赋值ci到bi与bi 1之间的像素的分类器概率。Phi;(ci,ci-1,hellip;,c1)是将前一个行中的类赋值给予第i个类赋值的语言模型概率。alpha;控制字符分类器和语言模型的相对强度。因此总分是分类器和语言模型下文本行的平均每字符对数似然。我们选择每个字符的平均值,因为它给出的分数在具有不同识别字符数的行之间是可比较的。我们现在希望找到b,c来最大化S。

我们使用波束搜索[22]实现这种最大化,这是语音识别中类似问题的典型方法。结果空间自然地形成由分割点定义的图形。波束搜索是通过该图形的最佳优先搜索,其依赖于图形中的每个节点是可以由我们的评分函数评分得到的部分结果(对应于文本行的一部分的识别)的事实。在波束搜索的每个步骤中,对当前搜索节点的所有后继者进行评分,但是仅保留固定数量的最高得分节点(波束宽度)用于下一搜索步骤。我们只是在文本检测框的左边缘初始化搜索。我们通过删除纵横比太大的分段候选者来略微减少搜索。

显然,我们无法保证使用波束搜索找到最佳解决方案。使用这种方法而不是像CRF这样的框架的原因是它允许在分数函数的设计中具有更大的灵活性。特别的是,语言模型强加了高阶约束(在我们的例子中最多为8阶),在CRF型框架中进行精确推理实际上是难以处理的。根据我们的经验,最好使用具有近似推理的良好分数函数而不是具有完美推理的较弱分数函数。结果显示在第5节中,这表明在任何情况下,尽管有组合搜索空间,但我们的近似推断通常会找到最优解。识别性能的实际瓶颈似乎来自分类器和语言模型质量,而不是找不到最大化分数函数的解决方案。

3.4字符分类器

我们使用深度神经网络进行字符分类。我们已经探索了针对原始像素和HOG特征进行训练的网络。在原始像素上训练的网络实现与在HOG上训练的网络非常相似或者具有略微更好的性能。然而,我们发现原始像素网络在可比较的性能上比HOG输入网络更深入,更广泛。即使考虑HOG计算时间,HOG输入网络也具有较低的计算成本。由于我们正在考虑速度和高精度,我们发现从整体来说HOG输入网络更可取。此发现可能特定于文本,因为字符中存在的强梯度是HOG特征的良好匹配。

我们的最佳性能配置是具有五个隐藏层的网络的配置422-960-480-480-480-480-100。这些层完全连接并使用整流线性单元[16]。 422参数输入层由HOG系数和三个几何特征组成。输出层是超过99个字符类的softmax层加上噪声类。我们将权重和激活量化为8位,这可以提高速度,且精度损失可以忽略不计。训练的的细节将在第4节被讨论。

我们在波束搜索选择的所有段组合上运行此分类器。由于所提供的分割仅为一维,因此对于每个分段,我们通过简单的捕捉到第一个强边缘的启发式修正顶部和底部边界。这为分类器提供了更紧密的裁剪不正的字符。我们在这个字符块上计算两个HOG特征。第一个使用5x5网格,每个直方图有5个区间,直接在(非方形)碎片上计算。第二个使用7times;7网格中的无符号梯度直方图,每个直方图有6个区间。字符块标准化为65x65像素,用于计算第二个特征。除HOG之外使用的三个几何特征将原始宽高比以及像素的顶部和底部边缘相对于整个文本检测的高度的位置译成密码。

值得一提的是,我们还探索了卷积神经网络,但它们在我们的架构中与非卷积网络在计算上没有竞争力。与滑动窗口设计相比,我们的基于分段的方法为卷积网络去重用计算提供了更少的机会。

3.5语言模型

在诸如OCR和语音识别的结构化分类任务中,强大的语言先验对最终表现做出了重大贡献。有些类几乎无法区分为孤立的例子,例如数字“1”和字母“I”;这些案例必须通过上下文俩消除歧义。

我们使用标准的ngram方法进行语言建模。由于我们的系统设计用于数据中心环境,我们采用了两级语言模型设计。每个OCR工作者在RAM中保存一个紧凑的字符级ngram模型。该模型提供光束搜索语言分数,Phi;(ci,ci-1,...,c1)。这个分数构成了我们系统内循环的一部分,因此快速评估至关重要。我们的二级语言模型是一个使用[1]设计的更大的分布式word-ngram模型。该模型由数据中心内的所有OCR工作人员共享,并通过网络访问。由于这造成的延迟开销,我们仅在重新排放期间评估此模型(第3.6节)。

对于我们的字符级ngram模型,我们在RAM预算方面非常有限。每个OCR工作者都拥有该模型的副本。单个工作者被设计为同时识别多种语言;目前我们用拉丁文脚本支持29种语言。因此,对于字符ngram模型,我们每种语言只能找到60 MB的RAM。在这种情况下,与[3]一样,我们在超越8元模型时几乎没有任何好处。我们在108个字符的训练数据上训练每个模型,保留所有出现40次或更多次数的n元。对于固定大小的模型,我们发现将训练数据增加到超过108个字符时效益可以忽略不计。我们还比较了平滑方法,我们发现非常简单的Stupid Backoff方法[1]在最终识别性能方面表现更为复杂。但由于它允许最优化的实现,所以我们选择这种方法。

除了字符ngram模型,我们还维护每种语言的前10万字的简单字典。我们将此作为我们语言分数中的附加信号;它比单独的字符ngram模型提供了小的性能提升。字典仅提供软评分信号;而识别不仅限于字典单词。

我们的二级分布式语言模型使用4元单词。英语模型在1.3times;1012令牌训练集上训练。最终模型在1M单词词汇表中包含2times;1010个ngram。我们的非英语语言模型的ngram数量减少约3倍,训练集大小减少10倍。在工作期间,组合的多语言模型分布在80台机器上,占用大约400 GB的RAM。在单词级语言模型中,我们还为常见模式(如电子邮件和URL)添加了少量解析器,这些解析器并未被ngrams很好地捕获。

3.6重排序

波束搜索终止于波束宽度大小的识别假设的排序列表。我们对此列表执行多个后处理和重新排名操作:

标点搜索

我们执行的第一个操作是标点搜索。在初始波束搜索中,以与任何其他字符类相同的方式识别标点,但是由于难以从背景杂乱中区分小标点字符,因此调用较低。因此,我们利用在初始识别之后可用的更强的比例和位置约束来执行针对标点符号的第二遍搜索。

二级语言评分

如第3

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19751],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。