机器视觉计算机视觉/图像算法jupyter

经典论文之Mask R-CNN全文翻译

2018-12-11  本文已影响126人  Jeremy121

Mask R-CNN

Kaiming He  Georgia Gkioxari  Piotr Doll´ar  Ross Girshick
Facebook 人工智能研究院 (FAIR)

摘要

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

1. 导论

  在视觉领域,对象检测和语义分割结果的研究结果在短时间内得到快速发展。这些进展在很大程度上是由强有力的基线系统推动的,比如分别用于对象检测和语义分割的快速/极速R-CNN框架[12, 34]和全卷积网络(FCN) [29]框架。这些方法从概念上来讲是直观的,具有灵活性和鲁棒性,并且其训练和推理时长较短。本文旨在构建针对实例分割效果相对较好的框架。
  实例分割极具挑战性,因为它要求对图像中所有对象进行正确检测并同时准确分割每个实例。因此,它综合了对象检测和语义分割的经典计算机视觉任务,对象检测的目的在于对单个对象进行分类并利用边界框定位每个对象,而语义分割的目的在于在不区分对象实例的条件下将每个像素归类到固定的类别集1。有鉴于此,人们可能会认为要达到较好的效果需要复杂的方法。然而,本文表明,相当简单、灵活且快速的系统达到的效果可以胜过之前最先进的实例分割成果。


图 1.用于实例分割的掩膜R-CNN框架。

  我们的方法叫作掩膜R-CNN,通过添加用于每个感兴趣区域(RoI)的掩膜分割预测并与用于分类和边界框回归分析的现有分支并行的的分支,它拓展了极速R-CNN [34]见图1。该掩膜分支是应用于每个RoI的小型FCN,可通过像素到像素的方式预测分割掩膜。极速R-CNN分支促进了各种各样灵活架构设计的发展,得益于此,掩膜R-CNN易于实现和训练。另外,掩膜分支仅会增加小部分的计算开销,却可实现快速的系统和快速实验。
  从原则上来说,掩膜R-CNN是极速R-CNN的直观拓展模式,但是恰当地构建掩膜分支对于达成较好的结果而言至关重要。最重要的是,极速R-CNN不是专为网络输入和输出之间像素到像素的对准而设计的。这一点在RoIPool[18, 12](实际上处理实例的核心操作)进行特征提取时如何执行粗糙的空间量化的过程中最为明显。为解决未对准的问题,我们提出被称为RoIAlign的简单、无需量化的层,它可以真实地保留准确的空间位置。尽管RoIAlign看起来似乎是很小的改变,但它却产生了很大的影响:它使得掩膜准确率相对提高了10% 到 50%,在严格定位指标的条件下显示出更大的提高。第二,我们发现,它对于分离掩膜和分类预测至关重要:在不对比类别的情况下,我们单独预测每个类别的二元掩膜,并依靠该网络的RoI分类分支对类别进行预测。与此相反,FCN通常执行逐像素多类别的分类,使分割和分类结合在一起,并且,根据我们的实验,FCN在实例分割方面的效果很差。

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

这些结果基于ResNet-101 [19],达到了35.7的掩膜AP并以5 fps的速度运行。掩膜以不同的颜色、边界框和类别显示,同时也显示了可信度。
  实话实说,掩膜R-CNN在COCO实例分割任务上的表现超越了之前最先进的单模型成果[28],包括出自于该竞赛获胜者之手的设计复杂的参赛作品。作为该方法的副产品,我们的方法在COCO对象检测任务上也优于其他方法。在切除实验中,我们评估了多种基本例示,这使我们能够展示其鲁棒性并分析核心因素的效果。
  我们的模型可在GPU上以200ms每帧的速度运行,并且在8个GPU的单个机器上进行关于COCO上的训练仅需耗时一到两天。我们认为,快速的训练、较高的测试速度以及框架的灵活性和准确度将有利于促进未来实例分割的研究。
  最后,我们展示了通过在COCO关键点数据集上进行的人类姿势评估任务生成我们的框架[28]。通过将每个关键点视作独热二元掩膜,掩膜R-CNN只需进行微小的修改即可应用于具体实例姿势的检测。老实说,掩膜 R-CNN超越了2016 COCO关键点竞赛的获胜作品,同时以5 fps的速度运行。因此,从更广泛的意义上来讲,掩膜 R-CNN可被视为实例级识别的灵活框架并可拓展以完成更为复杂的任务。
