
总的来说,弱监督语义分割目前的主要思路在于:
- 后验(训练数据集)不够,先验(MCG、GrabCut)来凑。
- 利用模型本身的学习性对 label 迭代优化。
- 使用有限的数据尽可能对辅助网络的性能进行“压榨”,再用其指导主网络的训练,以“先富”带“后富”,有些类似知识蒸馏。
Weakly- and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation
Weakly- and Semi-Supervised Learning of a DCNN for Semantic Image Segmentation
成绩:
VOC 2012 val:65.1 (1.4k mask + 9k box)
本论文对比了三种给 Bounding Box 级的标注标记的方式:
- Bbox-Rect,直接将 bounding box 里的所有像素标记成相应 label。
- EM-Fixed,论文中提出的方法,即结合 bounding box 的信息以及模型的输出来确定 Segmentation Mask,ground truth 随着模型训练而不断调整。
- Bbox-Seg,将 bounding box 中间区域
的像素设定相应label,其它都设为背景,再使用 在部分 strong label 数据集上调节过的 CRF 进行对 mask 进行调整,作为 ground truth。
三者效果如下:

BoxSup: Exploiting Bounding Boxes to Supervise Convolutional Networks for Semantic Segmentation
BoxSup: Exploiting Bounding Boxes to Supervise Convolutional Networks for Semantic Segmentation
成绩:
voc2012 val: 63.5% (1.4k mask + 9k box)
本论文目标是使用较少的mask级数据辅助大量的Bound Box 级数据来提高SegNet的性能。本论文将90%的mask级数据替换成了Bounding Box数据,模型性能从 63.8 mIoU 只降到了 63.5%,效果不错。
本论文核心在于,对于Bounding Box级数据:
- 使用MCG(Multiscale Combinatorial Grouping)生成原始mask。
- 训练模型。
- 固定模型参数,生成mask,调整mask,目标是使mask与Bounding Box 的IoU 尽可能大。

详细结果:


Simple Does It: Weakly Supervised Instance and Semantic Segmentation
Simple Does It: Weakly Supervised Instance and Semantic Segmentation
成绩:
VOC 2012 val: 69.4% (weak)
本论文发现的最重要的一点就在于,即使使用 Bounding Box 作为 mask (如果有重叠,mask则设置为小物体的label)训练 SegNet,网络的输出也要比 Bounding Box 更加贴合 Ground Truth 的形状。那么在下一轮训练中是使用模型的输出作为 mask 的一种先验参考,将减少 Bounding Box 中 background 成分带来的噪音。第i轮模型作为第i+1轮训练的参考,如此迭代,这个方法称为 recursive training。原始版本称为方法 Naive。

在此之上,增加三个准则,则称为 方法 Box。
- Box 之外的 label 都设置为背景。
- 如果先验 mask 与Bounding Box IoU 小于 0.5,则重置为 Bounding Box。
- 输出边界用 DenseCRF 优化
如果在 Box 的基础上,只挑出中间的 20% mask 部分打上相应的 label,则称之为方法 Boxi。
另外还有使用 GrabCut+、GrabCut+的变种、MCG、MCG与GrabCut+交集 作为先验参考的方法。不赘述,效果如下:


总的来说,使用 MCG与GrabCut+交集作为先验的参考效果最好:


DeepLabv2+ResNet-101


不得不说效果相当好了。

Box-driven Class-wise Region Masking and Filling Rate Guided Loss for Weakly Supervised Semantic Segmentation
成绩:
VOC 2012 val:71.6% (1.4k mask + 9k box)
Box-driven Class-wise Region Masking and Filling Rate Guided Loss for Weakly Supervised Semantic Segmentation

本论文的目标是通过使用目标检测中使用的 bounding box 作为训练 data 进行弱监督学习。其关键在于尽可能移除 bounding box 不属于 foreground 的部分。为了达到这个目标,本论文有三个关键词:filling rate、BCM、FR Loss。
- 通过 Bounding Box 和 CRF 生成非监督的 Segmentation Mask,并且通过二者得到每一类的 filling rate,即属于该类的像素点数处于整个框的像素点数。
- BCM 模块生成 binary attention 的 feature map,该层使用 MSE Loss 进行监督学习。目标是 1. 中的Segmentation Mask。
- FR Loss 即对于每个框框中从大到小挑出前 filling rate*box pixels 个loss 进行反向传播。更进一步地,作者把每一类根据 filling rate 的大小 K-means 聚类成三个子类,这样就得到了更精细的结果。

Benchmark:

Weakly Supervised Semantic Image Segmentation with Self-correcting Networks
Weakly Supervised Semantic Image Segmentation with Self-correcting Networks
成绩:
VOC 2012 val:82.33% (1.4k mask + 9k box)
这个成绩有点高,甚至高于不少全监督的语义分割模型的成绩。个人认为有一个重要的原因在于在训练辅助网络时,输入不仅是图像,还有 Bounding Box 产生的 mask,这是一个十分强力的 attention,使得其仅用 200 张图片(包含 Bounding Box 和 Segmentation Mask)就达到了81.57% on VOC 2012 val 的 mean IoU。
辅助网络大体结构:

另外一个重要发现在于,VOC aug 9k 训练数据集中,存在着噪声,即 Ground Truth Mask 多标或者少标的情况,这应该是作者提出 self-correct 的动机。
总的来说,训练数据集分为两部分:
- 1.4k 张带 mask+bounding box 的数据F
- 9k 张只有 bounding box 的数据W
模型分为三部分:
- 主模型(使用 F+W 训练)
- 辅助模型(使用 F 训练)
- 自修正模块

辅助模型具有极高的performance,训练好之后当做类似 knowledge distillation 中的 teacher net,固定不动。而自修正模块作者设有两种:
- 线性修正,输出的 prediction 为主模型和辅助模型的线性组合,lp为主模型输出,lanc 为辅助模型输出:
2. 卷积修正,将主模型和辅助模型的输出cat后使用卷积处理后。其实线性修正即可看做参数不学习,人为设定的 depth-wise con1x1。

Benchmark,分数刷这么高,弱监督语义分割选手们纷纷表示参赛人数-1。

PS:
广告时间啦~
理工狗不想被人文素养拖后腿?不妨关注微信公众号:
