Feature Pyramid Networks for Object Detection

Abstract

特征金字塔是用于检测不同尺度目标的检测系统的基本组成部分。但是最近的深度学习目标检测器避免了金字塔表示,部分原因是因为它们是需要计算和记忆密集型的。在这篇论文中,我们利用深度卷积网络固有的多尺度金字塔结构,以marginal extra cost构建特征金字塔。开发了一种具有横向连接的自上而下体系结构,用于在所有尺度上构建高级语义特征图。这种结构被称为特征金字塔网络(FPN),作为一种通用的特征提取器,在多个应用中得到了显著的改进。在一个基本的Faster R-CNN系统中使用FPN,我们的方法在COCO检测基准上实现了最先进的单模型结果,无需bells和whistles,超过了现存所有的单模型,包括COCO 2016挑战赛获奖者的模型。此外,我们的方法可以在GPU上以6FPS的速度运行,因此是多尺度目标检测的一个使用而准确的解决方案。代码将被公开。

1、Introduction

在这里插入图片描述

在计算机视觉中,识别不同尺度的物体是一个基本的挑战。基于图像金字塔的特征金字塔(简而言之,我们称这些特征化图像金字塔)构成标准解决方案的基础(见图1(a))。这些金字塔具有scale-invariant性,即通过移动其在金字塔中的级别来抵消目标尺寸的变化。直观地说,这个属性使得模型可以通过扫描模型的位置和金字塔水平来检测大范围的目标。
在手工设计特征的时代,特征化的图像金字塔被大量使用。它们非常关键以至于DPM等目标检测器需要密集范围采样才能获得好的结果(如10scales per octave)。对于识别任务,工程特征在很大程度上已经被深度卷积网络(ConvNets)计算的特征所取代。除了可以表示更高级的语义外,convnet对尺度变化也更具鲁棒性,因此有助于从单个输入尺度上计算的特征中进行识别(如图1(b))。但即使有了这种稳健性,金字塔仍然需要得到最准确的结果。ImageNet和COCO检测挑战中最近的所有顶级entries都使用了对特征化图像金字塔的多尺度测试。对图像金字塔的每一层进行特征化的主要优势在于,它产生了一种多尺度的特征表示,其中所有层都具有很强的语义,包括高分辨率层。
然而,对图像金字塔的每一层进行特征化有明显的局限性。推理时间显著增加(例如,增加了四倍),使得这种方法在实际应用中不切实际。此外,就内存而言在图像金字塔上端到端的训练深层网络是不可行的,因此如果使用图像金字塔,只能在测试时使用,但这会在训练和推理时得出的结果不一致。出于这些原因,Fast和Faster R-CNN选择在默认设置下不使用特征化的图像金字塔。
然而,图像金字塔不是计算多尺度特征表示的唯一方法。一个深度ConvNet逐层计算特征层次,通过子采样层,特征层次具有固定的多尺度金字塔形状。这种网络特征层次生成了不同空间分辨率的特征图,但引入了由不同深度引起的巨大语义鸿沟。高分辨率图的低级别特征会损害其目标识别的表征能力。
但镜头检测器(SSD)是第一次尝试使用ConvNet的金字塔特征层次结构,就好像它是一个特征化的图像金字塔一样(如图1©)。理想情况下,SSD风格的金字塔将重用在正向传播中计算的不同层的多比例特征图,因此不会产生任何成本。但为了避免使用低层次特征,SSD放弃了重用已经计算好的层,而是从网络的高层开始构建金字塔(如VGG网络的conv4_3),然后添加几个新层。因此它错过了重用特征层次的更高分辨率图的机会。我们证明了这些对于检测小物体很重要。
本文的目标是自然地利用ConvNet特征层次的金字塔形状,同时创建在所有尺度上都具有强大语义的特征金字塔。为了实现这一目标,我们使用一种通过自上而下的途径和横向连接将低分辨率、语义强的特征和高分辨率、语义弱的特征相结合的体系结构(见图1(d))。其结果是一个特征金字塔,它在所有级别上都具有丰富的语义,并且可以从单个输入图像比例快速构建。 换句话说,我们展示了如何在不牺牲表现力、速度或内存的情况下,创建网络内特征金字塔,用于替换特征化的图像金字塔。
在这里插入图片描述

