【读点论文】Revisiting Scene Text Recognition A Data Perspective,整理了一个大的数据集,从数据统计角度看发展和挑战。对比13个模型在英文场景下表现

Revisiting Scene Text Recognition: A Data Perspective

Abstract

  • 本文旨在从面向数据的角度重新评估场景文本识别(STR)。我们首先回顾了STR中常用的六个基准测试,并观察了性能饱和的趋势,即只有2.91%的基准图像不能被13个代表性模型的集合准确识别。虽然这些结果令人印象深刻,并且表明STR可以被认为是解决了,但是,我们认为这主要是由于通用基准的挑战性较小,从而掩盖了STR面临的潜在问题。为此,我们整合了一个大规模的真实STR数据集,即Union14M,该数据集包含400万张标记图像和1000万张未标记图像,以评估STR模型在更复杂的现实场景中的性能。我们的实验表明,13个模型在400万张标记图像上的平均准确率只能达到66.53%,这表明STR在现实世界中仍然面临着许多挑战。通过分析13个模型的错误模式,我们确定了STR中的7个开放挑战,并开发了一个由8个不同子集组成的挑战驱动基准,以促进该领域的进一步发展。我们的探索表明,STR远未得到解决,利用数据可能是一个有前途的解决方案。在这方面,我们发现通过自监督预训练利用1000万张未标记图像可以显著提高STR模型在现实场景中的鲁棒性,并获得最先进的性能。代码和数据集可在 https://github.com/Mountchicken/Union14M。
  • 论文地址:[2307.08723] Revisiting Scene Text Recognition: A Data Perspective (arxiv.org), Accepted to ICCV2023 Revisiting Scene Text Recognition: A Data Perspective (union14m.github.io)
  • 在线Demo:https://huggingface.co/spaces/Mountchicken/MAERec-Gradio

Introduction

  • 深度学习在视觉识别任务中的成功很大程度上依赖于广泛的标记数据。STR中广泛使用的范式是在大规模合成数据集上训练模型,并在六个真实基准上进行评估。令人鼓舞的是,STR目前的进展已经呈现出精度饱和的趋势(如下图所示)。共同基准测试中的挑战似乎“解决”了,这表明改进范围狭窄,以及最近sota中性能增长的放缓。这种现象激发我们提出以下问题:1)共同的基准是否仍然足以推动未来的进展,2)这种精度饱和是否意味着STR得到了解决。

    • 在这里插入图片描述

    • STR模型在原始论文中报告的六种常用基准上的平均精度。模型是用合成数据训练的。

  • 对于第一个问题,我们首先选择了13个有代表性的模型,包括基于ctc的,基于注意力的和基于语言模型的模型。然后,我们在六个STR基准上评估它们的性能,以找到它们的联合误差。如下图所示,在总共7672张基准图像中,13个模型中只有3.9%(298张)的图像不能被正确识别,其中25.5%的图像标注错误,35.2%的图像几乎无法识别(人类无法识别的样本,见附录a)。这表明,准确率的提高幅度可能最高为2.91%(222张图像),最低为1.53%(117张图像,不包括人类无法识别的样本)。因此,通用基准对未来STR研究的洞察力有限。

    • 在这里插入图片描述

    • 对六个STR基准的错误分析。

  • 常见基准中的准确度饱和可能会掩盖STR模型仍然面临的挑战。因此,为了在这些基准之外带来更深刻的见解,并使现实世界的STR应用受益,我们整合了一个大规模的真实数据集,即Union14M(下图),以仔细分析STR模型在更广泛的现实世界场景中的性能。Union14M由400万张标记图像(Union14M- l)和1000万张未标记图像(Union14M- u)组成,这些图像来自17个公开可用的数据集。因此,它可以被认为是现实世界中文本的综合表示。

    • 在这里插入图片描述

    • Union14M概述,用于分析现实场景中的STR模型。Union14M包含4M张带标签的图像(Union14M- l)和10M张未标记的图像(Union14M- u),涵盖了广泛的现实场景,具有很强的多样性和复杂性。

  • 利用Union14M-L,我们从多个角度对上述13个STR模型进行了定量评估,从而揭示了STR中仍然存在的挑战。我们的初步观察与从合成到真实的训练范式有关。我们发现在合成数据上训练的模型在Union14ML上表现不佳,平均准确率只有66.53%,尽管在常用基准上达到了87.03%的平均准确率。这一结果表明,这种范式与更复杂的现实世界设置不兼容。随后,我们分析了这13种模型的错误模式,发现它们对曲线文本多方向文本无上下文文本艺术文本这四个现有挑战的鲁棒性仍然较差。此外,我们确定了在现实世界中普遍存在但在STR社区中受到较少关注的另外三个挑战,即多词文本、凸出文本和不完整文本。

  • 为了在现实场景中对STR模型进行更彻底的评估,并鼓励对上述七个挑战的未来研究,我们构建了一个挑战驱动的基准,该基准包括来自Union14M-L的8个子集,其中包含400,000个通用样本和9,383个特定挑战样本。在这个新的基准上进行了大量的基线实验,我们发现尽管使用真实数据进行训练,目前的SOTA模型只能达到平均准确率74.6%。这表明STR在现实世界中仍然面临诸多挑战,也回答了STR远未解决的第二个问题。

  • 本质上,我们推断STR模型在现实世界中的次优性能可归因于数据问题,例如,缺乏足够的真实标记数据用于训练。为了从数据的角度解决STR问题,我们提出了一种利用未标记数据的解决方案。具体来说,我们研究了一种基于Vision transformer的STR模型(下图),该模型可以通过自监督预训练利用Union14M-U中10M未标记的图像。

    • 在这里插入图片描述

    • MAERec概述。它由一个ViT作为主干和一个自回归变压器解码器[24]组成。

  • 预训练的ViT模型展示了强大的文本表示能力,在对真实标记数据进行微调后,它在六个常见基准测试和提出的挑战驱动基准测试上都实现了SOTA性能。我们的贡献总结如下:

    • 我们从数据角度分析STR,得出两个宏观发现。首先,常见的基准不足以为STR领域的发展提出足够的挑战。其次,尽管取得了重大进展,但STR模型在现实场景中的表现仍然很差。可以肯定地说,STR问题仍远未得到解决。
    • 我们整合了一个大规模的真实STR数据集来研究STR模型在现实世界中的性能。通过定量分析,我们发现当前的STR模型未能解决七个开放的挑战。因此,我们提出了一个挑战驱动的基准,以促进未来在STR领域的全面和深入研究。
    • 我们利用了未标记数据的潜力,并观察到它们可以通过自我监督的预训练带来显著的性能提升,为现实世界中的STR提供了一个实用的解决方案。

