前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mask R-CNN

Mask R-CNN

作者头像
狼啸风云
修改2022-09-04 21:17:49
1.7K0
修改2022-09-04 21:17:49
举报
文章被收录于专栏:计算机视觉理论及其实现

摘要

我们提出了一个概念简单、灵活和通用的目标实例分割框架。我们的方法有效地检测图像中的目标,同时为每个实例生成高质量的分割掩码。该方法称为Mask R-CNN,通过添加一个分支来预测一个目标掩码,与现有的用于边界框识别的分支并行,从而扩展了Faster R-CNN。Mask R-CNN训练简单,只增加了一个小开销到Faster R-CNN,运行在5帧每秒。此外,Mask R-CNN很容易推广到其他任务,例如,允许我们在相同的框架下估计人类的姿态。我们展示了COCO套件中所有三个方面的顶级结果,包括实例分割、边界框目标检测和人员关键点检测。没有花哨的修饰,Mask R-CNN在每个任务上都比所有现有的单模型条目表现得更好,包括COCO 2016挑战赛冠军。我们希望我们的简单而有效的方法将作为一个坚实的baseline,并有助于简化未来在实例级识别方面的研究。

1、简介

视觉社区在短时间内快速改进了目标检测和语义分割结果。在很大程度上,这些进步是由强大baseline系统驱动的,例如分别用于目标检测和语义分割的Fast / Faster R-CNN和全卷积网络(FCN)框架。这些方法在概念上是直观的,具有灵活性和鲁棒性,以及快速的训练和推理时间。在这项工作中,我们的目标是开发一个比较支持实例分割的框架。实例分割具有挑战性,因为它要求正确地检测图像中的所有目标,同时精确地分割每个实例。因此结合了古典元素从计算机视觉任务的目标检测、目标是单个目标进行分类和定位每一个使用一个边界框,和语义分割,目标是每个像素分类为一组固定的类别没有区分目标实例。考虑到这一点,人们可能认为需要使用复杂的方法才能获得良好的结果。然而,我们展示了一个令人惊讶的简单、灵活和快速的系统可以超越以前最先进的实例分割结果。

我们的方法,称为Mask R-CNN,扩展Faster R-CNN通过添加一个分支预测分割面具感兴趣的每个区域(RoI),与现有的并行分支分类和边界框回归(图1)。Mask 分支是一个小FCN应用于每一个RoI,预测分割掩盖pixel-to-pixel的方式。Mask R-CNN是简单的实现和训练,因为Faster R-CNN框架,这有利于广泛的灵活的架构设计。此外,掩码分支只增加了很小的计算开销,支持快速系统和快速实验。

原则上,Mask R-CNN是Faster R-CNN的一个直观扩展,但是正确地构造掩码分支对于获得良好的结果是至关重要的。最重要的是,Faster R-CNN不是为网络输入和输出之间的像素对像素对齐而设计的。这一点在RoI池中表现得最为明显,RoI池实际上是处理实例的核心操作,它执行粗空间量化来提取特征。为了修正偏差,我们提出了一个简单的、无量化的层,称为RoI Align,它忠实地保留了精确的空间位置。尽管看起来是一个很小的变化,RoI Align却有很大的影响:它将掩码精度提高了10%到50%,在更严格的本地化指标下显示出更大的收益。其次,我们发现解耦掩码和类预测是必要的:我们独立地为每个类预测一个二进制掩码,不存在类之间的竞争,并依赖于网络的RoI分类分支来预测类别。与此相反,FCNs通常采用逐像素多类分类的方法,将分割和分类结合起来,而基于我们的实验,FCNs在分割实例方面的效果并不理想。

