前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mask R-CNN

Mask R-CNN

作者头像
用户1332428
发布2018-03-08 17:50:27
1.1K0
发布2018-03-08 17:50:27
举报
文章被收录于专栏:人工智能LeadAI

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分支对检测任务也有提升效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能LeadAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Training
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档