论文阅读分享--OCR--Reading Scene Text withAttention Convolutional Sequence Modeling

论文:

Gao Y, Chen Y, Wang J, et al. Reading Scene Text withAttention Convolutional Sequence Modeling[J]. 2017.

这篇工作是OCR问题中的文字识别模型。主要改进点有两个:

1)CNN特征提取阶段,引入了残差注意力模块,通过全图特征的学习,增强前景文字,抑制背景。

2)CNN卷积替代LSTM,实现frame级别feature sequence的关联学习,参数更少,性能提升,精准度基本持平。

1. 相关工作

文字识别的模型主流方案有以下四种,(a)是cnn输出直接做分类,效果较差。(b)和(c)都是CNN输出后经过RNN block(如lstm,blstm,gru等)进行序列建模,采用CTC loss(b)或类似翻译模型的attention loss(c),这两种是当前比较主流的方案,缺点是RNN计算复杂度比较高,不易训练。d是本文采用的方案,采用CNN来替代RNN进行序列建模,采用CTC loss做为损失函数,和RNN方案相比,可以在性能上有比较大的提升。


2. 整体方案:

1)Attention feature encoder做frame维度的CNN序列的特征提取,采用的方案是小的Dense block,加入了Residual attention。

具体来说,F是原图的feature branch,A是attention,Residual attention模块的输出T是原图加了一层attention。

Attention层采用了先降维再升维的对称结构,做图像的重建,可以考虑更大的感受野,获得全局信息。Attention的高维特征更关注语义,而低维的特征更关注边缘,颜色,结构,混合attention后的结果产生了增强前景,抑制背景的效果。

2) Feature sequence的卷积建模。Convolutional sequence modeling的输入是Frame维度的feature sequence,之前的解决方案是feature sequence会输入RNN(如blstm, lstm, gru等)进行序列特征提取,本文的创新点是用CNN层来进行序列特征提取,取代了RNN block。

Feature sequence先经过卷积运算产生frame间的关联,4层kernel=5的卷积可以关联前后15个输入的图片frame,替代RNN block的序列特征提取过程。这样做的原因是CNN的参数更少,性能更高,在文字的序列建模中也有大量基于CNN方案。

CNN层产生C*W*H的特征向量(c是channel数,w是宽,H是高),某一列上所有的channel进行concate,形成C*H的2D的vector,得到W个这样的vector, softmax之后得到W个输出y_t。

3) CTC层输入是frame的预测结果y_t,即每个frame预测L个字符的softmax分布(例如英文的集合L可以代表36个类别,对应所有的英文字母、特殊字符和空格),输出是真实的label,采用了CTC loss作为损失函数。

关于ctc loss在OCR模型中的意义和例子,可以参考这篇博客:

https://blog.csdn.net/dongfang1984/article/details/77586945

y_t输出的结果相当于下图例子中的6个类别的输出,对应真实label为”apple”,CTC LOSS的优化目标是这个过程的概率似然。

3.网络配置


4.实测效果

在部分任务是有提升,但是提升不太大。

相比之下,因为取消了RNN层,性能的提升非常明显。

对比加入和不加attention,加入attention效果可以提升1-2%

5.评价

这篇工作采用CNN替代RNN层进行序列,性能提升显著,有一定的实际应用价值。

你可能感兴趣的:(论文阅读分享--OCR--Reading Scene Text withAttention Convolutional Sequence Modeling)