【18k字】全文翻译KaimingHe ICCV17马尔奖文章:Mask R-CNN

在这里插入图片描述

本文获得Marr Prize(马尔奖) at ICCV 2017。同年RetinaNet工作获得Best Student Paper Award at ICCV 2017。

在这里插入图片描述

https://doi.org/10.1109/ICCV.2017.322

Article Reading Sharing. 仅限学习使用,请对比原文学习。本文为半成品,翻译结果存在不准确的地方,只可用于理解大意。

0. Abstract

We present a conceptually simple, flexible, and general framework for object instance segmentation.
我们提出了一个概念简单、灵活、通用的对象实例分割框架

Our approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance.
我们的方法有效地检测图像中的物体,同时为每个实例生成高质量的分割掩码。

The method, called Mask R-CNN, extends Faster R-CNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition.
该方法被称为Mask R-CNN,它扩展了Faster R-CNN,在现有的边界框识别分支的基础上,增加了一个用于预测对象掩码的分支。

Mask R-CNN is simple to train and adds only a small overhead to Faster R-CNN, running at 5 fps.
Mask R-CNN很容易训练,只增加了一个小的开销相对于Faster R-CNN,以5 fps运行。

Moreover, Mask R-CNN is easy to generalize to other tasks, e.g., allowing us to estimate human poses in the same framework.
此外,Mask R-CNN很容易推广到其他任务中,例如,允许我们在相同的框架中估计人体姿势。

We show top results in all three tracks of the COCO suite of challenges, including instance segmentation, boundingbox object detection, and person keypoint detection.
我们展示了COCO挑战套件的所有三个轨道的最佳结果,包括实例分割边界盒对象检测人物关键点检测

Without bells and whistles, Mask R-CNN outperforms all existing, single-model entries on every task, including the COCO 2016 challenge winners.
没有铃铛和口哨,Mask R-CNN在每个任务上都优于所有现有的单模型条目,包括COCO 2016挑战获胜者。

We hope our simple and effective approach will serve as a solid baseline and help ease future research in instance-level recognition.
我们希望我们简单有效的方法将作为一个坚实的基线,并有助于简化实例级识别的未来研究

Code has been made available at: https://github.com/facebookresearch/Detectron.
代码已在https://github.com/facebookresearch/Detectron上提供。

1. Introduction

视觉社区在短时间内迅速改进了对象检测和语义分割结果。在很大程度上,这些进步是由强大的基线系统推动的,例如分别用于对象检测和语义分割的Fast/Faster R-CNN [12、36] 和完全卷积网络 (FCN)[30] 框架。这些方法在概念上是直观的,提供了灵活性和鲁棒性,以及快速的训练和推理时间。我们在这项工作中的目标是为实例分割开发一个类似的支持框架。实例分割具有挑战性,因为它需要正确检测图像中的所有对象,同时还要精确分割每个实例。因此,它结合了对象检测的经典计算机视觉任务中的元素,其目标是对单个对象进行分类并使用边界框和语义对每个对象进行定位分割,目标是在不区分对象实例的情况下将每个像素分类到一组固定的类别中。 1 鉴于此,人们可能认为需要一种复杂的方法才能获得良好的结果。然而,我们证明了一个非常简单、灵活且快速的系统可以超越先前最先进的实例分割结果。

Our method, called Mask R-CNN, extends Faster R-CNN [36] by adding a branch for predicting segmentation masks on each Region of Interest (Rol), in parallel with the existing branch for classification and bounding box regression (Figure 1). The mask branch is a small FCN applied to each Rol, predicting a segmentation mask in a pixel-topixel manner.
我们的方法,称为Mask R-CNN,扩展了Faster R-CNN[36],在现有的分类和边界盒回归分支的基础上,在每个感兴趣区域(Rol)上增加了一个分支,用于预测分割掩码(segmentation Mask)(图1)。掩码分支是一个应用于每个Rol的小FCN,以像素-topixel的方式预测分割掩码。

在这里插入图片描述

Mask R-CNN is simple to implement and train given the Faster R-CNN framework, which facilitates a wide range of flexible architecture designs.
鉴于Faster R-CNN框架,Mask R-CNN易于实现和训练,这有助于广泛的灵活架构设计。

Additionally, the mask branch only adds a small computational overhead, enabling a fast system and rapid experimentation.
此外,掩码分支只增加了很小的计算开销,实现了快速的系统和快速的实验。

