1 《Feature Pyramid Networks for Object Detection》

阅读:2019.7.22-7.31
期刊:CVPR 2017
引用:Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[J]. In IEEE Conference on Computer Vision and Pattern Recognition, pages 936–944,2017.


FPN: Feature Pyramid Networks for Object Detection - 图1
图1.1 FPN结构示意图

1.1 FPN概述

本文提出的FPN结构,在额外计算开销较小的同时,获得了较好的“多尺度”特征用于目标检测,提高了算法的多尺度目标检测能力,尤其是对小目标的检测。往后的目标检测算法几乎将FPN作为特征提取部分的标配;且衍生了多种FPN变体,如M2Det、RefineDet、PANet、ThunderNet、Balanced Feature Pyramid、HRNet等。
FPN核心思想是充分融合不同层次特征图的特点。浅层特征图分辨率高,含有更多的细节信息,利于检测小目标,但语义信息弱;深层特征图语义信息强,但分辨率低。将两者的优点通过上采样、逐像素相加等方式融合,增强了浅层特征图的语义信息,从而提高算法对目标检测的表征能力。
FPN是目标检测算法的重要结构,但易于理解。

1.2 创新点

提出了新的提取“多尺度特征图”的方法,如图1.1所示。
浅层特征有利于检测小目标,其具备较多的细节信息;深层特征有利于分类任务,其具备较高级的语义信息。
(1)从下至上、由浅到深、逐级下采样提取特征图,与普通CNN网络提取特征一致。
(2)从上至下、由深到浅、逐步上采样,与第(1)步骤中相应层的特征图横向连接融合后得到相应层次最终的特征图。有利于在所有尺度上构建具备高级语义的特征图。

1.3 Introduction

1.3.1 其他几种获取多尺度特征图方法

1. Featuried image pyramids
图像特征金字塔。通过改变输入图片的尺寸,从而获得不同尺寸的特征图,如图1.2所示。
该方法增加了网络运算时间成本,部分算法在测试时使用该方法。
FPN: Feature Pyramid Networks for Object Detection - 图2
图1.2 Featuried image pyramids
2. Single feature map
仅使用特征提取阶段的最后一层特征图,如图1.3所示。部分检测算法使用,如SPPNet、Fast R-CNN、Faster R-CNN。
FPN: Feature Pyramid Networks for Object Detection - 图3
图1.3 Single feature map示意图
3. Pyramidal feature hierarchy
特征金字塔。将各层特征图直接送入检测器中进行目标检测,不会产生额外的计算量,如图1.4所示。
深度网络逐层提取特征时,产生多尺度的子特征图,这些子特征图构成一个“特征金字塔”。这种因网络层次而产生的具有不同空间分辨率的特征图,由于处在不同深度,从而引起了较大的语义间隔。高分辨率的特征图具有低级特征,较弱的语义信息,这些损害了目标检测的表征能力(representational capacity)。
部分的算法采用该方法,如SSD。但文中认为,SSD没有提取足够低层次的特征,SSD最底层特征为VGG的conv4_3,本文的实验表明,低层次特征有利于检测小目标。
FPN: Feature Pyramid Networks for Object Detection - 图4
图1.4 Pyramidal feature hierarchy

1.4 Feature Pyramid Networks

FPN的目标是利用convNet的金字塔特征层次结构,该层次结构具有从低级到高级的语义,构建一个在每个scale上都具有高级语义的特征金字塔。
(1)采用任意尺寸大小的单尺度图像作为输入,以全卷积的方式,输出多个level的按比例大小的feature map。
(2)将低分辨率、语义强大的特征与高分辨率语义较弱的特征,通过自上而下和横向连接组合。
(3)得到一个可从单个输入图像比例快速构建,在所有scales上都具有丰富语义的特征金字塔。

1.4.1 Buttom-up pathway

自底向上、逐步下采样提取特征,相当于普通的CNN提取特征。
根据输出特征图的大小,分成不同的层次(stage),取每个stage的最后一个特征图作为该stage的输出,记作{C2,C3,C4,C5},用于与底层特征图横向连接融合,构建当前stage的在FPN中的特征图。如图1.5所示。
每个stage可能由多组卷积操作组成,具有相同尺寸的输出特征图,最后采用步长为2的下采样操作得到下一stage的输入特征图。
FPN: Feature Pyramid Networks for Object Detection - 图5
图1.5 红色框内为FPN自底向上部分

1.4.2 Top-down pathway and lateral connections