我们将会发布代码,以促进未来的研究。

2. 相关工作

  R-CNN:用于边界框对象检测并基于区域的CNN (R-CNN)方法的目的在于处理可管理数量内的候选对象区域[38, 20]并独立评估每个RoI中的卷积网络[25, 24]。R-CNN经过拓展后[18, 12]可使用RoIPool在特征图上处理RoI,可达到较快的速度和更高的准确度。通过区域方案网络(RPN)学习注意机制,极速R-CNN[34]促进了这种流的发展。极速R-CNN的灵活性和鲁棒性足以促进多种后续进展(比如[35, 27, 21]),而且它是当前几种基准重的领先框架。
  实例分割:经过R-CNN有效性的推动,很多实例分割的方法都建立在分割方案之上。早前的方法[13, 15, 16, 9]依赖于自下而上的分割片段[38, 2]。深度掩膜(DeepMask)[32]以及以下作品[33, 8]学会提出候选分割片段,这些片段随后由快速R-CNN进行分类。在这些方法中,分割在识别之前,识别速度较慢且准确度相对较低。同样,戴(Dai)等人[10]提出分类之后进行复杂的多级级联,以通过边界框方案预测分割方案。相反,我们的方法基于掩膜和类别标签的并行预测,这种方法更加简单和灵活。
  最近,李(Li)等人[26]将[8]中的分割方案系统和[11]中的对象检测系统结合起来,用于“全卷积实例分割”(FCIS)。[8, 11, 26]中的方案的共同目的在于以全卷积的方式预测一组位置敏感的输出信道。这些信道同时处理对象类别、框以及掩膜,使系统的速度加快。但是FCIS在重叠的实例中出现系统性错误,并导致虚假边缘(图5),这表明,它的有效性受到了分割实例的基本难题的挑战。

