Kaiming He Georgia Gkioxari Piotr Doll´ ar Ross Girshick Facebook AI Research (FAIR)

摘要

我们提出了一个概念上简单、灵活和通用的对象实例分割框架。我们的方法有效地检测图像中的对象,同时为每个实例生成一个高质量的分割掩码。该方法被称为掩码 R-CNN,通过添加一个分支与现有分支并行预测对象掩码,用于边界框识别,扩展了更快的 R-CNN。蒙版 R-CNN 是简单的训练和增加一个小的开销更快的 R-CNN,运行在 5 帧。而且,蒙版 R-CNN 很容易推广到其他任务,例如,允许我们在相同的框架中估计人类姿势。我们在 COCO 挑战套件的所有三个轨道中显示了最佳结果,包括实例分割、边界框对象检测和 person keypoint 检测。没有铃声和口哨,蒙版 R-CNN 在每一项任务上都胜过现有的、单一型号的作品,包括 COCO 2016 挑战赛获奖者。我们希望我们简单而有效的方法将作为一个坚实的基线,并帮助简化实例级识别的未来研究。代码可访问:https:github.comfacebookresearch

vision 社区在短时间内快速改善了对象检测和语义分割结果。在很大程度上,这些进步是由强大的基线系统驱动的,如快速快速 RCNN 12,36 和全卷积网络 (FCN) 30 框架,分别用于对象检测和语义分割。这些方法概念上直观,具有灵活性和鲁棒性,并具有快速的训练和推理时间。我们在这项工作的目标是开发一个类似的实例分割启用框架。

实例分割具有挑战性,因为它要求正确检测图像中的所有对象,同时精确分割每个实例。因此,它结合了来自经典的目标检测的计算机视觉任务的元素,其中的目标是对单个对象进行分类,并使用边界框定位每个对象,和语义分割,目标是在不区分对象实例的情况下将每个像素分类到一组固定的类别中。考虑到这一点,可能需要一个复杂的方法来达到良好的结果。然而,我们展示了一个令人惊讶的简单、灵活和快速的系统可以超越以前最先进的实例分割结果。

我们的方法,calledMask R-CNN,扩展了更快的 R-CNN 36,在每个感兴趣的区域 (RoI) 增加了一个预测分割掩码的分支,与现有的分支并行进行分类和边界框回归(图 1)。掩模分支是应用于每个 RoI 的小型 FCN,以像素-顶点的方式预测分割掩模。掩码 R-CNN 的实现和训练非常简单,因为 R-CNN 框架更快,这促进了各种灵活的架构设计。此外,掩模分支只增加了很小的计算开销,从而实现了快速系统和快速实验。

class box 原则上掩码 R-CNN 是更快的 R-CNN 的直观扩展,但是正确地构造掩码分支对于获得好的结果至关重要。最重要的是,Faster RCNN 不是为网络输入和输出之间的像素对齐而设计的。这一点在 RoIPool 18、12(处理实例的实际核心操作)如何执行粗略空间量化以提取特征时最为明显。为了修复失配,我们提出了一个简单的、无量化的层,称为 RoIAlign,它忠实地保留了准确的空间位置。除了一个看似微不足道的变化,RoIAlign 有很大的影响:它提高了相对 10 到 50 的蒙版精度,在更严格的本地化指标下显示出更大的收益。第二,我们发现必须解耦掩模和类别预测:我们独立地预测每个类别的二进制掩模,没有类别之间的竞争,并依靠网络的 RoI 分类分支来预测类别。相反,FCN 通常采用基于像素的多类分类方法,这种方法将分割和分类结合在一起,并且基于实验的实例分割效果不佳。

没有铃声和口哨,蒙版 R-CNN 在 COCO 实例分割任务 28 上超越了之前所有最先进的单模结果,包括来自 2016 年竞赛获胜者的繁重工程参赛作品。作为一个副产品,我们的方法也优于可可物体的检测任务。在消融实验中,我们评估了多个基本实例,这允许我们证明其稳健性并分析核心因素的影响。

我们的模型可以在 GPU 上以每帧约 200 ms 的速度运行,而在一台 8-GPU 机上进行可可训练需要一到两天的时间。我们相信,快速的训练和测试速度,加上框架的灵活性和准确性,将有利于并便于今后对实例分割的研究。

最后,通过对 COCO keypoint 数据集 28 上的人体姿态估计任务,展示了我们框架的通用性。通过将每个 keypoint 视为一个一热的二进制掩码,使用最小修改掩码 R-CNN 可以应用于检测特定于实例的姿势。Mask R-CNN 超过了 2016 年 COCO keypoint 竞赛的获胜者,同时以 5 fps 的速度运行。蒙版 R-CNN,因此,可以看作是一个灵活的框架更广泛的实例级识别,并可以很容易地扩展到更复杂的任务。

我们已经发布了代码来促进未来的研究。

另一族解决方案 23、4、3、29 实例分割是由语义分割的成功驱动的。从每个像素的分类结果(例如,FCN 输出)开始,这些方法尝试将相同类别的像素切割成不同的实例。与这些方法的分割优先策略相比,蒙版 R-CNN 是基于实例优先的策略。我们预计,今后将进一步研究这两种战略的结合。

2. 相关工作

R-CNN:基于区域的 CNN (R-CNN) 方法 13 用于边界框对象检测,即关注数量可控的候选对象区域 42、20,并在每个 RoI 上单独评估卷积网络 25、24。R-CNN 被扩展了 18,12,允许使用 RoIPool 在特征映射上关注 RoI,导致快速和更好的准确性。Faster R-CNN 36 通过区域提议网络 (RPN) 学习注意机制推进了这一流程。Faster R-CNN 对许多后续改进(例如 38、27、21)具有灵活性和稳健性,是当前几个基准中的主导框架。

实例分割:受 RCNN 有效性的驱动,许多实例分割方法都是基于分割建议的。早期的方法 13、15、16、9 采用自下而上的分段 42、2。DeepMask 33 和后续作品 34、8 学习提出分段候选,然后通过快速 R-CNN 进行分类。在这些方法中,分割先于识别,识别速度慢且精度低。同样,Dai 等人10 提出了一个复杂的多阶段级联,从边界框提案中预测分段提案,然后进行分类。相反,我们的方法是基于掩码和类标签的并行预测,它更简单、更灵活。

