目标分割(十)Mask R-CNN讲解

                      1
原文:Mask R-CNN
翻译:Mask R-CNN翻译

术语:分割掩模(segmentation mask)、解耦掩模(decouple mask)


 

ABSTRACT

  • 提出了一个概念简单、灵活、通用的目标 实例分割 框架;
  • 该方法有效地检测图像中的目标,同时为每一个实例生成高质量的 分割掩模
  • Mask R-CNN以Faster RCNN原型,对每个RoI(感兴趣区域)增加一个分割掩膜预测的分支。这个分支用的是简单的FCN,可以实现像素到像素产生分割掩膜。。
  • Mask R-CNN很容易推广到其他任务,例如:实例分割、边框目标检测以及人体关键点检测。

 
※论文核心思想

  1. Mask RCNN以Faster RCNN原型,添加第三条分支来输出目标掩模;
  2. 用RoIAlign解决RoIPooling层产生的量化误差。

 

1. INTRODUCTION

       目标检测和语义分割的效果取得很大提升。例如用于目标检测的Fast / Faster R- CNN 和用于语义分割的 FCN 框架。这些方法在概念上很直观,提供灵活性和鲁棒性,并且训练和推理都很快速。而我们的目标则是为 实例分割 开发一个相对可用的框架

       实例分割 是有挑战性的,因为它除了要求正确检测一张图片中所有的目标,还需要同时精准的分割每个实例。它因此既结合了目标检测的功能(对每个目标进行分类),并且使用边框对每个目标进行定位,以及语义分割,通常来讲,目标检测使用边框而不是掩模来标定每一个目标检测,语义分割是指在没有区分实例的情况下对每个像素进行分类。但我们注意到, 实例分割 既是语义分割,又是一种目标检测的形式。其目标是将每个像素分类为一类固定的类别,而不区分对象。鉴于这种情况,人们可能认为需要一种复杂的方法才能取得较好的结果。然而,我们发现一种简单、灵活以及快速的系统能够超越之前最先进的实例分割的方法。

       我们把这种方法称为 Mask R-CNN它在Faster R-CNN基础上对每个感兴趣区域(RoI)上添加一个分支来预测分割掩模(segmentation mask),这个分支与现有的分类以及边框回归并行。如下图所示:
                            2
       但是Faster R-CNN并不是为网络输入和输出之间的像素对齐而设计的。这一点在RoIPool中最为明显,它实际上是用于处理实例的核心操作,对特征提取执行粗的空间量化。为修正错位,我们提出了一个层叫做RoIAlign,可保留精确的空间位置。RoIAlign起了很大的作用:它能将掩模准确率提高到10%-50%
       (为了解决Faster R-CNN错位,提出RoIAlign层,能将掩模准确率提高)

 
       再者,我们发现 解耦掩模类预测 是非常必要的:在没有类间竞争时,我们独立地为每个类预测二进制掩模,并且依赖于网络的RoI分类分支来预测类别。相比之下,FCN通常采用逐像素多类分类,分割和分类结合起来,基于我们的实验,发现它实例分割的效果很差。
       (FCN对于实例分割效果差,而我们用到解耦掩模以及类预测方法后,效果却大大提升)

       最后,我们通过在COCO关键点数据集上的人体姿势估计任务来展示我们框架的通用性。通过把每个关键点视为一个one-hot二进制掩模(one-hot binary mask),只需很少修改,Mask R-CNN就可以应用于检测特定的姿势。


 

2. Related Work

       R-CNN:它是通过找到一定数量的候选目标区域,并且在每个RoI上单独执行卷积网络来进行边框目标检测。基于R-CNN的改进,使用RoIPool在特征图上选取RoIs可以更快和更准确。Faster R-CNN通过使用区域建议网络(RPN)来产生候选框。

       实例分割:在R-CNN有效的驱动下,实例分割的很多方法都基于分割建议(segment proposals)的。

  • 早期的方法依赖自下而上的分割。DeepMask以及接下来的方法等则是通过学习提出分割候选区(segment candidates ),然后由Fast R-CNN进行分类。在这些方法中,分割先于识别,速度慢并且准确率低;
  • Dai等人提出了一个复杂的多级级联,通过从边框建议中预测分割建议(segment proposals),然后进行分类。
  • 但是我们的方法则是并行的进行掩模和类标签的预测,更简单和灵活

 

