Image-Level 弱监督图像语义分割汇总简析

技术讨论 sophie ⋅ 于 8个月前 ⋅ 853 阅读

总结:

Image-Level 的弱监督语义分割基本都是以 CAM 作为起点,然后迭代训练,过程中不断恢复出 object 的 mask,各论文唯一重要的区别就在于这个恢复策略有所不同。

Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation

Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation

成绩:
VOC 2012 val:61.7%
VOC 2012 test:63.7%

本论文仅使用 Label 级的图片标注,利用CAM(class activation map)作为基础,辅助以提出的 AffinityNet 得到 mask 标签,最后以此训练分割模型。

AffinityNet 可以理解为对 CAM 进行优化的模型,它的主要作用可以理解利用 background 与foreground 在 CAM 上的区别的找出 foreground 的边界,从而形成较好的 Segmentation Mask。

参考链接:
论文笔记 Learning Pixel-level Semantic Affinity with Image-level Supervisionfor Weakly Supervised Semantic Segmentation - cv module | d
Robert Yang:弱监督语义分割psa算法笔记

Revisiting Dilated Convolution: A Simple Approach for Weakly- and Semi- Supervised Semantic Segmentation

Revisiting Dilated Convolution: A Simple Approach for Weakly- and Semi- Supervised Semantic Segmentation

成绩:
VOC 2012 val:60.4
VOC 2012 test:60.8

此论文也是使用 CAM 作为起点,使用辅助模型 MDC (multiple dilated convolutional)来对无标注的数据进行标注,以此来训练分割模型。

MDC 则是利用了不同 dilation rate 的 dilated conv,通过综合平均后来得到一个较为准确的 Segmentation Mask,取平均的公式:

[公式]

[公式] 为普通的 conv3x3,其余的为不同 dilation rate 的 dilated conv。

参考链接:《Revisiting Dilated Convolution: A Simple Approach for Weakly- and Semi- Supervised Semantic Segmentation》笔记

Multi-Evidence Filtering and Fusion for Multi-Label Classification, Object Detection and Semantic Segmentation Based on Weakly Supervised Learning

Multi-Evidence Filtering and Fusion for Multi-Label Classification, Object Detection and Semantic Segmentation Based on Weakly Supervised Learning

成绩:
VOC 2012 val:null
VOC 2012 test:55.6

Image Level weakly supervised,从 image到instance再到pixel得到Segmentation mask,这个成绩相比之下比较一般。

Weakly-Supervised Semantic Segmentation Network with Deep Seeded Region Growing

https://openaccess.thecvf.com/content\_cvpr\_2018/papers/Huang\_Weakly-Supervised\_Semantic\_Segmentation\_CVPR\_2018\_paper.pdf

成绩:
VOC 2012 val:61.4
VOC 2012 test:63.2

这篇论文的想法其实也很简单,由于 CAM 激活程度较高的是图片最 discriminative 的地方,所以,将其作为 Segmentation Mask基本上是没毛病的,而激活程度较低的就先忽略。随着模型的训练,待分割物体整体会由最 discriminative 的地方扩散开来,模型会开始能够识别物体的其它部分, CAM 渐渐变高,整个物体也就慢慢被找出来。

Benchmark:

file

参考链接:
MurphyAC:弱监督下的语义分割:DSRG
《Weakly-Supervised Semantic Segmentation Network with Deep Seeded Region Growing》笔记

Object Region Mining with Adversarial Erasing: A Simple Classification to Semantic Segmentation Approach

Object Region Mining with Adversarial Erasing: A Simple Classification to Semantic Segmentation Approach

成绩:
VOC 2012 val:55%
VOC 2012 val:55.7%

此论文方法十分魔性:

loop:
    step 1: 训练好的分类网络,它会找出图片最 discriminative 的部分。
    step 2: 擦掉分类网络所找出的图片最 discriminative 的部分,用这些图片重新训练分类网络。

循环多次后,把擦除的部分拼在一起,就可以当做 Segmentation Mask 了。

思路有些类似 recursive training。

FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference

FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference

成绩:
VOC 2012 val:64.9
VOC 2012 test:65.3

本论文想解决的问题是,使用 Image-Level 的标记,以 CAM 为基础的弱监督 Segmentation 存在的物体边缘难恢复的问题。解决的方法是,利用 FickleNe, 即类似 2D 的 dropout,使模型隐藏层仅通过 分类训练就可以更全面地关注物体整体的特征,而非仅关注物体最 discriminative 的部分,从而有机会通过 CAM 得到更完整的 Segmentation Mask。

FickleNet 的实现:

在展开特征图,我们在x上应用零填充,这样最终输出的大小就等于输入的大小。补零后的特征图大小为kx(h+s-1)(w+s-1),其中s为卷积核的大小(w方向或者h方向, 需要补充的部分实际上就是卷积核大小减去1的值)。
我们展开零填充的特征图,这样连续的滑动窗口位置就不会重叠,并且展开的特征图 x^expand的大小为kx(sh)x(sw)(相当于在每个wxh平面上的元素都对应着一个sxs大小的映射区域)。
然后,我们使用保留中心的dropout技术来选择x^expand上的隐藏单元。虽然扩展后的特征图需要更多的GPU内存,但是需要训练的参数数量保持不变(因为还是那些卷积权重, 只是跨步大了些),GPU的负载没有明显增加,

训练时的Classifier

为了得到分类分数:
对dropout处理过的特征图,用大小为s和步长为s的核进行卷积。
2. 然后我们得到一个大小为cxwxh的输出特征图,其中c是对象类的数量
4. 将全局平均池化(会获得一个长为c的向量)和一个sigmoid函数应用到特征图上,得到一个分类得分s(1xc).
5. 然后使用sigmoid交叉熵损失函数更新FickleNet,该函数广泛用于多标签分类。(这里使用的应该是softmax)

最后 inference 的时候,dropout 依然开启,多次推理得到 N 个 CAM, 采用了 Grad-CAM 的方式计算,即对每一类进行梯度加权叠加:

最后,CAM 某像素位置达到了阈值,就给它打上相应的标签,如果没有就 ignore,如果有多个标签,则对 N 组CAM 的 class score 求平均,把label给最高的类。

参考链接:
FickleNet: Weakly and Semi-supervised Semantic Image Segmentationusing Stochastic Inference · 语雀
凭什么相信你,我的CNN模型?(篇一:CAM和Grad-CAM)
https://spytensor.com/index.php/archives/20/?tkjitm=j3wtn2

Benchmark:

Weakly Supervised Semantic Segmentation using Web-Crawled Videos

https://zpascal.net/cvpr2017/Hong\_Weakly\_Supervised\_Semantic\_CVPR\_2017\_paper.pdf

成绩:
VOC 2012 val:58.1
VOC 2012 test:58.7

依旧是基于 CAM,方法大致步骤如下:
1. 使用 VOC 2012 的 Image-Level label 训练VGG。

2. 使用 VGG 来检测 video,删除无关的帧。

3. 使用筛选过的 video 通过解决图优化问题得到 Segmentation Mask,训练得到 decoder。

参考链接:
论文笔记 Weakly Supervised Semantic Segmentation using Web-Crawled Videos - cv module | d

Benchmark:

Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

成绩 (0.5k mask+10k label):
VOC 2012 val:62.1
VOC 2012 test:62.5

DecoupledNet 最大的特点就是分类网络和分割网络分别训练,个人认为可以看做 coder-decoder。分类网络使用 label 级的数据训练,分割网络使用 mask 级的数据训练。

参考链接:论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)

Benchmark:

file

Semi and Weakly Supervised Semantic Segmentation Using Generative Adversarial Network

成绩(1.4k mask + 10k label):
VOC 2012 on val:65.8
VOC 2012 on val:null

Semi and Weakly Supervised Semantic Segmentation Using Generative Adversarial Network