Related Works

Data Analysis in STR

  • 在场景文本识别中,提出了一些工作来分析几个数据问题。例如,Baek等人【What is wrong with scene text recognition model comparisons? dataset and model analysis】指出了STR方法中训练数据与基准之间的不一致性。他们还对常见的基准进行了全面的分析,发现他们提出的四阶段框架不能识别7.5%的图像。在这项工作中,我们通过使用13个不同的STR模型进一步将其细化为3.9%。Baek等人[What if we only use real datasets for scene text recognition? toward scene text recognition with fewer labels]探讨了真实数据对STR模型性能的影响,他们发现在较少的真实数据上进行训练比在更多的合成数据上进行训练可以获得更好的性能,最近的几项研究[Scene text recognition with permuted autoregressive sequence models,Reading and Writing: Discriminative and generative modeling for selfsupervised text recognition,TextOCR]通过使用真实数据进行训练证实了这一发现。在随后的实验中,我们还观察到在真实数据上训练模型可以提高模型的泛化能力,这对于现实世界的STR应用来说是必不可少的

Data Shift in STR

  • 场景文本识别是一项细粒度的任务,需要大量的训练数据。早期,由于缺乏足够的真实标注数据,STR模型是在大规模的合成数据集上进行训练的,如 MJ 和 ST。这种训练范式今天仍然盛行,因为最先进的方法[ Read Like Humans,On recognizing texts of arbitrary shapes with 2d self-attention,Multi-modal Text Recognition Networks: Interactive enhancements between visual and semantic features]在通用基准上不断产生更好的性能。然而,在合成数据上训练的模型可能会遇到泛化问题,因为合成数据和现实环境之间存在很大的领域差距。
  • 同时,近年来也出现了一些带注释的真实数据集。最近的几项工作试图整合这些数据集。例如,OOV数据集是七个真实数据集的合并,用于研究词汇外问题。还有一些工作分别使用不同数量的真实数据集构建训练集,取得了比在合成数据上训练更好的效果。在这项工作中,我们的目标是分析STR模型在现实世界中的性能及其面临的挑战。因此,我们将Union14M与更真实的数据集合并,从而可以将其用作我们分析的真实映射

Benchmarks in STR

  • 在STR中,常用的基准有六种,包括常规文本基准: IC13、IIIT、SVT 和不规则文本基准: IC15、SVTP、CUTE。最近的一些工作尝试使用替代基准进行评估,并且他们也观察到与六个基准相比,这些基准的性能下降。这表明存在着超出共同基准范围的挑战,有必要进行深入分析。

Preliminary: A Real Dataset for Analysis

  • 正如前面所讨论的,六个STR基准测试几乎已经达到饱和点,并且可能不足以促进我们对更广泛的现实场景的分析。因此,我们整合了一个大规模的真实STR数据集,表示为Union14M,包括400万张标记图像(Union14M- l)和1000万张未标记图像(Union14M- u),以支持我们的后续分析。

Dataset Consolidation

  • Union14M-L: 4M标记图像。我们的数据收集策略的主要目标是包含广泛的真实场景。为此,我们从14个公开可用的数据集(下表)中收集标记图像,组成Union14M-L。这些数据集表现出不同的属性。例如,ArT数据集专注于曲线文本; ReCTS、RCTW、LSVT、KAIST、NEOCR 和 IIIT-ILST数据集针对不同国家的街景设计; MTWI 来源于网页,包含场景文本图像; COCOTextV2 包含大量低分辨率文本图像和垂直文本图像; IntelOCR、TextOCR 和HierText 都来源于OpenImages , OpenImages是一个庞大的数据集,拥有900万张图像,覆盖了广泛的真实场景。14个数据集的整合可以看作是对现实世界的映射,使我们的分析能够面向现实世界的场景

    • 在这里插入图片描述

    • Union14M的组成 † 表示数据集与当前基准重叠。‡ 表示相互重叠的数据集。# Original表示原始数据集中文本实例的数量。

  • 然而,由于不同的标注格式和重复、非拉丁和损坏样本的存在,这14个数据集的简单组合不是最优的。因此,我们采用以下策略进行细化。

    • 裁剪文本实例。大多数数据集为文本实例提供多边形注释,直接使用多边形进行裁剪是一种直观的选择。然而,我们猜想这可能是次优的。相反,我们使用最小的轴对齐矩形进行裁剪,这可能会导致裁剪文本实例产生额外的背景噪声。这种裁剪策略本质上是一种正则化形式,因为它引入了具有挑战性的样本(即那些具有更多背景噪声的样本),从而增强了识别器的鲁棒性。这在端到端系统中是有益的,因为识别器可以较少地依赖于检测器的性能,并且还允许我们将分析重点放在识别器的性能上。我们在附录B.2中验证了这个关于裁剪方法的猜想。
    • 排除重复的样本。我们首先删除 Union14M-L 和公共基准测试之间的重复样本。接下来,我们去除 14 个数据集中的重复样本。例如,HierText, TextOCR 和 IntelOCR 彼此重复,因为它们都是来自OpenImages 的注释。我们选择 HierText 作为参考,并从剩下的两个数据集中删除重复的样本。
    • 删除非拉丁和被忽略的样本。在这项工作中,我们重点研究了广泛使用且拥有大量数据的拉丁字符。因此,我们只保留了由字母、数字和符号组成的样本。我们还删除注释为忽略的样本。
  • Union14M-U: 10M未标记图像。自监督学习使计算机视觉取得了实质性的发展,在STR领域也出现了一些相关的工作。在现实场景中提高STR性能的最佳解决方案是利用更多的数据进行训练。然而,标记文本图像既昂贵又耗时,因为它涉及到注释序列,并且需要专门的语言专业知识。因此,研究通过自监督学习对STR使用未标记数据的潜力是很有必要的。为此,我们从三个大型数据集中收集了10M 张未标记图像,包括Book32、OpenImages和 Conceptual Captions (CC) 数据集。为了获得高质量的文本实例,我们采用了与以往作品不同的收集方法。我们使用三个文本检测器[Real-time scene text detection with differentiable binarization and adaptive scale fusion,Omnidirectional scene text detection with sequential-free box discretization,EAST: an efficient and accurate scene text detector] 和 一个 IoU 投票机制来获取文本实例(详见附录B.1)。从OpenImages 收集的未标记图像也与 Union14M-L 中标记的图像进行去重复。

