一、Mask RCNN的优点
1. Mask网络的加入,使Mask-RCNN不仅能处理物体检测问题,还能处理语义分割问题。
2. 对于Faster RCNN的ROI pooling layer两次量化,无法将feature map与原像素精准对齐的问题,Mask RCNN 将ROI pooling替换为ROIAlign。ROIAlign能将像素对齐,满足了图像语义分割的准确度要求。
二、网络模型
-
其中 黑色部分为原来的 Faster-RCNN,红色部分为在 Faster网络上的修改:
- 1)将 Roi Pooling 层替换成了 RoiAlign ;
- 2)添加并列的 FCN 层(mask 层);
- 3)添加特征提取网络改为了ResNet101+FPN,以强化提取特征的能力 .
三、技术要点
1、ROIAlign
采用 ROIAlign 替代 RoiPooling(改进池化操作)。引入了一个插值过程,先通过双线性插值到14*14,再 pooling到7*7,很大程度上解决了仅通过 Pooling 直接采样带来的 Misalignment 问题。
PS: 虽然 Misalignment 在分类问题上影响并不大,但在 Pixel 级别的 Mask 上会存在较大误差。
2、Loss Function
每个 ROIAlign 对应 K * m^2 维度的输出。K 对应类别个数,即输出 K 个mask,m对应池化分辨率(7*7)。Loss 函数定义:
Lmask(Cls_k) = Sigmoid (Cls_k)
, 平均二值交叉熵 (average binary cross-entropy)Loss,通过逐像素的 Sigmoid 计算得到。
Why K个mask?通过对每个 Class 对应一个 Mask 可以有效避免类间竞争(其他 Class 不贡献 Loss )。