Hybrid Task Cascade for Instance Segmentation(HTC)
0. 摘要
基于Cascade R- CNN和Mask R-CNN,有效地利用检测和分割的互补性,提出HTC:
(1)多阶段检测和分割协同学习;
(2)采用提供空间上下文信息的全卷积分枝,用于在复杂背景下分辨前景
1. 介绍
Cascade R-CNN优势:
(1)预测渐近优化
(2)自适应地处理训练分布。Cascade R-CNN与Mask R-CNN的简单结合不能在检测和分割两个任务带来均衡的性能提升。后续阶段mask的准确性依赖bbox的准确性,不同阶段的mask之间没有直接相连。
HTC在每个阶段采用多任务思路,对两个任务渐近优化。mask在不同阶段通过不同的branch直接相连,使得两种信息流可以在任务间和阶段间充分融合。
Contribution:
(1)HTC
(2)spatial contexts有利于实例分割
(3)实验
2. 相关工作
(1)Instance Segmentation
Segmentation by Detection: DeepMask,、SharpMask、InstanceFCN、MNC、FCIS、Mask R-CNN、PANet、MaskLab。
Segmentation by Segmentation:MRF/CRF based method。
(2)Multi-stage Object Detection
single-stage detector、two-stage detector、multiple stages refinement:AttractioNet、CRAFT、IoU-Net、CC- Net、Cascade R-CNN
3. Hybrid Task Cascade(HTC)
3.1 Multi-task Cascade
Cascade Mask R-CNN 在Cascade R-CNN的每个阶段添加mask prediction 和 bounding box regression。每个stage都有两个输出头:
B
t
(
)
B_t()
Bt()和
M
t
(
)
M_t()
Mt(),把特征映射为对应的bounding box和mask。同时用于生成bound box和mask的特征向下一stage传递,防止信息丢失。
3.2 Interleaved execution
3.1中的bounding box和mask预测是平行的,两者的信息流之间没有任何交互,因此可以想到交替预测的方式来改进这个缺点,如下图,即
t
−
1
t-1
t−1时刻的特征
r
t
−
1
r_{t-1}
rt−1通过pooling产生
t
t
t时刻的特征
X
t
X_t
Xt用于bounding box预测,然后此时刻的bounding box信息向下一时刻传递,得到
r
t
r_t
rt,用
r
t
r_t
rt来产生
t
t
t时刻的mask,即mask的预测比bounding box预测延迟了一个stage,这样可以有效的促进bounding box对mask预测的引导作用,如下:
3.3 Mask Information Flow
继续添加网络层来融合当前阶段以前的所有mask信息流。
3.4 Hybrid Task Cascade
本文提出的HTC整体结构图。
(1)Mask信息传递的实现 用于在不同stage间transfer信息的卷积层设计如下:
图中
x
x
x表示RoI Pooling后的特征,
M
i
M_i
Mi表示第
i
i
i个stage的mask预测头,同时
G
t
G_t
Gt表示
1
∗
1
1*1
1∗1卷积(图中红色框),用于将前一个stage的mask信息向后传递。
mask信息的传递过程如下:
思考:说的很激动、用的字母也高大尚,但是就是一个卷积层,能说会道才是王道!
(2)语义分割分支 为了更好地学习前景和背景,添加语义分割分支来支持像素级语义分割。这里其实是区别于用于提取ROI的分支而添加了另一路backbone,可以看作是两路并行的backbone。只不过一路backbone提取的特征用于RPN,另一路backbone提取的特征直接用于bounding box回归和mask预测。直观感觉S有点多余,仅提供了更多的特征。
(3)训练损失函数
公式1:总损失函数,由不同stage的bbox损失(位置回归与类别判定)与mask预测损失(二分类)按stage比重参与贡献,再加上语义分割分支的损失
公示2:不同stage的bbox损失(位置回归与类别判定损失)
公式3:不同stage的ask预测损失(二分类)
公式4:语义分割损失(交叉熵)