【读点论文】Self-supervised Implicit Glyph Attention for Text Recognition 一种自监督隐式字形注意力方法对齐字形结构,无需字符级标注

Self-supervised Implicit Glyph Attention for Text Recognition

Abstract

  • 由于注意力机制能够提取字符级表示,因此已成为场景文本识别 (STR) 方法中事实上的模块。这些方法可以归纳为基于隐式注意力和基于监督注意力的方法,具体取决于注意力的计算方式,即隐式注意力和监督注意力分别从序列级文本注释和/或字符级边界框注释中学习。隐式注意力可能会提取粗略甚至不正确的空间区域作为字符注意力,因此容易出现对齐漂移问题。监督注意力可以缓解上述问题,但它是字符类别特定的,需要额外费力的字符级边界框注释,并且在处理具有较大字符类别的语言时会占用大量内存。为了解决上述问题,我们提出了一种用于 STR 的新型注意力机制,即自监督隐式字形注意力 (SIGA)。SIGA 通过联合自监督文本分割和隐式注意力对齐来描绘文本图像的字形结构,作为监督来提高注意力的正确性,而无需额外的字符级注释。实验结果表明,SIGA 在公开的上下文基准和我们贡献的无上下文基准上,无论是在注意力正确性还是最终识别性能方面,都比以前基于注意力的 STR 方法表现得更好,而且效果显著。我们的代码和两个大型无上下文数据集(MPSC 和 ArbitText)在发布:https://github.com/TongkunGuan/SIGA。
  • 论文地址:[2203.03382] Self-supervised Implicit Glyph Attention for Text Recognition (arxiv.org)
  • 现有的文本实例主要分为两类:内容有关文本(context texts)和 内容无关文本(contextless texts),近期的一些工作往往聚焦于识别内容有关文本,包括但不限于,language-free methods and language-aware methods.对于language-aware methods, 主要利用语言模型去解决语义上下文的问题。比如当视觉模型(language-free model)识别出"universlty", 语言模型可以很好地解决视觉识别错误,得到"university"。但语言模型存在的问题有以下两点:
    • 语言模型需要联合视觉模型的输出,通过优化字符预测的联合分布,得到好的精度。然而当将wiki语料库正确的单词送给单一的语言模型时,其精度只有50%左右。语言模型的能力还有待提升。
    • 语言模型不能够很好地泛化到任意文本上,比如内容无关 文本。
  • 对于language-aware methods, 现有的方法能够分为基于隐式注意力的方法和基于有监督注意力的方法。隐式注意力的方法,往往会存在注意力漂移的问题;有监督地注意力方法利用bounding boxes 标注解决了这个问题,但其存在三方面的问题:1)需要额外的 bounding boxes标注信息,它们是昂贵的;2)现有的含bounding boxes 数据量有限,像MJ数据集就没有这类标注信息,往往需要结合半监督学习等技术;3)这些方法的注意力通道是与类别相关的,是memory-intensive. 以GB2312 的6763个字符类别为例,其注意力通道将有6763个,增加了模型的负担。
  • 结合上面的背景知识,如果想要识别任意的文本(有序文本和无序文本),language-free method是首要选择。而视觉模型的核心在于,将文本识别看成字符级的分类任务,主要利用视觉信息去识别每个字符。那么对于文本实例图像来讲,识别字符,最核心的视觉信息那便是 **字形结构(glyph)**了。

