【经典论文阅读】Feature Pyramid Networks for Object Detection

论文地址

1. Abstract

在这里插入图片描述
摘要中表明了:

  • 特征金字塔 FPN 是识别系统检测不同尺度物体的基本组成部分
  • 深度学习object detectors已经避免了金字塔表示,部分原因是它们需要大量的计算和内存
  • 利用深度卷积网络固有的多尺度金字塔层次结构,以 marginal extra cost 构建特征金字塔
  • 横向连接的自顶向下架构 FPN,用于构建各种尺度的高级语义特征图

在基本的Faster R-CNN系统中使用FPN,我们的方法在COCO检测基准上获得了最先进的单模型结果,没有附加的附加功能,超过了所有现有的单模型项目,包括2016年COCO挑战赛获胜者的项目。此外,我们的方法可以在GPU上以6fps的速度运行,因此是一个实用和准确的多尺度目标检测解决方案。

2. Introduction

识别不同尺度的物体是计算机视觉的一个基本挑战。
在这里插入图片描述

  • (a):在图像金字塔之上构建的特征金字塔,
  • (b):最近的探测系统选择仅使用单一尺度特征以更快地探测。
  • (c):另一种方法是重用由ConvNet计算的金字塔特征层次结构,就好像它是一个特征化的图像金字塔
  • (d):我们提出的特征金字塔网络(FPN)像(b)和( c)一样快,但更准确。在这个图中,特征映射由蓝色的轮廓表示,更粗的轮廓表示语义上更强的特征

机器翻译:


在图像金字塔之 image pyramids 上构建的 特征金字塔Feature pyramids (for short we call these 特征图像金字塔featurized image pyramids)构成了标准解的基础(图1(a))。这些金字塔是尺度不变的,因为物体的尺度变化可以通过改变其在金字塔中的 level抵消,这个特点使得模型能够通过扫描位置和金字塔级的模型来检测大范围尺度内的对象
【解释了特征图像金字塔featurized image pyramids、并介绍图a中的featurized image pyramids是尺寸不变的。】

对于识别任务,工程特征在很大程度上已经被深度卷积网络(ConvNets) 计算出的特征所取代。除了能够表示更高级别的语义外,ConvNets对尺度上的方差也更具有鲁棒性,因此便于从单一输入尺度上计算的特征进行识别(图1(b))。但即使有这样的鲁棒性,金字塔仍然需要得到最准确的结果。在ImageNet和COCO检测挑战中,所有最近的顶级项目都使用了多尺度的特征图像金字塔测试。将图像金字塔的每个级别特征化的主要优势是,它产生了一个多尺度的特征表示,其中所有层都具有很强的语义,包括高分辨率级别。
【介绍图2,经过多次卷积后,直接对最终的高级别语义进行预测,虽然这样具有一定的鲁棒性,但金字塔(特征提取网络)仍需要最准确的结果。多尺度表征着每一层都有很强的信息】

然而,对图像金字塔的每一层进行特征描述有明显的局限性推理时间大大增加(例如,增加4倍),使得这种方法对于实际应用程序来说不切实际。此外,在图像金字塔上端到端训练深度网络在内存方面是不可行的,因此,如果利用图像金字塔,则仅在测试时使用图像金字塔,这造成了训练/测试时间推理之间的不一致。基于这些原因,Fast and Faster R-CNN选择在默认设置下不使用特色图像金字塔。
【图像金字塔有一定的缺陷:①时间成本太大②信息太多导致内存不足】

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

单镜头检测器(SSD)[22]是使用ConvNet的金字塔特征层次结构的第一个尝试,就好像它是一个特征化的图像金字塔(图1©)。理想情况下,SSD-style 的金字塔将重用在正向通道中计算的不同层的多比例尺特征图,因此无需成本。但是为了避免使用底层功能,SSD放弃了重用已经计算过的层,而是从网络的高层开始构建金字塔(例如,VGG网的conv4 3),然后添加几个新的层。因此,它错过了重用特性层次结构的高分辨率映射的机会。我们表明,这些对探测小物体很重要。
【介绍另一类检测器SSD。】

挖坑:以后会学习SSD。