In principle Mask R-CNN is an intuitive extension of Faster R-CNN, yet constructing the mask branch properly is critical for good results.
原则上,Mask R-CNN是Faster R-CNN的直观扩展,但正确构建Mask分支对于获得良好结果至关重要。

Most importantly, Faster RCNN was not designed for pixel-to-pixel alignment between network inputs and outputs.
最重要的是,Faster RCNN不是为网络输入和输出之间的像素对像素对齐而设计的。

This is most evident in how RolPool [18, 12], the de facto core operation for attending to instances, performs coarse spatial quantization for feature extraction.
这在RolPool[18,12]中最为明显,它实际上是处理实例的核心操作,它为特征提取执行粗空间量化。

To fix the misalignment, we propose a simple, quantization-free layer, called RolAlign, that faithfully preserves exact spatial locations.
为了修复错位,我们提出了一个简单的、无量化的层,称为RolAlign,它忠实地保留了精确的空间位置。

尽管看似微小的变化,RoIAlign 却产生了巨大的影响:它将掩模准确度相对提高了 10% 到 50%,在更严格的定位指标下显示出更大的收益。其次,我们发现将掩码和类别预测分离是很重要的:我们独立地为每个类别预测一个二进制掩码,类别之间没有竞争,并依靠网络的 RoI 分类分支来预测类别。相比之下,FCN 通常执行每像素多类分类,将分割和分类结合起来,根据我们的实验,实例分割效果不佳。

没有花里胡哨的东西,Mask R-CNN 在 COCO 实例分割任务 [28] 上超越了之前所有最先进的单一模型结果,包括来自 2016 年竞赛获胜者的精心设计的参赛作品。作为副产品,我们的方法在 COCO 对象检测任务上也表现出色。在消融实验中,我们评估了多个基本实例,这使我们能够证明其稳健性并分析核心因素的影响。

我们的模型可以在 GPU 上以每帧约 200 毫秒的速度运行,而在一台 8 GPU 机器上进行 COCO 训练需要一到两天。我们相信,快速的训练和测试速度,以及框架的灵活性和准确性,将有利于并简化未来对实例分割的研究。

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

在这里插入图片描述

2. Related Work

2.1 R-CNN

R-CNN:用于边界框对象检测的基于区域的 CNN(R-CNN) 方法 [13] 是关注可管理数量的候选对象区域[42、20] 并评估卷积网络 [25 , 24] 独立于每个RoI。 R-CNN 得到扩展 [18, 12] 以允许使用 RoIPool关注特征图上的 RoI,从而实现更快的速度和更高的准确性。 Faster R-CNN [36] 通过使用区域提议网络(RPN) 学习注意力机制来推进该流。 Faster R-CNN 对许多后续改进(例如 [38、27、21])灵活且稳健,并且是当前多个基准测试中的领先框架

2.2 Instance Segmentation

实例分割:受 R-CNN 有效性的驱动,许多实例分割方法都基于分割提议(segment proposals)。早期的方法 [13、15、16、9] 求助于自下而上的片段 [42、2]。 DeepMask [33] 和后续作品 [34, 8] 学习提出候选片段,然后由 FastR-CNN 对其进行分类。在这些方法中,分割先于识别,这是缓慢且不太准确的。同样,Dai 等人。 [10]提出了一个复杂的多阶段级联,它从边界框提议中预测分段提议,然后进行分类。相反,我们的方法基于掩码和类标签的并行预测,更简单、更灵活。

最近,李等人。 [26] 将 [8] 中的分段建议系统和[11] 中的目标检测系统结合起来用于"完全卷积实例分割"(FCIS)。 [8,11,26] 中的共同思想是完全卷积地预测一组位置敏感的输出通道。这些通道同时处理对象类、框和掩码,使系统速度更快。但是 FCIS在重叠实例上表现出系统错误并产生虚假边缘(图6),表明它受到了分割实例的基本困难的挑战。

实例分割的另一系列解决方案 [23、4、3、29] 是由语义分割的成功驱动的。从每个像素的分类结果(例如,FCN 输出)开始,这些方法试图将同一类别的像素分成不同的实例。与这些方法的分割优先策略相反,Mask R-CNN 基于实例优先策略。我们预计未来将对这两种策略进行更深入的研究。

3. Mask R-CNN

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

3.1 Faster R-CNN

Faster R-CNN:我们首先简要回顾一下 Faster R-CNN检测器 [36]。 Faster R-CNN 由两个阶段组成。第一阶段称为区域提议网络 (RPN),提出候选对象边界框。第二阶段,本质上是 Fast R-CNN [12],使用RoIPool 从每个候选框中提取特征并执行分类和边界框回归。可以共享两个阶段使用的特征以加快推理速度。我们建议读者参考 [21],了解 Faster R-CNN 与其他框架之间最新的、全面的比较。

