论文:Mask R-CNN

Abstract
提出一个实例分割模型,可以检测目标的同时对每一个instance生成一个高质量的segmentation mask。这个模型是 Faster R-CNN的扩展,通过在box分支外增加一个mask分支实现。模型可以达到5 fps,同时对其他的任务也有很好的泛化能力,例如人体姿态估计。
1. Introduction
实例分割具有挑战性,因为它需要对图片中的所有目标进行检测,同时还要分割每一个instance。所以实例分割需要结合传统的目标检测(分类单个目标并使用bounding box定位)和语义分割(将每一个pixel分类到一个固定的类别中,没有类内的区别)。
我们的方法通过在Faster R-CNN上增加一个平行于现存的classification和bounding box的分支,这个分支对每一个ROI预测其segmentation mask。Mask分支是应用在每一个ROI上的FCN。
Mask R-CNN是Faster R-CNN 的扩展,但是Faster R-CNN 并没有为了输入和输出之间pixel-to-pixel的对齐,ROIpool操作会产生一个粗略的空间量化。我们提出了ROIAlign来得到精确的空间位置。其次,我们发现,将mask 和class prediction 解耦是十分重要的。我们独立的对每一类预测一个二值mask,没有类间的竞争,通过classification来进行分类预测。对比来看,FCN网络耦合了分类和分割,它的实例分割的结果就不好。
2. Related Work
R-CNN: R-CNN系列
Instance Segmentation:有一些方法基于 R-CNN 提出了叫做segment proposals 的方法,DeepMask 等方法提出候选分割,然后使用 Fast R-CNN来进行分类。以上的方法都是分割先与认识,缓慢且精度不高。[10]提出了多stage训练方法,从boundingbox proposals来预测segment proposals,之后再进行分类。而我们的方法中,mask 和 class是平行的,更简单方便。[26]提出了一种fully convolutional instance segmentation(FCIS)方法,从一个全卷积output channel 中同时输出classe,boxes,masks,虽然很快,但是引进了overlap instance 和suprious edges的缺点,这都是实例分割的难点。
3. Mask R-CNN
Faster R-CNN,它包括两个部分,第一个是RPN网络;第二个类似于Fast R-CNN,
对每一个候选框使用ROIPooling来提取特征,之后进行分类和bdbox的回归。
Mask R-CNN,同样也是这两个stage,RPN这一stage是完全相同的,在第二个分支对每一个ROI还输出了一个二值掩码,同时,不同于其他的网络,我们将分类预测不依赖于分割预测。最终我们对每个 ROI 都定义了一个多任务loss
L = Lcls + Lbox + Lmask
Class和box分支损失的定义和Faster R-CNN中相同。Mask分支对每一个ROI有 Km2的输出,对每一个类有一个mask输出。我们应用一个per-pixel sigmod,然后定义Lmask为average binary cross-entropy loss。对于一个ROI,假设它的ground truth class为k,那么LMASK只在第k个mask上进行计算。我们对Lmask的定义可以对每一个类生成一个mask,没有类间的竞争。在FCN网络中,通常是一个 per-pixel softmax然后进行multinomial cross-entropy loss,这个有类间的竞争。
Mask Representation,Mask编码一个物体的空间布局,不像box或者class,通过一个全连接输出一个维度较小的向量,Mask需要通过一个pixel-to-pixel的方式,例如卷积来提取空间结构。具体来说,我们对每一个 ROI 使用 FCN 来预测一个 m*m 的mask,这种pixel-to-pixel的方法,需要和我们的ROI feature是对齐的,确保每一个pixel在空间位置的正确性。我们提出了下面的方法。
RoIAlign,RoIPooling是一个从RoI 上提取一个small feature map 的操作。RoIPooing 首先将浮点型的RoI(从原始图除stride的ROI)变为离散型,之后再将离散化后的RoI 分成小的 spational bin,这个bin也是经过离散化的。所以RoI Pooling经过了两次量化操作,这带来了最后提取特征的ROI和原始的ROI不对齐的问题。这个虽然对分类的影响不大,但是对mask的影响很大。所以我们提出了ROIAlign方法,方法很简单,移除了两个量化的过程,使用双线性差值的方法计算出出四个位置的值(固定位置指的是在每一个bin中按空间位置平均取四个点,因为这样会获得最佳的性能),然后进行最大池化或者平均池化。
Network Architecture,使用ResNet-FPN的backbone来进行特征的提取在准确率和速度上都比较优秀。相比较于之前的网络结构,我们增加了一个全卷积的mask prediction branch。
3.1 Implementation Details
使用Faster Rcnn的超参数。
Training:在Fast Rcnn 中,当一个ROI和GTbox的IOU大于0.5时,视为正例,反之为负例。Lmask只在正例上作用,mask target 是ROI在GTmask(原始图片的 mask )的对应的区域。一些训练参数的设置。。。
Inference:测试时,在proposals上进行box prediction,之后进行nms。Mask branch 在得分最高的100个 detection box上进行。虽然这个和训练时平行训练的方法不同,但是这样会加速且准确率高(因为使用了少的,更精确地ROIs)。Mask brach有m 个mask ,但是我们只使用第k个,k是由分类分支得到的,这个m*m的的浮点mask之后resize(如何做???)到ROI的size,然后由阈值0.5来进行二值化。
4. Experiments: Instance Segmentation
在COCO数据集上进行训练和测试
4.1 Main Results
我们比较了Mask RCNN 和其他的实例分割模型,包括COCO 2015和2016 分割挑战的冠军模型,MNC和FCIS。和FCIS+++相比,FCIS+++具有overlapping instance这种实例分割普遍存在的难点,但是我们的模型不存在这样的缺点。
4.2 Ablation Experiments
Architecture: 50 vs 101 ,FPN vs ResNeXt
Multinomial vs Independent Masks: Mask RCNN解耦了mask 和class prediction。我们为每一类生成了一个mask(通过 per-pixel sigmod and a binary loss),和FCN进行的方法进行了比较(per-pixel softmax and multinomial loss(即multi cross-entropy loss))。实验证明,在分类完成后,预测一个和类无关的二值掩码是完全充分的。
Class-Specific vs Class-Agnostic Masks:每一类预测以mask 和所有的类都只预测mask,0.4AP的差距。
ROIAlign: RoIAlign比RoIPooling 在AP上提高三个点。RoIAlign对max/average pooling不敏感。RoIAlign可以提高mask AP 7.3点,在mask AP7.5 上提高10.5。而且我们发现,在使用stride-32 C5会获得比stride-16 C4更高的精度。RoIAlign可以解决检测和分割使用large-stride featrues的难点。
Mask Branch: 分割是pixel-to-pixel的任务,我们使用FCN来得到mask的spatial mask。
4.3 Bounding Box Detection Results
我们比较了 Mask R-CNN和COCO bounding box 目标检测上的优秀算法,fully train Mask R-CNN,inference的时候忽略mask branch。我们还训练了一个Mask R-CNN,但是没有mask branch(Faster R-CNN,RoIAlign),和Mask R-CNN 相比,box AP低了0.9个点,这个差距是因为multi-task training。
最后我们的模型在mask和box AP上获得了比较小的差距,仅为2.7,这表明我们的方法可以largely close gap between 目标检测和实例分割任务。
虽然我们的模型比较快,但我们的设计没有在速度上进行优化,[21]具有更好的研究。
5.Mask R-CNN for Human Pose Estimatio
我们的方法可以简单的扩展到人体姿态估计。我们将关键点的位置当做one-hot mask,预测K个mask,每一个对应于一个keypoint type。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值