3. 掩膜R-CNN

  掩膜R-CNN的概念比较简单:极速R-CNN拥有针对每个候选对象的两个输出信道,还拥有一个类别标签和一个边界框偏置:对此,我们增加了用于输出对象掩膜的第三个框架。因此,掩膜R-CNN是自然而直观的概念。但是,额外的掩膜输出与类别和框的输出不同,因为它要求对于对象空间布局的抽取更加精细。其次,我们介绍了掩膜R-CNN的关键因素,包括像素到像素的对准,这是快速/极速R-CNN主要欠缺的部分。
  极速R-CNN:首先,我们简要回顾了极速R-CNN检测器[34]。极速R-CNN包括两个阶段。第一个阶段叫作区域方案网络(RPN),该网络提出候选对象边界框。第二个阶段实质上是快速R-CNN[12],它通过使用RoIPool从每个候选框中抽取特征并执行分类和边界框的回归分析。这两个阶段使用的特征可共享,以加快推理速度。我们建议读者参考[21],以获取极速R-CNN和其他框架之间最新的复杂比较。
  掩膜R-CNN:掩膜R-CNN采用了与上相同的两阶段步骤,第一个阶段与上述的第一个阶段(即RPN)完全相同。在与预测类别和框偏置并行的第二个阶段,掩膜R-CNN还针对每个RoI输出二元掩膜。这与大多数最近的系统截然不同,在这些系统中,分类依赖于掩膜预测(例如,[32, 10, 26])。我们的方法遵循了快速R-CNN[12]的原则,即并行应用边界框分类和回归分析(结果证明这大大简化了原来的R-CNN [13]的多阶段管道)。
  在训练期间,我们将每个取样的RoI上的多任务损失定义为L = Lcls + Lbox + Lmask。类别损失Lcls与边界框损失Lbox与[12]中的对应定义相同。针对每个RoI,掩膜分支有Km2的三维输出,这可将分辨率为m×m的K个二元掩膜进行编码,这K个二元掩膜与K个类别一一对应。对此,我们应用了逐像素sigmoid函数,并将Lmask定义为平均二元交叉熵损失。对于与地面实况类别k关联的RoI,Lmask仅在第k个掩膜上进行定义(其他掩膜输出不会造成损失)。
  我们对于Lmask的定义使得该网络能够在不对比类别的条件下生成针对每种类别的掩膜;我们依赖于专门的分类分支对用于选择输出掩膜的类别标签进行预测。这与将FCN [29]应用于语义分割时的惯例不同,该惯例通常使用逐像素的softmax函数与多项交叉熵损失。在那种情况下,不同类别的掩膜进行对比;在我们的方法中,通过逐像素的sigmoid函数和二元损失,不同类别的掩膜不会进行对比。我们的实验表明,这种方式是优化实例分割结果的关键。
  掩膜表示:掩膜可对输入对象的空间布局进行编码。完全连接的(fc)图层必将导致类别标签或框的偏置塌陷为较短的输出矢量,因此,与此不同,通过卷积提供的像素到像素的对应可自然地处理掩膜空间结构的抽取。
  特别需要指出的是,我们利用FCN [29]从每个RoI中预测m×m的掩膜。这使得掩膜分支中的每个层都能保持明确的m×m的对象空间布局,而不至于塌陷为缺乏空间维度的矢量表示。与之前依赖于fc图层进行掩膜预测的方法[32, 33, 10]不同,我们的全卷积表示所要求的参数更少,且正如实验所示,其准确度更高。
  这种像素到像素的特性需要我们的RoI的特征(这些特征本身就是小型特征图)进行准确地对准,以忠实保留明确的逐像素空间对应。这激励着我们推动在掩膜预测中发挥关键作用的以下RoIAlign图层的发展。
  RoIAlign: RoIPool [12]是从每个RoI中抽取小型特征图(例如,7×7)的标准操作。首先,RoIPool 会将浮点数RoI量化为特征图的不连续间隔尺度,然后,量化后的RoI会被细分为空间容器,这些空间容器本身也会进行量化,最后,每个容器覆盖的特征值会被放大(通常是通过最大池化)。 通过计算机运算[x=16],在例如连续的坐标x上执行量化,在这种运算中,16是特征图步幅,而[.]是舍入;同样,分为容器(例如,7×7)时执行量化。这些量化引入了RoI和所抽取特征之间的未对准现象。尽管这可能并不会影响对于微小的平移具有鲁棒性的分类,它对于像素精度的掩膜预测具有负面影响。
  为处理这个问题,我们提出已去掉RoIPool粗略量化步骤的RoIAlign层,通过恰当地将所抽取的特征和输入对准。我们提出的改变是简单的:我们避免对于任何RoI边界或容器进行量化(例如,我们使用x/16而非[x/16])。我们利用双线性插值[22]计算每个RoI容器中四个常规取样位置的输入特征的精确值并将结果放大(使用最大值或平均值)。
  正如4.2章中表明的那样, RoIAlign取得了重大进展。 我们还比较了[10]中提出的RoIWarp操作。与RoIAlign不同,RoIWarp忽略了对准问题,并且其在[10]中实施 RoI的量化,这点与RoIPool相同。因此,即使RoIWarp也采取了[22]推动的双线性重采样,正如实验(详情参见表2c)所示,它与RoIPool的效果相似,这证明对准至关重要。
  网络架构:为展示我们的方法的生成,我们通过多种架构举例说明掩膜R-CNN。为了清晰起见,我们对以下两种概念作了区分:(i)用于从整个图像中抽取特征的卷积主干架构,(ii)用于边界框识别(分类和回归分析)以及分别应用于每个RoI的掩膜预测的网络头。
  我们用术语网络深度特征指称主干架构。我们评估了深度为50或101层的ResNet [19]或ResNeXt [40]网络。最初实现的带ResNets [19]极速R-CNN从第4阶段(我们称为C4)的最后的卷积层抽取特征。例如,这种带ResNet-50的主干架构被指称为ResNet-50-C4。这是应用在[19, 10, 21, 36]的通用选择。
  我们还探讨了另外一种更加有效的主干架构,它是最近由林(Lin)等提出并被称为特征金字塔网络(FPN)。特征金字塔网络运用带侧面连接的自上而下的架构,从单尺度输入中构建网络内特征金字塔。带特征金字塔网络主干架构的极速R-CNN根据尺度从不同级别的特征金字塔中抽取RoI特征,但是另一方面,该方法的其余部分与普通的ResNet类似。对带掩膜R-CNN且针对特征抽取的ResNet-FPN主干架构的运用在准确度和速度上都取得了良好成效。如需了解关于FPN的细节内容,建议读者参考[27]。
  对于网络头,我们遵循了之前作品中展现的架构,并在这些架构中添加了全卷积掩膜预测分支。特别值得一提的是,我们根据ResNet [19] 和 FPN [27]的论文拓展了极速R-CNN框头。详细内容请参见图3。ResNet-C4主干架构上的头包括运算密集型的ResNet(即9层‘res5’[19])。对于FPN,该主干架构包括res5,因此能够使用带更少过滤器的更有效的头。
  我们注意到,我们的掩膜分支拥有简单的结构。更加复杂的设计可能有提高效果的潜力,但这不是本文的关注点。