1. 自顶向下的特征图
自顶向下、底层特征图以步长为2的“最近邻上采样”提高分辨率,采用“1x1conv”降低特征维度,得到空间上比较粗糙,但具有更强语义的特征图。如图1.6所示。
2. 自底向上的特征图
浅层特征图具有较弱的语义信息,但因下采样的次数较少,故具有较高的分辨率,有利于对小目标进行更准确定位。第C_i个浅层特征图采用“1x1 conv”调整通道数至256(所有stage的通道数为256),以与经过上采样处理的深层特征图融合。如图1.6所示。
3. 特征图融合
(1)将上述两步骤得到的特征图,以“逐像素相加(element-wise addition)” 的方法融合,得到fm1。
(2)将fm1送入“3x3 conv”操作,去除上采样的“混叠效应(aliasing effect)”,得到具有的特征图。记作{P1,P2,P3,P4,P5},对应于{C1,C2,C3,C4,C5}。
FPN的浅层特征图由于与深层特征融合了,从而在具备较高分辨率的同时,获得了更强的语义信息,有利于增强目标检测的“representational capacity”。
注意
因为FPN的所有特征图都共享“分类器(classifier)”和“回归定位器(regressor)”,故所有特征图的通道数都固定为256。
FPN: Feature Pyramid Networks for Object Detection - 图6
图1.6 红框为底层特征与高层特征的融合方法

1.5 Applications

由于本文的核心是提出捕获“多尺度”特征的方法,所以没有额外开发新的目标检测算法,而是直接将FPN应用在Fast R-CNN中,以检测FPN性能。

1.5.1 Feature Pyramid Networks for RPN

1. Faster R-CNN中的RPN
特征提取器只输出了一个张特征图(fm1)。
(1)RPN采用“3x3 conv”对fm1进行特征提取,得到fm2;
(2)分成“二元分类(前景/背景)”与“定位”两个分支
“二元分类(前景/背景)”:fm2的每个cell生成9个anchors,每个anchor有前景/背景2类,故采用“1x1 conv”对fm2进行操作时,通道数为92=18。
“定位”:每个anchor有4个偏移量(offset,RPN预测框相对于anchor坐标偏移量),故采用“1x1 conv”对fm2进行操作时,通道数为4。通过公式,利用anchor坐标和offset计算得到“RPN预测框”的坐标(可参考Faster R-CNN笔记)。
FPN: Feature Pyramid Networks for Object Detection - 图7
图1.7 RPN网络结构示意图
FPN: Feature Pyramid Networks for Object Detection - 图8
图1.8 RPN卷积输出分析图
2. 嵌入FPN后的RPN
对{P2,P3,P4,P5,P6}的每一层都采用与RPN相同的操作,即原始RPN只有一张特征图输入,现在多张输入,对每张特征图执行与原始RPN相同的操作。
(1)anchor的scale和aspect ratio设置
由于输入特征图具有不同的尺寸,所以anchors不需要单独设定scale(原始的anchor设定了3种scale,3种宽高比(aspect ratio)),只需要设定aspect ratio。anchor的scale由不同尺寸的特征图决定,文中设定的{P2,P3,P4,P5,P6}的大小分别为{32,64,128,256,512};aspect ratio为{1:2, 1:1, 2:1},所以特征金字塔中共有3x5=15种anchors。
(2)anchor的gt_box选择、正负样本的选择
根据IoU的值设置每个anchor的gt_box:
与anchor具有最大IoU的gt_box
与anchor的IoU超过阈值的gt_box
正负样本:
与所有gt_box的IoU都大于0.7的anchor,标记为正样本(positive anchor)
与所有gt_box的IoU都*小于0.3
的anchor,标记为正样本(positive anchor)
(3)gt_box并未明确的分配给具体的金字塔层级,gt_box与anchor box关联,anchor box分配到了具体的金字塔层级。

1.5.2 Feature Pyramid Networks for Faster R-CNN

由于FPN输出是由多张不同尺寸特征图构成的特征金字塔,且每个ROI的尺寸都不同,所以需要为每个ROI从特征金字塔中匹配最佳的特征图。FPN会产生[P1,P2,P3,P4,P5,P6],其中,[P1,P2,P3,P4,P5]将用于后续的分类、检测,需要从中选出一张。文中给出公式1.1。
(公式1.1)
表示w=h=224时,P所选的层级(下标),即选择P4,224为ImageNet预训练的image大小;大尺度的RoI从低分辨率的feature map上切,有利于检测大目标,小尺度RoI要从高分辨率的feature map上切,有利于检测小目标。
原始的Faster R-CNN的结构如图1.9所示。嵌入FPN的Faster R-CNN的结构如图1.10所示。
FPN: Feature Pyramid Networks for Object Detection - 图9
图1.9 Faster R-CNN结构
FPN: Feature Pyramid Networks for Object Detection - 图10
图1.10 Faster R-CNN与FPN结合后的结构

1.6 FPN 思维导图

以思维导图的方式,将FPN各个知识点串联起,有利于构建FPN的知识树。如图1.11所示。
FPN: Feature Pyramid Networks for Object Detection - 图11
图1.11 FPN思维导图

1.7 未理解的点

(1)从特征金字塔中选取合适的特征图送入RPN,具体的选择方法需要分析源代码。

1.8 参考文献

[1] Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[J]. In IEEE Conference on Computer Vision and Pattern Recognition, pages 936–944,2017.