Characteristics of Real-World Data

  • 不同的文本样式。如上文图所示,Union14M 涵盖了多种真实场景的文本图像。现实世界的文本图像呈现出不同的布局,例如曲线,倾斜和垂直,以及具有挑战性的干扰,包括模糊,复杂的背景和遮挡,以及场景文本的各种现实世界应用,例如街景和徽标。值得注意的是,Union14M 包含大量垂直文本实例(下表中的最后一列),这在现实世界中很常见,但在合成数据集中却很少见。

    • 在这里插入图片描述

    • Union14M与合成数据集 MJ 和 ST 的统计。垂直实例是文本图像,其高度至少是其宽度的两倍,并且具有多个文本字符

  • 大的词汇量。合成数据集中使用的文本是从常用语料库中获得的。然而,在现实世界的场景中,有许多文本变体没有被语料库覆盖,例如字母数字字符和符号的随机组合,例如车牌,或者多语言字母组合,例如汉语拼音。在上表中,我们展示了 Union14M-L 中的词汇量几乎是合成数据集的两倍,这表明 Union14M-L 可以涵盖更广泛的现实情况,从而可以进行进一步的分析。

Analysis of STR in Real World

  • 在本节中,我们利用Union14M-L的广泛性对 13 个STR模型的性能进行了全面分析。本分析的目的是评估STR模型对众多现实挑战的鲁棒性,识别现有挑战,并促进未来的研究进展。

Overall Performance Evaluation

  • 我们首先选择 13 个在合成数据集上训练的代表性模型,在 Union14M-L 上进行评估。如下表所示,与普通基准测试的性能相比,它们在 Union14M-L 上的性能下降非常明显,平均准确率下降了20.50%。这一结果表明,在合成数据上训练的模型不能很好地推广到更复杂的现实世界场景。相反,它也表明Union14M-L具有普通基准没有涵盖的挑战,值得深入研究。
    • 在这里插入图片描述

    • 我们使用13个公开可用的模型进行评估。Acc-CB 代表六种常用基准的平均精度。Acc-UL 代表所有Union14M-L 数据的准确性。

Challenge Mining

  • 为了识别 13 个模型的共同误差,我们根据正确预测的数量为 Union14M-L 中的每个样本分配了一个难度分数(详见附录B.3)。我们专注于大多数模型无法做出正确预测的硬样本,并总结了尚未充分解决的四个挑战(下图的左侧)。此外,我们还介绍了现实世界中常见的三个额外挑战,但在以前的作品中很少讨论(下图的右侧)。
    • 在这里插入图片描述

    • 13个STR模型的误差分析。我们选择了四个具有代表性的模型并展示了它们的预测结果(绿色文本代表正确预测,红色文本反之)。蓝色的方块(a、b、e、f)代表四个未解决的挑战,绿色的方块(c、d、g)代表另外三个很少被讨论的挑战。最好以彩色观看。

Unsolved Challenges
  • 曲线的文本。近年来,曲线文本识别得到了相当大的关注,主流的方法有两种:一种是依靠校正,另一种是采用二维注意机制。两种方法在曲线文本基准CUTE上都产生了很好的结果[A robust arbitrary text detection system for natural scene images]。然而,在CUTE基准中,曲线文本的比例是有限的,而且曲率的程度很小。对于如上图a所示的高度弯曲的文本,目前的方法仍然表现出有限的性能。
  • 多方向文本文本可以以任何方向出现在任何对象的表面,包括垂直、倾斜或反转的情况(上图b)。多方向文本在现实场景中很常见,例如广告牌上的垂直文本,由于相机拍摄角度而倾斜的文本,以及由于镜子反射而反转的文本。然而,在大多数STR方法中,这个问题被忽略了,因为它们强烈假设文本图像几乎是水平的。他们遵循了类似的程序,将文本图像的高度缩放到较小的尺寸(例如,32像素),然后在保持比例不变的情况下缩放宽度,导致垂直或倾斜的图像在高度上崩溃,从而阻碍识别。
  • 艺术文本。与印刷文本相比,艺术文本是由艺术家或专业设计师设计的,具有不同的文本字体,文本效果,文本布局和复杂的背景。艺术文本的每个实例都可能是独一无二的,这使得它成为一个 zero shot 或 one shot 的问题,并且可能需要专门设计的网络[Toward Understanding WordArt: Corner-guided transformer for scene text recognition]来识别。然而,由于合成数据集中缺乏艺术文本样本,目前的模型对上图e所示的艺术文本的鲁棒性仍然较差。
  • Contextless文本。无上下文文本是指没有语义意义的文本,不在字典中。它可以是缩写或字母、数字和符号的随机组合。如上图f所示,即使背景清晰且失真最小,模型也可能无法识别无上下文文本。这个问题可能是由于在模型设计和数据集语料库中过度引入语义信息引起的,这也被称为词汇依赖。模型将尝试预测出现在遵循语法规则的训练集中的文本(例如,将上图f中的“YQJ”误认为“you”)。在可靠性至关重要的应用程序中,这种行为是非常不可取的,例如,车牌识别、发票识别和卡ID识别,其中大多数文本是无上下文的,它们的错误识别可能导致巨大的安全风险和财产损失