Introduction

  • 场景文本识别 (STR) 旨在从自然图像中识别文本,广泛应用于手写识别 、工业印刷识别 [Knowledge-based scene text recognition for industrial applications, Industrial scene text detection with refined feature-attentive network, Port recommendation system for alternative container port destinations using a novel neural languagebased algorithm] 和视觉理解 。 最近,通常开发具有编码器-解码器架构的基于注意的模型来解决此任务,通过关注文本图像的重要区域来提取字符级表示。根据用于监督注意的注释类型,这些方法可以总结为隐式注意方法 (a) 和监督注意方法 (b),如图 1 所示。

    • 在这里插入图片描述
  • 具体来说,隐式注意力是通过计算一维或二维空间中所有位置的注意力分数从序列级文本注释中学习的。例如,一维序列注意力权重 是在不同的解码步骤中生成的,以提取编码序列中的重要项。二维注意力权重 是通过在所有空间位置上对嵌入的时间相关序列和视觉特征执行交叉注意操作生成的。然而,隐式注意力方法只提取粗糙甚至未对齐的空间区域作为字符注意力,可能会遇到对齐漂移注意力。相反,监督注意力是通过生成字符分割图从额外的字符级边界框注释中学习的。虽然这些监督注意力方法 可以缓解上述问题,但它们依赖于劳动密集型的字符级边界框注释,并且当字符类别数量很大时,它们关于字符类别的注意力图可能会占用大量内存

  • 为了解决上述问题,我们提出了一种新的基于注意机制的 STR 方法(图 1(c)),即自监督隐式字形注意(SIGA)。如图 2 所示,SIGA 通过联合自监督的文本分割和隐式注意对齐来描绘文本图像的字形结构,并在训练过程中作为学习注意力图的监督,以提高注意的正确性。具体而言,字形结构是通过用序列对齐的注意向量调制学习到的文本前景表示来生成的。根据图像的内部结构,从自监督分割结果中提炼出文本前景表示;通过对一维隐式注意向量应用正交约束获得序列对齐的注意向量。然后,它们作为文本图像中每个字符的位置信息来调制文本前景表示以在线生成字形伪标签

    • 在这里插入图片描述

    • 图 2. 用于文本识别的自监督隐式字形注意网络 (SIGA) 概览。

  • 通过引入字形伪标签作为注意力图的监督,学习到的字形注意力鼓励文本识别网络关注字形的结构区域,以提高注意力的正确性。与监督注意力方法不同,字形注意力图在处理字符类别较大的语言时不会带来额外成本,从而实现字符和解码顺序的一致性

  • 对于识别具有语言上下文的文本,SIGA 在七个公开可用的上下文基准上取得了最佳结果。我们还将字形注意模块封装为其他基于注意的方法的插件组件,在 SRN 和 ABINet 上分别实现了 5.68% 和 1.34% 的平均性能提升。

  • 值得一提的是,SIGA 在识别工业场景中广泛使用的无上下文文本(例如,工件序列号 [Industrial scene text detection with refined feature-attentive network] 和识别码 [Port recommendation system for alternative container port destinations using a novel neural languagebased algorithm])方面表现出了显著的优势。具体来说,我们贡献了两个大规模无上下文基准(真实世界的 MPSC 和合成的 ArbitText),其中的字符序列与合法单词不同。实验表明,SIGA 大幅提高了无上下文文本识别的准确率,在 MPSC 和 ArbitText 上分别比 MGP-STR 高 7.0% 和 10.3%。总之,主要贡献如下:

    • 我们提出了一种用于场景文本识别的新型注意力机制 SIGA,它能够通过联合自监督文本分割和隐式注意力对齐来描绘文本图像的字形结构,从而无需字符级边界框注释即可提高注意力的正确性。
    • 大量实验表明,所提出的字形注意对于提高视觉模型的性能至关重要。我们的方法在公开可用的上下文基准和我们贡献的大规模无上下文基准(MPSC 和 ArbitText)上实现了最先进的性能。
  • 构建字符伪标签

    • 我们惊奇地发现,绝大部分图像可以通过一个简单的kmeans聚类算法得到两个聚类中心,这两个聚类中心分别对应着前景和背景区域。考虑到无监督聚类算法不具有识别两个聚类中心的能力,我们结合了先验知识:在大部分情况下,文本实例图像的四条边缘像素值多属于背景。
    • 我们在背景和颜色比较复杂的TextSeg数据集上进行了分割性能评测,两个聚类中心的IoU值为39.8%和40.1%,结合先验知识后,其IoU为70.0%.有了聚类后的前景伪标签,我们进一步采取了无监督的策略去训一个文本分割器,旨在学习更好的前景特征表示
  • 基于隐式注意力的方法天然地提供了很好的水平位置信息。因此我们基于此进行再次开发。考虑到现有的隐式注意力方法,在解码阶段由于位置信息的掩码会存在注意力漂移的问题,也就是当前的注意力并不能够对齐当前需要解码的字符。因此我们提出了注意力对齐的方法,其思路很简单,我们提出了一个优化函数,旨在于保证两点:

    • 1)注意力向量之间两两正交;2)所有注意力向量与预测的文本掩码的点乘之和应尽可能与预测掩码相同
  • 然后我们提出字形注意力网络,监督信号为我们在线生成的字形伪标签。值得注意的是,我们的注意力网络通道数是固定的,不与字符类别数量有关系,默认情况下为文本实例图像最大字符数

  • SIGA方法的优点:1)建立了隐式注意力方法与有监督注意力方法的桥梁;2)不需要额外的标注,在线生成伪标签;3)相比于之前的粗糙的注意力,首次引入字形注意力去获得更加具有简明性的特征,显式地对特征图进行监督。

Related Work

  • 最近,已经开发了一些自上而下的方法来识别整个图像,而不是像传统的自下而上的方法那样直接识别字符片段 。这些方法可以粗略地分为与语言无关的方法和与语言感知的方法。 与语言无关的方法这些方法将STR视为字符级分类任务,主要利用视觉信息来识别文本。根据用于监督注意力的注释类型,开发了由序列级文本注释监督的STR的隐式注意方法,而监督注意方法需要额外的字符级边界框注释。

  • 具体来说,一些一维隐式注意方法 在一维空间上执行序列注意建模。输入文本图像首先被编码为一维序列特征。然后,它们使用双向解码器通过输出相应的注意权重进行预测来提取编码序列的注意特征。此外,一些二维隐式注意方法 通过关注图像中每个字符的空间视觉特征开发各种二维注意机制。例如,Li 等 [Show, attend and read] 将视觉特征与解码器的隐藏状态相结合,在每个解码步骤中关注空间字符特征。Fang 等 [Read like humans] 采用基于 Transformer 的结构来计算视觉特征所有空间位置的注意力分数,从而获得相应字符的注意力图。然而,在序列级文本标注的监督下,这些隐式注意方法很容易提取粗糙甚至不对齐的空间区域作为字符注意力

  • 相比之下,在额外的字符级边界框注释的监督下,一些监督注意方法 采用全卷积网络预测字符级分割结果,然后执行分类任务。例如,He 等人 利用分割概率图通过图卷积网络利用空间上下文进行文本推理。然而,文本图像的字符级注释既昂贵又费力。除了人工注释的限制之外,我们通过联合自监督文本分割和隐式注意对齐,将文本图像的字形结构描绘为注意力图的监督

  • 语言感知方法:受自然语言处理方法 的启发,STR 方法的视觉输出被输入到语言模型中,以实现利用语言上下文进行识别校正。例如,一些工作 堆叠多层自注意力结构 用于语义推理任务。受 BERT 中的掩蔽语言模型 (MLM) 的启发,Fang 等人 预训练所提出的 BCN,使其基于语言上下文预测文本中的掩蔽字符,并联合视觉输出来提高性能。虽然这些语言感知方法利用语言模型来优化与视觉模型的联合字符预测概率,从而减少了语言上下文的预测误差,但它们不能很好地推广到任意文本(例如,具有随机工件编码方案的无上下文文本)。因此,提取字符的独特视觉特征仍然是文本识别的关键。

