Introduction

本文提出了一个概念简单,灵活通用实例分割框架.扩展Faster R-CNN,再其基础上,添加了一个用于掩码预测掩码分支Faster R-CNN现有的边缘框预测分支并行.

Faster R-CNN并没有设计成网络输入与输出的每个像素都对齐,主要原因是处理实例的核心操作RolRool粗略的空间量化特征提取,为了解决像素对齐问题,本文提出了简单的,无关量化的RolAlign层.且RoIAlign对结果有很大的提升:将Mask的准确性提高了10%-50%,并且在更严格的指标下展现出更大的效益.

Mask R-CNN可以以每秒5帧的速度运行在单个GPU上,在COCO数据集上只用一台8-GPU机器训练2天

Mask R-CNNCOCO数据集的实例分割任务上比先前最先进的网络还要更好,除此之外Mask R-CNN通过极小的修改(将每个关键点看作一个单独的二元掩码)也能用在姿势关键点检测,且超过了2016年COCO关键点检测的冠军

Mask R-CNN

Faster R-CNN: Faster R-CNN包含两个阶段:

  1. 通过RPN生成候选框.
  2. 使用RoIPool对个候选框进行分类和边缘框回归。

Mask R-CNN: 同样包含两个阶段:

  1. Faster R-CNN一样,通过RPN生成候选框.
  2. 在预测类别和边缘框的同时,Mask R-CNN还为每个RoI输出一个二元掩码。

训练中,定义了一个多任务损失函数,且对每个采样后的RoI进行计算

L=Lcls+Lbox+LmaskL=L_{cls}+L_{box}+L_{mask}

其中,分类损失LclsL_{cls},与边缘框损失LboxL_{box}Fast R-CNN中的相同.

遮罩分支每个RoI输出为KK个分辨率为m×mm×m的二元掩码,KK为类别数,为每个像素进行Sigmoid,将LmaskL_{mask}定义为交叉熵损失函数,仅在真实类别的掩码上计算损失(对于k类,则计算第k个掩码的损失,其他舍去,通过实验表明,这种掩码与类别分离预测是取得良好实例分割结果的关键。)

遮罩表示: 掩码对输入对象的空间布局进行编码.因此,与类标签或箱体偏移量不同,全连接层会导致其丢失空间信息.提取遮罩的空间结构可以通过使用FCN来自然解决,也只需要更少的参数,而且更准确.

RoIAlign: 传统RoIPool会进行两次取整(量化)操作,会导致原始输入与特征像素无法对应,产生偏差,虽然不影响分类,但它对预测像素精确的掩码会有很大影响.

为了解决这个问题,本文提出没有取整(量化)的RoIAlign.RoI的每个bin都有四个采样点,RoIAlign 从特征图上附近的网格点通过双线性插值计算每个采样点的值。 不对任何涉及 RoI、其 bin 或采样点的坐标执行量化,这样,既能保存精确的浮点数坐标,也能得到对应的像素值.

网络架构:

  1. 用于整个图像的特征提取骨干网络:我们评估了50和101层ResNetResNeXt网络.用Faster R-CNN第4阶段最终提取特征的卷积层,我们称之为C4.例如,这种带有ResNet-50骨干网络被称为ResNet-50-C4.

  2. 用于每个RoI的边界箱识别(分类和回归)和掩码预测的网络头:我们严格遵循以前的工作中提出的架构,并在此基础上增加了一个FCN掩码分支

左/右图显示了ResNet-C4FPN骨干网络的网络头。,所有的卷积核都是3x3,除了输出卷积是1x1,反卷积卷积核大小为2x2,步长为2,隐藏层中使用ReLU,图中箭头代表卷积、反卷积或全连接层,左图的res5代表ResNet的第五阶段,为了简单起见,我们改变了它,使第一个卷积在7×7的RoI上操作,步长为1(原来是的17×14的RoI执行步长为2的卷积).

ResNet-C5主干网已经包括了一个res5,因此可以使用一个更简单的头。

Implementation Details

超参数Faster R-CNN,IOU不小于0.5则为正样本,否则为负样本,掩码损失函数仅在RoI正样本上计算.掩码是RoI及其对应的边缘框之间的掩码.在测试时,C4主干网络中的候选数量为300,FPN为1000.在这些候选上执行检测框预测分支,随后进行nms.然后将掩码分支应用于评分最高100个检测框.尽管这与训练中使用的并行计算不同,但它可以加速推理并提高精度(由于使用更少,更准确的RoI).对于每个RoI只使用第k个掩码,其中k是分类分支预测的类别.然后将m×m浮点数掩码输出的大小调整为RoI大小,并使用阈值0.5将其二元化.