Additional Challenges
  • 突出的文本。突出文本是指在文本图像中与主要感兴趣的字符共存的额外字符的存在(上图c)。在端到端文本识别中,当不同大小的文本实例相邻或相互重叠时,可能会无意中引入 Salient Text。这个问题已经在文本检测阶段进行了讨论。例如,Liao 等[Mask textspotter v3]提出使用硬ROI掩蔽策略来消除额外字符的干扰。然而,当检测模型的性能较差时,例如,当它只能输出粗文本区域时,识别模型快速识别视觉上重要的区域就变得至关重要。然而,如上图c所示,模型可能会被额外的字符混淆,无法识别主要文本
  • 多词汇文本。文本包含丰富的语义信息,有助于理解场景,有时一个词可能是不够的。在某些情况下,需要同时识别多个单词才能完全解释文本图像,如商标和短语,如上图 d 所示。然而,大多数STR模型是在合成数据集上训练的,每个文本图像包含一个单词,因此无法识别分隔单个单词的空格。此外,我们观察到模型倾向于将多个单词合并为一个单词,根据语法规则丢弃或改变可见字符(例如,“Live to Evolve”被识别为“liveroee”,因为它读起来更像一个单词)。
  • 不完整的文本。文本图像可能是不完整的,由于遮挡或不准确的检测框截断文本而丢失字符。在上图中,当用第一个或最后一个字母裁剪文本图像时,模型可能会产生完整的预测,即使缺失的字母是不可见的。此外,我们观察到这种行为在严重依赖语言先验的语言模型中更频繁地发生(第6.2节)。这个特性可能会降低文本分析应用程序中模型的可靠性。例如,一个写着“ight”的碎片文本图像可能会被完成为“might”或“light”,而识别模型最理想的输出是它实际看到的,即“ight”,从而允许异常检测。因此,全面评估自动完井功能的性能并考虑其对下游应用的潜在影响至关重要。

A Challenge-Driven Benchmark

  • 为了便于在更全面的现实场景中对STR模型进行评估,并支持未来对上述七个挑战的研究,我们构建了一个挑战驱动的基准,即Union14MBenchmark。它由 8 个子集和 409,393张图像组成,具有复杂性和通用性。

Benchmark Construction

  • Challenge-specific 子集。我们为第4.2节中提出的七个挑战中的每个挑战收集了子集。除了不完整的文本外,根据这七种文本类型的一些参考样本,从 Union14M-L 手动选择候选图像。对于不完整文本子集,我们采样了 1495 张图像,13 个模型中的大多数都可以从Union14M-L中做出正确的预测,因为我们的目标是研究 STR 模型的自动完成特征,因此我们不会引入其他可能导致错误识别的因素。然后我们随机裁剪出文本图像的第一个或最后一个字母。为了确保在 Union14M-L 和提议的基准之间没有重复的图像,我们对 Union14M-L 中剩余的与基准图像具有相同文本标签的样本进行计数,然后我们手动审查每个样本以去除 Union14M-L 中的重复图像。
  • 常见挑战的子集。除了这七个特定的挑战,STR还带来了其他一些困难,如模糊、色彩失真和复杂的背景[]。因此,为了增强该基准的多样性,我们还构建了一个通用子集,其中包含从Union14M-L中采样的400,000张图像。我们还强调了验证集的重要性。它遵循与一般子集相同的构造方法,其中也包括400,000个样本。统计结果如下表所示。
    • 在这里插入图片描述

    • Union14M-L的数据集分区。Union14M-Benchmark是从Union14M-L分离出来的。

Experiments and Analysis

  • 在本节中,我们将上述13个STR模型 (上表) 在Union14M-L上进行基准测试,以提供更多的定量分析。此外,我们还从数据的角度提出了一种STR的解决方案,提出了一种基于vita的模型 ,即MAERec(第6.3节),该模型可以利用Union14M-U中10M的未标记图像,通过自监督预训练。

Experiment Settings

  • 训练设置。对于 13 个STR模型,我们使用原始论文中描述的默认超参数进行公平比较,除了预测的字符类的数量统一为 91 个(包括数字、大写和小写字母、符号和空格)
  • 指标。我们使用三个评估指标:单词准确性(WA),单词准确性忽略大小写(WAIC)和单词准确性忽略大小写和符号(WAICS,最常用)对于不完整文本子集,我们测量了字母裁剪前后的精度边际

Experiment Results

  • 真实世界的数据是具有挑战性的。如下表所示,与在普通基准上的性能相比,模型在Union14M-Benchmark上分别在合成数据集和 Union14M-L 上训练时,平均准确率下降了48.5%和33.0%。这表明实际场景中的文本图像远比六个常用的基准测试复杂得多。

  • 真实世界的数据是有效的。在Union14M-L上训练的模型在普通基准和 Union14M Benchmark 上的平均准确率分别提高了 3.9% 和 19.6%。Union14M-Benchmark上的大幅性能提升表明,合成训练数据很难适应复杂的现实需求,而使用真实数据进行训练可以在很大程度上克服这种泛化问题。此外,在普通基准测试中相对较小的性能增益也意味着它们已经饱和

  • STR问题远未得到解决。当只在Union14M-L上训练时,我们观察到Union14M-Benchmark(不包括不完整文本子集)上的最大平均准确率仅为 74.6% (下表中的 MATRN [Multi-modal Text Recognition Networks: Interactive enhancements between visual and semantic features])。这表明STR问题远未得到解决。虽然依靠大规模真实数据可以带来一定的性能提升,但未来仍需努力。

    • 在这里插入图片描述

    • 在Union14M-L训练集上训练的模型的性能(WAICS)。对于MAERec, S和B分别代表使用viti-small和viti - base作为主干。PT为预训练。

  • 词汇依赖无处不在。当在合成数据集上训练时,所有模型在不完整文本子集上都表现出很大的性能下降(下表的最后一列)。特别是,我们观察到语言模型的性能下降更大(10.2% vs.基于ctc的5.6%和基于注意力的5.9%)。我们推测语言模型的性能下降可能与它们的纠错行为有关,即模型将不完整的文本补全,而不完整的文本被视为字符缺失错误。在Union14M-L上进行训练可以显著缓解这个问题。我们将此归因于Union14M-L中更大的词汇量,模型不会过度拟合训练语料库。然而,这个问题仍然存在,需要进一步调查。

    • 在这里插入图片描述

    • 在合成数据集(MJ和ST)上训练的模型的性能(WAICS)。对于不完整文本子集,我们测量图像裁剪前后的精度边际,越低越好。