没有多于的修饰,Mask R-CNN超过了之前所有的最先进的单模型在COCO实例分割任务的结果,包括从2016年大赛冠军的繁重工程的条目。作为一个副产品,我们的方法也擅长于COCO目标检测任务。在烧蚀实验中,我们评估了多个基本实例,这使我们能够证明其鲁棒性,并分析核心因素的影响。我们的模型可以在GPU上以每帧200毫秒的速度运行,在一台8-GPU的机器上进行COCO的训练需要一到两天的时间。我们相信,快速列车和测试速度,以及框架的灵活性和准确性,将有利于和简化未来的研究实例分割。最后,通过对COCO keypoint数据集进行人体姿态估计,展示了该框架的通用性。通过将每个关键点看作一个单一的热二进制掩码,用最小的修改Mask R-CNN可以检测特定于实例的姿态。Mask R-CNN超越2016COCO关键点大赛冠军,同时以5帧/秒的速度运行。因此,Mask R-CNN可以被广泛地看作是一个用于实例级识别的灵活框架,并且可以很容易地扩展到更复杂的任务中。

3、Mask R-CNN

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

Faster R-CNN:我们首先简要回顾一下Faster R-CNN检测器。Faster R-CNN包括两个阶段。第一阶段称为区域建议网络(RPN),提出候选Faster 边界框。第二阶段本质上是Fast R-CNN,利用RoIPool从每个候选框中提取特征,进行分类和边界框回归。这两个阶段使用的特性可以共享,以便更快地进行推理。

Mask R-CNN:Mask R-CNN采用相同的两阶段过程,第一阶段相同(即RPN)。在第二阶段,除了预测类和框偏移量,Mask R-CNN还为每个RoI输出一个二进制掩码。这与最近的系统形成了对比,在最近的系统中,分类依赖于掩模预测。我们的方法遵循了Fast R-CNN的精神,并行地应用了边界框分类和回归(这在很大程度上简化了原始R-CNN的多级流程)。

在训练过程中,我们将每个采样RoI上的多任务损失正式定义为L = Lcls +Lbox +Lmask。分类损失Lcls和边界框损失Lbox与Fast R-CNN中定义的分类损失Lcls和边界框损失Lbox是相同的。掩码分支为每个RoI提供一个

Km^2-dimensional
Km^2-dimensional

输出,它编码K个分辨率为m×m的二进制掩码,每个K类对应一个。为此,我们应用了一个逐像素的sigmoid,并将Lmask定义为平均二进制交叉熵损失。对于与ground-truth类k相关联的RoI, Lmask只定义在第k个掩码上(其他掩码输出不会造成损失)。我们对Lmask的定义允许网络为每个类生成掩码,而不用在类之间竞争;我们依赖于专用的分类分支来预测用于选择输出掩码的类标签。这个解耦掩码和类预测。这与将FCNs应用于语义分割时的常见做法不同,后者通常使用每个像素的softmax和多项交叉熵损失。在这种情况下,跨类的掩码竞争;在我们的例子中,对于每个像素的乙状元和二进制损失,它们没有。实验表明,该方法是实现实例分割效果的关键。

Mask表示:掩码编码输入目标的空间布局。因此,与类标签或盒偏移量不可避免地被全连接(fc)层折叠成短输出向量不同,提取掩码的空间结构可以通过卷积提供的像素对像素的对应关系自然地进行处理。具体来说,我们使用FCN从每个RoI中预测一个m×m掩码。这允许掩模分支中的每一层维护显式的m×m对象空间布局,而不会将其折叠成缺乏空间维度的向量表示形式。与以往使用fc层进行掩模预测的方法不同,我们的全卷积表示需要更少的参数,而且实验证明更准确。这种像素对像素的行为要求我们的RoI特性(它们本身就是小的特征映射)保持良好的对齐,以忠实地保存显式的每个像素的空间对应关系。这促使我们开发下面的RoIAlign层,它在掩模预测中起着关键作用。

