论文阅读总结Mask R-CNN翻译总结

Posted 荼靡,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文阅读总结Mask R-CNN翻译总结相关的知识,希望对你有一定的参考价值。

Mask R-CNN

1.摘要

Mask R-CNN相关介绍与优点

  • 一个概念上简单、灵活和通用的对象实例分割框架
  • 有效地检测图像中的对象,同时为每个实例生成高质量的分割掩码。
  • 通过添加一个用于预测对象掩码的分支,与现有的边界框识别分支并行,扩展了Faster R-CNN。
  • 易于实现和训练,这有助于广泛的灵活架构设计。仅为Faster R-CNN增加了一小部分开销,以每秒5帧的速度运行。
  • 很容易推广到其他任务,例如:允许我们在同一框架中估计人体姿势。
  • 通过添加一个分支来预测每个感兴趣区域(RoI)上的分割掩码,并与现有的分类和边界框回归分支并行,从而扩展了Faster R-CNN 。掩模分支是应用于每个RoI的小FCN,以 pixel-to-pixel的方式预测分割掩模。
  • 掩码分支只增加了少量的计算开销,从而实现了快速系统和快速实验
  • Mask R-CNN可以被更广泛地视为实例级识别的灵活框架,并且可以很容易地扩展到更复杂的任务。
  • 展示了COCO系列挑战的所有三个方面的顶级结果,包括实例分割边界框对象检测人物关键点检测
  • 在没有钟声和哨声的情况下,Mask R-CNN在每项任务上都优于所有现有的单一模型参赛作品。

2.引言

  • 视觉社区在短时间内快速改进了对象检测和语义分割结果。很大程度上,这些进步是由强大的基线系统驱动的。
    • 例如:分别用于对象检测语义分割Fast/Faster R-CNN全卷积网络(FCN)框架
    • 这些方法在概念上是直观的,提供了灵活性鲁棒性,以及快速的训练和推理时间。
  • 算法目标:为实例分割开发一个相对可行的框架。
  • 实例分割具有挑战性,因为它需要正确检测图像中的所有对象,同时还需要精确分割每个实例。因此,它结合了经典的计算机视觉目标检测任务中的元素,目标是对单个目标进行分类,并使用边界框对每个目标进行定位和语义分割,目标是将每个像素分类为一组固定的类别,而不区分对象实例。发现一个令人惊讶的简单、灵活和快速的系统可以超越现有的最先进的实例分割结果。
  • Mask R-CNNFaster R-CNN的直观扩展,但正确构建掩码分支对于获得良好结果至关重要。
  • RoIAlign
    • Faster R-CNN不是为网络输入和输出之间的 pixel-to-pixel对齐而设计的。这在RoIPool (用于处理实例的事实上的核心操作)如何为特征提取执行粗略的空间量化中最为明显。为了修复错位,提出了一个简单的无量化层【RoIAlign】,它忠实地保留了精确的空间位置(减小预测误差,相对于原图像素位置)。
  • RoIAlign微小变化,具有很大影响:
    • 掩模精度提高了10%到50%,在更严格的定位标准下显示出更大的增益。
    • 必须将掩码和类预测解耦:
      • 我们独立地为每个类预测一个二进制掩码,而不需要类之间的竞争 【类与类之间掩码损失无关性,互不影响】,并依赖网络的RoI分类分支来预测类别。
    • 相比之下,FCN通常执行 per-pixel多分类,这将分割和分类结合起来,并且根据我们的实验,对于实例分割效果不佳
  • 模型结果
    • 在COCO实例分割任务中,Mask R-CNN超越了之前所有最先进的单一模型结果 。
    • 算法在COCO对象检测任务上也很出色。在消融实验中,我们评估了多个基本实例,这使我们能够证明其鲁棒性并分析核心因素的影响。
    • 模型可以在GPU上以每帧200毫秒的速度运行,快速的训练和测试速度,加上框架的灵活性和准确性,将有利于并简化未来对实例分割的研究。
    • 通过COCO关键点数据集上的人类姿态估计任务展示了我们框架的通用性 。通过将每个关键点视为一个热二进制掩码,通过最小的修改,可以应用Mask R-CNN来检测特定于实例的姿势。

