Mask R-CNN

Kaiming He Georgia Gkioxari Piotr Dollar Ross Girshick
Facebook AI Research(FAIR)

摘要
Mask R-CNN检测图像中物体的同时给每个实例产生高质量的分割mask,它是在Faster R-CNN的基础上增加一个预测物体mask的分支,与已有的边界框识别分支是平行的。Mask R-CNN训练容易,在Faster R-CNN的基础上只增加了很小的开销,运行速度为5fps。除此之外,Mask R-CNN很容易运用到其他任务上,比如,可以运用到预测人体姿势。

简介
实例分割需要正确的检测出图片中所有物体,同时精确的分割每个实例,因此它联合了物体检测和语义分割任务。物体检测的目标是给每一个物体分类并用边界框定位,语义分割的目标是将每个像素分类为一组固定的类别,而不区分对象实例。
1、实例分割与语义分割的区别:
在这里插入图片描述
图中的c和d图,c图是对a图进行语义分割的结果,d图是对a图进行实例分割的结果。两者最大的区别就是图中的"cube对象",在语义分割中给了它们相同的颜色,而在实例分割中却给了不同的颜色。即实例分割需要在语义分割的基础上对同类物体进行更精细的分割。实例分割相对于语义分割更具有挑战性。
2、Mask R-CNN架构
在这里插入图片描述
Mask R-CNN在Faster R-CNN的基础上,对于每一个RoI增加一个预测分割mask的分支,与已有的分类和边界框回归分支平行,如上图所示。mask分支是应用于每个ROI的小FCN,以像素到像素的方式预测mask。原则上,Mask R-CNN是Faster R-CNN的直观扩展,但正确构建mask分支对于结果至关重要。Faster R-CNN并非设计用于网络输入和输出之间的像素到像素对齐,为了解决错位问题,提出了简单、量化无关的层,称为RoIAlign,它能很好的保留精确的空间位置信息。尽管看似微小的变化,但RoIAlign的影响很大。第一:它将mask精度提高了10%到50%。第二:我们发现解耦mask和类预测是必不可少的,我们独立地预测每个类的二进制掩码,这样不会跨类别竞争,并依赖于网络的RoI分类分支来预测类别。相比之下,FCN通常执行每像素多分类,分割和分类同时进行,基于我们的实验,实例分割效果不好。

相关工作
R-CNN:R-CNN方法是通过找到可控数量的候选区域,并独立的在每个RoI上执行卷积网络来进行物体检测。基于R-CNN改进,使用RoIPool在特征图选取RoI,取得了更快的速度和精度。Faster R-CNN通过使用RPN学习注意机制来产生候选框。
实例分割:在R-CNN的推动下,实例分割的许多方法都是基于分割候选区的。先前的方法依赖自下而上的分割。Deepmask和后来的工作都是先提取分割候选区,然后用Fast R-CNN进行分类。在这些方法中,分割是先于识别,这样做既慢准确率又不高。Dai等人提出了一个复杂的多层级联,从边界框候选区预测分割候选区,然后进行分类。相反,我们的方法是平行地进行类标签和mask预测,更简单也更灵活。

Mask R-CNN
Faster R-CNN:Faster R-CNN由两个阶段组成,第一阶段是利用候选区提取网络(RPN)提取候选边界框,第二阶段利用RoIPool从候选框中提取特征,并进行分类和边界框回归操作。在整个过程中特征是共享的。

Mask R-CNN:Mask R-CNN同样采用两阶段程序。第一阶段完全一样(使用RPN),第二阶段平行的预测类别和边界框,同时给每个RoI输出一个二元mask。与大多数的现有系统不同,他们的分类依赖于mask预测,而Mask R-CNN平行进行边界框分类和回归。训练阶段,每个RoI的损失函数由三部分组成:分类损失 L c l s L_{cls} Lcls、边界框损失 L b o x L_{box} Lbox L m a s k L_{mask} Lmask L c l s L_{cls} Lcls L b o x L_{box} Lbox与Faster R-CNN中定义完全一样, L m a s k L_{mask} Lmask是一个针对像素级的sigmoid函数,将其第定义为二元交叉熵损失,对于每一个与k类相关的RoI, L m a s k L_{mask} Lmask只定义在第k个mask上。由于 L m a s k L_{mask} Lmask是二元交叉熵损失,只与某一个类有关,所以不会在类之间产生竞争。由负责分类的分支预测类标签,负责产生mask的分支产生mask,解耦了mask和类别预测。

Mask Representation:mask编码了输入物体的空间布局。提取mask的空间布局可以通过卷积层像素到像素的对应解决。我们使用FCN来为每个RoI预测一个mask。这允许掩码分支中的每个层显式的保持的对象空间布局,而不会将其缩成缺少空间维度的向量表示。与以前使用fc层掩码预测的的方法不同 ,我们的全卷积表示需要更少的参数,并且如实验所证明的更准确。这种像素到像素的行为需要RoI特征,它们本身就是小特征图。为了更好地对齐,以准确地保留显式的像素空间对应关系,我们开发出在mask预测中发挥关键作用RoIAlign层。

RoIAlign:RoIPool是从每个RoI提取小特征图的标准操作。 RoIPool首先将浮点数表示的RoI缩放到与特征图匹配的粒度,然后将缩放后的RoI分块,最后汇总每个块覆盖的区域的特征值(通常使用最大池化)。例如,在连续坐标系上,x的值等于[x/16],其中16是特征图步幅,[]表示四舍五入取整。同样地,当对RoI分块时也执行同样的操作。这样的计算使RoI与提取的特征错位。虽然这可能不会影响分类,因为分类对小幅度的变换具有一定的鲁棒性,但它对预测精确到像素级mask有很大影响。
为了解决这个问题,我们提出了一个RoIAlign层,可以去除RoIPool的错位,将提取的特征与输入准确对齐。我们提出的改变很简单:我们避免避免计算过程中的四舍五入(比如,我们使用x/16代替[x/16])。我们选取分块中的4个常规的位置,使用双线性插值来计算每个位置的精确值,并将结果汇总(使用最大或平均池化)。
在这里插入图片描述

RoIAlign的改进效果明显。我们还比较了RoIWarp操作。与RoIAlign不同,RoIWarp忽略了对齐问题,并在的实现中有像RoIPool那样的四舍五入取整。因此,即使RoIWarp也采用提到的双线性重采样,但它与RoIPool效果差不多。这表明了对齐起到了关键的作用。

Network Architecture:
在这里插入图片描述

Mask R-CNN可以完成的任务
在这里插入图片描述

目标检测与实例分割

在这里插入图片描述

人体姿态识别

论文连接:https://arxiv.org/pdf/1703.06870.pdf

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、付费专栏及课程。

余额充值