在近期的研究中,采用自顶向下和skip连接的类似架构很流行。它们的目标是生成一个高分辨率的单一高层次特征图并据此进行预测(图2上图)。相反,我们的方法将该体系结构作为一个特征金字塔来利用,其中预测(例如,目标检测)在每个级别上独立进行(图2底部)。 我们的模型呼应了一个特征化的图像金字塔,这在这些模型中没有被探索过。
我们在各种检测和分割系统中评估了我们称为特征金字塔网络(FPN)的方法。在没有bells和whistles的情况下,我们仅基于FPN报告了具有挑战性的COCO检测基准上最先进的单模型结果,并预测了基本的Faster R-CNN检测器,超过了竞争优胜者所有现有的精心设计的单模型。在ablation实验中,我们发现对于bounding box提议,FPN显著提高了平均召回率(AR)8个点。对于目标检测,它将COCO的平均精度(AP)提高了2.3个点,PASCAL的平均精度(AP)提高了3.8个点,超过了基于ResNets的Faster R-CNN的强大单尺度基线。我们的方法还可以很容易地扩展到mask propasals,并于严重依赖图像金字塔的最新方法相比,提高了实例分割的AR和速度。
此外,我们的金字塔结构可以在所有尺度下从头到尾进行训练,并在训练/测试时一致使用,使用图像金字塔是不可行的。 因此,FPN可以实现比所有现有最先进方案更高的精度。此外,这种改进是在不增加单标度基线测试时间的情况下实现的。 我们相信这些进步将促进未来的研究和应用。我们的代码将被公开。

2、Related Work

Hand-engineered features and early neural networks

SIFT特征[25]最初是在尺度空间极值处提取的,用于特征点匹配。HOG特征[5],以及后来的SIFT特征,都是在整个图像金字塔上密集计算的。 这些HOG和SIFT金字塔已被用于图像分类、目标检测、人体姿势估计等众多工作中。 快速计算特征化图像金字塔也引起了人们极大的兴趣。 Dollar等人通过首先计算稀疏采样(按比例)的金字塔,然后插值缺失的水平,展示了快速金字塔计算。在HOG和SIFT之前,使用ConvNets对人脸检测进行的早期工作计算了图像金字塔上的浅层网络,以跨尺度检测人脸。

Deep ConvNet object detectors

随着现代深度ConvNets[19]的发展,像OverFeat[34]和R-CNN[12]这样的目标探测器在精确度上有了显著的提高。 OverFeat采用了一种类似于早期神经网络人脸检测器的策略,将ConvNet作为图像金字塔上的滑动窗口检测器。 R-CNN采用了一种基于区域提案的策略[37],其中每个提案在使用ConvNet分类之前都进行了尺度标准化。SPPnet[15]证明,这种基于区域的检测器可以更有效地应用于在单个图像尺度上提取的特征图。 最近更精确的检测方法,如Fast R-CNN和Faster R-CNN提倡使用从单一尺度计算的特征,因为它在准确性和速度之间提供了一个很好的折衷。然而,多尺度检测仍然表现得更好,尤其是对于小对象。

Methods using multiple layers

最近的一些方法通过在网络中使用不同的层来改进检测和分割。 FCN将每个类别在多个scales上的部分分数相加,以计算语义分割。其他几种方法(HyperNet、ParseNet和ION)在计算预测之前连接多层的特征,这相当于对变换后的特征求和。 SSD和MS-CNN在不结合特征或分数的情况下预测特征层次的多个层次上的对象。
最近一些方法利用lateral\skip连接,跨分辨率和语义级别关联低级特征图,包括用于分割的U-Net和SharpMask,用于人脸检测的Recombinator网络,以及用于关键点估计的Stacked Hourglass网络[26]。Ghiasi等人提出了一种拉普拉斯金字塔表示法,用于FCN逐步细化分割。 尽管这些方法采用了金字塔形状的结构,但它们不同于特征化图像金字塔,在这些金字塔中,预测是在所有级别独立进行的,见图2。 事实上,对于图2(上图)中的金字塔结构,仍然需要图像金字塔来识别多个尺度上的对象。

3、Feature Pyramid Networks

