【字符识别 end-to-end】SEED: Semantics Enhanced Encoder-Decoder Framework for Scene Text Recognition
论文链接:https://arxiv.org/pdf/2005.10977.pdf
代码链接:https://github.com/Pay20Y/SEED(目前还没更新)
该论文主要用途:解决图像中字符缺损,模糊等样本的识别(这也是吸引我的地方);该方法是在注意力方法的基础上添加了新的策略,提到注意力,可能出现的问题就是模型的运行时间,所以该方法可不可以实际使用,还待考量。(本人愚见,若有不同请留言,谢谢!)
目录
3. Architecture of Semantic Enchanced ASTER
4.Loss Function and Training Strategy
Abstract
1.文字识别中常用的编码解码框架可用于处理透视失真(perspective distortion)和曲线形状(curve shape)的文字,但是依然无法处理:图像模糊,明暗不均衡的图像,以及字符不完整的图像。
2.作者认为当前的识别方法都是基于局部视觉特征,而不是采用的全局语义信息。
基于以上两点,作者提出了语义增强的编码-解码框架用于识别低质量的场景文字。语义信息用于监督编码模块,初始化解码模块。同时作者将ASTER方法整合到给方法中来(作为一个范例),实现了端对端的识别。
作者提出了语义信息(semantic information)用于全局信息的预测。语义信息有两个优势:1)在自然语言处理领域,可通过词嵌入(word embeding)进行监督;2)可用于减少视觉特征编码器和语言信息解码器的gap。
Method
1.Encoder-Decoder Framework
图2(a)成为palin encoder-decoder框架,编码器提取丰富的特征,产生上下文矢量(context vector)C包括输入的全局信息,然后解码器将上下文矢量转换为目标输出。输入输入在不同的任务上是不一样的,例如:文本识别,输入是图像,输出是图像的文字信息。这种框架的缺点是:上下文在代表整个输入的时候能力有限。
图2(b)注意力机制尝试在整个输入和上下文之间创建捷径(shortcut)。解码器可以在每个解码步骤中挑选合适的上下文,能够解决长期依赖问题,以及对齐弱监督训练中解码和译码;
图2(c)中作者的方法包括四个部分:1)编码器,包括CNN主干和RNN用于提取视觉特征;2)语义模块(semantic module)用于从视觉特征中预测语义信息;3)预训练的语言模型用于语义模块的的语义信息监督;4)解码器,包括注意力机制的RNN产生识别结果;
在场景文本识别中,a和b两种框架仅仅依赖译码器有限的视觉特征,所以在处理低质量的图像时能力有限。
在作者的方法中,使用全局的语义信息作为引导。同时使用FastText【4】方法产生词向量作为语义信息的监督,解决了“out of vocabulary”的问题;
Out-of-vocabulary(OOV):未登录词就是训练时未出现,测试时出现了的单词。在自然语言处理或者文本处理的时候,我们通常会有一个字词库(vocabulary)。这个vocabulary要么是提前加载的,或者是自己定义的,或者是从当前数据集提取的。假设之后你有了另一个的数据集,这个数据集中有一些词并不在你现有的vocabulary里,我们就说这些词汇是Out-of-vocabulary,简称OOV。
原文链接:https://blog.****.net/qq_38244371/article/details/92806233
2.FastText Model
作者选用FastText model作为预训练的语言模型,该模型基于skip-gram(读者自行百度,我还不太懂)。假设T是一个文本语料库的句子(sentence)。
:代表句子的长度,作为一个超参数;在skip-gram中,词wi代表了单个的嵌入矢量vi,然后输入进前馈网络,目的是预测上下文,用下式代表:
随着前向网络的训练,嵌入向量同时被优化,一个词的最终嵌入向量接近语义相似的词。
此外,FastText嵌入子单词,并使用子单词去生成单词 wi最终的嵌入,超参数 Lmin和Lmax,分别表示子单词最小和最大的长度。子单词的实例如下,给定假设Lmin=2,Lmax=4,词‘where’的子词集:
FastText模型解决了“out of vocabulary”的问题;
3. Architecture of Semantic Enchanced ASTER
作者将ASTER作为范例和自己提出的方法结合到一块去了,称为Semantic Enhanced ASTER(SE-ASTER),图3所示。包括四个模块:
1)纠正模块:用于纠正倾斜的文字;
2)编码器:用于提取视觉特征,包括:45-layer的Resnet和2-layer的双向LSTM。它的输出是一个特征序列,shape为LXC,L是CNN最后一层特征width,C是depth。
3)语义模块:预测视觉特征的语义信息,语义特征序列又两个线性函数产生:
W1,W2,b1,b2是线性函数的训练权值,是RELU的**函数;
4)解码器:用于记录最终的识别结果,使用Bahdanau-Attention mechanism,它包括一个GRU,有512 个隐藏单元和512个注意力单元。
4.Loss Function and Training Strategy
SE-ASTER是端对端训练,loss函数如下:
Lrec是交叉熵loss,是目标的预测概率,Lsem就是cosine embeding loss预测语义信息。是超参数用于平衡两个loss,作者设定值为1.
S是预测的语义信息,em来自与FastText模型的词嵌入;
训练策略有两条:
1)初始化时,词嵌入的译码器使用pre-train Fast-Text model而不是预测的语义信息;
2)直接使用预测的语义信息来初始化译码器;
以上两种策略,作者评估性能相似,最终使用了第二种策略。