学习笔记-FPN(Feature Pyramid Networks)
FPN
bottom-up path
-
backbone:bottom-up path就是backbone的feedforward
-
stage:
定义:将backbone分为多个stage,将每个stage定义为1个pyramid level
输出:每个stage中,所有layer输出特征图的size是相同的,取最后一层的输出作为该stage的输出,因为每个stage中最深的层应该具有最强特征
下采样:相邻stage之间的下采样比例为2
-
FPN for ResNet:本文将ResNet最后4个stage{C2,C3,C4,C5}(相对于输入的下采样比例分别为4、8、16、32)的输出定义为4个pyramid level,并不将第1个stage的输出包含到FPN中,因为其内存占用量比较大。
top-down path
- motivation:high-level semantic information有助于识别目标但有害于定位目标,low-level spatial information有害于识别目标但有助于定位目标(由于下采样次数较少,所以可以更准确地定位)
- 构建:通过skip connection来构建top-down path
- 注:在开始top-down path之前,会在bottom-up path顶层使用1×1卷积生成the coarsest resolution map
skip connection
- 将来自top-down path的coarser-resolution feature map上采样。上采样比例为2,简单起见就使用nearest neighbor upsampling
- 使用1×1卷积减少来自bottom-up path的对应feature map的通道数
- 对上两步得到的2个feature map(size和channel数量相同)进行element-wise addition
输出
top-down path得到的输出{P2,P3,P4,P5}就是FPN的输出,其和bottom-up path中的{C2,C3,C4,C5}相对应,其中Ci和Pi的spatial size相同。
此文章作为本人学习笔记,内容可能不够详细。