本文是Facebook AI实验室17年物体检测的新作,CVPR17年的文章,本文打破了何凯明他们自己之前Faster RCNN等系列作品的记录,本文的突出贡献是特征化金字塔网络。
特征金字塔很久之前已经出现,但是由于网络耗时太久所以一直未被应用。下图是4种特征利用方式。(a)图像金字塔,即将图像转化成成不同的尺寸,然后不同尺寸的图像生成对应的特征。这种方法就是传统的图像金字塔网络,他的缺点在于增加了时间成本。有些算法会在测试时候采用图像金字塔。 (b)SPP net,Fast RCNN,Faster RCNN是采用这种方式,即将网络进行卷积仅采用网络最后一层的特征。(c)SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。
作者认为SSD算法中没有用到足够低层的特征,而足够低层的特征对于检测小物体是很有帮助的。
(d)是本文作者采用的方式,顶层特征通过上采样和低层特征做融合,而且每层都做独立预测。
在16年的ECCV里有一种类似于上图d的结构,运用了特征金字塔和反卷积结构,其结构如下图上部分,可以看出来与本文的区别的本文采取了独立预测,每一层都独立预测出结果。这也是本文的创新点。
本文模型的基本架构是Res-nets,结构可以分成两部分,自上而下和自下而上。
自下而上是指的正向的卷积网络,2倍步长。自上而下指上采样过程,2倍步长上采样。最后用横向连接将自下而上和自上而下的网络连接起来,如下图所示,采用卷积网络每一阶段最后一层网络,在Res-nets中就是每个阶段最后的残差块,C2、C3、C4、C5,但是不含conv1,因为占用内存大,经过一个1*1的卷积层与自上而下的反卷积网络结合,然后经过一个3*3的卷积输出每一层的预测结果。
本文所采用的结构比较简单,作者也尝试了复杂的结构,效果有提升,但这不是文章的重点。
应用。
本文所提出来的特征金字塔网络是一个通用的架构,所以应用也很广泛,比如说用于RPN。本文将FPN结合RPN生成建议框,原始的RPN,比如fast rcnn里的是单尺度的特征图生成anchor,而现在内嵌FPN,就可以将不同尺度的特征图生成对应的1:2、1:1、2:1大小的anchor,所以针对P2,P3,P4,P5,P6一共5个不同像素值的特征图可以生成15个anchor。
另外一个应用是用于fast rcnn,这里针对的是ROI池化层。Fast rcnn网络本身ROI Pooling层的输入是固定大小的特征,而这里将使用不同特征层作为ROI pooling层的输入,大尺度ROI就用较深的金字塔层,小尺度就用较浅的特征金字塔输入,而怎么定义是用深层金字塔特征还是浅层特征,作者定义了一个函数,用于判别。
上式中,224是ImageNet的标准输入,k0是基准值,设置为5,代表P5层的输出(原图大小就用P5层),w和h是ROI区域的长和宽,假设ROI是112 * 112的大小,那么k = k0-1 = 5-1 = 4,意味着该ROI应该使用P4的特征层。k值应该会做取整处理,防止结果不是整数。
实验。
区域建议与RPN实验。本实验在8个GPU同步的SGD进行,IOU值大于0.7为正样本,小于0.3为负样本。下表为实验结果,为了进行对比,采用FPN的RPN与未采用的网络采取相同的超参数。可以看出单独使用conv4并没有提升,但内嵌FPN的网络提升了8个百分点。为了验证自下而上和自上而下结构的作用,作者进行了没有自上而下结构的实验,结果如(d)。针对横向连接,(e)是没有进行横向连接的消融结果。为了验证金字塔特征结构的重要性,作者只采用P2层进行实验,结果如(f)所示。
Fast rcnn检测实验。在coco数据集上进行,实验结果如下表所示,对应实验与RPN实验一致。
下表是Faster R-CNN上实验的结果。
对于coco数据集比赛各获奖团队模型进行比较,如下表所示。
本文提出了一个简单而有效的FPN框架,可以嵌入到已有的模型中,其亮点在于每一层都进行融合,预测。FPN框架后也被应用到目标检测,何凯明所提出的Mask RCNN网络就是在Fater RCNN上增加了FPN,效果显著。但FPN和Mask RCNN的代码都未公开。