2017 CVPR
Mask R-CNN
Mask RCNN, PyTorch
Instance Segmentation
Mask R-CNN
Introduction
Mask RCNN = Faster RCNN + ResNet-FPN + Mask
Motivation
-
强化的基础网络
通过 ResNeXt-101+FPN 用作特征提取网络,达到 state-of-the-art 的效果。 -
ROI Pooling → ROI Align
解决特征图与原始图像上的RoI不对准问题- ROI Pooling 是一种针对每一个RoI的提取一个小尺度特征图(e.g. 7x7)的标准操作
- ROI Align 使用双线性插值(bilinear interpolation)在每个RoI块中4个采样位置上计算输入特征的精确值,并将结果聚合(使用max或者average)。
-
分割、分类、定位同时进行
检测和分割是并行出结果的,而不像以前是分割完了之后再做分类- FCNs是对每个像素进行多类别分类,它同时进行分类和分割
- Mask RCNN 对每个类别独立地预测一个二值掩模,没有引入类间竞争,每个二值掩模的类别依靠网络RoI分类分支给出的分类预测结果
-
Loss Function
- mask loss
由原来的 FCIS 的 基于单像素softmax的多项式交叉熵变为了基于单像素sigmod二值交叉熵。
softmax会产生 FCIS 的 ROI inside map 与 ROI outside map的竞争。但文章作者确实写到了类间的竞争, 二值交叉熵会使得每一类的 mask 不相互竞争,而不是和其他类别的 mask 比较 。
- mask loss
Network
faster rcnn
Mask rcnn
“head” 作用是将RoI Align的输出维度扩大,这样在预测Mask时会更加精确。
在Mask Branch的训练环节,作者没有采用FCN式的SoftmaxLoss,反而是输出了K个Mask预测图(为每一个类都输出一张),并采用average binary cross-entropy loss训练,
-
two-state
extract feature 、RPN
对RPN找到的