Mask R-CNN

Mask R-CNN是何凯明大神最近的新作。Mask R-CNN是一种在有效检测目标的同时输出高质量的实例分割mask。是对faster r-cnn的扩展,与bbox识别并行的增加一个预测分割mask的分支。Mask R-CNN 可以应用到人体姿势识别。并且在实例分割、目标检测、人体关键点检测三个任务都取得了现在最好的效果。

效果图

上图是Mask R-CNN的框架。是对faster r-cnn的扩展,与bbox识别并行的增加一个预测每一个ROI的分割mask的分支。mask分支是应用到每一个ROI上的一个小的FCN(Fully Convolutional Network),以pix2pix的方式预测分割mask。

如何正确的设计mask分支是结果好坏的关键。主要的要点有以下几点:

1、最重要的一点是Faster R-CNN没有设计网络输入与输出的pixel to pixel的对齐机制。特别明显的是ROIpooling对特征提取执行非常粗糙的空间量化(空间量化指什么还没搞懂)。为了改进未对齐的缺点,本文提出了quantization-free layer叫作RoIAlign,它准确的保存空间位置。尽管是很小的变化,但是作用很明显。提高相对mask准确率10%~50%。

2、非常必要的对mask和class prediction 去耦合。本文对每个类别独立的预测一个二值mask,不依赖分类分支的预测结果。

整个算法的细节如下:

Loss fuction

多任务损失函数对于每一个ROI,L=L_cls+L_box+L_mask.其中L_cls和L_box与Faster R-CNN一样。mask分支对每一个ROI有Km^2维输出。表示分辨率为m*m的K个二值mask。K是类别数,每一类一个。对每个像素实行一个sigmoid,定义L_mask是平均二值cross-entropy loss。对于一个ROI的ground truth 是第k类,L_mask只定义在第k个mask上(其他mask输出对于损失没有贡献)。

Mask Representation

mask覆盖输入目标的空间位置,所以不能像类标和bbox一样通过全连接层坍塌到很短的向量。提取空间结构很自然的想到利用卷积的pixel to pixel 对应的特性。

具体的对每一个ROI预测一个mm大小的mask用FCN。这能保证mask 分支的每一层都明确的保持mm目标的空间布局,不会坍塌成缺少空间维度的向量。与前人工作使用全连接层预测mask相比,本文的FCN需要更少的参数,得到更好的效果 。pixel to pixel 的任务需要ROI特征与原始输入图像有很好对齐来保持每个像素的空间对应。这就是提出RoIAlign层的动机。

RolAlign

ROIpool是对ROI提取小的特征映射(e.g. 7*7)标准的操作符。 量化导致了ROI和特征层的不对齐。这对分类任务没什么影响,但是对pixel to pixel的任务就有很大的负面影响。

为了解决这个问题,本文提出了RoIAlign层,移除ROIPool粗糙的量化,正确的对齐特征和输入。提出的改变非常简单:避免任何ROI边界或者bins的量化,即用x/16代替[x/16]。用双向性插值法输入特征在每个ROI bin的四个采样点的精确值。(这一段不能理解说的什么意思)。

Network Architecture

将整个网络分成两部分,1)卷积主干结构用来提取整幅图像的特征。2)网络头用来对ROI进行bbox识别和mask预测。

分别考察50层和101层Resnet和ResNeXt网络作为卷积主干结构。还探索另一种有效的主干结构,叫作FPN( Feature Pyramid Network)。更多关于FPN的结构细节请参考文章(T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and´S. Belongie. Feature pyramid networks for object detection.)

网络头结构如下图:

网络头结构

Implementation Details

Training

和Faster R-CNN一样,IOU超过0.5的ROI被视为正例反之视为负例。mask loss只在正例上定义。mask target 是ROI和GT mask的交集。图像被resize到短边800。每个mini-batch 2幅图像,每幅图像采样N个ROI,正负样本比例1:3。N是64对于Resnet主干,512对于FPN主干。

