Mask R-CNN

  • 论文链接: https://arxiv.org/pdf/1703.06870.pdf
  • 论文题目:Mask R-CNN

Mask R-CNN

Abstract

我们提出一种概念上简单、灵活且普世的对于实例对象分割的框架。我们的方法能够有效地检测一张图像里的物体,并且同时对于每个实例都能生成一个高质量的实例mask。这个方法叫做Mask R-CNN,是在Faster R-CNN的基础上通过增加一个与已有的边框识别分支并行的一个用来预测物体mask的分支来实现的。Mask R-CNN训练简单,相比于Faster R-CNN只增加了很小的开销,依然能跑在5fps。而且,Mask R-CNN很容易被泛化到别的任务上去,如允许我们在同样的框架下预测人体动作。基于这个模型,我们已经在COCO系列挑战的三个分支上都取得了顶尖的结果,包括实例分割,边框物体检测,和人体关键点检测。没有使用什么tricks,Mask R-CNN已经在每个任务上超过了现存的所有单一模型,包括COCO 2016挑战的冠军模型。我们希望我们这一简单有效的方法能够作为一个基线,帮助未来关于实例识别的研究。

1. Introduction

在机器视觉领域,目标检测和语义分割任务在很短的时间内得到了很大的提高。其中大部分都得益于强大的基准系统,比如分别用于目标检测的Fast/Faster
R-CNN框架和用于语义分割的全卷积网络FCN框架。这些方法在概念上都很直观,符合直觉,还具有一定的灵活性和鲁棒性,同时在训练和infer的时候都很快。本文的目标是开发一种能够与之匹敌的用于实例分割的框架。
实例分割任务是非常具有挑战性的,因为它需要正确地检测一张图中所有的物体,同时还要精准地分割每个实例。也就是经典的计算机视觉任务目标检测和语义分割的结合。目标检测的目标是对于图像中每个单独的物体使用一个bounding box去定位它,并同时对它进行分类。语义分割的目标是将图像的每个pixel分类到已经固定的类别中,但是它并不区分每个实例。有了这样的定义,肯定有人会想到用一个非常复杂的方法来完成这个人物。然而,我们开发出了一种非常简单,灵活且快速的系统,同时还在实例分割任务上超过了目前最好的结果。
我们的方法叫做Mask R-CNN,是在Faster R-CNN的基础上通过增加一个在每个RoI上预测语义分割mask的branch来实现的,这个分支是与分类和回归branch并行的,如图1。mask branch是对每个RoI跑一个小的FCN网络来完成像素到像素的分割任务。Mask R-CNN在已有的Faster R-CNN框架下是很容易实现的。并且mask分支只增加了很小的计算量,对整体速度几乎没有影响。
在这里插入图片描述
图1. 用于实例分割的Mask R-CNN框架

原则上,Mask R-CNN是一个符合直觉的对于Faster R-CNN的一个扩展,但是只有正确的构建这个分支才会取得好的结果。Faster R-CNN框架的设计并没有保证输入与输出在像素级上的对齐。这一点在RoIPool中得到体现,在对实例进行操作时,这一粗糙的空间量化提取特征的方法引起的非对齐带来的影响就很明显了。为了弥补非对齐,我们提出一种简单的,无量化的层,叫做RoIAlign,这就能够确保准确的空间位置。尽管只是在RoIPool的基础上做了很小的修改,但是RoIAlign确实取得了很好的结果:它将mask的准确率相对提高了10%~50%。还有,我们发现有必要将mask和类别预测解耦合:我们对于每个类别单独进行一个二分类,并不让它们进行类间竞争,然后依赖网络的分类分支来进行分类预测。但是,一般来说,FCNs是对每个像素进行多类别分类的,是将分割任务和分类任务结合起来的,但是在我们的结构中实验下来结果并不好。

2. Related Work