Methodology

  • 在本节中,我们首先回顾一下具有代表性的基于注意机制的方法,该方法隐式学习一维注意权重,然后介绍我们的自监督隐式字形注意方法。

Implicit Attention Method over 1D Space

  • 隐式注意方法 由变换层、编码器和解码器组成。首先,变换层采用空间变换网络 (STN) 的变体薄板样条 (TPS) 将输入图像 X 变换为归一化图像 X‘ 。然后,编码器利用 ResNet 的变体从归一化图像 X ’ ∈ R C × H × W X’ \in \R ^{C×H×W} XRC×H×W 中提取序列特征 H ∈ R C × 1 × N H \in \R ^{C×1×N} HRC×1×N ,并将序列特征拆分为固定长度序列 { h i } i = 1 , . . . . N \{h_i\}_i=1,....N {hi}i=1,....N 。在解码器中,如图 3 (a) 所示,编码序列被输入到循环模块(例如 LSTM、GRU)中,以在解码步骤 t 生成输出向量 xt 和新的状态向量 st 。具体细节如下:

    • ( x t ; s t ) = r n n ( s t − 1 ; ( g t ; E ( y t − 1 ) ) ) ; ( 1 ) (x_t; s_t) = rnn(s_{t−1};(gt ; E(y_{t−1}))); (1) (xt;st)=rnn(st1;(gt;E(yt1)));(1)
  • 其中 (gt ; E(yt−1)) 表示 glimpse gt 与上一个解码步骤中预测的字符类别的嵌入向量的组合。其中,y0 表示人工定义的“<start>”token。glimpse 由注意力机制计算如下

    • 在这里插入图片描述

    • 其中 w;W;V 是可学习参数。最后,输出向量 xt 通过线性层预测当前解码步骤 t 的字符分类。解码器执行 T 次(即总解码步骤 T = 26),并按顺序输出分类结果。

  • 在这里插入图片描述

  • 图 3. 代表性的基于注意力机制的解码器和一些序列未对齐注意力机制示例的说明。(b) 中的红色虚线框表示注意力权重在当前解码步骤中难以对齐文本序列。

Our Self-supervised Implicit Glyph Attention

  • 在本研究中,我们以隐式注意方法 为基线结构,通过提出一种新颖的在线字形伪标签构建模块,描绘文本图像的字形结构作为注意网络的监督。学习到的字形注意鼓励文本识别网络关注字形的结构区域,以提高注意的正确性。