我们的目标是利用ConvNet的金字塔形特征层次结构,它的语义从低到高,并构建一个始终具有高层次语义的特征金字塔。 由此产生的特征金字塔网络是通用的,在本文中,我们主要关注滑动窗口提议器(区域提议网络,简称RPN)和基于区域的检测器(Fast R-CNN)。在第6节中,我们还将FPN推广到实例分割。
我们的方法将任意大小的单尺度图像作为输入,并以全卷积的方式在多个级别上输出按比例大小的特征图。这个过程独立于主干卷积结构,在本文中,我们使用resnet给出了结果。 我们金字塔的构造包括自下而上的路径、自上而下的路径和横向连接,如下所述。

Bottom-up pathway

自下而上的路径是主干网络的前馈计算,计算由多个比例的特征映射组成的特征层次,缩放步长为2。通常有许多层生成相同大小的输出图,我们说这些层处于同一网络阶段。对于我们的特征金字塔,我们为每一个阶段定义一个金字塔级别。我们选择每个阶段最后一层的输出作为特征图的参考集,我们将丰富这些特征图以创建金字塔。 这种选择是自然的,因为每个阶段的最深层都应该有最强烈的特征。
具体来说,对于resnet,我们使用每个阶段的最后一个residual块的特征激活输出。对于conv2、conv3、conv4和conv5输出,我们将这些最后的残差块的输出表示为{C2、C3、C4、C5},并注意到它们相对于输入图像有{4、8、16、32}像素的步长。我们没有将conv1包含到金字塔中,因为它占用了大量的内存。

Top-down pathway and lateral connections

在这里插入图片描述
从上到下的路径通过upsampling空间上的粗糙,但语义上的强,从更高的金字塔层次的特征图产生了更高分辨率的特征。然后,通过横向连接,通过自下而上通道的特征来增强这些特征。每个横向连接合并了自底向上路径和自上而下路径中相同空间大小的特征图。 自底向上的特征映射具有较低的语义级别,但它的激活更准确地本地化,因为它被subsampled的次数更少。
图3显示了构建自上而下特征图的构建块。 对于较粗分辨率的特征图,我们将空间分辨率提高了2倍(为了简单起见,使用最近邻upsampling)。然后通过元素级加法将upsampled映射和相应的自底向上的映射(该映射使用1x1卷积层以减少通道维数)合并。这个过程会反复进行,直到生成最精细的分辨率图。 为了开始迭代,我们只需在C5上附加一个1×1卷积层,以生成最粗糙的分辨率图。 最后,我们在每个合并的图上附加一个3×3卷积来生成最终的特征图,这是为了减少上采样的混叠效应。 最后一组特征图被称为{P2,P3,P4,P5},分别对应于空间大小相同的{C2,C3,C4,C5}。
因为金字塔的所有级别都想传统的特征化图像金字塔一样使用共享的分类器\回归器、所以在所有的特征图中固定特征纬度(通道数,表示为d)。我们在本文中设置了d=256,因此所有额外的卷积层都有256个通道输出。 在这些额外的层中没有非线性,我们已经根据经验发现它们的影响很小。
简单性是我们设计的核心,我们发现我们的模型对许多设计选择都很稳健。我们对更复杂的块进行了实验(例如,使用多层residual块作为连接),并观察到略微更好的结果。 设计更好的连接模块不是本文的重点,所以我们选择上面描述的简单设计。

4、Applications

我们的方法是一个通用的解决方案,用于在深层网络中构建特征金字塔。 在下文中,我们采用RPN中的方法生成bounding box提议,并采用Fast R-CNN中的方法进行目标检测。为了证明我们的方法的简单性和有效性,我们对[29,11]中的原始系统进行了最小的修改,使其适应我们的特征金字塔。

4.1 Feature Pyramid Networks for RPN