Exploration of Unlabeled Data

  • 为了从数据的角度进一步探索利用自监督预训练来解决 STR 的潜力,我们引入了一个基于 vit 的模型,即MAERec。MAERec的架构。在上文图中,我们展示了MAERec的简要架构。我们选择 (Vision Transformer, ViT) 作为默认主干,因为它可以轻松地用于mask 图像建模。首先将输入图像以4 × 4的贴片尺寸送入ViT主干。然后将输出序列传递给 SATRN 中使用的Transformer解码器进行自回归解码以生成预测文本。详情见附录C。

  • 预训练。为了利用Union14M-U中的10M 张未标记图像,我们通过掩码图像建模任务对MAERec中的ViT主干进行预训练。我们采用MAE 的框架,稍作修改。重构结果如下图所示。在Union14-U上预训练的ViT主干可以产生令人信服的重建文本图像,尽管掩码比高达75%。这表明预训练的ViT主干可以有效地捕获文本图像中的文本结构,并可以学习有用的文本表示。

    • 在这里插入图片描述

    • Union14M-L图像(未在预训练中使用的图像)的重建结果。对于每个三元组,我们显示了基本真值(上),掩码图像(中)和重建图像(下)。掩模比为75%。

  • 微调。预训练完成后,我们用预训练好的 ViT 权值初始化 MAERec,并在 Union14M-L 上对整个模型进行微调。上文表显示了结果(最后四行)。预训练后,MAERec的性能得到了很大的提高,使用 ViT-Small 作为主干时,在普通基准上平均精度提高1.0%,在Union14M-Benchmark上平均精度提高5.1%。此外,当将骨干网扩展到ViT-Base时,我们可以观察到显著的性能改进,MAERec在Union14M-Benchmark上可以达到85.2%的平均准确率。这一令人鼓舞的结果表明,利用大量未标记数据可以大大提高STR模型在现实场景中的性能,值得进一步探索

  • 与SOTA SSL方法的比较。我们还将我们提出的 MAERec 与 STR 中其他基于自监督学习的方法进行了比较,如下表所示。尽管不同方法使用的数据量不同,但 MAERec 在数据规模较小的情况下优于同类方法。值得注意的是,MAERec使用了与 DiG [Reading and Writing: Discriminative and generative modeling for selfsupervised text recognition]相似的微调架构和更简单的预训练框架,但仍然取得了更好的结果。这意味着数据的选择在自我监督的预训练和微调中起着更为关键的作用。

    • 在这里插入图片描述

    • MAERec 与其他具有不同预训练和微调数据的基于自监督学习的STR模型的比较, R 代表真实数据,S代表合成数据。我们报告了六个常见基准的平均准确性

Conclusion

  • 本文从数据的角度对场景文本识别进行了研究。尽管目前的基准测试接近饱和,但我们认为STR的问题仍然没有得到解决,特别是在当前模型面临众多挑战的现实场景中。为了探索STR模型仍然面临的挑战,我们整合了一个大规模的STR数据集进行分析,并确定了七个开放的挑战。此外,我们提出了一个挑战驱动的基准,以促进STR的未来发展。此外,我们发现通过自监督预训练利用大量未标记数据可以显著提高STR模型在现实场景中的性能,从数据的角度为STR提供了一个实用的解决方案。我们希望这项工作能够激发未来超越现有数据范式领域的研究。

Appendix

A. Unrecognized Samples in Common Benchmarks

  • 在下图中,我们展示了六个常见基准中的四种类型的图像,这些图像不能被 13 个STR模型的集合正确识别。具体来说,对于人类无法识别的图像,我们采用以下标准进行评审:我们招募了五位人类专家,每位专家为每个文本图像提交三种可能的预测。如果所有五位专家都未能识别文本图像(即总共有15个预测是错误的),我们将其视为无法识别的人类样本。大多数这些人类无法识别的样本表现出高度模糊和低分辨率。此外,在进一步检查被归类为“其他”的16.8%的样本时,我们可以观察到它们中的许多都属于我们之前讨论过的七个挑战的类别,例如曲线文本,多词文本和艺术文本。
    • 在这里插入图片描述

    • Examples of five difficulty levels in Union14M-L.

B. More Details of Union14M

B.1. Construction of Union14M-U
  • 为了收集大量高质量的未标记文本图像,我们使用了三种场景文本检测器:dbnet++ 【https://github.com/open-mmlab/mmocr/tree/main/configs/textdet/dbnetpp】、BDN【https://github.com/Yuliang-Liu/Box_Discretization_Network】和EAST【https://github.com/SakuraRiven/EAST】。我们将这些检测器应用于三个大型数据集:Book32、OpenImages和Conceptual Captions (CC)。然而,直接使用这些检测器的结果是不理想的,因为不同的检测器产生了许多假阳性结果(例如,在下图中,警车的后轮胎被两个检测器检测为文本区域)。虽然在数据量大的情况下,缺失检测是可以容忍的,但错误检测是不可取的,因为它们可能会为随后的自监督学习引入噪声。为了解决这个问题,我们采用了一个简单的交联(IoU)投票策略来过滤错误检测。具体来说,我们确定了三个探测器检测到的多边形相对于彼此的IoU大于0.7的区域,然后我们使用三个检测到的多边形的最小轴向矩形作为最终预测

    • 在这里插入图片描述

    • 用于收集文本实例的IoU投票策略的示例。

  • 此外,在选择OpenImages中的图像构建 Union14M-U 时,我们排除了HierText、TextOCR和InterOCR中具有相同图像ID的图像,因为它们已经在Union14M-L中使用过。使用此策略,我们在Union14M-U中获得了1060万个高质量文本实例。值得注意的是,这三个检测器都是在一个单一的数据集上训练的(DBNet++和EAST是在ICDAR2015上训练的,BDN 是在 MLT17上训练的),这可能包含固有的偏差,导致检测到的文本实例缺乏多样性。因此,研究在更大的数据集上训练的检测器的使用,以获得更多的文本实例,是未来研究的一个潜在方向。