最近,Li 等人其中 26 篇将 8 篇中的片段建议系统和 11 篇中的目标检测系统结合在一起进行全卷积实例分割 (FCIS)。在 8,11,26 的共同想法是预测一套位置敏感输出通道完全卷积。这些通道同时处理对象类、框和掩码,使系统变得快速。但是,FCIS 在重叠实例上显示系统误差,并产生虚假边缘(图 6),表明它受到实例分割的基本困难的挑战。

另一族解决方案 23、4、3、29 实例分割是由语义分割的成功驱动的。从每个像素的分类结果(例如,FCN 输出)开始,这些方法尝试将相同类别的像素切割成不同的实例。与这些方法的分割优先策略相比,蒙版 R-CNN 是基于实例优先的策略。我们预计,今后将进一步研究这两种战略的结合。

3. Mask R-CNN

Mask R-CNN 在概念上很简单:更快的 R-CNN 为每个候选对象有两个输出,一个类标签和一个边界框偏移量;为此,我们添加了第三个分支来输出对象掩码。mask R-CNN 因此是一个自然和直观的想法。但是,额外的掩码输出不同于类和框输出,需要提取对象的更精细的空间布局。接下来,我们介绍了掩模 R-CNN 的关键元素,包括像素对像素对齐,这是快速快速 R-CNN 的主要缺失部分。

Faster R-CNN:我们首先简单回顾一下更快速的 R-CNN 探测器 36。Faster R-CNN 由两个阶段组成。第一阶段,称为区域建议书网络 (RPN),提出候选对象边界框。第二阶段,本质上是快速的 R-CNN 12,使用 RoIPool 从每个候选框中提取特征,并进行分类和边界框回归。两个阶段使用的特性可以共享,以实现更快的推理。我们推荐读者 21 日最新的比较,综合比较快速的 R-CNN 和其他框架。

mask  R-CNN:掩模 R-CNN 采用相同的两阶段程序,具有相同的第一阶段(即 RPN)。在第二阶段,在预测类和框偏移量的同时,掩码 R-CNN 还为每个 RoI 输出一个二进制掩码。这与大多数最新系统相反,后者的分类取决于面罩预测(例如 33、10、26)。我们的方法遵循了快速的 R-CNN 12 的精神,它将边界盒分类和回归并行应用(结果大大简化了原始 R-CNN 13 的多级流水线)

形式上,在训练过程中,我们将每个采样 RoI 上的多任务丢失定义为

maskrcnn 分割mask为方形 maskrcnn原理解读_maskrcnn 分割mask为方形

。分类损失 Lcl 和边界箱损失 Lbox 与 12 中定义的相同。掩码分支对每个 RoI 有一个 k m2 维输出,它对分辨率为 m X m 的 K 个二进制掩码进行编码,每个 K 个类别一个。对此,我们采用了每像素 s 字形,并将 Lmask 定义为平均二进制交叉熵损失。对于与地面实况 k 类相关的 RoI,Lmask 仅在第 k 个掩码上定义(其他掩码输出不会造成损失)。

我们的 Lmask 定义允许网络为每个类生成掩码,而不需要类之间的竞争;我们依赖专用的分类分支来预测用于选择输出掩码的类标签。这就去耦了掩码和类预测。这与将 FCNs 30 应用于语义分割时的常规做法不同,语义分割通常使用每个像素的 softmax 和多项交叉熵损失。在这种情况下,类之间的掩码是相互竞争的;在我们的情况下,每个像素的 sigmoid 和二进制丢失都是如此。实验表明,该公式是取得良好分割效果的关键。

掩码表示:掩码编码输入对象的空间布局。因此,与类标签或箱偏移不可避免地被完全连接 (fc) 层折叠成短输出向量不同,提取掩模的空间结构可以通过卷积提供的像素间对应自然解决。

体来说,我们使用 FCN 30 预测每个 RoI 的 m m 蒙版。这允许掩码分支中的每一层维护显式 m m 对象空间布局,而不会将其折叠成缺少空间维度的向量表示。不像以前的方法,求助于 fc 层的掩模预测 33,34,10,我们的完全卷积表示需要更少的参数,是更准确的实验证明。

这种像素对像素的行为要求我们的 RoI 特征(RoI 特征本身就是小的特征图)很好地对齐,以忠实地保留显式的每像素空间对应关系。这促使我们开发了以下 RoIAlign 层,它在蒙版预测中起关键作用。

RoIAlign:RoIPool 12 是从每个 RoI 提取小特征图(例如,7 7)的标准操作。RoIPool 首先将一个固定数量的 RoI 量化为特征映射的离散粒度,然后将这个量化的 RoI 细分为空间二进制,这些空间二进制本身经过量化,最后将每个二进制所覆盖的特征值聚合(通常由 max pooling 实现)。通过计算 x 16,在连续坐标 x 上执行量化,其中 16 是特征映射步幅,并且是四舍五入;同样地,在划分到 bins(例如,7 7)时执行量化。这些量化在 RoI 和提取的特征之间引入错位。虽然这可能不会影响对小型翻译具有稳健性的分类,但它对预测像素准确的蒙版有很大的负面影响。

为了解决这个问题,我们提出了一个 RoIAlign 层,它消除了 RoIPool 的苛刻量化,将提取的特征与输入正确地对齐。我们建议的变更很简单:我们避免 RoI 边界的任何量化.

或箱(即,我们使用 x 16 而不是 x 16)。我们使用双线性插值 22 计算每个 RoI bin 中四个规则采样位置的输入特征的精确值,并汇总结果(使用最大值或平均值),详见图 3。我们注意到,只要不进行量化,结果对准确的采样位置或采样点的数量并不敏感。

RoIAlign 导致很大的改进,如我们在 x4.2 中所示。与 RoIAlign 不同的是,RoIWarp 忽略了对齐问题,并像 RoIPool 一样在 10 中实现了 RoI 的量化。因此,即使 RoIWarp 也采用了由 22 驱动的双线性重采样,但其性能与 RoIPool 相同,如实验所示(更多详情见表 2c),证明了对准的关键作用。

