论文精读:FPN:Feature Pyramid Networks for Object Detection

Abstract

特征金字塔是识别系统中检测不同尺度物体的基本组成部分。但最近的深度学习对象探测器已经避免了金字塔表示,部分原因是它们是计算和内存密集型的。本文利用深度卷积网络固有的多尺度金字塔层次,构造了具有边际额外代价的特征金字塔。开发了一种具有横向连接的上顶体系结构,用于构建所有尺度上的高级语义特征图。这种架构被称为特征金字塔网络(FPN),作为一个通用的特征提取器,在几个应用程序中显示出了显著的改进。在基本Faster R-CNN系统中使用FPN,我们的方法在COCO检测基准上实现了最先进的单模型结果,超过了所有现有的单模型条目,包括来自COCO2016年COCO挑战赢家的条目。此外,我们的方法可以在GPU上以6FPS运行,因此是一个实用和准确的多尺度目标检测的解决方案。代码将被公开使用。

1. Introduction

        识别非常不同尺度的物体是计算机视觉中的一个基本挑战。特征金字塔建立在图像金字塔上的金字塔(简称,我们称之为这些特征的图像金字塔)构成了标准解决方案[1]的基础(图1(a))。这些金字塔是比例不变的,因为一个物体的比例变化可以通过改变它在金字塔中的水平来抵消。直观地说,这个属性使模型能够通过扫描模型的位置和金字塔级别来检测跨大尺度范围的对象。

        特征化的图像金字塔在手工设计特征[5,25]的时代被大量使用。它们是如此的关键,以至于像DPM[7]这样的物体探测器需要密集的尺度采样才能获得良好的结果(例如,每个八度有10个尺度)。 在识别任务中,工程特征在很大程度上已经被深度卷积网络(ConvNets)[19,20]计算的特征所取代。除了能够表示更高级别的语义外,卷积神经网络对尺度上的方差也更具鲁棒型,从而便于从单个输入尺度[15,11,29]上计算的特征进行识别(图1(b))。但即使有了这种鲁棒性,仍然需要金字塔才能得到最准确的结果。ImageNet[33]和COCO[21]检测挑战中所有最近的顶级条目都使用了对特征图像金字塔(如[16,35])进行的多尺度测试。实现图像金字塔的每一层的主要优点是它产生一个多尺度的特征表示,其中所有级别在语义上都是强的,包括高分辨率级别。

        然而,实现图像金字塔的每一层都有明显的局限性。推理时间大大增加(例如,是[11]的4倍),使得这种方法在实际应用中不切实际。此外,在图像金字塔上端到端训练深度网络在内存方面是不可行的,因此,如果被利用,图像金字塔只在测试时间[15,11,16,35]上使用,这就造成了训练/测试时间推断之间的不一致性。由于这些原因,fast和faster R-CNN[11,29]选择不在默认设置下使用功能化的图像金字塔。

        然而,图像金字塔并不是计算多尺度特征表示的唯一方法。深度卷积神经网络逐层计算特征层次,通过子采样层,特征层次具有固有的多尺度金字塔形状。这种网络内特征层次结构产生不同空间分辨率的特征图,但由于不同的深度导致了较大的语义差距。高分辨率的地图具有低层次的特征,损害了其对物体识别的表征能力。 

        The Single Shot Detector (SSD)[22]是第一次尝试使用卷积神经网络的金字塔特征层次结构,就好像它是一个特征化的图像金字塔一样(图1(c))。理想情况下,ssd风格的金字塔将重用来自在正向传递中计算的不同层的多尺度特征映射,因此是免费的。但是为了避免使用低级特性,SSD放弃了重用已经计算出来的层,而是从网络的高层开始构建金字塔(例如,VGG网[36]的conv4 3 ),然后添加几个新的层。因此,它错过了重用特性层次结构的更高分辨率映射的机会。我们证明了这些对于探测小物体是很重要的。

        本文的目标是自然地利用卷积神经网络的特征层次结构的金字塔形状,同时创建一个在所有尺度上都具有强大语义的特征金字塔。为了实现这一目标,我们依赖于一种架构,它通过自上而下的路径和横向连接,结合了低分辨率、语义强的特征和高分辨率、语义弱的特征(图1(d))。其结果是一个特征金字塔,在所有级别都有丰富的语义,并从单一输入图像比例快速构建。换句话说,我们展示了如何创建网络内的特征金字塔,它可以用来在不牺牲表征能力、速度或内存的情况下替换特征化的图像金字塔。

         采用自上而下和跳过连接的类似体系结构在最近的研究[28,17,8,26]中很流行。他们的目标是生成一个精细分辨率的单一高级特征图,以便进行预测(图2顶部)。相反,我们的方法利用该架构作为一个特征金字塔,在那里预测(例如,对象检测)是在每个级别上独立进行的(图2底部)。我们的模型呼应了一个特征的图像金字塔,这在这些作品中没有被探索。

        我们评估了我们的方法,称为特征金字塔网络(FPN),在各种系统中检测和分割[11,29,27]。没有附加功能,我们报告了一个最先进的单模型结果,具有挑战性的COCO检测基准[21],仅仅基于FPN和一个基本的faster R-CNN探测器[29],超过了所有现有的严格设计的单模型竞争冠军。在消融实验中,我们发现对于边界盒方案,FPN显著提高了平均召回(AR)8.0个百分点;对于目标检测,它比ResNets[16]上的平均精度(AP)提高了2.3个百分点,PASCAL-style  AP提高了3.8个百分点。我们的方法也很容易地扩展到屏蔽建议,并改进了实例分割AR和速度,比最先进的方法,严重依赖于图像金字塔。

        此外,我们的金字塔结构可以用所有尺度进行末端训练,并在训练/测试时一致使用,使用图像金字塔是不可行的。因此,fpn能够实现比所有现有的最先进的方法更高的精度。此外,这种改进在没有增加单尺度基线上的测试时间的情况下实现了。我们相信,这些进步将促进未来的研究和应用。我们的代码将被公开。

