以 CVPR2023 的半监督语义分割工作 UniMatch 为例,聊聊一篇顶会论文的idea是如何逐步挖掘出来的!

本文涉及的产品
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
语种识别,语种识别 100万字符
简介: 以 CVPR2023 的半监督语义分割工作 UniMatch 为例,聊聊一篇顶会论文的idea是如何逐步挖掘出来的!

640.png


Title: Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation

Paper: https://arxiv.org/abs/2208.09910

Code: https://github.com/LiheYoung/UniMatch

半监督语义分割中的 NO.1,横扫各大榜单!

导读

今天主要跟各位小伙伴分享一篇最近被CVPR2023录用的工作UniMatch,该工作是通过从分析该领域中最朴素的方法FixMatch(可以理解为监督学习语义分割任务中的U-Net方法)开始,一步步探讨和挖掘出最终的idea,其思考和分析过程十分值得大家借鉴和学习,下面让我们正式开始今天的学习之旅。

引言

在本工作中,我们重新审视了半监督语义分割中的“强弱一致性”方法。我们发现,最基本的约束强弱一致性的方法FixMatch[1]即可取得与当前SOTA相当的性能。受此启发,我们进一步拓展了FixMatch的扰动空间,以及利用双路扰动更充分地探索原扰动空间。

UniMatch十分简单有效,在多个场景下均表现非常优异,包括:

  • 自然图像(Pascal VOC, Cityscapes, COCO)
  • 遥感影像变化检测(WHU-CD, LEVIR-CD)
  • 医学影像(ACDC)

上均取得了远远优于以往方法的结果。我们开源了所有场景下的代码和训练日志,以方便大家更好的复现,也希望能作为大家的baseline

为了更好的促进领域的发展,我们也整理了一份半监督语义分割的awesome list[2],欢迎关注!

背景

半监督语义分割旨在利用尽可能少的有标注图像以及大量的无标注图像来学得一个较好的分割模型。其中,对有标注图像的学习一般类似于全监督语义分割,如计算预测结果与人工标注之间的交叉熵损失,问题的关键在于如何利用无标注图像

在半监督学习中,FixMatch是一种非常简单有效的利用无标注图像的框架,其核心思想就是去约束“强弱一致性”,示意图如下所示:

约束“强弱一致性”的FixMatch框架

具体来说,对于一张原始的无标注图像  ,首先,我们对其进行弱扰动得到 ,接着再进行强扰动,获得 ;其次,如图所示,我们将  和  分别输入网络得到对应的预测结果  和 ,此时由于  更容易预测而  更有助于学习,因此,我们将  作为  的伪标签,监督  的训练。

这里需要注意的几个点是:

  1. 弱扰动:可以简单理解为较弱的数据增强,如常规的resizecropflip这些;
  2. 强扰动:就是较强的数据增强,如color jitterblurgrayscaleCutMix等;
  3. 由于受强扰动作用导致其附加的“信息”更多,因此其信息量必然也更丰富,所以有助于学习。

动机

当把上述十分简单的FixMatch复现到半监督语义分割中时,我们发现在多个settings上都可以取得和当前的SOTA方法接近甚至明显更优的结果,对比结果如下:

对比FixMatch和其他的SOTA方法

好家伙,跟U-Net简直一个道理,只要稍微调整下精度立马蹭蹭蹭上来,果然是大道至简!

于是这启发了我们进一步对FixMatch的核心模块,即强扰动部分,进行了消融实验:

FixMatch中强扰动(Strong Perturbations, SP)的重要性

如上表所示,在半监督语义分割任务中,强扰动对于FixMatch也至关重要。我们默认采用的强扰动包括color jitter, blur, grayscale以及CutMix。可以发现,当移除所有的这些强扰动时(w/o any SP),FixMatch 性能变得极差;此外,之前的一些方法如CPS[3]仅采用CutMix这单一的强扰动策略,然而我们发现当只用 CutMix 时(w/ CutMix),相比于用全部的强扰动(w/ whole SP),性能也有明显的下降。

