OrigamiNet: Weakly-Supervised, Segmentation-Free, One-Step, Full Page Text Recognition by learning t

Abstract
文本识别是计算机视觉的一项主要任务,具有一系列相关的挑战。其中一个传统的挑战是文本识别和分割的耦合性质。在过去的几十年里,这个问题已经逐步得到解决,从基于分割的识别到免费分割的方法,证明了更准确和更便宜的数据注释。我们从无分割单行识别向无分割多行/全页识别迈出了一步。我们提出一种新颖的和简单的神经网络模块,称为OrigamiNet,可以增加任何CTC-trained,完全卷积单行文本识别器, 通过提供足够的空间容量,使模型能够适当地将二维输入信号折叠成一维信号而不丢失信息,将其转换成多行版本。这种改进的网络可以使用完全相同的简单原始过程,并且只使用未分割的图像和文本对进行训练。我们进行了一组可解释性实验,表明我们训练的模型学习了准确的隐式行分割。我们在IAM和ICDAR 2017 HTR手写识别基准上实现了最先进的字符错误率,超过了文献中的所有其他方法。在IAM上,我们甚至超过了在训练过程中使用精确定位信息的单行方法。我们的代码可以在
https: //github.com/IntuitionMachines/OrigamiNet上在线获取。

  1. Introduction
    文本的无处不在使其各种视觉形式的处理变得自动化,成为一种日益增长的需要。多年来,在文本识别系统中降低错误率的主要驱动主题之一是减少显式分割建议,以支持增加全序列识别。在全序列模型中,识别系统学会同时分割/对齐和识别/分类代表观察序列(即字符)的图像。这一趋势从第一个系统,试图单独分割每个字符,然后分类字符的图像[6],到分割*的方法,试图识别所有字符在一个词,而不需要/执行任何明确的分割[21]。今天,最先进的文本识别系统在整个输入行图像上工作,而不需要任何预先明确的字符/单词分割[35,18]。这样就不需要将字符定位注释作为ground-truth转录的一部分。此外,识别精度仅依赖于自动切线,这是一个比自动字符切分容易得多的过程。

表1:训练完整页面识别器所需要的数据与我们提出的方法之间的各种先前工作的比较。我们可以看到,我们的方法是唯一真正在页面级工作的方法,在任何阶段都不需要任何分段数据。# Iterations / image是从IAM数据集中转录一整段图像所需要的平均迭代次数;我们可以注意到,虽然所有其他方法都需要对每个图像进行多次迭代(以识别每个分段字符或行),但我们的方法只对输入的完整段落图像执行一次传递。
然而,行分割仍然是一个容易出错的过程,会导致当今文本识别系统性能的严重下降。对于难以分割文本线条的文档,如手写文档[10,24],线条弯曲、行距不均匀、线条接触、页面撕裂等情况尤其如此。
以前尝试解决弱监督多线识别问题的主要研究有[3,4,30](有时间可以看看3,4,30这几篇论文)。除了这些方法,其他用于全页识别的方法在训练时都需要了解文本行的定位基础。我们提出的方法所需要的训练数据与文献中其他方法的详细比较见表1。
在这项工作中,我们提出了一个简单而新颖的神经网络子模块,称为OrigamiNet,它可以添加到任何现有的卷积神经网络(CNN)文本行识别器中,将其转换为完整的页面识别器。它可以以一种弱监督的方式转录全文页面,而不需要在训练期间给出任何定位基础真相(图像中的可视化或转录中的文本),也不需要执行任何明确的分割。与以前的工作相比,这是非常有效地完成了仅使用前馈连接(没有重复连接),本质上,在一个单一的网络前向传递。
在这项工作中,我们的主要直觉是,取代传统的两步框架,首先分段然后识别提取的片段,提出了一种新的综合方法来学习同时隐式分割和识别。这是通过学习将输入转换为分割和识别都很简单的表示的表示转换来工作的。
我们隐式地将输入的多行图像展开为单行图像(即从二维字符排列到一维字符排列),其中原始图像中的所有行被缝合成一个长行,因此实际上不需要文本行分割。分割和识别都是在同一个步骤中完成的(单个网络向前传递),而不是迭代地进行(在每一行),因此所有的计算都是在识别和隐式分割之间共享的,整个过程要快得多。
实现这一目标的主要要素是:使用空间瓶颈和上采样的概念,广泛应用于像素级预测任务(如[16,23]);利用CTC损失函数[11],强烈诱导/鼓励线性一维目标。我们构建了一个简单的神经网络子模块来应用这些新颖的思想,并通过将其附加到一些最先进的文本识别神经网络体系结构中来证明其有效性和通用性。我们证明,它可以用完全相同的训练过程成功地将单行文本识别器转换为多行文本识别器(即,无需使用复杂而脆弱的训练配方,如特殊的训练课程或特殊的训练前策略)。
在具有挑战性的ICDAR 2017 HTR[24]全页基准测试中,我们在没有任何定位数据的情况下实现了最先进的字符错误率(CER)。在IAM[17]数据集的完整段落上,我们能够实现最先进的超越CER的模型,这些模型在精心预先分割的文本行上工作,而在训练或测试期间不使用任何本地化信息。
总之,我们解决了弱监督全页文本识别的问题。特别是,我们做出了以下贡献:
 我们在概念上提出了一种弱监督的同时目标分割和识别的新方法,并将其应用于文本。
 我们提出了一个简单和通用的神经网络子模块,可以添加到任何基于cnn的文本行识别器,将其转换为使用相同简单训练过程的多行识别器。
 我们在一些最先进的文本识别器上进行了大量的实验,以证明我们的主张。最终的架构展示了ICDAR2017 HTR和完整的IAM数据集的最先进性能。
