Paper : https://arxiv.org/abs/2005.10977
针对图像模糊,照明不均匀和字符不完整的问题提出模型 SEED(语义增强的编解码框架),可以识别低质量的场景文本。
SEED 基本流程
- 图像输入到矫正模块,将不规则形状的文本矫正为水平文本;
- 将矫正后的特征输入到编码器 ( CNN + LSTM ) ,输出 h h h
- 使用两个线性函数将 h h h 处理为语义信息 S S S
- 使用语义信息 S S S 作为解码器的初始状态,编码器的输出 h h h 作为解码器的输入,预测结果。
SEED 通用框架
对于普通的 Encode-Decoder 和 基于 Attention 的 Encoder-Decode,解码器仅仅依赖局部的信息去解码,而没有使用全局信息,SEED 加入了语义模型学习语义信息作为图片的全局信息。SEED 主要包含四个部分:
- 编码器:提取视觉特征,CNN + LSTM;
- 语义模型:预测语义信息,当做图片的全局信息
- 预训练语言模型:生成 word embedding,监督预测的语义信息
- 解码器:预测结果,Attention + RNN
可以使用在任何基于 Attention 的Encode-Decode 的模型。
语义模型
输入:解码器的输出 h h h
结构:两个线性函数 ( 代码中用了一个 )
输出:语义信息 S S S
使用预训练的语言模型 FastText 生成的 word embedding 监督语义信息 S S S,使用余弦嵌入损失 ( cosine embedding loss )
预训练语言模型
SEED 生成 word embedding 的预训练的语言模型使用 FastText,使用生成的 word embedding 监督预测的语义信息,FastText 也可以解决词汇量不足的问题。
Semantics Enhanced ASTER ( SE-ASTER)
将 ASTER 作为提出框架的一个具体实例,SE-ASTER
包含四部分:矫正模块,编码器,语义模型,解码器
首先,图像输入到矫正模块,把图片矫正为水平的 (TPS)。
然后,将矫正后的特征输入到编码器中,编码器包含 45 层的 ResNet 和 256 个隐藏单元的 BiLSTM,得到编码器的输出 h = ( h 1 , . . . , h L ) h=(h_1, ...,h_L) h=(h1,...,hL) ,大小为 $ L × C$ , L L L 是 CNN 最后特征图的宽度, C C C 是深度。
编码器输出特征 h h h 有两个作用,一个是通过语义模块预测语义信息,另一个是作为解码器的输入。
预测语义信息,首先把特征序列展平为
K
K
K 维的向量
I
I
I ,
K
=
L
×
C
K=L×C
K=L×C ,使用两个线性函数预测语义信息
S
S
S:
S
=
W
2
σ
(
W
1
I
+
b
1
)
+
b
2
(1)
S = W_2 \sigma (W_1 I + b_1) + b_2 \tag{1}
S=W2σ(W1I+b1)+b2(1)
σ
\sigma
σ 是 ReLU 激活函数。
然后使用语义信息 S S S 作为解码器的初始状态,编码器的输出 h h h 作为解码器的输入,预测结果。解码器使用单层 attention GRU,attention 使用 Bahdanau-Attention
Loss Function
总损失:
L
=
L
r
e
c
+
λ
L
s
e
m
(2)
L = L_{rec} + \lambda L_{sem} \tag{2}
L=Lrec+λLsem(2)
L
r
e
c
L_{rec}
Lrec 是预测概率和 GT 的交叉熵损失,
L
s
e
m
L_{sem}
Lsem 是预测的语义信息和 word embedding 的 cosine embedding 损失。
L
s
e
m
=
1
−
c
o
s
(
S
,
e
m
)
(3)
L_{sem} = 1 - cos(S, em) \tag{3}
Lsem=1−cos(S,em)(3)
S
S
S 是预测的语义信息,
e
m
em
em 是预训练的语言模型生成的 word embedding
识别结果示例:
总结
由于在语义模型存在全连接层,所以在推理阶段提取特征之后的特征维度必须和训练时相同,因此在推理阶段输入图片的大小必须处理为训练时图片的固定大小。在处理较长图片时,强制缩放,会造成一定损失,对预测结果造成负面影响。