3.文献综述

3.1 R-CNN

  • Region-based CNN (R-CNN) 方法用于边界盒对象检测,是关注可管理数量的候选对象区域 ,并独立于每个RoI评估卷积网络 。
  • R-CNN被扩展 ,以允许使用RoIPool处理特征地图上的RoI,从而提高速度和准确性
  • Faster R-CNN通过学习区域建议网络(RPN)的注意力机制,推进了这一流程。
  • Faster R-CNN对许多后续改进 ,具有灵活性和鲁棒性,是当前几个基准测试中的领先框架。

3.2 Instance Segmentation【实例分割】

  • R-CNN有效性的推动下,许多实例分割方法都基于分段建议。早期的方法采用自下而上的分段 。DeepMask和后续工作学习提出细分候选,然后由Fast R-CNN分类。
  • 在这些方法中,分割先于识别,这是缓慢且不太准确的。
  • Dai等人提出了一种复杂的多级级联,该级联从边界框建议中预测分段建议,然后进行分类。
  • 我们的方法基于掩码和类标签的并行预测,这更简单、更灵活
  • Li等人将片段建议系统和对象检测系统结合起来,用于“全卷积实例分割”(FCIS)
  • 思想是完全卷积地预测一组位置敏感的输出信道。这些通道同时处理对象类、框和掩码,使系统快速运行。但是FCIS在重叠实例上表现出系统性错误,并产生虚假边缘 ,这表明它受到分割实例的基本困难的挑战。
  • 实例分割的另一系列解决方案 是由语义分割的成功驱动的。从每像素分类结果(例如,FCN输出)开始,这些方法尝试将同一类别的像素分割成不同的实例。
  • 与这些方法的分段优先策略不同,Mask R-CNN基于实例优先策略。我们预计,未来将研究这两种战略的更深入结合。

4. Mask R-CNN介绍

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

4.1 Faster R-CNN(相关细节请看相关文章)

  • 简要回顾了Faster R-CNN探测器。Faster R-CNN包括两个阶段。
    • 第一阶段称为区域建议网络(RPN),提出候选对象边界框。
    • 第二阶段本质上是Fast R-CNN,使用RoIPool从每个候选框中提取特征,并执行分类和边界框回归。
  • 两个阶段使用的特征可以共享,以便更快地推断。

4.2 Mask R-CNN

  • Mask R-CNN采用相同的两阶段程序。
    • 具有相同的第一阶段(即RPN)。
    • 在第二阶段,在预测类和边框偏移的同时,Mask R-CNN还为每个RoI输出二进制掩码。这与最新的系统形成对比,其中分类取决于掩码预测 。
  • Mask R-CNN遵循Fast R-CNN的精神,即并行应用边界框分类和回归(结果证明,这在很大程度上简化了原始R-CNN 的多级管道)
  • 训练期间,每个采样RoI的多任务损失定义为
    L = L c l s + L b o x + L m a s k L=L_cls+L_box+L_mask L=Lcls+Lbox+Lmask
    • 分类损失 L c l s L_cls Lcls和边界框损失 L b o x L_box Lbox与Fast R-CNN中定义的相同。
    • 掩码分支对每个RoI都有一个 K m 2 Km^2 Km2维输出,它编码分辨率为 m ∗ m m*m mmK个二进制掩码,k表示有k个类别,m表示特征图大小。
    • 我们应用per-pixel sigmoid,并将 L m a s k L_mask Lmask定义为平均二进制交叉熵损失。
    • 对于与 ground-truth 【背景真实值】类别k相关的RoI L m a s k L_mask Lmask仅在第k个掩码上定义(其他掩码输出不影响损失)【只在一个特征图上有损失,与其他特征图无关】
  • L m a s k L_mask Lmask
    • L m a s k L_mask Lmask定义允许网络为每个类生成掩码,而无需类别之间的竞争**【类别之间无相关性】**;我们依靠专门的分类分支来预测用于选择输出掩码的类标签。这使掩码和类预测解耦。
    • 这与将FCN应用于语义分割时的常见做法不同
    • 语义分割通常使用per-pixel softmax和多项式交叉熵损失。在这种情况下,不同分类的掩码会竞争;
    • 它们没有使用,对于per-pixel sigmoid和二进制损失。通过实验表明,该公式是获得良好实例分割结果的关键。