RoIAlign:RoIPool是从每个RoI中提取小feature map(例如,7×7)的标准操作。RoIPool首先将一个浮点数RoI量化为特征图的离散粒度,然后将这个量化的RoI细分为空间bin,空间bin本身也进行了量化,最后将每个bin覆盖的特征值进行聚合(通常通过max pooling)。通过计算[x/16]对连续坐标x进行量化,其中16为feature map stride,[·]为舍入;同样的,量化是在分成箱子的时候进行的(例如,7×7)。这些量化在RoI和提取的特征之间引入了失调。虽然这可能不会影响分类,这是稳健的小翻译,它有一个很大的负面影响预测像素准确的面具。为了解决这个问题,我们提出了一个RoIAlign层,它消除了RoIPool的严格量化,正确地将提取的特性与输入对齐。我们建议的改变很简单:我们避免任何RoI边界或箱子的量化(即,我们用x/16代替[x/16])。我们使用双线性插值来计算每个RoI bin中四个定期采样位置的输入特征的精确值,并将结果聚合(使用max或average),具体见图3。我们注意到,只要不进行量化,结果对精确的采样位置或采样的点数并不敏感。正如我们在§4.2中所展示的,RoIAlign带来了很大的改进。我们还比较了在中提出的RoIWarp操作。与RoIAlign不同,RoIWarp忽略了对齐问题,并像RoIPool一样在中实现了RoI的量化。因此,虽然RoIWarp也采用了[22]激励下的双线性重采样,但实验表明其性能与RoIPool相当(详见表2c),说明了对齐的关键作用。

网络结构:为了演示我们的方法的通用性,我们用多个架构实例化了Mask R-CNN。为了清晰起见,我们区分了:(i)用于整个图像特征提取的卷积主干架构,以及(ii)分别应用于每个RoI的边界框识别(分类和回归)和掩码预测的网络头。我们使用命名法网络深度特性来表示主干架构。我们评估了深度为50或101层的ResNet和ResNeXt网络。原始实现的Faster R-CNN与ResNets提取的特征,从最后的卷积层的第4阶段,我们称之为C4。例如,这个带有ResNet-50的主干用ResNet-50- c4表示。这是在中常用的选择。我们还探索了Lin等人最近提出的另一种更有效的主干,称为特征金字塔网络(FPN)。FPN采用自顶向下的横向连接架构,从单尺度输入构建网络内特征金字塔。Faster R-CNN与FPN骨干提取RoI特征从不同层次的特征金字塔根据他们的规模,但其他方面的方法类似于香草ResNet。使用ResNet-FPN骨干网和掩码R- CNN进行特征提取,在精度和速度上都有很好的提高。对于网络头,我们密切关注前面工作中介绍的架构,其中我们添加了一个完全卷积掩码预测分支。具体来说,我们从ResNet和FPN论文中扩展了Faster R-CNN盒头。细节如图4所示。在ResNet- C4骨干上的头部包括ResNet的第5阶段(即9层的“res5”),这是计算密集型的。对于FPN,主干已经包含res5,因此允许使用更少过滤器的更有效的head。我们注意到掩码分支有一个简单的结构。更复杂的设计有潜力提高性能,但不是这项工作的重点。

3.1、实现细节

我们设置超参数遵循现有的Fast /Faster R-CNN工作。虽然这些决策都是在原来的论文中为目标检测,我们发现我们的实例分割系统是稳健的。

训练:就像Fast R-CNN一样,如果它有IoU,如果它有一个至少0.5,并是负面的,那么它就会被认为是正的。Mask损失只在正的RoIs上被定义。掩模目标是RoI及其相关的接地真相掩模之间的交集。我们采用以图像为中心的训练。图像大小为800像素。每一个小批次都有2个每个GPU图像,每个图像都有N个抽样的RoIs,它的比例为1:3,为负。N为C4主干的64和FPN 512。我们在8个GPU(因此有效的小型批量大小为16),在160k迭代中,学习速度为0.02,在120k迭代中减少10。我们使用0.0001的重量衰减和0.9的动量。我们使用1个GPU图像和相同数量的迭代,学习速度为0.01。RPN锚宽5度,3个宽高比。对于方便的消融,RPN是单独训练的,除非指定,不与屏蔽R-CNN共享功能。对于这篇文章的每一个条目,RPN和面具R-CNN都有相同的死骨,所以它们是可以共享的。

