Reference: Mask Scoring R-CNN, CVPR 2019

论文概述

这篇论文是华科的学生在地平线机器人实习时所作,其主体框架仍是基于经典的Mask RCNN,论文最大的贡献在于解决实例分割领域中,对Mask分割的评价问题。在实例领域中,通常采用分类的score来作为mask质量的评判score,但是这是不合理的,因为分类的score是基于检测框的IOU来做的,而mask的score应该基于mask的IOU来做才合理。因此论文提出在原有Mask RCNN的网络基础上,增加MaskIoU的head即可。

MaskIoU head的由来

一般来说,Mask的得分

,其中

为Mask分类的score,

为预测的Mask与ground truth的mask的IOU。在Mask-RCNN网络中,

已经有完成的网络了,因此只需添加一个预测

得分的子网络即可,即MaskIoU网络。

算法网络结构

江小鱼:Mask-RCNN算法精读zhuanlan.zhihu.com

mask scoring rcnn mask scoring rcnn缺点_mask scoring rcnn

算法主要的网络结构为Mask-RCNN + MaskIoU head,其中Mask-RCNN算法原理见上面的链接所示。下面重点介绍一下MaskIoU head部分的结构,详见下图所示。MaskIoU head主要用于回归出IOU,论文中作者使用预测Mask的输出+RoIAlign层的特征连接作为MaskIoU网络的输入。

mask scoring rcnn mask scoring rcnn缺点_算法原理_02

Mask Scoring RCNN

论文在试验部分对于RoIAlign特征图与预测的Mask之间的连接方式进行了对比试验,最后发现直接连接的方式是稍微好一点的。因此首先要对预测的Mask 28x28xC中提取一个28x28x1的输出(主要是MaskIoU网络仅考虑IOU,不考虑具体哪个类别的IOU,此处试验中也给出了对比试验,验证了这个想法),该输出进行MaxPooling层的降维成14x14x1,然后直接与RoIAlign的特征图进行连接形成14x14x257的特征图,然后将该特征图跟进4个卷积层,其滤波器均为3x3x256(最后一个卷积层stride=2,实现降采样功能)。最后再跟进3个全连接层,前两个滤波器的个数都是1024,最后一层输出C个类别的MaskIoU得分。

训练过程

  • 首先对MaskIoU head训练,采用RPN的proposals作为训练样本。其中采用IoU超过0.5的样本,并使用 loss来进行回归训练。
  • MaskIoU训练好后,加入到Mask RCNN网络中,再进行整体的调优。

效果

下图是分别使用Mask Scoring RCNN和Mask RCNN的效果对比。

mask scoring rcnn mask scoring rcnn缺点_算法原理_03

效果对比图