3.1. 实现细节

  我们遵循现有的快速/极速R-CNN的相关文章[12, 34, 27]设定了超参数。尽管这些关于对象检测的决策出于论文[12, 34, 27],但是我们发现我们的实例分割系统比它们的更具鲁棒性。
  训练:正如在快速R-CNN中一样,如果RoI拥有的IoU所带的真实框至少为0.5,则其被认为是正的,否则它就为负。掩膜损失Lmask仅能在正的感兴趣区域 (RoI)上进行定义。掩膜目标是感兴趣区域 (RoI)与其相关的地面实况掩膜之间的交集。
  我们采用了图像为中心的训练[12]。图像的大小经过调整后,其尺度(短边)为800像素[27]。每个最小批量在每个GPU中含有两个图像,每个图像有N个取样的RoI,正数和负数的比例为1:3[12]。对于C4主干架构而言,N是64(正如[12, 34]中一样),对于FPN而言,N是512(正如[27]中一样)。我们在8个GPU(因此有效的最小批量尺度为16)上进行160k 迭代的训练,学习率为0.02,并在120k的迭代时降了10个单位。我们使用了 0.0001的权重衰减和0.9的动量项。


图3.头部架构:我们拓展了两种现有的极速R-CNN的头部[19, 27]。左侧/右侧的面板分别显示了 [19] 和 [27] 中的ResNet C4和FPN的头部,这两种头部中都添加了掩膜分支。数字代表空间分辨率和信道。箭头指的是卷积、反卷积或者fc层,这些可从上下文中推理出来(卷积保留了空间维度,而反卷积则增加了空间维度)。除了输出卷积为1×1之外,其他所有的卷积都是3×3,反卷积为2×2且其步幅为2,并且我们在隐藏层中使用ReLU [30]。左侧:‘res5’指的是ResNet的第5阶段,为了简单起见,我们将其做了更改,这样第一个卷积在7×7的RoI上操作,且步幅为1(而非[19]中的14×14的RoI/为2的步幅)。右侧:‘×4’指的是一叠4个连续的卷积。

  推理:在测试期间,我们提出,C4主干架构的数量为300(正如[34]中一样),FPN的数量为1000(正如[27]中一样)。我们在这些方案中运行框预测分支,然后执行非极大值抑制[14]。之后,将掩膜分支应用到最高得分为100的检测框中。尽管这与训练中使用的并行运算不同,但是它提高了推理的速度和准确度(由于其使用了更少且准确度更高的RoI)。掩膜框架可在每个RoI中预测K个掩膜,但是我们仅使用第K个掩膜,这里的k指的是类别框架预测的类别。之后,m×m的浮点数掩膜输出的大小被调整为RoI的尺度,并且在0.5的阈值上进行二值化。
  请注意,因为我们只运算了头100个检测框上的掩膜,掩膜R-CNN增加了其极速R-CNN对应物的边际运行时间(例如,在典型的模型中,约增加20% 的边际运行时间)。

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] 的结果,其不包含公开标签。出版之后,我们会按照建议将test-std的完整结果上传至公共的竞赛排名板上。

图4.更多掩膜R-CNN在COCO测试图像上的结果,使用的是ResNet-101-FPN,以5fps的速度运行,通过35.7的掩膜AP实现(表1)。
表1在COCO test-dev上的实例分割掩膜AP。 MNC [10] 和 FCIS [26]分别是COCO 2015和2016分割挑战的获胜作品。坦诚地讲,掩膜R-CNN比更复杂的FCIS+++的表现更好,后者包括多尺度训练/测试,水平翻转测试以及OHEM [35]。所有条目都是单模型结果。

4.1主要结果

  我们在表1中比较了掩膜R-CNN与最先进方法在实例分割方面的区别。我们模型中的所有实例的效果都优于以前最先进模型的基线变体。这包括分别是COCO 2015和2016分割挑战获胜作品的MNC [10]和FCIS [26]。坦白讲,带ResNet-101-FPN主干架构的掩膜R-CNN的效果优于FCIS+++ [26],后者包括多尺度训练/测试,水平翻转测试以及在线难例挖掘(OHEM)[35]。在本文涵盖的内容之外,我们期待出现更多可以应用于我们的方法的类似进展。
  在图2和图4中可以看到掩膜R-CNN输出。掩膜R-CNN即使在相当困难的条件下也能达到很好的结果。在图5中,我们比较了掩膜R-CNN基线和FCIS+++ [26]。FCIS+++在重叠实例上表现出系统伪迹,表明其有着实例分割基础困难方面的问题。掩膜R-CNN并未表现出类似的伪迹。