本文的目标是自然地利用ConvNet特征层次结构的金字塔形状,同时创建在所有尺度上都具有强语义的特征金字塔。为了实现这一目标,我们依赖一种架构,通过自上而下的路径和横向连接,将低分辨率、语义强(深层网络)的特征与高分辨率、语义弱(浅层网络)的特征结合起来(图1(d))。其结果是一个特征金字塔,具有丰富的语义在所有级别,并从单一的输入图像尺度快速构建。换句话说,我们展示了如何创建网络内的特征金字塔,可以用来替代特征图像金字塔,而不牺牲表示能力、速度或内存。
【展示了如何创建网络内的特征金字塔,深层与浅层网络的融合】
在这里插入图片描述
采用自顶向下和跳过连接的类似架构在最近的研究中很流行。他们的目标是生成一个高分辨率的单一高级特征图,在此基础上进行预测(图2顶部)。相反,我们的方法将架构作为一个特征金字塔,其中预测(例如,物体检测)在每一层上独立进行(图2底部)。
【这段介绍了具体操作】
在没有 bells and whistles 情况下,我们报告了基于FPN和基本的Faster R-CNN检测器的具有挑战性的COCO检测基准的最先进的单模型结果,超过了所有现有的重量级设计的比赛获胜者的单模型作品。在消融实验中,我们发现,对于 bounding box proposals,FPN显著提高平均召回率(AR) 8.0点;对于目标检测,在ResNets上的fast R-CNN强单尺度基线上,它提高了coco风格的平均精度(AP) 2.3点和pascal风格的AP 3.8点。我们的方法也很容易扩展到mask proposals,并提高了实例分割AR和高度依赖图像金字塔的最先进方法的速度。
【在Faster R-CNN预测bounding box proposals的结果】

此外,我们的金字塔结构可以用所有尺度端到端训练,并在训练/测试时一致使用,这将是使用图像金字塔的内存不可实现的。因此,FPN能够达到比所有现有的最先进的方
法更高的精度。

3. Related Work

手工设计的功能和早期神经网络。
SIFT特征最初在尺度空间极值处提取,用于特征点匹配。HOG特征,以及后来的SIFT特征,在整个图像金字塔上密集计算。这些HOG和SIFT金字塔已经在许多工作中被用于图像分类、目标检测、人体姿态估计等。人们对快速计算特征图像金字塔也有很大的兴趣。Dollár等人演示了快速金字塔计算,首先计算一个稀疏采样(在比例中)金字塔,然后插值缺失的水平。在HOG和SIFT之前,使用ConvNets进行人脸检测的早期工作计算了图像金字塔上的浅网络来跨尺度检测人脸。

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

