[论文翻译]Mask R-CNN




Mask R-CNN

author

Kaiming He  Georgia Gkioxari  Piotr Doll´ar  Ross Girshick

Facebook 人工智能研究院 (FAIR)

摘要

   我们提出概念上简单、灵活和通用的对象实例分割框架。我们的方法能够有效检测图像中的对象,同时生成每个实例的高质量分割掩膜。通过添加与现有的边界框识别分支平行的预测对象掩膜分支,这种被称作 Mask R-CNN 的方法拓展了 Faster R-CNN 的方法。Mask R-CNN 易于训练,且仅稍微增加了 Faster R-CNN 的分支,运行帧率为 5 fps。此外,Mask R-CNN 还易于推广到其他任务中,例如,它能够使我们在同一个框架中预测人类的姿势。我们展示了 COCO 系列挑战的所有三个方向,包括实例分割、边界框对象检测以及人体关键点检测的最佳匹配结果。说实话,Mask R-CNN 达成每项任务的效果确实胜过所有现有的单模型参赛作品,包括 COCO 2016 挑战获胜者的作品。我们希望,该简单有效的方法能够作为可靠的 baseline,促进未来实例级识别研究的发展。相关代码即将公开。

1. Introduction 导论

视觉领域在短时间内快速发展,目标检测和语义分割都有了它们强大的 baseline 系统,如 Faster R-CNN 和 FCN。它们的概念非常符合直觉,同时具备灵活性和鲁棒性,训练和推理时长较短。我们的目标是在实例分割领域提出一个可与之比肩的框架。

实例分割极具挑战性,因为它要求检测出图中所有物体的同时,需要精确地分割每个个体,从而融合了 CV 中两个经典任务,目标检测和语义分割的元素。目标检测的目的在于对单个对象进行分类并利用边界框定位每个对象,而语义分割的目的在于在不区分对象实例的条件下将每个像素归类到固定的类别集。有鉴于此,人们可能会认为要达到较好的效果需要复杂的方法。然而,本文表明,相当简单、灵活且快速的系统达到的效果可以胜过之前最先进的实例分割成果。

我们的方法称为 Mask R-CNN,在 Faster R-CNN 的基础上为每个 Region of Interest RoI 增加了一个预测分割 mask 的分支,与原有的分类和回归分支并行(图 1)。mask 分支是应用于每个 RoI 的一个小 FCN,为每个像素预测分割 mask。有了 Faster R-CNN,Mask R-CNN 很容易实现并训练,而且 Mask 分支只有很小的计算消耗。

图 1
图 1.用于实例分割的 Mask R-CNN 框架

大体上,Mask R-CNN 是 Faster R-CNN(后文以 FRCN 代替)直觉式的扩展,但构造好的 mask 分支对结果很关键。而且 FRCN 并没有为输入输出设计像素级的对齐。这个问题在 RoIPool 最明显,它为了提取特征进行了粗糙的空间量化(注:把各种形状的 RoI box 投影到 feature 上,并调整到固定尺寸)。为了解决对不齐的问题,我们提出了一个简单的、无量化的层,称为 RoIAlign,能够完好地保存提取的空间位置。尽管 RoIAlign 看起来似乎是很小的改变,但它却产生了很大的影响:它把 mask 准确率从 10% 提升到了 50%。而且我们发现 mask 和分类预测的解耦非常有必要:我们为每个类独立的预测一个二元 mask,类间没有竞争,依赖网络的 RoI 分类分支来预测类别。。与此相反,FCN 通常会进行每个像素的多类分类,使分割和分类混合在一起,并且,根据我们的实验,FCN 在实例分割方面的效果很差。

Mask R-CNN 无需任何花哨的东西,就在 COCO 上超越了 SOTA 的实例分割模型。作为副产品,在目标检测上也获得了优异的结果。

  我们的模型可在 GPU 上以 200ms 每帧的速度运行,并且在 8 个 GPU 的单个机器上进行关于 COCO 上的训练仅需耗时一到两天。我们认为,快速的训练、较高的测试速度以及框架的灵活性和准确度将有利于促进未来实例分割的研究。

