2019/02/25,转载请注明。
论文地址:Feature Pyramid Networks for Object Detection
简单好用的结构,记录一下。
一、前言
目标检测中,为了提高对多尺度目标的检测召回率,同时兼顾速度,有过不同的尝试,本文就提出了特征图金字塔的方法,叫做FPN。实际上,anchor的不同scale和aspect也有这个目的。
二、简介
(a)人工提取特征的时代,大量使用的特征化图像金字塔。这种做法运算耗时大,现在已经很少被使用。
(b)深度学习做目标检测的早期,像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征,能够表示更高级别的语义,但只使用了高分辨率特征,对小尺寸的目标召回率较差。
(c)为了改善(b)的缺点,出现了一种改进,就是使用多尺度特征信息,这也是SSD算法中使用的方法,使用不同尺度的特征图。但SSD从偏后的conv4_3开始构建特征金字塔,没有使用conv4_3之前的特征,而这些层对于检测小目标很重要。
(d)就是本文提出的FPN,通过多尺度的特征、上采样、融合,更充分的利用了不同尺度的信息,并且是各尺度独立预测。
三、网络
上图中,左侧的提特征网络用的Resnet,右侧FPN中,各尺度和对应上采样的融合是元素的相加。
各尺度独立预测和融合后预测,作者做了一个的比较,实验发现,各尺度独立预测的结果上会好很多。
四、实验结果
其中
(d)是去掉从上到下箭头那部分结构(包括特征),类似ssd的多尺度。
(e)是去掉从左到右箭头。
(f)是多尺度融合到最后下层特征的结构。
顺便提一句,ROI在FPN中,对应的feature map level :
其中,k0是在Faster-rcnn所用网络中(假如Resnet),ROI本该映射到的feature map level,w,h是ROI尺寸,224是网络对应的标准输入(此处假设224)。
目标检测实验,在Faster-rcnn上使用的结果显示,提升还是挺明显的,而且还顺便做了FPN和其他结构的对比。
不仅如此,FPN还可以用来做语义分割分割,如果配合空洞卷积,就更好了,见deeplab结构,它同时还出现在了实例分割的Mask-rcnn中,所以说这个结构真的简单好用。