文章目录
【Mask RCNN】论文学习笔记
本文记录的是本人学习何凯明大神的2017 ICCV Best Paper 【Mask R-CNN】的笔记。
1 Mask RCNN Architecture
简而言之,Mask R-CNN就是在Faster R-CNN的基础上,增加了一个mask prediction的branch。
总结
Backbone: 1.卷积层:Resnet+FPN(Feature Pyramid Network)2. RPN层 3. ROIAlign层
Network Head: 4.类别边框预测层 5. mask预测层
2 RPN网络(Region Proposal Network)
RPN网络主要输出项:
- ROI:对应在特征层每个特征点产生4k个变量,其中4表示[dy, dx, dh, dw]四个边框平移缩放量。其中k表示4个边框,k=4。
- scores:对应在特征层每个特征点产生2k个变量,其中2表示前景和北京概率。其中k表示3个边框,k=3。
3 ROI Align
FCN中使用的ROI Level校准:
k
=
[
k
0
+
log
2
(
w
h
224
)
]
k=[k_0+\log_2{(\frac{\sqrt{wh}}{224})}]
k=[k0+log2(224wh)]
Mask-RCNN中使用的ROI Level校准:
k
=
[
k
0
+
log
2
(
w
h
224
/
i
m
a
g
e
a
r
e
a
)
]
k=[k_0+\log_2{(\frac{\sqrt{wh}}{224/\sqrt{image\; area}})}]
k=[k0+log2(224/imageareawh)]
解释:
- 由于Mask R-CNN训练数据的box和anchor都做了调整,所以ROI Level的计算部分也需要 224 / i m a g e a r e a 224/\sqrt{image\; area} 224/imagearea。其中,224应为输入图像尺寸的一半。
- 计算得到的k即为ROI对应的level,level一共4个:
- l e v e l = 2 level=2 level=2表示映射回特征 P 2 P_2 P2,大小为原输入图像的 1 / 4 1/4 1/4。
- l e v e l = 3 level=3 level=3表示映射回特征 P 3 P_3 P3,大小为原输入图像的 1 / 8 1/8 1/8。
- l e v e l = 4 level=4 level=4表示映射回特征 P 4 P_4 P4,大小为原输入图像的 1 / 16 1/16 1/16。
- l e v e l = 5 level=5 level=5表示映射回特征 P 5 P_5 P5,大小为原输入图像的 1 / 32 1/32 1/32。
虚线网格表示特征图,实线表示RoI(在本例中为2×2个bin),点表示每个容器中的4个采样点。RoIAlign通过双线性插值从特征图上附近的网格点(最近的4个)计算每个采样点的值。在ROI、4个bin或采样点中涉及的任何坐标上都不进行量化。
4 Class/Bounding Box预测和Mask预测
5 Loss Function的计算
参考
薛定谔的AI 《mask-rcnn》解读、训练、复现
arxiv: Mask R-CNN
PaperWithCode: Mask R-CNN