FOTS: Fast Oriented Text Spotting with a Unified Network阅读笔记

        场景文本识别一般分为两步处理文本检测和文本识别。但是这样花费的时间比较多,尤其是文本区域多的时候,另一方面两步处理会忽视两者之间的共享相关联的信息。所以本文提出通过ROIRotate操作将两者结合起来进行联合训练,可以看成是端对端的。这是目前第一个端对端的有向(可识别非水平)文本识别网络,结果表明本网络识别速度快,达到了时时水平,并且比目前所有的结果高5%。

        本文的主要创新点为提出ROIRotate,识别率高同时识别速度快到实时水平。

框架:

        总共分为四个部分: 共享卷积、文本检测分支,RoI Rorate操作和文本识别分支。图像经过一个共享卷积模块提取共享特征(文本检测和文本识别共享),共享特征输入到文本检测分支输出预测边框,同时输入RoI Rotate提取建议文本特征输入文本识别分值,最终预测文本结果。

1.共享卷积

        框架借鉴res50,受到金字塔特征网络影响,作者将低级别的特征和高级别的语义特征拼接在一起,Deconv包含一个卷积操作和上采样操作.

2.文本检测分支

        作者采用全卷积神经网络,由于场景图片包含许多小文本,所以作者在共享卷积中将特征图上采样,尺寸从原图的1/32到1/4。对共享卷积输出的特征进行卷积,预测每一个像素的输出。第一通道计算每一个像素的是否为文本,然后四个通道为边界框的四个参数,最后一个通道为边界框的方向。对最终的识别结果采用非极大值抑制,去除冗余的识别结果。

        由于有一些像素点很难判断如,栅栏、网格线等,作者采用online hard example mining(OHEM)工具,区分这些模式,提高了2%的正确率。

        损失函数包含两个部分:文本像素分类和边界框回归。1为分类损失,px为OHEM生成的像素分数图,px*为label。两者计算交叉熵,如式1.边界框为IoU和角度的线性组合,Rx为边界框,θ为相对水平的偏转角,如式2.最终的总的损失函数为两部分的加权组合。如式3。

3.RoIRotate操作

        该操作为了转换偏移文本区域的特征获取水平对齐特征,如下图所示:

        作者保持输出高度,以及长宽比比不变。和其他类似的操作相比,该操作最大的特点在于使用了上线下插值用于计算输出的值,这样减少了误对齐,同时可以保证输出特征的长度变化。该变换分为两步。一通过text proposals的预测值或者label计算放射转换参数,二分别对不同区域的共享特征图实施仿射变化,通过双线性插值获取水平feature map。步骤一公式如下:

       t,b,l,r为边界框,(x,y)为共享feature map点,ht,wt为输出的长和高默认为8,这样可以通过4567计算出仿射变换矩阵M。

步骤二如下:

由于输出的长度不定长,所以作者padding到最大长度,忽略该部分的损失。

4.文本识别分支

        文本识别很受噪声影响,所以作者在训练时,使用正确的文本区域而不是预测的文本区域。作者使用了类似VGG形式的序列卷积,为了避免窄的字符被消除,只在高度方向谁有maxpooling,然后接一个双向的LSTM,输出到全连接层到CTC解码。其中结构如下所示,识别部分的损失使用CTC 损失。

整个四部分的结构的总损失为文本检测损失和文本识别损失的线性组合。组合系数取1

        作者在训练时使用了一些trick.模型现在imagenet上预训练,然后使用本数据集微调模型直到收敛。同时使用了数据增强方法。如选择任意-10-10°,长边resize从640到2560最终再随机剪切为640×640.

        作者在ICDAR2015,ICDAR 2017 MLT,ICDAR 2013数据集上测试。结果全部优于以前的方法。即如果如下:

一些图像结果如下:

速度也领先其他

结论:

        本文提出的一种端对端的有向文本识别模型FTOS, 采用RoiRorate操作,通过共享特征,提高了识别的速度,同时获得了优于其他模型的结果。

猜你喜欢

转载自blog.csdn.net/yang_daxia/article/details/88047035