网络体系结构:为了展示我们的方法的通用性,我们用多个体系结构实例化了掩码 R-CNN。为了清楚起见,我们区分了:(i) 用于整个图像特征提取的卷积骨干架构,和 (ii) 分别应用于每个 RoI 的边界框识别(分类和回归)和掩码预测的网络头。

我们使用命名法 network-depth-features 表示骨干架构。我们评估 ResNet 19 和 ResNeXt 45 深度为 50 或 101 层的网络。快速 R-CNN 的最初的实现与 ResNets 19 从第四阶段的最后的卷积层提取了特征,这我们叫 C4例如,带有 ResNet-50 的主干用 ResNet-50-C4 表示。这是 19、10、21、39 中常用的选择。

我们还探索了 Lin 等人最近提出的另一个更有效的骨干。27,称为特征金字塔网络 (FPN)。FPN 使用一个带有横向连接的自上而下的体系结构,从单尺度输入构建一个网络内特征金字塔。具有 FPN 主干的快速 R-CNN 根据其规模从特征金字塔的不同层次提取 RoI 特征,但其他方法类似于 vanilla ResNet。使用 ResNet-FPN 主干进行掩码 RCNN 特征提取,在精度和速度上都有很好的提高。关于 FPN 的更多详细信息,我们请读者参考 27。

对于网络头,我们严格遵循在以前的工作中提出的架构,我们增加了一个完全卷积掩码预测分支。具体来说,我们从 ResNet 19 和 FPN 27 论文扩展了更快的 R-CNN 机箱头。细节如图 4 所示,ResNet-C4 主干上的头部包括 ResNet 的第 5 级(即 9 层 res5 19),计算密集。对于 FPN,主干已经包括 res5,因此允许使用更少过滤器的更有效的封头。

我们注意到我们的掩模分支有一个简单的结构。更复杂的设计有可能证明性能,但不是这项工作的重点。

 

maskrcnn 分割mask为方形 maskrcnn原理解读_Mask_02

图 4. Head 体系结构:我们扩展了两个现有的 Faster RCNN 头 19,27。左-右面板显示 ResNet C4 和 FPN 骨干的头部,分别来自 19 和 27,其中添加了掩码分支。数字表示空间分辨率和通道。箭头表示 conv、deconv 或 fc 层,可从上下文推断(conv 保留空间维度,而 deconv 增加空间维度)。所有的 conv 为 3 3,除了输出 conv 为 1 1,反 conv 为 2 2,步幅为 2,我们在隐藏层中使用 ReLU 31。左:res5 表示 ResNet s 第五级,为了简单起见,我们修改了第一个 conv,使其在一个 7 7 的 RoI 上运行,步幅为 1(而不是 19 中的 14 14 步幅 2)。右:4 表示 4 个连续 conv 的堆栈。

3.1. 实施细节

我们设置超参数遵循现有的快速 R-CNN 工作 12,36,27。虽然这些决策是在原始论文 12,36,27 中做出的,但我们发现我们的实例分割系统对它们是强健的。

培训:与快速 R-CNN 一样,如果 RoI 具有 IoU,且地面实况框至少为 0.5,则认为 RoI 为阳性,否则为阴性。仅在阳性 RoI 上定义掩码损耗 Lmask。掩模目标是 RoI 与其相关地面实况掩模之间的交叉点。

我们采用以图像为中心的培训 12。调整图像大小,使其比例(较短边缘)为 800 像素 27。每个小批处理每个 GPU 有 2 幅图像,每幅图像有 N 个采样 RoI,正负比例为 1:3 12。N 对于 C4 主干为 64(如 12、36),对于 FPN 为 512(如 27)。我们在 8 个 GPU(所以有效的小批处理大小为 16)上训练 160k 迭代,学习率为 0.02,在 120k 迭代时降低了 10。我们使用的权重衰减为 0.0001,动量为 0.9。使用 ResNeXt 45,我们使用每个 GPU 的 1 个图像和相同次数的迭代进行训练,起始学习率为 0.01。

RPN 锚钉跨越 5 个刻度和 3 个纵横比,符合 27。为了便于消融,RPN 经过单独培训,除非另有说明,否则不与面罩 R-CNN 共享功能。对于本文中的每个条目,RPN 和掩码 R-CNN 具有相同的骨干,因此它们是可共享的。

推理:在测试时,C4 主干(如在 36 中)的建议编号为 300,FPN(如在 27 中)的建议编号为 1000。我们对这些建议运行 box prediction 分支,然后运行非最大抑制 14。然后将掩码分支应用于得分最高的 100 个检测框。虽然这与训练中使用的并行计算不同,但它加快了推断并提高了准确性(由于使用了更少、更准确的 RoI)。

掩码分支:可以预测每个 RoI 的 k-th 掩码,但我们只使用 k-th mask,其中 k 是由分类分支预测的类。然后将 m m 浮动数字掩码输出调整为 RoI 大小,并在阈值为 0.5 时进行二值化。

请注意,由于我们只计算前 100 个检测框上的掩码,因此掩码 R-CNN 在其更快的 R-CNN 对应项上增加了一个小开销(例如,典型模型上为 20 个)。

maskrcnn 分割mask为方形 maskrcnn原理解读_Mask_03

图 5. 使用 ResNet-101-FPN 并在 5 fps 和 35.7 Mask AP 条件下运行的 COCO 测试图像上的掩模 R-CNN 的更多结果(表 1)。

maskrcnn 分割mask为方形 maskrcnn原理解读_maskrcnn 分割mask为方形_04

表 1. COCO test-dev 上的实例分割掩码 AP。MNC 10 和 FCIS 26 分别是 COCO 2015 和 2016 细分市场挑战的赢家。没有铃声和口哨,蒙版 R-CNN 胜过更复杂的 FCI,包括多尺度训练测试,水平 fiip 测试和 OHEM 38。所有条目均为单模型结果。

 

4. 实验:实例分割 

