Conference Style Paper Deck Mask R-CNN

ICCV 2017 / FAIR / Instance Segmentation

Mask R-CNN

把两阶段目标检测器,升级成可同时输出 class、box 与像素级 mask 的统一实例识别框架。

01

核心判断

它厉害的地方,不是”更复杂”,而是”更准地抓住误差来源”。

Mask R-CNN 沿用 Faster R-CNN 的成熟骨架,只做两处关键升级:RoIAlign 解决像素级错位,FCN mask head 负责实例轮廓。结构改动很小,收益却非常大。

今天想回答的三个问题

  • 实例分割为什么比检测更难。
  • RoIAlign 为什么是整篇论文的关键一刀。
  • 为什么 2017 年的方法,到今天仍然是经典 baseline。
作者 Kaiming He 等
机构 Facebook AI Research
任务 Detection + Instance Segmentation
发表 ICCV 2017
Mask R-CNN 总体框架
Figure 1. 在 Faster R-CNN 的两阶段框架上,并行增加一个 mask 分支,就得到了实例级预测。
35.7 AP ResNet-101-FPN
37.1 AP ResNeXt-101-FPN
63.1 AP COCO keypoint
5 fps 论文报告速度
主线 先看任务与痛点,再看四步流程和两处关键创新,最后用实验说明它为什么成为长期有效的框架。

Overview

先用一句话概括整篇论文

Mask R-CNN 的价值,是用很克制的结构改动,把检测器自然扩展成实例级视觉系统。

02

问题

检测只要知道“是什么、在哪里”;实例分割还要把每个实例的轮廓单独画出来。

方法

保留 Faster R-CNN 的两阶段主干,用 RoIAlign 保证对齐,再并行输出 class、box 和 mask。

结论

这是一篇非常典型的“结构不花哨,但抓住真瓶颈”的论文,所以影响力很长。

1 任务背景 为什么实例分割更难
2 四步流程 从整图到实例结果
3 关键创新 RoIAlign 与解耦预测
4 实验支撑 主实验、消融、拓展应用
关键词 1 RoIAlign
关键词 2 解耦预测
关键词 3 统一框架

Prerequisites

理解 Mask R-CNN 之前,先看 6 个前置概念

后面的方法页基本都围绕这 6 个概念展开:谁提供两阶段框架,谁负责多尺度,谁决定对齐,谁画出像素级输出。

03
理解入口

这 6 个词串起来看,基本就能把 Mask R-CNN 的方法逻辑一口气接上。

Faster R-CNN

两阶段目标检测框架。 RPN 先找候选框,RoI 头再分类和回归。

与 Mask R-CNN 的关系:它是直接母体。

FPN

把多尺度特征整理成金字塔。 让大目标和小目标各用更合适的层。

与 Mask R-CNN 的关系:直接提升检测与分割精度。

RoI

感兴趣区域,就是候选框对应的局部区域。 它位于 RPN 之后、head 之前。

与 Mask R-CNN 的关系:每个实例都围绕一个 RoI 展开。

RoIPool

把不同大小的 RoI 压成固定尺寸特征。 但量化会带来空间错位。

与 Mask R-CNN 的关系:RoIAlign 就是为替代它而来。

双线性插值

在连续坐标上估计特征值。 不必把采样点强行落到整数格上。

与 Mask R-CNN 的关系:它支撑 RoIAlign 的精确采样。

FCN

全卷积网络,天然适合像素级输出。 相比 MLP,更能保留二维空间结构。

与 Mask R-CNN 的关系:mask head 靠它来画轮廓。

关系链 Faster R-CNN 给出两阶段母体,FPN 提供多尺度特征,RoI 定位实例局部,RoIPool 暴露错位问题,双线性插值支撑 RoIAlign,FCN 负责像素级输出。

Background

实例分割,到底比检测多做了什么

它不是“再细一点的检测”,而是要同时完成实例区分和像素级边界描绘。

04
01

图像分类

只回答图里有什么。

没有位置,没有轮廓。
02

目标检测

回答有什么、在哪里。

能区分实例,但只给矩形框。
03

语义分割

给每个像素一个类别。

边界细,但不区分同类实例。
04

实例分割

既区分个体,也输出轮廓。

这正是 Mask R-CNN 要解决的问题。

难点来自两条能力同时成立

任务 区分实例 像素级输出
分类
检测
语义分割
实例分割
难点 A

同类目标重叠时,要先分清“谁是谁”。

难点 B

轮廓是像素级输出,对空间错位非常敏感。

难点 C

分类、定位、分割三件事必须在一个系统里协同。

结论 实例分割最难的地方,是它同时要求“找对实例”和“画准边界”,这也是后面 RoIAlign 必须出现的原因。

Core Flow

Mask R-CNN 的四个关键步骤

从左到右看,它先做整图表征,再粗筛候选框,再精确对齐,最后把每个实例拆成 class、box 和 mask 三个输出。