Glyph Pseudo-label Construction (GPC)
  • 对于规范化的图像,给定其文本掩码和每个字符的水平位置信息,我们可以通过计算它们之间的点积轻松获得这些字符的字形结构,而无需进行费力的像素级注释。为了实现这一目标,我们通过联合自监督文本分割和隐式注意力对齐在线构建字形伪标签。序列对齐的注意力作为文本图像中字符的位置信息,以调节学习到的文本前景表示以生成有意义的字形伪标签。

  • 1)自监督文本分割。在本小节中,我们希望通过语义分割网络学习具有字形形态结构的文本前景表示,该网络为未标记的文本图像上的每个像素分配前景或背景标签。观察到字形的底层形态表示不受轻微结构变化(例如,变厚或变薄)的影响,这减少了对像素级高精度分割的依赖,而像素级高精度分割需要昂贵的计算和注释成本。受先前知识的启发,我们从基于文本图像内部结构的聚类任务开始,以获得关于文本蒙版的伪标签 Spl。 为简单起见,我们将研究重点放在 K 均值上以实现聚类任务,但也可以使用具有预定义类别的其他聚类方法。在实验中,K 设置为 2,包括前景和背景类别。令人惊讶的是,大多数文本图像中的字形形态结构都很好地聚类了。然后,从我们设计的文本分割网络产生的自监督分割结果中提取文本前景表示。具体来说,我们将 ResNet 的 Conv 0、Block 0 和 Block 1 的输出定义为 P 0、P 1 和 P 2,并采用自上而下的金字塔架构,如下所示:

    • { O 2 = φ ( P 2 ) O 1 = φ ( [ τ ( O 2 , s 1 ) , P 1 ] ) O 0 = φ ( [ τ ( O 1 , s 0 ) , P 0 ] ) \left\{\begin{matrix} O_2=\varphi (P_2) \\ O_1=\varphi ([\tau (O_2,s_1),P_1]) \\ O_0=\varphi ([\tau (O_1,s_0),P_0]) \end{matrix}\right. O2=φ(P2)O1=φ([τ(O2,s1),P1])O0=φ([τ(O1,s0),P0])

    • 其中$\varphi (·) $表示具有 BatchNorm 和 ReLU 激活函数的两个卷积层,T (·) 表示对 Ok 进行一次 2× 上采样,分辨率为 sk(即 Hk × Wk),[·] 表示沿通道轴的连接操作。O0 被用于通过二分类卷积层生成文本分割掩码 Sm

  • 最后,我们在文本分割掩码 Sm 和伪标签 Spl 之间采用二元交叉熵损失 Lins 来优化文本分割网络。因此,优化后的分割网络可以感知具有挑战性的文本图像中具有字形形态结构的文本前景表示,而这些表示可能难以通过无监督聚类方法 K-means 进行分类。图 4 显示了一些可视化示例。

    • 在这里插入图片描述

    • 图 4. 一些分割示例。(a)表示原始图像,(b)表示 K 均值的结果,(c)是我们的文本分割图。在最后一组行中,经过良好学习的自监督文本分割模块可以捕捉具有挑战性的图像中的字形的形态结构。

  • 2)隐式注意对齐。在解码单元(等式 2)中,隐式注意权重 α={αt}t=1;…;T 关注编码序列中的重要项,以捕获字符依赖关系。令人鼓舞的是,我们将注意权重转换为其对应字符的位置信息。然而,解码器的时间信息在后面的解码步骤中被其他引入的信息淹没,这很容易导致对齐漂移,如图 3(b)所示,即可学习的注意权重难以对齐文本序列

  • 为了解决这个问题,我们对隐式注意权重施加正交约束,以获得序列对齐的注意向量。具体来说,我们将这些可学习的注意权重作为向量,进行对齐操作,确保它们彼此正交,并且每个处理后的向量与文本分割掩码 Sm 的对应字符对齐。假设 L 表示文本图像的字符数,我们首先计算 L 个注意向量之间的相关系数 Scor,然后利用注意向量提取字符显著性图 Ssal。具体如下:

    • 在这里插入图片描述

    • 其中 ξ 表示一维线性插值( ξ : α t ∈ R N → β t ∈ R W ξ : α_t \in \R ^N \rightarrow β_t \in \R^W ξ:αtRNβtRW )。σ(·) 表示非线性激活函数,将向量中的每个元素映射到 [0,1] 之间:

    • σ ( x ) = 1 = ( 1 + e x p ( − µ ( x − λ ) ) ) ; ( 5 ) σ(x) = 1=(1 + exp(−µ(x − λ))); (5) σ(x)=1=(1+exp(µ(xλ)));(5)

    • 其中 µ;λ 表示缩放和偏移转换,在实验中分别设置为 70 和 0.1。然后可以通过以下损失函数最小化相关系数 Scor 和 Sm 与 Ssal 之间的差异 Sdif,从而缓解对齐漂移问题:

    • 在这里插入图片描述

    • 其中 n 表示文本分割图 Sm 中的像素数量,ρi 和 ρ ∗ i 分别是 Sm 和 Ssal 中像素 i 的置信度得分。

  • 最后,通过在训练过程中优化所提出的约束函数,注意权重成功地与编码序列对齐,并为字形伪标签构建贡献了准确的位置信息。

  • 3)字形伪标签构建。通过计算对齐的注意权重β={βi}t=1;:::;T与文本分割掩码Sm之间的点积,我们得到字形伪标签。具体而言,假设字形伪标签为Sgt,我们从连接操作中构建它,如下所示:

  • S g t = [ 1 − S m ; 1 [ β 1 > δ ] ⋅ S m ; : : : ; 1 [ β T > δ ] ⋅ S m ] ; ( 7 ) S_{gt} = [1 − S_m; 1_{[β1>δ]} · Sm; :::; 1[βT >δ] · Sm]; (7) Sgt=[1Sm;1[β1>δ]Sm;:::;1[βT>δ]Sm];(7)

  • 其中 [·] 表示沿通道轴的级联操作。δ 表示置信度阈值,在实验中设置为 0.05。图 5 显示了自建 Sgt 的一些可视化示例。

  • 在这里插入图片描述

  • 请注意,建议的字形伪标签构造模块将在测试阶段被删除。

Glyph Attention Network (GLAN)
  • 现有的 STR 监督注意方法存在以下局限性:1)对于字符类别较大的语言,这些方法可能占用大量内存,并且由于其字符分割图依赖于类别而导致运行速度较慢。2)直接从 CNN 预测的字符分割图中获取文本的字符顺序并不容易。通常会引入额外的顺序分割分支来确保通道和解码顺序的一致性,这会带来时间和计算复杂度。3)训练分割网络需要费力且困难的字符级边界框注释

  • 得益于自行构建的字形伪标签,我们的字形注意网络不存在这些限制,因为顺序得到保证并且字符对齐良好。字形注意网络生成具有固定长度和与类别无关的通道的字形注意图,其通道特定图与顺序特定字形注意相对应。具体而言,紧接着几个卷积层,利用式3中的特征Ok来预测通道数为Ns的字形注意图Sgam。Ns设置为1 + M并且不等于字符类别,它表示背景类别与文本图像上设置的最大字符长度之和(M = 26)。例如,要识别包含6763个类别的中文GB2312,如果使用相同的卷积层并且特征通道为256,则监督注意方法的参数大小为1.7M(256×6763),而我们的方法的参数大小为6.9K(256×27)

  • 然后,在构建的字形伪标签 Sgt 的监督下,利用多类 Dice 损失 和交叉熵损失的联合损失函数来提升字形注意网络的分割性能。具体细节如下:

    • 在这里插入图片描述

    • 其中 wj,i 和 w j , i ∗ w^*_{j,i} wj,i 分别是伪标签 Sgt 和字形注意图 Sgam 中 j 索引图的第 i 个像素 pi 的置信度得分。ρi 是 Sm 中 pi 的置信度得分。L 表示文本图像的字符数

  • 最后,学习到的字形注意力机制鼓励识别分支关注字形的结构区域,从而为 STR 提取字形特征,这些特征包含更稳健、更具辨别力的字符表示。 具体来说,编码后的文本特征 O k ∈ R W k × H k × C O_k\in \R^{W_k×H_k×C} OkRWk×Hk×C 首先被输入到具有 BatchNorm 和 ReLU 激活函数的两个卷积层中,然后与字形注意力图 S g a m ∈ R W k × H k × M S_{gam}\in \R^{W_k×H_k×M} SgamRWk×Hk×M 相乘(去除背景),得到字形特征 I k ∈ R M × C I_k \in \R^{M×C} IkRM×C