R-CNN: R-CNN是在给出可以操作数量的预测框的基础上,对每个RoI单独送入网络进行评估。后来加入RoIPool实现了网络共享,提高了速度和准确率。Faster R-CNN在此基础上加入了学习注意力机制的RPN来进一步优化提升整个流程。
Instance Segmentation: 由于R-CNN的有效性,很多实例分割的方法都基于segment proposals。DeepMask以及后续的一些方法是先学习segment的候选,然后再经过Fast R-CNN进行分类。那么这些方法,分割任务是先于分类的,这就是使得速度慢且准确率低。相似地,Dai等人提出了一种复杂的多阶段的串联的结构,从bbox候选框里来预测segment,然后再分类。不同的是,我们的方法是一种平行结构,将mask的预测和分类分开,这就更加简单简单且灵活。
最近还有一种叫做 ‘‘fully convolutional instance segmentation’’ (FCIS)的方法,核心思想是通过全卷积的方式来预测一系列对于位置敏感的输出通道。这些通道同时进行物体分类,预测bbox,预测mask,这使得整个系统很快。但是FCIS在重叠实例上展现出了系统误差,会生成错误的边界。
另一类解决对于实例分割的方法是来自于语义分割的成功。从对于每个像素的分类结果(如FCN的输出)出发,这类方法企图去将同类的像素分割开来到不同的实例中。与这类以segmentation优先的策略方法相反的是,Mask R-CNN是基于instance优先的策略。

3. Mask R-CNN

Mask R-CNN在理论上是很简单的:Faster R-CNN对于每个候选物体会有两个输出,一个是分类的标签,一个是bbox的offset;在这个基础上我们增加第三个分支来输出目标的mask。Mask R-CNN的思想上很直观且自然的,但是mask的分支是独立于分类和box输出的,所以需要提取更加精细的空间信息。
Faster R-CNN: Faster R-CNN由两个阶段组成。第一阶段,RPN(Region Proposal Network)生成候选的bbox。第二阶段,也就是Fast R-CNN的精髓部分,使用RoIPool从每个候选框中提取特征,然后执行分类和bbox回归。两个阶段所使用的特征是共享的。
Mask R-CNN: Mask R-CNN采取同样的两阶段,并且第一个阶段是完全一样的RPN。在第二阶段,平行于分类和bbox回归,我们增加一个分支用来对每个ROI输出一个二分类mask,这个跟大多数现有的系统是相反的,它们是根据mask来完成分类的。我们的方法是继承了Fast R-CNN的结构,采用的平行结构。
在训练的时候,我们对于每个采样出的RoI定义了一个多任务的loss L = L c l s + L b o x + L m a s k . L=L_{cls}+L_{box}+L_{mask}. L=Lcls+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mask RCNN 是基于Kaiming 之前的工作 FPN (Feature Pyramid Network) 很形象地说就是用FPN产生的检测结果, 后面加了一个分割的网络. 文章中用到了 Top-Down + Bottom-Up 最近很流行的多层网络, 因为最开始Faster-RCNN只是在最后一层上面检测, 很容易丢掉小目标物体, 并且对细节遮挡也很不敏感. 最近的趋势就是结合多层 特征, 答主孔涛就很早发现了这个insight, 做出了HyperNet 并中了CVPR roal!!!作者:Oh233 链接:https://www.zhihu.com/question/57403701/answer/153060743 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Mask R-CNN 这个结果确实很强,但要同时注意它主要是加上了许多(都是很有用的)engineering techniques 。 比如说 anchor 从 12 增加到了15个,图像 size 从600变成了800,还有ROI batch size变到了512,从FPN那篇paper来看,这些 better practice 会有对性能十分明显的提升 (table 3 baseline: AP=26.3 -> 31.6)。而我们组16年的coco分割竞赛冠军 ,Fully Convolutional Instance-aware Semantic Segmentation (FCIS)的代码昨晚终于开源了。限于计算资源,我们并没有加上这些改进。这些改进应该是比较 general 的,也会适用于 FCIS。欢迎大家试用一波。FCIS 提供了一种简单高效的框架去解决 instance segmentation 的问题。跟之前 COCO 2015 的冠军 MNC 相比,它的主要不同在于 mask estimation 和 detection 是共同做的,而不是先估计 mask 再做 detection。在 FCIS 中 detection/mask estimation 之间通过 inside/outside score map 互相影响,利用了这两个紧密相连 task 之间的共性。现在 release 版本基于支持多卡训练的MXNet,msracver/FCIS。实际上大概今年一月份我们就已经写出了外面可以使用的Caffe版本,但是当时官方 Caffe 只支持单卡做复杂任务的训练,对于COCO这种大规模数据集来说用单卡训练的话一下子几周的时间就过去了。考虑到大家用起来会非常蛋疼,最后还是决定没有release这个版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值