整体架构
本次实现的Mask RCNN主要分为以下几个部分:
backbone
RPN
backbone
首先原文提出了四种backbone:
- resnet50
- resnet50 + FPN
- resnet101
- resnet101 + FPN
本次基于resnet101 + FPN实现
resnet101[1]
就是基础的resnet模型, 可借用torchvision实现
特征金字塔(FPN)[2]
FPN, 又称特征金字塔, 初始的FPN使用来进行目标检测的, 但由于其性能, 现大多用来做特征提取.
基础的FPN先对高层特征图上采样(2倍的最邻近插值), 再对低层特征图升维(1 * 1 卷积), 最后对维度, 高度, 宽度一致的两个特征图进行元素对应相加, 得到融合特征图.
Mask RCNN内的FPN上采样部分不变, 在升维部分, 这里的处理是把所有特征图维度处理至256.
在得到第一次P5, P4, P3, P2后, 对每一个特征图作3 * 3 卷积, 输出仍为256.
如图示, P6, P5, P4, P3, P2会送至RPN层.
RPN
- 1.He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778. ↩
- 2.Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2117-2125. ↩
- 3.Mask-RCNN 算法及其实现详解 ↩