FPN网络图解及论文笔记

FPN网络图解

FPN

原图片以及PPT源文件下载链接(欢迎关注我的知乎!):

链接:https://pan.baidu.com/s/10y78HagInyCuCA-aMeNJpg

提取码:iccm

复制这段内容后打开百度网盘手机App,操作更方便哦

基本信息

  • 论文名称

    Feature Pyramid Networks for Object Detection

  • 作者

    Tsung-Yi Lin等

    Facebook AI Research

  • 发表时间

    2017年

  • 来源

    CVPR2017

主要收获

  • 知识

    • 高级语义信息是有助于识别目标但有害于定位目标,低级空间信息有害于识别目标但有助于定位目标(由于其下采样次数较少,所以其可以更准确地定位)。

    • SSD没有利用higher-resolution maps,而本文证明了higher-resolution maps对于检测小物体很重要。

    • Introduction整体思路

      Feature Pyramids可以用于检测不同尺度的目标。

      Featurized Image Pyramids将图片缩放到不同大小并分别提取其特征并进行检测,其结构如图1(a)所示,其被大量应用于手工特征,其优点是每个层次都具有很强的语义信息(即使是high-resolution levels),其缺点是分别提取每个层次的特征并进行检测导致推理时间相应加倍。

      在recognition任务中,卷积网络逐渐取代了手工特征。卷积网络(Single feature map)逐渐不仅可以表示高级语义,在尺度变化方面也更具稳健性,因此可以只在一个尺度的特征图上进行检测,其结构如图1(b)所示,但其缺点是未利用到卷积网络固有的Pyramidal feature hierarchy。

      卷积网络(Pyramidal feature hierarchy)天然具有多尺度的、金字塔型的特征层次,其结构如图1(c)所示,其缺点是造成不同层次特征图之间的语义差异,high-resolution maps中包含的低级特征降低了该特征图在目标检测任务中的表征能力。SSD并没有利用higher-resolution maps,但本文证明了higher-resolution maps对于检测小物体很重要。

      如图2(top)所示,一些采用自上到下路径和skip connections的方法仅在自上到下路径顶部的单个特征图上进行预测,实际上这些方法还需要image pyramids以识别多尺度的目标。

      如图2(bottom)和图1(d)所示,FPN自然地利用卷积网络固有的金字塔层次同时创建每层都有较强语义信息的特征金字塔,通过1个从上到下的路径和侧边连接将low-resolution、semantically strong的特征和high-resolution、semantically weak的特征结合起来,在自上到下路径所有特征图上都进行预测,最终仅从单尺度的输入图片得到各层都有较强语义信息的特征金字塔,且不需额外计算成本。

    • FPN以任意大小的单张图片为输入。

    • 对于ResNet,FPN并不将其第1个stage的输出包含到FPN中因为其内存占用量比较大。

    • FPN中bottom-up路径中相邻层间下采样比例为2

    • FPN的building block

      图3展示了创建top-down路径中特征图的building block。将top-down路径中coarser-resolution的特征图上采样(比例为2),将bottom-up路径中的特征图通过1×1卷积减少通道数,然后将两者相加(element-wise)。这个过程一直迭代到生成最大的特征图。在开始top-down路径之前会在bottom-up路径顶层使用1×1卷积生成尺度最小的特征图。在每个相加操作之后使用3×3卷积减少上采样带来的混淆效应(aliasing effect)。

    • FPN和传统的featurized image pyramid一样,各个金字塔层都使用共享的classifier/regressor

  • 一些未知的东西

    • 特征金字塔

      原文:E. H. Adelson, C. H. Anderson, J. R. Bergen, P. J. Burt, and J. M. Ogden. Pyramid methods in image processing. RCA engineer, 1984.

    • 尺度不变性(scale-invariant)

Abstract

  • Feature Pyramids(特征金字塔)是识别系统中用来检测不同尺度的目标的一个基本组件
  • 近期深度学习目标检测方法却避免了pyramid representations,如原文图1(b),部分原因是它们是计算和内存密集型的

  • FPN(Feature Pyramid Network)

    • 使用少量成本,利用卷积网络固有的多尺度金字塔层次结构来构建特征金字塔
    • 是一种带有侧向连接的自顶向下的结构,可以在所有尺度上构建高级语义特征
  • 性能
    • 将FPN应用于基本的Faster-RCNN,在COCO detection benchmark上超过SOTA的single model
    • 在GPU上达6FPS