Attention-based Character Fusion Module
  • 如上所述,视觉对齐的 glimpse gt 和字形特征 I k ; t I_{k;t} Ik;t 表示解码步骤 t 时的两个不同字符特征表示。考虑到它们对 STR 的贡献在不同的文本图像中应该是不同的,受门单元 的启发,我们动态融合序列 Ik;t 和 glimpse gt 以丰富字符识别的语义信息。最后,我们将最终序列嵌入到解码器 中以输出当前解码的分类结果。

Experiments

Datasets

  • 为了进行公平比较,我们在两个大型合成数据集(即 SynthText 和 MJSynth )上训练了模型。九个 STR 数据集用于评估我们方法的性能,包括七个公开可用的上下文基准 (即 IIIT5K-Words、ICDAR2003、ICDAR2013、Street View Text、ICDAR2015、SVT Perspective 和 CUTE80)和两个无上下文基准(MPSC 和 ArbitText)。图 6 显示了上下文和无上下文基准之间的差异。

    • 在这里插入图片描述

    • 图 6. STR 不同文本基准的比较。

  • MPSC:我们从标记有工件信息的工业图像中裁剪了 15003 个真实世界文本实例 ,这比七个上下文基准的总和还要大。 这些文本是从大量互联网图像中随机收集的,并非来自同一批产品,包含各种具有不规则字符组合的工件(例如,“YS6Q-6615-AD”、“TBJU8549728”和“RS550SH-4941”)用于标记工件信息。

  • ArbitText:我们还用 1M 张图片合成一个无上下文的 ArbitText,每个样本都是由英文字母和阿拉伯数字的随机组合生成的。

Implementation Details

  • 参数细节如表1所示。根据现有文本识别模型的骨干类型,我们构建了三种典型的SIGA 架构,即SIGAR、SIGAS 和 SIGAT,以便进行公平比较。对于以 ResNet45 为主干的 SIGAR,我们采用 Adam 优化器 和单周期学习率调度器 以最大学习率为 0.0005 来训练模型。我们使用与 ABINet 相同的增强策略,并将批次大小设置为 512,训练周期为 6。对于 SIGAS,我们选择具有局部和全局建模能力的 SVTR-L 作为骨干,训练参数与 SIGAR 相同。对于使用 ViT 作为骨干的 SIGAT,我们使用与 MGP-STR 相同的设置,包括优化器、学习率调度器和批次大小。为了使 Transformer 结构适应我们的方法,我们选择 2、4 和 6 层 ViT 的输出作为 P 0、P 1 和 P 2 来执行 GPC 模块。
    • 在这里插入图片描述