3.2 Mask R-CNN

Mask R-CNN:Mask R-CNN 采用相同的两阶段程序,具有相同的第一阶段(即 RPN)。在第二阶段,在预测类和框偏移的同时,Mask R-CNN 还为每个 RoI 输出一个二进制掩码。这与大多数最近的系统形成对比,其中分类取决于掩码预测(例如 [33、10、26])。我们的方法遵循 Fast R-CNN [12] 的精神,它并行应用边界框分类和回归(事实证明这在很大程度上简化了原始 R-CNN [13] 的多阶段管道)。

形式上,在训练期间,我们将每个采样 RoI 的多任务损失定义为 L = L cls + L box + L mask。分类损失 L cls 和边界框损失 L box 与 [12] 中定义的相同。 mask 分支对每个 RoI 都有一个 Km 2 维输出,它编码分辨率为 m×m 的 K 个二进制掩码,K 个类别中的每一个。为此,我们应用每像素 sigmoid,并将 L mask 定义为平均二元交叉熵损失。对于与真实类别 k 相关的 RoI,L mask 仅在第 k 个掩码上定义(其他掩码输出不影响损失)。

我们对 L 掩码的定义允许网络为每个类别生成掩码,而无需类别之间的竞争;我们依靠专门的分类分支来预测用于选择输出掩码的类标签。这解耦了掩码和类别预测。这与将 FCN [30] 应用于语义分割时的常见做法不同,后者通常使用每像素 softmax 和多项式交叉熵损失。在那种情况下,跨类面具竞争;在我们的例子中,对于每像素 sigmoid 和二元损失,它们没有。我们通过实验表明,该公式是获得良好实例分割结果的关键。

3.3 Mask Representation

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

具体来说,我们使用 FCN [30] 从每个 RoI 预测一个 m×m mask。这允许掩码分支中的每一层都保持显式的 m×m 对象空间布局,而不会将其折叠成缺乏空间维度的矢量表示。与以前使用 fc 层进行掩码预测的方法不同 [33、34、10],我们的全卷积表示需要更少的参数,并且如实验所证明的那样更准确。

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

3.4 RoIAlign

RoIAlign:RoIPool [12] 是一种标准操作,用于从每个 RoI 中提取一个小特征图(例如,7×7)。RoIPool 首先将浮点数 RoI 量化为特征图的离散粒度,然后将这个量化的 RoI 细分为本身量化的空间bin,最后每个 bin 覆盖的特征值是聚合(通常通过最大池化)。例如,通过计算 [x/16] 在连续坐标 x上执行量化,其中 16 是特征图步幅,[·] 是舍入;同样,在划分为 bin(例如 7×7)时执行量化。这些量化在 RoI 和提取的特征之间引入了错位。虽然这可能不会影响对小翻译具有鲁棒性的分类,但它对预测像素精确掩模有很大的负面影响。

为了解决这个问题,我们提出了一个 RoIAlign 层,它去除了RoIPool 的苛刻量化,将提取的特征与输入正确对齐。我们提议的更改很简单:我们避免对 RoI 边界进行任何量化或 bins(即,我们使用 x/16 而不是 [x/16])。我们使用双线性插值 [22] 来计算每个 RoI bin 中四个定期采样位置的输入特征的精确值,并聚合结果(使用最大值或平均值),详见图 3。我们注意到,只要不执行量化,结果对确切的采样位置或采样的点数不敏感。

正如我们在 §4.2 中展示的那样,RoIAlign 带来了巨大的改进。我们还与 [10] 中提出的 RoIWarp 操作进行了比较。与 RoIAlign 不同,RoIWarp 忽略了对齐问题,并在 [10] 中实现为量化 RoI,就像 RoIPool一样。因此,尽管 RoIWarp 也采用了由 [22] 驱动的双线性重采样,但它的性能与 RoIPool 相当,如实验所示(表 2c 中有更多详细信息),证明了对齐的关键作用。

在这里插入图片描述

3.5 Network Architecture

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

我们使用命名法(nomenclature)网络深度特征来表示骨干架构。我们评估深度为 50 或 101 层的 ResNet [19] 和 ResNeXt [45]网络。 Faster R-CNN 与 ResNets [19] 的原始实现从第 4 阶段的最终卷积层提取特征,我们称之为 C4。例如,这个带有 ResNet-50 的骨干由ResNet-50-C4 表示。这是 [19, 10, 21, 39] 中使用的常见选择。