RPN[29]是一种滑动窗口class-agnostic目标检测器。在最初的RPN设计中, 在单尺度卷积特征图的基础上,在密集的3x3滑动窗口上评估一个小的子网络,执行目标\非目标二元分类和bounding box回归。这是通过一个3×3卷积层和两个并列1×1卷积来实现的,用于分类和回归,我们称之为网络头。对象\非对象标准和边界框回归目标是根据一组称为锚(anchors)的参考框定义的[29]。 anchors具有多个预定义的比例和高宽比、以覆盖不同形状的目标。
我们使用FPN替换单尺度特征图来适应RPN。我们在特征金字塔的每一层上附加一个相同设计的头部(3×3 conv和两个并列1×1 conv)。 由于头部在所有金字塔级别的所有位置上密集滑动,因此不必在特定级别上使用多尺度anchors。 相反,我们为每个级别指定一个单一比例的anchors。形式上,我们将anchors定义为在{P2、P3、P4、P5、P6}上分别有{322、642、1282、2562、5122}个像素的区域。 正如在[29]中一样,我们也在每个级别使用多个纵横比{1:2,1:1,2:1}的anchors。因此,金字塔上总共有15个anchors。
我们根据anchors和ground-truth边界框的IoU比率为anchors分配训练标签,如[29]所示。从形式上讲,如果某个anchor在给定的ground-truth box中拥有最高的IoU,或在任何ground-truth box中IoU超过0.7,则该anchor被指定为正标签;如果所有ground-truth box的IoU低于0.3,则该anchor被指定为负标签。注意,ground-truth boxes的比例没有明确用于将其分配到金字塔的各个层级;相反,ground-truth boxes与anchors相关联,anchors被分配到金字塔级别。因此,除了[29]中的规则外,我们不引入其他规则。
我们注意到,头部的参数在所有特征金字塔级别上共享;我们还评估了没有共享参数的替代方案,并观察到类似的准确性。共享参数的良好性能表明,我们金字塔的所有级别共享相似的语义级别。这一优势类似于使用特征化图像金字塔,其中公共头部分类器可以应用于在任何图像比例下计算的特征。
通过上述调整,RPN可以自然地用我们的FPN进行训练和测试,方式与[29]中相同。我们在实验中详细阐述了实现细节。

4.2 Feature Pyramid Networks for Fast R-CNN

Fast R-CNN是一种基于区域的目标检测器,其中感兴趣区域(RoI)池用于提取特征。 Fast R-CNN通常在单尺度特征图上执行。为了将其与FPN结合使用,我们需要将不同比例的RoI分配给金字塔级别。
我们将我们的特征金字塔视为一个图像金字塔。因此,当基于区域的检测器在图像金字塔上运行时,我们可以调整它们的分配策略。形式上,我们通过以下方式将宽度为w、高度为h(在网络的输入图像上)的RoI分配给特征金字塔的 p k p_{k} pk级:
在这里插入图片描述
此处224是标准的ImageNet预训练大小, k 0 k_{0} k0是目标级别, w × h = 22 4 2 w \times h=224^{2} w×h=2242的RoI应该映射到该级别。与基于ResNet的Faster R-CNN系统类似,该系统使用 C 4 C_{4} C4作为单尺度特征图,将 k 0 k_{0} k0设置为4。Eqn(1)这意味着,如果RoI的规模变小(例如224的1/2),则应将器映射到更精细的分辨率级别。
我们将预测头(在Fast R-CNN中,预测头是特定于类的分类器和边界框回归)附加到所有级别的所有RoI。同样,所有的头都有相同的参数,无论其级别如何。在[16]中,ResNet的conv5层(9层深的子网络)被用作conv4特征顶部的头部,但我们的方法已经利用了conv5来构建特征金字塔。因此,与[16]不同,我们只需采用RoI pooling来提取7x7个特征,并在最终分类和边界框回归层之前附加两个隐藏的1024-d全连接层(fc)层(每个层后面都有ReLU)。这些层都是随机初始化的,因为resnet中没有经过预训练的fc层。注意与标准的conv5头部相比,我们的2-fc MLP头部更轻、速度更快。
基于这些自适应,我们可以在特征金字塔的顶部训练和测试Fast R-CNN。实验部分给出了实现细节。

5.Experiments on Object Detection

我们在80类COCO检测数据集上进行了实验。我们使用80k实验图像和35k验证图像子集(trainval35k)的并集进行训练,并在5k验证图像集上报告ablations情况。我们还报告了标准测试集(test-std)的最终结果,该测试集没有公开的标签。
按照惯例[12],所有网络主干都在ImageNet1k分类集[33]上预先训练,然后在检测数据集上进行微调。我们使用预先培训过的ResNet-50和ResNet-101模型,这些模型是公开的。我们的代码是使用Caffe2重新实现py-faster-rcnn。

