Mask R-CNN

Mask R-CNN

3. Mask R-CNN

mask RCNN在概念上很简单,faster RCNN对于每个候选对象都有两个输出,一个类标签和一个bounding box偏移量,在此基础上,我们添加了输出为object mask的第三个分支。但是附加的mask不同于其他两个输出,需要提取对象更精细的空间布局,接下来,我们将介绍mask RCNN的关键,包括像素对像素对齐,这是daster RCNN主要缺失的部分。

Mask R-CNN: 很多最近的系统的分类取决于mask的预测,而我们的方法遵循fast RCNN的精神,它并行的应用bounding box分类和回归。

在训练过程中,我们将每个抽样RoI上的多任务损失定义为:
在这里插入图片描述
Lcls和Lbox的损失和Fast RCNN中的损失相同,mask分支对每个RoI有一个Km2的输出,它编码分辨率为m×m的K个二进制mask,每个K类编码一个。为此,我们应用了一个每个像素的sigmoid,并定义了平均二进制交叉熵损失。对于与grounding box相关联的RoI,Lmask仅定义在第k个mask上(其他mask输出不造成损失)

我们对Lmask的定义允许网络为每个类生成mask,而不需要类之间的竞争,我们依靠专用的分类branch来预测类别标签,这个类别标签用来选择输出mask的类标签。这将分离mask和class的预测。这与FCN应用于语义分割时的做法不同,后者通常使用每像素的Softmax和多项交叉熵loss,这种情况下,不同类的mask会产生竞争关系。而在我们的例子中, 每像素sigmoid和二进制loss不会产生不同类别间的竞争。实验证明,该公式是良好的实例分割结果的关键。

Mask Representation:

mask对输入对象的空间布局进行编码,因此,与不可避免的被FC layer折叠成短输出矢量的类标签或box偏移不同,提取mask的空间结构可以自然的通过卷积提供的像素到像素的对应来解决。

具体而言,我们使用FCN从每个RoI中预测m×m的mask。这允许mask branch中的每一层保持显式的m×m对象空间布局,而不将其折叠成缺乏空间维度的向量表示,我们的全卷积表示所需的参数较少,而且也更加准确。

这种像素对像素的behavior要求我们的RoI特征能够很好的对齐,以保持显式的每像素空间对应。

RoIAlign:

这一部分参考:https://www.cnblogs.com/wangyong/p/8523814.html

RoIPool是从每个RoI中提取一个小特征图(例如7x7)的操作,RoIPool首先将浮点数RoI量化为特征映射的离散粒度,然后将这个量化的RoI细分为空间桶,然后对每个桶采用特征聚合(通常是maxpool)。这些操作在RoI和提取特征之间引起了失调,这可能不会应影响分类,但它对预测像素精度的mask有很大负面影响。
在这里插入图片描述

Network Architecture:

为了证明我们方法的通用性,我们区分了(1)用于特征提取的卷积骨干结构(2)用于bounding box识别(分类和回归)和mask预测的head network。

我们评估了resnet和resnext深度为50和101层的网络。使用ResNet-FPN主干网进行特征提取,在精度和速度上都有很好的提高。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值