我们还探索了 Lin 等人最近提出的另一个更有效的主干。 [27],称为特征金字塔网络(FPN)。 FPN使用具有横向连接自顶向下架构,从单尺度输入构建网络内特征金字塔。 Faster R-CNN with an FPN backbone 根据其规模从特征金字塔的不同层级提取RoI 特征,但该方法的其余部分类似于 vanilla ResNet。使用 ResNet-FPN 主干与 Mask R-CNN 进行特征提取可在准确性和速度方面获得出色的收益。有关 FPN 的更多详细信息,我们建议读者参阅 [27]。

对于网络头,我们密切遵循之前工作中提出的架构,我们在其中添加了一个完全卷积的掩码预测分支。具体来说,我们扩展了 ResNet [19] 和 FPN [27] 论文中的 Faster R-CNN box heads。详细信息如图 4 所示。ResNet-C4 骨干网的头部包括 ResNet 的第 5级(即第 9 层"res5"[19]),这是计算密集型的。对于 FPN,主干已经包含 res5,因此允许使用更少过滤器的更高效的头部。

我们注意到我们的掩码分支具有简单的结构。更复杂的设计有可能提高性能,但不是这项工作的重点。

在这里插入图片描述

3.6 Implementation Details

我们根据现有的 Fast/Faster R-CNN 工作 [12、36、27]设置超参数。尽管这些决定是在原始论文 [12、36、27]中针对对象检测做出的,但我们发现我们的实例分割系统对它们来说是稳健的。

3.6.1 Training

训练:与 Fast R-CNN 一样,如果 RoI 具有至少为 0.5 的真实框的 IoU,则被认为是正的,否则被认为是负的。mask loss L mask 仅在正 RoIs 上定义。 mask 目标是RoI 与其相关联的 ground-truth mask 之间的交集。

我们采用以图像为中心的训练[12]。调整图像大小,使其比例(较短的边缘)为 800 像素 [27]。每个mini-batch 每个 GPU 有 2 个图像,每个图像有 N 个采样RoI,正负比例为 1:3 [12]。 C4 主干的 N 为 64(如[12, 36] 中),FPN 的 N 为 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是单独训练的,不与 Mask R-CNN 共享特征,除非另有说明。对于本文中的每个条目,RPN 和 Mask R-CNN 具有相同的主干,因此它们是可共享的。

3.6.2 Inference

推论:在测试时,C4 主干的提议数为 300(如 [36]中),FPN 的提议数为 1000(如 [27] 中)。我们在这些建议上运行框预测分支,然后进行非最大抑制(non-maximum)[14]。然后将掩码分支应用于得分最高的 100 个检测框。尽管这与训练中使用的并行计算不同,但它加快了推理速度并提高了准确性(由于使用了更少、更准确的 RoIs)。mask分支可以预测每个 Rol 的 K masks,但我们只使用第 k 个 mask,其中 k 是分类分支预测的类别。然后将 mxm 浮点数掩码输出调整为 Rol 大小,并以 0.5 的阈值进行二值化。

请注意,由于我们只计算前 100 个检测框的掩码,因此Mask R-CNN 为其对应的 Faster R-CNN 添加了少量开销(例如,在typical模型上约为 20%)。

在这里插入图片描述
在这里插入图片描述

4. Experiments: Instance Segmentation

我们对 Mask R-CNN 与现有SOTA技术进行了全面比较,并对COCO 数据集进行了全面(comprehensive)消融 [28]。我们报告了标准的COCO 指标,包括 AP(平均超过 IoU 阈值)、AP50、AP75;和 AP s、AP m、AP l(不同尺度(scales)的 AP)。除非另有说明,否则 AP 正在使用掩码 IoU 进行评估。与之前的工作[5、27] 一样,我们使用 80k 训练图像和 35k val 图像子集 (trainval35k) 的联合进行训练,并报告剩余 5k val 图像(minival)的消融。我们还报告了test-dev [28]的结果。

4.1 Main Results

我们将 Mask R-CNN 与表 1 中实例分割中的SOTA方法进行了比较。我们模型的所有实例都优于先前最先进模型的基线变体。这包括 MNC [10] 和 FCIS[26],它们分别是 COCO 2015 和 2016 分割挑战的获胜者。没有附加功能,带有 ResNet-101-FPN 主干的Mask R-CNN 优于 FCIS+++ [26],后者包括多尺度训练/测试、水平翻转测试和在线硬示例挖掘 (OHEM)[38]。虽然超出了这项工作的范围,但我们希望许多此类改进适用于我们的工作。