Comparisons on context benchmarks

  • Language-free model. 无语言方法主要利用视觉信息来识别文本。如表 2 所示,我们根据主干类型与之前最先进的无语言方法进行比较,以公平地评估我们的方法在标准上下文基准上的有效性

    • 在这里插入图片描述

    • 表 2. 与语言无关的 STR 方法的比较结果。y 表示公平比较的视觉模型性能。∗ 结合了 21 个混合块(10 个局部块和 11 个全局块),具有局部和全局建模功能,用于提取特征。“Trns”是指由 MHSA 和 FFN 组成的几个 Transformer 单元 。“SATRN”是为基于 Transformer 的文本特征提取器 量身定制的。 这些符号在本文的范围内遵循相同的惯例。最佳结果以粗体显示。下划线值代表第二好的结果。

  • 对于基于 CNN 的方法,SIGAR 在七个上下文基准上实现了最佳性能。具体来说,与监督注意方法(CAFCN 和 TextScanner )相比,SIGAR 不需要额外的字符级注释,并在这些基准上带来了显着的性能提升(2.0% ∼ 11.8%)。 与隐式注意方法相比,SIGAR 具有更好的性能,在 IIIT、IC03-860、IC03-867、IC13-857、IC13-1015 和 IC151811 基准上分别比第二好的结果高出 0.3%、0.7%、0.8%、0.6%、0.5% 和 1.1%。SIGAR 在 SVT、IC15-2077 和 SP 基准上也实现了具有竞争力的性能(下划线值)。

  • 我们还部署了 SVTR 的主干来实现 STR,因此,SIGAS 在其报告的六个标准基准中的四个上获得了更高的准确度,平均准确度提高了 0.63%。

  • 对于基于 Transformer 的方法,SIGAT 显示出其突出的优势,并在 IIIT、SVT、IC03-860、IC03-867、IC13-857、IC13-1015 和 CT 基准上取得了最佳结果。此外,我们还在 IC15-1811 和 IC15-2077 基准上获得了有竞争力的结果。这些结果证明了我们的方法在上下文基准上的有效性,因为通过引入字形注意力可以成功提取出更具辨别力的视觉特征

  • 语言感知模型。语言模型的语义推理任务会纠正视觉输出,以减少具有语言上下文的预测误差(例如,将“unjversity”纠正为“university”),从而提高上下文基准上的整体识别准确率。如表 3 所示,与这些语言感知方法进一步比较时,SIGAR 在大多数标准基准上取得了有竞争力的结果,而 SIGAT 尽管没有在具有语言上下文的基准上使用语义推理任务,但在八个基准中的六个上获得了最佳准确率。具体而言,SIGAT 在 SVT、IC13-857、SP 和 CT 基准上的表现分别好 1.5%、0.4%、1.2% 和 0.9%,这意味着视觉模型在上下文基准上仍然可以表现良好。

    • 在这里插入图片描述

    • 表 3. 语言感知 STR 方法的比较结果。“V”和“VL”类型分别指无语言模型和语言感知模型。最佳结果以粗体显示。下划线值代表第二好的结果。

  • 训练参数:

    • Data Arguments:
      DataArguments(datasets='scene-ocr', sep_image_conv_front=False, image_token_len=256, image_aspect_ratio='square', conversation_version='mpt', box_limit=0)
      
      Training Arguments:
      TrainingArguments(
      _n_gpu=1,
      adafactor=False,
      adam_beta1=0.9,
      adam_beta2=0.999,
      adam_epsilon=1e-08,
      auto_find_batch_size=False,
      bf16=False,
      bf16_full_eval=False,
      cache_dir=None,
      data_seed=None,
      dataloader_drop_last=False,
      dataloader_num_workers=4,
      dataloader_persistent_workers=False,
      dataloader_pin_memory=True,
      ddp_backend=None,
      ddp_broadcast_buffers=None,
      ddp_bucket_cap_mb=None,
      ddp_find_unused_parameters=None,
      ddp_timeout=1800,
      debug=[],
      deepspeed=/zero_config/zero2.json,
      disable_tqdm=False,
      dispatch_batches=None,
      do_eval=False,
      do_predict=False,
      do_train=False,
      eval_accumulation_steps=None,
      eval_delay=0,
      eval_steps=None,
      evaluation_strategy=no,
      force_fsdp=False,
      fp16=True,
      fp16_backend=auto,
      fp16_full_eval=False,
      fp16_opt_level=O1,
      fsdp=[],
      fsdp_config={'min_num_params': 0, 'xla': False, 'xla_fsdp_grad_ckpt': False},
      fsdp_min_num_params=0,
      fsdp_transformer_layer_cls_to_wrap=None,
      full_determinism=False,
      gradient_accumulation_steps=2,
      gradient_checkpointing=True,
      gradient_checkpointing_kwargs=None,
      greater_is_better=None,
      group_by_length=False,
      half_precision_backend=auto,
      hub_always_push=False,
      hub_model_id=None,
      hub_private_repo=False,
      hub_strategy=every_save,
      hub_token=<HUB_TOKEN>,
      ignore_data_skip=False,
      include_inputs_for_metrics=False,
      include_num_input_tokens_seen=False,
      include_tokens_per_second=False,
      interleave=False,
      jit_mode_eval=False,
      label_names=None,
      label_smoothing_factor=0.0,
      learning_rate=1.5e-05,
      length_column_name=length,
      load_best_model_at_end=False,
      local_rank=3,
      log_level=passive,
      log_level_replica=warning,
      log_on_each_node=True,
      logging_dir=/runs/Sep25_14-05-19_user-NULL,
      logging_first_step=False,
      logging_nan_inf_filter=True,
      logging_steps=1.0,
      logging_strategy=steps,
      lora_alpha=16,
      lora_bias=none,
      lora_dropout=0.05,
      lora_enable=False,
      lora_r=8,
      lora_weight_path=,
      lr_scheduler_kwargs={},
      lr_scheduler_type=cosine,
      max_grad_norm=1.0,
      max_steps=-1,
      metric_for_best_model=None,
      model_max_length=8192,
      mp_parameters=,
      neftune_noise_alpha=None,
      no_cuda=False,
      num_train_epochs=8.0,
      optim=adamw_torch,
      optim_args=None,
      output_dir=/MPSC0924/,
      overwrite_output_dir=False,
      past_index=-1,
      per_device_eval_batch_size=8,
      per_device_train_batch_size=2,
      prediction_loss_only=False,
      push_to_hub=False,
      push_to_hub_model_id=None,
      push_to_hub_organization=None,
      push_to_hub_token=<PUSH_TO_HUB_TOKEN>,
      ray_scope=last,
      remove_unused_columns=False,
      report_to=[],
      resume_from_checkpoint=None,
      run_name=/MPSC0924/,
      save_on_each_node=False,
      save_only_model=False,
      save_safetensors=True,
      save_steps=500,
      save_strategy=steps,
      save_total_limit=1,
      seed=42,
      skip_memory_metrics=True,
      split_batches=False,
      tf32=True,
      torch_compile=False,
      torch_compile_backend=None,
      torch_compile_mode=None,
      torchdynamo=None,
      tpu_metrics_debug=False,
      tpu_num_cores=None,
      use_cpu=False,
      use_ipex=False,
      use_legacy_prediction_loop=False,
      use_mps_device=False,
      warmup_ratio=0.001,
      warmup_steps=0,
      weight_decay=0.0,
      with_box=False,
      )
      