该论文对 GAN 在语义分割上的使用和以往有所不同,分割网络没有作为 Generator 而是 Discriminator。并且提出了 semi-supervised 训练以及 weakly-supervised 训练的框架:

semi-supervised:

在 VOC 上的实验,使用 1.4K 的强标签,其它将近 10K 张图作为未标记数据,以及 Generator 产生的假数据进行训练。Discriminator 作为分割网络则多了一类 Fake。对于未标记的数据,Discriminator 要压低 Fake 类的置信度;对于 Generator 产生的假数据,要提高 Fake 类的置信度;强标签的数据正常训练就行。

weakly-supervised :

在 VOC 上的实验,使用 1.4K 的强标签,其它将近 10K 张图作为带 Image-Level label 的数据,以及 Generator 产生的假数据进行训练,这次输入 Generator 的不止是 noise,还有 label。根据作者的意思,这样可以提高 Discriminator 发现图片与label 之间的关联。

The rationale of exploiting weak supervision in our framework lies on the assumption that when image classes are provided to the generator, it is forced to learn co- occurrences between labels and images resulting in higher quality generated images, which, in turn, help our multi- classifier to learn more meaningful features for pixel-level classification and true relationships between labels.

同样的,对于 Image-Level label 的数据,Discriminator 要提高图片中含有的相应类的的置信度;对于 Generator 产生的假数据,要提高 Fake 类的置信度;强标签的数据正常训练就行。

从结果来看,提升还是比较明显的:

file

Weakly-Supervised Semantic Segmentation by Iteratively Mining Common Object Features

Weakly-Supervised Semantic Segmentation by Iteratively Mining Common Object Features

成绩:
VOC 2012 val:60.3
VOC 2012 val:61.2

同样是 CAM 为起点,然后迭代优化 Segmentation Mask,算法简要流程如下:

  1. 以 CAM 为初始 Object Seeds,训练 RegionNet。
  2. RegionNet 的输出经过 Saliency-Guided Refinement (反正就是一种人为设计的先验)优化后得到 Segmentation Mask。
  3. 用得到的 Segmentation Mask 训练分割网络 PixelNet。
  4. 将 PixelNet 的输出作为 Object Seeds。

参考链接:《Weakly-Supervised Semantic Segmentation by Iteratively Mining Common Object Features》笔记

Benchmark:

Weakly Supervised Instance Segmentation using Class Peak Response

Weakly Supervised Instance Segmentation using Class Peak Response

成绩:
VOC 2012 val:53.4

此论文的主要发现在于,在分类网络中, CAM 的 peak response 基本上可以定位被分类物体,而通过 peak 的反向传播追根溯源,可以找到被分类物体的全貌。该论文应该是第一篇用于 Instance Segmentation 的 Image-Level supervised 工作。

Adversarial Learning for Semi-Supervised Semantic Segmentation

Adversarial Learning for Semi-Supervised Semantic Segmentation

成绩:
VOC 2012 val:68.4% (1.4k mask + 9k unlabeled)

训练数据上使用了两类数据进行训练:

  1. 带segmentation mask 标注的数据
  2. 没有标注的数据

模型上分为两部分:

  1. 生成网络为 FCN-style 的网络,输入图像生成 mask
  2. 判别网络输入 mask 生成 confidence map

训练生成网络的损失函数有以下三个部分:

  1. Cross Entropy Loss
  2. Adversarial Loss
  3. Semi-Supervised Loss

前两个很好理解,就训练分割常用的交叉熵损失和训练GAN时的损失函数,第三个则是对于未标注的数据,取判别网络认为置信度较高的部分对生成网络进行训练。



来源:知乎
作者:Uno Whoiam
链接:https://zhuanlan.zhihu.com/p/80815225
本文已由作者授权转载,未经允许,不得二次转载。

相关文章:
让机器 “一叶知秋”:弱监督视觉语义分割
极市分享干货|第 9 期-基于无监督与半监督方法的人脸识别研究
【资源】弱监督语义分割 state-or-art 资源列表

微信公众号: 极市平台(ID: extrememart )
每天推送最新CV干货

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!