FPN

网络概述

FPN(Feature Pyramid Networks for Object Detection)发表与CVPR 2016,使用FPN网络搭建的Faster R-CNN能够在cocoAP上提升2.3个点、PascalAP上提升3.8个点。

image-20220823111343161

图a)是传统图像处理中的图像金字塔结构,该方法针对不同的尺寸的目标,将原图像缩放成不同尺寸后生成相应的特征图进行预测,该方法要对同一图像的不同尺寸进行多次计算,因此比较耗时。

图b) 是Faster R-CNN采用的特征提取方式,通过Backbone 进行特征提取后,在最终的特征图上进行预测。该方法对小目标的预测效果较差。

图c)是在Backbone特征提取时不同层的不同大小的特征图上进行预测,从而改善对小目标不敏感的缺陷。

图d)FPN网络将Backbone不同特征图进行特征融合,相比于c)方式,它减少了不同尺寸特征图的特征损失。

网络结构

image-20220823113132235

对于Backbone上的每一个特征图,都使用一个1x1的卷积层将其通道数统一调整到256;同时,最顶层的特征图采用邻近插值算法进行2倍上采样后与Backbone中的同一层特征图进行相加后进行预测。

image-20220823113846550

论文作者发现,在不同的预测特征层上分别使用不同的RPN和Fast R-CNN与在不同特征图上使用同一RPN和Fast R-CNN进行预测,得到的效果基本相同。因此,针对不同的预测特征层,使用同一RPN和Fast R-CNN进行权重共享可以减少模型的参数和计算量。

proposal映射计算

论文采用如下公式针对不同尺寸的proposal进行映射。公式中k0默认等于4。w、h为proposal的宽和高。

我们假设proposal的大小为112 x 112,那么根据公式可以计算得出k的值为3,因此该尺寸的proposal将在上图的P3中进行进一步的预测。

image-20220823120349123

Pytorch提供了LevelMapper类用来处理proposal映射。

笔记根据B站UP主霹雳吧啦Wz视频合集【深度学习-目标检测篇】学习整理