Comparisons on contextless benchmarks

  • 无上下文文本由随机字符序列组成,广泛应用于工业场景 。与上下文基准不同,它们包含的语义信息较少。因此,利用语言上下文构建隐式语言表示的语言感知方法不适用于这些无上下文文本。利用文本图像的视觉特征对于提高无上下文基准的识别准确率至关重要。如表 4 所示,我们利用相同的训练数据(MJ 和 ST)与其他无语言文本识别方法进行了对比实验。这些结果是通过直接加载它们发布的检查点进行评估获得的。具体来说,我们首先在我们贡献的真实世界 MPSC 基准上进行评估。然后,我们还合成了一个具有 1M 文本图像的大规模无上下文基准 ArbitText,以进一步评估无语言模型的通用性和有效性。

  • 因此,我们的方法在这些无上下文基准上表现出明显的优势,因为在现实世界的 MPSC 和合成 ArbitText 基准上,SIGAR 比 PIMNet 高 4.8% 和 4.9%,SIGAS 比 SVTR 高 1.3% 和 2.9%,SIGAT 比 MGP-STR 高 7.0% 和 10.3%。

  • 这些结果一致强调,SIGA 可以很好地推广到任意文本(上下文基准和无上下文基准),并且提出的字形注意力对于提高视觉模型的性能至关重要。

Ablation Study

  • 为了提高效率,所有消融实验均使用 SIGAR 进行。网络结构。我们的架构由字形伪标签构造 (GPC)、字形注意网络 (GLAN) 和基于注意的字符融合模块 (ACFM) 组成。但是,由于它们相互依赖,因此应将 GLAN 与 GPC 一起作为联合结构 (JS) 进行评估,即 GLAN 在训练期间由 GPC 生成的字形伪标签进行监督。因此,我们首先执行“Baseline+JS”模型来评估我们结构的有效性。

  • 如表5所示,“Baseline+JS”模型的准确率比“Baseline”提高了7.01%。然后,添加ACFM的增益进一步提高了0.45%,平均准确率从91.65%提高到92.10%。此外,我们还将JS结构作为插件组件封装到SRN 和ABINet 中。如表5第二组行所示,在使用我们的JS结构后,这两个模型的平均准确率分别提高了5.68%和1.34%。这些结果表明,通过JS结构提取的字形注意力对于促进字符识别是有效且重要的。

    • 在这里插入图片描述

    • 表 5. 所提出的 SIGAR 结构在上下文基准上的消融研究。“JS”表示 GPC 和 GLAN 的联合结构,因为 GLAN 需要 GPC 来构建字形伪标签。

  • 内隐注意力对齐的有效性。我们在补充材料中提供了有关内隐注意力对齐模块的有效性分析和理论基础。

  • 超参数。超参数将注意力权重α映射到不同的数值范围。对于公式5中的 λ 和 μ,它们将α编码为[0,1]以生成Ssal(最小化Ssal和Sm之间的差异以缓解对齐漂移问题)。对于公式7中的δ,它将α二值化为 0 或 1 以构造Sgt(获得字形伪标签)。为了进一步观察注意力权重值α,我们对验证集上 α 最大值的分布进行了统计分析,如图 7 所示。因此,根据先验分布,很容易将超参数设置为合理的值。具体而言,我们将置信度阈值δ分别设置为0.05、0.1和0.15,十个标准上下文基准上的平均准确率为91.19%、90.75%和90.43%。对于式5中的µ和λ,我们分别设置三个合适的参数对(µ,λ)为(100,0.05),(70,0.1),(40,0.15),平均准确率分别为91.02%,91.19%和90.83%。

  • 可视化分析。我们在图 8 中可视化了字符注意力图,这表明了对字符识别有重要贡献的区域。SIGA 方法在水平、定向、弯曲和模糊文本图像上的更多可视化结果见补充材料。 具体来说,(a) 和 (b) 中的每个图分别由代表性隐式注意方法 ABINet 和我们的方法 SIGA 生成。与隐式注意机制不同,我们的方法可以感知字形的更细粒度的结构信息。特别是,在字形非常模糊的文本图像中(图 8 中的第五组行),我们的注意力仍然可以退化为与其他 STR 模型相同的注意力形式。据我们所知,我们的方法是第一个探索 STR 中的字形结构的方法

    • 在这里插入图片描述

    • 图 8. ABINet(a)和 SIGA(b)生成的广泛 2D 注意力可视化结果。

  • 性能和成本。我们在表 6 中添加了速度和参数比较。对于由于输入大小较大(例如 64×256)而具有更多参数的监督注意方法(即 CA-FCN 和 TextScanner),SIGAR 不需要额外的字符级注释,并且比表 2 中的方法具有更好的性能。对于隐式注意方法,SIGAR 增加了不可避免但可以接受的参数量(比 ABINet 大 16.9M,主要用于轻量级字形注意结构),同时获得了其他 STR 方法未探索的更详细的字形结构。因此,我们的方法在表 2 和表 4 中实现了最佳性能。

    • 在这里插入图片描述

    • 表6 速度与参数量比较结果。

Conclusions

  • 在本文中,我们提出了一种基于注意力机制的 STR 新方法,即自监督隐式字形注意力 (SIGA)。 SIGA 克服了人工进行字符级标注的困难,通过联合自监督文本分割和隐式注意力对齐,将文本图像的字形结构描绘为注意力图的监督。然后,学习到的字形注意力会鼓励文本识别网络关注字形的结构区域,以提高注意力的正确性。最后,大量实验表明,SIGA 在上下文和非上下文基准上均取得了最佳性能。

Supplementary Material

