在这里和大家分享一下我们被CVPR 2023录用的工作"Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation"。在本工作中,我们重新审视了半监督语义分割中的“强弱一致性”方法。我们首先发现,最基本的约束强弱一致性的方法FixMatch[1](proposed three years ago in 2020)即可取得与当前SOTA相当的性能。受此启发,我们进一步拓展了FixMatch的扰动空间,以及利用双路扰动更充分地探索原扰动空间。
我们最终的方法UniMatch十分简单有效,在自然图像 (Pascal VOC, Cityscapes, COCO),遥感影像变化检测 (WHU-CD, LEVIR-CD),以及医学影像 (ACDC)上均取得了远远优于以往方法的结果。我们开源了所有场景下的代码和训练日志,以方便大家更好的复现,也希望能作为大家的baseline。
文章链接(此为CVPR camera-ready版本,和arXiv-V1相比,我们增加并更新了部分实验结果):
https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2208.09910
代码及实验日志链接:
https://link.zhihu.com/?target=https%3A//github.com/LiheYoung/UniMatch
我们也整理了一份半监督语义分割的awesome list:
https://link.zhihu.com/?target=https%3A//github.com/LiheYoung/UniMatch/blob/main/docs/SemiSeg.md
Background
半监督语义分割希望利用尽可能少的有标注图像以及大量的无标注图像来学得一个较好的分割模型。其中,对有标注图像的学习一般类似于全监督语义分割(计算预测结果与人工标注之间的交叉熵损失),问题的关键在于如何利用无标注图像。
Observations
当把上述十分简单的FixMatch复现到半监督语义分割中时,我们发现在多个settings上,FixMatch都可以取得和当前的SOTA方法接近甚至明显更优的结果,对比结果如下:
于是我们进一步对FixMatch的核心模块,即强扰动部分,进行了消融实验,如下表所示。我们发现在半监督语义分割任务中,强扰动对于FixMatch也至关重要。我们默认采用的强扰动包括color jitter, blur, grayscale以及CutMix,当移除所有的这些强扰动时 (w/o any SP),FixMatch性能变得极差;此外,之前的一些方法如CPS[3]仅采用CutMix这单一的强扰动策略,然而我们发现当只用CutMix时 (w/ CutMix),相比于用全部的强扰动 (w/ whole SP),性能也有明显的下降。
FixMatch中强扰动 (Strong Perturbations, SP)的重要性
Our UniMatch
Unified Perturbations (UniPerb)
根据上述结果,强扰动可以带来极大的性能增益。然而,FixMatch只在输入空间(图像)上进行了强扰动,因此我们提出进一步去扩展FixMatch的扰动空间,增加了一个训练分支来进行特征空间上的强扰动,如下图(a)所示。
需要说明的是,也有一些工作如PS-MT[4]同时进行了图像和特征上的强扰动,然而他们将这些强扰动施加在了同一个分支中,导致学习的难度过大;而我们将不同性质的强扰动分离到不同的分支分别进行学习,我们在消融实验中说明了这种做法的优越性。此外我们也展示了相比于一些特征扰动的工作如VAT[5],我们的特征Dropout策略更简单有效。
Dual-stream Perturbations (DusPerb)
Overall UniMatch
Experiments
与SOTA方法的比较:Pascal VOC 2012
Pascal VOC 2012中一共包括10,582张训练图像,覆盖21个类别。其中有1,464张图像的标注质量比较高。因此有三种不同的选择标注图像的策略:(1)从1,464张精标注图像中选择;(2)从10,582张图像中随机选择;(3)优先从1,464张精标注中选择,如果需要更多的有标注图像,则从剩余的粗标注图像中选择。结果如下所示,在各种选择策略、数据划分、backbone下,我们的方法均取得了最优的性能。
第一种数据划分下的结果:
第二种(w/o )、第三种(w/ )数据划分下的结果:
与SOTA方法的比较:Cityscapes
Cityscapes中一共包含2,975张训练图像,覆盖19个类别。
与SOTA方法的比较:COCO
遵循已有工作PseudoSeg[8],我们这里采用的是COCO-Things数据集(不包含Stuff类别),一共包含81个类别,118,287张训练图像。