我们还把模型泛化到人体姿态估计任务。把每个关键点看做一个独热二元 mask。Mask R-CNN 毫不费力地超越了 2016 年 COCO 关键点竞赛的获胜者,同时以 5 fps 的速度运行。因此,从更广泛的意义上来讲,Mask R-CNN 经过一点改变后就能用于检测实例级的姿态。

我们将发布代码以方便将来的研究。

图 2
图 2.Mask R-CNN 在 COCO 测试集中的结果。

R-CNN :基于区域的 CNN(R-CNN)使用的 bounding-box object detection 通过 RoI 管理大量候选对象区域[38, 20]并独立计算[25, 24]。R-CNN 经过拓展后[18, 12]可使用 RoIPool 在特征图上处理 RoI,可达到较快的速度和更高的准确度。通过区域方案网络(RPN)学习注意力机制,Faster R-CNN[34]促进了这种流的发展。Faster R-CNN 的灵活性和鲁棒性足以促进多种后续进展(比如[35, 27, 21])

**Instance Segmentation 实例分割: **受 R-CNN 的启发,很多实例分割的方法都基于 segment proposals。早期方法[13,15,16,9]依靠自底向上的分割[42,2]。DeepMask[33]及其后续[34,8]训练以提出分割候选,然后使用 Fast R-CNN 进行分类。这些分割先行的方法慢而不准确。类似的,[10]提出了一个复杂的多阶段级联,从限位框 proposal 预测分割 proposal,再进行分类。我们的方法是分割与分类并行预测,更简单也更灵活。
近期[26]结合了[8]的分割 proposal 系统和[11]的目标检测系统,得到一个“fully convolutional instance segmentation”(FCIS)。其主要思路是全卷积地预测位置敏感的 channels 输出集。这些 channel 同时处理物体类别、框和 mask,让系统很快。但它对于有重叠的实例仍然处理不好。
另一类解决方案[23,4,3,29]受语义分割的成功所驱动。从每个像素分类结果开始,这些方法尝试把一类的像素分割为不同的实例。与这些先分割的方法不同,Mask R-CNN 是先实例的策略。

3. Mask R-CNN

Mask R-CNN 在概念上很简单:Faster R-CNN 对每个候选对象都有两个输出,一个是类标签,另一个是限位框偏移。为此,我们添加了第三个分支,输出物体 mask。但额外的 mask 输出与类和 box 不同,需要一个物体更精细的空间位置。接下来将介绍关键的组件,包括逐像素对齐,这也是 Faster R-CNN 所缺少的。

**Faster R-CNN: **Faster R-CNN 包含两个阶段,第一阶段称为 RPN,提出候选限位框。第二阶段的本质就是 Fast R-CNN,从每个候选框使用 RoIPooling 提取特征,并进行分类和回归。两个阶段共用特征以提升速度。我们推荐[21],最新的一篇把 Fast R-CNN 与其余框架进行综合比较的文献。

Mask R-CNN: Mask R-CNN 也是两步结构,第一步也与 Faster R-CNN 一样。在第二阶段增加了一个与分类和回归并行的分支,为每个 RoI 输出二元 mask。与现有的分类依赖 mask 的方法相反。

训练中我们为每个 RoI 定义了一个多任务 loss,L=L_{cls} + L_{box}+L_{mask},前两个 loss 与 FRCN 一致。mask 分支为每个 RoI 输出一个Km^2的结果,以m \times m的分辨率编码了 K 个二元 mask,每个对应一个类别。我们使用了一个 sigmoid 计算,并将L_{mask}定义为平均 binary CE loss。对于与 gt 类 k 关联的 RoI,L_{mask}仅在第 k 个 mask 定义。

这样的定义运行网络为每个类生产 mask,而没有类间的竞争。我们依赖专业的分类分支来预测类标签,对输出的 mask 加以选择。这与常见的使用 FCN 进行语义分割不同,它们通常会为每个像素进行 softmax 及多项式 CE loss,mask 类间会进行竞争。我们会通过实验证明我们的方式是好的实例分割的关键。

**Mask Representation: **使用了 FCN 而不是 fc 输出 mask。这也需要我们的 RoI 特征,它们本身就是小的特征图,得到很好的对齐。

