【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

文章目录

SVTR: Scene Text Recognition with Single Visual Model

基本信息

  • 论文链接:arxiv
  • 发表时间:2022 – IJCAI
  • 应用场景:自然场景文字识别

摘要

存在什么问题解决了什么问题1. 目前自然场景文字识别的SOTA模型一般都会包含一个vision model(抽取视觉特征)和一个sequence model(用于文字转录),甚至还会带上一个language model。这些模型往往设计比较复杂,因此也导致了性能差的缺陷。1. 提出了一个仅依靠视觉特征就能够完成文字识别任务的SVTR场景文字识别模型,精度高(部分dataset达到SOTA),速度快等优点。

  1. 中文场景下识别任务表现出色,也达到了SOTA。

模型结构

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

; Patch Embedding

输入图片shape=[h,w,3],patch embedding的作用是输出一个shape=[h//4,w//4,d]的patches。

鉴于文字识别是一个细粒度任务,对图像细节的描述有一定的要求,这里作者摒弃了VIT中直接用大卷积核生成这些pathes,而采用了ResNetv1d中的stem结构来产生这些patch,比较简单,不再赘述。后面作者也做了消融实验验证了这样做是最优的。

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

; Mixing Block

经过Patch Embedding后shape=[h//4w//4,d],即token的长度为h//4w//4。

送入1d position embedding模块(作者用的是可学习position embedding)。

现在可以输入给transformer encoder了,并且做了一些优化,pipeline如下:

  • 整体上采用 先局部特征抽取,再全局特征抽取的思想(局部特征抽取在我看来其实就是在encoder mask上做了一点点文章。。。类似于LongFormer,根据先验知识,赋予attention map上每个点人为设定的若干个特定响应点)
  • 局部特征抽取(Local Mixing):attentoion map上的每个token只和其作为中心的h=7(沿query方向), w=11(沿key方向)的局部box内像素点响应,其余token全部mask掉。后面再接FFN。
  • 全局特征抽取(Global Mixing):就是普通的transformer encoder(MHSA+FFN),不知道为啥还要单独取个名。
  • 注意不论是Local Mixing还是Global Mixing,都会堆叠若然次构成级联后再进入mergeing模块。
  • 接着就是merging模块了,先reshape成4d图像,然后做conv3x3(stride_w=1,stride_h=2)下采样操作,降低token数量为原先的1/2,且只在高度方向降采样,保留了图像宽度上的信息的完整性,融合了临近token的信息,另外由于token数量减少了,类似于卷积神经网络,此时会让channel增大,补偿丢失的信息。最后再reshap回序列。

Combining and Prediction

在完成2个完整的stage后,此时高度降采样为原先的1/16,宽度仍然保持1/4。最后的merging被替换成了pool2d(将高度变为1,宽度仍然不变)+全连接+非线性激活函数。

作者说这里不继续用merging的原因是高度此时为2(输入高度32,32/16=2),高度太小对卷积操作不太友好。所以这么做。。。

最后再接一个输出channel= 预测字符数+1的FC,用于识别,此时shape=[w//4,char_num+1]

其他细节

  1. 采用CTC Loss进行训练,所以输出channel=预测字符数+1。因此预测的时候也就自然的依照CTC的解码规则。
  2. 网络最前面有TPS变换。

实验

若干个benchmark上取得SOTA,小模型速度最快,大模型精度高。

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

PatchEmbedding上的消融实验,验证了当前方案是最好的。

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

Merging上的消融实验,验证了conv不仅能够降低token数量,而且还能提升精度。

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

关于Local Mixing和Global Mixing如何堆叠的实验,验证了先Local重复若干次,再Global重复若干次是最优的。

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

SVTR和各主流场景文字识别模型在精度和速度上的比较,SVTR差不多是当前综合来看最好的?

【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

; 总结

  1. 基于VIT,提出了一个仅用单一视觉模型完成场景文字识别的方案,并且在精度和速度上取得了优秀的trade-off,若干个数据集上达到SOTA,中文场景识别效果优秀。
  2. 论文读下来感觉有一些失望:
  3. 一个transformer encoder的冷饭能讲一大堆。。。
  4. 7×11的window size也没有做实验,直接说了7×11是最好的,但是这个7×11和图像上我们常说的7×11可不是一回事啊。
  5. 最关键的STN没有做消融实验,因为模型最后将高度downsample到1了,已经变成序列,没有了2d空间特征,按常理来说对于irregular text的识别效果应该是有限的。这就不得不去怀疑是不是STN正确的矫正了图像,但是没有做实验验证呀!
  6. 另外贴的图还能出现标记错误也是醉了。。【论文笔记】SVTR: Scene Text Recognition with Single Visual Model
  7. 不过有一说一,从指标上看确实不错,能被PaddleOCR收录作为PPOCRv3的核心算法也是很厉害了。就是论文干货确实不多啊啊啊啊!

Original: https://blog.csdn.net/OneYearIsEnough/article/details/124878882
Author: 每天想peach
Title: 【论文笔记】SVTR: Scene Text Recognition with Single Visual Model

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/518957/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球