Title: Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation
Paper: https://arxiv.org/abs/2208.09910
Code: https://github.com/LiheYoung/UniMatch
导读
今天主要跟各位小伙伴分享一篇最近被CVPR2023
录用的工作UniMatch
,该工作是通过从分析该领域中最朴素的方法FixMatch
(可以理解为监督学习语义分割任务中的U-Net
方法)开始,一步步探讨和挖掘出最终的idea,其思考和分析过程十分值得大家借鉴和学习,下面让我们正式开始今天的学习之旅。
引言
在本工作中,我们重新审视了半监督语义分割中的“强弱一致性”方法。我们发现,最基本的约束强弱一致性的方法FixMatch即可取得与当前SOTA
相当的性能。受此启发,我们进一步拓展了FixMatch
的扰动空间,以及利用双路扰动更充分地探索原扰动空间。
UniMatch
十分简单有效,在多个场景下均表现非常优异,包括:
- 自然图像(
Pascal VOC, Cityscapes, COCO
) - 遥感影像变化检测(
WHU-CD, LEVIR-CD
) - 医学影像(
ACDC
)
上均取得了远远优于以往方法的结果。我们开源了所有场景下的代码和训练日志,以方便大家更好的复现,也希望能作为大家的baseline
。
为了更好的促进领域的发展,我们也整理了一份半监督语义分割的awesome list,欢迎关注!
背景
半监督语义分割旨在利用尽可能少的有标注图像以及大量的无标注图像来学得一个较好的分割模型。其中,对有标注图像的学习一般类似于全监督语义分割,如计算预测结果与人工标注之间的交叉熵损失,问题的关键在于如何利用无标注图像。
在半监督学习中,FixMatch
是一种非常简单有效的利用无标注图像的框架,其核心思想就是去约束“强弱一致性”,示意图如下所示:
具体来说,对于一张原始的无标注图像 x u x^u xu ,首先,我们对其进行弱扰动得到 x w x^w xw,接着再进行强扰动,获得 x s x^s xs;其次,如图所示,我们将 x w x^w xw 和 x s x^s xs 分别输入网络得到对应的预测结果 p w p^w pw 和 p s p^s ps,此时由于 p w p^w pw 更容易预测而 p s p^s ps 更有助于学习,因此,我们将 p w p^w pw 作为 p s p^s ps 的伪标签,监督 x s x^s xs 的训练。
这里需要注意的几个点是:
- 弱扰动:可以简单理解为较弱的数据增强,如常规的
resize
、crop
、flip
这些; - 强扰动:就是较强的数据增强,如
color jitter
、blur
、grayscale
、CutMix
等; - p s p^s ps 由于受强扰动作用导致其附加的“信息”更多,因此其信息量必然也更丰富,所以有助于学习。
动机
当把上述十分简单的FixMatch
复现到半监督语义分割中时,我们发现在多个settings
上都可以取得和当前的SOTA
方法接近甚至明显更优的结果,对比结果如下:
好家伙,跟
U-Net
简直一个道理,只要稍微调整下精度立马蹭蹭蹭上来,果然是大道至简!
于是这启发了我们进一步对FixMatch
的核心模块,即强扰动部分,进行了消融实验:
如上表所示,在半监督语义分割任务中,强扰动对于FixMatch
也至关重要。我们默认采用的强扰动包括color jitter
, blur
, grayscale
以及CutMix
。可以发现,当移除所有的这些强扰动时(w/o any SP),FixMatch 性能变得极差;此外,之前的一些方法如CPS仅采用CutMix
这单一的强扰动策略,然而我们发现当只用 CutMix 时(w/ CutMix),相比于用全部的强扰动(w/ whole SP),性能也有明显的下降。
可以这么理解,在半监督学习任务中,未标记的图像数量远远大于标记的图像数量。因此,正如我们上面所说的,如何更好地利用未标记的图像数据是半监督学习任务的一个关键问题。数据增强是一种常见的技术,它可以通过对图像施加各种随机变换来生成更多的训练数据。对于未标记的图像数据,数据增强可以帮助模型学习更加鲁棒的特征,提高泛化性能。
具体一点,体现在本文所提到的
FixMatch
方法中,未标记的图像数据被施加了强烈的数据增强,如CutMix
、色彩扰动等。这些数据增强可以引入更多的噪声和变化,迫使模型学习更加鲁棒的特征。通过强烈的数据增强,未标记的图像数据可以被转化为与标记的图像数据更加相似的数据分布,从而增强了半监督学习的能力。此外,强烈的数据增强也可以防止模型对噪声的过度拟合,从而提高了泛化性能。因此,大家可以理解为强数据增强增加了模型学习的难度,从而促使模型学习更加鲁棒的特征,提高了泛化性能。
方法
Unified Perturbations(UniPerb)
如上所述,强扰动可以带来极大的性能增益。然而,FixMatch
只在输入空间即图像层面上进行强扰动,因此我们提出进一步去扩展FixMatch
的扰动空间,例如增加一个训练分支来进行特征空间上的强扰动如何?如下图(a)所示:
具体地,对于弱扰动图像
x
w
x^w
xw,同FixMatch
一样,先经过一个Encoder
进行编码提取特征信息;随后,在FixMatch
的基础上,我们增加额外一个步骤,即通过将编码过的
x
w
x^w
xw特征进行一次强扰动之后再输入到Decoder
,输出预测结果
p
f
p
p^{fp}
pfp。
如此一来,相比于FixMatch
,我们多了一个可学习的特征强扰动分支
x
w
→
p
f
p
x^w \rightarrow p^{fp}
xw→pfp。这里,$p^w$
便可以同时作为
p
f
p
p^{fp}
pfp 和
p
s
p^{s}
ps 的伪标签,用于监督这两个分支的训练。值得一提的是,我们采用的特征扰动策略极其简单,仅需对特征进行通道维度的Dropout
。具体实现上,只需调用Pytorch
中nn.Dropout2d(p)
函数,其中p=0.5
。
来到这里,或许认真思考的小伙伴同笔者一样心中难免会有几个疑问:
- 为什么强扰动的方式是直接进行通道丢弃,那其它扰动方式呢?
- 有没有对比PS-MT,或者结合PS-MT和本文方法一起尝试?
- 当加入的标签数据达到什么量级后,本文方法会出现性能瓶颈?
此外,需要说明的是,也有一些工作如PS-MT同时进行了图像和特征层面上的强扰动,然而他们将这些强扰动施加在了同一个分支中,导致学习的难度过大。相反,本文方法将不同性质的强扰动分离到不同的分支分别进行学习,后续的消融实验也充分说明了这种做法的优越性。最后,我们也展示了相比于一些特征扰动的工作如VAT,本文的特征扰动策略即Dropout
更简单有效。
来到这里,我们是否可以拓展下思路,本文是对编码层的最后一层直接进行强扰动引入一个可学习分支。那么,结合深监督和分层机制的思想,我们是否可以引入一个类似于多层的可学习分支出来,不同层级的特征其语义性和空间细节信息丰富程度均不同,如此一来是否可以促进网络更好的学习,又或者是引入更多的“噪声”?如果引入的话,是否可以考虑对不同分支施加不同的权重,让网络学习有所侧重?等等,大家可以继续深入的思考。
Dual-stream Perturbations(DusPerb)
既然图像上的强扰动如此有效,我们希望尽可能充分地利用。同时,我们发现一些自监督学习和半监督学习的方法如SwAV和ReMixMatch进行了多分支的扰动并约束一致性,于是我们尝试将这种思想引入到半监督语义分割中。如上图(b)所示,我们对
x
w
x^w
xw 进行两次独立的强扰动得到
x
s
1
x^{s_1}
xs1 和
x
s
2
x^{s_2}
xs2(由于强扰动是随机的,
x
s
1
≠
x
s
2
x^{s_1} \neq x^{s_2}
xs1=xs2)。紧接着,
x
w
x^w
xw ,
x
s
1
x^{s_1}
xs1 及
x
s
2
x^{s_2}
xs2 被送入网络以分别得到
p
w
p^w
pw ,
p
s
1
p^{s_1}
ps1 及
p
s
2
p^{s_2}
ps2 。类似于FixMatch
,我们用
p
w
p^w
pw 作为
p
s
1
p^{s_1}
ps1 和
p
s
2
p^{s_2}
ps2 的监督信号。
同样地,既然两个强扰动分支能产生增益,那再往上增加到什么程度会出现瓶颈?
Overall UniMatch
结合上述的两个模块UniPerb
和DusPerb
,我们可以得到最终的UniMatch
框架,如下图所示。针对无标签图像,UniMatch 一共包括四个前向传播分支,其中有一个“干净”的分支来产生伪标签、一个特征层面的强扰动分支(作用于
x
w
x^w
xw 的特征上),以及两个图像层面的强扰动分支(无特征扰动)。其中后三个分支用于网络的训练(此图中我们省略了有标签图像的训练分支)。
实验
Pascal VOC 2012
先简单介绍下本文中Pascal VOC 2012
中一共包括10,582张训练图像,覆盖21个类别。其中有1,464张图像的标注质量比较高。因此有三种不同的选择标注图像的策略:
- 从1,464张精标注图像中选择;
- 从10,582张图像(包含非精细标注的粗糙标签)中随机选择;
- 优先从1,464张精标注中选择,如果需要更多的有标注图像,则从剩余的粗标注图像中选择。
实验结果如下所示,在各种选择策略、数据划分、backbone
下,本文方法均取得了最优的性能:
注:Pascal VOC 2012. 表头中的92, 183等表示有标签图像的数量,SupBaseline 表示只利用有标签图像的结果
注:Pascal VOC 2012. 其中表头中的1/16, 1/8, 1/4表示有标签图像的比例,321和513表示训练图像的分辨率
Cityscapes
Cityscapes
中一共包含2,975张训练图像,覆盖19个类别。
COCO
遵循已有工作PseudoSeg,我们这里采用的是COCO-Things数据集(不包含Stuff类别),一共包含81个类别,118,287张训练图像。
半监督遥感影像变化检测
该场景要求通过同一地点、但不同时间的遥感影像来识别出变化的地块,可以大致看作一个二分类的分割问题。通常的框架如下所示,利用编码器分别提取两张影响的特征,之后对他们特征相减后再送入解码器进行预测。
这里,我们在两个主流数据集WHU-CD
和LEVIR-CD
上做了验证,尝试了PSPNet
和DeepLabv3+
两种网络结构,在所有的数据划分下都取得了显著提升:
注:遥感影像变化检测,WHU-CD和LEVIR-CD数据集。单元格中的两个数据分别表示changed-class IoU和overall accuracy。表头中的5%, 10%等表示有标签图像的比例
半监督医学影像分割
最后,我们还在主流的医学影像分割数据集ACDC
上做了验证,尝试了仅用1/3/7
个标注的病例。
从上述表格结果可以明显地看出,当且仅用1个标注case
时,UniMatch
即可远远超过其他利用3
个标注cases
的方法!
UniMatch与FixMatch相比的优越性
下面我们在三个主流的自然场景数据集Pascal VOC
, Cityscapes
, COCO
上都验证了UniMatch
相比于FixMatch
的优越性:
可以看出,UniPerb和DusPerb相对于FixMatch都有显著提升,最终UniMatch取得了最优结果。
双路强扰动
接下来我们简单验证下双路强扰动(DusPerb)的增益是non-trivial
的,并不等价于双倍的batch size
或双倍的训练epochs
:
隔离扰动分支的必要性
验证将不同特性的强扰动分离到不同的分支的必要性:
其中,Hybrid View
表示将图像强扰动和特征强扰动施加在同一个前向传播分支上,而我们的UniPerb
分离了这两个分支
特征扰动策略
最后,我们再来验证下不同特征扰动策略对最终精度的影响:
其中VAT
表示Virtual Adversarial Training
。
总结
在本工作中,我们展示了FixMatch
迁移到半监督语义分割任务中的有效性。我们通过消融实验验证了强扰动的重要性,并进一步通过特征强扰动扩展了FixMatch
的扰动空间,以及通过双路强扰动来更充分地探索原扰动空间。所提方法十分简单有效,在自然图像、遥感影像变化检测以及医学图像分割中都取得了最优的性能。
此外,我们也有另外几个半监督语义分割相关的工作被CVPR
录用,大家可以关注一波:
- [CVPR 2022] ST++: Make Self-training Work Better for Semi-supervised Semantic Segmentation [Paper] [Code]
- [CVPR 2023] Augmentation Matters: A Simple-yet-Effective Approach to Semi-supervised Semantic Segmentation [Paper] [Code]
- [CVPR 2023] Instance-specific and Model-adaptive Supervision for Semi-supervised Semantic Segmentation [Paper] [Code]
如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您关注有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!欢迎添加小编微信号: cv_huber,备注"CSDN",加入 CVHub 官方学术&技术交流群,一起探讨更多有趣的话题!