图像分割、目标检测 MASK R-CNN 论文阅读笔记
2017-06-22 11:26
1021 查看
图像分割、目标检测 MASK R-CNN 论文阅读笔记
原文: MASK R-CNN 作者: Kaiming He, Georgia Gkioxari, Piotr Dollar, Ross Girshick 下载地址: https://arxiv.org/abs/1703.06870
1 简介
作者提出的Mask R-CNN是Faster R-CNN的升级版,以往Faster R-CNN可以实现分类和目标检测,现在Mask R-CNN又多了一个分割功能。以下面的图为例,绿色的矩形框是目标检测,白色的文字是分类结果,人身上的色块则是图像分割的结果。Mask R-CNN的分类、检测、分割三个输出都是并行的。Mask R-CNN做的是实例分割,而不是语义分割。二者的区别是:后者只需要把一张图中属于某一类的东西全部抠出来就好了,而前者要把某一类中不同的个体再细抠出来。
先对其性能有个大致的了解。Mask R-CNN的运行速度达到了5fps,还是相当不错的,而准确度远超过COCO 15和16的冠军。作者还谦虚表示,此模型只是一个baseline,从这里还可以发展出更多优秀的算法,并表示代码会开源。
2 模型介绍
在Mask R-CNN中,新增加的mask输出分支虽然和classification、bounding box两个输出是并行关系,但mask更加复杂一些,需要物体更精细的空间分布。作者接下来也是着重介绍网络中关于mask生成的部分。其中最主要的是pixel-to-pixel alignment。2.1 Faster R-CNN 简单回顾
此部分可以参考我的博文 目标检测 Faster R-CNN 论文笔记。Faster R-CNN分成RPN和Fast R-CNN两个部分。前者从一张图像中提取特征图,选出候选区域,用向量表示;后者承接前面的向量,用全连接网络分别输出classification和bounding box。2.2 Mask 表示
Mask其实就是一个0-1二值图片,尺寸和原图完全相等。对于每个ROI,都有 K 个 m*m 分辨率的mask,其中K表示类别数量。从1个ROI到K个mask的过程,用全卷积层(FCN)传播,这样可以保持每层的尺寸不会缩减。2.3 Mask R-CNN损失
在训练时,作者仿照Faster R-CNN定义一个多任务损失:L=Lcls+Lbox+Lmask为表示mask的损失Lmask,只要对于每一个像素,用sigmod函数进行求相对熵,得到平均相对熵的误差即可。对于第k个类别,Lmask也只由第k个mask和第k个ground truth计算得到,其他mask不参与贡献。像这样为每个class都生成一个mask有一个好处,就是不同的类之间不会出现竞争情况。
2.4 ROIAlign
说道此部分,首先先了解一下 Faster R-CNN 中的 ROIPool。首先量化ROI值,比如通过网络得出的ROI左上角坐标是(10.1,12.3),量化后为(10,12)。 接着量化后的ROI被分成固定的几个区域;最后每个区域聚合成一个值(见http://blog.csdn.net/cyiano/article/details/70141957#t4)。这样的结果是不论何种大小的输入都会变成同一种尺寸大小的输出。顺便一提,如果ROIPool前后的尺寸不是整除关系怎么办呢(比如从7*7pooling到3*3):只要取整就好了。此时ROI被分出来的每个窗口大小是cell(7/3),而窗口滑动步长是floor(7/3),大家可以自己在纸上比划一下。
上述的这种ROIPool会导致ROI和提取特征之间的misalignments。因此需要用ROIAlign来解决:
2.5 网络结构
作者将网络分成两个部分:用于提取特征的“backbone”,和用于classification、regression、mask prediction的“head”。“backbone”方面,作者用了两种不同深度的残差网络:50层的ResNet和101层的ResNeXt。这几个残差可以分成4段,特征将在最后的卷积层C4提取出来。另外,作者还使用了Feature Pyramid Network(FPN)。FPN会从不同等级的特征金字塔中提取ROI特征,实验也表明,在backbone中用FPN效果更好。
“head”方面,根据之前的backbone是Resnet还是FPN有两种形式:
3 实例分割实验
3.1 主要结果
作者采用的评价框架是COCO,指标有AP(averaged over IOU thresholds),AP50,AP75,APS,APM,APL。训练图像85k张,验证图像35k张,用于剥离实验的图像5k张。实验结果如下面的Table1,与前两年COCO冠军相比,Mask R-CNN取得了很好的结果。FCIS+++在重叠的实例部分展示出systematic artifacts,而Mask R-CNN则不会。
3.2 剥离实验
只说结果:结构方面,使用FPN或ResNeXt可以改善AP,增加网络层数也可以进一步改善。
Mask R-CNN分离了分类和掩膜两个任务,相比于二者联合的方法,性能提高不少。
对于分类不可知的mask性能没有比分类可知的差太多。
RoIAlign对pool时用max还是average不敏感;RoIAlign与RoIPool和RoIWarp相比,效果明显更好,RoIWarp虽然用到了双三次采样,但还是引进了量化过程。
当RoIAlign用在更大步长的网络层中时(32),AP增长更高一些。因为大步长时,misalignment更严重,原先的RoIPool方法更加恶化。
FCN比MLP好。
3.3 bounding box 检测结果
除了Mask R-CNN,作者另外训练了一个没有mask部分的网络:Faster R-CNN, RoIAlign。它与Mask R-CNN两个版本均超过了原有的方法。注意到Mask R-CNN比Faster R-CNN, RoIAlign低一些,这主要受益于多任务训练(原因不明)。3.4 时间
对于ResNet-101-FPN,195ms per image on an Nvidia Tesla M40 GPU (plus 15ms CPU time resizing the outputs to the original resolution)。对于ResNet-101-C4,takes ∼400ms as it has a heavier box head。Training with ResNet-50-FPN on COCO trainval35k takes 32 hours in our synchronized 8-GPU implementation (0.72s per 16- image mini-batch), and 44 hours with ResNet-101-FPN.
相关文章推荐
- 目标检测定位与分割论文阅读心得总结:FCN U-Net R-CNN FR-CNN Faster R-CNN Mask R-CNN
- Mask R-CNN(目标检测,语义分割)测试
- CNN用于医学图像轮廓检测的最近发展 论文阅读
- 航拍图像下的目标检测 论文阅读总结
- 【深度学习:目标检测】RCNN学习笔记(7):Faster R-CNN 英文论文翻译笔记
- 论文_阅读笔记_基于机器视觉的水稻秧苗图像分割
- 论文阅读笔记:图像分割方法deeplab以及Hole算法解析(diliation)
- 基于高维视觉特征模型的目标图像检测与图像分割技术研究---论文摘录
- 目标检测分割--Mask R-CNN
- 【论文解读】Facebook 何凯明 Mask R-CNN 狙击目标实例分割
- 目标检测分割--Mask R-CNN
- 目标检测 Faster R-CNN 论文笔记
- 目标检测分割--Mask R-CNN
- 推荐-计算机视觉、图像处理方面的论文阅读笔记
- 目标检测:Faster R-CNN论文详解
- 阅读图像显著性检测论文一:A Model of Saliency-Based Visual Attention for Rapid Scene Analysis
- 阅读图像显著性检测论文五:2011年版本的Global Contrast Based Salient Region Detection
- 目标检测:R-CNN论文详解
- cs231n学习笔记-CNN-目标检测、定位、分割
- cs231n学习笔记-CNN-目标检测、定位、分割