Mask R-CNN 输出如图 2 和 5 所示。即使在具有挑战性的条件下,Mask R-CNN 也能取得良好的效果。在图 6中,我们比较了 Mask R-CNN 基线和 FCIS+++ [26]。FCIS+++ 在重叠实例上展示了系统的伪影,表明它受到实例分割的基本困难的挑战。 Mask R-CNN 没有显示出这样的伪影

在这里插入图片描述
在这里插入图片描述

4.2 Ablation Experiments

我们运行了一些消融来分析 Mask R-CNN。结果显示在表 2 中,接下来将进行详细讨论。

架构:表 2a 显示了具有各种主干的 Mask R-CNN。它受益于更深的网络(50 对 101)和先进的设计,包括FPN 和 ResNeXt。我们注意到并非所有框架都会自动受益于更深或更高级的网络(参见 [21] 中的基准测试)。

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

具体类的掩码vs.与类无关的掩码:我们的默认实例化预测特定于类的掩码,即一个mxm每班面具。有趣的是,具有类别不可知掩码的 MaskR-CNN(即预测单个 m×m 输出,而不考虑类别)几乎同样有效:它具有 29.7 掩码 AP,而 ResNet 上的特定类别对应物为 30.3 50-C4。这进一步突出了我们方法中的分工,该方法在很大程度上分离了分类和分割。

RoIAlign:我们提出的 RoIAlign 层的评估如表 2c 所示。对于这个实验,我们使用 ResNet-50-C4 骨干网,它的步幅为 16。RoIAlign 将 AP 提高了大约 3 个点,超过RoIPool,大部分增益来自高 IoU (AP 75)。 RoIAlign 对最大/平均池不敏感;我们在本文的其余部分使用平均值。此外,我们与 MNC [10] 中提出的同样采用双线性采样的RoIWarp 进行了比较。正如第 3 节中所讨论的,RoIWarp仍然量化 RoI,失去与输入的对齐。从表 2c 中可以看出,RoIWarp 的性能与 RoIPool 相当,但比 RoIAlign 差得多。这突出表明正确对齐是关键。

我们还使用 ResNet-50-C5 骨架评估 RoIAlign,它具有更大的 32 像素步幅。我们使用与图 4(右)相同的头部,因为 res5 头部不适用。表 2d 显示 RoIAlign 将mask AP 提高了 7.3 个点,并将 mask AP 75 提高了 10.5个点(相对改善 50%)。此外,我们注意到使用 RoIAlign,使用 stride-32 C5 特征(30.9 AP)比使用 stride-16 C4特征(30.3 AP,表 2c)更准确。 RoIAlign 在很大程度上解决了使用大步幅特征进行检测和分割的长期挑战。最后,当与 FPN 一起使用时,RoIAlign 显示 1.5 mask AP 和0.5 box AP 的增益,它具有更好的多级步幅。对于需要更精确对齐的关键点检测,RoIAlign 即使使用 FPN 也显示出很大的收益(表 6)。

在这里插入图片描述

Mask Branch:分割是一个像素到像素的任务,我们通过使用 FCN 来利用掩模的空间布局。在表 2e 中,我们使用 ResNet-50-FPN 主干比较了多层感知器 (MLP) 和FCN。使用 FCN 比 MLP 提供 2.1 掩模 AP 增益。我们注意到,我们选择这个主干是为了与 MLP 进行公平比较,FCN 头部的转换层没有经过预训练。

4.3 Bounding Box Detection Results

我们在表 3 中将 Mask R-CNN 与最先进的 COCO 边界框对象检测进行了比较。对于这个结果,即使训练了完整的 Mask R-CNN 模型,也只有分类和框输出是用于推理(掩码输出被忽略)。使用 ResNet-101-FPN 的 MaskR-CNN 优于所有先前最先进模型的基本变体,包括G-RMI [21] 的单模型变体,COCO 2016 检测挑战赛的获胜者.使用 ResNeXt-101-FPN,Mask R-CNN 进一步改进了结果,与 [39](使用 Inception-ResNet-v2-TDM)中最好的先前单个模型条目相比,框 AP 有 3.0 点的余量。