我们对面罩 R-CNN 与最新技术水平以及 COCO 数据集 28 上的全面消融进行了全面比较。我们报告了标准的 COCO 指标,包括 AP(IoU 阈值的平均值)、AP50、AP75 和 APS、APM、APL(不同尺度的 AP)。除非另有说明,否则 AP 将使用面罩 IoU 进行评估。与之前的工作 5、27 一样,我们使用 80k 训练图像和 35k 子集的 val 图像 (trainval35k) 联合进行训练,并报告剩余 5k val 图像 (minival) 的消融。我们还报告了 test-dev 28 的结果。

4.1. 主要结果

我们在表 1 的实例分割中比较了蒙版 R-CNN 和最先进的方法。我们模型的所有实例化的性能均优于以前最先进模型的基线变体。这包括 MNC 10 和 FCIS 26,分别是 COCO 2015 和 2016 细分市场挑战的赢家。没有铃声和哨声,蒙版 R-CNN 与 ResNet-101-FPN 骨干优于 FCIS 26,FCIS 26 包括多尺度训练测试,水平 fiip 测试,和在线硬实例挖掘 (OHEM) 38。虽然不在这项工作的范围内,但我们预期许多这样的改进将适用于我们的工作。

掩模 R-CNN 输出如图 2 和 5 所示,掩模 R-CNN 即使在挑战性条件下也能获得良好的结果。在图 6 中,我们比较了我们的掩码 R-CNN 基线和 FCIS 26。FCIS 在重叠实例上表现出系统伪影,表明它受到实例分割的基本困难的挑战。掩模 R-CNN 显示没有此类伪影。

maskrcnn 分割mask为方形 maskrcnn原理解读_空间布局_05

图 6. FCIS 26(上)与面罩 R-CNN(下,ResNet-101-FPN)。FCIS 在重叠物体上显示系统伪影。

maskrcnn 分割mask为方形 maskrcnn原理解读_maskrcnn 分割mask为方形_06

             (a)                                                      (b)                                                                    (c)

(a) 骨干架构:更好的骨干带来 预期收益:更深的网络做得更好,FPN 优于 C4 特性,ResNeXt 对 ResNet 进行了改进。

(b) 多项式与独立掩模 (ResNet-50-C4):通过类间二进制掩模(s 形)去耦得到的增益大于多项式掩模 (softmax)。

(c) RoIAlign (ResNet-50-C4):用各种 RoI 层屏蔽结果。我们的 RoIAlign 层将 AP 提高 3 分,将 AP75 提高 5 分。使用适当的对齐是造成 RoI 层之间存在较大差异的唯一因素。

maskrcnn 分割mask为方形 maskrcnn原理解读_Mask_07

                                (d)                                                                                   (e)

(d) RoIAlign (ResNet-50-C5,stride 32):使用大跨度特性的掩模级和箱级 AP。错位比 stride-16 功能更严重(表 2c),导致较大的精度差距。 

(e) 掩模分支 (ResNet-50-FPN):全卷积网络 (FCN) 与多层感知器(MLP,全连接),用于掩模预测。FCNs 利用显式编码空间布局来改善结果。

表 2. 消融。我们对 trainval35k、minival 和报告掩码 AP 进行培训,除非另有说明。

4.2. 消融实验

我们运行了一些消融来分析蒙版 R-CNN。结果见表 2,详细讨论如下。

体系结构:表 2a 所示为具有各种骨干的 R-CNN。它得益于更深的网络(50 比 101)和先进的设计,包括 FPN 和 ResNeXt。我们注意到,并非所有框架都能自动从更深或更高级的网络中受益(见 21 中的基准)。

Multinomial vs. Independent maskes:Mask R-CNN 解耦 Mask 和类预测:由于现有的 box 分支预测了类标签,我们为每个类生成一个 Mask,没有类之间的竞争(通过每个像素的 sigmoid 和二进制损失)。在表 2b 中,我们将其与使用每个像素的 softmax 和多项损失(如 FCN 30 中常用的)进行比较。这种替代方法耦合了掩码和类别预测的任务,并导致掩码 AP 严重丢失(5.5 分)。这表明,一旦实例被分类为一个整体(通过 box 分支),就足以预测二进制掩码,而不需要考虑类别,这使得模型更容易训练。

类特定的与类无关的掩码:我们默认的实例化预测类特定的掩码,即一个 mXm每个类的掩码。有趣的是,带有类化不可知掩码的掩码 R-CNN(即,不管类别如何预测单个 m m 输出)几乎同样有效:它具有 29.7 个掩码 AP,而 ResNet-50-C4 上的类特定对应对象具有 30.3 个掩码 AP。这进一步突出了我们方法中的分工,这在很大程度上解耦了分类和细分。

RoIAlign:拟定 RoIAlign 层的评价见表 2c。对于这个实验,我们使用 ResNet50-C4 主干,它有 stride 16。RoIAlign 比 RoIPool 提高 AP 约 3 个点,大部分收益来自高 IoU (AP75)。RoIAlign 对最大平均池不敏感;我们在论文的其余部分中使用平均。

并与 MNC 10 中提出的采用双线性抽样的 RoIWarp 算法进行了比较。正如在 x3 中所讨论的,RoIWarp 仍然量化 RoI,与输入不一致。如表 2c 所示,RoIWarp 的性能与 RoIPool 相当,但比 RoIAlign 差很多。这突出表明正确对准是关键。

我们还评价了 RoIAlign 与 ResNet-50-C5 主干,其具有更大的 32 像素步幅。我们使用了与图 4(右)相同的头部,因为 res5 头部不适用。表 2d 显示 RoIAlign 使面罩 AP 提高 7.3 分,使面罩 AP75 提高 10.5 分,50 相对改善)。此外,我们注意到,在使用 RoIAlign 时,使用 stride-32 C5 功能 (30.9 AP) 比使用 stride-16 C4 功能更准确(30.3 AP,表 2c)。RoIAlign 在很大程度上解决了使用大步长特征进行检测和分割的长期挑战。

               

maskrcnn 分割mask为方形 maskrcnn原理解读_卷积_08

表 3. 对象检测单模型结果(边界框 AP),与最先进的 test-dev。使用 ResNet-101FPN 的掩码 R-CNN 优于所有先前最先进型号的基本变体(掩码输出在这些实验中被忽略)。使用 RoIAlign (1.1 APbb)、多任务训练 (0.9 APbb) 和 ResNeXt-101 (1.6 APbb) 获得的面罩 R-CNN 超过 27。

