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

文章目录

  • 1. Abstract
  • 2. Introduction
  • 3. Related Work
  • 4. Feature Pyramid Networks‍(important)
    • 4.1 Bottom-up pathway
    • 4.2 Top-down pathway and lateral connections.
  • 5. Applications
    • 5.1 Feature Pyramid Networks for RPN
    • 5.2 Feature Pyramid Networks for Fast R-CNN
  • 6. Experiments on Object Detection
  • 7. My_Conclusion

论文地址

1. Abstract

【经典论文阅读】Feature Pyramid Networks for Object Detection_第1张图片
摘要中表明了:

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

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

2. Introduction

识别不同尺度的物体是计算机视觉的一个基本挑战。
【经典论文阅读】Feature Pyramid Networks for Object Detection_第2张图片

  • (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))。其结果是一个特征金字塔,具有丰富的语义在所有级别,并从单一的输入图像尺度快速构建。换句话说,我们展示了如何创建网络内的特征金字塔,可以用来替代特征图像金字塔,而不牺牲表示能力、速度或内存。
【展示了如何创建网络内的特征金字塔,深层与浅层网络的融合】
【经典论文阅读】Feature Pyramid Networks for Object Detection_第3张图片
采用自顶向下和跳过连接的类似架构在最近的研究中很流行。他们的目标是生成一个高分辨率的单一高级特征图,在此基础上进行预测(图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.

自上而下的通路和横向连接---------上采样
自上向下路径通过从更高的金字塔层向上采样空间更粗糙,但语义更强的特征图,产生更高分辨率的特征。然后,通过横向连接,这些特征被来自自底向上通路的特征增强。每个横向连接都合并了来自自底向上路径和自顶向下路径的相同空间大小的特征图。 自底向上的特征映射具有较低的语义,但由于下采样次数较少,其激活的本地化更加准确。【经典论文阅读】Feature Pyramid Networks for Object Detection_第4张图片图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分配到金字塔级别。
【经典论文阅读】Feature Pyramid Networks for Object Detection_第5张图片
这里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.。
【经典论文阅读】Feature Pyramid Networks for Object Detection_第6张图片
后面还有一部分语义分割的内容,暂时未涉及到。

7. My_Conclusion

图源: FPN结构详解

【经典论文阅读】Feature Pyramid Networks for Object Detection_第7张图片
FPN主要解决的是物体检测中的多尺度问题,通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能

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

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

你可能感兴趣的:(#,DL经典论文阅读,目标检测,论文阅读,计算机视觉)