文本识别——SVTR阅读笔记

使用单个视觉模型进行场景文本识别
论文:Scene Text Recognition with a Single Visual Model
创新点:主流的场景文本识别模型通常包含两个构建块,用于特征提取的视觉模型和用于文本转录的序列模型。本文提出了一种场景文本识别的单一视觉模型,引入了局部和全局混合块,分别用于提取类似笔画的特征和字符间的依赖关系,结合多尺度骨干网络,形成了多粒度的特征描述。

背景

image.png
从方法上讲,场景文本识别可以看作是从图像到字符序列的跨模态映射。通常识别器由两个构建块组成,一个用于特征提取的视觉模型和一个用于文本转录的序列模型。例如,基于CRNN(图 a)的模型[Zhai et al., 2016; Shi et al., 2017]效率高,但对文本的变形、遮挡等干扰很敏感,限制了其有效性。基于编码器-解码器(图 b)的自回归方法[Sheng et al., 2019; Li et al., 2019; Zheng et al., 2021]将识别转换为迭代解码过程。考虑了上下文信息,提高了准确率。但由于逐字转录,推理速度较慢。基于视觉语言的框架[Yu et al., 2020; Fang et al., 2021],其中纳入了语言知识(图 c),并进行了并行预测。但管道往往需要一个大容量的模型或复杂的识别范式来保证识别精度,效率较低。
最近,人们致力于开发简化的体系结构来加快速度。例如,使用复杂的训练范式但简单的模型进行推理。[Hu et al., 2020]重新研究了基于CRNN-RNN的解决方案。它利用注意机制和图神经网络对同一字符对应的序列特征进行聚合。在推理中,为了平衡准确性和速度,忽略了注意建模分支。PREN2D [Yan et al., 2021]通过同时聚合和解码一维子字符特征,进一步简化了识别。[Wang et al., 2021] 提出VisionLAN。它引入了字符闭塞学习,赋予视觉模型语言能力。在推理时,视觉模型仅用于加速。考虑到基于单一视觉模型架构的简单性,一些识别器被提出使用现成的CNN [Borisyuk et al., 2018]或ViT [Atienza, 2021]作为特征提取器。尽管效率很高,但与最先进的方法相比,它们的准确性缺乏竞争力。

解决问题

基于单一视觉模型的方案只有在能够提取判别性特征的情况下才是有效的。具体而言,该模型可以成功捕获字符内的局部模式和字符间的长期依赖。前者编码描述字符细粒度特征的笔画特征,是区分字符的关键来源。而后者记录了从互补的角度描述文字的类似语言的知识。
本研究旨在通过强化视觉模型来增强识别能力,提出了一种基于视觉的SVTR模型,用于准确、快速和跨语言的通用场景文本识别。SVTR将图像文本分解为称为字符组件的小2D补丁,采用基于补丁的图像标记化和自关注来捕获字符组件之间的识别线索。通过一个三级高度逐步降低混合模块,获得代表字符笔画特征的局部组件级亲和力,以及不同字符之间的长期依赖关系,形成多粒度特征感知。最后,通过简单的线性预测即可实现识别。

模型框架


一个三级高度递减的网络。H×W×3 的图像,通过渐进式重叠补丁嵌入(Progressive Overlapping Patch Embedding)得到 H/4×W/4×D0 的字符组件,每个组件与图像中的一小部分文本字符相关联。然后,经过高度逐渐下采样的三个阶段,第i阶段由Li个混合块(Mixing Blocks)、合并(Merging)或组合(Combing)操作构成,在不同的尺度上进行特征提取生成大小为1 × W/4 × D3的表示C,该表示感知多粒度特征。最后,对字符序列进行并行线性预测和去重复,得到字符序列。

渐进式重叠补丁嵌入 POPE


对于图像文本,首先需要从图像中获取表示字符组件的特征补丁。通过使用两个连续的3×3卷积和批量归一化来实现补丁嵌入。通过两个级联的卷积模块实现将输入H×W×3的图像嵌入到H/4×W/4×D0 字符组件中。尽管这种方案稍微增加了计算成本,但它逐步增加了特征维数,有利于特征融合。

混合块

单视觉模型实现高精度文本识别需要两种特征:

  • 局部细粒度特征:局部组件模式,比如类似笔划的特性。
  • 全局粗粒度特征:字符间依赖性,如不同字符之间或文本与非文本成分之间的相关性。

设计了具有不同感受野的两个混合块(Mixing Block)来完成这两种粒度特征的感知和提取:

  • Global Mixing:感知所有字符组件之间的依赖关系,提取全局特征。此外它还能够削弱非文本区域中组件的影响,进一步提高文本区域中字符组件的重要性。
  • Local Mixing:感知预定义感受野领域(7*11)内组件之间的相关性,提取局部特征。其目标是对字符形态特征进行编码并建立字符内组件之间的关联,从而模拟对字符识别至关重要的笔画特征。


