图像分割、目标检测 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+L