目录
- 本文思想
- 主要改进
- 1. Cascade Mask R-CNN -- 基础网络
- 2. Interleaved Execution -- 关联bbox和mask
- 3. Mask Information Flow -- 关联每阶段的mask
- 4. Hybrid Task Cascade -- 融合语义特征
- 损失函数
本文思想
本文使用的网络结构如上图所示:
首先需要通过一个backbone来提取特征,本文采用的是ResNet50/ResNeXt101。
第二步利用FPN(Feature Pyramid Networks)获得在多个尺度空间上的特征。
第三步利用RPN(RegionProposal Network)在特征图上进行滑动,得到大量的候选框(Region Proposal)
最后需要利用HTC算法,根据候选框(Region Proposal)和feature map修正对应的bbox和mask
本文主要提出的改进算法是在最后一个步骤上,通过关联bbox,mask,语义信息,来提高其分割准确率。
主要改进
1. Cascade Mask R-CNN – 基础网络
Cascade Mask R-CNN是本文改进的基础网络,主要结构是通过feature和RPN生成的初始框(B0),利用ROI Pooling/ROI Align网络得到预测的M1(mask)和B1(bbox),共有三个阶段网络,每一阶段根据前一阶段的Bi-1来推测当前阶段的Mi和Bi。
x为backbone和FPN提取出的feature
P(.)为ROI Pooling/ROI Align
Xt^box为生成的当前阶段t的bbox的特征
Xt^mask为生成的当前阶段t的mask的特征
Bt(.)为第t阶段的box head,网络输入为box特征,输出为预测的box
Mt(.)为第t阶段的mask head,网络输入为mask特征,输出为预测的mask
rt为预测的box
mt为预测的mask
ROI Pooling和ROI Align详解
2. Interleaved Execution – 关联bbox和mask
较Cascade Mask R-CNN而言,增加了mask预测与bbox预测的关联,当前阶段的mask受到当前阶段bbox的影响。
较Cascade Mask R-CNN而言,左下式发生了变化,当前阶段的mask特征由当前时刻的bbox特征影响。
3. Mask Information Flow – 关联每阶段的mask
较Interleaved Execution而言,增加了每阶段mask的关联,当前阶段的mask收到上一阶段mask的影响。
较Interleaved Execution而言,右下式发生了变化,利用F(.)将当前阶段mask的特征和上一阶段mask进行融合,从而计算当前阶段的mask。
上式即为融合当前阶段mask特征与上一阶段mask的方式,gt(.)为1x1的卷积,用于将两者转换为相同的尺度,从而进行点加。
mask特征融合后,经过四个3x3的卷积层,得到当前阶段的mask。
4. Hybrid Task Cascade – 融合语义特征
S即为图像的语义特征,将其用于bbox和mask的预测。
语义特征提取方法即为上图网络:
左侧为经过FPN提取的多尺度的特征,将其进行上采样和下采样,统一尺寸,再进行点加,对多尺度特征进行融合,再通过4个3x3卷积层提取特征,通过1x1卷积得到固定尺度的语义特征。(segmentation predition可能是在训练过程中,通过ground truth和网络得到的prediction计算语义误差Lseg)。
较Mask Information Flow而言,box和mask的特征预测中添加了S(x)(式1,3)。
损失函数
包含三部分:
bbox的损失:bbox的类别损失+bbox的位置损失
mask的损失:mask的像素点的损失
semantic的损失(Lseg):语义分割的损失