论文笔记:Feature Pyramid Networks for Object Detection(FPN)
一、基本信息
标题:Feature Pyramid Networks for Object Detection
时间:2017
引用格式:Lin, Tsung-Yi, et al. “Feature pyramid networks for object detection.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
二、研究背景
为了检测小物体,最常用的做法是构建金字塔,比如SIFT算子需要的用高斯金字塔来实现尺度不变性,而在物体检测方面,就是对图片构建金字塔,然后每层输入到网络中。在深度网络这样做就存在内存和CPU计算开销过大问题。所以本文提出基于卷积层连接的FPN。
三、创新点
橙色框代表图片,一般由resize/下采样操作产生;蓝色框代表特征图,通过卷积产生,越粗的框代表语义越深。
( a ) 多维度图片输入,多维度特征图预测:图像金字塔,不同尺寸的图输入到网络,底层分辨率高,可以检测细节,高层分辨率低,可以检测轮廓
( b ) 单维度图片输入,单维度特征图预测:拿单层(这里是最后一层)的特征图进行预测,Fast/er R-CNN R-CNN,都是这种
( c ) 单维度图片输入,多维度特征图预测:和b相比除了拿最后一层外,还会从后往前多拿几层预测(比如SSD,但是SDD没有一直到前,所以SSD对于小物体检测也不是很准)
( d )单维度图片输入,多维度特征图预测:和c相比可以看到,本层会连接高层的语义,这样做的目的是使每一层不同尺度的特征图都具有较强的语义信息
可不可以用FPN的自顶向下的最下面一层,其高分辨率又具有较强的语义信息?
文献1中就提到用最下面一层,也就是所谓最好的一层。但是本文,它是在以特征金字塔为基础结构上,对每一层级的特征图分别进行预测。效果更好?
FPN
左边就是熟悉的卷积-池化过程,通过卷积池化尺寸变小,维度变高,语义变深这一过程称为自底向上(bottom-up)网络
右边就是FPN的核心思想,是一个从高层语义向底层语义相加的过程,通过最近邻插值,尺寸变大,维度不变,固定通道数了,语义应该也是变浅的过程,但是可以保持高层语义,(换句话说就是FPN可以传递深层语义到高分辨率上),这一过程称为自顶向下(top-down)网络。
既然要相加,就得保持尺寸和维度一样
- 上面提到自顶向下过程中维度不变,怎么保持维度不变?
侧连接那边先经过1 x 1卷积,改变特征图的通道数(文章中设置d=256,与Faster R-CNN中RPN层的维数相同便于分类与回归),所以维度始终是给定的d
- 上面提到自顶向下过程中尺寸变大,怎么保存相加时尺寸一样?
高层到到底层用的是最近邻插值法,而对应的侧连接尺寸对应也变大
最近邻插值法:
自底向上(左)和自顶向下(右)
细节
注意到,侧连接后还进行了 3 * 3 卷积,这么做的目的可以看最近邻带来的影响,周围都一样了,所以,3 * 3 卷积的目的就是减轻最近邻近插值带来的混叠影响。
图片来自FPN详解
看上面图有个P6,目的是?
FPN针对RPN的改进是将网络头部应用到每一个P层。由于每个P层相对于原始图片具有不同的尺度信息,因此作者将原始RPN中的尺度信息分离,让每个P层只处理单一的尺度信息。具体的,对{32、64、128、256、512}这五种尺度的anchor,分别对应到{P2、P3、P4、P5、P6}这五个特征层上。每个特征层都处理1:1、1:2、2:1三种长宽比例的候选框。P6是专门为了RPN网络而设计的,用来处理512大小的候选框。它由P5经过下采样得到。
四、实验结果
五、结论与思考
作者结论
总结
思考
参考
FPN —— 特征金字塔
FPN详解
[1]P. O. Pinheiro, T.-Y. Lin, R. Collobert, and P. Dolla ́r. Learn- ing to refine object segments. In ECCV, 2016.