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 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 重新发现语义分割,一文简述全卷积网络

语义分割是一种学习如何识别图像中对象范围的机器学习技术。语义分割赋予机器学习系统与人类相似的理解图像内容的能力。它促使机器学习算法定位对象的精准边界,无论是街景...

1092
来自专栏Deep learning进阶路

深度学习论文(八)---DeepLabV1-SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED C

注:本篇算是半讲解半翻译吧,我真的觉得这篇论文写的很难理解.......可能是我水平不够,也可能作者省略了一些具体信息,主要是提供了他的idea吧。 但是De...

3141
来自专栏深度学习那些事儿

风格迁移(Style Transfer)中直方图匹配(Histogram Match)的作用

风格迁移是神经网络深度学习中比较重要且有趣的一个项目。如果不知道什么是风格迁移的请参考这篇文章:https://oldpan.me/archives/pytor...

42614
来自专栏AI研习社

教你从零开始检测皮卡丘-CNN目标检测入门教程(上)

本文先为大家介绍目前流行的目标检测算法SSD (Single-Shot MultiBox Object Detection)和实验过程中的数据集。训练、测试过程...

4016
来自专栏梦里茶室

读论文系列:Object Detection ICCV2015 Fast RCNN

Fast RCNN是对RCNN的性能优化版本,在VGG16上,Fast R-CNN训练速度是RCNN的9倍, 测试速度是RCNN213倍;训练速度是SPP-ne...

3336
来自专栏Petrichor的专栏

论文阅读: SPPNet

R-CNN中,通过在原图先抠取出很多的像素块,再分别单独进行特征抽取的方式来一个个生成proposal,很低效:

1012
来自专栏专知

【专知荟萃09】目标检测知识资料全集(入门/进阶/论文/综述/视频/代码等)

目标检测(物体检测, Object Detection) 专知荟萃 入门学习 进阶文章 综述 Tutorial 视频教程 代码 领域专家 入门学习 图像目标...

49911
来自专栏机器之心

可视化语音分析:深度对比Wavenet、t-SNE和PCA等算法

选自Medium 作者:Leon Fedden 机器之心编译 参与:Nurhachu Null、刘晓坤 这篇文章基于 GitHub 中探索音频数据集的项目。本文...

42713
来自专栏Brian

机器学习常用算法-k近邻算法

1264
来自专栏深度学习那些事儿

风格迁移中直方图匹配(Histogram Match)的作用-附pytorch直方图匹配代码

风格迁移是神经网络深度学习中比较重要且有趣的一个项目。如果不知道什么是风格迁移的请参考这篇文章:https://oldpan.me/archives/pytor...

3485

扫码关注云+社区