文章目录
Towards Accurate Scene Text Recognition with Semantic Resoning Networks
基本信息
- 论文链接:arxiv
- 发表时间:2021 - CVPR
- 应用场景:场景文字识别
摘要
存在什么问题 | 解决了什么问题 |
---|---|
1. 之前的场景文字识别模型在视觉信息上的挖掘是比较充分的,但是对于语义信息的使用考虑较少。 2. 过往的模型中用到语义信息的大都使用了RNN结构,但是它有着天然的缺陷:不能并行解码、并且其上下文语义是单路的(要么来自于上一个字符,要么来自于下一个字符),限制了计算效率与信息的有效传播、这期间还会有无用语义信息以及错误语义信息的传播,效果不尽如人意。 | 1. 提出了SRN网络,该网络中的GSRM模块能够将全局语义信息通过多路并行传播,进而对上下文语义进行充分的探索,使得SRN在regular以及irregular dataset上达到多个SOTA。 |
模型结构
label预处理规则:头部加 < s o s > <sos> <sos>,尾部加 < e o s > <eos> <eos>,长度不到max_decode_length的用 < p a d > <pad> <pad>补齐。
Backbone Network
采用ResNet50。
用了一个FPN结构,取stage3,stage4,stage5做特征融合,从stage5逐级上采样融合到stage3,最终得到的feature map在高、宽上降采样倍率为原图的1/8(stage3的大小)。
再通过一个transformer encoder(n_head=8,n_layers=2)做2d feature map特征加强。(backbone就已经比其他模型的参数多很多了。。)
Parallel Visual Attention Module(PVAM)
设feature_map shape=[hxw, c],PVAM的作用是产生对齐后的视觉特征,其shape=[max_len, c’]。
PVAM通过并行计算的方式一次性求出max_len个向量,每个向量代表该位置上应该被识别出的字符所代表的隐空间向量。如何并行?通过修改Bahdanau attention的计算方法来实现。
一般地,在seq2seq with attention结构上,解码器需要一个LSTM,输入 < s o s > <sos> <sos> balabala …,阻碍并行的原因是每次的输入都要上一个step的LSTM的输出结果的embedding。这里作者直接用每个即将参与解码字符的position embedding来代替(文中叫reading order embedding),那么一次性就可以得到max_len个embedding vector了(idx=0,1,2,…,max_len-1),从而也不再需要LSTM,此时就相当于一次性拿到所有时间步的输出字符的embedding vector了,计算公式如下:
O t O_t Ot就是position idx。
基于feature map和attention score,一次性求出每个时间步输出的对齐后的视觉特征:
注意PVAM涉及到一些broadcast操作。
Global Semantic Reasoning Module(GSRM)
Visual-to-semantic embedding block
如上图中图(a)所示,基于PVAM的输出:
先通过FC映射到字符空间,接一个softmax,得到每个时间步上预测字符的概率分布,通过ce loss进行优化:
再求个argmax,得到每个时间步上预测的字符,再通过一个shape=[vocab_size, d]的embedding layer,映射成向量,此时shape=[max_len, d],准备送入Semantic Reasoning Block。
Semantic reasoning block
该模块为transformer encoder(n_head=8, n_layers=4)。
作用是根据上下文信息对每个时间步上的字符进行预测,refine PVAM模块输出结果。
注意mask的生成以及shift left\right,因为每个字符要么只能看到其左侧字符,要么只能看到其右侧字符。
该模块Loss也采用ce loss:
Visual-Semantic Fusion Decoder(VSFD)
PVAM和GSRM都能输出预测结果,所以很自然的想到能不能把两个模块的结果做一个融合?VSFD就起到了这个作用。
因为是来自不同模态的特征,所以作者这里通过学习的方式来学习自适应权重效果应该是最好的,合方法采用门控机制:
σ是sigmoid激活函数。后面的消融实验也验证了这个融合方式效果是最好的。
同样的,最终的融合输出 f t f_t ft也采用ce loss:
Loss
Loss为前面三个分类Loss的加权求和:
实验
6个数据集上达到SOTA:
backbone消融实验,验证了CNN+transformer+reading order embedding效果是最好的:
GSRM消融实验,4层堆叠效果最好:
VSFD消融实验,验证了门控机制效果是最好的:
总结
- 提出了一个带有全局上下文语义推理模块(GSRM)的自然场景文字识别网络SRN,使模型具备了在低质图像下的”猜“字符的能力,进一步提升了识别的鲁棒性。GSRM是multi-way-decode的,具备global特性,因此受错误累积影响小、抗噪能力更强。另外GSRM模块是并行的,速度相对较快。
- PVAM模块的输出正确性尤为重要,不论是GSRM还是VSFD,都非常依赖PVAM的输出,而PVAM中采取了”近似“的手段,这就导致了其输出精度注定不会太高,那么此时后面俩模块所起到的作用也就大打折扣了。因此保证PVAM输出一个对齐效果比较好的视觉特征是非常必要的。