160k iterations, with a learning rate of 0.02 which is decreased by 10 at the 120k iteration. We use a weight decay of 0.0001 and a momentum of 0.9. RPN anchors span 5 scales and 3 aspect ratios, following [21].

Inference

At test time, the number of proposals is 300 for the C4 backbone (as in [28]) and 1000 for FPN (as in [21]).

先在proposals上进行box识别,然后进行非最大值抑制。mask预测在得分最高的100个box上进行。mask分支对每个ROI预测K个mask,但是只取第k个,k是classification分支输出结果。

m*m的mask resize到ROI的大小,然后以阈值0.5二值化。

Experiments:Instance Segmentation

所有的实验采用Coco数据集。

Instance segmentation mask AP on COCO test-dev

MNC [7] and FCIS [20] are the winners of the COCO 2015 and 2016 segmentation challenges, respectively. Without bells and whistles, Mask R-CNN outperforms the more complex FCIS+++, which includesmulti-scale train/test, horizontal flip test, and OHEM [29]. All entries are single-model results.

Ablation Experiments

Paste_Image.png

(a)说明网络越深越好(并不是所有都对),FPN和ResneXt对结果有提升。 (b)说明对分类和mask去耦合效果好。 (c)和(d)说明对齐效果好。 (e)mask分支说明用FCN效果比MLP好。

Bounding Box Detection Results

Object detection single-model results (bounding box AP), vs. state-of-the-art on test-dev.

主意第五行和第六行对比说明加入mask分支对检测任务也有提升效果。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量化投资与机器学习

【Python机器学习】系列之从线性回归到逻辑回归篇(深度详细附源码)

第1章 机器学习基础 将机器学习定义成一种通过学习经验改善工作效果的程序研究与设计过程。其他章节都以这个定义为基础,后面每一章里介绍的机器学习模型都是按照这个...

34510
来自专栏AI研习社

只需 130 行代码!用 GAN 生成二维样本的小例子

50行GAN代码的问题 Dev Nag 写的 50 行代码的 GAN,大概是网上流传最广的,关于GAN最简单的小例子。这是一份用一维均匀样本作为特征空间(l...

2844
来自专栏机器学习、深度学习

人脸检测--Supervised Transformer Network for Efficient Face Detection

Supervised Transformer Network for Efficient Face Detection ECCV2016 人脸检测: the...

1927
来自专栏机器之心

教程 | 一文简述多种无监督聚类算法的Python实现

1694
来自专栏大数据挖掘DT机器学习

详解ROC/AUC计算过程

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)。ROC曲线的面积就是AUC(Area Under the...

3776
来自专栏机器人网

【收藏】人工智能术语表

English Terminology中文术语neural networks神经网络activation function激活函数hyperbolic tang...

2544
来自专栏AI研习社

文本分类指南:你真的要错过 Python 吗?

文本分类作为自然语言处理任务之一,被广泛应用于解决各种商业领域的问题。文本分类的目的是将 文本/文档 自动地归类为一种或多种预定义的类别。常见的文本分类应用如下...

713
来自专栏专知

【干货】对抗自编码器PyTorch手把手实战系列——PyTorch实现自编码器

即使是非计算机行业, 大家也知道很多有名的神经网络结构, 比如CNN在处理图像上非常厉害, RNN能够建模序列数据. 然而CNN, RNN之类的神经网络结构本身...

3607
来自专栏机器学习和数学

[机智的机器在学习] 卷积神经网络入门教程(2)

今天继续回归卷积神经网络的入门教程,主要是介绍全连接网络的训练过程,通俗的讲就是我们入门教程(1)里面讲的是全连接网络长什么样,神经元之间的关系是什么样的,里面...

3214
来自专栏智能算法

基于SURF算法相似图像相对位置的寻找

例如以下两个相似证件的模板,若以其中一幅图像为模板,并给出相应的位置,可以给出其他相似图像进行定位相对应的位置,如下图所示,其中除了标题和样式一样,内容确是不同...

3457

扫描关注云+社区