作为进一步的比较,我们训练了 Mask R-CNN 的一个版本,但没有 Mask 分支,在表 3 中用"FasterR-CNN,RoIAlign"表示。由于 RoIAlign,该模型的性能优于 [27] 中提出的模型。另一方面,它比 MaskR-CNN 低 0.9 个点的 box AP。因此,Mask R-CNN 在框检测方面的差距完全是由于多任务训练的好处。最后,我们注意到 Mask R-CNN 在其掩码和框 AP 之间取得了一个小差距:例如,在 37.1(掩码,表 1)和 39.8(框,表 3)之间有 2.7 个点。这表明我们的方法在很大程度上缩小了对象检测与更具挑战性的实例分割任务之间的差距。

4.4 Timing

4.4.1 Inference

推论:我们训练了一个 ResNet-101-FPN 模型,它在 RPN和 Mask R-CNN 阶段之间共享特征,遵循 Faster R-CNN[36] 的 4 步训练。该模型在 Nvidia Tesla M40 GPU上以每张图像 195 毫秒的速度运行(加上 15 毫秒的CPU 时间将输出调整为原始分辨率),并在统计上实现了与未共享模型相同的掩码 AP。我们还报告说,ResNet-101-C4 变体需要 400 毫秒,因为它有更重的箱头(图 4),因此我们不建议在实践中使用 C4 变体。尽管 Mask R-CNN 速度很快,但我们注意到我们的设计并未针对速度进行优化,并且可以实现更好的速度/准确性权衡 [21],例如,通过改变图像大小和提议数量,这超出了这张纸。

4.4.2 Training

训练:Mask R-CNN 训练起来也很快。在 COCOtrainval35k 上使用 ResNet-50-FPN 进行训练在我们的同步 8-GPU 实现中需要 32 小时(每 16 幅图像小批量0.72 秒),而使用 ResNet-101-FPN 需要 44 小时。事实上,在训练集上训练时,快速原型制作可以在不到一天的时间内完成。我们希望这种快速培训能够消除这一领域的主要障碍,并鼓励更多人对这一具有挑战性的课题进行研究。

5. Mask R-CNN for Human Pose Estimation

我们的框架可以很容易地扩展到人体姿势估计。我们将关键点的位置建模为一个单热掩码,并采用 MaskR-CNN 来预测 K 个掩码,K 个关键点类型(例如,左肩、右肘)中的每一种都有一个掩码。此任务有助于证明 Mask R-CNN 的灵活性。我们注意到我们的系统利用了人体姿势的最小领域知识,因为实验主要是为了证明 Mask R-CNN 框架的通用性。我们期望领域知识(例如,建模结构 [6])将与我们的简单方法相辅相成。

5.1 Implementation Details

实施细节:在针对关键点调整分割系统时,我们对其进行了微小的修改。对于实例的 K 个关键点中的每一个,训练目标是一个单热 m×m 二元掩模,其中只有一个像素被标记为前景。在训练期间,对于每个可见的真实关键点,我们最小化 m 2 路 softmax 输出的交叉熵损失(这鼓励要检测的单点)。我们注意到,与实例分割一样,K个关键点仍然被独立处理。我们采用 ResNet-FPN 变体,关键点头架构类似于图 4(右)中的架构。关键点头由八个 3×3 512-d 转换层组成,后面是一个反卷积层和 2× 双线性放大,产生 56×56 的输出分辨率。我们发现相对高分辨率的输出(与masks)是关键点级定位精度所必需的。

模型在所有包含注释关键点的 COCO trainval35k图像上进行训练。为了减少过度训练,因为这个训练集较小,我们使用从 [640, 800] 像素随机采样的图像尺度进行训练;推理是在 800 像素的单一尺度上进行的。我们训练 90k 次迭代,从 0.02 的学习率开始,在 60k 和 80k 次迭代时将其减少 10。我们使用阈值为 0.5 的边界框 NMS。其他细节与§3.1 中的相同。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 Main Results and Ablations

主要结果和消融:我们评估人物关键点 AP (AP kp) 并使用 ResNet-50-FPN 主干进行实验;更多的骨干将在附录中研究。表 4 显示我们的结果 (62.7 AP kp) 比使用多阶段处理管道的 COCO 2016 关键点检测获胜者[6] 高 0.9 个点(见表 4 的标题)。我们的方法相当简单和快速。