可以这么理解,在半监督学习任务中,未标记的图像数量远远大于标记的图像数量。因此,正如我们上面所说的,如何更好地利用未标记的图像数据是半监督学习任务的一个关键问题。数据增强是一种常见的技术,它可以通过对图像施加各种随机变换来生成更多的训练数据。对于未标记的图像数据,数据增强可以帮助模型学习更加鲁棒的特征,提高泛化性能。

具体一点,体现在本文所提到的FixMatch方法中,未标记的图像数据被施加了强烈的数据增强,如CutMix、色彩扰动等。这些数据增强可以引入更多的噪声和变化,迫使模型学习更加鲁棒的特征。通过强烈的数据增强,未标记的图像数据可以被转化为与标记的图像数据更加相似的数据分布,从而增强了半监督学习的能力。此外,强烈的数据增强也可以防止模型对噪声的过度拟合,从而提高了泛化性能。因此,大家可以理解为强数据增强增加了模型学习的难度,从而促使模型学习更加鲁棒的特征,提高了泛化性能。

方法

Unified Perturbations(UniPerb)

如上所述,强扰动可以带来极大的性能增益。然而,FixMatch只在输入空间即图像层面上进行强扰动,因此我们提出进一步去扩展FixMatch的扰动空间,例如增加一个训练分支来进行特征空间上的强扰动如何?如下图(a)所示:

wocomponents of UniMatch

具体地,对于弱扰动图像 ,同FixMatch一样,先经过一个Encoder进行编码提取特征信息;随后,在FixMatch的基础上,我们增加额外一个步骤,即通过将编码过的特征进行一次强扰动之后再输入到Decoder,输出预测结果 。

如此一来,相比于FixMatch,我们多了一个可学习的特征强扰动分支 。这里,$p^w$ 便可以同时作为  和  的伪标签,用于监督这两个分支的训练。值得一提的是,我们采用的特征扰动策略极其简单,仅需对特征进行通道维度的Dropout。具体实现上,只需调用Pytorchnn.Dropout2d(p)函数,其中p=0.5

来到这里,或许认真思考的小伙伴同笔者一样心中难免会有几个疑问:

  1. 为什么强扰动的方式是直接进行通道丢弃,那其它扰动方式呢?
  2. 有没有对比PS-MT,或者结合PS-MT和本文方法一起尝试?
  3. 当加入的标签数据达到什么量级后,本文方法会出现性能瓶颈?

此外,需要说明的是,也有一些工作如PS-MT[4]同时进行了图像特征层面上的强扰动,然而他们将这些强扰动施加在了同一个分支中,导致学习的难度过大。相反,本文方法将不同性质的强扰动分离到不同的分支分别进行学习,后续的消融实验也充分说明了这种做法的优越性。最后,我们也展示了相比于一些特征扰动的工作如VAT[5],本文的特征扰动策略即Dropout更简单有效。

PS-MT

来到这里,我们是否可以拓展下思路,本文是对编码层的最后一层直接进行强扰动引入一个可学习分支。那么,结合深监督和分层机制的思想,我们是否可以引入一个类似于多层的可学习分支出来,不同层级的特征其语义性和空间细节信息丰富程度均不同,如此一来是否可以促进网络更好的学习,又或者是引入更多的“噪声”?如果引入的话,是否可以考虑对不同分支施加不同的权重,让网络学习有所侧重?等等,大家可以继续深入的思考。

Dual-stream Perturbations(DusPerb)

既然图像上的强扰动如此有效,我们希望尽可能充分地利用。同时,我们发现一些自监督学习和半监督学习的方法如SwAV[6]ReMixMatch[7]进行了多分支的扰动并约束一致性,于是我们尝试将这种思想引入到半监督语义分割中。如上图(b)所示,我们对  进行两次独立的强扰动得到  和 (由于强扰动是随机的, )。紧接着,  ,  及  被送入网络以分别得到  ,  及  。类似于FixMatch,我们用  作为  和  的监督信号。

