您的位置:首页 > 其它

【论文笔记】Robust Scene Text Recognition with Automatic Rectification

2017-12-20 15:22 525 查看
Shi B, Wang X, Lv P, et al. Robust Scene Text Recognition with Automatic Rectification[J]. arXiv preprint arXiv:1603.03915, 2016.

  文章提出RARE模型实现对不规则文本的end-to-end文字识别,RARE由STN(Spatial Transformer Network)和SRN(Sequence Recognition Network)组成。STN用于对输入的不规则文本进行矫正,得到形状规则的文本作为SRN的输入,SRN是一个基于注意力机制的网络结构,实现sequence to sequence的文本识别。主要从以下几方面记录。

STN

SRN

模型训练

测试阶段

1. STN(Spatial Transformer Network)

STN主要包括三个部分:1) Localization network; 2) Grid Generator; 3) Sampler,结构如下图所示:



1) Localization network

  该网络在没有任何标注数据的前提下,基于图像内容定位到基准点的位置。文中该网络结构与传统的CNN网络结构相似:4个卷积层,每个卷积层后接一个2*2的max-pooling层,再接2个1024维的全链接层,最后输出为40维的向量。此处的输出为基准点的坐标,设定基准点个数为 k=20。

2) Grid Generator和Sampler

  由于Grid Generator和Sampler是配合使用的,所以放在一起简述一下。Grid generator估计出TPS变换参数,生成一个采样网格。基准点和TPS变换如下图所示:



  给定pi′的坐标,计算出pi的坐标(这里可能会有疑惑,为什么target图像为已和,而原图像为未知),因为我们的目标是计算target图像的像素值,所以文章固定了基准点在target图像中的位置,再来计算target图像中每个坐标的像素值。得到原图中pi的坐标后,在Sampler中,pi坐标附近的像素值已知,通过双线性差值得到pi′坐标的像素值。以此类推,得到最终的target图像I′。

2. SRN(Sequence Recognition Network)

  SRN是一个attention-based模型,包括encoder和decoder。Encoder由卷积层和BLSTM组成,Decoder由基于注意力机制的GRU(Gated Recurrent Unit)组成,如下图所示。



1) Encoder:Convolutional-Recurrent Network

  这里的encoder网络结构与CRNN(见上一篇笔记)中的卷积层和循环层很像,具体配置为:7个卷积层,且第1,2,4,6个卷积层后均接一个2*2的max-pooling层,卷积层上是一个双层的BLSTM网络,每一个LSTM有256个隐单元。encoder的输出序列为h=(h1,h2,…,hL),其中L等于卷积层的宽度。

2)Decoder: Recurrent Character Generator

  decoder根据encoder输出的序列循环地生成目标字符序列。decoder是基于注意力机制的循环网络,此处网络结构采用的GRU是LSTM的一种变体。注意力模型的特点在于,根据输出而不断更新的权重α。

  权重的计算函数为αt=Attend(st−1,αt−1,h),表明当前输出字符对应的权重向量αt与前一个GRU的输出st−1、前一个权重向量αt−1以及输入序列h有关。状态变量的更新函数为st=GRU(lt−1,gt,st−1),其中lt−1在训练阶段为ground-truth,在测试阶段为第t-1(即前一步)预测的字符label。

  最后通过softmax函数来计算概率分布,lt^为概率最高的字符。

到此处为止,整个STN+SRN的网络结构介绍完了,除了实验部分,论文后面的内容还包括模型训练的几个注意事项,以及测试阶段如何根据模型输出的结果在词典中查找最接近的word。

3. 模型训练

文章中的训练数据为8百万的合成样本数据,输入图像均resize到100×32,STN的输出size也是100×32。另需要注意以下几项:

1)模型参数随机初始化,除了localization network;

2)localization network输出的全链接层初始化参数为0;

3)基准点的初始设置如下图(a)所示(其中b和c的效果不如a)。



4. 测试阶段

  测试的过程需要受到词典的约束,而词典有50k以上的word,对比所有word会花费大量的时间。所以,文章采用一种“前序树”的近似查询方法,如下图所示。其中ϵ代表树的根结点,Ω代表EOS(end-of-sequence)。



  首先,根据已有的词典建立一个tree,每个结点代表一个字符label,从根结点到叶子结点的路径组成一个word。从根结点开始,每一次根据模型输出的概率分布yt^,在叶子结点中找到概率最高的一个,然后继续,一直到叶子结点被找到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  end-to-end text rare srn stn
相关文章推荐