更重要的是,我们有一个统一的模型,可以在以 5 fps 运行时同时预测框、段和关键点。添加一个段分支(对于人类别)将测试开发上的 AP kp 提高到 63.1(表 4)。表 5 中显示了 minival 上多任务学习的更多消融。将掩码分支添加到仅框(即 FasterR-CNN)或仅关键点版本持续改进这些任务。然而,添加关键点分支会略微降低框/掩码 AP,这表明虽然关键点检测受益于多任务训练,但它不会反过来帮助其他任务。然而,联合学习所有这三个任务使一个统一的系统能够同时有效地预测所有输出(图 7)。我们还研究了 RoIAlign 对关键点检测的影响(表 6)。尽管这个 ResNet-50-FPN 骨干网有了更大的进步(例如,嵌套级别上有 4 个像素),但 RoIAlign 仍然比 RoIPool 有显着改进,AP kp 提高了 4.4 个点。这是因为关键点检测对定位精度更敏感。这再次表明对齐对于像素级定位至关重要,包括掩码和关键点。

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

在这里插入图片描述

6. Appendix A: Experiments on Cityscapes

城市景观实验

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

在这里插入图片描述

此任务上的实例分割性能由coco风格的掩码AP测量(在IoU阈值上的平均值);AP50(即,掩码AP在IoU为0.5)也被报告。

实施:我们将 Mask R-CNN 模型与 ResNet-FPN-50 骨干应用在一起;我们发现 101 层的对应物由于数据集较小而表现相似。我们使用从 [800, 1024] 中随机采样的图像尺度(短边)进行训练,这减少了过度拟合;推理是在 1024像素的单一尺度上进行的。我们使用每个 GPU 1 个图像的小批量大小(因此 8 个 GPU 上的 8 个图像)并训练模型进行 24k 次迭代,从 0.01 的学习率开始并在 18k 次迭代时将其减少到 0.001。在此设置下,单台 8 GPU 机器需要约 4 小时的训练

结果:表 7 将我们的结果与验证集和测试集上的最新技术进行了比较。在不使用粗训练集的情况下,我们的方法在测试中达到了 26.2 AP,比之前的最佳条目(DIN[3])相对提高了 30% 以上,并且也优于 SGN 的 25.0[29] 的并行工作. DIN 和 SGN 都使用 fine + coarse数据。与仅使用精细数据的最佳条目(17.4 AP)相比,我们实现了约 50% 的改进。

对于人和汽车类别,Cityscapes 数据集展示了大量类别内的重叠实例(每张图像平均有 6 个人和 9 辆汽车)。我们认为类别内重叠是实例分割的核心困难。我们的方法显示在这两个类别上比其他最佳条目有了巨大的改进(人从 21.8 到 30.5相对提高了约 40%,汽车从 39.4 到 46.9 提高了约 20%),即使我们的方法没有利用粗略的数据。

在这里插入图片描述

Cityscapes 数据集的一个主要挑战是在低数据条件下训练模型,特别是对于卡车、公共汽车和火车类别,它们有大约 200-500 个训练样本。为了部分解决这个问题,我们进一步报告了使用 COCO 预训练的结果。为此,我们从预训练的 COCO Mask R-CNN 模型(骑手被随机初始化)初始化 Cityscapes 中相应的 7 个类别。我们对该模型进行 4k 次迭代微调,其中学习率在 3k 次迭代时降低,给定 COCO 模型需要大约 1 小时的训练时间。

COCO 预训练的 Mask R-CNN 模型在测试中达到32.0 AP,比仅精细模型提高了近 6 个百分点。这表明训练数据量所起的重要作用。它还表明,Cityscapes 上的方法可能会受到其 Jowshot学习表现的影响。我们表明,使用 COCO 预训练是该数据集的有效策略。

最后,我们观察到 val 和 test AP 之间存在偏差,这也从 [23, 4, 29] 的结果中观察到了。我们发现这种偏差主要是由卡车、公共汽车和火车类别引起的,仅精细模型的验证/测试 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。请注意,对于人和汽车类别,我们没有看到任何此类偏差(验证/测试 AP 在 +1 分以内)。

在这里插入图片描述

7. Appendix B: Enhanced Results on COCO

作为一个通用框架,Mask R-CNN 与为检测/分割开发的互补技术兼容,包括对 Fast/Faster R-CNN 和FCN 的改进。在本附录中,我们描述了一些改进我们原始结果的技术。由于其通用性和灵活性,MaskR-CNN 被 COCO 2017 实例分割竞赛的三个获胜团队用作框架,它们都显着优于之前的最先进技术。

7.1 Instance Segmentation and Object Detection