B.2. Comparison of Different Cropping Methods
  • 我们在上文表中验证是否存在较大的性能差距是由轴向 crop 引起的。如下表所示,当使用轮作crop时,STR模型仍然表现不佳,这表明Union14M-L内部的挑战不是由轴向crop引起的。
    • 在这里插入图片描述

    • 不同裁剪方式的比较。设置与表3中相同。

  • 此外,当使用旋转裁剪图像进行训练时,模型表现出较差的性能,如下表所示,验证了我们的猜想,即STR模型在使用降噪程度更高的文本图像进行训练时将获得更强的鲁棒性。STR和STD之间的不一致性一直是一个较少探索的问题(例如,STR社区过去专注于曲线文本识别,尽管任意形状文本检测器很有名)。
    • 在这里插入图片描述

    • 不同裁剪方式的比较。设置与表6中相同。

B.3. Difficulty Assignment in Union14M-L
  • 我们的重点是分析现有 STR 模型在实际场景中遇到的挑战。因此,我们有兴趣分析存在困难的样品。如图下所示,我们使用误差投票法将Union14M-L中的图像分为五个难度级别。

    • 在这里插入图片描述

    • Examples of five difficulty levels in Union14M-L.

  • 具体来说,给定图像 I 及其对应的基真值Y,我们使用 13 个STR模型对I进行前向推理,预测结果记为[Y1, Y2,···,Y13]。投票列表定义为V = [v1, v2,···,v13],其中vi定义为:

    • 在这里插入图片描述

    • 然后,根据正确预测的数量,将每张图像经验地分配到一个难度级别:

    • 在这里插入图片描述

  • 这些子集基于各自的难度水平呈现出不同的特征。例如,具有挑战性的集合包括大量包含曲线和垂直文本的图像,而简单的集合主要具有清晰的样本和清晰的背景。各难度图像的比例如下图所示

    • 在这里插入图片描述

    • Union14M-L中不同难度等级的样本比例。

B.4. Consolidation of Union14M-Benchmark
  • 在本节中,我们将提供有关如何整合 Union14M-Benchmark 的更多信息。对于七个挑战中的每一个,除了不完整的文本,我们最初从 Union14M-L 中收集了几张与七个挑战中的每一个挑战的定义一致的参考图像。然后,我们招募五名人类专家来识别与参考图像有相似之处的候选图像。随后,我们手动检查每个候选图像,并消除不符合指定挑战标准的图像。此外,我们还彻底检查了所有图像的注释,包括数字、大小写和符号,以确保基准的质量。对于不完整文本子集,从Union14M-L的简单集合中随机抽取所有1495张图像,并裁剪每个文本图像的第一个或最后一个字母

  • 对于一般子集,我们从五个难度级别中平均抽取20%的图像,形成400,000张图像的一般子集。通过这样的均匀采样,一般子集中的图像分布更加均匀,更具代表性。由于抽样是随机的,一般子集可能有一些注释错误和人类无法识别的样本,就像六个常见基准测试一样。但是由于数据量大,纠正这些错误需要大量的人工,我们也希望学术界能够共同努力来纠正这些错误。在下图中,我们展示了更多的Union14M-Benchmark样本。

    • 在这里插入图片描述

    • Examples of Union14M-Benchmark

C. Inplementation Details of MAERec

C.1. Vision Transformer
  • 我们使用vallina Vision Transformer (ViT)作为MAERec的主干,因为它可以很容易地适应于掩模图像建模预训练。ViT由补丁嵌入层、位置嵌入层和一系列Transformer块组成。

  • 补丁嵌入:由于ViT以序列作为输入,因此使用补丁嵌入层将输入图像转换为补丁序列。具体来说,给定大小为 x ∈ R H × W × C x∈\R^{H×W×C} xRH×W×C 的文本图像,我们首先按照 STR 的惯例将其大小调整为 x r ∈ R H r × W r × C x_r∈\R^{H_r×W_r×C} xrRHr×Wr×C,其中Hr = 32, Wr = 128。然后我们使用一个补丁大小为4 × 4的补丁嵌入层将图像分割成不重叠的补丁,在这种情况下,总共有256个 patch。每个patch被线性投影为一个d维向量,其中d为patch嵌入层的嵌入维数。

  • 位置嵌入:为了保留图像中的位置信息,在patch嵌入中加入位置嵌入。具体来说,我们在原始ViT中使用正弦位置嵌入,如下所示:

    • 在这里插入图片描述

    • 其中PosEnc(pos, 2i) 和 PosEnc(pos, 2i + 1) 分别表示给定位置 pos 的位置编码的第 2i 维和第 2i + 1 维,d 表示嵌入维数,i 的取值范围为0 ~⌊(d/2)⌋−1。

  • Transformer blocks: Transformer blocks由多头自关注(MHSA)和MLP块的交替层组成。给定嵌入的输入序列 X ∈ R L × d X∈\R^ {L×d} XRL×d,其中 L 为序列长度,d 为嵌入维数,则 Transformer 块可计算如下:

    • 在这里插入图片描述

    • 其中LN为层归一化层,FFN为前馈网络,MHSA为多头自注意层。表显示了MAERec中使用的ViT变体的配置。