4.2 切除实验

  我们运行了大量切除实验,以分析掩膜R-CNN。结果在表2中呈现,且具体细节在以下内容中进行讨论。
  架构:表2a显示的是带多个主干架构的掩膜R-CNN。该架构得益于更深层的网络(50 vs. 101)以及包括FPN 和 ResNeXt3等高级设计。我们注意到,不是所有的框架都能自动从更深层或高级的网络(参见[21]中的中评量基准)获益。

图5.FCIS+++ [26](顶部)对比掩膜R-CNN(底部,ResNet-101-FPN)。FCIS在重叠对象上表现出系统伪迹。 (a) 主干架构:更好的主干架构可以带来预期效果:更深层的网络表现更好,FPN的效果优于C4的特征,并且ResNeXt在ResNet上得到了提高。 (b) 多项式对比独立掩膜(ResNet-50-C4):通过每个类别的二元掩膜(sigmoid函数)进行的分离极大地提高了多项式掩膜的效果(softmax函数)。 (c) RoIAlign (ResNet-50-C4):带不同RoI层的掩膜结果。我们的RoIAlign层把AP提高了约3点并把AP75提高了约5点。 使用恰当的对准是有助于弥补RoI层之间的较大间隙的唯一因素。 (d) RoIAlign (ResNet-50-C5,步幅为 32):利用大步幅特征得到的掩膜级别和框级别的AP。未对准现象比步幅为16的特征(表2c)时的未对准现象更严重,导致准确度出现巨大误差。 (e) 掩膜框架(ResNet-50-FPN):全卷积网络(FCN)对比用于掩膜预测的多层感知器(MLP,全连接)。通过利用空间布局编码的优势,FCN改善了结果。

表2.掩膜R-CNN的切除实验。我们在trainval35k上训练,在minival上测试,并报告掩膜AP,除非另有说明。

  多项式对比独立掩膜:掩膜R-CNN分离了掩膜和类别预测:由于现有框的框架可预测类别标签,我们在没有对比类别的条件下为每个类别生成掩膜(通过逐像素sigmoid函数和二元损失)。 在表2b中,我们将这种现象比作逐像素的softmax函数和多项式损失(正如FCN [29]中通常应用地那样)。这种可选方案结合了掩膜AP(5.5点)的严重损失中的掩膜和类别预测以及结果。这表明,一旦实例被(框的分支)作为整体进行分类,就足以在不考虑类别的情况下预测二元掩膜,这使得模型更易于训练。
  特定类别对比不可知类别的掩膜:我们的默认实例预测了特定类别的掩膜,例如,针对每种类别的m×m掩膜。有趣的是,带有不可知类别掩膜的掩膜R-CNN(例如,在不考虑类别的情况下预测单个m×m输出)几乎同样有效:它拥有29.7的掩膜AP,相比之下, ResNet-50-C4上的特定类别的对应物的掩膜AP则为30.3.这进一步突出了我们方法中的分工,它在很大程度上分离了类别和分割。
  RoIAlign:表2c显示了我们提出的RoIAlign层的评估。针对此实验,我们使用了ResNet-50-C4主干架构,其步幅为16。RoIAlign提高了RoIPool中的AP约3点,同时在高IoU (AP75)中也有很大的提高效果。RoIAlign对于最大/平均池不敏感;我们在本文的其余部分中使用的是平均池。
  另外,我们通过MNC [10]中提出的RoIWarp进行比较,它也采用了二元取样。正如第3章中的讨论所述,RoIWarp仍然量化了RoI,没有对输入进行对准。正如表2c所示,每种形式的RoIWarp与RoIPool的效果相似,且其效果远不如RoIAlign。这显著表明,恰当的对准是关键。
  我们还评估了带ResNet-50-C5主干架构的RoIAlign,它拥有32像素的更大步幅。我们用了与图3(右侧)中相同的头部,因为res5的头部不适用。表2d显示,RoIAlign大大提高了掩膜AP,使其提高了7.3点,并使掩膜AP75提高了10.5点(50%的相对提高)。此外,我们注意到,通过RoIAlign,使用步幅为32的C5特征(30.9的AP)比使用步幅为16的C4特征(30.3的AP,见表2c)更准确。RoIAlign在很大程度上解决了存在已久的使用大步幅特征进行检测和分割的挑战。
  最后,RoIAlign显示,当其与拥有更精细、多级别步幅的FPN一起使用时,掩膜AP提高了1.5且框AP提高了0.5。对于需要更精细对准的关键点检测,RoIAlign显示出其使得AP有很大提高,即使与FPN一起使用也是如此(表6)。

