Mask R-CNN

创新点:

1、multi-task 同时完成classification、bounding box regression and instance segmentation
2、speed and accuracy 都有提升
3、增加了ROIAlign层,改善了从mask图到原图映射不准的问题

概述:

作者提出了一个小巧、灵活的网络结构用于实例物体分割(object instance segmentation)该方法是在faster rcnn的基础上增加一个FCN用于并行预测物体掩模,该方法在COCO数据集的instance segmentation、bounding box object detection and person keypoint detection。

结构及实现:

Mask R-CNN
1、Faster RCNN结构用来进行分类和bbox回归
2、增加一个全卷积网络的部分,FCN用来对提取的ROI进行掩模预测,全卷积部分通过ROIAlign层与Faster RCNN相连。

分类和bbox回归的部分与Faster RCNN 相同,定义损失函数L=Lcls+Lbox+Lmask 分类和回归的损失函数与Faster RCNN相同, Lmask定义为平均二进制交叉熵损失,对于类别K,该损失只与类别K的mask有关,对mask每个像素进行sigmoid运算, Lmask 的定义使得我们只需考虑每个类别的mask,不用考虑不同类别之间的竞争,文中依赖精确的分类确定类别选择输出mask,没有类间竞争。
ROIAlign解决特征图与原图ROI不对准问题:
常用的操作ROIPool是对每个ROI上的小的特征图(eg,7*7)进行操作,将浮点数量化为离散值,然后将ROI分成几个空间小块,最后将这些小块进行合并。量化是将连续的坐标通过四舍五入转为离散值,但是量化的操作会使得特征图与ROI不对准。
ROIAlign避免对ROI边界或者块进行量化,直接用得到的连续值来表示,在ROI bin的4个采样位置上使用插值的方法计算输入特征的精确值,将结果进行合并(max or average)