1.摘要
论文提出一种统一的网络结构模型,这种模型可以直接通过一次前向计算就可以同时实现对图像中文本定位和识别的任务。这种网络结构可以直接以end-to-end的方式训练,训练的时候只需要输入图像,图像中文本的bbox,以及文本对应的标签信息。这种end-to-end训练的模型,可以学习到更加丰富的特征信息。而且,这种模型所需要的时间更少,因为在文本检测和识别的时候,只需要计算一次图像的特征,这种特征是同时别文本检测和识别所共享的。
2.相关工作介绍
将检测和识别统一到一个模型里面,进行end-to-end训练的优点:
a.由于检测和识别是高度相关的,因此将检测和识别统一到一个模型里面,就使得图像的feature可以被共享利用。
b.检测和识别这两种任务可以是互补的,更好的检测结果可以提升识别的准确率,识别的信息也可以被用来精修检测的结果。
论文的主要贡献有三个:
a.end-to-end方式训练出来的模型可以学习到更丰富的图像特征,并且这种特征可以被两种不同任务所共享,可以有效的节省时间。
b.论文中提出了一种全新的region feature抽取方法。这种feature抽取方法可以很好的兼容文本bbox原始长宽比以及避免图像的扭曲,而且ROI pooling可以生成具有不同长度的feature maps。
c.提出了一种类似课程学习策略的方法用一种逐渐增加图像复杂性的数据集来训练模型。
3.模型中各个模块介绍
模型整体框架介绍:首先用修改后的VGG16网络对图像进行特征提取,用TPN对提取的CNN特征进行region proposals的生成。然后用由LSTM组成的RFE将region proposals编码成固定长度的表征序列。将fixed-length的representation输入到TDN,计算每个region proposals属于文本区域的置信度与坐标偏移量.然后RFE再计算TDN所提供的bboxes内的fixed-length representation.最后TRN基于检测到的bbox的representation来识别单词。
3.1 TPN
这种结构是由faster rcnn中的RPN结构改进得到。为了适应文本区域的不同程度的长宽比以及尺度的不同,TPN结构采用了相比于RPN更多的anchors(24个),包括4种尺度(16^2,32^2,64^2,80^2),6种长宽比(1:1,2:1,3:1,5:1,7:1,10:1).同时使用了两种256维的卷积核(5x3,3x1),分别抽取feature maps中局部和上下文的信息.这种长方形的filters更加适用于本身具有不同长宽比的单词bbox.
3.2 RFE
首先利用尺寸为h×w的ROI pooling操作将region proposals池化成H×min(W_max,2Hw/h)大小。最后获得包含有任意宽度的feature maps Q∈R^(C×H×W)。将这些feature maps按列进行转换成序列(q_1,q_2,…,q_W)。然后将这些序列输入到LSTM中进行编码,取LSTM最后一个时间步的隐层输出h_W作为fixed-length representation。3.3 TDN
将编码向量输入到两个并行的网络层——分别用于分类和bbox回归。整个bbox位置的精修分成两个部分:TPN和TDN。
TRN主要用来预测检测窗口中的文本信息,通过使用注意力机制来将抽取的feature解码成单词。将来自RFE的隐层输出输入到具有1024个神经元的LSTM编码器,得到每个时间步隐层的输出作为抽取的region features V=[v_1,v_2,…,v_W]。在训练的时候,将每个文本bbox的单词label作为LSTM每个时间步的输入,词序列为s={s_0,s_1,…,s_(T+1)}。
将x_0,x_1,…,x_(T+1)作为解码LSTM的输入,其中x_0=[v_W;Atten(V,0)],x_i=[φ(s_(i-1));Atten(V,h_(i-1)^')],φ()表示将词向量进行变换的嵌入操作。c_i=Atten(V,h_(i-1)^')的定义如下:
整个解码LSTM的隐层计算和输出计算如下:
4. 多任务损失函数
整个网络包含了分类和检测两个部分,所以在训练的时候,整个模型所使用的损失函数为一个多任务损失函数,定义如下,前两个部分主要用来训练TDN部分,最后一个部分用来TRN识别分类部分。
5. 网络训练
a. 先将TRN部分固定,用合成的数据来训练网络的其他部分,其中卷积部分用VGG16网络来进行初始化,剩余网络部分采用高斯随机初始化,其中前四个卷积层学习率设置为10^-5,其余的网络层设置为10^-3.训练迭代30k次。
b. 将TRN部分加入训练,并将此部分的学习率设置为10^-3,之前用随机初始化的网络部分的学习率降低为原来的一半,训练时使用的数据与步骤a中一样。训练迭代30k次。
c. 合成新的数据集,将文本信息随机加入到真实场景中。用这些新合成的数据集训练整个模型,其中卷积部分学习率设置为10^-5,其余网络层设置为10^-4。训练迭代50k次。
d. 用真实的数据来训练模型。在训练的过程中,卷积层固定不再发生变化,其余部分的学习率设置为10^-5,训练迭代20k次。
参考文献
1.Li H, Wang P, Shen C. Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks[J]. 2017.
2.Girshick R. Fast R-CNN[J]. Computer Science, 2015.
3.Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6):1137.