SVTR: Scene Text Recognition with a Single Visual Model
- 论文:https://arxiv.org/pdf/2205.00159.pdf
- 使用单一视觉模型进行场景文本识别
- 源码:https://github.com/PaddlePaddle/PaddleOCR
Abstract
主要的场景文本识别模型通常包含两个组成部分,一个用于特征提取的视觉模型和一个用于文本转录的序列模型。尽管这种混合架构准确性较高,但复杂且效率较低。在本研究中,我们提出了一种在逐个分块图像标记化框架内进行场景文本识别的单一视觉模型,完全摒弃了顺序建模。这种方法称为SVTR,首先将图像文本分解成 small patches,称为字符组件。随后,通过组件级的混合、合并和/或组合,进行分层阶段的循环处理。设计了全局和局部混合块,用于感知字符间和字符内的模式,从而实现多粒度的字符组件感知。
因此,字符通过简单的线性预测进行识别。对英文和中文场景文本识别任务的实验结果表明了SVTR的有效性。SVTR-L (Large) 在英文识别中取得了极具竞争力的准确性,并且在中文识别方面明显优于现有方法,同时运行速度更快。此外,SVTR-T (Tiny) 是一种有效且更小的模型,在推理过程中具有吸引人的速度。
1 Introduction
谷歌翻译
场景文本识别旨在将自然图像中的文本转录为数字字符序列,这传达了对场景理解至关重要的高级语义。 由于文本变形、字体、遮挡、杂乱背景等变化,该任务具有挑战性。在过去的几年中,人们为提高识别精度做出了许多努力。 现代文本识别器除了准确性之外,出于实际需求还考虑了推理速度等因素。
GPT 4 翻译
个人觉得 GPT 4 翻译 更为精准流畅,所以接下来,本文会主要借助 GPT 4 进行关键段落翻译
场景文本识别旨在将自然图像中的文本转录为数字字符序列,以传达对场景理解至关重要的高层语义信息。该任务具有挑战性,原因在于文本变形、字体、遮挡、杂乱背景等的变化。在过去的几年中,人们做出了许多努力来提高识别准确性。现代文本识别器除了准确性外,还考虑到了推理速度等因素,以满足实际需求。
在方法上,场景文本识别可以被视为从图像到字符序列的跨模态映射。通常,识别器由两个构建模块组成:用于特征提取的视觉模型和用于文本转录的序列模型。例如,基于CNN-RNN的模型(Zhai等,2016年;Shi等,2017年)首先使用CNN进行特征提取。然后,将特征重塑为序列,并通过BiLSTM和CTC损失进行建模以进行预测(图1(a))。
它们具有高效性,并且仍然是一些商业识别器的选择。然而,这种重塑对于文本的扰动(如变形、遮挡等)很敏感,限制了它们的有效性。
- 我们的SVTR使用单一视觉模型进行场景文本识别,具有高效、准确和跨语言的多功能性。
总结之前网络模型能力瓶颈
随后,基于编码器-解码器的自回归方法变得流行起来(Sheng等,2019年;Li等,2019年;Zheng等,2021年),这些方法将识别转化为迭代解码过程(图1(b))。由于考虑了上下文信息,因此获得了更高的准确性。然而,由于逐个字符的转录,推理速度较慢。该流程进一步延伸到基于视觉-语言的框架(Yu等,2020年;Fang等,2021年),其中融入了语言知识(图1(c)),并进行了并行预测。然而,该流程通常需要大容量模型或复杂的识别范式才能确保识别准确性,限制了其效率。
总结近期提出的网络模型解决的问题和依然存在的瓶颈
最近,有一些工作着重于开发简化的架构以加快速度。例如,使用复杂的训练范式但简单的模型进行推理。CRNN-RNN的解决方案在[Hu等,2020年]中重新受到关注。它利用了注意力机制和图神经网络来聚合与同一字符对应的序列特征。在推理时,舍弃了注意力建模分支以平衡准确性和速度。PREN2D [Yan等,2021年]通过同时聚合和解码 1D sub-character features 进一步简化了识别过程。[Wang等,2021年]提出了VisionLAN。它引入了逐字符遮挡学习,赋予视觉模型语言能力。然而,在推理过程中,视觉模型仅用于加速。鉴于基于单个视觉模型的架构的简单性,一些识别器采用现成的CNN [Borisyuk等,2018年]或ViT [Atienza,2021年]作为特征提取器进行了提出。尽管这些方法具有高效性,但与最先进的方法相比,它们的准确性较低。
提出观点,引出,为什么之前的模型没有解决识别准确性和推理速度的问题,总结之前网络模型能力瓶颈,为下文提出自己的设计方案做铺垫
我们认为,仅基于单个视觉模型的方案只有在能够提取有区分性的字符特征时才有效。具体而言,该模型能够成功捕捉到字符内部的局部模式和字符间的长期依赖关系。前者编码了类似笔画的特征,描述了字符的细粒度特征,是区分字符的关键来源。而后者记录了类似语言的知识,从补充的角度描述了字符。
然而,这两个特性在先前的特征提取器中没有得到很好的建模。例如,CNN骨干网络擅长建模局部相关性而不是全局依赖关系。同时,当前基于Transformer的通用骨干网络不会特别关注局部字符模式。
受到上述问题的启发,本研究旨在通过加强视觉模型来提升识别能力。为此,我们提出了一种基于视觉的模型SVTR,用于准确、快速和跨语言的多功能场景文本识别。受到视觉Transformer [Dosovitskiy等,2021年;Liu等,2021年]的最新成功启发,SVTR首先将图像文本分解为称为字符组件的小型2D块,其中每个块可能仅包含字符的一部分。因此,对图像进行逐块的分割,并应用自注意力机制来捕捉字符组件之间的识别线索。具体而言,为此目的开发了一个定制的文本架构。它是一个三阶段逐渐减小高度的骨干网络,具有混合、合并和/或组合操作。在每个阶段中,设计并重复使用了局部和全局混合块,以及合并或组合操作,获取表示字符笔画特征和不同字符之间长期依赖的局部组件级关联性
。因此,骨干网络提取了不同距离和多个尺度的组件特征,形成了多粒度的字符特征感知。最终,通过简单的线性预测实现了识别。在整个过程中,只使用了一个视觉模型。
我们构建了四个具有不同容量的架构变体。在英语和中文的场景文本识别任务上进行了广泛的实验。结果表明,SVTR-L(大型)在英语方面取得了非常有竞争力的结果,并在中文方面大幅超过了最先进的模型,同时运行速度更快。同时,SVTR-T(微小型)也是一个有效且更小的模型,具有吸引人的推理速度。本研究的主要贡献可总结如下:
- 我们首次证明了单个视觉模型在场景文本识别中可以达到与先进的视觉-语言模型相媲美甚至更高的准确性。由于其高效性和跨语言多功能性,它对实际应用具有潜力。
- 我们提出了一种用于识别的定制文本模型SVTR。它引入了局部和全局混合块,分别用于提取类似笔画的特征和字符间的依赖关系,结合多尺度骨干网络,形成了多粒度的特征描述。
- 公共基准测试中的实证研究证明了SVTR的优越性。SVTR-L在识别英文和中文场景文本方面达到了最先进的性能。而SVTR-T则既有效又高效,具有6.03M的参数量,并且在一块NVIDIA 1080Ti GPU上平均每个图像文本消耗4.5毫秒的时间。
2 Method
2.1 Overall Architecture
SVTR的概述如图2所示。它是一个逐渐减小高度的三阶段网络,专门用于文本识别。对于一个大小为H×W×3的图像文本,首先通过逐步重叠的补丁嵌入将其转换为尺寸为(H/4) × (W/4)、维度为D0的补丁。这些补丁被称为字符组件,每个补丁与图像中的一部分文本字符相关联。然后,在不同尺度上进行三个阶段的特征提取,每个阶段由一系列混合块和合并或组合操作组成。为了提取类似笔画的局部模式和捕捉组件之间的依赖关系,设计了局部和全局混合块。通过骨干网络,特征组件和不同距离、多个尺度的依赖关系被表征,生成一个称为C的尺寸为1 × W4 × D3的表示,它感知多粒度的字符特征。最后,进行并行线性预测并进行去重操作,得到字符序列。
2.2 Progressive Overlapping Patch Embedding – 渐进式重叠的补丁特征
对于图像文本,首先需要从 X ∈ R(H×W×3)中获取表示字符组件的特征补丁。为此,存在两种常见的一步投影方法,即4×4的不重叠线性投影(见图3(a))和带步长4的7×7卷积。另外,我们通过使用两个连续的3×3卷积和批量归一化来实现补丁嵌入,如图3(b)所示。尽管这种方案稍微增加了计算成本,但它逐步增加了 feature dimension ,有利于特征融合。在第3.3节的消融研究中展示了其有效性。
2.3 Mixing Block
由于两个字符可能略有不同,文本识别在很大程度上依赖于字符组件级别的特征。然而,现有的研究大多使用特征序列来表示图像文本。每个特征对应一个薄片图像区域,对于不规则文本尤其容易受到噪声干扰。这对于描述字符并不是最佳选择。最近视觉Transformer的进展引入了2D特征表示,但如何在文本识别的背景下利用这种表示仍值得研究。
更具体地说,通过嵌入的组件,我们认为文本识别需要两种类型的特征。第一种是局部组件模式,例如类似笔画的特征。它编码了字符的形态特征和不同部分之间的相关性。第二种是字符间的依赖关系,例如不同字符之间或文本和非文本组件之间的相关性。因此,我们设计了两个混合块,通过使用具有不同感受野的自注意力来感知这种相关性。
全局混合(Global Mixing)如图4(a)所示,评估了所有字符组件之间的依赖关系。由于文本和非文本是图像中的两个主要元素,这种通用混合可以建立不同字符之间组件的长期依赖关系。
此外,它还能够削弱非文本组件的影响,同时增强文本组件的重要性
。在数学上,对于来自前一阶段的字符组件CCi−1,首先将其重塑为特征序列。在输入混合块时,应用了一层归一化(layer norm),然后是多头自注意力机制进行依赖建模。接下来,依次应用一层归一化和一个多层感知机(MLP)进行特征融合。Together with the shortcut connections, 形成全局混合块。
局部混合(Local Mixing)如图4(b)所示,评估了预定义窗口内组件之间的相关性。它的目标是编码字符的形态特征,并建立字符内组件之间的关联,模拟对字符识别至关重要的类似笔画的特征。与全局混合不同,局部混合考虑了每个组件的邻域。类似于卷积,混合是以滑动窗口的方式进行的。窗口大小经验性地设置为7×11。与全局混合相比,它采用自注意力机制来捕捉局部模式。
正如前面所述,这两种混合块旨在提取互补的不同特征。
在SVTR中,这些块在每个阶段中反复应用多次,进行全面的特征提取。之后将对这两种混合块的排列进行消融研究。
2.4 Merging
在各个阶段保持恒定的空间分辨率是计算上昂贵的,这也导致了冗余的表示。因此,我们在每个阶段的混合块之后(最后一个阶段除外)设计了一个合并操作。利用最后一个混合块输出的特征,我们首先将其重塑为尺寸为h × w × di−1的嵌入,分别表示当前的高度、宽度和通道数。然后,在高度维度上使用步长为2的3 × 3卷积,在宽度维度上使用步长为1的卷积,随后进行一层归一化,生成尺寸为h
2 × w × di的嵌入。
合并操作将高度减半,同时保持宽度不变。这不仅降低了计算成本,还建立了一个定制的文本分层结构。
通常,大多数图像文本以水平或接近水平的方式出现。压缩高度维度可以为每个字符建立一个多尺度表示,同时不影响宽度维度上的补丁布局。因此,在各个阶段中,不会增加将相邻字符编码到同一个组件的可能性。我们还增加了通道维度di,以补偿信息的丢失。
2.5 Combining and Prediction
在最后一个阶段,合并操作被Combining操作所取代。它首先将高度维度池化为1,然后经过一个全连接层、非线性激活和dropout。通过这样做,字符组件进一步压缩为一个特征序列,其中每个元素由长度为D3的特征表示。与合并操作相比,Combining 操作可以避免将卷积应用于一个维度非常小的嵌入,例如高度为2的情况。
In the implementation, N is set to 37 for English and 6625 for Chinese.
2.6 Architecture Variants
SVTR 有多个超参数:通道深度、每个阶段 heads 个数、Mixing Block 个数 和 排列次序
,通过改变超参数,SVTR 架构模型具备了不同的能力,作者提出了四种典型架构:SVTRT (Tiny), SVTR-S (Small), SVTR-B (Base) and SVTR-L (Large).
3 Experiments
3.1 Datasets
3.2 Implementation Details
3.3 Ablation Study
为了更好地理解SVTR,我们在IC13(规则文本)和IC15(不规则文本)上进行了受控实验,并在不同的设置下进行了实验。为了提高效率,所有实验都是使用SVTR-T进行的,没有使用修正模块和数据增强。
The Effectiveness of Patch Embedding
从表2的左半部分可以看出,不同的嵌入策略在识别准确性上表现略有不同。我们的逐步嵌入方案在两个数据集上的平均表现优于两种默认方案,分别提高了0.75%和2.8%,这表明它在特别是对于不规则文本的识别中是有效的。
The Effectiveness of Merging
这里有两种选择,即应用合并操作构建逐渐减小的网络(prog)和在各个阶段保持恒定的空间分辨率(none)。如表2的右半部分所示,合并操作不仅降低了计算成本,还提高了两个数据集上的准确性。这验证了在高度维度上进行多尺度采样对于文本识别是有效的。
The Permutation of Mixing Blocks –
混合块的排列
在每个阶段中,可以以多种方式对全局和局部混合块进行分组。在表3中评估了其中几种方法,其中”none”表示不考虑混合块。"[G]6[L]6"表示在每个阶段,首先进行六个全局混合块,然后进行六个局部混合块。
其他类似定义。可以看到,几乎每种方案都在一定程度上提高了准确性。我们认为这些改进是由于对全面的字符组件特征的感知。在不规则文本上相对较大的增益进一步说明了混合块对于在复杂场景中进行特征学习的帮助。观察到”[L]6[G]6″报告了最佳准确性。与”none”相比,它在IC13和IC15上分别提高了1.9%和6.6%的准确性。将局部混合块放在全局混合块之前有益于引导全局混合块专注于捕捉长期依赖关系
。相反,交换它们的排列可能会混淆全局混合块的作用,导致其重复关注局部特征。
3.4 Comparison with State-of-the-Art – 与现有技术的比较
在表4中,我们将SVTR与以前的研究在六个包括规则和不规则文本的英文基准数据集以及一个中文场景数据集上进行了比较。这些方法根据是否利用语言信息进行了分组,即lan-free和lan-aware。首先我们来看英文数据集的结果。即使是SVTR系列中最小的SVTR-T,在lan-free方法中也取得了非常有竞争力的准确性。而其他的SVTR则在大多数数据集上成为了最新的最佳方法。当与具有语言感知能力的方法进行进一步比较时,SVTR-L在IIIT、IC15和CUTE这六个英文基准数据集中获得了最高的准确性。它的整体准确性与最近的研究[Fang et al., 2021; Tang et al., 2022]相当,这些研究使用了额外的语言模型。相比之下,SVTR具有简洁性和更快的运行速度。这些结果基本上说明了单一的视觉模型也能够进行良好的识别,因为具有区分性的字符特征被成功提取出来。
接下来我们分析中文场景数据集的结果。表中显示了六种现有方法的准确性结果[Chen et al., 2021]。令人鼓舞的是,SVTR的表现相当出色。与所列方法中最好的方法SAR相比,我们观察到了从5.4%到9.6%的准确性提升,这是明显的改进。这个结果可以解释为SVTR全面感知了多尺度的字符组件特征。这些特征非常适合描述具有丰富笔画模式的中文字符。
在图5中,我们还展示了不同模型在IC15数据集上的准确性、参数和推理速度。由于其简洁性,SVTR在准确性-参数和准确性-速度图中始终排名前列,进一步展示了与现有方法相比的优势。
3.5 Visualization Analysis
我们已经对SVTR-T在解码不同字符组件时的注意力图进行了可视化。每个图可以解释为在整个识别过程中扮演不同的角色。
我们选择了九个图进行说明,如图6所示。 第一行显示了三个注视字符”B”的地图,分别强调其左侧、底部和中间部分。这表明不同的字符区域对于识别起着不同的作用。第二行展示了注视不同字符(”B”、”L”和”S”)的三个图。SVTR-T也能够通过将一个字符视为一个整体来学习其特征。而第三行展示了同时激活多个字符的三个图。这意味着成功捕捉到了不同字符之间的依赖关系。这三行图表明,识别器捕捉到了子字符、字符级别和跨字符的线索,与SVTR感知多尺度字符组件特征的说法相一致。这再次说明了SVTR的有效性。
根据结果和讨论,我们得出结论:SVTR-L在准确性、速度和多功能性方面具有优势,在以准确性为导向的应用中是一个非常有竞争力的选择。而SVTR-T是一个有效而更小、更快的模型,非常适合资源有限的场景中使用。
4 Conclusion
我们提出了SVTR,一种针对场景文本识别的定制化视觉模型。它提取了多尺度的字符特征,描述了不同高度尺度上的类似笔画的局部模式和组件之间的依赖关系。因此,识别任务可以通过使用单一的视觉模型来进行,具有准确性、效率和跨语言多功能性的优点
。我们还设计了具有不同容量的SVTR,以满足多样化的应用需求。在英文和中文基准测试上的实验基本上验证了所提出的SVTR的有效性。与最先进的方法相比,我们观察到了高度竞争力甚至更好的准确性,同时运行速度更快。
我们希望SVTR能够促进场景文本识别领域的进一步研究。
📙 预祝各位 前途似锦、可摘星辰
🎉 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ ❤️ 过去的每一天、想必你也都有努力、祝你披荆斩棘、未来可期
- 🍊 计算机视觉:硕博士,交流、敬请查阅
- 🍊 点赞 👍 收藏 ⭐留言 📝 都是博主坚持写作、更新高质量博文的最大动力!