RefineMask:实例分割,使用细粒度信息增强性能

标题:RefineMask: Towards High-Quality Instance Segmentation with Fine-Grained Features

论文:https://arxiv.org/pdf/2104.08569.pdf代码:https://github.com/zhanggang001/RefineMask/

CVPR 2021 论文,作者单位:清华大学、商汤科技、同济大学、中科院自动化所。

0

动机

实例分割是计算机视觉领域中比较有挑战性的任务之一,Mask R-CNN是实例分割任务的经典方法,但是包括Mask R-CNN在内的多种方法,都会在实例分割时损失一些细节信息,如下图所示:

从上图中可以看出,Mask R-CNN总体而言有比较高的实例分割精度,但其在边界区域的精度不是很高。造成这种现象的原因有二:(1)深层次feature map的空间尺寸通常比较小,难以保留细节信息;(2)ROI Pooling操作进一步减小了feature map的空间尺寸,造成了细节信息的丢失。

与实例分割不同的是,语义分割任务不需要使用高层次特征区分不同的实例,因而其feature map的空间尺寸比较大,因此能够产生高质量的分割结果,尤其是在分割的边界有比较高的质量,如上图中图(b)所示。

作者提出了RefineMask,在二阶段实例分割框架的基础上,使用细粒度特征弥补细节丢失,如上图中图(c)所示。

01

网络总体结构

RefineMask总体结构如下图所示:

RefineMask以FPN目标检测器为基础,上图中省略了detection head。RefineMask在检测器基础上额外增加了semantic head和mask head。

semantic head使用FPN中尺寸最高的feature map作为输入,semantic head中不包含下采样等空间压缩操作,因此semantic head的输出和输入有同样的尺寸,从而保证其输出有丰富的细节信息。semantic head的输出用于辅助mask head做实例分割。
mask head使用“多阶段”的形式完成实例分割任务,在每个阶段中包含Semantic Fusion Module(SFM),mask head会融合包含细粒度信息的semantic feature和semantic mask,然后增加feature map尺寸用于更细粒度的mask预测。
此外,在mask head中还包含Boundary-Aware Refinement(BAR)操作,增强对实例边界的预测能力。
02

Semantic Head

semantic head包含4个卷积层,用于提取整张输入图像的语义信息,还包含1个二值分类器用于输出每个像素点属于前景的概率。使用二值交叉熵损失函数训练semantic head。

将semantic feature和semantic mask统称为细粒度特征,在mask head中,使用semantic head输出的细粒度特征补充细节信息,从而预测出高质量的instance mask。
03

Mask Head

3.1 Initial Mask

在mask head中,首先有一个RoIAlign操作,输出的feature map,紧接着是2个卷积操作产生instance feature,然后使用1个卷积操作预测instance mask,在RefineMask中将该mask称作initial mask,作为后续操作的输入之一。

3.2 Multi-stage Refinement

mask head中的主体操作为multi-stage refinement,每个stage包含4个输入:(1)instance feature,(2)instance mask,(3)semantic feature,(4)semantic mask。

在每个stage中,Semantic Fusion Module(SFM)融合上述4个输入,然后进行上采样操作,得到尺寸更大的特征。SFM的结构如下图所示:
如上图所示,SFM中首先包含卷积操作用于融合多个输入、减少通道数;紧接着是3个并行的卷积,每个卷积都有不同的dilation参数设置,用于提取不同感受野的特征;最后将instance mask、semantic mask与融合后的特征进行concat操作,作为SFM输出。
在mask head中包含多个SFM,完成多次特征上采样操作。

3.3 Boundary-Aware Refinement(BAR)

BAR的目的是更关注mask的边界信息,以提高网络对mask边界细节的预测能力。

边界区域的定义

使用表示第个stage的instance mask,的尺寸为,其中。
使用表示的边界区域,的定义如下:
上式中的表示中的像素的位置,表示到边界的最近距离,mask的边界如下图所示:
为了快速计算,作者使用卷积操作近似求解,若边界宽度为1,卷积核为:
若边界宽度为2,卷积核为:
使用上述卷积核作用于,将输出结果记作,与有相同的尺寸。通过如下公式计算得到:
构建边界区域的宽度在训练时设置为2,推理时设置为1。
训练

在mask head的多个stage中,除第1个stage以外,其他stage的instance mask只包含边界区域的信息。训练时它们的损失函数为:

损失函数中的表示前一个stage中ground truth mask的边界区域和预测mask的边界区域并集的双线性上采样,为第个instance在位置处的二值交叉熵损失,是instance的数量,为第个stage输出特征的尺寸。

推理

在推理时每个stage的最终输出为:

上式中的表示元素级别的乘法操作。上述过程可以表示为下图(以k=2为例):

上图中的表示元素乘法,表示元素加法,为的边界区域,是第2个stage最终输出的instance mask。
在推理时重复上述过程,即可得到细粒度的instance mask。
04

实验

使用Mask R-CNN作为baseline,在实现时mask head中包含3个stage。对于semantic head、initial mask和mask head的第1个stage,使用二值交叉熵损失函数;对于mask head的最后2个stage,使用3.3中定义的损失函数;detection head部分和Mask R-CNN保持一致。

mask head中的initial mask、3个stage的损失函数权重值分别为0.25、0.5、0.75、1,detection head损失的权重值为2。使用水平翻转操作用于数据增强。
在COCO val2017上的预测结果如下表所示:
上表中的表示使用LVIS数据集标注计算的结果。
RefineMask和其他方法的推理速度对比如下表所示:
上表中的FPS数据在V100 GPU上测量得到。从上表中可以看出,RefineMask兼顾性能和推理速度。
RefineMask与其他方法的性能对比如下:
RefineMask在Cityscapes验证集上的测试结果如下表所示:
Mask R-CNN和RefineMask的可视化对比如下图所示:
上图中第一行表示Mask R-CNN的预测结果,第二行表示RefineMask的预测结果,第三行表示ground truth。显然,RefineMask比Mask R-CNN有更好的分割效果,尤其是在边缘细节上。
05

总结

作者提出了RefineMask实例分割网络,该网络以Mask R-CNN为基础进行改进。RefineMask在mask head中利用了semantic head提供的细节信息,使用SFM和BAR模块,着重提高mask head在边界细节处的预测性能。通过实验证明,相比其他方法,RefineMask有更好的性能,且兼顾推理速度。

备注:分割

图像分割交流群

语义分割、实例分割、全景分割、抠图等技术,若已为CV君其他账号好友请直接私信。

在看,让更多人看到

(0)

相关推荐