4.3 Mask Representation【遮罩表示法】

  • 掩码对输入对象的空间布局进行编码。提取掩模的空间结构可以通过卷积提供的pixel-to-pixel的对应来自然地解决。
    • 与全连接(fc)层不可避免地折叠成短输出向量的类标签或盒偏移不同 (全连接会导致不同特征叠加,不能获得pixel-to-pixel结构)
  • 使用FCN从每个RoI预测 m ∗ m m*m mm掩码。
    • 允许遮罩分支中的每个层保持明确的 m ∗ m m*m mm对象空间布局,而不会将其折叠为缺少空间维度的矢量表示。
    • 与先前方法不同,全卷积参数更少,并且如实验所证明的那样更准确,这些方法使用fc层进行掩模预测。
  • pixel-to-pixel 的行为要求我们的RoI特征(它们本身是小的特征图)很好地对齐,以忠实地保持每像素的明确空间对应关系。这促使我们开发了以下RoIAlign层,该层在掩模预测中起着关键作用。

4.4 RoIAlign【感兴趣区域对齐】

4.4.1 RoIPool【感兴趣区域池化】

  • RoIPool是从每个RoI中提取小特征图(例如,7×7)的标准操作。
  • RoIPool首先将浮点数RoI量化为特征图的离散粒度,然后将该量化的RoI细分为自己量化的空间仓,最后聚合每个仓覆盖的特征值 (就是最大池)
    • 这些量化引入了RoI和提取的特征之间的不对齐 【与最大池化前的特征图没有pixel-to-pixel之间对齐关系,不能找到原图位置的像素点】
    • 虽然这可能不会影响分类,因为分类对于小的平移是鲁棒的,但它对预测像素准确的掩码有很大的负面影响。【预测边框准确位置会有很大偏差】

4.4.2 RoIAlign提出【解决不对齐问题】

  • 提出了一个RoIAlign层,它消除了·RoIPool·的苛刻量化,将提取的特征与输入正确对齐。
  • 提出的改变很简单:
    • 避免了RoI边界或容器的任何量化。
    • 我们使用双线性插值计算每个RoI容器中四个规则采样位置的输入特征的精确值,并聚合结果(使用最大值或平均值)。注意到:只要不进行量化,结果对精确的采样位置或采样的点数不敏感。
  • RoIAlign带来了巨大改进。我们还与论文 (Instance-aware semantic segmen-tation via multi-task network cascades.) 中提出的RoIWarp操作进行了比较。
  • RoIAlign不同,RoIWarp忽略了对齐问题,并实现效果与RoIPool一样量化RoI。因此,尽管RoIWarp也采用了激励的双线性重采样,但如实验所示,它的性能与RoIPool相当,证明了对齐的关键作用