06
01 整图特征提取 backbone / FPN
02 RPN 生成候选框 先粗筛
03 RoIAlign 精确对齐 不取整
04 并行输出 class / box / mask 实例结果
Feature Maps 多尺度特征图

先把整图编码进统一的特征空间。

RoIAlign 精确采样后的固定尺寸特征

不取整,用双线性插值在连续坐标上采样。

Heads & Output 实例级三路输出
class 是什么
box 框多准
mask 边界长什么样
final instance
流程图视角

这页只看“信息怎么流动”。四次点击,对应四个核心阶段。

Step 1

整图特征提取

输入图像先经过 backbone / FPN,被压缩成可检索、可共享的多尺度特征图。

Step 2

RPN 生成候选框

RPN 在特征图上先做一轮粗筛,把最像物体的位置先提出来,避免后面在全图上逐像素硬算。

Step 3

RoIAlign 精确对齐

对每个候选框做连续坐标采样,不做整数取整,所以局部特征和真实边界能对得更准。

Step 4

并行输出 class / box / mask

同一个 RoI 分三路输出类别、边框和实例 mask,最后组合成完整的实例级结果。

一句话记住 四步背后的逻辑就是:整图编码做基础,RPN 先粗筛,RoIAlign 管对齐,三路 head 负责把每个实例真正说清楚。

Method Overview

总体框架:把检测器升级成实例识别器

整个设计最有工程感的地方是,它并不重来,而是在成熟检测框架上并行加出一个高收益分支。

07
1 Backbone + FPN 多尺度特征
2 RPN 候选框粗筛
3 RoIAlign 局部特征对齐
4 Heads class / box / mask
Mask R-CNN 框架图
Figure 1. Faster R-CNN 的两阶段骨架保留不变,新的工作量主要集中在对齐和 mask 分支。

阶段一:先找哪里可能有物体

RPN 在全图上生成候选框,相当于先做一轮成本更低的区域筛选。

阶段二:再把每个候选框说清楚

对每个 RoI,系统同时判断类别、微调框位置,再额外预测一个实例 mask。

Faster R-CNN

两阶段检测母体:RPN + RoI 头。

FPN

多尺度特征金字塔,让大小目标都能接到合适层级。

结构观感 Mask R-CNN 真正聪明的地方,不是推倒重来,而是在现成的两阶段检测框架上,加了一条最值钱的分支。

Key Innovation I

RoIAlign:把像素级错位这个瓶颈正面解决

检测任务能容忍一点位置误差,但实例分割不行,所以“不取整”会变成非常大的性能收益。

08

RoIPool 的问题

  • 框坐标会取整。
  • bin 的边界也会取整。
  • 结果是局部特征与真实边界错位。

RoIAlign 的做法

  • 保留浮点坐标。
  • 在每个 bin 内采样。
  • 用双线性插值估计特征值。

收益很直接

mask AP约 +3
AP75提升更明显
stride 32+7.3 AP
RoIPool

强行落到整数格点,边界细节容易被挤掉。

RoIAlign

连续采样后,局部特征和轮廓关系更稳。

为什么它影响这么大

因为实例分割输出的是像素边界,量化误差会直接反映到耳朵、车轮、手臂这些精细轮廓上。

RoI

每个候选框对应一个局部实例区域。

RoIPool

固定尺寸是对的,量化这一步是错位源头。

双线性插值

让采样点可以停在连续坐标上。

核心结论 RoIAlign 证明了一件事:像素级任务里,对齐不是小细节,而是性能上限的关键来源。

Key Innovation II

解耦预测:class 负责“是什么”,mask 负责“长什么样”

Mask R-CNN 不让 mask 分支再去和类别竞争,而是把分类判断交给 class 分支,把轮廓表达交给 FCN mask head。

09

Softmax vs Sigmoid

比较项 Softmax Sigmoid
类别关系 互相竞争 各类独立
谁负责类别 mask 分支也被迫参与 交给 box / class 分支
论文结果 baseline +5.5 AP

FCN 为什么更合适

mask 本质上是二维空间结构,所以更适合用卷积网络保留位置关系,而不是先压平成向量再做 MLP。

FCN vs MLP+2.1 AP
直接收益空间结构保留更完整

多任务损失

L = Lcls + Lbox + Lmask

系统把分类、定位、分割放进统一训练框架,但给每个任务一个更清晰的职责边界。

FCN

保留二维结构,所以更适合把实例轮廓直接画出来。

一句话理解 Mask R-CNN 的第二个关键点,是把“认类别”和“画轮廓”拆开做,减少了无谓的任务冲突。

Main Results

主实验结果:结构更简,结果却更强

论文强调自己并没有堆很多额外技巧,但在 COCO 上已经超过了上一代更复杂的系统。

10

COCO 实例分割结果