C.2. Masked Image Modeling Pre-training
  • 我们采用MAE框架对MAERec中的ViT主干进行预训练。
  • MAE编码器。我们使用章节C.1中描述的 ViT 作为 MAE 中的编码器。具体来说,给定patch x ∈ R N × d x∈\R ^{N×d} xRN×d,其中N为patch的个数,d 为patch嵌入层的嵌入维数,我们随机屏蔽75%的输入patch,只将剩下的25%可见patch发送给 ViT 编码器。掩码大小设置为4 × 4,与补丁大小保持一致。
  • MAE解码器。MAE中的解码器输入完整的令牌集,包括来自ViT编码器的补丁智能表示和放置在掩码补丁位置的可学习的掩码令牌。通过在所有输入标记中添加位置嵌入,解码器能够从掩码补丁中重建原始图像。具体来说,我们采用MAE中使用的原始解码器,即8层 Transformer块 和一个线性层来从输入令牌重构文本图像。Transformer块的嵌入维数为512,头的个数设置为16。将MLP层的扩展因子设置为4。
  • 重建目标。在MSE损失的监督下,对MAE中的解码器进行训练以重建原始图像的归一化像素值。
  • 优化器。我们采用 AdamW 优化器在 Union14M-U 的10.6M 图像上预训练模型20个epoch,初始学习率为1.5e-4。余弦学习率调度器用于 2 次线性预热。预训练图像大小设置为 32×128,我们不使用数据增强。批量大小设置为256。使用4块NVIDIA A6000 (48GB RAM) gpu进行预训练
C.3. Fine-tuning for Scene Text Recognition
  • 自回归 Transformer 解码器。我们在[Multi-modal Text Recognition Networks: Interactive enhancements between visual and semantic features]中使用Transformer解码器,因为它在场景文本识别方面具有优越的性能。具体来说,我们使用六层 Transformer 解码器以自回归的方式预测文本序列。Transformer解码器的嵌入尺寸分别设置为 384 和 768,用于小模型和基本模型。headers 设置为8。
  • 优化器。为了与预训练过程保持一致,我们仍然使用权值衰减为 0.01 的AdamW优化器和未预热的余弦学习率调度器来训练模型10个epoch。批量大小设置为64,初始学习率设置为 1e-4。我们在[Read Like Humans]中也采用了相同的数据增强策略。采用4块NVIDIA 2080Ti (11GB RAM) gpu进行微调。

D. More Experiment Analysis

D.1. Sources of the 13 STR Models
  • 在下表中,我们列出了13个公开可用的STR模型的来源。

    • modellink
      CRNNhttps://github.com/Mountchicken/Text-Recognition-on-Cross-Domain-Datasets
      SVTRhttps://github.com/PaddlePaddle/PaddleOCR
      MORANhttps://github.com/Canjie-Luo/MORAN_v2
      ASTERhttps://github.com/Mountchicken/Text-Recognition-on-Cross-Domain-Datasets
      NRTRhttps://github.com/open-mmlab/mmocr/tree/main
      SARhttps://github.com/open-mmlab/mmocr/tree/main
      DANhttps://github.com/Wang-Tianwei/Decoupled-attention-network
      SATRNhttps://github.com/open-mmlab/mmocr/tree/main
      RobustScannerhttps://github.com/open-mmlab/mmocr/tree/main
      SRNhttps://github.com/PaddlePaddle/PaddleOCR
      ABINethttps://github.com/open-mmlab/mmocr/tree/main
      VisionLANhttps://github.com/wangyuxin87/VisionLAN
      MATRNhttps://github.com/byeonghu-na/MATRN
D.2. WA and WAIC Metrics
  • 在下表中,我们分别报告了用 Union14M-L 训练的模型在 WA (词精度)和 WAIC (词精度忽略大小写)指标方面的性能。虽然最近的工作仅根据WAICS(单词准确性忽略大小写和符号)度量来评估STR方法,该度量忽略符号并且不区分大小写,但一些特定的应用程序需要识别符号和大小写,例如 captcha 识别和车牌识别。与在WAICS指标上评估的模型相比,我们可以观察到在WA和WAIC指标上评估的性能显著下降。这种现象可以归结为以下原因:

    • 不正确的大小写注释。在几个常见的基准测试中,WA 和 WAIC 之间的性能差距很大,例如,在 IIIT 数据集中,WA 和 WAIC 的性能差距为50.3% vs. 85.89%(13个STR模型的平均精度)。这主要是由于大小写注释不一致。如下图所示,常见的基准测试缺乏针对这种情况的统一标注标准。例如,在IIIT数据集中,字母都用大写标注,而在Union14MBenchmark中,我们手动检查挑战特定子集中所有9383个样本的大小写标注,并纠正任何大小写错误。因此,在Union14M-Benchmark中 WA 和 WAIC 指标之间的性能差距要小得多(55.5% vs. 57.4%)。

    • 在这里插入图片描述

    • 比较通用基准和Union14M-Benchmark在大小写标注上的差异。

    • 缺少符号。此外,我们注意到 WAIC 和 WAICS 在STR模型上存在性能差距(88.3% vs . 91.2%);57.4% vs . Union14M-Benchmark的62.7%)。我们认为这可能是由于与字母和数字相比,训练集中符号的出现频率较低。这可以解释为类不平衡问题,这需要进一步调查

  • 在这里插入图片描述

    • 在Union14M的训练集上训练的模型的性能(WA)。在WA和WAIC度量中,衡量模型在不完整文本集上的性能是不切实际的,因为性能受模型能否正确预测大小写和符号的影响。例如,如果模型在case预测中是错误的,在WA度量中会被认为是错误的预测,而忽略文本不完整的错误。
  • 在这里插入图片描述

    • 在Union14M的训练集上训练的模型的性能(WAIC)。
D.3. Data Saturation
  • 我们进行了数据消融研究,以证明Union14M-L中数据的充分性。我们选择 ABINet 和 SATRN,并在Union14M-L数据集的不断增加的分数上训练它们。如下图a所示,精确度在开始时急剧增加,最终趋于平稳。这说明Union14M-L中的真实数据是足够的,添加更多的真实数据可能不会带来明显的性能提升。此外,如下图b所示,尽管Union14M-L中的数据仅为合成数据的 1/4,但在Union14M-L 上进行训练所需的迭代次数要少得多(少了4倍),从而达到更高的准确率,这与Green AI的理念是一致的
    • 在这里插入图片描述

    • (a)增加Union14M-L分数训练模型的性能。CB表示六个共同基准;UB代表Union14M-Benchmark。(b)用Union14M-L或 MJ、ST训练的模型在相同配置(epoch数、optimizer等)下的性能演化曲线,在6个常用基准上进行评价。