Further Details for Text Datasets

  • 本节我们将展示更多文本数据集的可视化效果。如图9所示,现有的场景文本识别数据集取自自然场景,包括交通标志、商场商标、广告牌等。 这些图像的文字比较清晰,风格和颜色多变,背景混乱。

    • 在这里插入图片描述
  • 相比之下,MPSC 数据集包含许多无上下文的文本,这些文本具有低视觉对比度、表面腐蚀和光照不均匀等特点(如图 10 所示),这对无上下文文本识别提出了新的挑战。具体来说,这些文本图像用拉丁字符和阿拉伯数字标记,以记录序列号、生产日期和其他产品信息。识别这些文本在智能工业制造中起着越来越重要的作用,有利于提高工业生产线的装配速度和工业场景中物流传输的效率。此外,如图 11 所示,我们使用合成工具 [Synthtiger: Synthetic text image generator towards better text recognition models] 通过选择合适的背景图像和各种字体和颜色来生成这些文本图像。ArbitText 数据集的每个文本都包含拉丁字符和阿拉伯数字的随机组合。整个数据集包含 1M 幅图像,用于评估无语言模型在无上下文文本上的泛化和效率。

    • 在这里插入图片描述

Effectiveness of IAA Module

  • 我们测量了隐式注意力对齐 (IAA) 模块对精细注释数据集 TextSeg 的影响。
Metric
  • b ∈ { 0 ; 1 } H × W b \in \{0; 1\} ^{H×W} b{0;1}H×W为通过将 1 分配给真实字符框中的位置而生成的字符掩码,否则为 0,我们通过沿 x 轴对 b 进行最大运算来计算其水平投影 l ∈ { 0 ; 1 } W l \in \{0; 1\}^W l{0;1}W。然后我们假设 l ∈ { 0 , 1 } W l\in \{0,1\}^W l{0,1}W 表示针对相应字符的注意力的阈值网络预测(> 0:05 = 1),度量 Θ 定义为: Θ = l ⋅ l ˉ / ∣ ∣ l + l ˉ − l ⋅ l ˉ ∣ ∣ 1 Θ = l·\bar l/||l+\bar l−l·\bar l||_1 Θ=llˉ/∣∣l+lˉllˉ1。然后,我们还在十个标准上下文基准上评估了它们的平均识别准确率。具体而言,详细的消融结果如表 7 所示
    • 在这里插入图片描述

Theoretical Basis
  • 给定一个归一化图像,让 l t ; l ˉ t ∈ { 0 ; 1 } W l_t;\bar l_t \in \{0; 1\}^W lt;lˉt{0;1}W 为其真实水平投影,并在解码时间 t 处对注意力进行阈值网络预测,我们以 l ˉ t = l t ; ∀ t ∈ { 1 ; . . . ; T } \bar l_t = l_t; \forall t \in \{1; ...; T\} lˉt=lt;t{1;...;T} 为目标来缓解对齐漂移问题。具体来说,我们在隐式注意力对齐模块中提出了一个约束函数,可以总结如下:

    • 在这里插入图片描述

    • 其中 M ˉ ∈ ( 0 ; 1 ) W × H \bar M \in (0; 1)^{W×H} Mˉ(0;1)W×H 是我们网络对文本掩码的预测,并且 ψ : R W → R W × H \psi:\R^W \rightarrow \R^{W×H} ψRWRW×H 具有维度扩展。理想情况下,将 M 定义为真实文本掩码,假设 ~M = M,目标 l ˉ t = l t ; ∀ t ∈ { 1 ; . . . ; T } \bar l_t = l_t; \forall t \in \{1; ...; T\} lˉt=lt;t{1;...;T} 是一个很好的可行解,因为:

    • ∑ 1 ≤ i < j ≤ T l i ⋅ l j = 0 ∑ i = 1 T ( ψ ( l i ) ⋅ M ) = M \sum_{1\leq i<j\leq T}l_i·l_j=0\\ \sum^T_{i=1}(\psi(l_i)·M)=M 1i<jTlilj=0i=1T(ψ(li)M)=M

  • 虽然目标是我们约束函数的必要条件但不充分条件,因为存在一些极端情况,但注意机制在大多数图像中起作用的普遍性确保了SIGA能够朝向目标,这也由上述消融结果证明

Visualizations of Glyph Attention

  • 在SIGA中,有五个重要的项帮助文本识别网络获取字形特征以提高性能。它们分别是文本伪标签Spl、序列比对权重β、文本分割掩码Sm、字形伪标签Sgt和字形注意图Sgam

  • 具体而言,给定输入图像X,SIGA首先采用K均值算法生成文本伪标签Spl,并进一步利用文本伪标签优化我们设计的自监督文本分割模块以生成文本分割掩码Sm。然后,我们遵循隐式注意方法作为基线结构以获得隐式注意权重α,通过正交约束将其转化为序列对齐的注意向量β,并作为字符在输入图像X中的位置信息。接下来,我们通过序列对齐注意向量β和学习到的文本分割掩码Sm之间的点积运算获得字形伪标签Spl。最后,在字形伪标签Spl的监督下,我们的文本识别网络产生字形注意图Sgam。

  • 为了进一步说明 SIGA 中字形结构的生成流程,如图 13-16 所示,我们在水平、定向、弯曲和模糊的文本图像上可视化了这些项目的更多示例。具体来说,每个示例都遵循图 12 中的排列顺序。

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 图 13. SIGA 方法在水平文本图像上的可视化结果。

    • 在这里插入图片描述

    • 图 14. SIGA 方法对定向文本图像的可视化结果。

    • 在这里插入图片描述

    • 图15.SIGA方法在弯曲文本图像上的可视化结果。

    • 在这里插入图片描述

    • 图 16. SIGA 方法对模糊文本图像的可视化结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值