表3.对象检测单模型结果(边界框AP)对比最先进方法在test-dev上的结果。使用ResNet-101-FPN的掩膜R-CNN的效果优于所有之前最先进模型(这些实验都忽略了掩膜输出)的基本变体。掩膜R-CNN在[27]中取得的成效源于对RoIAlign (+1.1 APbb)、多任务训练(+0.9 APbb)以及ResNeXt-101 (+1.6 APbb)的使用。

  掩膜框架:分割是像素到像素的任务,我们使用FCN来开发掩膜的空间布局。在表2e中,通过使用ResNet-50-FPN主干架构,我们比较了多层感知器(MLP)与FCN。对FCN的应用使得掩膜AP比MLP中的掩膜AP提高了2.1。我们注意到,我们之所以选择这个主干架构,是因为与MLP相比,FCN头部的卷积层未经过前期训练。

4.3边界框检测结果

  在表3中,我们将掩膜R-CNN与最先进的COCO边界框对象检测进行对比。针对这个结果,尽管整个掩膜R-CNN模型经过了训练,只有类别和框输出用于推理(掩膜输出被忽略)。使用ResNet-101-FPN的掩膜R-CNN的效果优于所有之前最先进模型的基本变体,包括GRMI[21]的单模型变体,即COCO 2016 检测挑战中的获胜作品。通过使用ResNeXt-101-FPN,掩膜R-CNN进一步改进了结果,与[36]中所述的之前最好的单模型项目(其使用了Inception-ResNet-v2-TDM)相比,它在框AP方面有着3.0点的边际优势。
  作为进一步的比较,我们训练了不带掩膜框架的掩膜R-CNN,即表3中所指的“极速R-CNN、RoIAlign”。由于RoIAlign的存在,这种模型比[27]展示的模型的效果更好。但是另一方面,它在框AP方面却比掩膜R-CNN低0.9点。因此,这种与掩膜R-CNN在框检测方面的差别只是多任务训练的功劳。
  最后,我们注意到,掩膜R-CNN的掩膜AP和框AP之间仅有少许差距:例如,37.1(表1,掩膜)与39.8(表3,框)之间2.7点的差距。这表明,我们的方法极大地缩小了对象检测和更具挑战性的实例分割任务之间的差距。

4.4时间安排

  推理:在进行了极速R-CNN[34]的4步训练之后,我们训练了具有RPN和掩膜R-CNN阶段之间的特征的ResNet-101-FPN模型。这种模型在Nvidia Tesla M40 GPU上以195ms每个图像的速度运行(加上调整原有分辨率输出尺度的15ms的CPU所用时间),并在统计学上达到了与不具有这些特征的模型相同的掩膜AP。我们还得出报告,即ResNet-101-C4的变体在具有更重的框头部(表3)时用了约400ms的时间,因此,我们不建议在实践中使用C4变体。
  尽管掩膜R-CNN的速度较快,我们注意到,我们的设计的目的并不在于优化速度,而在于它能达到更好的速度和准确度之间的平衡[21],例如,通过改变图像尺度和方案数量,这超出了本文的讨论范围。
  训练:掩膜R-CNN的训练速度也比较快。在我们的同步8-GPU实现的过程中(每16个图像最小批量用时为0.72s),使用ResNet-50-FPN在COCO trainval35k上进行训练需耗费32小时,而使用ResNet-101-FPN则需要44小时。实际上,在训练集中进行训练时,快速原型设计可在不到一天的时间内完成。我们希望如此快速的训练可以扫除该领域发展的一大障碍并激励更多的人针对这个极具挑战性的话题进行研究。

