Bootstrap

FPN(Feature Pyramid Networks)网络--特征图金字塔网络,适合小目标检测网络。


前言

特征图金字塔网络(Feature Pyramid Networks,FPN),是一种在2017年提出的网络结构,主要解决的是物体检测中的多尺度问题。FPN通过简单的网络连接改变,实现了在不显著增加原有模型计算量的前提下,显著提升了小物体检测的性能。
FPN的设计理念是利用不同层的特征图进行预测,这些特征图具有不同的尺度和语义信息。低层特征图语义信息较少,但目标位置准确;高层特征图语义信息丰富,但目标位置较粗略。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而FPN不一样的地方在于预测是在不同特征层独立进行的
FPN通过自底向上和自顶向下的路径以及横向连接,实现了多尺度特征的融合和独立预测,从而提高了目标检测的准确性,尤其是对小物体的检测。


一、引入:各种网络结构对比

1、通常的CNN网络结构

通常的CNN网络结构是自底向上卷积,逐步获得不同尺度和不同深度的特征图,然后使用最后一层特征图进行预测,像SPP-Net,Fast R-CNN,Faster R-CNN就是采用这种方式,即仅采用网络最后一层的特征。

以VGG16为例子,假如feat_stride=16,表示若原图大小是1000600,经过网络后最深一层的特征图大小是6040,可理解为特征图上一像素点映射原图中一个1616的区域;那原图中有一个小于1616大小的小物体,是不是就会被忽略掉,检测不到了呢?

所以常规CNN的网络的缺点就是会造成检测小物体的性能急剧下降。
在这里插入图片描述

图1

2、图片金字塔生成特征金字塔

鉴于上面的单层检测会丢失细节特征;就会想到利用图像的各个尺度特征图进行训练和测试,比如下图所展示,将图像做成不同的scale,然后不同scale的图像生成对应的不同scale的特征。
在这里插入图片描述

图2

将图片缩放成多个比例,每个比例单独提取特征图进行预测,这样,可以得到比较理想的结果,但是比较耗时,不太适合运用到实际当中。有些算法仅会在测试时候采用图像金字塔。

3、多尺度特征融合的方式

像SSD(Single Shot Detector)就是采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。但是FPN的作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测

;