4.5 Network Architecture【网络体系结构】

  • 为了证明我们方法的通用性,我们使用多个架构实例化Mask R-CNN
  • 为了清楚起见,我们区分了:
    • (i)用于整个图像特征提取的卷积主干架构。
    • (ii)分别应用于每个RoI的边界框识别(分类和回归)和掩码预测的网络头。
  • 使用网络深度特征来表示主干架构。
    • 评估了深度为50101层的ResNetResNeXt网络。
    • Faster R-CNNResNets的原始实现从第4阶段的最终卷积层提取了特征,我们称之为C4
      • 例如,具有ResNet-50的主干由ResNet-50-C4表示。
  • 还探索另一种更有效的主干,称为特征金字塔网络(FPN)
    • FPN使用具有横向连接的自顶向下架构,从单个规模的输入构建网络内特征金字塔。
    • 具有FPN主干的Faster R-CNN 根据其规模从特征金字塔的不同级别提取RoI特征,但其他方法类似于vanilla ResNet
    • 使用ResNet FPN主干与Mask RCNN进行特征提取,在精度和速度方面都获得了优异的提高
  • network head
    • 对于网络头部,我们严格遵循先前工作中提出的架构,在其中添加了全卷积掩码预测分支。
    • 扩展了ResNetFPN论文中的Faster R-CNN箱头。左/右面板显示了ResNet C4FPN主干的头部,其中添加了掩码分支。
      • ResNet-C4主干上的头部包括ResNet的第5阶段(即9层“res5”)。
      • 对于FPN,主干已经包括res5,因此允许使用更少滤波器的更高效的头部

5. 算法训练过程

  • 根据现有的Fast/Faster R-CNN工作设置了超参数。使用迁移学习作为超参数对我们的实例分割系统对它们是鲁棒的。

5.1 train【训练】

  • Fast R-CNN一样,如果RoIIoU至少为0.5,则RoI被认为是正的,否则RoI被视为负的。
  • 掩码损失 L m a s k L_mask Lmask仅在正RoI上定义。掩码标签是RoI与其相关 ground-truth (真实背景)之间的交叉点。
  • 采用以图像为中心的训练。调整图像的大小,使其比例(较短的边缘)为800像素。
  • 每个mini-batch每个GPU2个图像,每个图像有N个采样RoI,正负比为1:3
  • 对于C4主干,N64;对于FPNN512
  • 8GPU(因此有效的小批量大小为16)上训练160k次迭代,学习率为0.02,在120k次迭代时降低了10
  • 使用0.0001的重量衰减和0.9的动量。
  • 使用ResNeXt
  • 使用每个GPU 1个图像和相同的迭代次数进行训练,初始学习率为0.01
  • RPN锚范围5个比例和3个纵横比**【5个不同面积的框,每个框有3个不同形状(面积相同,长宽比例不同)】**。为了方便消融,RPN单独训练,除非另有规定,否则不会与Mask R-CNN共享功能。RPNMask R-CNN具有相同的主干,因此它们是可共享的。

5.2 Inference【推断】

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

5. 实验

5.1 Instance Segmentation【实例分割】

  • 在COCO数据集上对Mask R-CNN与现有技术进行了彻底比较,并进行了全面消融。
  • 报告了标准COCO指标,包括AP(在IoU阈值上的平均值)、AP50、AP75和APS、APM、APL(不同尺度的AP)。除非另有说明,AP正在使用掩码IoU进行评估。与之前的工作一样,我们使用80k列车图像和35k val图像子集(trainval35k)的联合进行训练,并报告剩余5k val图像(minival)的消融情况。
  • 结果
    • Mask R-CNN与表1中最先进的实例分割方法进行了比较。我们模型的所有实例都优于先前最先进模型的基线变体。
    • 在没有钟声和哨声的情况下,具有ResNet-101-FPN主干的Mask R-CNN优于FCIS++,后者包括多尺度训练/测试、水平翻转测试和在线硬示例挖掘(OHEM)。虽然不在这项工作的范围内,但我们预计许多此类改进将适用于我们的工作.
  • 结论
    • 在具有挑战性的条件下,Mask R-CNN也能取得良好的效果。
    • 比较了Mask R-CNN基线和FCIS++FCIS+++在重叠实例上表现出系统性的伪影,这表明它受到实例分割的基本困难的挑战。Mask R-CNN没有显示此类伪影