最后,RoIAlign 显示与 FPN 配合使用时的增益为 1.5 mask AP 和 0.5 box AP,后者具有更精细的多级步幅。对于要求更精确对准的 keypoint 检测,即使使用 FPN,RoIAlign 也显示较大的增益(表 6)。

Mask Branch:Segmentation 是一个像素对像素的任务,我们使用 FCN 开发 Mask 的空间布局。在表 2e 中,我们使用 ResNet-50-FPN 主干比较了多层感知器 (MLP) 和 FCNs。使用 FCNs 产生 2.1 掩模 AP 增益超过 MLPs。我们注意到,为了与 MLP 进行公平比较,我们选择这种骨干,以便 FCN 头的 conv 层没有预先培训。

4.3. 包围盒检测结果

我们将蒙版 R-CNN 与表 3 中最先进的 COCO 边界框对象检测进行了比较。对于这个结果,即使完整的蒙版 R-CNN 模型经过了训练,在推断时也只使用了分类和框输出(蒙版输出被忽略)。使用 ResNet-101FPN 的掩码 R-CNN 的性能优于之前所有最先进型号的基本变体,包括 GRMI 21 的单型号变体,GRMI 21 是 COCO 2016 Detection Challenge 的获胜者。使用 ResNeXt-101-FPN,掩码 R-CNN 进一步改善了结果,与从 39(使用 Inception-ResNet-v2-TDM)的最好的以前的单个模型条目的相比,有 3.0 点的边际框 AP。

作为进一步的比较,我们训练了一个版本的掩码 R-CNN,但是没有掩码分支,用更快的 R-CNN 表示,RoIAlign 在表 3 中。另一方面,它是 0.9 点方块 AP 低于蒙版 R-CNN。蒙片 R-CNN 在盒子察觉上的这差距因此仅仅由于多任务训练的好处。

最后,我们注意到,面罩 R-CNN 在其面罩和包装盒 AP 之间获得了一个小间隙:例如,在 37.1(面罩,表 1)和 39.8(包装盒,表 3)之间获得了 2.7 分。这表明我们的方法在很大程度上缩小了目标检测和更具挑战性的实例分割任务之间的差距。

4.4. 定时

推理:我们训练了一个 ResNet-101-FPN 模型,它在 RPN 和掩码 R-CNN 阶段之间共享特征,遵循 Faster R-CNN 36 的 4 步训练。该模型在 Nvidia TeslaM40 GPU 上以每幅图像 195 ms 的速度运行(加上 15 ms 的 CPU 时间,将输出大小调整为原始分辨率),并在统计学上获得与非共享掩码 AP 相同的掩码 AP。我们还报告,ResNet-101-C4 变体需要 400 ms,因为它有一个较重的箱头(图 4),所以我们不建议在实践中使用 C4 变体。虽然蒙版 R-CNN 很快,我们注意到我们的设计没有优化速度,更好的速度精度折衷可以达到 21,例如通过不同的图像大小和建议数字,这超出了本文的范围。

培训:面罩 R-CNN 也是快速培训。在我们的同步 8-GPU 实现中,使用 ResNet-50-FPN 进行 COCO trainval35k 培训需要 32 小时(每 16 个图像小批处理 0.72s),使用 ResNet-101-FPN 需要 44 小时。事实上,在火车上训练时,快速原型制作可以在不到一天的时间内完成。我们希望这样的快速培训将消除这一领域的一个主要障碍,并鼓励更多的人对这一具有挑战性的课题进行研究。

5. 掩模 R-CNN 用于人体姿态估计

我们的框架可以很容易地扩展到人体姿态估计。我们将 keypoint s 位置建模为一个单热掩模,并采用掩模 R-CNN 来预测 K 个掩模,每个 K 个 keypoint 类型(例如左肩、右肘)各一个。此任务有助于证明蒙版 R-CNN 的灵活性。

我们注意到,我们的系统利用了人类位姿的最小领域知识,因为实验主要是为了证明掩模 R-CNN 框架的通用性。我们期望领域知识(例如,建模结构 6)将与我们的简单方法互补。

实现细节:当针对关键点进行调整时,我们对分割系统进行了一些小的修改。对于一个实例的每个 K 关键点,训练目标是一个一热的 m m 二进制掩码,其中只有一个像素被标记为前景。在训练期间,对于每个可见的地面实况关键点,我们最小化 m2-way softmax 输出上的交叉熵损失(这鼓励单点待测)。我们注意到,在实例分割中,K 关键点仍然是独立处理的。

maskrcnn 分割mask为方形 maskrcnn原理解读_空间布局_09

表 4. Keypoint detection AP on COCO test-dev。我们的是一个单一型号 (ResNet-50-FPN),运行在 5 帧速率。CMU-Pose 6 是 2016 年竞赛获奖者,采用多尺度测试,用 CPM 44 进行后处理,用物件检测器过滤,累计加 5 分(在个人沟通中澄清)。y:在 COCO plus MPII 1(25k 图像)上对 G-RMI 进行了培训,使用了两种模型(用于边界框检测的 Inception-ResNet-v2 和用于关键点的 ResNet-101)。

maskrcnn 分割mask为方形 maskrcnn原理解读_卷积_10

表 5. 在 minival 上评价的关于人员类别的 box、mask 和 keypoint 的多任务学习。所有条目均针对相同数据进行培训,以便进行公平比较。主干是 ResNet50-FPN。minival 上 64.2 和 64.7 AP 的条目分别具有 62.7 和 63.1 的 test-dev AP(见表 4)。

maskrcnn 分割mask为方形 maskrcnn原理解读_卷积_11

表 6. minival 上 keypoint 检测的 RoIAlign 与 RoIPool。主干是 ResNet-50-FPN。

我们采用了 ResNet-FPN 变体,keypoint 头部架构类似于图 4(右)。keypoint head 由 8 个 3 个 512-d conv 层堆栈组成,随后是 deconv 层和 2 个双线性放大,产生 56 56 的输出分辨率。我们发现,一个相对高分辨率的输出(与掩码相比)是必要的关键点水平的定位精度。