我们在表 8 中报告了 Mask R-CNN 的一些增强结果。总体而言,这些改进增加了 Mask AP 5.1 点(从 36.7到 41.8)和 box AP 7.7 点(从 39.6 到 47.3)。每个模型改进都一致地增加了 Mask AP 和 Box AP,显示了Mask R-CNN 框架的良好泛化。接下来我们将详细介绍这些改进。这些结果以及未来的更新可以通过我们在https://github.com/facebookresearch/Detectron 上发布的代码重现,并可以作为未来研究的更高基线。

更新的基线:我们从具有不同超参数集的更新基线开始。我们将训练延长到 180k 次迭代,其中学习率在120k 和 160k 次迭代时降低了 10。我们还将 NMS 阈值更改为 0.5(默认值为 0.3)。更新后的基线有 37.0mask AP 和 40.5 box AP。端到端训练:之前的所有结果都使用阶段性训练,即训练 RPN 作为第一阶段,MaskR-CNN 作为第二阶段。在 [37] 之后,我们评估了联合训练 RPN 和 Mask R-CNN 的端到端 (â e2eâ) 训练。我们采用 [37] 中的"近似"版本,该版本仅通过忽略梯度w.r.t 来计算 RoIAlign 层中的部分梯度。投资回报率坐标。表 8 显示,e2e 训练将 mask AP 提高了 0.6,将box AP 提高了 1.2。 ImageNet-5k 预训练:在 [45] 之后,我们对在 ImageNet 的 5k 类子集(与标准的 1k 类子集相比)上预训练的模型进行了实验。预训练数据的这种 5× 增加提高了 mask 和 box 1 AP。作为参考,[40]使用了 ∼ 250 幅图像 (300M) 并报告了其基线的 2-3框 AP 改进。

Train-time augmentation:训练时的规模增加进一步改善了结果。在训练过程中,我们从 [640, 800] 像素中随机采样一个尺度,并将迭代次数增加到 260k(在200k 和 240k 迭代时学习率降低 10)。训练时间增强将 mask AP 提高 0.6,将 box AP 提高 0.8。

模型架构:通过将 101 层 ResNeXt 升级到对应的152 层 [19],我们观察到 0.5 mask AP 和 0.6 box AP增加了。这表明更深层次的模型仍然可以改善 COCO 上的结果。使用最近提出的非本地 (NL) 模型 [43],我们实现了 40.3 mask AP 和 45.0 box AP。这个结果没有测试时间增强,并且该方法在测试时在 Nvidia TeslaP100 GPU 上以 3fps 的速度运行。测试时间增强:我们将使用 [400, 1200] 像素的比例评估的模型结果与 100的步长和它们的水平 ips 相结合。这为我们提供了41.8 mask AP 和 47.3 box AP 的单一模型结果。上述结果是我们提交给 COCO 2017 比赛的基础(也使用了一个集成,这里不讨论)。据报道,实例分割任务的前三个获胜团队都是基于 Mask R-CNN 框架的扩展。

7.2 Keypoint Detection

在这里插入图片描述

我们在表 9 中报告了关键点检测的增强结果。作为更新的基线,我们将训练计划扩展到 130k 次迭代,其中学习率在 100k 和 120k 次迭代时降低了 10。这将 APkp 提高了大约 1 点。用 ResNet-101 和 ResNeXt-101替换 ResNet-50 将 AP kp 分别增加到 66.1 和 67.3。借助最近称为数据蒸馏 [35] 的方法,我们能够利用COCO 提供的额外 120k 未标记图像。简而言之,数据蒸馏是一种自我训练策略,它使用在标记数据上训练的模型来预测未标记图像上的注释,然后用这些新注释更新模型。 Mask R-CNN 为这种自训练策略提供了一个有效的框架。通过数据蒸馏,Mask R-CNN AP kp 提高了 1.8个点,达到 69.1。我们观察到 Mask R-CNN 可以从额外数据中获益,即使该数据未标记。

通过使用与实例分割相同的测试时间增强,我们进一步将 AP kp 提高到 70.4。

8. Acknowledgements

We would like to acknowledge Ilija Radosavovic for contributions to code release and enhanced results, and the Caffe2 team for engineering support.

代码release 和 工程支持

Reference

在IEEE访问文档需要订阅:https://doi.org/10.1109/ICCV.2017.322

在这里插入图片描述


https://github.com/facebookresearch/Detectron

https://gitee.com/mindspore/models/tree/master/official/cv/MaskRCNN/maskrcnn_resnet50

My thought

Mask R-CNN with DAFPN

欢迎在评论区讨论本文 及指正

在这里插入图片描述

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛码Memmat

欢迎支持,随缘打赏 ~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值