ps语义分割_BBox-Level 弱监督图像语义分割:引入先验、迭代训练、先富带后富。...

c1bf9a389228908f035bf77510a0ba79.png

总的来说,弱监督语义分割目前的主要思路在于:

  1. 后验(训练数据集)不够,先验(MCG、GrabCut)来凑。
  2. 利用模型本身的学习性对 label 迭代优化。
  3. 使用有限的数据尽可能对辅助网络的性能进行“压榨”,再用其指导主网络的训练,以“先富”带“后富”,有些类似知识蒸馏。

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 级的标注标记的方式:

  1. Bbox-Rect,直接将 bounding box 里的所有像素标记成相应 label。
  2. EM-Fixed,论文中提出的方法,即结合 bounding box 的信息以及模型的输出来确定 Segmentation Mask,ground truth 随着模型训练而不断调整。
  3. Bbox-Seg,将 bounding box 中间区域
    的像素设定相应label,其它都设为背景,再使用 在部分 strong label 数据集上调节过的 CRF 进行对 mask 进行调整,作为 ground truth。

三者效果如下:

6a8cb8d0c97a2429e02228dc0cb2488b.png

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级数据:

  1. 使用MCG(Multiscale Combinatorial Grouping)生成原始mask。
  2. 训练模型。
  3. 固定模型参数,生成mask,调整mask,目标是使mask与Bounding Box 的IoU 尽可能大。

c91cc66566ffa0055922e24bd55c7725.png

详细结果:

497597ac0f2cd8456053b1b9f61242a4.png

cd47b478300b439149a7a7113dbaa6f7.png

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。

251d361b101a692b136b3eb656f7a2b2.png

在此之上,增加三个准则,则称为 方法 Box。

  1. Box 之外的 label 都设置为背景。
  2. 如果先验 mask 与Bounding Box IoU 小于 0.5,则重置为 Bounding Box。
  3. 输出边界用 DenseCRF 优化

如果在 Box 的基础上,只挑出中间的 20% mask 部分打上相应的 label,则称之为方法 Boxi。

另外还有使用 GrabCut+、GrabCut+的变种、MCG、MCG与GrabCut+交集 作为先验参考的方法。不赘述,效果如下:

6b330dad48dc8c37e1083f843847d023.png

75d3814a71cebcd2e7db0590a7356e99.png

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

b5757a676725f7b9389934d5aeb85151.png

d17a30c42e75e4cd421c8ee1ac3991b5.png

DeepLabv2+ResNet-101

c744cee72e41cfc52e421faa246fcf6f.png

bb6fabd8ccbf32ec2500a9189c4c5759.png

不得不说效果相当好了。

21ea19d990861c5458cec25aa85f8efa.png

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

9863ed1fa3729793d3f9a8c1c57712ca.png

本论文的目标是通过使用目标检测中使用的 bounding box 作为训练 data 进行弱监督学习。其关键在于尽可能移除 bounding box 不属于 foreground 的部分。为了达到这个目标,本论文有三个关键词:filling rate、BCM、FR Loss。

  1. 通过 Bounding Box 和 CRF 生成非监督的 Segmentation Mask,并且通过二者得到每一类的 filling rate,即属于该类的像素点数处于整个框的像素点数。
  2. BCM 模块生成 binary attention 的 feature map,该层使用 MSE Loss 进行监督学习。目标是 1. 中的Segmentation Mask。
  3. FR Loss 即对于每个框框中从大到小挑出前 filling rate*box pixels 个loss 进行反向传播。更进一步地,作者把每一类根据 filling rate 的大小 K-means 聚类成三个子类,这样就得到了更精细的结果。

d8092c51d1bc2e9c19ece5ad7db79c8d.png

Benchmark:

ca1ab764f688f20d67b0cc9bfc7f7362.png

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。

辅助网络大体结构:

4064ff6d09719a7609889a3081583df7.png

另外一个重要发现在于,VOC aug 9k 训练数据集中,存在着噪声,即 Ground Truth Mask 多标或者少标的情况,这应该是作者提出 self-correct 的动机。

总的来说,训练数据集分为两部分:

  1. 1.4k 张带 mask+bounding box 的数据F
  2. 9k 张只有 bounding box 的数据W

模型分为三部分:

  1. 主模型(使用 F+W 训练)
  2. 辅助模型(使用 F 训练)
  3. 自修正模块

91c252b6251f1914fcf6f5541e391f01.png

辅助模型具有极高的performance,训练好之后当做类似 knowledge distillation 中的 teacher net,固定不动。而自修正模块作者设有两种:

  1. 线性修正,输出的 prediction 为主模型和辅助模型的线性组合,lp为主模型输出,lanc 为辅助模型输出:

2. 卷积修正,将主模型和辅助模型的输出cat后使用卷积处理后。其实线性修正即可看做参数不学习,人为设定的 depth-wise con1x1。

57acf2049ac34ee0ab0f479195ab47e0.png

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

b84a9dc186dbac2ba4eaa6539e12970e.png

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

a2fe95f39a95f659dd63826d90842b94.png

版权声明:本文为weixin_34413579原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。