目录
个人笔记
一、 FPN
Feature Pyramid Networks:解决物体检测算法在处理多尺度变化问题时的不足
Faster RCNN中RPN网络是基于单个高层特征。这是对小物体不友好。
FPN本身不是检测算法,只是一个特征提取器。它需要和其他检测算法结合才能使用
1. 网络结构
结构图如下:
FPN包含两个部分:
自底向上的过程(左半部分):自底向上的过程和普通的CNN没有区别。现代的CNN网络划分为不同的stage,每个stage之间特征图的尺度比例相差为2。在FPN中,每个stage对应了一个特征金字塔的级别(level),并且每个stage的最后一层特征被选为对应FPN中相应级别的特征。以ResNet为例,选取conv2、conv3、conv4、conv5层的最后一个残差block层特征作为FPN的特征,记为{C2、C3、C4、C5}。这几个特征层相对于原图的步长分别为4、8、16、32。
自顶向下过程(右半部分)以及侧向连接:
自顶向下的过程通过上采样(up-sampling)的方式将顶层的小特征图放大到上一个stage的特征图一样的大小。上采样的方法可以用最近邻差值实现。
侧向连接将上一层经过上采样后和当前层分辨率一致的特征,通过相加的方法进行融合。(这里为了修正通道数量,将当前层先经过1x1卷积操作)
2. 流程示例
以下图为例:
- C5层先经过1x1卷积,得到M5特征。
- M5通过上采样,再加上C4经过1x1卷积后的特征,得到M4。
- 这个过程再做两次,分别得到M3和M2。
- M层特征再经过3x3卷积,得到最终的P2、P3、P4、P5层特征。M层的通道数都一样
二、 FPN应用于RPN
原始:Faster RCNN中的RPN是通过最后一层的特征来做的。对于特征层上的每一个点,作者用anchor的方式预设了9个框。这些框本身包含不同的尺度和不同的长款比例。
改进:
- FPN针对RPN的改进是应用到每一个P层。由于每个P层相对于原始图片具有不同的尺度信息,让每个P层只处理单一的尺度信息。
- 对{32^2、64^2、128^2、256^2、512^2}这五种尺度的anchor分别对应到{P2、P3、P4、P5、P6}这五个特征层上。每个特征层都处理1:1、1:2、2:1三种长宽比例的候选框。
注意P2-----P6面积是从小到大!!!P2主要是针对小目标,小面积;P6针对大目标,大面积
- P6是专门为了RPN网络而设计的,用来处理512大小的候选框。它由P5经过下采样得到。
如图所示:
P2--P6 5个网络头部(P2--P6)的参数共享。