Mask R-CNN
摘要:
针对问题:object instance Segmentation
Mask R-CNN 能有效的检测图片中的 objects,同时 生成每个 instance 的高质量 segmentation mask.
基于 Faster R-CNN,在保留其现有的 bounding box 检测分支的基础上,并列地新增一个预测 object mask 的网络分支.
Mask R-CNN 泛化能力好,能够用于人体姿态估计等其它任务.
在 COCO 的 instance segmentation, bounding-box object detection, person keypoint detection 三类竞赛均取得 top results.
Mask R-CNN 关键点:
RoIAlign Layer - RoIPool Layer 改进版本
Mask Branch - 在 RoI 上的分割结果
Decouple Mask and Class Prediction using Binary Sigmoid Activations vs Multi-class Softmax
Instance Segmentation —— 正确的检测图片中的所有 objects,并精确地分割每一个 instance.
Object detection —— 正确的分类图片中的 objects,并定位各 object 的 bounding box.
Semantic Segmentation —— 对图片的每一个像素进行分类,输出mask,不需要区分 object instances.
Figure 1. Mask R-CNN 实例分割框架. 基于 Faster R-CNN,在其分类和 bounding box 回归的网络分支基础上,并行地新增一个对每个 RoI(Region of Interest) 预测分割 masks 的网络分支.
- mask 分支采用 FCN 对每个 RoI 预测像素级的分割 mask.
- RoIAlign 替代 RoIPool —— 由于 RoIPool 是映射原图RoI 到特征图 RoI,其间基于 stride 间隔来取整,导致将特征图RoI映射回原图RoI时,出现 stride 造成的误差(max pool 后特征图的 RoI 与原RoI 间的空间不对齐更加明显). 会影响像素级的 mask 分割. 因此需要像素级的对齐.
[From Face++]
1. Mask R-CNN
网络分支:
- 每个候选 object 的 class label - Faster R-CNN
- 每个候选 object 的 bounding-box offset —— Faster R-CNN
- 每个候选 object 的 mask - added
Faster R-CNN 包括两个阶段:
- 1st Stage —— Region Proposal Network(RPN),得到候选 object 的 bounding-boxes;
- 2st Stage —— 采用 RoIPool 从每个候选 box 提取特征,并进行分类和 bounding-box 回归.
1.1 Loss 函数
训练时,对每个采样的 RoI 的 multi-task loss 为:
L=Lcls+Lbox+Lmask L = L c l s + L b o x + L m a s k
- Lcls L c l s - 分类 loss
- Lbox L b o x - bounding-box 回归 loss
- Lmask