在数学上,对于上一阶段的字符组件CCi−1,它首先被reshape为一个特征序列。当进入Mixing block时,应用LN进行标准化,然后进行多头自注意获取其依赖关系/采用自注意力机制来捕捉局部模式。然后,依次应用LN和MLP进行特征融合。同时引入跳跃连接,形成全局/局部混合块。两种混合块旨在提取互补的不同特征。在SVTR中,这些块在每个阶段中反复应用多次,进行全面的特征提取。

合并


如果三个阶段保持恒定空间分辨率( H/4×W/4 ),会带来很高的计算成本,这也会导致特征表示的冗余。合并由对高度下采样的卷积实现,不仅降低了计算成本,而且还构建了适配文本图像的层次结构。增加通道数以补偿高度下采样带来的信息损失。

组合和预测


在第三阶段,将高度池化(Pool)为1,避免对一维尺寸很小的嵌入进行卷积,例如高度为2的嵌入。然后是全连接层、非线性激活和dropout。通过这样做,字符组件被进一步压缩为特征序列,序列元素由维度为D3的特征所表示。使用组合后特征序列,通过简单的并行线性分类器来实现识别。

构架变体


SVTR 有多个超参数:基于三个阶段的通道数和多头自注意力的head数、Mixing Block个数和排列次序。通过改变超参数,提出了四种典型架构:SVTRT (Tiny),SVTR-S (Small),SVTR-B (Base) ,SVTR-L (Large)。

训练结果

数据集

  • MJSynth(MJ) 和 SynthText(ST) :英文文本图像
    • ICDAR 2013 (IC13):1095张测试图像,丢弃包含非字母数字或少于三个字符的图像。因此,IC13包含857张图像。
    • Street View Text(SVT):从谷歌街景中裁剪出来,647张测试图像。
    • IIIT5K-Words(IIIT):包含3000张测试图像。
    • ICDAR 2015(IC15):谷歌眼镜拍摄,没有仔细定位和聚焦。IC15有1811张图片和2077张图片两个版本,本文使用前者。
    • Street View Text-Perspective(SVTP):从谷歌街景中裁剪出来,639张测试图像,其中许多是透视扭曲的。
    • CUTE80(CUTE):曲线文本识别。288个测试图像通过使用带注释的单词从完整图像中裁剪出来。
  • Chinese Scene Dataset:中文文本图像。包含509164、63645和63646个训练、验证和测试图像。验证集用于确定最佳模型,然后使用测试集对其进行评估。

实验细节

SVTR使用rectifification module,其中图像文本被调整为32 × 64进行失真校正。使用权重衰减为0.05的AdamW优化器进行训练。
对于英文模型,初始学习率设置为 5 1 0 4 × b a t c h s i z e 2048 \frac{5}{10^4}×\frac{batchsize}{2048} 1045×2048batchsize。在所有21个epoch中都使用了带2个epoch线性预热的余弦学习率调度器。训练过程中随机使用如旋转,透视失真,运动模糊和高斯噪声等数据增强。字母表包括所有不区分大小写的字母数字。最大预测长度设置为25。它的长度超过了绝大多数英语单词。
对于中文模型,初始学习率设置为 3 1 0 4 × b a t c h s i z e 512 \frac{3}{10^4}×\frac{batchsize}{512} 1043×512batchsize。在所有100个epoch中都使用了5个epoch线性预热的余弦学习率调度器。数据增强未用于训练。最大预测长度设置为40。单词准确性被用作评估指标。
所有模型都是通过使用4 Tesla V100 GPUs在PaddlePaddle上进行训练的。

指标

参数量 Params(M):模型训练中需要训练的参数总数,衡量模型大小(计算空间复杂度)。
速度 Speed(ms):在一个NVIDIA 1080Ti GPU上平均超过3000个英文图像文本的推理时间。
准确率 Accuracy:所有的预测正确(正类负类)的占总的比重。

消融实验

  • POPE、合并

image.png

  • 混合块

image.png

  • 对比先前模型

image.png
image.png

可视化分析

image.png
第一行显示了凝视字母“B”的一小部分的三幅地图,重点分别放在它的左侧、底部和中间部分。这表明不同的字符区域有助于识别。第二行是凝视“B”、“L”、“S”三个不同字符的三幅图。SVTR-T还能够通过将字符视为一个整体来学习其特征。而第三行显示三个地图同时激活多个字符。这意味着成功捕获了不同字符之间的依赖关系。这三条线一起揭示了子字符、字符级和跨字符线索都被识别器捕获,符合SVTR感知多粒度字符组成特征的要求。这再次说明了SVTR的有效性。

  • 50
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刀二

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值