D.4. Data Matters in Self-Supervised Pretraining
  • 在下表中,我们比较了在预训练和微调中使用的不同数据集组合。当预训练和微调都在合成数据集上执行时,MAERec几乎不能获得性能提升(CB为89.9→89.9,UB为46.0%→46.1%)。然而,当对Union14M-L进行微调时,无论是在合成数据集(UB为73.5%→75.0%)上预训练,还是在Union14MU (UB为73.5%→78.6%)上预训练,MAERec都能表现出性能提升。这表明对真实数据进行微调对于自我监督学习至关重要,Union14M-U比合成数据集更适合进行预训练(78.6% vs. 75.0%)。
    • 在这里插入图片描述

    • 比较不同预训练和微调数据集下MAERec-S的性能。Acc-CB表示六个常见基准的平均准确度。Acc-UB表示在Union14M-Benchmark(排除不完整文本子集)上的平均准确率。

D.5. Visualize Recognition Results
  • 我们在下图中展示了Union14M Benchmark上的一些识别结果。与在合成数据上训练的模型相比,在Union14M上训练可以使STR模型能够应对各种复杂的现实场景,从而显著提高其鲁棒性。
    • 在这里插入图片描述

    • Union14M-Benchmark上的识别结果。GT代表 真实标签值。ABINet- s代表在合成数据集(MJ和ST)上训练的ABINet。ABINet- u代表经过Union14M-L训练的ABINet。绿色文本代表正确的识别,红色文本反之亦然。

D.6. Why MIM Pre-training Works for STR
  • 当MAERec在Union14M-U上使用MAE进行预训练时,它在STR下游任务上表现出显著的改善。这种改进背后的原因可以归因于MIM的预训练过程,其中覆盖了大部分文本图像(75%),导致每个字符只有几个补丁对ViT主干可见。因此,如果解码器需要重构原始图像,则ViT主干必须学会识别字符的最小部分来推断整个字符,如图下所示。预训练后,ViT骨干在预训练中已经学会了区分不同的字符,下游的识别任务本质上是一个分类任务。因此,模型的性能得到了显著提高。
    • 在这里插入图片描述

    • 更多的重建样本。对于每个三元组,我们显示了基本真值(上),掩码图像(中)和重建图像(下)。图像来自Union14M-Benchmark中的艺术文本、多词文本和无上下文文本。

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VLAD(Vector of Locally Aggregated Descriptors)是一种图像表示方法,常用于图像检索和计算机视觉任务中。它通过聚合局部特征描述符来生成图像的紧凑表示。 以下是一个简单的C++实现示例,展示了如何实现VLAD图像表示: ```cpp #include <iostream> #include <vector> #include <opencv2/opencv.hpp> // 聚类算法(这里使用K-means) cv::Mat kmeansClustering(const std::vector<cv::Mat>& descriptors, int numClusters) { cv::Mat allDescriptors; for (const cv::Mat& descriptor : descriptors) { allDescriptors.push_back(descriptor); } cv::Mat labels, centers; cv::TermCriteria criteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 100, 0.01); cv::kmeans(allDescriptors, numClusters, labels, criteria, 1, cv::KMEANS_PP_CENTERS, centers); return centers; } // 计算VLAD图像表示 cv::Mat computeVLAD(const std::vector<cv::Mat>& descriptors, const cv::Mat& visualWords) { int descriptorSize = descriptors[0].cols; cv::Mat vlad(visualWords.rows, descriptorSize, CV_32F, cv::Scalar(0)); for (const cv::Mat& descriptor : descriptors) { // 找到每个描述符最近的视觉词 cv::Mat difference = visualWords - descriptor; cv::Mat distances; cv::reduce(difference.mul(difference), distances, 1, cv::REDUCE_SUM); cv::Point minLoc; cv::minMaxLoc(distances, nullptr, nullptr, &minLoc); // 计算每个视觉词的残差 cv::Mat residual = descriptor - visualWords.row(minLoc.y); // 更新VLAD表示 for (int i = 0; i < descriptorSize; i++) { vlad.at<float>(minLoc.y, i) += residual.at<float>(0, i); } } // 归一化VLAD表示 cv::normalize(vlad, vlad, 1.0, 0.0, cv::NORM_L2); return vlad; } int main() { // 假设有一组局部特征描述符(使用OpenCV的Mat表示) std::vector<cv::Mat> descriptors = { (cv::Mat_<float>(1, 128) << /* descriptor values */ ), (cv::Mat_<float>(1, 128) << /* descriptor values */ ), (cv::Mat_<float>(1, 128) << /* descriptor values */ ), // ... }; // 聚类算法,得到视觉词汇 int numClusters = 100; cv::Mat visualWords = kmeansClustering(descriptors, numClusters); // 计算VLAD图像表示 cv::Mat vlad = computeVLAD(descriptors, visualWords); // 输出VLAD表示结果 std::cout << "VLAD Representation:\n" << vlad << std::endl; return 0; } ``` 在这个示例中,`descriptors`是一组局部特征描述符,每个描述符用一个`cv::Mat`对象表示。首先,使用K-means聚类算法将所有描述符聚类成`numClusters`个视觉词汇,并得到`visualWords`矩阵。然后,根据每个描述符找到最近的视觉词,并计算每个视觉词的残差。将残差累加到VLAD表示中,并进行归一化处理。最后,输出VLAD图像表示结果。 请注意,这只是一个简单的VLAD图像表示的C++实现示例,供你参考。在实际应用中,你可能需要根据具体需求进行修改和扩展,例如使用更复杂的特征提取方法、改进聚类算法等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

羞儿

写作是兴趣,打赏看心情

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

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

打赏作者

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

抵扣说明:

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

余额充值