5.2 Ablation Experiments【消融实验】

  • 架构:
    • 如图显示具有各种主干的Mask R-CNN
    • 它得益于更深的网络(50对101)和先进的设计,包括FPN和ResNeXt
    • 注意到,并非所有框架都能自动从更深层次或更高级的网络中受益
  • Multinomial vs. Independent Masks【多项式与独立掩码】
    • Mask R-CNN将掩码和类预测解耦:
      • 当现有的框分支预测类标签时,我们为每个类生成一个掩码,而类之间没有竞争(通过 per-pixel sigmoid 和二进制损失)。将其与使用per-pixel softmax 和多项式损失(如FCN中常用的)进行了比较。
      • 这种替代方案将掩码和类预测的任务相结合,并导致掩码AP的严重损失(5.5分)
      • 表明:一旦实例被分类为一个整体(通过盒分支),就足以预测二元掩码,而不必考虑类别,这使得模型更容易训练
  • Class-Specific vs. Class-Agnostic Masks【阶级特定与阶级不可知掩码】
    • 默认实例化预测类特定的掩码,即1 m × m m×m m×m每个类的掩码。
    • 具有类不可知掩码的Mask R-CNN(即,无论类别如何预测单个m×m输出)几乎同样有效:它具有29.7个掩码AP,而ResNet-50-C4上的类特定掩码AP30.3
    • 这进一步突出了我们方法中的分工,该方法在很大程度上分离了分类和分割
  • RoIAlign
    • 我们使用ResNet50-C4主干,它的步幅为16RoIAlign比RoIPool提高AP约3个点,大部分增益来自高IoU(AP75)RoIAlign对最大/平均池不敏感;我们在论文的其余部分使用平均值

    • MNC中提出的同样采用双线性抽样的RoIWarp进行了比较。RoIWarp仍然对RoI进行量化,失去了与输入的一致性。RoIWarp的性能与RoIPool相当,但比RoIAlign差得多。

    • 评估了具有ResNet-50-C5主干的RoIAlign,该主干具有更大的32像素步幅。我们使用与图4(右)相同的头部,因为res5头部不适用。表2d显示,RoIAlign将掩模AP提高了7.3点,掩模AP75提高了10.5点(相对改善50%)

    • 使用RoIAlign,使用stride-32 C5 features (30.9 AP)比tride-16 C4 features (30.3 AP , Table 2c).更准确。

    • RoIAlign在很大程度上解决了使用大步长特征进行检测和分割的长期挑战

    • 当与FPN一起使用时,RoIAlign显示出1.5掩模AP0.5AP的增益,其具有更精细的多级跨步。对于需要更精细对齐的关键点检测,即使使用FPNRoIAlign也显示出较大的增益(表6)。

  • Mask Branch【掩码分支】
    • 分割是一个pixel-to-pixel的任务,通过使用FCN来利用掩模的空间布局。
    • 使用ResNet-50-FPN主干比较了多层感知器(MLP)FCN使用FCN比MLP提供2.1掩码AP增益。为了与MLP进行公平比较,我们选择了该主干,以使FCN头部的对流层未经过预训练

5.3 Bounding Box Detection Results【边界框检测结果】

  • Mask R-CNN与表3中最先进的COCO边界框对象检测进行了比较。
  • 对于结果,即使训练了全Mask R-CNN模型,在推断时也只使用分类和框输出(掩码输出被忽略)。
  • 使用ResNet-101FPN的Mask R-CNN优于所有先前最先进模型的基础变体,包括GRMI的单模型变体
  • 使用ResNeXt-101-FPNMask R-CNN进一步改进了结果,与使用Inception-ResNet-v2-TDM中的最佳先前单一模型条目相比,框AP的裕度为3.0点。
  • 训练了一个Mask R-CNN版本,但没有掩码分支,在表3中用“Faster R-CNN,RoIAlign”表示。由于RoIAlign该模型的性能优于[Feature pyramid networks for object detection.]中提出的模型。另一方面,它比Mask R-CNN低0.9分。
  • Mask R-CNN在盒子检测方面的差距仅是由于多任务训练的好处
  • Mask R-CNN在其掩码和框AP之间获得了一个小的差距:例如,在37.1(掩码,表1)和39.8(框,表3)之间的2.7点。
  • 这表明我们的方法在很大程度上缩小了对象检测和更具挑战性的实例分割任务之间的差距

