Mask R-CNN ICCV2017 best paper
https://arxiv.org/pdf/1703.06870
Mask R-CNN= Faster R-CNN + FCN, 大致可以这么理解!

大神都去哪了? Facebook AI Research (FAIR) 越来越厉害了,强强联合

Code will be made available 官方代码暂时没有
https://github.com/felixgwu/mask_rcnn_pytorch
https://github.com/CharlesShang/FastMaskRCNN

Mask-RCNN implementation in MXNet
https://github.com/xilaili/maskrcnn.mxnet

TuSimple
GitHub: https://github.com/TuSimple/mx-maskrcnn

本文主要讲 Faster R-CNN 拓展到图像分割上,提出了 Mask R-CNN 简单快捷的解决 Instance segmentation,什么是 Instance segmentation,就是将一幅图像中所有物体框出来,并将物体进行像素级别的分割提取。如下图示例:

2 Related Work
R-CNN: 基于候选区域的物体检测成为目标检测算法中最流行的的,尤其是 Faster R-CNN 效果很好。

Instance Segmentation: 受到 R-CNN 的影响,大家纷纷采用R-CNN 思路来做 分割,文献【8】提出的 fully convolutional instance segmentation 是效果最好的。但是有明显的问题,如下图所示:

3 Mask R-CNN
Mask R-CNN在概念上是很简单:对于每一个候选区域 Faster R-CNN 有两个输出,一个类别标签,一个矩形框坐标信息。这里我们加了第三个分支用于输出 object mask即分割出物体。

Faster R-CNN: 这里简要回顾一下 Faster R-CNN,它有两个步骤组成,Region Proposal Network (RPN) 用于提取候区域,第二个步骤本质上和Fast R-CNN一样,使用 RoIPool 对候选区域提取特征进行类别分类和坐标回归。用于两个步骤的特征是可以共享的,这样可以提高速度。

Mask R-CNN: Mask R-CNN 也是采用了两个步骤,第一个步骤就是 RPN 提取候选区域,在第二个步骤,平行于预测类别和坐标信息,对于每个 RoI, Mask R-CNN 输出一个二值 mask。这与当前大部分系统不一样,当前这些系统的类别分类依赖于 mask 的预测。我们还是沿袭了 Fast R-CNN 的精神,它将矩形框分类和坐标回归并行的进行,这么做很大的简化了R-CNN的流程。

在训练阶段,我们对每个样本的 RoI 定义了多任务损失函数 L = L_cls + L_box + L_mask ,其中 L_cls 和 L_box 的定义和Fast R-CNN 是一样的。在 mask 分支中对每个 RoI 的输出是 K*m*m,表示K个 尺寸是 m*m的二值 mask,K是物体类别数目,。这里我们使用了 per-pixel sigmoid,将 的损失函数定义为 L_mask average binary cross-entropy,我们的 L_mask 只定义对应类别的 mask损失,其他类别的mask输出不会影响该类别的 loss。

我们定义 L_mask 的方式使得我们的网络在生成每个类别的 mask 不会受类别竞争影响,解耦了mask和类别预测。

Mask Representation: 对于每个 RoI 我们使用 一个 FCN 网络来预测 m*m mask。m*m是一个小的特征图尺寸,如何将这个小的特征图很好的映射到原始图像上?为此我们提出了一个 叫 RoIAlign 的网络层来解决该问题,它在 mask 预测中扮演了重要的角色。

RoIAlign: RoIPool 是一个标准的提特征运算,它从每个 RoI 提取出一个小的特征( 7×7),RoIPool 首先对浮点的 RoI 进行量化,然后再提取分块直方图,最后通过 最大池化 组合起来。这种分块直方图对于分类没有什么大的影响,但是对像素级别精度的 mask 有很大影响。

为了解决上述问题,我们提出了一个 RoIAlign 网络层 解决 RoIPool 量化引入的问题,将提取的特征和输入合适的对应起来。我们的改变也是很简单的:我们避免对 RoI 的边界或 bins 进行量化。使用线性差值精确计算每个 RoI bin 最后组合起来。

Network Architecture: 为了验证我们方法的适应性,我们在不同的网络系统中实现了 Mask R-CNN,这里主要分别考虑了文献【14,21]中的两个系统,如下图所示:

其中采用 FPN 的架构在精度和速度上都更胜一筹。

3.1. Implementation Details
Training: 对于 mask loss L_mask 只在正样本的 RoIs 上面定义。
我们采用文献【9】的图像-中心 训练方法。将图像长宽较小的一侧归一化到 800个像素。在每个 mini-batch 上每个 GPU 有2个图像,每个图像 N个样本 RoIs,正负样本比例 1:3.其中 对于 C4 框架的 N=64, 对 FPN框架的 N=512。在8个GPU上训练,还有其他一些参数设置。

Inference: 在测试阶段,C4的候选区域个数是300, FPN 是 1000.对这些候选区域我们进行坐标回归,再非极大值抑制。然后对前100个得分最高的检测框进行 mask 分支运算。这样做可以提高速度改善精度。在 mask 分支中 ,我们对每个 RoI 给出 K 个 mask预测,但是我们只使用 分类分支给出的那个类别对应的 mask。然后我们将 m×m 浮点 mask 归一化到 RoI 尺寸,使用一个0.5阈值进行二值化。

  1. Experiments: Instance Segmentation
    更多的图片结果:

Instance segmentation:

一些对比:

Object detection:

Human Pose Estimation:

4.4. Timing
Inference:
ResNet-101-FPN model runs at 195ms per image on an Nvidia Tesla M40 GPU (plus
15ms CPU time resizing the outputs to the original resolution)

ResNet-101-C4 : ∼400ms

目标检测分割--Mask R-CNN相关推荐

  1. 丰厚奖学金博士招生 | 澳大利亚OPTIMA 招募博士,多光谱时间序列数据的时空目标检测/分割方向...

    关注公众号,获取更多AI领域发展机会 OPTIMA 介绍 OPTIMA 是墨尔本大学.蒙纳士大学.三所国际大学和11个行业合作伙伴之间的合作组织.这些合作伙伴属于先进制造业.能源资源和关键基础设施部门 ...

  2. maskrcnn用于目标检测_用自己的数据训练Mask R-CNN目标检测/分割模型

    摘要: 本文讲述了如何使用Mask-CNN对图像中的大量数据进行目标识别与目标分割. 计算机非常擅长数字运算,但对分析图像中的大量数据束手无策.直到最近找到了解决方法,即创建图像处理单元库,利用数千个 ...

  3. CVPR 2020 Oral |目标检测+分割均实现SOTA!厦大提出协同学习网络

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :机器之心 论文链接:htt ...

  4. 目标检测分割--BlitzNet: A Real-Time Deep Network for Scene Understanding

    BlitzNet: A Real-Time Deep Network for Scene Understanding ICCV2017 Project: http://thoth.inrialpes. ...

  5. 无卷积骨干网络:金字塔Transformer,提升目标检测/分割等任务精度(附源代码)

    论文地址:https://arxiv.org/pdf/2102.12122.pdf 源代码地址:https://github.com/whai362/PVT 具有自注意力的Transformer引发了 ...

  6. rcnn 回归_基础目标检测算法介绍:CNN、RCNN、Fast RCNN和Faster RCNN

    每次丢了东西,我们都希望有一种方法能快速定位出失物.现在,目标检测算法或许能做到.目标检测的用途遍布多个行业,从安防监控,到智慧城市中的实时交通监测.简单来说,这些技术背后都是强大的深度学习算法. 在 ...

  7. 目标检测R-CNN模型的CNN模块微调过程分析【全网最易懂】

    在过去的十多年时间里,传统的机器视觉领域,通常采用特征描述子来应对目标识别任务,这些特征描述子最常见的就是 SIFT 和 HOG.( OpenCV 有现成的 API 可供大家实现相关操作) 2012 ...

  8. Ubuntu18.04 配置detectron2实现Faster RCNN目标检测和Mask RCNN实例分割(一)

    1. 背景介绍 detectron2项目地址:https://github.com/facebookresearch/detectron2 FasterRCNN论文:https://arxiv.org ...

  9. 二阶段目标检测网络-Mask RCNN 详解

    ROI Pooling 和 ROI Align 的区别 Mask R-CNN 网络结构 骨干网络 FPN anchor 锚框生成规则 实验 参考资料 Mask RCNN 是作者 Kaiming He ...

最新文章

  1. Splay ---- 文艺平衡树区间翻转的建树模式
  2. RHCT 模拟题库及答案
  3. usb传输标准和接口标准
  4. QT实现自定义3D材质
  5. Android震动vibrator系统开发全过程
  6. SpringMVC+hibernate+mysql+EASYUI的登陆+CRUD
  7. Python编程从入门到实践~if语句
  8. python学习之路-day8
  9. matlab+adst,SPC572L64E3 - 用于汽车动力系统应用的32位Power Architecture MCU - STMicroelectronics...
  10. mysql连接查询(内联)_MySQL之连接查询
  11. 为什么要重写hashCode()
  12. Centos 7安装Docker可视化管理面板安装中文Portainer
  13. php 是否存在,php判断常量是否存在
  14. MySQL查询数据库日志的查询
  15. 软件测试三分钟自我介绍
  16. 计算机中现代操作系统两个基本特征是什么,现代操作系统的两个基本特征是资源共享和...
  17. 实验4-1-5 统计素数并求和 (20 分)
  18. Java导出Excel(Poi详解)
  19. 微信WIFI,帮你做好客流量统计
  20. iofod - 为攻城师们打造的低代码平台

热门文章

  1. In terms of 的用法总结
  2. cytoscape绘图互作网络图(二)
  3. supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)
  4. Clumpify:能使 Fastq 压缩文件再缩小 30% 并加速后续分析流程
  5. 在线作图|微生物多样性分析——稀释曲线
  6. 零基础入门学习Python(21)-递归1
  7. SCLS:拟南芥二半萜类化合物调控根系微生物组
  8. R语言ggplot2地理信息可视化(下)
  9. QIIME 2用户文档. 15进行纵向和成对样本比较q2-longitudinal(2018.11)
  10. Nature Microbiology: 微生物数据的系统发育分析方法