5.1 Region Proposal with RPN

我们按照[21]中的定义,评估COCO风格的Average Recall(AR)和小、中、大对象( A R s AR_{s} ARs A R m AR_{m} ARm A R l AR_{l} ARl)上的AR。我们报告了每幅图像( A R 100 AR^{100} AR100 A R 1 k AR^{1k} AR1k)100和1000个提案的结果。

Implementation details

在这里插入图片描述
表1中的所有架构都经过了端到端的培训。调整输入图像的大小,使其较短的一侧有800个像素。我们在8个GPU上采用同步SGD训练。一个小批量包含每个GPU 2个图像和每个图像256个锚。我们使用0.0001的权重衰减和0.9的动量。前30k小批量的学习率为0.02,后10k小批量的学习率为0.002。对于所有RPN实验(包括基线),我们包括了图像之外的锚框用于训练,这与[29]中忽略这些锚框的情况不同。其他实施细节如[29]所示。在8GPU上使用FPN训练RPN需要在COCO上花费大约8小时。

5.1.1 Ablation Experiments

Comparisons with baselines

为了与原始RPN[29]进行公平比较,我们使用 C 4 C_{4} C4(与[16]相同)或 C 5 C_{5} C5的单比例尺map运行了两条基线(表1(a,b)),二者都使用了与我们相同的超参数,包括使用{ 3 2 2 , 6 4 2 , 12 8 2 , 25 6 2 , 51 2 2 32^{2},64^{2},128^{2},256^{2},512^{2} 322642128225625122}的5个比例尺锚。表1(b)没有显示出(a)的优势,这表明单一的高级特征图是不够的,因为在更粗糙的分辨率和更强的语义之间存在权衡。
将FPN纳入RPN将 A R 1 k AR^{1k} AR1k提高到56.3(表1(c)),比单标度RPN基线(表1(a))增加8.0个点。此外,在小型对象( A R s 1 K AR^{1K}_{s} ARs1K)上的性能大幅提升了12.9个百分点。我们的金字塔表示大大提高了RPN对对象规模变化的鲁棒性。

How important is top-down enrichment?

表1(d)显示了我们的特征金字塔在没有自上而下路径的情况下的结果。通过这种修改,1×1的横向连接和3×3的卷积被连接到自下而上的金字塔上。该体系结构模拟了重用金字塔特征层次结构的效果(图1(b))。 表1(d)的结果与RPN基线一致,lag远远落后于我们。 我们推测这是因为自下而上金字塔(图1(b))的不同层次之间存在很大的语义差异,特别是对于非常深的resnet。我们还评估了表1(d)的一个变体,没有共享头的参数,但观察到类似的性能下降。这个问题不能简单地由特定级别的头来解决。

How important are lateral connections?

表1(e)显示了没有1×1横向连接的自上而下特征金字塔的消融结果。 这个自上而下的金字塔具有强大的语义特征和精细的分辨率。但我们认为,这些特征的位置并不精确,因为这些图已经多次下采样和上采样。更精确的要素位置可以通过横向连接从自下而上图的更精细层次直接传递到自上而下图。 因此,FPN的 A R 1 k AR^{1k} AR1k得分比表1(e)高10个点。

How important are pyramid representations?

人们可以将头附加到 P 2 P_{2} P2的最高分辨率、强语义特征图(即金字塔中最精细的层次),而不是依靠金字塔表示。与单比例尺基线类似,我们将所有锚指定给P2特征图。该变量(表1(f))优于基线,但低于我们的方法。RPN是一种具有固定窗口大小的滑动窗口检测器,因此在金字塔级别上扫描可以提高其对尺度变化的鲁棒性。
此外,我们注意到,单独使用P2会导致更多的锚(750k,表1(f)),这是由其较大的空间分辨率造成的。这一结果表明,较大数量的锚本身不足以提高精度。

5.2 Object Detection with Fast/Faster R-CNN

接下来,我们研究基于区域(非滑动窗口)检测器的FPN。我们通过COCO风格的平均精度(AP)和PASCAL风格的AP(单个IoU阈值为0.5)评估目标检测。我们还根据[21]中的定义,报告了COCO AP关于小型、中型和大型物体(即 A P s 、 A P m 和 A P l AP_{s}、AP_{m}和AP_{l} APsAPmAPl)的情况。