方法 主干 mask AP
MNC ResNet-101 24.6
FCIS ResNet-101 29.2
FCIS+++ ResNet-101 33.6
Mask R-CNN ResNet-101-FPN 35.7
Mask R-CNN ResNeXt-101-FPN 37.1
without bells and whistles 没有依赖一堆附加技巧
38.2 box AP 检测精度也同步受益
32~44 h 训练成本仍然可接受
Mask R-CNN 在 COCO 上的分割结果示例
Figure 2. 在常见场景里,系统已经能给出稳定、干净的实例级结果。
Mask R-CNN 在复杂场景中的更多分割结果
Figure 4. 在拥挤、遮挡和复杂背景下,依然能维持较好的实例分离效果。
主实验结论 Mask R-CNN 不只是结构想法漂亮,它在标准 benchmark 上也确实比前代方法更强,而且结果图看起来更稳。

Ablation Study

消融分析:每一项设计都不是装饰

主实验告诉我们“它更强”,消融实验才真正解释“它为什么更强”。

11

关键变量与收益

改动 收益 说明
更深 backbone / FPN 稳定提升 特征表达更强
Sigmoid 代替 Softmax +5.5 AP mask 与 class 解耦
RoIAlign 代替 RoIPool 约 +3 AP 直接减少像素级错位
stride 32 + RoIAlign +7.3 AP 大步长场景更依赖对齐
FCN 代替 MLP +2.1 AP 更适合二维空间输出

第一层信息

提升不是某一个技巧偶然奏效,而是对齐、分工和特征表达一起在起作用。

第二层信息

其中最有说服力的,是 RoIAlign 和解耦预测的收益都非常大,说明它们切中了真正瓶颈。

Sigmoid vs Softmax+5.5 AP
RoIAlign / stride 32+7.3 AP
FCN vs MLP+2.1 AP
消融结论 这篇论文不是靠“技巧堆叠”变强,而是靠几处高价值设计同时把误差、结构和任务边界都理顺了。

Generalization

拓展应用:同一套框架,也能做关键点检测

Mask R-CNN 的真正价值,不只在实例分割,还在于它给出了一种统一的实例级识别底座。

12
Mask R-CNN 的关键点检测结果
Figure 6. 同一个实例级框架可以同时输出 person mask 与人体关键点。

思路并不复杂

把每个关键点看成一个非常稀疏的二值 mask,于是关键点检测也能接到同一套 RoI 特征上。

结果也成立

COCO keypoint AP 63.1
2016 冠军系统 61.8
论文报告速度 5 fps

真正想说明的事

一旦实例级 RoI 表征足够稳定,box、mask、keypoint 这些输出头都能自然插上去。

box 在哪里
mask 边界长什么样
keypoint 关键部位在哪里

Takeaways

总结:这篇论文真正留下了什么

它留下的不是某一年榜单上的分数,而是一套长期有效的实例级视觉框架与问题拆解方式。

13

留下的结构

  • 两阶段检测骨架继续沿用。
  • RoIAlign 解决像素级错位。
  • class / box / mask 三头并行协同。

留下的方法论

  • 先找真正瓶颈,再做最小但有效的改动。
  • 对齐问题和任务分工,往往比盲目加深网络更值钱。
  • 统一底座能带来更强的可扩展性。

为什么今天还值得学

  • 它仍然是最稳的经典 baseline 之一。
  • 很多后续工作仍在继承它的 RoI 对齐与多头解耦思想。
  • 也是理解实例级视觉任务的最好入口之一。
最终结论 Mask R-CNN 的长期影响力,来自它把“检测、对齐、分割、扩展任务”整理成了一个清晰、稳定、可复用的实例级系统。

Closing

如果只带走一个判断

Mask R-CNN 值得反复学习,不是因为它“多了一条分支”,而是因为它把实例级任务真正难的地方拆得非常准确。

14
One Sentence

它不是“多一个分支”这么简单,而是把实例级任务的误差来源和职责边界都理顺了。

对齐

RoIAlign 让像素级边界真正对得上。

分工

class 负责识别,mask 负责轮廓。

扩展

统一底座能继续接 box、mask、keypoint。

Discussion

Q&A

欢迎继续追问方法细节、实验设计,或者它和后续实例分割工作的联系。

15
Open Questions

三个最值得继续往下聊的问题

我把最常见的追问收在这里,现场可以直接从任意一个切进去展开。

Q1

RoIAlign 为什么收益这么大

因为检测容忍框级误差,但实例分割直接输出像素边界,量化偏移会马上反映到轮廓上。

Q2

它和 U-Net / FCIS / DETR 差在哪

U-Net 更偏语义分割,FCIS 是实例分割早期强基线,DETR 系则更强调端到端集合预测。

Q3

为什么两阶段方法今天仍有竞争力

因为 RoI 级表征在实例边界、关键点和多任务扩展上,仍然提供非常稳定的结构优势。

Mask R-CNN / ICCV 2017

感谢聆听

欢迎提问。

方法 实验 应用 局限

团队分工

讲解

刘逸铭 邱铭淇 肖筱天

论文选题,资料搜集

肖筱天

演讲稿&PPT

刘逸铭 邱铭淇

16