> For the complete documentation index, see [llms.txt](https://hujian.gitbook.io/deep-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hujian.gitbook.io/deep-learning/juan-ji-wang-luo/yu-yi-fen-ge/mask-r-cnn.md).

# Mask R-CNN

> [Mask R-CNN](https://arxiv.org/pdf/1703.06870.pdf)

我们为对象实例分割提供了概念上简单，灵活和通用的框架。 我们能够有效地检测图像中的对象，同时为每个实例生成高质量的分割掩码。该方法称为Mask R-CNN，通过添加一个分支来扩展FasterR-CNN，该分支用于预测与现有分支并行的对象掩码以进行边界框识别。Mask R-CNN很容易训练，只增加了一个小头来加速R-CNN，运行速度为5 fps。此外，Mask R-CNN很容易推广到其他任务，例如，让我们在同一框架中估计人体姿势。我们在COCO挑战套件的所有三个轨道中显示最佳结果，包括实例分割，边界框 对象检测和人员关键点检测。没有花哨的装饰，Mask R-CNN在每项任务中都优于所有现有的单一模型参赛作品，包括2016年CSO挑战赛冠军。我们希望我们简单有效的方法将成为一个坚实的基线，并有助于未来在实例级认可方面的研究。<https://github.com/facebookresearch/Detectron>

## 方法

Mask R-CNN在概念上很简单：每个候选对象都由Faster R-CNN输出，类标签和box偏移; 为此我们添加了第三个分支，它输出对象掩码。因此，面具R-CNN是一种自然且不合时宜的想法。 但是额外的掩码输出与类和框输出不同，需要提取对象的更多空间空间布局。接下来，我们介绍Mask R-CNN的关键元素，包括像素到像素的对齐，这是Fast/Faster R-CNN的主要缺失部分。

### Mask R-CNN

掩模R-CNN采用相同的两阶段程序，具有相同的第一阶段（即RPN）。在第二阶段，并行预测类和box offset，Mask R-CNN还为每个RoI输出二进制掩码。这与最近的系统形成对比，在最近的系统中，类别筛选依赖于掩码预测。正式地，在训练期间，我们定义了一个多任务损失，对于一个采样RoI为： $$L=L\_{c l s}+L\_{b o x}+L\_{m a s k}$$ 。

### Mask Representation

掩码编码输入对象的空间布局。 因此，与类别标签或盒子偏移不同，它们不可避免地被折叠成短连接矢量的连接（FC）层，提取掩模的空间结构可以通过卷积提供的像素到像素对应自然地解决。具体来说，我们使用FCN预测每个RoI的掩码。

### RoIAlign

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LbMW4NvHDDM1q4e9A8h%2F-LbMc3xO-VI1EJdU0_Lj%2Fimage.png?alt=media\&token=e2fc2f2b-5306-4770-b27e-905452f1687b)

RoIPool 是用于从每个RoI提取小特征映射（例如，7×7）的标准操作。在RoI中，在连续坐标上通过计算 $$\[x / 7]$$ ，其中 $$\[\cdot]$$ 是取整，显然这会引入错位。虽然这可能不会影响分类，而分类对小的平移是稳健的，但它对预测像素精确的掩模有很大的负面影响。为了解决这个问题，我们提出了一个ROIAlign来重新移动RoIPool的粗略量化，将提取的特征与输入正确对齐。我们使用双线性插值\[22]来计算每个ROI箱中四个定期采样位置的输入特征的精确值，并汇总结果（使用最大值或平均值）。

### Network Architecture

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LbMW4NvHDDM1q4e9A8h%2F-LbMdeiEW0Iui0QejQ9v%2Fimage.png?alt=media\&token=275c1d19-80a8-4b44-a175-b1ae5afc0932)

## 测试

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LbMW4NvHDDM1q4e9A8h%2F-LbMdum0jQPyDn2fh4Gd%2Fimage.png?alt=media\&token=ecc60b5e-6943-4aaa-96ab-fb6fa17a8e60)
