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