5. 用于人类姿势评估的掩膜R-CNN

  我们的框架易于拓展到人类姿势评估的领域。我们将关键点位置作为独热掩膜的模型,并采用掩膜R-CNN预测K个掩膜,每个掩膜用于K个关键点类型中的一种类型(例如;左肩、右肘)。这个任务有助于展现掩膜R-CNN的灵活性。
  我们注意到,我们的系统可利用关于人类姿势的最小领域的知识,因为这些实验主要在于展现掩膜R-CNN框架的生成。我们期望,该领域的知识(例如,模型结构[6])可以对我们简单的方法进行补充,但是这个话题超出了本文的讨论范围。
  实现细节:在使分割系统适用于关键点时,我们对该系统做了些许修改。对于实例中K个关键点中的每个关键点,训练目标是独热m×m二元掩膜,在该掩膜中,只有单个像素会被标记为前景。训练期间,针对每个可见的地面实况关键点,我们将m2-way的softmax函数输出(这促进了单点的检测)中的交叉熵损失最小化。我们注意到,正如在实例分割中的情况一样,K个关键点仍然是单独进行处理的。
我们采用了ResNet-FPN变体,而且关键点头部架构与图3(右侧)中的相似。关键点头部包括一叠8个的3×3 512-d的卷积层,之后是反卷积层和2×双线性放大,产生56×56的输出像素。我们发现,相对高像素的输出(与掩膜相比)对于关键点级别定位准确度所至关重要。


图6.使用掩膜R-CNN (ResNet-50-FPN) 在COCO 测试中得出的关键点检测结果,并从同一个模型中预测人物分割掩膜。这个模型的关键点AP为63.1并且以5 fps的速度运行。
表4.在COCO test-dev上的关键点检测AP。我们的模型 (ResNet-50-FPN) 是以5fps 的速度运行的单模型。CMU-Pose+++[6]是2016年竞赛的获胜作品,它使用了多尺度测试,通过CPM[39]进行后处理,并通过对象检测器进行过滤,累计增加约5点(通过私人沟通阐明)。通过使用两个模型(Inception-ResNet-v2 + ResNet-101),G-RMI在COCO plus MPII [1] (25k 个图像)中进行训练。由于他们使用了更多数据,这并不是与掩膜R-CNN进行的直接比较。
表5.在minival上评估的关于人物类别的框、掩膜和关键点的多任务学习。为了进行公平的比较,所有条目都在同样的数据上进行训练。主干架构是ResNet-50-FPN。 在minival上拥有64.2 AP 的项目在test-dev上的AP 为62.7。在minival上拥有64.7 AP 的条目在test-dev上的AP 为63.1(见表4)。
表6.RoIAlign 与 RoIPool在minival上关于关键点检测的对比。

  模型在所有包含带注释关键点的COCO trainval35k图像上进行训练。为降低过拟合的几率,当训练集较小时,我们使用从[640, 800]像素中随机取样的图像尺度对模型进行训练;推理在800像素的单尺寸上进行。我们训练了90k的迭代,从0.02的学习率开始并在60k和80k迭代中将其降低了10。我们使用边界框非极大值抑制,阈值为0.5。其他实现与3.1章中的相同。

  关于人类姿势评估的实验:通过使用ResNet-50-FPN,我们评估了人类关键点的AP(APkp)。我们使用ResNet-101做了实验,并发现它能得到类似的结果,可能是因为更深层的模型能够从给更多的训练数据中获益,但是这个数据集相对较小。
  表4表明,我们的结果(62.7 APkp)比使用多阶段处理管道(见表4的标题)的COCO 2016关键点检测获胜作品[6]高0.9点。与之相比,我们的方法大为简单和快速。
  更重要的是,我们拥有统一模型,该模型在以5fps的速度运行的条件下可以同时预测框、分割片段和关键点。添加分割框架(用于人物类别)将test-dev上的 APkp提高到了63.1(表4)。表5中列出了更多minival上的多任务学习的切除实验。仅在框版本(例如,极速R-CNN)或关键点版本中添加掩膜框架都会提高这些任务的效果。然而,关键点的框架的添加稍稍降低了框/掩膜的AP,这表明,尽管关键点检测可以从多任务训练中获益,但它对其他任务并无益处。但是,共同学习所有这三种任务使我们能够利用统一的系统有效地同时预测所有输出(图6)。
  我们还调查了RoIAlign对于关键点检测的作用(表6)。 尽管ResNet-50-FPN主干架构拥有更精细的步幅(例如,最小级别上的像素为4),相对于RoIPool,RoIAlign仍表现出的显著进步并且将APkp提高了4.4点。这是因为关键点检测对定位准确度更加敏感。这再次表明,对准对于包括掩膜和关键点的像素级别定位至关重要。
  鉴于掩膜R-CNN在抽取对象边界框、掩膜和关键点方面的有效性,我们预期它会成为用于其他实例级别任务的有效框架。

