摘要
场景文本识别的一个具有挑战性的方面是处理带有扭曲或不规则布局的文本。特别地,透视文本和弯曲文本在自然场景中是常见的并且难以识别。在这项工作中,我们介绍了ASTER,一种端到端的神经网络模型,包括校正网络和识别网络。校正网络自适应地将输入图像转换为新图像,对其中的文本进行纠正。它由灵活的薄板样条转换(Thin-Plate Spline transformation)提供动力,可处理各种文本不规则,并且无需人工注释即可进行训练。识别网络是注意力序列到序列模型( attentional sequence-to-sequence model ),其直接从校正图像预测字符序列。整个模型是端到端训练的,只需要图像和它们的真实文本。通过大量实验,我们验证了校正的有效性,并展示了ASTER最先进的识别性能。此外,我们证明ASTER是端到端识别系统中的一个强大组件,因为它能够增强探测器。
方法
主要思路
- 针对不规则文字,先矫正成正常线性排列的文字,再识别
- 整合矫正网络和识别网络成为一个端到端网络来训练
- 矫正网络使用STN,识别网络用经典的sequence to sequence + attention
修正网络
网络框架
矫正网络框架图如下图,基本上是用STN的框架,包含三个部分,Localization Network,Grid Generator,以及Sampler。
- Localization Network用来检测图中的那些Control Points;
- Grid Generator通过这些Control Point来计算要生成的新图中每个点在原图中的点位置的映射关系;
- Sampler在原图上采样那些Grid Generator计算出的点位置,生成校正后的图。
Localization Network
- 定位网络(已经训练完进行测试时)的输入是待识别的未矫正前图像,输出是K个控制点的位置。
- 该定位网络训练时没有用K个控制点作为annotation进行训练,而是直接接入后面的Grid Generator + Sample利用最后的识别结果,连成一个end-to-end的框架进行训练。
- 网络结构采用一个自己设计的普通的卷积网络(6层卷积 + 5个max-pooling + 2个全连接)来预测K个control point的位置(K= 20),点对应关系如下图:
Grid Generator
该网格生成器和之前那篇会议paper(参考文献3),以及STN(参考文献2)其实是一样的,只是作者将公式用更详细的公式推导和图表示了一下。这里简单介绍下主要思想,具体公式推导等不细讲了。
- 网格生成器的输入是已有的Control point点集 + 矫正后的图(还未生成,但给定图大小可以取点)上的某个点坐标,输出是该点在矫正前(原图)上的点坐标位置
- 网格生成器可以看成是一个矩阵变换操作(变换的几个参数a0-a2, b0-b2可以通过Control point位置利用优化问题求解方法求出,因为Control Point在矫正前后的图上的位置都是已知的,故可以计算出对应关系),实际做预测时也是计算该待测点与已知的control point的位置关系,通过一系列对应关系算出在原图的位置。贴个图感受一下这个对应关系如下,p为矫正后的点位置,C为矫正后的Control point的点位置,p’为矫正前的点位置,C’为Control point在矫正前的点位置:
sampler
该Sampler就是给定点映射关系及原图,生成一张新的矫正后的图,用到了简单的插值,以及当超出图外时直接clip掉。另外,Sampler采用可微的采样方法,方便梯度的bp。
- 输入是原图 + 矫正后的图上的点在原图上的对应位置关系, 输出是矫正后的图
STN以及RARE的对比
-
和STN的不同点
本文在输入网络前将原图resize成小的图,然后在该小图上预测control point,而输入到Grid Generator或Sample计算的时候又映射回原图大小。这样的目的是为了减小网络参数,降低计算量(但有没有可能小图对于control point的prediction会不准?对于识别来讲,每个word的patch块本身就比较小了,而且小图映射回大图的点位置这个误差比例就会放大?) -
和RARE的不同点
网络最后fc层的激活函数不是用tanh,而是直接对值进行clipping(具体怎么clip论文没说),这样做的目的是为了解决采样点可能落到图外面的问题,以及加快了网络训练的收敛速度,论文中对此没有解释本质原因,只是说明实验证明如此。