深度篇——实例分割(一)  mask rcnn 论文 翻译 和 总结

返回主目录

返回 实例分割 目录

下一章: 深度篇——实例分割(二) 细说 mask rcnn 实例分割代码 训练自己数据

 

目录内容

深度篇——实例分割(一)  mask rcnn 论文 翻译 和 总结

深度篇——实例分割(二) 细说 mask rcnn 实例分割代码 训练自己数据

深度篇——实例分割(三)  细说 mask rcnn 实例分割代码 训练自己数据 之 相关网络,数据处理,工具等

 

论文地址:《Mask R-CNN》

代码地址:Mask R-CNN code

 

本小节,mask rcnn 论文 翻译 和 总结, 下一小节 细说 mask rcnn 实例分割代码 训练自己数据

 

一. mask rcnn 论文

 

在翻译 mask r-cnn 之前,想先对 2016 年 COCO 数据集实例分割挑战赛的冠军默哀 3 秒钟。因为,ta 在这里,通篇都被何凯明 用来比较,超越着。就好像一个人刚刚拿到某项冠军奖牌,下来之后,就老被人说,我比你厉害,我超越你,我用实验数据证明,我确实超越你,而且不服还不行。这冠军,当得可真不容易呀。当然,下面开始言归正传,开始干活。

 

摘要

我们提出了一个概念简单、灵活、通用的对象实例分割框架。我们的方案可以高效地检测出图像中的目标,并对每个样例生成一个高质量的 分割 mask 。我们把这个方案称为 Mask R-CNN,它是由 Faster R-CNN 通过添加一条用来预测目标 mask 边界识别的并行分支拓展而来的。Mask R-CNN 很容易训练的,它相对于 Faster R-CNN(每秒 5 张图像) 只是增加了一点很小的开销。此外,Mask R-CNN 对于生成其他任务也是很容易的,它允许我们在相同的框架下估计人类的姿势。我们展示了 Mask R-CNN 在 COCO 数据集上获得的顶级结果,它非常适合于这些竞赛:包括实例分割、bounding boxes 目标检测 和 人的关键点检测。Mask R-CNN 在每个任务上都优于现有的所有单模参赛作品,甚至包括 2016 COCO 数据挑战赛的冠军。我们希望这个的简单而高效的方法可以作为一个坚实的基线,并在未来有助于简化实例级识别的研究。

 

1. 介绍

视觉社区在短时间内迅速对目标检测和语义分割结果做了改进。在很大程度上,这些改进得益于强大的基线系统的推动,比如 Fast/Faster R-CNN 和 FCN 等目标检测和语义分割框架。顾名思义,这些方法非常灵活和健壮,并且推理时间和训练都很快。在这里,我们的目标是研发一种对于实力分割比较有力的框架。

实例分割是一个挑战,因为它要求正确的检测出一张图像中所有的目标,同时并对每个实例进行精确的分割。因此,实例分割结合了目标检测(古典计算机视觉任务) 和 语义分割 两部分元素;目标检测旨在对每个目标进行分类和用 bounding box 框起来(简称分类打框),而语义分割旨在在不区分目标实例的情况下,将每个像素分类为一组固定的类别(如人类、狗类 等)。考虑到这点,有些人可能会认为这需要一个复杂的方法才能获得一个较好结果。然而令人惊讶的是,我们展示的是一个简单、灵活和快速 的方法,它超越了以往实例分割最好的成绩。

我们把这个方法称为 Mask R-CNN,它是由 Faster R-CNN 新增一条在 ROI 上用来预测分割 masks 的分类和 bounding box 边界识别的 并行分支 拓展而来的。如下图所示:

这个 mask分支是对每个 ROI 应用一个小的 FCN 网络,以像素的方式来预测一个分割 mask。通过 Faster R-CNN 提供的框架(Faster R-CNN 促进了广泛、灵活的框架设计),Mask R-CNN 是非常容易实现和训练的。此外,这个 mask 分支仅增加了一点很小的计算开销,并启用一个快速的系统和快速的实验。

在原则上,Mask R-CNN 是 Faster R-CNN 直观上的一个拓展,然而正确构建这个 mask 分支对于获取好的成绩是至关重要的。最重要的是,Faster R-CNN 没有对网络的输入和输出之间设计有关于像素级的对齐。最明显的就是 ROIPool,它对实例进行核心操作,实际上只是对特征进行粗略的空间量化提取。为了修正这些偏差,我们提出一个简单的无量化层,称之为 ROIAlign,它完整地保留了精确的空间位置。对于 ROIAlign,我在前面 深度篇—— CNN 卷积神经网络(三) 关于 ROI pooling 和 ROI Align 与 插值 有详细的讲解。尽管这看起来只是一点很小的变化,然而 ROIAlign 却有着巨大的影响:它对 mask 的精度提升在 10% - 50% 之间,在更严格的区域量化可以获得更大的收益。其次,还有非常重要的一点是它对 mask 和 类别预测进行了解耦:我们对每个类独立地预测它的二分类 mask(区分前景和背景),这样每个 mask 就没有类之间的竞争(这里指 c 分类),对于类别分类则是依靠网络的 ROI 分类分支预测分类。相对的,FCNs 通常对每个像素进行多层次分类操作,包括分割和分类,通过实验,我们发现其实例分割效果非常差。

无需什么花俏的东西(指网络结构),Mask R-CNN 就轻松超越了那些在 COCO 数据集上 实例分割任务现有的最好成绩(意思就是,Mask R-CNN 目前(2017年)在实例分割方面是 number one),包括 2016 年COCO 数据大赛冠军所精心设计的参赛作品。作为其中一个副产品,在 COCO 数据集闪 Mask R-CNN 同样擅长做目标检测任务。通过评估多个基于实例化的实验对照,这使我们能够演示它的健壮性并分析其核心因素的影响。