在包含注释关键点的所有 COCO trainval35k 图像上训练模型。为了减少过度拟合,由于这个训练集较小,我们使用从 640,800 像素中随机抽样的图像尺度进行训练;推断是在 800 像素的单个尺度上。我们为 90k 迭代训练,从 0.02 的学习率开始并且在 60k 和 80k 迭代减少它 10。我们使用阈值为 0.5 的边界框 NMS,其他细节与 x3.1 相同。

主要结果和消融:我们评价了 person keypoint AP (APkp) 并使用 ResNet-50-FPN 骨干进行了实验;将在附录中研究更多的骨干。表 4 显示,我们的结果 (62.7 APkp) 比使用多级处理管道的 COCO 2016 keypoint detection winner 6 高 0.9 分(参见表 4 的标题)。我们的方法相当简单和快速。

更重要的是,我们有一个统一的模型,可以在 5 fps 条件下运行时,多次预测箱、段和关键点。添加一个段分支(针对 person 类别)将 test-dev 上的 APkp 提高到 63.1(表 4)。在表 5 中列出了在 minival 上进行多任务学习的更多消融。将掩码分支添加到仅 box(即,更快的 R-CNN)或仅 keypoint 版本可持续改善这些任务。然而,添加 keypoint 分支会略微减少 box mask AP,这表明虽然 keypoint 检测从多任务训练中受益,但它不会反过来帮助其他任务。尽管如此,联合学习这三个任务,可以使统一的系统有效地同时预测所有的产出(图 7)。

我们还研究了 RoIAlign 对 keypoint 检测的影响(表 6)。尽管 ResNet-50-FPN 主干具有更好的步幅(例如,在最好的级别上为 4 个像素),但与 RoIPool 相比,RoIAlign 仍然显示出显著的改进,并且 APkp 增加了 4.4 分。这是因为 keypoint 检测对定位精度更敏感。这再次表明,对准是必不可少的像素级定位,包括面具和关键点。

考虑到掩码 R-CNN 在提取对象边界框、掩码和关键点方面的有效性,我们期望它能成为其他实例级任务的有效框架。

maskrcnn 分割mask为方形 maskrcnn原理解读_卷积_12

 表 7. Cityscapes val(AP val 列)和 test(其余列)集的结果。我们的方法使用 ResNet-50-FPN。

附录 A:城市景观实验

我们进一步报告了 Cityscapes 7 数据集上的实例分割结果。该数据集包含 2975 个脉冲串、500 个 val 和 1525 个测试图像的精细注释。它有 20k 粗训练图像,没有实例注释,我们不使用。所有图像均为 2048 1024 像素。实例分割任务涉及 8 个对象类别,其在精细训练集中的实例数为:

maskrcnn 分割mask为方形 maskrcnn原理解读_maskrcnn 分割mask为方形_13

通过 COCO 式掩码 AP(在 IoU 阈值上的平均值)测量此任务的实例分割性能;还报告了 AP50(即,IoU 为 0.5 时的掩码 AP)。

实现:我们应用我们的掩码 R-CNN 模型与 ResNet-FPN-50 主干;我们发现 101 层对应执行类似由于小数据集大小。我们用从 800,1024 随机抽取的图像尺度(短边)训练,这减少了过拟合;推理是在 1024 像素的单个尺度上。我们对每个 GPU 使用一个小批处理大小为 1 的图像(8 个 GPU 上的 so 8),并为 24k 迭代训练模型,从 0.01 的学习率开始,在 18k 迭代时减少到 0.001。在此设置下,需要在一台 8-GPU 机上进行 4 小时的训练。

结果:表 7 比较了我们的结果与确认和测试集的最新技术水平。在不使用粗训练集的情况下,我们的方法达到了 26.2 的 AP on test,比以前的最佳入口 (DIN 3) 提高了 30 多个,也优于 SGN s 25.0 29 的并发工作。DIN 和 SGN 都使用精细的粗数据。与仅使用精细数据的最佳条目 (17.4 AP) 相比,我们实现了 50 的改进。

对于人和汽车类别,Cityscapes 数据集展示了大量的类别内重叠实例(平均每个图像 6 个人和 9 辆汽车)。我们认为类别内重叠是实例分割的一个核心难点。我们的方法在这二个种类上比另外的最好的入口显示出巨大的改进(在人从 21.8~30.5 上的相对 40 改进和在 car 上的 20 改进从 39.4~46.9),即使我们的方法不开发粗糙的数据。

城市数据集的一个主要挑战是培训
低数据系统中的模型,特别是有关类别的模型卡车,巴士,和火车,大约有200-500辆火车-每个样品 。为了部分解决该问题,我们进一步报告了使用 COCO 预培训的结果。为此,我们从预先训练好的 COCO Mask R-CNN 模型(rider 被随机初始化)中初始化了 Cityscapes 中相应的 7 个类别。我们微调了 4k 迭代中的这个模型,其中学习率在 3k 迭代中降低,在给定的 COCO 模型中,这需要 1 小时的训练。

maskrcnn 分割mask为方形 maskrcnn原理解读_maskrcnn 分割mask为方形_14

图 8. Cityscapes 测试的蒙版 R-CNN 结果 (32.0 AP)。右下角的图像显示了一个故障预测。

可可预先训练的蒙版 R-CNN 模型达到了 32.0 AP on test,几乎比 fine-only 对应物提高了 6 分。这表明了训练数据量所起的重要作用。这也表明,城市景观上的方法可能会受到他们的低学习成绩的影响。我们表明,使用可可预训练是一个有效的策略在这个数据集。

最后,我们观察到 val 和测试 AP 之间存在偏倚,从 23、4、29 的结果中也观察到了偏倚。我们发现这种偏差主要是由卡车、公共汽车和火车类别引起的,fine-only 模型的 val 检验 AP 分别为 28.8 22.8、53.5 32.2 和 33.0 18.6。这表明,在这些类别上存在域转移,这些类别也几乎没有训练数据。COCO 预培训有助于改善这些类别的结果;然而,域偏移持续,分别为 38.0 30.1、57.5 40.9 和 41.2 30.9 val test AP。请注意,对于人员和 car 类别,我们未发现任何此类偏倚(val 测试 AP 在 1 分以内)。

Cityscapes 的示例结果如图 8 所示。