2. Related Work
关于全页识别的文献之前的工作并不多。[3, 4]主要考虑了无分割多线识别。两者的理念都是使用选择性注意力只关注输入图像的特定部分,无论是[4]中的字符还是[3]中的行。这些作品有两个主要缺点。首先,两者都很难训练,并且需要在训练多行版本之前先在单行图像上预先训练它们的编码器子网络,这就违背了任务的目标。其次,尽管[3]比[4]快得多,但与当前处理分段文本行的方法相比,它们都非常慢。
除了这两个segmentation-free方法,其他方法,工作在整页识别需要本地文本行的真是标签(5、7、19)或部分[33]的训练数据训练一个单独的网络或者一个sub-module(大型、多任务网络)文本行的本地化。此外,所有这些方法都需要在所有提供的文本真是标签转录上注释换行符(即,文本行必须在图像中进行视觉分割,在转录中进行文本分割)。[30]提出了在不需要换行的情况下,以弱监督的方式调整[33]的想法,将预测的行转录与ground truth之间的比对设置为一个组合优化问题,并贪婪地解决它。但是[30]仍然需要和[33]一样的预训练,而且表现更差。
3. Methodology
图1展示了我们提出的OrigamiNet模块的核心思想,以及如何将其附加到任何全卷积文本识别器上。显示了before和after两个版本,便于比较。

(a)一种通用的四阶段全卷积单线识别器,输入是一幅单线图像,使用CTC损失函数进行训练。骨干CNN可以是表2中的任何一个。输入逐步下采样,然后在损失计算之前沿垂直维度通过平均池化转换为一维(这个一维是值将hw的矩阵变为1w/16的矩阵)。(图由PlotNeuralNet[13]创建)

(b)这里我们将全卷积单线识别器转换为OrigamiNet多线识别器; 比较两个图可以看出,引入的主要变化是两个阶段在垂直方向上按比例放大,同时在水平方向上按比例缩小。我们得到了一个又高又窄的特征图(一条非常长的垂直线的形状,长度为L2)。之后,我们完全按照上面的方法进行,在短的维度w(新的行而不是原始图像)上进行平均池化,然后使用CTC损失函数来驱动训练过程。
图1:使用OrigamiNet模块将完全卷积的单行识别器转换为多行识别器
CTC损失函数允许训练未分割输入的神经文本识别器,通过考虑两个1D序列之间的所有可能的对齐。网络产生的预测序列记作P,与输入图像相关联的标签序列记作L,其中|L| < |P|。假设原始输入信号(图像I)是一个二维信号,那么P作为一个一维序列的严格要求就引入了一个问题。这个问题通常是通过将二维信号展开为一维信号来解决的,沿着其中一个维度(通常是垂直的维度)使用简单的简化操作(例如求和),给出:

其中F是一个学习的二维表示变换。这是图1a所示的范例。如[3,4]所述,这种简单的从2D到1D的盲目折叠对2D输入特征图F(I)的所有行都具有同等的重要性/贡献(因此是梯度),从而阻止了对输入图像中任何2D字符排列的识别。如果两个字符覆盖同一列,折叠操作后可能只能识别一个字符。
为了解决这个问题,即既满足CTC的一维输入要求,又不牺牲识别字符二维排列的能力,我们提出了通过CNN学习适当的2D→1D展开的想法,其动机是CNN在像素预测和图像-图像转换任务中的成功。
我们工作的主要思想(如图1b所示)是通过一系列放大操作来增强传统范式,将输入特征映射转换为单线形状,这条线足够长来容纳来自输入图像的所有线条(2D字符排列)。升级操作之后是卷积计算块,这是我们学习到的调整大小操作(如许多研究人员所做的,例如[8])。向上放大方向的改变使得输入图像的每一行都被映射到输出垂直维度的不同部分。
在此类更改之后,我们继续使用传统的范例 - 是,沿着所得线的垂直尺寸W执行简单总和减少(EQ.1)(其垂直于原始输入多线图像的垂直维度)。该模型用CTC培训。
此外,我们认为,在我们做的情况下,阻止先前所有工作的主要瓶颈都可以直接学习适当的2D→1D映射,是空间限制(即不是整体容量或架构约束)。为模型提供足够的空间能力允许它轻松学习此类变换(即使对于简单的有限容量模型,我们将在实验部分中显示)。鉴于CTC引起的空间容量和强大的线性,该模型能够使用相同的简单培训程序来学习强大的2D→1D展开功能,用于培训单行识别器,并且没有应用于任何特殊的预训练或课程网络的子模块(两者都在文献中专门用于)。
这里的一个自然问题是如何选择最终线长度L2(参见图1B中的定义)?要收集整个段落/页面的空间,L2必须至少与训练集中任何抄录中的最大字符数一样长。比较长的仍然更好,鉴于(i)CTC需要插入空白以分开重复标签; (ii)字符在空间范围内变化大大变化,并且在最终向量中的多个目标帧中映射是比转换为恰好一个帧的更容易的任务。
4. Experiments
我们进行了广泛的实验,以回答以下问题:
•该模块是否确实按预期工作?
•它是否与特定的CNN架构相关?
•它是否与特定的模型容量相关?
•最终空间大小如何影响模型性能?
4.1. Implementation Details
所有实验均使用0.01的初始学习率,在9×10-4批次上呈指数衰减至0.001。 我们使用Adam [15]优化器在PyTorch [20]中实现
4.2. Datasets
IAM [17](现代英语)是著名的离线手写基准数据集。 它由657个不同作者手写的1539个扫描文本页面组成,与从LOB语料库中提取的英文文本相对应[14]。 IAM在培训集中有747个文档(6,482行),在验证集中有116个文档(976行),而测试集中有336个文档(2,915行)。
ICDAR2017整版HTR竞赛[24]包含两个训练集。 第一个包含50个带有行级本地化和转录底线的完全注释图像。 第二组包含10,000张仅转录的图像(带注释的换行符)。 大部分数据集取自以德语编写的Alfred Escher Letter Collection(AEC),但也有法语和意大利语页面。 在此数据集上进行的所有实验中,我们都没有使用50页的训练集或10,000页的训练集上带注释的换行符
4.3. CNN Backbones

表2:我们评估过的CNN骨干网(编码器部分)的体系结构详细信息,以及如何将我们的模块(解码器部分)连接到它们。 该表尝试将体系结构抽象为最常见的细节。 尽管每个体系结构的基本构建模块的组件(在方括号[]中)都有细微的差异,但网络的总体组织以及模块的安装方式是相同的。
为了强调我们提出的模块的通用性,我们在许多流行的CNN架构上对其进行了评估,这些架构在文本识别文献中取得了出色的性能。 受基准测试工作[2]的启发,我们评估了VGG和ResNet-26(在[2]中探讨的特定变体)以及更深层次和更具表现力的变体(ResNet66和ResNet-74)。我们还评估了一种新提出的门控全卷积架构,用于文本识别[35],称为门控文本识别器(GTR)。 表2中列出了我们评估提出的模型的CNN骨干网的详细结构。有关这些体系结构的基本构建块的更多详细信息,请参见其各自的论文VGG [25],ResNet [12]和GTR [ 35]。
4.4. Final Length, L2

