【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

论文题目:Railroad is not a Train: Saliency as Pseudo-pixel Supervision for Weakly Supervised Semantic Segmentation

论文地址:https://arxiv.org/abs/2105.08965

代码地址:https://github.com/halbielee/EPS

 

文章贡献:

1. 提出一种新的弱监督语义分割框架:Explicit Pseudo-pixel Supervision(EPS),通过结合两个弱监督从像素级反馈中学习。根据CAM生成的localization map和来自现成的显著检测模型生成的 saliency map来提供目标身份;

2. 设计一种联合训练策略,可以充分利用两种信息之间的互补关系。所提出方法可以获得准确的物体边界,并摒弃共同出现的像素,从而显著提高 pseudo-masks 的质量。

 

1 背景与动机

弱监督语义分割(Weakly-supervised semantic segmentation ,WSSS)旨在使用图像级的标签、涂鸦、边界框等弱监督信息,来达到完全监督语义分割模型的性能,以节约数据标注成本。该论文使用图像级的标签作为弱监督信息。

WSSS整个流程由2阶段组成:1.使用图像分类器为目标生成伪掩码;2.使用伪掩码作为监督信息来训练分割模型。通常通过类激活映射(class activation mapping,CAM)来生成伪掩码。

现有的使用图像级的标签的WSSS的主要局限性有:

  1. 获取的localization map中只包含目标物体的一小部分;
  2. 获取的伪掩码的边界不准确;
  3. 很难将共有像素与目标物体区分。

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

上图图c中,获取的伪掩码包含了大量的不属于目标类别的物体像素,且边界不准确。同时,类似于火车和铁轨这种挨着的物体不能准确的区分。

针对上面的3个局限性,以往的工作有对应的解决方法:

  1. 改进标记区域:擦除像素、集成得分图、引入自监督信号,但边界信息依然不准确;
  2. 改进边界:标记可以一直扩展到边界,但是依然不能很好的区分共有像素的物体;
  3. 改进区分:使用额外的groundtruth mask或saliency map。前者属于强监督,后者对saliency map的错误很敏感,且也可能出现边界不准的问题。

因此,作者为了解决上述问题,提出了一种结合localization map和saliency map的方法,重点讨论了这两种map之间的互补关系(LM可以区分对象,但边界不清晰;SM边界清晰,但不知道识别出的东西是什么),该方法称之为Explicit Pseudo-pixel Supervision(EPS)。

 

2 相关工作

(1)弱监督语义分割

主要在于提高localization map的质量,包括:cross-image affifinity、knowledge graph、contrastive optimization,通过自监督来改进CAM等。

(2)显著指导的语义分割

显著性检测(Saliency detection,SD)根据有像素级标注信息的数据集可以训练得到有图像的前景和背景的saliency map(相当于是一种2分类语义分割)。大多数现有的方法利用saliency map作为伪掩码的一部分,或作为隐式指导来细化分类器的中间特征。

该论文是以saliency map作为localization map的伪像素反馈,且解决了共同像素的区分、以及saliency map的噪声问题。

 

3 提出的方法EPS

论文的主要贡献在于WSSS的一阶段:生成准确的伪掩码。

由图像生成其伪掩码的流程如下:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

(1)由输入图像根据分类判别器生成C+1(类别数+背景)张localization map,每张map对应的是不同类别的目标的位置信息,像素值取值在0-1之间,第i张map记为Mi。 

(2)根据现有的SD模型生成输入图像对应的saliency map,记为Ms。

(3)对C张map进行筛选,共有2种筛选。a.将M中目标缺失的map去除;b.如果Mi与Ms中重叠像素的占比>τ,那么认为Mi属于前景,否则属于背景,默认设置τ=0.4(背景map无需好筛选,直接属于背景)。

(4)将所有a筛选后的前景和背景Mi,以及Ms均进行阈值为0.5的二值化处理,得到Bi和Bs,b筛选的重叠像素的占比的计算公式如下:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

(4)将所有的前景Mi加总,得到总的前景Mfg,将所有的背景Mi加总,得到背景Mbg:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

(4)根据前景Mfg和背景Mbg,计算总的一个估计的显著图Ms_hat:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

其中,λ是一个超参数,取值0-1,默认λ=0.5。

(5)计算Loss,总Loss由2部分组成:【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

显著损失L(sal)通过计算Ms_hat和Ms的像素平均距离获得:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

分类损失根据对图像的多标签计算其交叉熵损失:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

由于显著损失使用了背景类,因此反向传播中也会传播到背景map,且被筛选掉的map不会被传播(红色箭头)。而分类损失未使用背景类,也不存在对分类结果进行筛选,因此不会传播到背景map,但目标map都会传播(蓝色箭头)。

 

上述结构中,通过saliency map来为由localization map生成的前景Mfg获得准确的边界信息,由以背景Mbg反转得到的另一种前景图来解决共同像素无法区分的问题:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

 

4 实验结果

使用PASCAL VOC和COCO数据集,生成伪掩码的分类器网络选择resnet38,分割网络选择VGG16/ResNet101+DeepLab-LargeFOV(V1)/DeepLab-ASPP(V2)。

边界问题

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

共有像素问题

选择3对具有该特性的目标进行比较:船和水,火车和铁轨、火车和月台。

蓝色值为混效率【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021),表示把第k类错分为第c类的像素总数/第c类正确分类的像素总数,括号里的值为IoU.

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

Map Selection的影响

Baseline是不使用该策略;Naive为将所有目标图都认为是前景,背景图认为是背景;Pre-defined指人为的预先定义一些目标分配给背景,其余为前景。

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

与先进方法的比较

伪掩码的准确率:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

分割图的精度:

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

【论文阅读】Explicit Pseudo-pixel Supervision(EPS,CVPR2021)

 

个人理解

1. 该弱监督提供的是图像级的监督信息,即标注这张图上有哪些类别,但不标注对应像素,相当于是多标签分类的标注;

2. 论文使用的是显著图作为一种没有目标类别的监督信息,可以理解成是一种分割精度不高,且没有类别的粗标签。如果用其它分割网络生成的粗分割图来作为这个替换,也许也可以实现某种意义上的分割优化结构,类似于CascadePSP那篇论文,实现超分辨率细化?

3. 由于使用了显著图,而显著图模型是需要像素级的标注信息才能获得的,那么如果现在想要弱监督分割的数据集不是这种人物动物的图片,而是一种全新的图像,那直接使用预训练好的显著检测模型来获取显著图结果,大概最后得到的mIoU也并不会好,因此该方法其实对数据集有局限性。

上一篇:C++ explicit关键字详解


下一篇:数据结构和算法(Golang实现)(19)排序算法-冒泡排序