**ROIAlign: **RoIPooling 是从每个 RoI 提取一个小的特征图(如 $7\times7)的标准操作。它首先把一个浮点数的RoI量化(quantize)为特征图的离散间隔(granularity),量化后的RoI再细分到空间bins中,这些bin本身也是量化,最终再聚合每个bin覆盖的特征值(通常为max pooling)。量化在一个连续坐标上计算,如从x计算[x/16]来得到,其中16是特征图stride,而[]$ 是取整操作。类似的,在分割到 bin 时,又进行了量化操作。这些操作为 RoI 与提取得到的特征间引入了不对齐。这也许不会影响对小的变化健壮的分类,但对预测每个像素精确的 mask 有很大不利。

为了解决这一问题,我们提出了 ROIAlign 层,移除了 ROIPool 里的粗糙量化。改变很简单,我们避免了任何对 RoI 边界或 bin 的量化操作(如使用x/16替代[x/16])。我们使用 bilinear interpolation[22]来在每个 bin 里 4 个有规律的采样位置计算以提取输入的特征,并聚合结果(max 或 average),细节见图 3。

图 3

3.1IMPLEMENTATION DETAILS

我们根据 Fast/Faster R-CNN 对超参数做如下设定[ 92821 ]。虽然这些都是在物体检测的原始论文就提到[ 92821 ],但是它们在实例分割中也起到了强大的作用。

image.png

Figure 4: More results of Mask R-CNN on COCO test images, using ResNet-101-FPN and running at 5 fps, with 35.7 mask AP (Table 1).

backbone AP AP50 AP75 APS APM APL
MNC [7] ResNet-101-C4 24.6 44.3 24.8 4.7 25.9
FCIS [20] +OHEM ResNet-101-C5-dilated 29.2 49.5 - 7.1 31.3
FCIS+++ [20] +OHEM ResNet-101-C5-dilated 33.6 54.5 - - -
Mask R-CNN ResNet-101-C4 33.1 54.9 34.8 12.1 35.6
Mask R-CNN ResNet-101-FPN 35.7 58.0 37.8 15.5 38.1
Mask R-CNN ResNeXt-101-FPN 37.1 60.0 39.4 16.9 39.9

Table 1: Instance segmentation mask AP on COCO test-dev. MNC [7] and FCIS [20] are the winners of the COCO 2015 and 2016 segmentation challenges, respectively. Without bells and whistles, Mask R-CNN outperforms the more complex FCIS+++, which includes multi-scale train/test, horizontal flip test, and OHEM [29]. All entries are single-model results.

4EXPERIMENTS: INSTANCE SEGMENTATION

image.png

Figure 5: FCIS+++ [20] (top) \vsMask R-CNN (bottom, ResNet-101-FPN). FCIS exhibits systematic artifacts on overlapping objects.

image.png

Table 2: Ablations for Mask R-CNN. We train on trainval35k, test on minival, and report mask AP unless otherwise noted.

4.2ABLATION EXPERIMENTS

backbone APbb APbb50 APbb75 APbbS APbbM APbbL
Faster R-CNN+++ [14] ResNet-101-C4 34.9 55.7 37.4 15.6 38.7
Faster R-CNN w FPN [21] ResNet-101-FPN 36.2 59.1 39.0 18.2 39.0
Faster R-CNN by G-RMI [16] Inception-ResNet-v2 [31] 34.7 55.5 36.7 13.5 38.1
Faster R-CNN w TDM [30] Inception-ResNet-v2-TDM 36.8 57.7 39.2 16.2 39.8
Faster R-CNN, RoIAlign ResNet-101-FPN 37.3 59.6 40.3 19.8 40.2
Mask R-CNN ResNet-101-FPN 38.2 60.3 41.7 20.1 41.1
Mask R-CNN ResNeXt-101-FPN 39.8 62.3 43.4 22.1 43.2

Table 3. Object detection single-model results (bounding box AP), vs. state-of-the-art on test-dev. Mask R-CNN using ResNet-101-
FPN outperforms the base variants of all previous state-of-the-art models (the mask output is ignored in these experiments). The gains of
Mask R-CNN over [27] come from using RoIAlign (+1.1 APbb), multitask training (+0.9 APbb), and ResNeXt-101 (+1.6 APbb).

Keypoint detection results on COCO Figure 6: Keypoint detection results on COCO test using Mask R-CNN (ResNet-50-FPN), with person segmentation masks predicted from the same model. This model has a keypoint AP of 63.1 and runs at 5 fps.