论文笔记-Feature Pyramid Networks for Object Detection

本文作者提出了一种特征金字塔网络(FPN),可以作为一种通用的特征提取器用于多个应用。作者将FPN与Faster R-CNN结合,在COCO2016上运行结果超过了现有的单一模型的表现。

1. 介绍

图像金字塔的优势就是可以提供一个多尺寸的特征表征,每一层级的语义更强。下图是最近的一些金字塔层级的网络架构:
这里写图片描述
(a)图像金字塔的模型。每一尺寸图像连接一卷积网络,输出多个尺寸的特征映射,然后进行预测。缺点是速度很慢,且内存无法满足训练很深的卷积网络,该网络只能用在测试上。

(b)较常规的模型。采用单一尺寸的图像,在网络的最后一层输出上进行预测。

(c)在卷积网络的多个中间层,提取出不同尺寸大小的特征映射,分别进行预测。

(d)本文提出的网络架构(作者叫它特征金字塔),左边采用自下而上的模型,右边采用自上而下的模型。左右两边的模型采用侧向连接。该模型的优点是将低分辨率,语义很强的特征与高分辨率,语义较弱的特征通过右边自上而下的结构和侧边连接结合起来,这样在所有层级上的特征都有很丰富的语义。

还有很多模型采用了和本文类似的特征金字塔的架构,如Figure 2 上面的图。它们的目的是产生一个高分辨率的高级别的特征映射,只在该特征映射上进行预测。本文的模型是在每一个层级的特征映射上进行单独预测。
这里写图片描述
作者将FPN与Faster R-CNN结合,与使用ResNets作为基础架构的Faster R-CNN进行性能比较,FPN结合Faster R-CNN在预测边界框上将平均召回率提高了8%,在目标检测上,提高了COCO数据集平均精度2.3%,PASCAL平均精度3.8%。

2. 特征金字塔网络

网络架构主要关注RPN和Faster R-CNN检测网络。特征映射之间的卷积网络采用ResNets。主要分为自下而上结构,自上而下结构和侧边连接结构。
这里写图片描述

自下而上结构

该结构就是简单的卷积前向过程。作者将不改变特征映射尺寸的多个卷积层合称为一个stage,每一个stage的最后一个残差块的输出作为该stage的特征输出,传到自上而下的结构。作者共定义了C2,C3,C4,C5四个特征输出,尺寸分别为32*32,16*16,8*8,4*4。

自上而下和侧边连接结构

自上而下结构采用C5的特征输出作为最上层,每一层经过2倍的上采样后,再与侧边传过来的,经过1*1卷积的自下而上的特征相加,得到下一层的特征映射,每一层新得到的特征映射都再经过3*3的卷积,来得到该层最终的特征映射,这样可以减少上采样带来的混叠效应。最终特征映射为P2,P3,P4,P5。

作者固定了每一个卷积后的特征的通道维度,设为256。

3. 应用

FPN应用到RPN网络中,产生推荐区域

RPN网络只是使用一个尺寸的特征映射进行最后的分类预测和边框回归,作者用FPN网络产生多个尺寸的特征映射,分别进行分类预测和边框回归。作者为每一层只设置了一种尺寸的anchor box,对应P2,P3,P4,P5,P6层的尺寸分别为32*32,64*64,128*128,256*256,512*512。作何对每一层的anchor box采用了三种长宽比,分别为1:2,1:1,2:1,所以整个网络共有15个anchor boxes。

注:作者增加P6层主要是为了增加512*512的anchor box尺寸,P6由P5经过2倍上采样得到,没有用于Fast R-CNN。

作者基于anchor box与真实边框的交并比来为每个anchor box分配标签。具有最高的IOU或IOU大于0.7,该anchor即为正例。IOU小于0.3的anchor为负例。

FPN应用到Fast R-CNN,进行目标检测

Fast R-CNN的推荐区域有很多,且尺寸不同。为了将FPN应用到Fast R-CNN中,作者将不同大小的RoI放置在金字塔的不同层上,视为一种图像金字塔的结构。作者将具有宽度为w,高度为h的RoI设置到FPN的Pk层:
这里写图片描述
其中224是ImageNet的预训练尺寸,k是w*h=224*224的RoI映射到的目标层。作者类比基于ResNet的Faster R-CNN,将最开始的基准k0设为4。

4. 实验

4.1 使用FPN的RPN

实施细节 作者在8个GPU上使用同步随机梯度下降,每个GPU的mini-batch包含两幅图像,每个图像包含256个anchors。使用0.0001的权重衰减和0.9的动量。前30k的mini-batches使用0.02的学习率,后10k采用0.002的学习率。整个过程需要8个小时。
这里写图片描述

注:ARs, ARm, and ARl分别代表小,中,大三个尺寸对象的平均召回率
   AR100 and AR1k分别代表每张图像上选出100个和1000个推荐区域

从(a),(b),(c)的对比可以看出FRN的作用确实很明显。另外(a)和(b)的对比可以看出高层特征并非比低一层的特征有效。

(d)表示只有横向连接,而没有自顶向下的过程,也就是仅仅对自底向上(bottom-up)的每一层结果做一个1*1的横向连接和3*3的卷积得到最终的结果,有点像Fig1的(b)。从feature列可以看出预测还是分层独立的。作者推测(d)的结果并不好的原因在于在自底向上的不同层之间的semantic gaps比较大。

(e)表示有自顶向下的过程,但是没有横向连接,即向下过程没有融合原来的特征。这样效果也不好的原因在于目标的location特征在经过多次降采样和上采样过程后变得更加不准确。

(f)采用finest level层做预测(参考Fig2的上面那个结构),即经过多次特征上采样和融合到最后一步生成的特征用于预测,主要是证明金字塔分层独立预测的表达能力。显然finest level的效果不如FPN好,原因在于RPN网络是一个窗口大小固定的滑动窗口检测器,因此在金字塔的不同层滑动可以增加其对尺度变化的鲁棒性。另外(f)有更多的anchor,说明增加anchor的数量并不能有效提高准确率。

4.2 使用FPN的Fast R-CNN(固定推荐区域的数量)

这里写图片描述
同理,将FPN用于Faster RCNN的实验结果如下表Table3。
这里写图片描述
下表Table4是和近几年在COCO比赛上排名靠前的算法的对比。注意到本文算法在小物体检测上的提升是比较明显的。
这里写图片描述
另外作者强调这些实验并没有采用其他的提升方法(比如增加数据集,迭代回归,hard negative mining),因此能达到这样的结果实属不易。

5. 总结

作者提出的FPN(Feature Pyramid Network)算法同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。并且预测是在每个融合后的特征层上单独进行的,这和常规的特征融合方式不同。

FPN的代码实现,请点击这里

下面是实现的FPN的结构图:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/liven_zhu/article/details/80896105