2. Related Work

        Hand-engineered features and early neural networks. SIFT特征[25]最初是在尺度空间极值处提取的,用于特征点匹配。HOG特征[5],以及后来的SIFT特征,在整个图像金字塔上密集计算。这些HOG和SIFT金字塔已被用于图像分类、目标检测、人体姿态估计等工作。人们还对快速计算具有特征化的图像金字塔产生了极大的兴趣。Doll‘ar等人,[6]通过首先计算一个稀疏采样(规模)金字塔,然后插值缺失的水平,证明了快速金字塔计算。在HOG和SIFT之前,早期使用卷积神经网络[38,32]进行的人脸检测工作计算了图像金字塔上的浅层网络来检测跨尺度的人脸。 

        Deep ConvNet object detectors.随着现代深度卷积网[19]的发展,像OverFeat[34]和R-CNN[12]这样的物体探测器在精度上显示出了显著的提高。OverFeat采用了一种类似于早期神经网络人脸检测器的策略,即在图像金字塔上应用卷积神经网络作为滑动窗口检测器。R-CNN采用了一种基于区域提案的策略[37],其中每个提案在使用ConvNet进行分类之前都进行了规模归一化。SPPnet[15]证明,这种基于区域的检测器可以更有效地应用于在单一图像尺度上提取的特征图。最近更精确的检测方法,如fast R-CNN[11]和FASTER R-CNN[29]提倡使用单一尺度计算的特征,因为它提供了精度和速度之间很好的权衡。然而,多尺度检测仍然表现得更好,特别是对于小物体。 

         Methods using multiple layers.  最近的一些方法通过在卷积中使用不同的层来改进检测和分割。FCN[24]在多个尺度上将每个类别的部分分数相加,计算语义分割。超列[13]也使用了类似的方法来进行对象实例分割。其他几种方法(HyperNet[18]、ParseNet[23]和ION[2])在计算预测之前将多层的特征连接起来,这相当于对转换后的特征进行求和。SSD[22]和MS-CNN[3]在不结合特征或分数的情况下预测特征层次的多层对象。

        最近有一些方法利用横向/跳过连接将跨分辨率和语义级别将低级特征图联系起来,包括U-Net[31]和SharpMask[28],用于分割,用于人脸检测的重组网络[17],以及用于关键点估计的堆栈沙漏网络[26]。Ghiasi等人[8]提出了一个拉普拉斯金字塔表示,以逐步细化分割。虽然这些方法采用了金字塔形状的结构,但它们不同于特征图像金字塔[5,7,34],在所有层次上的预测都是独立的,见图2。事实上,对于图2(上)中的金字塔结构,仍然需要图像金字塔来识别跨多个尺度[28]的物体。