表7.城市风景val (‘AP [val]’列)和测试(其余列)集的结果。我们的方法使用了ResNet-50-FPN。

A. 关于城市风景的实验

  我们进一步报告了城市风景[7]数据集上的实例分割结果。该数据集拥有针对2975个训练图像、500个验证图像和1525个测试图像的精细注释。它拥有20k不带实例注释的粗糙的训练图像,我们并没有使用这些图像。所有图像的像素都是固定的2048×1024的像素。该实例分割任务涉及8种对象类别,这些类别在精细测试集中的实例数量为:



  该任务上的实例分割效果由COCO形式的掩膜AP进行测量(在IoU阈值上进行平均);AP50(例如,在0.5的 IoU 上的掩膜AP)也得到了报告。
  实施:我们应用了带ResNet-FPN-50主干架构的掩膜R-CNN模型;我们已经测试了101层的对应物,并发现它的效果与之类似,因为两者的数据集都较小。我们使用从 [800, 1024] 中随机取样的图像尺度(较短的边)进行训练,这降低了过拟合的概率;推理是在1024像素的单个尺度上进行的。我们使用每个GPU 上1个图像(因此 8个GPU上8个图像也有效)的最小批量尺寸并训练了24k迭代的模型,从学习率为0.01开始并将在18k迭代的时候将其降低为0.001.其他实现细节与3.1中的细节相同。
  结果:表7将val和test集上我们的结果与最先进方法的结果进行了比较。在没有使用粗糙训练集的情况下,我们的方法在test上达到了26.2 的AP,与使用了精细和粗糙标签的最好条目相比,我们的方法在AP方面有了30%的相对提高。与仅适用精细标签的最好条目(17.4的 AP) 相比,我们取得了约50%的提高。在8个GPU的单个机器上训练,得到此结果需要约4个小时。
  对于人物和汽车的类别,城市风景数据集中出现了大量类别重叠的实例(平均每个图像中有6个人物和9辆汽车)。我们认为,类别内的重叠是实例分割的核心难点。与现有最好的条目相比,我们方法在这两种类别上的效果表现出大幅度的提高(在人物的效果上从16.5 提高到 30.5,约提高了85%;在汽车上的效果从35.7提高到46.9,约提高了30%)。
  城市风景数据集的主要挑战是低数据流型的训练模型,尤其在卡车、公共汽车和火车等类别上,这些类别中的每种类别都有约200-500个训练样本。为部分地纠正这个问题,我们进一步报告了使用COCO预训练的结果。为此,我们从预训练的COCO 掩膜 R-CNN 模型的城市风景中初始化了7种对应的类别(驾驶人员随机进行初始化)。我们经过4k的迭代对这个模型进行微调,学习率在3k迭代时降低,由于COCO模型的原因,该训练耗费了约1个小时。

图7. 掩膜R-CNN在城市风景test上的结果(32.0的AP)。右下角的图像显示出不准确的预测。

  COCO预训练的掩膜 R-CNN 模型在test上达到了32.0的AP,几乎比只使用精细训练集的对应模型提高了整整6点。这表明,训练数据的数量发挥着至关重要的作用。它还表明,城市风景的实例分割方法可能受到其低准确率的学习效果的影响。本文表明,对于解决涉及到此数据集的有限数据的问题而言,使用COCO预训练是非常有效的策略。
  最后,我们观察到val 和 test AP之间的偏差,正如在[23, 4]中的结果中观察到的一样。我们发现,这种偏差主要是由于卡车、公共汽车和火车类别导致的,这几种类别在仅使用精细训练集的模型中的val/test AP分别为 28.8/22.8、53.5/32.2和33.0/18.6。这表明,这些类别中存在域的改变,且这些类别的训练数据也非常少。COCO预训练有助于最大限度地提高这些类别的结果;然而,域的改变仍然存在,在这种情况下,这些类别的val/test AP分别为38.0/30.1、57.5/40.9和 41.2/30.9。请注意,我们在人物和汽车类别中并没有观察到此类偏差(val/test AP的偏差在±1点之内)。
  图7显示了城市风景方面的实例结果。

上一篇下一篇

猜你喜欢

热点阅读