论文链接:
CVPR 2020 Open Access Repository
论文代码:
https://github.com/Pay20Y/SEED
绪论:
论文作者提出了一个语义增强的编码器-解码器框架用来提高对低质量的场景文本识别的能力。语义信息既用于编码器模块的监督,也用于解码器模块的初始化,语义信息来自两方面,一方面来自视觉特征解码,另一方面来自预先训练的FastText模型提供的词嵌入提供监督信息。
启发:现有方法将文本识别任务局部定义为序列字符分类任务,但忽略了整个单词的全局信息。因此,这些方法可能难以处理低质量的图像,例如图像模糊、遮挡和不完整的字符。但是,人们可以通过考虑文本的全局信息来很好地处理这些低质量的案例。为了解决这个问题,作者提出了SEED的框架,并且在融入现有SOTA方法ASTER中,去验证实验想法。文中实验的模型叫SE-ASTER
框架图:
图1
图2
注:红色代表语义增强的编码器-解码器框架
框架有4个部分组成:
(1)Encoder:包括cnn主干(ResNet的45层CNN)和rnn主干(256个隐藏单元的2层双向LSTM), 用于提取视觉特征
(2)Semantic Module:从视觉特征中预测语义信息的语义模块,实际上(two linear functions)
(3)Pre-trained language model:监督语义模块预测语义信息的预训练语言模型
(4)Decoder:包括RNN,attention用于生成识别结果
训练的流程:
首先,(1)将整流后的图像(使用Rectification Module)将被输入到Encoder,并且可以生成visual features。Encoder的输出是形状为L×C的特征序列h=(h1, . . . , hL),其中L是CNN中最后一个特征图的宽度,C是深度。(2)特征序列h有两个函数,一种是通过Semantic Module来预测语义信息,另一种是作为Decoder的输入。为了预测语义信息,首先将特征序列会被flatten为一个维数为K的一维特征向量I,其中K=L×C。
将特征向量I通过Semantic Module(as S,公式1),S = W2σ(W1I + b1) + b2 (公式1)
其中W1,W2, b1, b2 是liner function中的训练参数,σ 是 ReLU 激活函数。(3)语义信息将由预先训练的FastText模型提供的词嵌入来监督,(4)The decoder 采用包含a single layer attentional GRU 的Bahdanau-Attention mechanism,而且作者是采用单方向解码。特别地,语义信息S用于在转换维度的线性函数之后初始化GRU的状态。解码过程将使用全局语义来指导,而不是使用零状态初始化,因此解码器不仅使用局部视觉信息,还使用全局语义信息来生成更准确的结果。
损失函数:
L = Lrec + λLsem(SE-ASTER is trained end-to-end) (公式2)
Lrec是标准交叉熵损失,Lsem是来自预先训练的FastText模型中图像label词向量与预测的Semantic information的余弦嵌入损失。λ是平衡损失的超参数,在这里将其设为1。
Lsem = 1 − cos(S, em) (公式3)
S is the predicted semantic information and em is the
word embedding from pre-trained FastText model
实验结果:
图 3
- 消融试验:
图4:Performance comparison between different strategies.WES represents word embedding supervision. INIT represents initializing the state of the GRU in the decoder. ASTER-r repre-
sents the model re-trained by ourselves.
语义模块有两个步骤,一个是词嵌入监督,另一个是用预测的语义信息初始化解码器。论文作者通过一致地使用 Synth90K 和 SynthText 作为训练数据来分别评估这两个步骤 ,如图4所示
- 评测对比实验:
图5:Lexicon-free performance on public benchmarks. Bold represents the best performance. Underline represents the second best result. * indicates using both word-level and character-level annotations to train model.