2016 CVPR
特征金字塔网络(FPN)
Feature Pyramid Networks for Object Detection
ResNet 101 举例:[2]
- down-top
就是 每个residual block(C1去掉了,太大太耗内存了),scale缩小2,C2,C3,C4,C5(1/4, 1/8, 1/16, 1/32) - top-down
就是把高层的低分辨强语义的feature 最近邻上采样2x - lateral connection
过 1x1卷积调整channel
具体迭代操作:[2]
- 从C5(512)开始加个1*1卷积 改变 channel 到256个 ,生成分辨率最低但语义最强的feature P5 ,开始迭代
- 然后 P5 上采样放大2倍,C4经过一个1*1的卷积后和上采样后的P5 channel feature 大小都一样了,进行 element-wise 相加
- 以此迭代下去到P2结束
- 每个Pk后加一个3*3的卷积
(原文说reduce the aliasing effect of upsampling)
优点
-
特征金字塔可以在速度和准确率之间进行权衡,可以通过它获得更加鲁棒的语义信息
-
图像中存在不同尺寸的目标,而不同的目标具有不同的特征,利用浅层的特征就可以将简单的目标的区分开来;利用深层的特征可以将复杂的目标区分开来
利用FPN构建Faster R-CNN检测器步骤[1]
- 首先, 对 图片进行预处理操作;
- 然后,将处理过的图片送入预训练的特征网络中(如ResNet、vgg等),即构建所谓的 down-top网络;
- 接着,如图所示,构建对应的top-down网络(即对层4进行上采样操作,先用1x1的卷积对层2进行降维处理,然后将两者相加(对应元素相加),最后进行3x3的卷积操作
- 接着,在图中的4、5、6层上面分别进行RPN操作,即一个3x3的卷积后面分两路,分别连接一个1x1的卷积用来进行分类和回归操作;
- 接着,将上一步获得的候选ROI分别输入到4、5、6层上面分别进行ROI Pool操作(固定为7x7的特征);
- 最后,在上一步的基础上面连接两个1024层的全连接网络层,然后分两个支路,连接对应的分类层和回归层;
Faster R-CNN+Resnet-101的结构[3]
- Faster-RCNN利用conv1到conv4-x的91层为共享卷积层
- 然后从conv4-x的输出开始分叉,一路经过RPN网络