Mask R-CNN翻译
Posted majiale
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mask R-CNN翻译相关的知识,希望对你有一定的参考价值。
摘要
我们提出了一个概念上简单、灵活和通用的对象实例分割框架。我们的方法高效地检测图像中的目标,同时为每个实例生成高质量的分割掩码。这种称为Mask R-CNN的方法通过添加一个用于预测对象掩码的分支来扩展Faster R-CNN,该分支与现有的用于边界框识别的分支并行。Mask R-CNN训练简单,只为Faster R-CNN增加一个小的开销,运行速度为5fps。此外,Mask R-CNN很容易泛化到其它任务,例如,允许我们在同一框架中估计人体姿势。我们在COCO挑战“套件”全部三个“轨道”中展示了最佳结果,包括实例分割,边界框对象检测和人员关键点检测。无需任何技巧,Mask R-CNN在每个任务中胜过所有现有的单模型条目,包括COCO 2016挑战获胜者。我们希望简单有效的方法将成为一个坚实的基线,并有助于简化未来在实例级识别方面的研究。代码将可用。
1. 介绍
视觉社区在一段时间内迅速改进了对象检测和语义分割结果。在很大程度上,这些进步是由强大的基线系统驱动的,例如分别用于物体检测和语义分割的Fast/Faster R-CNN[9, 29]和全卷积网络(FCN)[24]框架。这些方法在概念上是直观的,并提供灵活性和稳健性,以及快速的训练和推理时间。我们在这项工作中的目标是为实例分割开发一个可比较的支持框架。
实例分割具有挑战性,因为它需要正确检测图像中的所有对象,同时也精确地分割每个实例。因此,它结合了来自目标检测的经典计算机视觉任务的元素,其目标是对各个目标进行分类并使用边界框对每个目标进行定位,以及语义分割,其目标是将每个像素分类为固定的一组类别而不区分的目标实例。鉴于此,人们可能期望需要一种复杂的方法来获得良好的结果。然而,我们表明,一个令人惊讶的简单,灵活,快速的系统可以超越先前的先进实例分割结果。
我们的方法称为Mask R-CNN,通过在每个感兴趣区域(ROI)上添加一个分支来预测分割掩码,并与现有分支进行分类和边界框回归,从而扩展Faster R-CNN(Figure1)。掩码分支是应用于每个RoI的小FCN,以像素到像素的方式预测分割掩码。在给定R-CNN框架的情况下,Mask R-CNN很容易实现和训练,这有助于广泛的灵活架构设计。另外,掩码分支只会增加一个小的计算开销,从而实现快速系统和快速实验。
原则上,Mask R-CNN是Faster R-CNN的直观扩展,但正确构建掩码分支对于获得良好结果至关重要。最重要的是,Faster R-CNN并非设计用于网络输入和输出之间的像素到像素对齐。这一点在RoIPool(参与实例的事实上的核心操作)如何为特征提取执行粗略空间量化方面最为明显。为了解决这个错位,我们提出了一个简单的,无量化的层,称为RoIAlign,忠实地保留了精确的空间位置。尽管看似微小的变化,但RoIAlign的影响很大:它将掩码精度提高了10%到50%,在更严格的定位衡量下显示出更大的收益。其次,我们发现分离掩码和类预测是必不可少的:我们独立地预测每个类的二元掩码,没有类之间的竞争,并依赖于网络的RoI分类分支来预测类别。相比之下,FCN通常执行逐像素多类别分类,其结合分割和分类,并且基于我们的实例分割实验效果不佳。
在没有花里胡哨的情况下,Mask R-CNN超越了COCO实例分割任务的所有先前的最先进singel-model结果,包括来自2016年比赛获胜者的精心设计的参赛作品。作为副产品,我们的方法也擅长COCO目标检测任务。在消融实验中,我们评估了多个基本实例,这使我们能够证明其稳健性并分析核心因素的影响。
我们的模型可以在GPU上以每帧大约200ms的速度运行,而COCO上的训练在单个8-GPU机器上需要一到两天。我们相信快速训练和测试速度以及框架的灵活性和准确性将有利于并简化未来对实例分割的研究。
最后,我们通过对COCO关键点数据集的人体姿态估计的品味展示了我们框架的通用性。通过将每个关键点视为单热二进制掩码,通过最小的修改,可以应用Mask R-CNN来检测特定于实例的姿势。没有技巧,Mask R-CNN超越了2016年COCO关键点竞赛的冠军,同时以5fps的速度运行。因此,掩码R-CNN可以更广泛地被视为用于实例级识别的灵活框架,并且可以容易地扩展到更复杂的任务。
我们将发布代码以促进未来的研究。
2. 相关工作
R-CNN:基于区域的CNN(R-CNN)边界框目标检测方法是关注可管理数量的目标区域并且在每个RoI上独立地评估卷积网络。R-CNN扩展到允许使用RoIPool在特征地图上参加RoI,从而实现更快的速度和更高的准确性。Faster R-CNN通过使用区域提议网络(RPN)学习注意机制来推进此流。Faster R-CNN对于许多后续改进而言是灵活且稳健的,并且是几个基准测试中的当前领先框架。
Instance Segmentation:在R-CNN的有效性的推动下,许多实例分割方法都基于分割提议。早期的方法采用自下而上的分割【33,2】。DeepMask【27】及其后续工作【28,5】学习提出段候选,然后由Fast R-CNN分类。在这些方法中,分割先于识别,这是缓慢且不太准确的。同样,Dai等人【7】提出了一个复杂的多阶段级联,它可以从边界框提议中预测分段提议,然后进行分类。相反,我们的方法基于掩码和类标签的并行预测,这更简单,更灵活。
最近,Lei等人将[5]中的分段建议系统和[8]中的目标检测系统结合起来,用于“完全卷积实例分割”(FCIS)。[5,8,21]中的常见想法是完全卷积地预测一组位置敏感的输出通道。这些通道同时处理对象类,框和掩码,使系统快速。但FCIS在重叠实例上表现出系统误差并产生虚假边缘(Figure 5),表明它受到分割实例的基本困难的挑战。
3. Mask R-CNN
Mask R-CNN在概念上很简单:Faster R-CNN为每个候选对象提供两个输出,一个类标签和一个边界框偏移; 为此,我们添加了第三个输出掩码的分支。 因此,Mask R-CNN是一种自然而直观的想法。但是额外的掩码输出与类和框输出不同,需要提取对象的更精细的空间布局。接下来,我们介绍Mask R-CNN的关键元素,包括像素到像素的对齐,这是Fast / Faster R-CNN的主要缺失部分。
Faster R-CNN:我们首先简要回顾一下更快的R-CNN检测器【29】。Faster R-CNN包括两个阶段。第一阶段称为区域提议网络(RPN),提出候选对象边界框。第二阶段,实质上是Fast R-CNN,从每个候选框中使用RoIPool提取特征,并执行分类和边界框回归。可以共享两个阶段使用的特征,以便更快地推断。我们向读者推荐【17】,以便在Faster R-CNN和其他框架之间进行最新,全面的比较。
Mask R-CNN:Mask R-CNN采用相同的两阶段步骤,具有相同的第一阶段(即RPN)。在第二阶段,与预测类和框偏移并行,Mask R-CNN还为每个RoI输出二元掩码。这与最近的系统形成对比,其中分类取决于掩码预测(例如【27,7,21】)。我们的方法遵循Fast R-CNN [9]的精神,并行地应用了边界框分类和回归(结果很大程度上简化了原始R-CNN的多阶段流水线[10])。
形式上,在训练期间,我们将每个采样RoI的多任务损失定义为$L=L_{cls}+L_{box}+L_{mask}$。分类损失$L_{cls}$和边界框$L_{box}$与【9】中定义的一致。掩码分支对于每个RoI具有$km^2$维输出,其编码分辨率为$mxm$的K个二进制掩码,每个K类对应一个。为此我们应用每像素sigmoid,并将$L_{mask}$定义为平均二元交叉熵损失。对于与真值类k相关联的RoI,$L_{mask}$仅在第k个掩码上定义(其他掩码输出不会导致损失)。
我们对$L_{mask}$的定义允许网络为每个类生成掩码,而不需要在类之间进行竞争; 我们依靠专用的分类分支来预测用于选择输出掩码的类标签。这解耦了掩码和类预测。这与将FCN [24]应用于语义分割时的常规做法不同,后者通常使用每像素softmax和多项交叉熵损失。在这种情况下,各类的掩码竞争; 在我们的例子中,有他们没有的每像素sigmoid和二元损失。我们通过实验表明,该公式是良好实例分割结果的关键。
Mask Representation:掩码编码输入目标的空间布局。因此,与通过全连接(fc)层不可避免地折叠成短输出矢量的类标签或框偏移不同,提取掩码的空间结构可以通过由卷积提供的像素到像素的对应自然地解决。
具体来说,我们使用FCN预测每个RoI的$mxm$掩码。这允许掩码分支中的每个图层保持显式的$mxm$对象空间布局,而不会将其折叠为缺少空间维度的矢量表示。与先前使用fc层进行掩码预测的方法不同,我们的全卷积表示需要更少的参数,并且如实验所示更准确。
这种像素到像素的行为要求我们的RoI特征(它们本身就是小特征映射)能够很好地对齐,以忠实地保持显式的每像素空间对应关系。这促使我们开发以下RoIAlign层,该层在掩码预测中起关键作用。
RoIAlign:RoIPool【9】是用于从每个RoI中提取小特征图(例如$7x7$)的标准操作。RoIPool首先将浮点数RoI量化为特征图的离散粒度,然后将该量化的RoI细分为自身量化的空间区间,最后聚合每个区间覆盖的特征值(通常通过最大池化)。例如,通过计算$[x/16]$在连续坐标上执行量化,其中16是特征图步幅并且[.]是舍入的;同样,当分成区间(例如,$7x7$)时执行量化。这些量化引起RoI和提取的特征之间的不对准。虽然这可能不会影响分类,这对小的转变很有效,但它对预测像素精确掩码有很大的负面影响。
为了解决这个问题,我们提出一个RoIAlign层来消除RoIPool的严格量化,正确地将提取的特征与输入对齐。我们提出的改变很简单:我们避免对RoI边界或区间的任何量化(例如,我们使用$x/16$而不是$[x/16]$)。我们使用双线性插值【18】来计算每个RoI区间中四个常规采样位置的输入特征的准确值,并汇总结果(使用最大值或平均值)。
我们在4.2中展示了RoIAlign带来的巨大改进。我们还比较了【7】中提出的RoIWarp操作。与RoIAlign不同,RoIWarp忽略了对齐问题,并在【7】实现了像RoIPool一样的量化RoI。因此,即使RoIWarp也采用【18】推动的双线性重采样,它的性能与RoIPool依旧相当,如实验所示(表2c中的更多细节),证明了对齐的关键作用。
Network Architecture:为了证明我们方法的通用性,我们将Mask R-CNN与多种框架建立联系。为清楚起见,我们区分:(i)用于整个图像上的特征提取的卷积$backbone$架构,以及(ii)用于边界框识别(分类和回归)的网络$head$和单独应用于每个RoI的掩码预测。
我们使用命名法$network-depth-features$来表示$backbone$架构。我们评估深度为50或101层的ResNet【15】和ResNeXt【35】。带有ResNets【15】和Faster R-CNN的原始实现从我们称为C4的第4阶段的最终卷积层中提取了特征。例如,ResNet-50的这个backbone用ResNet-50-C4表示。这是【15,7,17,31】中通用的选择 。我们还探索了Lin等【22】最近提出的另一个更有效的backbone,称为特征金字塔(FPN)。FPN使用具有横向连接的自上而下架构,从单一尺度输入构建网内特征金字塔。具有FPN backbone的Faster R-CNN根据其尺度从特征金字塔的不同级别提取RoI特征,但是方法其余类似于vanilla ResNet。使用ResNet-FPN backbone用于特征提取的Mask R-CNN在精度和速度方面获得极佳的提升。更多关于FPN的细节,请参阅【22】。
对于网络$head$我们密切关注先前工作中提出的架构,我们在其中添加一个全卷积掩码预测分支。具体地说,我们从ResNet【15】和FPN【22】论文中扩展了Faster R-CNN box heads。Figure 3展示了细节。ResNet-C3 backbone的head包括ResNet第5阶段(即9层‘res5’【15】),这是计算密集型。对于FPN,backbone已经包含res5,因此允许使用更少滤波器的更高效的head。
我们注意到我们的掩码分支有一个简单的结构。更复杂的设计有可能改善性能,但这不是这项工作的重点。
3.1 实现细节
我们根据现有的Fast/Faster R-CNN工作【9,29,22】设置超参数。虽然这些决定是在原始论文【9,29,22】中用于目标检测的,但是我们发现我们的实例分割系统对他们是鲁棒的。
Training:如在Fast R-CNN,如果RoI和真值框的IoU至少0.5时被视为正,否则为负。掩码损失$L_{mask}$仅限于正的RoIs。掩码目标是RoI和其相关真值掩码之间的交集。
我们采用以图像为中心的训练方法【9】。调整图像大小以使其比例(最短的边)是800像素【22】。每个小批量中每个GPU上有2个图像,每个图像有$N$个采样RoI,正负比为1:3【9】。C4的backbone(如【9,29】所示)的$N$是64,FPN的是512(如【22】所示)。我们在8个GPU(有效的小批量大小为16)上进行160k次迭代,学习率为0.02,在120k次迭代时减少10倍。我们使用0.0001的权重衰减和0.9的动量。
和【22】一样,RPN锚点跨越5个尺度和3个纵横比。为了方便消融,RPN是单独训练的,除非另有说明,Mask R-CNN共享特征。对于本文中的每个条目,RPN和Mask R-CNN有同样的backbones,因此他们是可共享的。
Inference:在测试时,C4 backbone建议的数量是300(如【29】所示),FPN为1000(如【22】所示)。我们在这些提议上运行框预测分支,然后是非极大值抑制【11】。然后将掩码分支应用于最高得分100个检测框。虽然这与训练中的并行计算不同,但它加速了推理并提高了准确率(由于使用了更少,更准确的RoIs)。掩码分支可以预测每个RoI的$K$个掩码,但是我们仅使用第$k$个掩码,其中$k$是分类分支的预测类。然后将$mxm$浮点数掩码输出调整为RoI尺寸,并在阈值0.5出进行二值化。
请注意,由于我们仅计算前100个检测框,因此Mask R-CNN在它的Faster R-CNN对应部分添加一点小开销(例如,在典型模型约为 20%)。
4. 实验:实例分割
我们将Mask R-CNN与最先进的算法进行彻底的对比,并进行全面的消融实验。我们使用COCO数据集【23】进行所有实验。我们报告标准COCO指标包括AP(平均IoU阈值),AP$_{50}$,AP$_{75}$,和AP$_{S}$,AP$_{M}$,AP$_{L}$(不同尺度的AP)。除非另有说明,否则AP正在用$mask$ IoU进行评估。与之前的工作【3,22】一样,我们使用80k训练集图像和验证集图像(trainval35k)的一个35k子集的联合来训练,并报告对剩余验证集图像(minival)5k子集的消融。我们还在test-dev【23】上报告了结果,该结果没有公开的标签。发布后,我们会按照建议把test-std上的全部结果上传到公共排行榜。
以上是关于Mask R-CNN翻译的主要内容,如果未能解决你的问题,请参考以下文章
R-CNN论文翻译——用于精确物体定位和语义分割的丰富特征层次结构