1. Introduction

  • 识别不同尺寸的目标是计算机视觉领域的一个基础挑战

  • Featurized Image Pyramids(特征化的图像金字塔)

    • 定义

      Featurized Image Pyramids即Feature pyramids built upon image pyramids(建立在图像金字塔上的特征金字塔),见原文图1(a)。也就是将图片缩放到不同大小并分别提取其特征并进行检测

      其构成了标准解决方案的基础,其具有尺度不变性(scale-invariant),因为可以通过金字塔中的不同层来处理不同尺寸的目标,可以基于层维度和位置维度对目标进行扫描检测。

    • 应用

      Featurized Image Pyramids在手工设计的特征中被大量使用,如DPM算法。

    • 优点

      所有最近的ImageNet和COCO比赛的前几名都在Featurized Image Pyramids上进行多尺度测试。

      Featurized Image Pyramids的主要优点是每个层次都具有很强的语义信息,即使是high-resolution levels

    • 缺点

      • 分别提取每个层次的特征并进行检测,推理时间相应地加倍。
      • 考虑到内存等因素,不可能端到端地在图像金字塔上训练卷积网络,最多只能在测试的时候使用图像金字塔(同时这也造成训练和测试的不一致性)

        因为这些原因,Fast和Faster R-CNN默认也就没有使用FIP。

  • 卷积网络(Single feature map)

    在Recognition任务中,手工特征逐渐被卷积网络取代。

    卷积网络不仅可以表示高级语义,在尺度变化方面也更具稳健性,因此可以只在一个尺度的特征图上进行检测,如原文图1(b)

    但即使具备这样的稳健性,卷积网络中仍然需要金字塔(可以通过Pyramidal feature hierarchy改进)。

  • 卷积网络(Pyramidal feature hierarchy)

    • 固有金字塔特征层次

      然而image pyramids并不是实现多尺度特征表示的唯一方法,卷积神经网络天然具有多尺度的、金字塔型的特征层次(feature hierarchy),如原文图1(c)

    • 缺点

      卷积网络的特征层次产生了不同尺寸的特征图,但是造成不同层次特征图之间的语义差异,尺寸大的特征图(high-resolution maps)包含着低级特征,这些低级特征降低了该特征图在目标检测任务中的表征能力

      SSD是第一批尝试利用卷积网络中Pyramidal feature hierarchy的方法之一,但其也存在不足。理想情况中,SSD系列会利用forward pass中生成的多尺度特征,因此没有额外计算成本。但是为了避免使用低级特征,SSD没有使用已有的层,而是从网络高层开始构建金字塔并添加几个新层。因此SSD没有利用higher-resolution maps,而本文证明了higher-resolution maps对于检测小物体很重要

  • Feature Pyramid Network

    • 定义

      自然地利用卷积网络固有的金字塔层次同时创建每层都有较强语义信息的特征金字塔。如图1(d)和图2(bottom)所示,通过1个从上到下的路径和侧边连接将low-resolution、semantically strong的特征和high-resolution、semantically weak的特征结合起来,仅从单尺度的输入图片得到各层都有较强语义信息的特征金字塔,且不需额外计算成本。

    • 相关工作

      图2(top)所示,其它采用自上到下路径和skip connections的方法仅在自上到下路径顶部的单个特征图上进行预测,实际上这些方法还需要image pyramids以识别多尺度的目标,而FPN是在自上到下路径所有特征图上都进行预测。

    • 效果

      在detection和segmentation系统上进行评估,仅将FPN应用于基础的Faster R-CNN在COCO detection benchmark上实现SOTA。

      在ablation experiments中,对于bounding box proposals,FPN将AR(Average Recall)提升了8 points;对于目标检测,将COCO-style Average Precision (AP)提升了2.3 points,将PASCAL-style AP,提高了3.8 points。

      FPN易于应用于到mask proposals并能提升实例分割的AR和速度。

      FPN可以进行端到端的多尺度训练,并且在训练和测试时都可以用,还不增加计算成本。