maskrcnn 分割mask为方形 maskrcnn原理解读_Mask_15

表 8. COCO minival 上的面罩 R-CNN 的增强检测结果。每一行向上面的行添加一个额外的组件。我们用 X 表示 ResNeXt 模型,以表示符号的简洁。

maskrcnn 分割mask为方形 maskrcnn原理解读_卷积_16

表 9. COCO minival 上面罩 R-CNN 的增强 keypoint 结果。每一行向上面的行添加一个额外的组件。这里我们只使用 keypoint 注释,而不使用 mask 注释。为了简洁起见,我们用 R 表示 ResNet,用 X 表示 ResNeXt。

附录 B:COCO 的增强结果

作为一个通用框架,掩码 R-CNN 与为检测分割开发的互补技术兼容,包括快速快速 R-CNN 和 FCNs 的改进。在本附录中,我们描述了改进原始结果的一些技术。由于其通用性和灵活性,Mask R-CNN 在 COCO 2017 实例分割比赛中被 3 个获奖团队作为框架使用,这 3 个团队的表现都明显优于之前的最新技术水平。

实例分割和对象检测

我们在表 8 中报告了蒙版 R-CNN 的一些增强结果。总体而言,改进增加了蒙版 AP 5.1 分(从 36.7 增加到 41.8)和方框 AP 7.7 分(从 39.6 增加到 47.3)。每次模型改进都一致地增加了掩码 AP 和 box AP,显示了掩码 R-CNN 框架的良好泛化能力。接下来我们详述改进。这些结果以及未来更新可通过 https 中的已发布代码复制:github.comfacebookresearch Detectron,并可作为未来研究的更高基线。

更新的基线:我们使用一组不同的 hyper-parameters 从更新的基线开始。我们将训练时间延长到 180k 次迭代,其中在 120k 和 160k 次迭代时学习率降低了 10。我们还将 NMS 阈值更改为 0.5(从默认值 0.3)。更新后的基线具有 37.0 蒙版 AP 和 40.5 方框 AP。

端到端培训:之前的所有结果都采用了分阶段培训,即培训 RPN 为第一阶段,蒙版 R-CNN 为第二阶段。37 后,我们评估联合培训 RPN 和屏蔽 RCNN 的端到端 (e2e) 培训。我们采用 37 中的近似版本,通过忽略梯度 w.r.t. RoI 坐标,仅计算 RoIAlign 层中的部分梯度。表 8 显示,e2e 训练使面罩 AP 提高 0.6,包装箱 AP 提高 1.2。

ImageNet-5k 预训练:45 后,我们在 ImageNet 的 5k 级子集中预训练模型进行实验(与标准的 1k 级子集相反)。培训前数据的增加 5 次改善了面罩和箱式 1 AP。作为参考,40 名患者使用了 250 多幅图像 (300M),并报告了 2-3 个方框的基线 AP 改善。

脉冲串时间增加:脉冲串时间的脉冲串规模增加进一步改善了结果。在训练过程中,我们从 640,800 像素处随机抽取一个比例,并将迭代次数增加到 260k(在 200k 和 240k 迭代时学习率降低 10)。脉冲串时间增加使掩模 AP 提高 0.6,包装箱 AP 提高 0.8。

模型架构:通过将 101 层 ResNeXt 升级到 152 层对应层 19,我们观察到增加了 0.5 个掩模 AP 和 0.6 个盒子 AP。这表明更深的模型仍然可以改善 COCO 的结果。

使用最近提出的非本地 (NL) 模型 43,我们实现了 40.3 掩码 AP 和 45.0 方框 AP。该结果未增加测试时间,并且在测试时,该方法在 Nvidia Tesla P100 GPU 上以 3 fps 运行。

测试时间增加:我们将使用 400,1200 像素的尺度和 100 的步长以及它们的水平 fiip 来评估模型结果。这提供了 41.8 mask AP 和 47.3 box AP 的单一模型结果。

以上结果是我们提交给 COCO 2017 竞赛的基础(也使用了 ensemble,这里不讨论)。据报道,前三个获胜的实例分割团队都是基于蒙版 R-CNN 框架的扩展。

Keypoint 检测

我们在表 9 中报告了 keypoint 检测的增强结果。作为更新的基线,我们将训练计划扩展到 130k 迭代,其中 100k 和 120k 迭代的学习率降低了 10。这将使 APkp 提高约 1 分。将 ResNet-50 替换为 ResNet-101 和 ResNeXt-101 后,APkp 分别增加至 66.1 和 67.3。

通过最近的一种叫做数据蒸馏 35 的方法,我们能够利用 COCO 提供的额外的 120k 未标记图像。简而言之,数据蒸馏是一种自我训练策略,它使用在标记数据上训练的模型来预测未标记图像上的注释,并反过来用这些新的注释更新模型。Mask R-CNN 为这种自我训练策略提供了一个有效的框架。通过数据蒸馏,蒙版 R-CNN APkp 提高了 1.8 点,达到 69.1 点。我们观察到蒙版 R-CNN 可以从额外的数据中获益,即使这些数据是未标记的。

通过使用与实例分割相同的测试时间扩展,我们进一步将 APkp 提升到 70.4。

致谢:我们要感谢 Ilija Radosavovic 对代码发布和增强结果的贡献,并感谢 Caffe2 团队的工程支持。

