FPN: Feature Pyramid Networks for Object Detection
常见的检测网络结构
- (a) 中使用图像金字塔构建特征金字塔, 在每一个图像尺度下单独提取特征, 耗时
- (b) 使用单尺度特征图用来快速的目标检测
- (c) 使用单方向多个尺度的特征图进行检测
- (d) FPN 网络, 它通过自上而下的路径和横向连接将低分辨率–具有强的语义特征与高分辨率–弱语义特征结合在一起, 因此该结构在每一个尺度上都具有丰富的语义信息
- (e) 此为典型的 U-net 等类型的网络结构, 只在最后一步进行预测
FPN
Bottom-up pathway
自底向上的路径为CONVnet的前向传播计算过程. 前向传播的每一个阶段定义一个金字塔等级. 每个阶段最后一层的输出将用作特征图的参考,以通过横向连接来丰富自顶向下的路径.
Top-down pathway and lateral connections
- 对具有更强语义特征的高层金字塔特征使用最近邻法进行2倍上采样
- 每个横向连接将自底向上的路径和自顶向下的路径合并成相同空间大小的特征图, 使用 1 X 1 卷积对bottom-up 特征进行降维, bottom-up 与 top-down 的特征使用逐像素加进行融合
- 在每个合并的特征图使用 3×3 卷积以生成最终的特征图, 为了减少上采样的混叠效果
- 每个特征尺度共享分类、回归器, 因此输出的通道数一样
FPN for RPN
- 使用 FPN 替换 RPN 中的单尺度特征图.
- FPN 已经具有多尺度, 故在某一个具体的金字塔尺度下不再使用多尺度的 anchor box. 在每个金字塔尺度使用一个scale 的anchor, 同时, 每个尺度下使用多个长宽比. 例: 在使用resnet 下, 每一个尺度下 anchor 大小分别为为 {$32^2,64^2,128^2,256^2,512^2$}, 长宽比为 {1:2, 1:1, 2:1}
- anchor 正负标签方式与 faster RCNN 一样.
- 各个尺度下的分类、回归器共享参数
FPN for fast rcnn Detection
对于目标检测, 由于 FPN 需要在多个尺度下进行检测, 因此需要将各个不同大小的 ROI 区域分配到不同的尺度下.
例: ROI 宽 $h$, 高 $h$. 将其分配到第 $k$ 级金字塔负责检测
$$k=⌊k_0+ log _2 (\sqrt {wh} / 224) ⌋$$
224 是ImageNet预训练图像大小, $k _0$ 是应该将RoI大小为 224 X224 映射到的目标级别. 上式意味着对于更小的 ROI, 应该分配到更精细的特征图上.
所有尺度下的所有 ROI 共用一套分类器与回归器. 使用ROI pooling 到 7 * 7.