5.4 Timing【调速】

  • Inference【推理】

    • 训练了一个ResNet-101-FPN模型,该模型在RPNMask R-CNN阶段之间共享特征,随后对Faster R-CNN进行了4步训练。
    • 该模型在Nvidia Tesla M40 GPU上以每幅图像195毫秒的速度运行(外加15毫秒的CPU时间将输出调整为原始分辨率),并在统计上实现了与非共享图像相同的掩模AP
    • ResNet-101-C4变体需要约400ms的时间,因为它具有更重的箱头(图4),因此不建议在实践中使用C4变体。
    • 尽管Mask R-CNN速度很快,但是我们的设计并未针对速度进行优化,可以通过改变图像大小和提案数量等方式实现更好的速度/精度权衡,这超出了本文的范围
  • Training【训练】

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

6. 总结

6.1 FPN(特征金字塔网络)

  • 特征金字塔用来提取特征
  • 自下而上层
    • 使用Resnet深度残差算法主干结构提取特征,返回每个阶段最后一层的数据。
  • 自上而下层
    • 使用线性插值与此阶段的前一个阶段进行特征融合,以此类推,返回特征融合后每个阶段的值

为什么要特征融合?【自己理解的,不知道对不对】

在特征提取前期阶段提取出的特征也很重要,前期特征语义性虽然弱,但是提取出的零碎特征在图片上数据比较明显
比如:一张图片中有一个人,前期可能会提取出人的主要特征部位(腿等位置),与后期的特征在进行融合,会使腿这个特征学习的更好

6.2 候选框生成

  • 对提取的特征图进行区域金字塔网络【就是设置很多不同的框,在不同的框中提取特征】
  • RPN会以每个像素点为中心,设置5个不同大小的scales,每个scales3个不同的roatis,进行生成
    • 例如;scales:(32, 64, 128, 256, 512),roatis([0.5, 1, 2]),所以每个像素点会生成15个不同的框

6.3 RPN(区域建议网络)

  • 将生成的候选框做前景和背景二分类
    • 返回分类得分,分类概率,区域框数据

6.4 ROI(感兴趣区域)

  • 筛选候选框
    • 根据得分值选择top-pre_nms_limit个前景(top n的得分最高的前景)
    • 根据阈值筛选候选框重叠比例大于阈值的,再选出得分最高的框

6.5 DetectionTargetLayer【检测目标层】

  • 获取正负样本数据集
  • 根据阈值设置正负样本
  • 数据集正负比例为1:3

6.6 Network Heads【网络头部】

  • 将所有特征图大小统一一个尺寸,方便后期全连接层
  • ROI Align:将特征图进行线性插值下采样方法

6.7 开始建模

7.阅读总结

  • Mask R-CNN是对于以前的R-NN算法的更新迭代
  • 相关知识点在前期都有涉及
  • 此算法主要就是使用FPN,特征金字塔对特征进行融合
  • 使用线性插值对特征进行上采样融合与下采样特征进入全连接层
  • 只理解这么多东西。。。

以上是关于论文阅读总结Mask R-CNN翻译总结的主要内容,如果未能解决你的问题,请参考以下文章

论文阅读(Chenyi Chen——ACCV2016R-CNN for Small Object Detection)

论文阅读(Chenyi Chen——ACCV2016R-CNN for Small Object Detection)

R-CNN论文翻译——用于精确物体定位和语义分割的丰富特征层次结构

Libra R-CNN论文阅读

Mask R-CNN

Fast-RCNN论文总结整理