我们的模型在一块 GPU 上 每秒钟可以跑 5 张图像,在一台 8 块 GPU 的机器上训练 COCO 数据集,大概需要 1-2 天的时间。我们相信,快速的训练和测试速度以及框架的灵活性与精准性,都有利于将来对实例分割的研究。

最后,我们通过对 COCO 关键数据上 人体姿态估计任务,展示了该框架的通用性。通过对每个关键点 one-hot 二分类 mask 的查看,对 Mask R-CNN 做很小的修改就可以用来检测实例特定的姿态。Mask R-CNN 超越了 2016 年 COCO 大赛的冠军作品,而且每秒可以处理 5 张图像。因此,Mask R-CNN 被视作一个实例级识别的灵活框架广泛的应用,并且它可以很轻松地扩展到更复杂的任务应用中。

我们已经开源了相关的代码, 已发布未来的研究。

 

2. 相关工作

R-CNN:基于区域的 CNN (R-CNN) bounding boxes 目标检测的方法针对一定数量的候选目标区域的每个 ROI 上进行独立卷积的评估。R-CNN 允许被拓展到使用 ROIPool 来对 ROI feature maps 处理,从而获得更快的速度和更好的精度。Faster R-CNN 的通过学习 区域建议网络 (RPN) 的注意力机制,对这流程进行了改进。Faster R-CNN 对后续的许多改进都是一个 灵活和健壮的,它是目前几个基准框架中最先进的。

 

实例分割:在 R-CNN 的有效推动下,许多实例分割的方法都基于分段建议。早期的方法基本采用自地向上的分段。DeepMask 和以下工作通过 Faster R-CNN 分类并学会提出分割候选框。在这些方法中,如果使用分割之前就进行识别的,那就容易导致速度精度都下降。此时, Dai et al 提出了一个多阶段复杂的级联来对 bounding boxes proposal 进行预测分割提议,然后再进行分类。不同的是,我们的方法是基于 mask 边界 和 类标签 进行预测,这样就会让这方法相对简单和灵活点。

最近, Li et al 将分割提议系统和目标检测系统进行结合,实现“全卷积实例分割”(FCIS)。一种通俗的想法是,对全卷积生成一组位置敏感的输出通道(即最后生成 1 x 1 大小的输出通道) 进行预测。这些通道数同时包含 目标的类别,bounding boxes 位置,和 masks 信息,这样可以让系统快捷些。但是,FCIS 对实例相交 部分显示出系统性的错误,并创建出假边,这就显得它受到实例分割的基本困难的挑战。

另一类实例分割的解决方案是由语义分割的成功所驱动的。这些方法从对每个像素分类结果开始,试图对相同类别的像素分割为不同的实例。与这些方法的优先分割策略不同的是,Mask R-CNN 是基于实例优先策略。我们期望在将来的研究 当中,这两个策略可以深度结合在一起。

 

3. Mask R-CNN

Mask R-CNN 的概念非常简单:相对于 Faster R-CNN 它对每个候选目标有两个输出,一个是类别标签,一个是 bounding boxes 损失。在这基础之上,我们对输出新增第三条目标 mask 分支。Mask R-CNN 是那样自然而直观的思想。但是,这新增的 mask 输出与类别和bounding boxes 的输出是截然不同的,它要求从目标较好的空间层提取而来。下面,我们介绍一下 Mask R-CNN 的关键元素,它包括  像素与像素之间的对齐,这也是 Fast/Faster R-CNN 主要缺失的模块。

 

Faster R-CNN: 我们先短暂的回顾一下 Faster R-CNN 检测器。Faster R-CNN 它包含两个级。第一级被称为 RPN 区域提名网络,用来对目标候选 bounding boxes 进行提议的。第二级在本质上就是一个 Fast R-CNN,它对每个候选 bounding box 使用 ROIPool 提取 feature maps,然后再进行分类和 bounding boxes 回归操作。这些 features 在两个级别共用,使得它的推理时间更快。我们为读者提供 Faster R-CNN 和其他最新的和较全面的框架。

 

Mask R-CNN: Mask R-CNN 同样采用两级过程,并且第一级同为 RPN 区域提名网络。第二级则是对类别和 box 边界损失的预测,Mask R-CNN 还对每个 ROI 输出一个二分类的 mask。与之相反的是,最新的系统则是依赖于 mask 预测值来进行分类。我们的方案来源于 Faster R-CNN 思想,它使用 bounding boxes 分类和对边界进行回归(它被证明在很大程度上简化了原始 R-CNN 的多级管道)。如在 深度篇——目标检测史(二) 细说 R-CNN 目标检测 中讲到,原始的 R-CNN 是先 crop 和 wrap 再进行卷积的,这些卷积就相当于一条条管道。

通常,在训练期间,对于每个样本的 ROI我们会定义一个多级任务损失 如 L = L_{cls} + L_{box} + L_{mask}。其中分类损失为 L_{cls},bounding boxes 损失为 L_{box},它们与 Faster R-CNN 的损失定义是相同的。而 mask 分支则对每个 ROI 有 Km^{2} 维度的输出,它表示对 K 个 m \times m 像素进行 mask 二分类,其中每个 mask 对应 K 个分类。就这样,我们对每个像素使用 Sigmoid 函数,并定义 \large L_{mask} 为平均二分类的交叉熵损失函数。因为与 ROI 相关联的 \large K 类的 ground truth,所以仅在第

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值