简单理解
直观理解来说,很多时候,自然场景中文本的出现往往与自然场景中的物体有关,比如说,在广告牌上一定有文字。然后有一些物体上往往会更大概率出现为。文本和物体并不是相互独立的。而且这样利用物体的信息还有一点好处,会减少文本检测的误检率。比如说车轮子和英文字符o很像,但是我们可以知道在文字是不可能出现在车底下的,这就杜绝了错误是别的问题。
数据集
数据集是能够训一个好模型的关键。作者自己构建了一个用来训练的数据集。名字叫做NTU-UTOI。总共22,767,这些 images from ICDAR 2011 robust scene text, ICDAR 2015 incident scene text, KAIST scene text, MSRA-TD500, NEOCR(Natural Environment), SVT, USTB- SV1k ,(多方向多视角自然图像文本数据库) and Traffic Sign datasets , 和一些作者自己在网络上下载和收集到的图片。当然这里面是没有之后用来做测试的图片的。这个数据集在当时是非人造的第二大数据集。在这个数据集当中,文本和45种物体种类被标记出来。这些物体都是些在街头常见的物体,而且这些物体往往与文本的出现有着关联。
网络
在这片论文中,作者使用的backbone是faster RCNN,如下图所示:
faster rcnn
在这里简单的介绍下faster rcnn。这个网络是从rcnn,变到fast rcnn,最后再到faster rcnn。
以上就是其网络的框架。是由13个卷积层,13个relu**层,4个pooling层组成的。由于做卷积的时候,都pad,因此只有在pooling的时候图片尺寸变小,最后输出的特征图的大小是原来图片的1/16,通道数为256个channe。之后就是RPN网络的部分。上半支是用来判断anchor是否是正样例。下半支来做ancho的回归。通过1×1的卷积转变为18个通道。然后reshape方便做softmax分类。之后再reshape回原来的形状。anchor的regression 是四个值的回归。分别是正样例和GT的平移量和尺度因子。
之后使用proposa layer使用前面的计算量和正样例计算出精准的proposal。之后输入roi
pooling。如果有小数,则取整,然后做pooling。之后有对它的改进,roi align。就是通过双线性差值来做pooling。这样获得了7*7的proposal feature map后,在做分类判断是哪类,和做回归来获得更加精准的结果。
faster rcnn使用了smmoth l1的loss是为了对噪点更加的准确,训练的时候不容易训飞。
将faster RCNN中训练好的vgg-16部分的参数运用到上图的object detector的前半部分,而后面的又添加了另外一个vgg网络,叫做text vgg 16 net。后面的RPN和regression部分和Faster RCNN里部分一样。之后训练的策略是,前面的vgg权重固定,训练label 只有text和非文本。之后stage3整个网络结合起来finetune。在本文中,遵循类似的沙漏方法(这种堆叠在一起的Hourglass模块结构是对称的,bottom-up过程将图片从高分辨率降到低分辨率,top-down过程将图片从低分辨率升到高分辨率),对象VGG-16网络的输出被上采样并组合到Text VGG-16网络,增加了三个上采样层和一个归一化层,用于进一步的RPN学习过程。
anchor的纵横比设置为1:1,1:2,2:1,1:5和5:1,几乎涵盖了图像中的所有文本行和单词。在最后的特征图上,每个sliding position有15个anchors。
实验结论
与别的几个网络对比获得了好的成绩。发现对于有文本的负依赖对象时,TO-CNN的精确率比其召回更好,但对于正依赖对象,召回率更好。