推断:在测试时,C4主干的建议编号为300,FPN的建议编号为1000。我们对这些建议运行box预测分支,然后是非最大抑制。然后将掩模分支应用于得分最高的100个检测框。虽然这与训练中使用的并行计算不同,但它加快了推理速度并提高了准确性(由于使用更少、更准确的RoI)。掩码分支可以根据每个RoI预测tk掩码,但是我们只使用第k个掩码,其中k是分类分支预测的类。然后将m×m浮点数掩码输出调整为RoI大小,并以0.5为阈值进行二值化。注意,由于我们只在前100个检测框上计算掩码,Mask R-CNN为其更快的对应的R-CNN增加了一小部分开销(例如,典型模型的∼20%)。

4、实验:实例分割

我们在COCO数据集上对Mask R-CNN与现有技术进行了全面的比较,并对其进行了全面的消融。我们报告了标准的COCO指标,包括AP(超过IoU阈值的平均值)、AP50、AP75和APS、APM、APL(不同规模的AP)。除非注明,mAP正在评估使用掩模IoU。我们使用80k个训练图像和35k个val图像子集(trainval35k)的组合进行训练,并报告剩余5k个val图像(minival)的消融情况。

4.1、主要结果

我们将Mask R-CNN与表1中最先进的实例分割方法进行比较。我们的模型的所有实例化都优于以前最先进模型的baseline变体。这包括分别获得2015年COCO和2016年市场细分挑战赛冠军的MNC和FCIS。在没有任何附加功能的情况下,使用ResNet-101-FPN骨干的Mask R-CNN性能优于FCIS+++,其中包括多尺度的训练/测试、水平翻转测试和在线硬例子挖掘(OHEM)。虽然超出了这项工作的范围,但我们期望许多这样的改进适用于我们的工作。Mask R-CNN输出如图2和图5所示。掩模R-CNN即使在具有挑战性的条件下也能取得良好的效果。在图6中,我们比较了Mask R-CNN基线和FCIS+++。FCIS c++在重叠实例上展示了系统的工件,这表明它受到了实例分割的基本困难的挑战。Mask R-CNN没有显示这样的人工制品。

4.2、消融实验

我们运行了一些消融分析掩模R-CNN。结果如表2所示,下面将详细讨论。

结构:表2a显示了带有各种骨干的Mask R-CNN。它得益于更深层次的网络(50 vs. 101)和包括FPN和ResNeXt在内的先进设计。我们注意到,并不是所有框架都能自动从更深层次或更高级的网络中获益。

多项和独立的Mask:Mask R-CNN解耦掩码和类预测:正如现有的box分支预测类标签一样,我们为每个类生成一个掩码,而不存在类之间的竞争(通过每个像素的sigmoid和二进制损失)。在表2b中,我们将其与使用每个像素的softmax和多项损失进行比较(如FCN[30]中常用的那样)。这种方法将蒙版任务和类预测任务耦合起来,导致Mask AP严重下降(5.5分)。这表明,一旦实例被分类为一个整体(通过box分支),就足够预测一个二进制掩码而不考虑类别,这使得模型更容易训练。