Implementation details

调整输入图像的大小,使其较短的一侧有800个像素。同步SGD用于在8GPU上训练模型。每个小批量包含每个GPU 2个图像和每个图像512个ROI。我们使用0.0001的重量衰减和0.9的动量。前60k个小批量的学习率为0.02,后20k个小批量的学习率为0.002。我们每幅图像使用2000个ROI进行训练,1000个用于测试。用FPN训练Fast R-CNN需要在COCO数据集上花费大约10个小时。

5.2.1 Fast R-CNN(on fixed proposals)

在这里插入图片描述
为了更好地单独研究FPN对基于区域的探测器的影响,我们在一组固定的提案上对Fast R-CNN进行消融。我们选择冻结由FPN上的RPN计算的建议(表1©),因为它在检测器识别的小对象上具有良好的性能。为简单起见,我们不在Fast R-CNN和RPN之间共享特征,除非另有规定。
作为基于ResNet的Fast R-CNN基线,在[16]之后,我们采用了输出大小为14×14的RoI pooling,并将所有conv5层作为头部的隐藏层。表2(a)中的AP为31.9。表2(b)是利用具有2个隐藏fc层的MLP头部的基线,类似于我们架构中的头部。它的AP为28.8,这表明2-fc头部与表2(a)中的基线相比,没有任何orthogonal优势。
表2(c)显示了我们在Fast R-CNN中的FPN结果。与表2(a)中的基线相比,我们的方法将AP提高了2.0个点,小物体AP提高了2.1个点。与同样采用2fc头部的基线(表2(b))相比,我们的方法将AP提高了5.1个点。这些比较表明,对于基于区域的对象检测器,我们的特征金字塔优于单尺度特征。
表2(d)和(e)表明,移除自上而下的连接或移除侧向连接会导致较差的结果,类似于我们在上述RPN小节中观察到的结果。值得注意的是,移除自上而下的连接(表2(d))会显著降低精度,这表明Fast R-CNN在高分辨率特征图上使用低级别特征会受到影响。
在表2(f)中,我们在P2的单一最细比例尺特征图上采用了Fast R-CNN。其结果(33.4 AP)略差于使用所有金字塔级别的结果(33.9 AP,表2©)。 我们认为这是因为RoI pooling是一种扭曲的操作,对该区域的scales不那么敏感。尽管这种变体具有很好的准确性,但它基于{ P k P_{k} Pk}的RPN建议,因此已经受益于金字塔表示法。

5.2.2 Faster R-CNN(on consistent proposals)

在这里插入图片描述
在上文中,我们使用了一套固定的提案来调查探测器。但在Faster R-CNN系统[29]中,RPN和Fast R-CNN必须使用相同的网络主干,以实现功能共享。 表3显示了我们的方法和两个基线之间的比较,它们都使用RPN和Fast R-CNN的一致主干架构。 表3(a)显示了我们复制的基线Faster R-CNN系统,如[16]所述。在受控设置下,我们的FPN(表3©)比这一强基线好2.3分AP和3.8分AP@0.5。
请注意,表3(a)和(b)是比表3()中He等人[16]提供的基线强得多的基线。 我们发现,以下实现导致了这种差距:(i)我们在[11,16]中使用了800像素的图像比例,而不是600像素;(ii)与[11,16]中的64个RoIs相比,我们对每幅图像进行512个RoIs的训练,加快了收敛速度;(iii)我们使用5个scale anchors,而不是[16]中的4个(添加 3 2 2 32^{2} 322);(iv)在测试时,我们对每幅图像使用1000个建议,而不是[16]中的300个。因此,与表3()中He等人的ResNet50 Faster R-CNN基线相比,我们的方法将AP提高了7.6个点,并且AP@0.59.6个百分点。

Sharing features

在这里插入图片描述
基于以上,为了简单起见,我们不共享RPN和Fast R-CNN之间的功能。 在表5中,我们在[29]中描述的四步训练之后评估共享功能。与[29]类似,我们发现共享特征可以小幅度提高准确性。特征共享还可以缩短测试时间。