2. Related Work

  • Hand-engineered features and early neural networks

    SIFT特征用于特征点匹配,HOG和后来的SIFT在整个图像金字塔上进行密集计算,它们在图像分类、目标检测、人体姿态估计等任务中被大量使用。

    很快地也有了许多关于featurized image pyramids的研究。Dollar等人首先按尺度稀疏采样得到1个金字塔,然后对缺失的level进行插值,实现了快速的金字塔计算。在HOG和SIFT之前,使用卷积网络进行人脸检测的早期工作计算图像金字塔上的浅层网络以检测跨多尺度的人脸。

  • Deep ConvNet object detectors

    OverFeat采用1种与早期神经网络人脸检测器相似的策略,其将1个卷积网络作为1个sliding window detector应用于图像金字塔。

    R-CNN采用1种基于region proposal的策略,其中在使用卷积网络分类之前each proposal was scale-normalized。

    SPPNet表明这些基于region的detector可以更有效地应用于从单尺度图片提取出的特征图上。

    最近更加准确的Fast R-CNN和Faster R-CNN等算法提倡使用从单尺度图片计算得到的特征,因为这可以实现accuracy和speed的trade-off。

    Multi-scale detection仍然表现更佳,特别是对于小目标

  • Methods using multiple layers

    最近大量方法利用卷积网络中的不同层提高了检测和分割的性能。FCN在多个尺度上计算每个category的的partial score以得到语义分割,Hypercolumns将类似方法应用于object instance segmentation。HyperNet、ParseNet和ION等方法在计算结果前将多层特征拼接,这等价于对转换后的特征求和。SSD和MS-CNN在多个特征层分别预测结果,并没有将多层特征结合。

    最近有很多方法在探索可以将低级特征和高级特征融合的lateral/skip connections,包括用于segmentation的U-Net和SharpMask、用于人脸检测的Recombinator networks、用于关键点预测的Stacked Hourglass networks。Ghiasi等人实现了在FCN上实现了1个Laplacian pyramid presentation,可以逐渐优化分割结果。即使这些方法采用了金字塔形状的结构,它们并不像featurized image pyramids一样在所有层独立预测结果,如图2所示,实际上这些方法还需要image pyramids以识别多尺度的目标

3. Feature Pyramid Networks

FPN的目标是构造1个各层都具有较强高级语义信息的特征金字塔。FPN is general-purpose(多用途的),本文将其应用于RPN和Fast R-CNN,在Sec. 6中将其generalize到instance segmentation proposals。

FPN通过全卷积的方式,以任意大小的单张图片为输入,在多个尺度输出对应比例大小的特征图。该过程独立于骨干网络的具体架构,本文展示了基于ResNet的结果。FPN的构建包括1个bottom-up路径、1个top-down路径和lateral connections。

  • Bottom-up pathway

    Bottom-up pathway就是骨干网络的feedforward,每层间下采样比例为2。网络中经常有连续几个层输出的特征图尺寸相同,我们称这些层位于同1个stage。在FPN中,为每个stage定义1个金字塔层。取每个stage中最后1层的输出代表该stage,因为每个stage中最深的层应该具有最强的特征。

    对于ResNet,使用后4个stage(相对于输入的步长分别为4、8、16、32)的输出,并不将第1个stage的输出包含到FPN中因为其内存占用量比较大

  • Top-down pathway and lateral connections

    top-down pathway将金字塔中空间信息粗糙、语义信息更强的高层特征图上采样生成尺寸较大的特征图,然后通过lateral connections用bottom-up路径中的特征对这些特征进行增强。每个lateral connection将bottom-up路径和top-down路径中相同尺寸的特征图融合。bottom-up路径中的特征图具有较低级别的语义信息,但是由于其下采样次数较少所以其可以更准确地定位。

    图3展示了创建top-down路径中特征图的building block。将top-down路径中coarser-resolution的特征图上采样(比例为2),将bottom-up路径中的特征图通过1×1卷积减少通道数,然后将两者相加(element-wise)。这个过程一直迭代到生成最大的特征图。在开始top-down路径之前会在bottom-up路径顶层使用1×1卷积生成尺度最小的特征图。在每个相加操作之后使用3×3卷积减少上采样带来的混淆效应(aliasing effect)。

    因为各个金字塔层都和传统的featurized image pyramid一样使用共享的classifier/regressor,所以将所有额外卷积层的输出通道数设置为256。在这些额外的层中,并不存在non-linearities,但我们凭经验发现其影响很小。

    simplicity对FPN非常重要,我们发现FPN对很多设计选择具有鲁棒性。我们使用更sophisticated的block(比如使用multilayer residual blocks作为连接)进行实验并观察到了略胜一筹的结果。设计更优的connection并非本文的重点,所以我们采用了上述的简单设计。

4. Applications

略……


Github(github.com):@chouxianyu

Github Pages(github.io):@臭咸鱼

知乎(zhihu.com):@臭咸鱼

博客园(cnblogs.com):@臭咸鱼

B站(bilibili.com):@绝版臭咸鱼

微信公众号:@臭咸鱼

转载请注明出处,欢迎讨论和交流!