【论文笔记】Robust Scene Text Recognition with Automatic Rectification
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维的向量。此处的输出为基准点的坐标,设定基准点个数为
2) Grid Generator和Sampler
由于Grid Generator和Sampler是配合使用的,所以放在一起简述一下。Grid generator估计出TPS变换参数,生成一个采样网格。基准点和TPS变换如下图所示:
给定
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的输出序列为
2)Decoder: Recurrent Character Generator
decoder根据encoder输出的序列循环地生成目标字符序列。decoder是基于注意力机制的循环网络,此处网络结构采用的GRU是LSTM的一种变体。注意力模型的特点在于,根据输出而不断更新的权重
权重的计算函数为
最后通过softmax函数来计算概率分布,
到此处为止,整个STN+SRN的网络结构介绍完了,除了实验部分,论文后面的内容还包括模型训练的几个注意事项,以及测试阶段如何根据模型输出的结果在词典中查找最接近的word。
3. 模型训练
文章中的训练数据为8百万的合成样本数据,输入图像均resize到100
1)模型参数随机初始化,除了localization network;
2)localization network输出的全链接层初始化参数为0;
3)基准点的初始设置如下图(a)所示(其中b和c的效果不如a)。
4. 测试阶段
测试的过程需要受到词典的约束,而词典有50k以上的word,对比所有word会花费大量的时间。所以,文章采用一种“前序树”的近似查询方法,如下图所示。其中
首先,根据已有的词典建立一个tree,每个结点代表一个字符label,从根结点到叶子结点的路径组成一个word。从根结点开始,每一次根据模型输出的概率分布