使用多层的方法。
最近的一些方法通过在ConvNet中使用不同的层来改进检测和分割。FCN在多个尺度上对每个类别的部分得分相加,以计算语义分割。Hypercolumns使用类似的方法进行对象实例分割。其他一些方法(HyperNet , ParseNet和ION在计算预测之前将多层的特征连接起来,这相当于将转换后的特征相加。SSD和MS-CNN在不结合特征或评分的情况下预测特征层次结构的多层对象。

4. Feature Pyramid Networks🐱‍🏍(important)

我们的目标是利用ConvNet的金字塔特征层次结构,它具有从低到高的语义,并构建贯穿始终的具有高级语义的特征金字塔。由此产生的特征金字塔网络是通用的,在本文中我们关注滑动窗口提议器(区域提议网络,简称RPN)和基于区域的检测器(Fast R-CNN)。

我们的方法将任意大小的单比例图像作为输入,并以完全卷积的方式在多个层次上输出比例大小的特征映射。这个过程独立于主干卷积体系结构,在本文中,我们使用ResNets给出了结果。金字塔的建设包括 a bottom-up pathway, a top-down pathway, and lateral connections,。

4.1 Bottom-up pathway

**自底向上的通道 **---------卷积操作
自底向上的路径是骨干ConvNet的前馈计算,计算由多个比例尺的特征映射组成的特征层次,变换步长为2。通常有许多层产生相同大小的输出映射,我们称这些层处于相同的网络阶段。对于我们的特征金字塔,我们为每个阶段定义一个金字塔级别。我们选择每个阶段最后一层的输出作为我们的参考特征映射集,我们将丰富它来创建我们的金字塔。这种选择是很自然的,因为每个阶段的最深层都应该具有最强的功能。
具体来说,对于ResNets,我们使用每个阶段最后一个剩余块的特征激活输出。对于conv2、conv3、conv4和conv5输出,我们将最后这些剩余块的输出表示为{C2, C3, C4, C5},并注意到它们相对于输入图像有{4,8,16,32}像素的跨步。由于conv1占用的内存很大,所以我们没有将它包含到金字塔中。

4.2 Top-down pathway and lateral connections.

自上而下的通路和横向连接---------上采样
自上向下路径通过从更高的金字塔层向上采样空间更粗糙,但语义更强的特征图,产生更高分辨率的特征。然后,通过横向连接,这些特征被来自自底向上通路的特征增强。每个横向连接都合并了来自自底向上路径和自顶向下路径的相同空间大小的特征图。 自底向上的特征映射具有较低的语义,但由于下采样次数较少,其激活的本地化更加准确。在这里插入图片描述图3显示了构建自顶向下特征映射的构建块。对于一个较粗分辨率的特征图,我们将空间分辨率上采样2倍**(为了简单起见,使用最近邻上采样)然后,通过元素的添加,将上采样的映射与相应的自底向上映射(该映射经过1×1卷积层,以减少通道维度)合并。这个过程不断迭代,直到生成最好的分辨率映射。要开始迭代,我们只需在C5上附加一个1×1卷积层,以生成最粗糙的分辨率映射。最后,我们在每个合并的map上附加一个3×3卷积来生成最终的feature map**,这是为了减少上采样的混叠效应。这最后一组特征映射称为{P2, P3, P4, P5},对应于分别具有相同空间大小的{C2, C3, C4, C5}。因为金字塔的所有层次都像传统的特征图像金字塔一样使用共享的分类器/回归器,我们在所有的特征映射中固定特征维度(通道的数量,表示为d)。我们在本文中设d = 256,因此所有额外的卷积层都有256通道输出。在这些额外的层中没有非线性,我们根据经验发现它们有轻微的影响。

简单是我们设计的核心,我们发现我们的模型对于许多设计选择都是稳健的。我们已经试验了更复杂的块(例如,使用多层残留块作为连接),观察到稍好的结果。设计更好的连接模块并不是本文的重点,因此我们选择了上面描述的简单设计。

5. Applications

我们的方法是在深ConvNets内构建特征金字塔的通用解决方案。下面我们采用我们在RPN中的方法生成bounding box proposal ,在Fast R-CNN中使用我们的方法进行对象检测。为了证明我们的方法的简单性和有效性,我们对的原始系统做了最小的修改,使其适应我们的特征金字塔。

5.1 Feature Pyramid Networks for RPN

RPN是一个滑动窗口类无关的对象检测器。在最初的RPN设计中,一个小的子网络在密集的3×3滑动窗口上评估,在单尺度卷积特征图之上,执行对象/非对象二进制分类和边界框回归。

这是由一个3×3卷积层实现的,后面是两个用于分类和回归的附带的1×1卷积,我们将其称为网络头。对象/非对象准则和边界框回归目标是根据一组称为锚点的参考框定义的。锚具有多个预先定义 multiple pre-defined scales and aspect ratios的 比例和纵横比,以覆盖不同形状的对象。

我们通过用我们的FPN取代单比例尺特征图来适应RPN。我们将一个相同设计的头(3×3 conv和两个附带的1×1 convs)附加到特征金字塔的每个关卡上。因为头部在所有金字塔层次的所有位置上密集滑动,在特定的层次上没有必要有多尺度的锚。相反,我们将单一尺度的锚分配到每个级别。形式上,我们将锚定义为在{P2, P3, P4, P5, P6}上分别拥有{32²,64²,128²,256²,512²}像素的区域。我们还在每个级别使用了多个纵横比的锚{1:2,1:1,2:1}。金字塔上总共有15个锚。

我们根据锚点的交叉-并集(IoU)比率,使用ground-truth bounding boxes,将训练标签分配给它们。形式上,如果一个锚在给定的ground-truth bounding boxes中拥有最高的借据,或者在任何ground-truth bounding boxes中拥有超过0.7的借据,那么它将被赋予正标签;如果一个锚在所有ground-truth bounding boxes中拥有低于0.3的借据,那么它将被赋予负标签。注意,ground-truth bounding boxes的尺度并没有被明确地用于将它们分配到金字塔的各个层次;相反,ground-truth bounding boxes与锚相关联,锚被分配到金字塔层。

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

有了以上的适应,RPN可以自然地训练和测试我们的FPN。

5.2 Feature Pyramid Networks for Fast R-CNN

Fast R-CNN是一个基于区域的对象检测器,它使用Region-of-Interest (RoI) 提取特征。快速R-CNN最常在单比例尺特征图上执行。要将它与我们的FPN一起使用,我们需要将不同规模的roi分配到金字塔级别。
在这里插入图片描述
这里224是标准的ImageNet训练前大小,k0是一个w × h = 224² 的RoI应该映射到的目标水平。类似于基于resnet的Faster R-CNN系统,它使用C4作为单尺度特征映射,我们将k0设置为4。表示如果RoI的尺度变小(例如,224的1/2),则应该映射到一个分辨率更高的级别(例如,k = 3)。

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

6. Experiments on Object Detection

Region Proposal with RPN

Object Detection with Fast/Faster R-CNN

下图是消融实验结果图,原论文还介绍了实现细节Implementation details.。
在这里插入图片描述
后面还有一部分语义分割的内容,暂时未涉及到。

7. My_Conclusion

图源: FPN结构详解

在这里插入图片描述
FPN主要解决的是物体检测中的多尺度问题,通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能

作者提出的FPN(Feature Pyramid Network)算法,通过融合 低分辨率、语义强(深层网络)的特征与高分辨率、语义弱(浅层网络)的特征 达到预测的效果。并且预测是在每个融合后的特征层上单独进行的,效果甚佳。

挖个坑:在实际网络中添加FPN结构,并分析性能提高。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 特征金字塔网络(Feature Pyramid Networks, FPN)是一种用于目标检测的神经网络架构。它通过在深层特征图上构建金字塔结构来提高空间分辨率,从而更好地检测小目标。FPN具有高效的多尺度特征表示和鲁棒性,在COCO数据集上取得了很好的表现。 ### 回答2: 特征金字塔网络(Feature Pyramid Networks,简称FPN)是一种用于目标检测的深度学习模型。该模型是由FAIR(Facebook AI Research)在2017年提出的,旨在解决单一尺度特征不能有效检测不同大小目标的问题。 传统的目标检测算法通常采用的是滑动窗口法,即在图像上以不同大小和不同位置进行滑动窗口的检测。但是,这种方法对于不同大小的目标可能需要不同的特征区域来进行检测,而使用单一尺度特征可能会导致对小目标的错误检测或漏检。FPN通过利用图像金字塔和多层特征提取,将不同尺度的特征合并起来,从而达到对不同大小目标的有效检测。 FPN主要分为两个部分:上采样路径(Top-Down Pathway)和下采样路径(Bottom-Up Pathway)。下采样路径主要是通过不同层级的卷积神经网络(CNN)来提取特征,每层都采用了非极大值抑制(Non-Maximum Suppression,NMS)方法来选择最具有代表性的特征。上采样路径则主要是将低层特征进行上采样操作,使其与高层特征的尺寸对齐,并与高层特征相加,实现特征融合。 FPN在目标检测中的优势体现在以下几个方面。首先,FPN可以提高模型对小目标的检测能力,同时仍保持对大目标的检测准确度。其次,FPN的特征金字塔结构可以在一次前向传递中完成目标检测,减少了计算时间。最后,FPN对于输入图像的尺寸和分辨率不敏感,可以在不同分辨率的图像上进行目标检测,从而适应多种应用场景。 总之,FPN是一种在目标检测领域中得到广泛应用的模型,其特征金字塔结构能够有效地解决单一尺度特征不足以检测不同大小目标的问题,并在检测准确率和计算效率方面取得了不错的表现。 ### 回答3: 特征金字塔网络是一种用于目标检测的深度学习模型,主要解决的问题是在不同尺度下检测不同大小的物体。在传统的卷积神经网络中,网络的特征图大小会不断减小,因此只能检测较小的物体,对于较大的物体则无法很好地检测。而特征金字塔网络则通过在底部特征图的基础上构建一个金字塔状的上采样结构,使得网络能够在不同尺度下检测不同大小的物体。 具体来说,特征金字塔网络由两个主要部分构成:共享特征提取器和金字塔结构。共享特征提取器是一个常规的卷积神经网络,用于提取输入图像的特征。而金字塔结构包括多个尺度的特征图,通过上采样和融合来获得不同尺度的特征表示。这些特征图之后被输入到后续的目标检测网络中,可以通过这些特征图来检测不同尺度的物体。 特征金字塔网络可以有效地解决目标检测任务中的尺度问题,并且在许多实际应用中表现出了优异的性能。例如,通过使用特征金字塔网络,在COCO数据集上得到的目标检测结果明显优于现有的一些目标检测算法。 总之,特征金字塔网络是一种非常有效的深度学习模型,可以处理目标检测任务中的尺度问题,提高模型在不同大小物体的检测精度。它在实际应用中具有很高的价值和应用前景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值