论文链接:https://arxiv.org/abs/1612.03144
FPN 创新点
- 低层特征信息与高层语义信息的特征融合
- 有利于小目标的检测
写在前面的话
FPN的全称是Feature Pyramid Networks[特征金字塔网络], 图像金子塔是什么?图像金字塔其实在很早便被提出,像比如SIFT,SURF,HOG等传统的特征提取方法均使用了图像金字塔,想了解传统特征提取方法的参考博文http://wanglichun.tech/algorithm/Sift.html,但是在深度学习中,一直没有被使用,其实主要原因在于深度学习中图像的计算量较大,采用金字塔,多一个scale就相当于多了一倍的计算量,这个时候内存很有可能扛不住了,可是为了达到多尺度的检测该怎么办呢?
那既然图像金字塔行不通,那我们是否可以在特征图上想想办法呢?毕竟特征图的感受野不一样~~~~
看下面这张图,图(a)代表的是图像特征金子塔(注意,背景是有图片的),图(b)是在一个特征图上进行预测,典型代表就是Faster R-CNN,图©是同时在多个特征图上进行预测,但是特征图间没有特征融合,代表作品就是SSD,图(d)就是本文的主角了。不仅仅在每个特征图进行预测,而且存在一条自顶到下的特征融合,将高层的语义信息与低层的高分辨率进行融合,提高特征的表达能力,更好的实现物体检测。
下面来详细介绍一下 Feature Pyramid Networks
先放一张图,其实FPN主要就包含两部分,一个是bottom-up pathway,另一个是top-down pathway
Bottom-up pathway
Bottom-Up pathway代表的是网络的前向传播过程,这个与正常的网络没有差别,论文中作者展示的是resnet网络,对于每一个stage(就是resnet中,特征图大小相同的一组层),作者定义了一个pyramid level(这里注意这个level在后面会频繁的使用,就是代表每个stage提取的不同大小的特征),并且使用每个stage的最后一层输出特征图作为predict的feature map,特别对于resnet,使用每一个residual block的output作为输出,这里用符号表示对应的卷积输出就是**{C2,C3,C4,C5}**对应stride就是{4,8,16,32}(注,这里没有使用conv1,作者说是由于它较大的内存消耗