3. Feature Pyramid Networks

        我们的目标是利用基于卷积神经网络的金字塔特征层次结构,它具有从低级到高级的语义,并构建一个具有高级语义的特征金字塔。所得到的特征金字塔网络是通用的,在本文中,我们主要关注滑动窗口提出者(区域建议网络,简称RPN)[29]和基于区域的检测器(FastR-CNN)[11]。我们还将fpn推广到Sec.6中的实例分割建议中。  

        我们的方法以任意大小的单尺度图像作为输入,并以完全卷积的方式在多个层次上按比例大小的特征图。这个过程独立于主干卷积架构(例如,[19,36,16]),在本文中,我们使用ResNets[16]提出了结果。我们的金字塔的构建包括一个自下而上的路径、一个自上而下的路径和横向连接,如下所述。

Bottom-up pathway. 自底向上的路径是主干卷积网络的前馈计算,它计算由多个尺度的特征映射组成的特征层次,缩放步骤为2。通常有许多层产生相同大小的输出映射,我们说这些层处于相同的网络阶段。对于我们的特征金字塔,我们为每个阶段定义了一个金字塔级别。我们选择每个阶段的最后一层的输出作为我们的特征映射的参考集,我们将丰富它来创建我们的金字塔。这个选择是很自然的,因为每个阶段的最深的一层应该具有最强的特征。

        具体来说,对于ResNets[16],我们使用每个阶段的最后一个剩余块输出的特征激活量。我们将这些最后的残差块的输出表示为{con2、c3、C4、c5和con2、c4、c5输出,并注意它们相对于输入图像的步幅为{4、8、16,32}像素。我们不包括conv1纳入金字塔,因为它的内存占用很大。 

        Top-down pathway and lateral connections. 上向下路径通过在空间上更粗但语义上更强的特征图进行上采样,产生了更高分辨率的特征。这些特征通过横向连接通过自底而上路径的特征得到增强。每个横向连接都合并了来自自下而上路径和自上而下路径的相同空间大小的特征图。 自底向上的特征映射是较低级别的语义,但它的激活更准确地定位,因为它的下采样次数更少。

         图3显示了构建自上向下特征图的构建块。使用粗分辨率的特征图,我们将空间分辨率上采样2倍(为了简单起见,使用最近邻上采样)。然后,通过元素级添加,将上采样映射与相应的自下而上映射(经过1×1的卷积层以减少通道维度)合并。迭代此过程,直到生成最好的分辨率映射。为了开始迭代,我们只需在C5上附加一个1×1的卷积层,以生成最粗糙的分辨率图。最后,我们在每个合并映射上附加一个3×3的卷积来生成最终的特征映射,以减少上采样的混叠效应。这最后一组特征图称为{P2、P3、P4、P5},对应于分别具有相同空间大小的{C2、C3、C4、C5}。

        因为金字塔的所有层次都使用共享的类因符/回归变量,就像传统的特征图像金字塔一样,我们在所有特征映射中固定了特征维度(通道数,记为d)。我们在本文中设置了d=256,因此所有额外的卷积层都有25个6通道的输出。在这些额外的层中没有非线性激活,我们通过经验发现其影响很小。 

        简单性是我们设计的核心,我们发现我们的模型对许多设计选择都是稳健的。我们已经实验了更复杂的块(例如,使用多层残差块[16]作为连接),并观察到略微更好的结果。设计更好的连接模块并不是本文的重点,所以我们选择了上述简单的设计。

4. Applications

        我们的方法是在深卷积网络中构造特征金字塔的通用解决方案。下面我们采用RPN[29]中的方法生成边界框提案,在Fast R-CNN[11]中进行目标检测。为了证明我们的方法的简单性和有效性,我们在使[29,11]的原始系统适应于我们的特征金字塔时,对它们进行了最小限度的修改。

4.1. Feature Pyramid Networks for RPN 

        RPN[29]是一个与滑动窗口类无关的对象检测器。在最初的RPN设计中,一个小子网络在密集的3×3滑动窗口上进行评估,在单尺度卷积特征图之上,执行对象/非对象二值分类和边界盒回归。这是通过一个3×3卷积层和两个兄弟1×1卷积进行分类和回归来实现的,我们称之为网络头。对象/非对象标准和边界框回归目标是根据一组称为锚点[29]的参考框进行的去定义的。锚是由多个预定义的比例和长径比,以覆盖不同形状的对象。 

        我们通过用FPN替换单尺度特征图来适应RPN。我们将一个相同设计的头(3×3卷积和两个兄弟1×1卷积)附加在我们的特征金字塔的每个水平。因为头部在所有金字塔水平的所有位置上都密集地滑动,所以没有必要在一个特定的水平上有多尺度的锚点。相反,我们为每个级别分配一个单一尺度的锚点。在形式上,我们将锚点定义为在{P2、P3、P4、P5、P6}上的面积分别为{32**2、64**2、128**2、256**2、512**2}像素。1在[29]中,我们也在每个级别上使用多纵横比{1:2,1:1,2:1}的锚点。所以在金字塔上总共有15个锚。

        我们根据锚的交叉联合(IoU)比率为锚分配训练标签,使用地面真实边界框,如[29]。形式上,如果一个锚在给定的地面真盒中最高,或者任何地面真盒的IoU超过0.7,则分配一个正标签,如果所有地面真盒的IoU低于0.3,则分配一个负标签。请注意,地面真实盒的比例并没有明确地用来将它们分配到金字塔的级别;相反,地面真实盒与锚相关联,锚已经被分配到金字塔级别。因此,除了[29]中的那些规则外,我们没有引入任何额外的规则。

        我们注意到头部的参数在所有特征金字塔水平上共享;我们还评估了没有共享参数的替代方案,并观察到类似的精度。共享参数的良好性能表明,我们的金字塔的所有级别都共享相似的语义级别。这种优势类似于使用一个特征化的图像金字塔,其中一个通用的头部分类器可以应用于在任何图像尺度上计算的特征。

        通过上述适应,RPN可以用我们的FPN进行自然训练和测试,就像在[29]中一样。我们在实验中详细阐述了实现的细节。

4.2. Feature Pyramid Networks for Fast R-CNN

        FastR-CNN[11]是一种基于区域的对象检测器,其中使用感兴趣区域(RoI)池来提取特征。Fast R-CNN最常在单尺度的特征图上执行。为了在我们的FPN中使用它,我们需要将不同规模的roi分配到金字塔级别。 

        我们看待我们的特征金字塔,就像它是从一个图像金字塔产生的。因此,我们可以调整基于区域的检测器[15,11]在图像金字塔上运行时的分配策略。形式上,我们将一个宽度为w和高度为h的RoI(在网络的输入图像上)分配给我们的特征金字塔的级别Pk,通过:

        

        这里224是典型的ImageNet训练前的大小,k0是一个包含=224**2应该映射到的RoI的目标级别。类似于基于resnet的Fast R-CNN系统[16],它使用C4作为单尺度特征图,我们将k0设置为4。从直观上看,Eqn。(1)意味着,如果RoI的规模变得更小(比如,224中的1/2),它应该被映射到一个更精细的分辨率级别(比如,k=3)。 

        我们将预测器头(在FastR-CNN中,预测器头是特定于类的分类器和边界框回归器)附加到所有级别的所有roi上。同样,所有的头都共享参数,而不管他们的级别如何。在[16]中,采用ResNet的conv5层(一个9层深度子网)作为conv4特征的头部,但我们的方法已经利用conv5来构造特征金字塔。因此,与[16]不同的是,我们只是采用RoI池提取7×7特征,并在最终分类和边界盒回归层之前附加两个隐藏的1024d全连接(fc)层(每个后面是ReLU)。这些层是随机初始化的,因为在ResNets中没有预先训练过的fc层。请注意,与标准的conv5头相比,我们的2-fc MLP头重量更轻,速度更快。

         基于这些适应,我们可以在特征金字塔之上训练和测试Fast RCNN。实现细节在实验部分中给出。

5. Experiments on Object Detection         

        我们对80类COCO检测数据集[21]进行了实验。我们使用80k的训练图像和35k的val图像子集(trainval35k)的并集进行训练,并报告5k的val图像子集(minival)上的消融。我们还报告了没有公开标签的标准测试集(test-std)[21]的最终结果,该[21]没有公开标签。作为常见的做法[12],所有的网络骨干都在ImageNet1k分类集[33]上进行预训练,然后在检测数据集上进行微调。我们使用预先训练过的ResNet-50和ResNet-101模型。2我们的代码是使用Caffe2.4对py-faster-rcnn3的重新实现 

5.1. Region Proposal with RPN

        我们根据[21]中的定义,对小、中、大物体(ARs、ARm和ARl)评估coco风格的平均召回率(AR)和AR。我们报告每张图像100和1000个提案的结果(AP^{100}AR^{1k})。

        Implementation details. 表1中的所有架构都是端到端训练的。输入图像的大小被调整,使其较短的边有800像素。我们在8个gpu上采用同步SGD训练。一个小批量包括每个GPU2个图像和每个图像256个锚。我们使用的权重衰减为0.0001,动量为0.9。前30k小批量的学习率为0.02,后10k的学习率为0.002。对于所有的RPN实验(包括基线),我们包括了在训练图像之外的锚盒,这不像[29],这些锚盒被忽略。其他实现细节如[29]。在8个gpu上使用FPN训练RPN,在COCO上大约需要8个小时。 

5.1.1 Ablation Experiments  

        与基线的比较。为了与原始RPN[29]进行公平比较,我们使用C4(与[16]相同)或C5的单尺度图运行两个基线(表1(a,b)),两者都使用与我们相同的超参数,包括使用{32**2,64**2,128**2,256**2,512**2}的5个尺度锚点。表1(b)没有显示出比(a)更好的优势,这表明单一的高级特征图是不够的,因为在更粗的分辨率和更强的语义之间存在权衡。 

        将FPN纳入RPN可使AR1k提高到56.3(表1(c)),比单尺度RPN基线增加了8.0个点(表1(a))。此外,在小物体(AR_{s}^{1k})上的性能也大大提高了12.9个百分点。我们的金字塔表示大大提高了RPN对对象尺度变化的鲁棒性。

        How important is top-down enrichment?  表1(d)显示了我们没有上顶路径的特征金字塔的结果。通过这种修改,1×1横向连接和3×3卷积被连接到自下而上的金字塔上。该体系结构模拟了重用金字塔特征层次结构的效果(图1(b))。

        表1(d)中的结果与RPN基线相当,并且远远落后于我们的结果。我们推测,这是因为在自下而上的金字塔上的不同层次之间存在着很大的语义差距(图1(b)),特别是对于非常深的ResNets。我们还评估了表1(d)的一个变体,但没有共享头部的参数,但观察到类似的性能下降。这个问题不能简单地通过特定级别的负责人来补救。

        How important are lateral connections?  表1(e)显示了一个没有1×1侧向连接的自上而下的特征锥体的消融结果。这个自上而下的金字塔具有很强的语义特征和精细的分辨率。但我们认为,这些特征的位置并不精确,因为这些地图已经被降采样和上采样了好几次。更精确的特征位置可以直接从自下而上的地图的更精细的层次上通过横向连接传递到自上而下的地图。因此,FPN的AR^{1k}得分比表1(e)高出10分。

        How important are pyramid representations? 不可以使用金字塔表示,而可以将头部连接到P2的最高分辨率、强语义强的特征图(即,金字塔中最好的层次)上。与单尺度基线类似,我们将所有锚点分配给P2特征图。这种变体(表1(f))优于基线方法,但低于我们的方法。RPN是一种具有固定窗口大小的滑动窗口检测器,因此在金字塔级上进行扫描可以提高其对尺度方差的鲁棒性。

        此外,我们注意到,在P2的空间分辨率较大的情况下,单独使用P2会导致更多的锚点(750k,表1(f))。这一结果表明,更多的锚点本身并不足以提高精度

5.2. Object Detection with Fast/Faster R-CNN          

        接下来,我们研究了基于区域的(非滑动窗口)检测器的FPN。我们通过coco式平均精度(AP)和pascal式AP(在单一的IoU阈值为0.5时)来评估目标检测。我们还根据[21]中的定义报告了小、中、大尺寸对象(即AP、APm和APl)的COCOAP。

        Implementation details. 输入图像的大小被调整,使其较短的边有800像素。同步SGD用于在8个gpu上训练模型。每个小批包括每个GPU2个图像,每个图像512个roi。我们使用的权重衰减为0.0001,动量为0.9。前60k小批量的学习率为0.02,后20k的学习率为0.002。我们使用每张图像2000个roi进行训练,1000个进行测试。在COCO数据集上,使用FPN训练Fast R-CNN大约需要10个小时。 

5.2.1 Fast R-CNN (on fifixed proposals)         

        为了更好地研究FPN对仅基于区域的探测器的影响,我们在一组固定的建议上对Fast R-CNN进行了消融。 我们选择冻结由RPN在FPN上计算出的建议(表1(c)),因为它在需要被检测器识别的小对象上具有良好的性能。为了简单起见,我们不在FastR-CNN和RPN之间共享特性,除非被指定。

        作为基于resnet的FastR-CNN基线,在[16]之后,我们采用输出大小为14×14的RoI池化,并将所有conv5层作为头部的隐藏层附加起来。这给出了表2(a).中的AP为31.9表2(b)是一个利用具有两个隐藏fc层的MLP头部的基线,类似于我们的架构中的头部。它得到的AP为28.8,表明2-fc头没有给我们比表2(a).中的基线有任何正交优势.

        

        表2(c)显示了我们在FastR-CNN中的FPN的结果。与表2(a)中的基线相比,我们的方法将AP提高了2.0点,将小对象AP提高了2.1点。与同样采用2fc头的基线(表2(b))相比,我们的方法将AP提高了5.1个点。5这些比较表明,我们的特征金字塔优于基于区域的目标检测器的单尺度特征。

        表2(d)和(e)显示,移除自上而下的连接或移除横向连接会导致较差的结果,类似于我们在上述小节中观察到的RPN。值得注意的是,去除自上而下的连接(表2(d))显著降低了准确性,这表明FastR-CNN在高分辨率地图上使用了低级别的特征。

        在表2(f)中,我们在P2的单一最优尺度特征图上采用了FastR-CNN。其结果(33.4AP)略低于使用所有金字塔级别的结果(33.9AP,表2(c))。我们认为,这是因为RoI池化是一种类似扭曲的操作,它对该区域的规模不那么敏感。尽管这个变体有很好的准确性,但它是基于{Pk}的RPN建议,因此已经受益于金字塔表示。

5.2.2 Faster R-CNN (on consistent proposals)  

        在上面的文章中,我们使用了一组固定的建议来调查探测器。但是在一个Faster R-CNN系统[29]中,RPN和Fast R-CNN必须使用相同的网络主干,以使特征共享成为可能。表3显示了我们的方法和两条基线之间的比较,所有这些方法都使用了RPN和FastR-CNN的一致主干架构。表3(a)显示了我们对[16]中描述的基线更快的R-CNN系统的再现。在受控设置下,我们的FPN(表3(c))比这个强基线好了2.3%AP和3.8%AP@0.5。 

        请注意,表3(a)和(b)的基线比He等人[16]在表3中(*)中提供的基线要强得多。我们发现以下实现导致了这一差距:(i)我们在[11,16]中使用800像素的图像比例,而不是600像素;(ii)我们训练每张图像512个RoIs,加速收敛,而在[11,16]中使用64个roi;(iii)我们使用5个比例锚而不是4个[16](添加322);(iv)在测试时,我们每张图像使用1000个提案,而不是[16]中的300个。所以与他等人相比。我们的方法将AP提高了7.6%,AP@0.5提高了9.6%。 

        Sharing features.  在上面中,为了简单起见,我们不共享RPN和FastR-CNN之间的特性。在表5中,我们按照[29]中描述的4步训练来评估共享特征。与[29]类似,我们发现共享特征可以小幅提高精度。特性共享还减少了测试时间。
        Running time.  通过特性共享,我们基于FPN的R-CNN系统在ResNet-40 NVIDIA-50上的推理时间为0.148秒,ResNet-101.6为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倍的小批量。这将使AP增加到35.6,而没有共享功能。这个模型是我们提交给COCO检测排行榜的模型,如表4所示。由于时间有限,我们没有评估它的特性共享版本,这应该会稍好一些,如表5所示。 

        表4将我们的方法与COCO竞赛获胜者的单模型结果进行了比较,包括2016年冠军G-RMI和2015年冠军R-CNN+++。没有添加花哨子,我们的单模型进入已经超越了这些强大的,精心设计的竞争对手。

        在测试开发集上,我们的方法比现有的最佳结果增加了0.5分(36.2vs.35.7),AP在0.5时增加了3.4分(59.1vs.55.7)。值得注意的是,我们的方法并不依赖于图像金字塔,只使用单一的输入图像尺度,但在小尺度对象上仍然有出色的AP。这只能通过以前的方法的高分辨率图像输入来实现。

        此外,我们的方法没有利用许多流行的改进,如迭代回归[9]、硬负挖掘[35]、上下文建模[16]、更强的数据增强[22]等。这些改进是对fpn的补充,应该会进一步提高准确性。最近,FPN在COCO竞争的所有轨道中实现了新的顶级结果,包括检测、实例分割和关键点估计。详情请参阅[14]。 

6. Extensions: Segmentation Proposals  

        我们的方法是一种通用的金字塔表示方法,可以用于目标检测以外的应用程序。在本节中,我们使用fpn来生成分割建议,遵循深度掩码/锐化掩码框架[27,28]。

       DeepMask/SharpMask在图像作物上进行训练,用于预测实例片段和对象/非对象分数。在推理时,这些模型被卷积运行,以在图像中生成密集的建议。为了在多个尺度上生成片段,图像金字塔是必要的[27,28]。 

        很容易调整FPN来生成掩模建议。我们使用了一个完全卷积的设置来进行训练和推理。我们构建了我们的特征金字塔。5.1和设置d=128。在特征金字塔的每个层上,我们应用一个小的5×5 MLP,以完全卷积的方式预测14×14掩模和对象分数,见图4。此外,由于在[27,28]的图像金字塔中使用每个八度的2个刻度,我们使用输入大小为7×7的第二个MLP来处理半八度。这两个mlp在RPN中扮演着类似于锚点的作用。该架构是端到端培训的;附录中给出了完整的实现细节。

6.1. Segmentation Proposal Results          

        结果如表6所示。我们报告了关于小、中、大对象的分段AR和分段AR,总是针对1000个提案。我们的基线FPN模型与单一的5×5 MLP达到了43.4的AR。切换到稍大的7×7 MLP,精度基本保持不变。同时使用这两种mlp可以将精度提高到45.7AR。将掩模输出大小从14×14增加到28×28,AR就会增加另一个点(较大的尺寸开始降低精度)。最后,将训练迭代加倍,使AR增加到48.1。

        我们还报告了与DeepMask [27], SharpMask [28], and InstanceFCN [4],的比较,这是之前在掩模提案生成中的最新方法。我们比这些方法的准确性高出8.3分。特别是,我们在小物体上的精度几乎提高了一倍。现有的掩模建议方法[27,28,4]基于密集采样的图像金字塔(例如,按比例2^{​{2:0.5:1}}),使得它们的计算成本昂贵。我们基于FPNs的方法要快得多(我们的模型运行速度为6到7FPS)。这些结果表明,我们的模型是一个通用的特征提取器,可以替代图像金字塔的其他多尺度检测问题。 

7. Conclusion

        我们提出了一个干净和简单的框架,用于构造圆锥体内部的特征金字塔。我们的方法显示了对几个强大的基线和竞争获胜者的显著改进。因此,它为特征金字塔的研究和应用提供了一个实用的解决方案,而不需要计算图像金字塔。最后,我们的研究表明,尽管深度卷积网络具有很强的表征能力及其对尺度变化的隐式鲁棒性,但使用金字塔表示来明确解决多尺度问题仍然是至关重要的。 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FPN (Feature Pyramid Network) 是一种用于目标检测和语义分割任务的神经网络架构。它由 Tsung-Yi Lin 等人在论文 "Feature Pyramid Networks for Object Detection" 中提出。 FPN 的主要目标是解决目标检测任务中的多尺度问题。传统的目标检测方法通常使用单一尺度的特征图进行预测,这会导致小目标难以被准确检测到,而大目标则可能丢失细节信息。FPN 使用了一种金字塔式的特征提取方法,将不同尺度的特征图进行融合,以便在不同尺度上进行目标检测FPN 的核心思想是通过建立自顶向下和自底向上的路径来构建特征金字塔。自底向上的路径从底层的高分辨率特征图开始,通过下采样操作逐渐降低分辨率,生成一系列特征图。自顶向下的路径则通过上采样操作逐渐增加分辨率,将高层语义信息传递到低层特征图中。最后,不同层级的特征图通过横向连接进行融合,形成一个多尺度的特征金字塔。 在目标检测任务中,FPN 可以用作特征提取网络的一部分,提供多尺度的特征图用于目标检测器的预测。它可以帮助检测器更好地适应不同尺度的目标,并提高检测精度。 在语义分割任务中,FPN 可以用于生成密集的像素级预测。通过将特征金字塔的不同层级特征图进行上采样和融合,可以得到高分辨率的语义分割结果。 总结来说,FPN 是一种有效解决多尺度问题的神经网络架构,可用于目标检测和语义分割任务。通过构建特征金字塔,提供多尺度的特征图,从而提高模型在不同尺度上的表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱花的浪漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值