Running time

通过特征共享,我们基于FPN的Faster R-CNN系统在单个NVIDIA M40 GPU上对ResNet-50的每幅图像的推断时间为0.148秒,对ResNet-101的推断时间为0.172秒。作为比较,表3(a)中的单标度ResNet-50基线运行时间为0.32秒。我们的方法通过FPN中的额外层引入了较小的额外成本,但头部权重较轻。总的来说,我们的系统比基于ResNet的R-CNN更快。我们相信我们的方法的效率和简单性将有利于未来的研究和应用。

5.2.3 Comparing with COCO Competition Winners

在这里插入图片描述
我们发现,表5中的ResNet-101模型没有按照默认学习率计划进行充分训练。因此,在训练Fast R-CNN步骤时,我们在每个学习率下将小批量的数量增加2倍。这将minival上的AP增加到35.6,而不共享特征。该模型是我们提交给COCO检测排行榜的模型,如表4所示。由于时间有限,我们尚未评估其特征共享版本,如表5所示,这应该会稍微好一点。
表4将我们的方法与COCO竞赛优胜者的单模型结果进行了比较,包括2016年的优胜者G-RMI和2015年的Faster R-CNN++。在不添加bells和whistles的情况下,我们的单一模型已经超过了这些强大、精心设计的竞争对手。
在test-dev集上,我们的方法比现有的最佳结果提高了0.5个AP点(36.2对35.7)和3.4个AP点AP@0.5(59.1对55.7)。值得注意的是,我们的方法不依赖于图像金字塔,只使用单个输入图像比例,但在小尺度对象上仍然具有出色的AP。这只能通过使用以前的方法输入高分辨率图像来实现。
此外,我们的方法没有利用许多流行的改进,如迭代回归[9]、硬负挖掘[35]、上下文建模[16]、更强的数据增强[22]等。这些改进是fpn的补充,应该进一步提高精度。
最近,FPN在COCO竞赛的所有赛道上都实现了新的top results,包括检测、实例分割和关键点估计。详情请参见[14]。

6、Extensions:Segmentation Proposals

在这里插入图片描述
我们的方法是一种通用的金字塔表示法,可用于目标检测以外的应用。在本节中,我们使用FPN生成细分建议,遵循DeepMask/SharpMask框架[27,28]。
DeepMask/SharpMask在裁剪的图像上进行训练,以预测实例片段和对象\非对象分数。在推理时,这些模型被卷积运行,以在图像中生成密集的建议。为了以多个比例生成片段,图像金字塔是必要的[27,28]。
调整FPN以生成掩码建议是很容易的。我们使用全卷积的设置来进行训练和推理。 我们如第5.1节中构建特征金字塔,并设置d=128。在特征金字塔的每一层之上,我们应用一个小的5×5 MLP,以完全卷积的方式预测14×14掩模和对象分数,见图4。此外,由于在[27,28]的图像金字塔中每octave使用2个音阶,我们使用输入大小为7×7的第二个MLP来处理半octaves。这两个MLP在RPN中扮演类似的角色。架构是端到端训练的;附录中给出了完整的实施细节。

6.1 Segmentation Proposal Results

在这里插入图片描述
结果如表6所示。我们报告了小型、中型和大型对象的segment AR,始终为1000个提案。我们的基线FPN模型具有单个5×5 MLP,AR为43.4。切换到稍大的7×7 MLP,精度基本保持不变。 同时使用两个MLP可将精度提高到45.7 AR。将掩模输出大小从14×14增加到28×28可将AR增加到另一个点(较大的尺寸开始降低精度)。最后,将训练迭代次数加倍将AR增加到48.1。
我们还报告了与DeepMask[27]、SharpMask[28]和InstanceFCN[4]的比较,这是之前生成掩码建议的最先进方法。我们比这些方法的精度高出8.3个AR点。特别是,我们在小对象上的精度几乎翻了一番。
现有的掩模提议方法[27,28,4]基于密集采样的图像金字塔(例如,按 2 − 2 : 0.5 : 1 2^{-2:0.5:1} 22:0.5:1缩放),这使得它们在计算上非常昂贵。我们的方法基于FPN,速度要快得多(我们的模型以6到7 FPS的速度运行)。这些结果表明,我们的模型是一个通用的特征提取工具,可以替代图像金字塔用于其他多尺度检测问题。