表3:对于L1和L2的各种值,VGG和ResNet-26的IAM测试集CER。
对于IAM,最终长度应至少为625,因为训练集中的最长段落包含624个字符。 这里有两个问题:什么值可以平衡运行时间和识别精度? L1和L2之间的关系如何影响最终的CER?
表3给出了一些对此的实验。 首先,我们可以看到,一般来说,即使是非常简单的模型(如VGG),也可以成功地学会在 各种配置下识别多条线路(相对较差的CER = 30%),但是,更深的ResNet-26可以在 任务达到7.2%。 其次,很明显,更宽泛通常会提供更好的性能(但收益递减),这对于VGG而言比ResNet-26更为明显。 我们看到,对于合理的值(> 800),网络对于选择L2相当健壮。 我们还可以注意到,L1和L2都应该相对靠近。
4.5. Final Width

表4:针对各种最终宽度的VGG和ResNet-26的IAM测试仪CER。 这里L1 = 450和L2 = 1100
最终形状是否需要具有最大可能的长宽比? 最终宽度w(较短的输出维度)将如何影响学习系统? 表4给出了在这方面使用VGG和ResNet-26进行的实验。 显然,较大的值(例如62)会严重降低ResNet-26的训练,但较小和中等的值(<31)在性能上是可比的。 另一方面,具有有限的感受野和复杂性的模型(如VGG)通常可以从增加的宽度中大量使用。
4.6. End-to-end Layer Normalization
在[35]中提出了使用无参数层归一化作为模型的第一层和最后一层的想法,并表明可以提高性能并促进优化。相同的想法对于我们的模块非常有效,因为最初一些融合为单行识别的深度模型在这里完全分歧。 这很可能是由于CTC为我们的案例处理了大量的时间步骤。

表5:具有和不具有层规范化的各种模型的IAM测试集CER
从表5中可以看出,端到端层规范化可以为已经运行良好的模型带来显着的准确性提高。 更重要的是,它使训练非常深层次的模型成为可能,而这些模型以前一直在变化(发散,diverging的意思?),从而使任务表现出最先进的性能。
4.7. Hard-to-segment text-lines
由于IAM的收集方式[17],其线条通常易于分割。 为了研究我们的模型如何处理更困难的情况,我们进行了两个单独的实验,人为地修改了IAM,以产生难以分割的新变体。 首先,通过seam carving [1]大大减少了行距间距,将其尺寸调整为50%的高度,从而创建了紧密接触的文本行,如图4(b)所示。 GTR-12在该数据集上实现了6.5%的CER。 其次,每个段落都具有随机投影(旋转/调整大小的行),并应用了随机弹性变换(如[32],但在页面级别),从而形成了波浪状的非直线,如图4(c)所示。GTR-12在该数据集上实现了6.2%的CER。

图4:应用于IAM数据集的合成失真,用于研究我们的模型如何处理难以分割的文本行。 (a)原始段落图片。 (b)触摸文字行。 (c)旋转且波浪形的文字行
4.8. Comparison to state-of-the-art
对于之前的所有实验,在训练之前,IAM段落图像均按比例缩小为500×500像素,尽管我们已经达到了最先进的结果,但我们仍想探索是否可以使用单行识别器实现收支平衡。 如表6所示,通过增加图像/模型尺寸,我们首次使用无分段全页识别器进行训练,而无需进行任何视觉或文本本地真实标签训练,我们首次超越了最新的单行识别器的性。 请注意,我们不包括使用额外数据的比较方法,例如以[34,9]中的训练图像形式或[31]中的语言建模形式。