类指定和类未知Mask:我们的默认实例化预测特定于类的掩码,每个类一个m×m掩码。有趣的是,Mask R-CNN与类无关的面具(即。,预测一个单一的m×m输出(不考虑类)几乎是同样有效的:它有29.7个Mask AP,而在ResNet-50-C4上的特定类对应的Mask AP是30.3。这进一步强调了我们在很大程度上解耦了分类和分割的方法中的劳动分工。

RoIAlign:对我们提出的RoIAlign层的评估如表2c所示。在这个实验中,我们使用了ResNet-50-C4骨干,它具有stride 16。与RoIPool相比,RoIAlign提高了AP约3点,大部分收益来自高IoU(AP75)。RoIAlign对最大/平均池不敏感;我们在论文的其余部分使用了平均值。此外,我们比较了RoIWarp提出的MNC,也采用双线性抽样。正如§3所讨论的,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在很大程度上解决了长期以来使用大跨距特性进行检测和分割的难题。最后,当与FPN一起使用时,RoIAlign显示了1.5 mask AP和0.5 box AP的增益,后者具有更好的多级步长。对于需要更好对齐的关键点检测,即使使用FPN, RoIAlign也显示出较大的收益(表6)。

掩膜分支:分割是一项像素对像素的任务,我们利用FCN来实现掩模的空间布局。在表2e中,我们使用ResNet-50-FPN主干比较多层感知器(MLP)和FCNs。使用FCNs提供2.1掩码AP增益超过MLPs。我们注意到,我们选择这个主干,以便FCN头部的conv层没有经过预先训练,以便与MLP进行公平的比较。

4.3、包围框检测结果

我们将Mask R-CNN与表3中最先进的COCO bounding-box目标检测进行比较。对于这个结果,即使训练了完整的Mask R-CNN模型,在推断时也只使用分类和框输出(忽略掩模输出)。使用ResNet-101-FPN的Mask R-CNN优于所有以前最先进的模型的基本变体,包括GRMI的单模型变体,它是2016年COCO检测挑战的获胜者。使用ResNeXt-101-FPN, Mask R-CNN进一步改进了结果,与[39](使用Inception-ResNet-v2-TDM)之前最好的单个模型条目相比,box AP的优势为3.0分。为了进一步比较,我们训练了一个版本的Mask R-CNN,但是没有Mask分支,如表3所示,用“Faster R-CNN, RoIAlign”表示。由于RoIAlign的存在,该模型的性能优于[27]中给出的模型。另一方面,box AP比Mask R-CNN低0.9个点。因此,Mask R-CNN在盒检测方面的这种差距仅仅是由于多任务训练的好处。最后,我们注意到Mask R-CNN在Mask和box AP之间有一个小的差距,例如在37.1 (Mask, Table 1)和39.8 (box, Table 3)之间有2.7个点,这说明我们的方法在很大程度上缩小了目标检测和更具挑战性的实例分割任务之间的差距。

4.4、时间复杂度

推断:我们训练了一个ResNet-101-FPN模型,该模型在RPN和Mask R-CNN阶段之间具有相同的特征,遵循Faster R-CNN的4步训练。该模型在Nvidia Tesla M40 GPU上以每张图像195ms的速度运行(加上将输出调整到原始分辨率所需的15ms CPU时间),并在统计上实现了与未共享的掩模AP相同的掩模AP。我们还报告说,ResNet-101-C4变体采用∼400ms,因为它有一个更重的箱头(图4),所以我们不建议在实践中使用C4变体。虽然Mask R-CNN速度很快,但是我们注意到我们的设计并没有针对速度进行优化,可以通过改变图像大小和提案号来实现更好的速度/精度权衡,这超出了本文的范围。

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

5、Mask R-CNN用来进行人体姿态估计

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

实现细节:我们对分割系统做了一些小的修改,当适应它的关键点。对于实例的每个K个关键点,训练目标都是一个one-hot m×m 二进制掩码,其中只有一个像素被标记为前台。在训练过程中,对于每个可见的ground truth关键点,我们将在m2路softmax输出(鼓励检测单个点)上的交叉熵损失最小化。我们注意到,在实例分割中,k个关键点仍然是独立处理的。我们采用了ResNet-FPN变体,关键点头架构类似于图4(右)。关键点头由8个3×3 512-d conv层叠加而成,然后是deconv层和2×双线性上标,输出分辨率为56×56。我们发现一个相对较高的分辨率输出(与Mask 相比)是需要的关键点级定位精度。模型在所有包含注释关键点的COCO trainval35k图像上训练。为了减少过拟合,由于训练集较小,我们使用随机抽取的[64,800]像素的图像尺度进行训练;推理是在800像素的单一尺度上进行的。我们为90k迭代进行训练,从0.02的学习率开始,在60k和80k迭代时将学习率降低10。我们使用阈值为0.5的边界框NMS。其他细节与§3.1相同。

主要结果和消融实验:我们评估了人关键点AP (APkp),并用ResNet-50-FPN骨干进行了实验;更多的骨干网络将在附录中进行研究。从表4可以看出,我们的结果(62.7 APkp)比使用多级处理流程的COCO 2016 keypoint detection winner高出0.9个点(见表4的说明),我们的方法更加简单和快速。更重要的是,我们有一个统一的模型,可以同时预测框、段和关键点,同时运行在5帧每秒。在test-dev上添加一个段分支(用于person类别)可以将APkp提高到63.1(表4)。多任务学习在微型计算机上的应用如表5所示。添加蒙版分支到box-only(即,Faster R-CNN)或只支持关键点的版本不断地改进这些任务。但是,添加keypoint分支会稍微减少box/mask AP,这表明虽然keypoint检测可以从多任务训练中获益,但它并不能帮助其他任务。不过,学习三个任务共同支持一个统一的系统来有效地预测同时输出(图7)。我们也调查的影响RoIAlign关键点检测(表6)。虽然这ResNet-50-FPN骨干有更好的进步(例如,4像素最好的级别),RoIAlign仍然显示RoIPool显著提高和增加APkp 4.4分。这是因为关键点检测对定位精度更敏感。这再次表明对齐对于像素级定位是必不可少的,包括蒙版和关键点。考虑到Mask R-CNN在提取对象边界框、掩码和关键点方面的有效性,我们希望它能够成为其他实例级任务的有效框架。

附录A:在Cityscape上的实验

我们还将在Cityscapes数据集中报告实例分割结果。这个数据集对2975个训练集、500个val和1525个测试图像有很好的注释。它有20k个没有实例注释的粗糙训练图像,我们不使用这些图像。所有图像均为2048×1024像素。实例分割任务涉及8个目标类别,精细训练集实例数为:

该任务的实例分割性能由COCO风格的Mask AP(平均超过IoU阈值)度量;AP50(即掩码AP的IoU值为0.5)也被报告。

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

结果:表7将我们的结果与val和测试集的最新状态进行了比较。在不使用粗训练集的情况下,我们的方法在测试中获得了26.2 AP,相对于之前的最佳条目(DIN)有了30%以上的相对改进,也优于SGN的25.0的并行工作。DIN和SGN都使用精细+粗数据。与只使用精细数据的最佳条目(17.4 AP)相比,我们获得了约50%的改进。对于人和汽车类别,Cityscapes数据集显示了大量类别内重叠的实例(平均每个图像中有6人和9辆汽车)。我们认为类内重叠是实例分割的核心难点。虽然我们的方法没有利用粗数据,但是与其他最佳条目相比,我们的方法在这两个类别上显示了巨大的改进(person的相对改进为40%,从21.8到30.5;car的相对改进为20%,从39.4到46.9)。Cityscapes数据集的一个主要挑战是低数据环境下的培训模型,特别是针对卡车、公共汽车和火车类别的培训模型,每个类别大约有200-500个训练样本。为了部分解决这个问题,我们进一步报告了使用COCO预训练的结果。为此,我们从一个预先训练的COCO Mask R-CNN模型(rider被随机初始化)初始化Cityscapes中相应的7个类别。对于4k迭代,我们对该模型进行微调,其中学习速度在3k迭代时降低,给定COCO模型的训练需要约1小时。

COCO预训练的Mask R-CNN模型在测试中达到了32.0 AP,几乎比只有微调的同类产品提高了6个百分点。这说明了训练数据量所起的重要作用。这也表明,Cityscape的方法可能会受到他们低镜头学习表现的影响。结果表明,在该数据集上使用COCO预训练是一种有效的策略。最后,我们观察到val和test AP之间存在偏差,这也可以从SGN的结果中观察到。我们发现这种偏差主要是由卡车、公共汽车和火车类别造成的,纯精细模型的val/test 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。注意,对于人和汽车类别,我们没有看到任何这样的偏差(val/test AP在±1点以内)。图8显示了Cityscapes上的示例结果。

附录B:在COCO上加强的结果

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

实例分割和目标检测

我们在表8中报告了Mask R-CNN的一些增强结果。总的来说,改进增加了掩模AP 5.1点(从36.7增加到41.8)和框AP 7.7点(从39.6增加到47.3)。每一个模型的改进都增加了Mask AP和Mask AP的一致性,显示了Mask R-CNN框架的良好泛化。接下来,我们将详细介绍这些改进。这些结果,以及未来的更新,可以通过我们发布的代码https://github.com/facebookresearch /Detectron复制,并可以作为未来研究的更高baseline。更新的baseline:我们从一组不同的超参数更新的baseline开始。我们将训练时间延长到180k迭代,其中在120k和160k迭代时学习率降低了10。我们还将NMS阈值更改为0.5(默认值为0.3)。更新后的基线为37.0 mask AP和40.5 box AP。端到端训练:之前所有结果均采用阶段性训练,即,第一阶段为训练RPN,第二阶段为Mask R-CNN。我们评估端到端(' e2e ')训练,联合训练RPN和Mask R-CNN。我们采用Faster R-CNN中的“近似”版本,它只计算RoIAlign层中的部分梯度,忽略梯度w.r.t. RoI坐标。表8显示e2e训练使mask AP提高0.6,box AP提高1.2。ImageNet-5k预训练:我们对ImageNet的一个5k类子集(与标准的1k类子集相反)上的预训练模型进行了实验。这5×训练前数据的增加改善了mask和box 1 AP。

训练时间增加:列车时间的规模增加进一步提高结果。在训练过程中,我们从[64,800]像素随机抽取一个比例,并将迭代次数增加到260k(在200k和240k迭代时学习速度降低了10次)。训练时间增加提高Mask AP 0.6和框AP 0.8。

模型架构:通过将101层的ResNeXt升级到152层,我们发现增加了0.5的Mask AP和0.6的Box AP,这说明更深层次的模型仍然可以改善COCO的结果。使用最近提出的非本地(NL)模型,我们实现了40.3 mask AP和45.0 box AP,这个结果不需要测试时间的增加,测试时该方法在Nvidia Tesla P100 GPU上以3fps的速度运行。

测试时间增强:我们将使用[400,1200]像素和100步以及水平翻转来评估模型结果。这给了我们一个41.8的Mask AP和47.3的Box AP的单模结果。以上结果是我们提交给COCO 2017竞赛的基础(同样使用了一个ensemble,这里没有讨论)。据报道,实例分割任务的前三个获胜团队都是基于Mask R-CNN框架的扩展。

关键点检测

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

AP^{kp}
AP^{kp}

提高到70.4。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年08月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 1、简介
  • 3、Mask R-CNN
    • 3.1、实现细节
    • 4、实验:实例分割
      • 4.1、主要结果
        • 4.2、消融实验
          • 4.3、包围框检测结果
            • 4.4、时间复杂度
              • 实例分割和目标检测
          • 5、Mask R-CNN用来进行人体姿态估计
          • 附录A:在Cityscape上的实验
          • 附录B:在COCO上加强的结果
          • 关键点检测
          相关产品与服务
          GPU 云服务器
          GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档