Mask Scoring R-CNN论文解读

Mask Scoring R-CNN论文解读

    人工智能大神何凯明的Mask R-CNN对实例分割做出了巨大的贡献,在2019年的CVPR会议中,一个基于Mask R-CNN的一个名为Mask Scoring R-CNN的网络提高了实例分割性能。
    大多数实例分割方法中,实例蒙板(instance mask)的分数与box-level的分类置信度共享,该置信度由运用在提议特征的分类器所预测。用分类置信度来评估蒙板质量是不合适的,因为它只服务于区分提议中的语义类别,并且不能意识到实例蒙板的实际质量和完整性。
    实例分割假设得到准确的box-level定位结果和很高的分类分数,但是对应的蒙板是不准确的。显然,用这样的分类分数来为蒙板打分会降低评价结果。本文为每个蒙板打分,称作mask score。
m a s k   s c o r e = M a s k I o U × c l a s s i f i c a t i o n   s c o r e mask\ score = MaskIoU\times{classification\ score} mask score=MaskIoU×classification score
在 Mask R-CNN框架的基础上,采用了一个叫做MaskIoU Head 的MaskIoU预测网络。
    MaskIoU head 利用mask head的输出和ROI特征作为输入并用简单的回归损失来进行训练。
    本文的主要贡献总结如下:
1.提出了第一个解决实例分割假设得分问题的名为Mask Scoring R-CNN的框架。考虑到实例蒙板的完整性。如果蒙板不够好却有一个很高的分数时,将降低实例蒙板的分数。
2.MaskIoU头非常简单和有效。

检测分数校正

    在其他方法中,大多是通过bounding box 和ground truth之间的IoU值来校正检测分数,而本文提出的MaskIoU head可以注意到实例蒙板的完整性,是针对mask的,相比bounding box更准确。最终的蒙板分数可以反映实例分割假设实际的分割质量。

动机

    目前的Mask R-CNN的检测假设是由分类分数中最大的事物决定的。因为背景聚类和咬合的问题,可能导致分类分数很高,而mask质量很低。如图1.所示在这里插入图片描述
    本文为了在数量上分析这个问题,作者对比了原始版本的Mask R-CNN的mask分数和预测得到的mask与ground truth mask之间的IoU值作比较,得到如图2.的结果,说明Mask R-CNN中classification score和MaskIoU的相关性不是很好。
在这里插入图片描述
    在大多数实例分割验证协议中如COCO,拥有高的检测分数和低的MaskIoU,对于一个检测假设是有害的,确定一个检测结果是可信的还是不可信的是非常重要的。所以本文的动机是根据每一个检测假设的MaskIoU得到一个已校准的mask score。所以作者在Mask R-CNN的基础上添加了一个MaskIoU head来学习经过MaskIoU校准后的mask score。

Mask scoring

     作者将预测mask的分数定义为 s m a s k s_{mask} smask。理想的 s m a s k s_{mask} smask等于预测mask和其匹配的ground truth mask的像素级IoU,之前被称作MaskIoU。因为一个mask 只属于一个类,因此理想的 s m a s k s_{mask} smask对于ground truth 类别应该具有正值,对于其他类别应该为零。这需要mask分数在两个方面具有很好的特性:将mask分为正确的类;将提案的MaskIoU回归为前景对象类别(就是既要稳又要准)。
    仅仅用一个函数来训练两个任务是很困难的。为了简化,作者将mask分数学习任务分解为mask分类和IoU回归,对于所有的类别表示为: s m a s k = s c l s ⋅ s i o u s_{mask}=s_{cls}\cdot{s_{iou}} smask=sclssiou s c l s s_{cls} scls专注于将提议分类到它属于的类, s i o u s_{iou} siou专注于回归MaskIoU。
    对于 s c l s s_{cls} scls,在R-CNN阶段的分类任务中就已经完成。所以可以直接采用对应的分类分数。回归的 s i o u s_{iou} siou是这篇文章的目标。

MaskIoU Head

    回归预测mask和它的ground truth mask之间的IoU值。Mask Scoring R-CNN用RoIAlign层的特征和预测mask的级联作为MaskIoU Head的输入。级联时,我们采用核大小为2,stride为2的最大池化来让预测mask和RoI特征有相同的空间尺寸。我们仅选取ground truth类回归MaskIoU(对于测试阶段,我们选取预测类)而不是所有类。MaskIoU Head由4个卷积层和3个全连接层组成。对于4个卷积层,我们跟随Mask Head设置所有卷积层的卷积核大小为3,过滤器个数为256。对于3个全连接层,我们跟随RCNN Head将前两个全连接层的输出设置为1024,随后一层的输出为类别数。网络结构如图3所示:
在这里插入图片描述

training

    为了训练MaskIoU Head,我们采用区域提议网络作为训练样本。该训练样本需要提案框和对应的ground truth 框的IoU值大于0.5,这和Mask R-CNN的Mask head的训练样本一样。为了产生每一个训练样本的回归目标,首先我们得到目标类别的预测mask,然后利用阈值0.5将预测mask二值化。作者利用得到的二值mask和对应的ground truth的MaskIoU作为目标MaskIoU。采用 l 2 l_2 l2正则化损失回归MaskIoU,损失权重设置为1。

Inference

     在inference阶段,仅用MaskIoU Head校准R-CNN产生的分类分数。特别地,标准的Mask R-CNN的inference程序是,从Mask R-CNN的R-CNN阶段输出了N个bounding box,通过SoftNMS(soft非极大抑制)方法选择了其中前k个box,然后将这前k个box喂入Mask Head来产生多类别mask。作者也采用了Mask R-CNN这种程序喂入前k个目标mask来预测MaskIoU,然后与分类分数相乘得到校准后的mask score作为最后的mask置信度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值