表6:与IAM段落图像上的最新技术进行比较,突出显示了最佳结果。
4.9. Model Interpretability
在这里,我们考虑一个重要的问题:该模型实际上学到了什么? 我们可以看到该模型在实践中运作良好,并且对它可能会做的事情有一个假设,但是如果我们可以窥见一下我们的模型如何做出预测,那将非常有意思。
为了了解输入的哪些部分会使模型偏向特定的预测,我们利用使用SmoothGrad [26]集成的Path-Integrated Gradients [29]框架。 请注意,与典型的分类任务不同,我们预测每个图像的L2标签。 其中,我们舍弃了空白和重复的连续标签(在CTC中,表示相同状态的延续;对于这些目的,我们发现它们的归因图谱(attribution maps)是全局的,没有信息性)。
对于集成梯度(IG,integrated gradients),我们更改基线以使用空白的白色图像指定无信号,而不是空白的黑色图像(在我们的情况下为全信号图像)-因为我们的数据是黑色文本白色背景。 使用白色基线会比黑色基线产生更清晰的归因图谱,这表明IG对基线的选择有多敏感(在[28]中有更多研究)。 我们在测试中使用了50个步骤来近似积分(这个积分是什么?)。
标准SmoothGrad会产生非常嘈杂的归因图谱(请参阅[27]),但是SmoothGrad-Squared变体通常会抑制大部分信号(平方分数的直接结果)。 在分析了两者的结果之后,我们建议SmoothGrad问题的根本原因是将正信号和负信号平均在一起。 SmoothGrad-Squared中的平方解决了这个问题,但是大部分压制了信号的一些重要部分。 因此,我们建议使用SmoothGrad-Abs,该方法仅对归因图谱的绝对值求平均。 SmoothGrad-Abs在SmoothGrad和SmoothGradSquared之间达到了很好的平衡。 对于我们的实验,我们使用了5张噪点图像。

图2:可解释性实验的结果。 对于这8张图像中的每张图像(从左至右,从上至下),我们都将显示单个字符输出(对于图像中的每一行)的属性热图,该属性覆盖在原始输入图像的模糊版本上。随机选择的字符在图像下方的转录中以绿色突出显示。(这张图片代表什么意思?)
图2显示了来自输入图像每一行的单个随机字符的归因谱图(由输入CTC的1D预测图中对应输出神经元的属性计算得出)。 我们看到,该模型确实从输入2D图像到输出1D预测图隐式学习了良好的字符级定位。

图3:第一列和第三列代表两个输入图像。 第二和第四列是相应的颜色编码散点图,其中,对于每个字符,标记了与该字符相关联的属性图的质心位置(这个标记怎么看出?感觉是每个单词标记了中心左右的位置)。 属于同一行的字符标记具有相同的颜色。 我们可以看到,该模型在没有任何定位信号的情况下,将输入图像很好地隐式分割成线。
图3提供了一个整体视图,将所有maps收集到一个图像中。 我们从上一步中获取了一个字符的属性映射,对它应用Otsu阈值处理(仅保留最重要的部分),然后在生成的二进制图像的质心位置添加一个标记。 标记根据其所属的转录文本行进行着色。 可以看出,结果表示原始输入的很好的隐式线分割。
4.10. Limitations
我们还使用IAM的变体对我们的网络进行了培训,该变体具有水平翻转的图像和行级翻转的真实标签,在该过程中,它可以实现几乎相同的CER。 这证明了所提出的方法是健壮的并且可以从数据中学习读取顺序。
虽然所提出的方法在段落或整页文本上都能很好地工作,但是学习多列的流程并不能直接解决(但并没有直接讨论学习多列的流程。)。 但是,鉴于区域/段落分割与文本行分割相比是微不足道的,因此我们认为这不是一个严重的实际限制。
5. Conclusion
本文我们解决了多行/整页文本识别问题,在训练过程中,不需要任何视觉或文本定位ground-truth信息。我们提出了一个简单的神经网络子模块,OrigamiNet,可以把它加入到任何一个已经存在的全卷积单行文本识别器中,通过给模型提供足够的能够正确把2D输入信号无损展开成1D空间容量,把这个识别器转换成多文本行识别器。
我们在IAM手写数据集上进行了一系列实验,展示了我们提出的模块的可行性和通用性。我们在 ICDAR2017HTR和IAM数据集上达到了SOTA的CER,超过了在训练期间明确使用行分割信息的模型。而后,我们做了一系列可解释的实验来验证模型真正学习到了什么,并展示了其在每行上定位字符的隐式能力。

上一篇:全景分割论文阅读:Efficientps: Efficient Panoptic Segmentation


下一篇:[leetcode]14. Longest Common Prefix 最长公共前缀