同样地,既然两个强扰动分支能产生增益,那再往上增加到什么程度会出现瓶颈?

Overall UniMatch

结合上述的两个模块UniPerbDusPerb,我们可以得到最终的UniMatch框架,如下图所示。针对无标签图像,UniMatch 一共包括四个前向传播分支,其中有一个“干净”的分支来产生伪标签、一个特征层面的强扰动分支(作用于  的特征上),以及两个图像层面的强扰动分支(无特征扰动)。其中后三个分支用于网络的训练(此图中我们省略了有标签图像的训练分支)。

UniMatch框架

实验

Pascal VOC 2012

先简单介绍下本文中Pascal VOC 2012中一共包括10,582张训练图像,覆盖21个类别。其中有1,464张图像的标注质量比较高。因此有三种不同的选择标注图像的策略:

  1. 从1,464张精标注图像中选择;
  2. 从10,582张图像(包含非精细标注的粗糙标签)中随机选择;
  3. 优先从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[8],我们这里采用的是COCO-Things数据集(不包含Stuff类别),一共包含81个类别,118,287张训练图像。

半监督遥感影像变化检测

该场景要求通过同一地点、但不同时间的遥感影像来识别出变化的地块,可以大致看作一个二分类的分割问题。通常的框架如下所示,利用编码器分别提取两张影响的特征,之后对他们特征相减后再送入解码器进行预测。

这里,我们在两个主流数据集WHU-CDLEVIR-CD上做了验证,尝试了PSPNetDeepLabv3+两种网络结构,在所有的数据划分下都取得了显著提升:

注:遥感影像变化检测,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的优越性:

Pascal VOC 2012

可以看出,UniPerb和DusPerb相对于FixMatch都有显著提升,最终UniMatch取得了最优结果。

CityscapesCOCO

双路强扰动

接下来我们简单验证下双路强扰动(DusPerb)的增益是non-trivial的,并不等价于双倍的batch size或双倍的训练epochs:

对比DusPerb和FixMatch w/ 2x Batch Size或FixMatch w/ 2x Epochs

隔离扰动分支的必要性

验证将不同特性的强扰动分离到不同的分支的必要性:

其中,Hybrid View表示将图像强扰动和特征强扰动施加在同一个前向传播分支上,而我们的UniPerb分离了这两个分支

特征扰动策略

最后,我们再来验证下不同特征扰动策略对最终精度的影响:

其中VAT表示Virtual Adversarial Training

总结

在本工作中,我们展示了FixMatch迁移到半监督语义分割任务中的有效性。我们通过消融实验验证了强扰动的重要性,并进一步通过特征强扰动扩展了FixMatch的扰动空间,以及通过双路强扰动来更充分地探索原扰动空间。所提方法十分简单有效,在自然图像、遥感影像变化检测以及医学图像分割中都取得了最优的性能。

目录
相关文章
|
2月前
|
自然语言处理
杨笛一团队最新百页论文:首次统计学上证明,LLM生成的idea新颖性优于人类
【10月更文挑战第12天】斯坦福大学杨笛一团队发布百页论文,首次通过统计学方法证明大型语言模型(LLMs)在生成研究想法的新颖性上优于人类专家。研究招募100多名NLP专家进行盲评,结果显示LLM在新颖性方面显著胜出,但在可行性上稍逊。研究揭示了LLM在科研创新中的潜力与局限。
48 2
|
6月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
102 4
|
5月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
236 0
|
5月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
119 2
|
6月前
|
Linux 开发工具 Windows
在WSL2中安装IntelliJ IDEA开发工具
在WSL2中安装IntelliJ IDEA开发工具
634 2
|
6月前
|
IDE Java Scala
IntelliJ IDEA 2023.3 最新变化2
IntelliJ IDEA 2023.3 最新变化
|
5月前
|
缓存 Java Maven
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
222 0
|
5月前
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
58 0
|
6月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之如何在本地IDE(如IntelliJ IDEA)中配置MaxCompute (mc) 的任务和调试SQL
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
IDE Java 项目管理
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
111 3