文献阅读——(第十三篇)ASTER:An Attentional Scene Text Recognizer with Flexible Rectification

一、文献梳理

1、文献背景

近几十年来,一种流行的方法是定位单个字符并将其分组为单词。最大稳定极值区域(MSER),极值区域(ER)和笔画宽度变换(SWT)等利用文本的纹理或者形状特征。其他人采用基于学习的方法并使用滑动窗口技术定位字符。一些方法使用卷积神经网络(CNNs)来定位和识别字符。有的方法使用两个CNN来分别定位和识别字符。有的方法只使用一个CNN同时执行定位和识别这两个任务。文本识别也可以建模为结构化学习问题。有人把文本识别当作是序列识别问题,用循环神经网络RNNs来识别,有人用CNN和LSTM结合来识别文本。

2、研究成果

1)模型意义

本文方法主要解决不规则排列文字文字识别问题,论文为之前一篇CVPR206的paper(Robust Scene Text Recognition with Automatic Rectification,方法简称为RARE)的改进版(journal版)。本文的方法属于结构化学习的范畴。它基于注意力序列 - 序列学习模型。这样的模型学习从输入序列预测输出序列。

2)实验及其结果

对检测结果可以微调,可以让检测结果更好,这里提高原因有两个,1是因为通过识别把噪声过滤掉了, 2是位置更准确

二、文献核心思想

方法ASTER全称为Attentional Scene TExt Recognizer with Flexible Rectification,包括两个模块,一个用来矫正(rectification network),另一个用来识别(recognition work),如下图所示。

  • 针对不规则文字,先矫正成正常线性排列的文字,再识别;
  • 整合矫正网络和识别网络成为一个端到端网络来训练;
  • 矫正网络使用STN,识别网络用经典的sequence to sequence + attention

三、文献重点

1、Rectification Network

1)框架

矫正网络框架图如下图,基本上是用STN的框架,包含三个部分:Localization Network用来检测图中的那些Control Points;Grid Generator通过这些Control Point来计算要生成的新图中每个点在原图中的点位置的映射关系;Sampler在原图上采样那些Grid Generator计算出的点位置,生成校正后的图。

2)Localization Network

  • 定位网络(已经训练完进行测试时)的输入是待识别的未矫正前图像,输出是K个控制点的位置。
  • 该定位网络训练时没有用K个控制点作为annotation进行训练,而是直接接入后面的Grid Generator + Sample利用最后的识别结果,连成一个end-to-end的框架进行训练。
  • 网络结构采用一个自己设计的普通的卷积网络(6层卷积 + 5个max-pooling + 2个全连接)来预测K个control point的位置(K= 20)

3)Grid Generator

  • 网格生成器的输入是已有的Control point点集 + 矫正后的图(还未生成,但给定图大小可以取点)上的某个点坐标,输出是该点在矫正前(原图)上的点坐标位置

  • 网格生成器可以看成是一个矩阵变换操作(变换的几个参数a0-a2, b0-b2可以通过Control point位置利用优化问题求解方法求出,因为Control Point在矫正前后的图上的位置都是已知的,故可以计算出对应关系),实际做预测时也是计算该待测点与已知的control point的位置关系,通过一系列对应关系算出在原图的位置。贴个图感受一下这个对应关系如下,p为矫正后的点位置,C为矫正后的Control point的点位置,p'为矫正前的点位置,C’为Control point在矫正前的点位置:

扫描二维码关注公众号,回复: 11519537 查看本文章

 4)Sampler

该Sampler就是给定点映射关系及原图,生成一张新的矫正后的图,用到了简单的插值,以及当超出图外时直接clip掉。另外,Sampler采用可微的采样方法,方便梯度的bp。输入是原图 + 矫正后的图上的点在原图上的对应位置关系, 输出是矫正后的图。

2、Recognition Network

1)思路

识别网络采用当前识别的一般思路:sequence-to-sequence (encoder/decoder框架)+ attention + beam search。网络主要分为两部分,ConvNet + 双向LSTM的encoder模块,和LSTM + attention的decoder模块。

2)框架

损失函数如下,需要计算left-to-right的decoder以及right-to-left的decoder损失。除Location Network的FC层权重初始化为0(防止矫正后的图distort非常厉害),其余所有网络层都采用随机初始化。

               

 

猜你喜欢

转载自blog.csdn.net/weixin_37799689/article/details/106460201