[1] M. Andriluka, L. Pishchulin, P. Gehler, and B. Schiele. 2D
human pose estimation: New benchmark and state of the art
analysis. In CVPR, 2014. 8
[2] P. Arbel´ aez, J. Pont-Tuset, J. T. Barron, F. Marques, and
J. Malik. Multiscale combinatorial grouping. In CVPR,
2014. 2
[3] A. Arnab and P. H. Torr. Pixelwise instance segmentation
with a dynamically instantiated network. In CVPR, 2017. 3,
9
[4] M. Bai and R. Urtasun. Deep watershed transform for in-
stance segmentation. In CVPR, 2017. 3, 9
[5] S. Bell, C. L. Zitnick, K. Bala, and R. Girshick. Inside-
outside net: Detecting objects in context with skip pooling
and recurrent neural networks. In CVPR, 2016. 5
[6] Z. Cao, T. Simon, S.-E. Wei, and Y. Sheikh. Realtime multi-
person 2d pose estimation using part affinity fields. In CVPR,
2017. 7, 8
[7] M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler,
R. Benenson, U. Franke, S. Roth, and B. Schiele. The
Cityscapes dataset for semantic urban scene understanding.
In CVPR, 2016. 9
[8] J. Dai, K. He, Y. Li, S. Ren, and J. Sun. Instance-sensitive
fully convolutional networks. In ECCV, 2016. 2
[9] J. Dai, K. He, and J. Sun. Convolutional feature masking for
joint object and stuff segmentation. In CVPR, 2015. 2
[10] J. Dai, K. He, and J. Sun. Instance-aware semantic segmen-
tation via multi-task network cascades. In CVPR, 2016. 2, 3,
4, 5, 6
[11] J. Dai, Y. Li, K. He, and J. Sun. R-FCN: Object detection via
region-based fully convolutional networks. In NIPS, 2016. 2
[12] R. Girshick. Fast R-CNN. In ICCV, 2015. 1, 2, 3, 4, 6
[13] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich fea-
ture hierarchies for accurate object detection and semantic
segmentation. In CVPR, 2014. 2, 3
[14] R. Girshick, F. Iandola, T. Darrell, and J. Malik. Deformable
part models are convolutional neural networks. In CVPR,
2015. 4
[15] B. Hariharan, P. Arbel´ aez, R. Girshick, and J. Malik. Simul-
taneous detection and segmentation. In ECCV. 2014. 2
[16] B. Hariharan, P. Arbel´ aez, R. Girshick, and J. Malik. Hyper-
columns for object segmentation and fine-grained localiza-
tion. In CVPR, 2015. 2
[17] Z. Hayder, X. He, and M. Salzmann. Shape-aware instance
segmentation. In CVPR, 2017. 9
[18] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling
in deep convolutional networks for visual recognition. In
ECCV. 2014. 1, 2
[19] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning
for image recognition. In CVPR, 2016. 2, 4, 7, 10
[20] J. Hosang, R. Benenson, P. Doll´ ar, and B. Schiele. What
makes for effective detection proposals? PAMI, 2015. 2

[21] J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara,
A. Fathi, I. Fischer, Z.Wojna, Y. Song, S. Guadarrama, et al.
Speed/accuracy trade-offs for modern convolutional object
detectors. In CVPR, 2017. 2, 3, 4, 6, 7
[22] M. Jaderberg, K. Simonyan, A. Zisserman, and
K. Kavukcuoglu. Spatial transformer networks. In
NIPS, 2015. 4
[23] A. Kirillov, E. Levinkov, B. Andres, B. Savchynskyy, and
C. Rother. Instancecut: from edges to instances with multi-
cut. In CVPR, 2017. 3, 9
[24] A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet clas-
sification with deep convolutional neural networks. In NIPS,
2012. 2
[25] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E.
Howard, W. Hubbard, and L. D. Jackel. Backpropagation
applied to handwritten zip code recognition. Neural compu-
tation, 1989. 2
[26] Y. Li, H. Qi, J. Dai, X. Ji, and Y. Wei. Fully convolutional
instance-aware semantic segmentation. In CVPR, 2017. 2,
3, 5, 6
[27] T.-Y. Lin, P. Doll´ ar, R. Girshick, K. He, B. Hariharan, and
S. Belongie. Feature pyramid networks for object detection.
In CVPR, 2017. 2, 4, 5, 7
[28] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ra-
manan, P. Doll´ ar, and C. L. Zitnick. Microsoft COCO: Com-
mon objects in context. In ECCV, 2014. 2, 5
[29] S. Liu, J. Jia, S. Fidler, and R. Urtasun. SGN: Sequen-
tial grouping networks for instance segmentation. In ICCV,
2017. 3, 9
[30] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional
networks for semantic segmentation. In CVPR, 2015. 1, 3, 6
[31] V. Nair and G. E. Hinton. Rectified linear units improve re-
stricted boltzmann machines. In ICML, 2010. 4
[32] G. Papandreou, T. Zhu, N. Kanazawa, A. Toshev, J. Tomp-
son, C. Bregler, and K. Murphy. Towards accurate multi-
person pose estimation in the wild. In CVPR, 2017. 8
[33] P. O. Pinheiro, R. Collobert, and P. Dollar. Learning to seg-
ment object candidates. In NIPS, 2015. 2, 3
[34] P. O. Pinheiro, T.-Y. Lin, R. Collobert, and P. Doll´ ar. Learn-
ing to refine object segments. In ECCV, 2016. 2, 3
[35] I. Radosavovic, P. Doll´ ar, R. Girshick, G. Gkioxari, and
K. He. Data distillation: Towards omni-supervised learning.
arXiv:1712.04440, 2017. 10
[36] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: To-
wards real-time object detection with region proposal net-
works. In NIPS, 2015. 1, 2, 3, 4, 7
[37] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: To-
wards real-time object detection with region proposal net-
works. In TPAMI, 2017. 10
[38] A. Shrivastava, A. Gupta, and R. Girshick. Training region-
based object detectors with online hard example mining. In
CVPR, 2016. 2, 5
[39] A. Shrivastava, R. Sukthankar, J. Malik, and A. Gupta. Be-
yond skip connections: Top-down modulation for object de-
tection. arXiv:1612.06851, 2016. 4, 7
[40] C. Sun, A. Shrivastava, S. Singh, and A. Gupta. Revisiting
unreasonable effectiveness of data in deep learning era. In
ICCV, 2017. 10

[41] C. Szegedy, S. Ioffe, and V. Vanhoucke. Inception-v4,
inception-resnet and the impact of residual connections on
learning. In ICLR Workshop, 2016. 7
[42] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A. W.
Smeulders. Selective search for object recognition. IJCV,
2013. 2
[43] X.Wang, R. Girshick, A. Gupta, and K. He. Non-local neural
networks. arXiv:1711.07971, 2017. 10
[44] S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh. Con-
volutional pose machines. In CVPR, 2016. 8
[45] S. Xie, R. Girshick, P. Doll´ ar, Z. Tu, and K. He. Aggregated
residual transformations for deep neural networks. In CVPR,
2017. 4, 10