7、Conclusion

我们提供了一个简洁的框架,用于在ConvNet中构建功能金字塔。我们的方法显示,与几个强大的基线和竞争赢家相比,有了显著的改进。因此,它为特征金字塔的研究和应用提供了一个实用的解决方案,而不需要计算图像金字塔。最后,我们的研究表明,尽管deep ConvNets具有强大的表征能力和对尺度变化的隐含鲁棒性,但使用金字塔表征明确解决多尺度问题仍然至关重要。

A.Implementation of Segmentation Proposals

我们使用特征金字塔网络来有效地生成目标分割提议,并采用了一种流行于目标检测的以图像为中心的训练策略[11,29]。我们的FPN掩码生成模型继承了DeepMask/SharpMask的许多思想和动机[27,28]。然而,与这些模型相比,这些模型是在图像裁剪中训练的,并使用密集采样的图像金字塔进行推理,我们在特征金字塔上执行全卷积训练来进行掩模预测。虽然这需要改变许多细节,但我们的实现在精神上仍然与DeepMask相似。具体来说,为了在每个滑动窗口定义一个掩码实例的标签,我们将这个窗口看作是输入图像上的一个裁剪,从而允许我们继承DeepMask的正/负定义。下面我们将给出更多细节,如图4所示。
我们使用5.1节中描述的相同架构来构建 P 2 − 6 P_{2−6} P26的特征金字塔。我们设d = 128。我们的特征金字塔的每一层都用于预测不同规模的mask。与DeepMask一样,我们将mask的比例定义为其宽度和高度的最大值。规模为{32、64、128、256、512}像素的掩码分别映射到{ P 2 、 P 3 、 P 4 、 P 5 、 P 6 P_{2}、P_{3}、P_{4}、P_{5}、P_{6} P2P3P4P5P6},并由5×5 MLP处理。由于DeepMask使用带有half octaves的金字塔,我们在模型中使用稍大的MLP(大小为7×7(7≈5√2))来处理half-octaves(如7x7 MLP预测 P 4 P_{4} P4上的128√2 scale mask)。中间尺度上的对象映射到log空间中最接近的尺度上。
由于MLP必须在每个金字塔级别的范围内预测对象(特别是a half octave范围),因此必须在规范对象大小周围提供一些填充。我们使用25%的填充。这意味着在{ P 2 , P 3 , P 4 , P 5 , P 6 P_{2}, P_{3}, P_{4}, P_{5}, P_{6} P2,P3,P4,P5,P6}上输出的掩码映射到5×5 MLP的{40,80,160,320,640}大小的图像区域(并映射到7×7 MLP的对应大小√2)。
特征图中的每个空间位置都用来预测不同位置的掩模。具体来说,在 P k P_{k} Pk尺度下,特征图中的每个空间位置用于预测中心在该位置 2 k 2^{k} 2k像素范围内的掩模(对应于特征图中的±1个cell offset)。如果没有对象中心在此范围内,则该位置被认为是负的,并且,就像在DeepMask中一样,该位置仅用于训练评分分支,而不是mask分支。
我们用来预测掩模和评分的MLP是相当简单的。我们应用具有512个输出的5×5内核,然后应用兄弟级全连接层来预测14×14掩码( 1 4 2 14^{2} 142个输出)和对象分数(1个输出)。该模型以完全卷积的方式实现(使用1×1卷积代替完全连接的层)。用于处理half octave尺度对象的7×7 MLP除了其更大的输入区域外,与5×5 MLP完全相同。
在训练过程中,我们以正/负采样比为1:3,每小批量随机采样2048个样本(从16幅图像中每幅图像随机采样128个样本)。mask损失的权重比score损失高10倍。该模型在8个GPU上使用同步SGD(每个GPU 2张图像)进行端到端训练。我们以0.03的学习速率开始,然后训练80k个小批量,在60k个小批量之后将学习速率除以10。在训练和测试期间,图像比例设置为800像素(我们不使用比例抖动)。在推理过程中,我们的全卷积模型预测了所有位置和尺度的分数,并在1000个得分最高的位置进行了mask。我们不执行任何非最大抑制或后处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值