Abstract
- 我们提出了一个概念上简单,灵活,通用的对象实例分割框架。我们的方法可以有效地检测图像中的对象,同时为每个实例生成高质量的分割掩码。该方法称为掩模R-CNN,通过添加用于预测与现有分支并行的对象掩模的分支来扩展更快的R-CNN以用于边界框识别。Mask R-CNN很容易训练,只需很少的开销就可以以5 fps的速度加速R-CNN。此外,Mask R-CNN很容易推广到其他任务,例如,允许我们在同一框架中估计人体姿势。我们在COCO挑战套件的所有三个轨道中展示了最佳结果,包括实例分割,边界框对象检测和人员关键点检测。没有花里胡哨,Mask R-CNN在每项任务上都超越了所有现有的单一模型条目,包括2016年Coco挑战赛的获胜者。 我们希望我们简单有效的方法将成为一个坚实的基线,并有助于简化未来在实例级认可方面的研究。
Introduction
- 视觉社区在短时间内迅速改进了对象检测和语义分割结果。 在很大程度上,这些进步是由强大的基线系统驱动的,例如快速/快速RCNN [12,36]和完全卷积网络(FCN)[30]框架分别用于对象检测和语义分割。这些方法在概念上是直观的,并提供灵活性和稳健性,以及快速的培训和推理时间。 我们在这项工作中的目标是为实例细分开发一个可比较的支持框架。
- 实例分割具有挑战性,因为它需要正确检测图像中的所有对象,同时还要精确地分割每个实例。 因此,它结合了来自对象检测的经典计算机视觉任务的元素,其目标是对各个对象进行分类并使用边界框对每个对象进行定位,以及语义分割,其目标是将每个像素分类为固定的类别集而不区分 对象实例。鉴于此,人们可能期望需要一种复杂的方法来获得良好的结果。 然而,我们表明,一个令人惊讶的简单,灵活,快速的系统可以超越先前的最新实例分割结果。
- 我们的方法称为Mask R-CNN,通过添加一个分支来预测每个感兴趣区域(RoI)的分割掩码,与现有的分类和边界框回归分支(图1),扩展了更快的R-CNN [36]。。 掩模分支是应用于每个RoI的小FCN,以像素 - 像素方式预测分割掩模。 Mask R-CNN易于实现和训练,因为它提供了更快的R-CNN框架,这有助于广泛的灵活架构设计。 此外,掩盖不可避免地增加了计算能力,实现了快速系统和快速实验。
- 原则上,掩模R-CNN是快速R-CNN的直观扩展,但正确构建掩模分支对于获得良好结果至关重要。最重要的是,更快的RCNN不是为网络输入和输出之间的像素到像素对齐而设计的。这一点在RoIPool [18,12](参与实例的事实上的核心操作)如何为特征提取执行粗略空间量化方面最为明显。为了解决这个错位,我们提出了一个简单的,无量化的层,称为RoIAlign,它忠实地保留了精确的空间位置。尽管看似微小的变化,但RoIAlign的影响很大:它将掩模精度提高了10%到50%,在更严格的本地化指标下显示出更大的收益。其次,我们发现将掩模和类预测分离是必不可少的:我们独立地预测每个类的二进制掩码,没有类之间的竞争,并依赖于网络的RoI分类分支来预测类别。相比之下,FCN通常执行逐像素多类别分类,其结合分段和分类,并且基于我们的实验,例如分割效果不佳。
- 没有花里胡哨,Mask R-CNN在COCO实例分割任务[28]上超越了所有先前最先进的单一模型结果,包括来自2016年竞赛获胜者的重度工程条目。 作为副产品,我们的方法也擅长COCO对象检测任务。 在消融实验中,我们评估了多个基本实例,这使我们能够证明其稳健性并分析核心因素的影响。
- 我们的模型可以在GPU上以大约200ms的速度运行,并且COCO上的培训在单个8-GPU机器上需要一到两天。 我们相信快速的训练和测试速度,以及框架的灵活性和准确性,将有利于未来的实例细分研究。
Related Work
- 基于区域的CNN(R-CNN)方法用于边界框对象检测是为了处理可管理数量的候选对象区域并且在每个RoI上独立地评估卷积网络。 R-CNN被扩展以允许使用RoIPool在特征地图上参加RoI,从而实现更快的速度和更高的准确性。 更快的R-CNN通过学习区域提议网络(RPN)的注意机制来推进这一流。 更快的R-CNN对于许多后续改进是灵活且稳健的,并且是若干基准中的当前领先框架。
- 在RCNN的有效性的推动下,许多实例细分方法都基于细分提议。 早期的方法[13,15,16,9]采用了自下而上的段[42,2]。 DeepMask [33]及其后的作品[34,8]学会提出段候选,然后由快速R-CNN分类。在这些方法中,分割先于识别,这是缓慢且不太准确的。 同样,戴等人提出了一个复杂的多阶段级联,它可以预测来自边界框提议的分段提议然后进行分类。 相反,我们的方法基于掩模和类标签的并行预测,这更简单更灵活。
- 最近,李等人将[8]中的分段建议系统和[11]中的目标检测系统结合起来,用于“完全卷积实例分割”(FCIS)。 [8,11,26]中的常见想法是完全卷积地预测一组位置敏感输出通道。 这些通道同时处理对象类,盒子和掩码,使系统快速。 但FCIS在重叠实例上表现出系统误差并产生虚假边缘(图6),表明它受到分段实例的基本困难的挑战。
- 实例分割的另一系列解决方案[23,4,3,29]由语义分割的成功驱动。 从每像素分类结果(例如,FCN输出)开始,这些方法试图将相同类别的像素切割成不同的实例。 与这些方法的分段 - 第一策略相比,Mask R-CNN基于实例 - 第一策略。 我们预计未来将研究两种策略的更深层次结合。
Mask R-CNN
- 掩码R-CNN在概念上很简单:更快的R-CNN为每个候选对象提供两个输出,一个类标签和一个边界框偏移; 为此,我们添加了第三个输出对象掩码的分支。因此,面具R-CNN是一种自然而直观的想法。 但是额外的掩模输出与类和框输出不同,需要提取对象的更多空间布局。 接下来,我们介绍Mask R-CNN的关键元素,包括像素到像素的对齐,这是Fast / Faster R-CNN的主要缺失部分。
- 我们首先回顾一下快速的R-CNN探测器[36]。 更快的R-CNN包括两个阶段。 第一阶段称为区域提议网络(RPN),提出候选对象边界框。 第二阶段,实质上是快速R-CNN [12],从每个候选框中使用RoIPool提取特征,并执行分类和边界框回归。 可以共享两个阶段使用的功能以加快推理速度。 我们向读者推荐[21],以便在快速R-CNN和其他框架之间进行最新,全面的比较。
- 掩模R-CNN采用相同的两阶段过程,具有相同的第一阶段(即RPN)。 在第二阶段,与预测类和盒偏移并行,Mask R-CNN还为每个RoI输出二进制掩码。 这与最近的系统形成对比,其中分类取决于掩模预测。我们的方法遵循Fast R-CNN [12]的精神,它并行应用边界框分类和回归(结果大大简化了原始R-CNN的多级流水线[13])。
- 正式地,在训练期间,我们将每个采样的RoI上的多任务损失定义为
掩码分支对于每个RoI具有
维度输出,其编码分辨率为
的K个二进制掩码,每个K类对应一个。 为此,我们应用每像素sigmoid,并定义
作为平均二元交叉熵损失。 对于与地面真值类k相关联的RoI,
仅在第k个掩模上定义。
- 我们对
的定义允许网络为每个类生成掩码,而不需要在类之间进行竞争; 我们依靠专用的分类分支来预测用于选择输出掩码的类标签。 这解耦了掩码和类预测。 这与将FCN [30]应用于语义分割时的常规做法不同,语义分割通常使用单像素softmax和多项交叉熵损失。 在这种情况下,各类的面具竞争; 在我们的例子中,每像素sigmoid和二进制丢失,他们没有。 我们通过实验表明,该公式是良好实例分割结果的关键。掩码编码输入对象的空间布局。 因此,与通过完全连接(fc)层不可避免地折叠成短输出矢量的类标签或盒偏移不同,提取掩模的空间结构可以通过由卷积提供的像素到像素的对应自然地解决。
- 具体而言,我们使用FCN预测每个RoI的m×m掩模[30]。 这允许掩模分支中的每个层保持显式的m×m对象空间布局,而不将其折叠成缺少空间维度的矢量表示。 与先前使用fc层进行掩模预测[33,34,10]的方法不同,我们的完全卷积表示需要更少的参数,并且通过实验证明更准确。
- 这种像素到像素的行为要求我们的RoI特征(它们本身就是小特征映射)要很好地对齐,以忠实地保持显式的每像素空间对应关系。 这促使我们开发以下RoIAlign层,该层在掩模预测中起关键作用。
- RoIPool [12]是用于从每个RoI提取小特征映射(例如,7×7)的标准操作。 RoIPool首先将浮点数RoI量化为特征映射的离散粒度,然后将该量化的RoI细分为空间区间,这些区间本身被量化,并且最终由每个区间覆盖的特征值被聚合。例如,通过计算[x / 16]在连续坐标x上执行量化,其中16是特征图步幅并且[·]是舍入的; 同样地,当分成区间(例如,7×7)时执行量化。 这些量化引入了RoI和提取的特征之间的未对准。 虽然这可能不会影响分类,这对小变换很有效,但它对预测像素精确掩模有很大的负面影响。
- 为了解决这个问题,我们提出了一个RoIAlign层来消除RoIPool的严格量化,正确地将提取的特征与输入对齐。我们提出的改变很简单:我们避免对RoI边界或区间进行任何量化(即,我们使用x / 16而不是[x / 16])。 我们使用双线性插值[22]计算每个RoI仓中四个常规采样位置的输入要素的精确值,并汇总结果(使用最大值或平均值),详见图3。 我们注意到,只要不执行量化,结果对精确采样位置或采样点数不敏感。
- 正如我们在§4.2中所展示的那样,RoIAlign带来了巨大的改进。 我们还比较了[10]中提出的RoIWarp操作。 与RoIAlign不同,RoIWarp忽略了对齐问题,并在[10]中实现为量化RoI,就像RoIPool一样。 因此,即使RoIWarp也采用了[22]推动的双线性重采样,它的性能与RoIPool相当,如实验所示(表2c中的更多细节),证明了对齐的关键作用。
- 为了演示我们方法的一般性,我们使用多种体系结构实例化Mask R-CNN。 为清楚起见,我们区分:(i)用于整个图像上的特征提取的卷积骨干架构,以及(ii)用于边界框识别(分类和回归)的网络头和单独应用于每个RoI的掩模预测。
- 我们使用命名法网络深度特征来表示骨干架构。 我们评估深度为50或101层的ResNet [19]和ResNeXt [45]网络。 最快的R-CNN与ResNets [19]的实现从第4阶段的最终卷积层中提取了特征,我们称之为C4。 例如,ResNet-50的这个主干由ResNet-50-C4指定。 这是[19,10,21,39]中常用的选择。
- 我们还探索了Lin等人最近提出的另一个更有效的主干称为特征金字塔网络(FPN)。FPN使用具有横向连接的自上而下架构,从单一尺度输入构建网内特征金字塔。 具有FPN骨干的更快的R-CNN根据其规模从特征金字塔的不同级别提取RoI特征,但是该方法的其余部分类似于vanilla ResNet。 使用ResNet-FPN骨干网通过Mask RCNN进行特征提取,可以在精度和速度方面获得极佳的提升。 有关FPN的更多详细信息,请参阅[27]。
- 对于网络头,我们密切关注以前工作中提出的体系结构,我们在其中添加了完全卷积模板预测分支。 具体而言,我们从ResNet [19]和FPN [27]论文中扩展了更快的R-CNN盒头。详细信息如图4所示.ResNet-C4主干网的头部包括ResNet的第5阶段(即9层'res5'[19]),这是计算密集型的。 对于FPN,骨干网已经包含res5,因此允许使用更少滤波器的更高效的磁头。
- 我们注意到我们的掩模分支具有简单的结构。 更复杂的设计有可能提高性能,但不是这项工作的重点。
- 如同在快速R-CNN中一样,如果它具有IoU,其地面实况框至少为0.5,则为负,否则为负。 掩模丢失Lmask仅在正RoI上定义。 掩模目标是RoI与其相关的地面实况掩模之间的交集。我们采用以图像为中心的培训[12]。 调整图像大小以使其比例(较短边缘)为800像素[27]。 每个小批量每个GPU有2个图像,每个图像有N个采样的RoI,正负比为1:3 [12]。 C4主干的N为64(如[12,36]),FPN为512(如[27])。 我们在8个GPU(有效的小批量大小为16)上进行160k次迭代训练,学习率为0.02,在120k迭代时减少10。 我们使用0.0001的重量衰减和0.9的动量。 使用ResNeXt [45],我们训练每个GPU有1个图像和相同的迭代次数,起始学习率为0.01。在[27]之后,RPN锚点跨越5个尺度和3个纵横比。 为方便消融,除非另有说明,否则RPN将单独训练,不与Mask R-CNN共享功能。 对于本文中的每个条目,RPN和Mask R-CNN具有相同的主干,因此它们是可共享的。在测试时,C4主干的提议编号为300(如[36]所示),FPN为1000(如[27])。 我们在这些提议上运行盒子预测分支,然后是非最大抑制[14]。 然后将掩模分支应用于最高得分100检测框。 虽然这与训练中使用的并行计算不同,但它加速了推理并提高了准确性(由于使用更少,更准确的RoI)。 掩码分支canpredictK掩码perRoI,但我们只使用第k个掩码,其中k是分类分支的预测类。 然后将m×m浮点数掩码输出调整大小为RoI大小,并在阈值0.5处二进制化。
Mask R-CNN for Human Pose Estimation
- 我们的框架可以很容易地扩展到人体姿势估计。 我们将关键点的位置建模为单热掩模,并采用Mask R-CNN来预测K个掩模,每个K个关键点类型(例如,左肩,右肘)都有一个。 此任务有助于证明Mask R-CNN的灵活性。 我们注意到,我们的系统利用了人类姿势的最小领域知识,因为实验主要是为了证明Mask R-CNN框架的一般性。 我们期望领域知识(例如,建模结构[6])将与我们的简单方法互补。