3. Mask R-CNN

       对于每个候选目标RoI,Faster R-CNN都有两个输出,一个类标签和一个边框偏移量。为此,我们添加第三条分支来输出目标掩模。但是附加的掩模输出与类输出和边框输出不同,需要提取对象更精细的空间布局。接下来,我们介绍Mask R-CNN的关键点—>像素到像素的对齐,这是之前所说的Fast / Faster R-CNN所不具备的关键点。
 
       Faster R-CNN:Faster R-CNN由两级组成。第一级是区域建议网络(RPN),作用是提出候选目标边框。第二级,本质上是Fast R-CNN,使用RolPool从每个候选框中提取特征,并进行分类和边框回归。两级的特征可以共享使用,以便更快推理。
 
       Mask R-CNNMask R-CNN也采用相同的两级,第一级是RPN,第二级,类和边框偏移量预测并行,除此之外,Mask R-CNN还会为每一个RoI输出一个二进制掩模。这与最近的其他系统相反,其分类取决于掩模预测。我们的方法遵循于Fast R-CNN[9],边框分类和回归并行。

       在训练中,我们将每个采样后的RoI上的多任务损失函数定义为:

                                                                      L = Lcls + Lbox + Lmask

       其中 分类损失Lcls边框损失Lbox 中定义相同,掩模分支对于每个RoI的输出维度为Km2 ,表示K个分辨率为m × m的二进制掩模,K表示类别数量,每个类别有一个分辨率为m × m的二进制掩模。而 Lmask 为平均二进制交叉熵损失。若某RoI真实类别标签是第i类,那么就只计算第i个mask输出的损失作为Lmask,其他K-1个掩膜输出对Lmask为0。

 
       RoIAlign:RoIPool是从每个RoI提取特征图(例如7×7)的标准操作。RoIPool首先将浮点数表示的RoI量化到与特征图匹配的粒度,然后将量化后的RoI分块,最后汇总每个块覆盖的区域的特征值(通常使用最大池化)。量化是执行的。例如,对在连续坐标系上的x计算[x/16],其中16是特征图步幅,[ ]表示四舍五入。同样的,当对RoI分块时(例如7×7)也执行同样的计算。这些量化操作使RoI与提取的特征错位。虽然这可能不会影响分类,因为分类对小幅度的变换有一定的鲁棒性,但它对预测像素级精确的掩模有很大的负面影响。

       为解决RoIPooling层产生的量化误差,提出了RoIAlign层,RoIAlign将直接保存浮点数,最终计算的时候根据双线性插值来计算。

                                                                      3
       上图虚线表示特征图,实线表示RoI(本例为2×2个bins),黑点表示每个bins中的4个采样点。RoIAlign通过双线性插值从特征图上邻近的网格点计算每个采样点的值。对RoI、其bin或采样点中涉及的任何坐标都不进行量化。


 

4. Network Architecture

4
       为了证明我们方法通用性,我们构造多种不同结构的Mask R-CNN。
       详细的说,我们使用不同的:(i)用于整个图像上的特征提取的卷积主干架构   (ii)用于边框识别(分类和回归)和掩模预测的上层网络,分别应用于每个RoI。

       对于上层网络,我们基本遵循以前论文中提出的架构,我们 添加一个全卷积的掩模预测分支 。具体来说,我们扩展了ResNet 和FPN中提出的Faster R-CNN的上层网络。如上图所示:(上层架构:我们扩展了两种现有的Faster R-CNN上层架构,并分别添加了一个掩模分支。左/右分别显示了ResNet C4和FPN主干的上层架构。图中数字表示通道数和分辨率,箭头表示卷积、反卷积和全连接层(可以通过上下文推断,卷积减小维度,反卷积增加维度。)所有的卷积都是3×3的,除了输出层是1×1。反卷积是2×2,其步进为2,我们在隐藏层中使用ReLU[24]。在左图中,“res5”表示ResNet的第五级,简单起见,我们修改了第一个卷积操作,使用7×7,步长为1的RoI代替14×14,步长为2的RoI[14]。右图中的“×4 ”表示堆叠的4个连续的卷积。)ResNet-C4主干的上层网络包括ResNet的第5阶段(即9层的’res5’[14]),这是计算密集型的。但对于FPN,其主干已经包含了res5,因此可以使上层网络包含更少的卷积核而变的更加高效。


 

Reference

  1. Mask R-CNN完整翻译
  2. Mask R-CNN 论文阅读
  3. (Mask RCNN)——论文详解(真的很详细)
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
讲解 R-CNN、Fast R-CNN、Faster R-CNNMask R-CNN 时,你可以按照以下思路和讲解内容进行组织: 思路: 1. 介绍目标检测的概念和应用场景,以引起听众的兴趣。 2. 简要解释传统目标检测方法的局限性,如选择性搜索等。 3. 引出 R-CNN 作为第一个基于深度学习的目标检测方法,并介绍其基本原理。 4. 逐步引入 Fast R-CNN、Faster R-CNNMask R-CNN,说明它们在 R-CNN 的基础上进行了哪些改进和优化。 具体讲解内容: 1. R-CNN (Region-based Convolutional Neural Networks) - 解释 R-CNN 的三个主要步骤:候选区域生成、特征提取和分类器。 - 介绍选择性搜索算法用于生成候选区域。 - 解释如何利用预训练的卷积神经网络提取候选区域的特征。 - 说明如何使用 SVM 进行目标分类。 2. Fast R-CNN - 引出 Fast R-CNN 的改进目标:加速训练和推理过程,提高检测效果。 - 解释 Fast R-CNN 的主要改进:使用全卷积网络提取特征,引入 RoI pooling 层等。 - 说明 Fast R-CNN 的训练和推理流程。 3. Faster R-CNN - 引出 Faster R-CNN 的改进目标:进一步提高检测速度。 - 介绍 Faster R-CNN 的两个核心组件:区域建议网络 (RPN) 和 Fast R-CNN。 - 解释 RPN 的作用和原理,以及如何生成候选区域。 - 说明 Faster R-CNN 的训练和推理流程。 4. Mask R-CNN - 引出 Mask R-CNN 的改进目标:在目标检测的基础上增加语义分割能力。 - 解释 Mask R-CNN 的主要改进:在 Fast R-CNN 的基础上添加了一个分割分支。 - 说明如何通过在 RoI 上应用全卷积网络实现像素级别的语义分割。 通过以上思路和具体内容,你可以向听众清晰地介绍 R-CNN、Fast R-CNN、Faster R-CNNMask R-CNN 的原理和演进过程。记得适当使用图表和示意图来帮助解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值