FPN(Feature Pyramid Networks for object detection)总结

论文题目:Feature Pyramid Networks for Object Detection
论文地址:传送门

Introduction

在传统的手工提取特征里,金字塔模型用于提取层次化的特征,然而在深度学习里基本上抛弃了这种方式,而FPN(Feature Pyramid Networks)则将金字塔模型融入到深度神经网络当中,从而 在目标检测时取得了显著的提升。

作者展示了四种常见的金字塔模型。(a)即对于不同尺度的影像计算特征,比较慢。(b)即Fast R-CNN等采用的方式,仅利用最后一层特征。©即抽取不同层的特征,如SSD。(d)即本文的FPN所采用的方式。

Feature Pyramid Network

FPN

作者指出其目标为使用卷积网络从低到高的特征层构建特征金字塔模型。模型包含一个从低到顶(bottom-up)和从顶到低(top-down)的路径和一个侧边连接(lateral connection) 。

从底到顶即卷积网络一层层的提取特征,特征图逐渐变小,分辨率逐渐降低,语义信息逐渐变清晰;对于产生相同大小特征图的卷积层,作者将其称为同一阶段(stage);FPN将为每一个阶段(stage)定义一个Pyramid level,通常情况下,每一个level都将从stage的最后一层取出,因为最后一层具有最丰富的信息。
如对于$Resnet$,FPN将取其conv2、conv3、conv4、conv5定义为${C_2,C_3,C_4,C_5}$。

从顶到底和侧边连接:即如上图所示将顶层的特征upsampling后与底层的特征相连接,不断重复一直到最底层,从而构建新的特征金字塔。

如下图以Resnet为例,为了将FPN融入到Resnet当中,首先从${C_2,C_3,C_4,C_5}$中抽取特征,然后对$C_5$进行$3 \times 3$卷积后输出$P_5$;接着将$C_5$二倍upsampling,然后与$C_4$连接,再进行$3 \times 3$卷积得到$P_4$;以此类推得到$P_3,P_2$。

FPN示意图

Applications

首先作者将其应用到RPN(Region Proposal Network)上。

RPN结构示意
对于这样一个RPN来说,在Faster R-CNN中是直接在VGG的conv4或conv5的后面接一个$1 \times 1$的卷积层,得到256维的输出,然后进行localization和classification。
但加入FPN时,作者将VGG中得到的${P_2,P_3,P_4,P_5}$与RPN相连。具体作法为:原本RPN直接输出9个anchor box坐标,但作者将其不同尺寸的anchor box分到不同的FPN层去处理。作者将anchor的大小定义为${32^2,64^2,128^2,256^2,512^2}$,对应着${P_2,P_3,P_4,P_5,P_6}$,$P_6$是特意为RPN加入的一个层;然后每个层都有三个不同的ratio:${1:2,1:1,2:1}$,即加入FPN的RPN在每个点上都有15个anchor box。
对于Fast R-CNN的部分:TODO

Summary

总结起来,FPN就是将传统的金字塔模型进行了调整,使其融入到卷积网络当中,提取不同层次的特征;同时将FPN融入到目标检测网络当中,并取得了很好的效果。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!