cvpr 2024|从未标注数据中重生标注特征,用于半监督语义分割
bigegpt 2025-05-08 16:52 13 浏览
研究背景
随着深度学习在语义分割领域的应用日益广泛,对数据标注的需求也急剧增加。然而,高质量的像素级标注是一项耗时且成本高昂的任务。为了缓解这一问题,半监督语义分割(SSSS)方法被提出,该方法利用有限的标注数据和大量未标注数据来训练模型。然而,现有方法普遍存在标注数据主导训练过程的问题,导致未标注数据的伪标签质量不高,进而影响整体性能。
研究意义
本研究旨在解决半监督语义分割中标注数据主导训练过程的问题,通过从未标注数据中重生标注特征,提高伪标签的质量,进而提升模型的整体性能。该研究对于减少语义分割任务对标注数据的依赖、降低标注成本具有重要意义,并有望推动半监督学习在更多领域的应用。
文献综述
语义分割
语义分割是一项密集的预测任务,要求模型具有类别感知能力。近年来,基于视觉变换器(ViT)的方法在语义分割领域取得了显著进展,这些方法通过捕捉长距离依赖关系提高了分割性能。然而,在半监督设置下,这些方法由于具有较弱的归纳偏差且依赖于大量训练数据,因此难以取得与全监督学习相同的性能。
半监督语义分割
现有的半监督语义分割方法主要分为两类:基于教师-学生的框架和基于交叉伪监督的框架。这些方法通常将标注数据和未标注数据的训练过程分离,导致标注数据主导训练过程,未标注数据的伪标签质量不高。此外,一些研究探索了将ViT应用于半监督语义分割,但这些方法大多只是简单地将ViT作为CNN的补充,没有充分发挥ViT的潜力。
具体方法
本研究提出了一种名为AllSpark的方法,通过从未标注数据中重生标注特征来解决标注数据主导训练过程的问题。AllSpark方法的核心是一个通道级交叉注意力机制,该机制利用标注数据特征作为查询,未标注数据特征作为键和值,通过计算相似度矩阵来重建标注特征。为了进一步扩大未标注特征空间,研究还引入了一个语义记忆(S-Mem)来存储之前的未标注特征,并通过通道级语义分组策略来更新S-Mem。
图1:训练数据流对比
- 说明:图1展示了传统方法与AllSpark方法在训练数据流上的对比。(a) 传统方法:特点:标签数据和未标签数据的训练流是分开的。问题:标签数据主导训练过程,导致未标签数据生成的伪标签质量低,进而影响最终结果。(b) AllSpark方法:特点:通过未标签数据重生标签数据特征,使标签数据训练流中引入多样性。优势:缓解了标签数据主导的问题,有助于提升模型性能。
图2:AllSpark核心思想
- 说明:图2通过示意图展示了AllSpark的核心思想,即利用未标签数据的特征来重生标签数据的特征。过程:标签数据特征作为查询(Query)。未标签数据特征作为键(Key)和值(Value)。通过计算相似度矩阵,强调最相似的未标签数据特征通道来重构标签数据特征。结果:重生的标签数据特征既精确又具有多样性。
图3:AllSpark模块概述
- 说明:图3展示了AllSpark模块在一般分割模型中的位置及其组成部分。位置:AllSpark模块位于编码器和解码器之间。组成:通道交叉注意力:核心部分,用于利用未标签数据重生标签数据特征。语义记忆:存储之前的未标签数据特征,以扩大特征空间。通道语义分组策略:用于更新语义记忆,确保每个类别有足够的语义信息。
该公式定义了半监督语义分割的基本损失函数,包括监督损失(L_s)和无监督损失(L_u)。N_L 和 N_U 分别是标记数据和未标记数据的数量。L_{CE} 表示交叉熵损失,p_l^i 和 y^i 分别是标记数据的预测和真实标签,p_u^j 和 \hat{y}^j 分别是未标记数据的预测和伪标签。
公式2,在通道交叉注意力机制中,标记数据的隐藏特征 h_l 作为查询(q),未标记数据的隐藏特征 h_u 分别作为键(k)和值(v)。w_q, w_k, w_v 是对应的变换权重。
公式3,计算通道交叉注意力机制的输出。首先计算查询 q 和键 k 的点积,并通过实例归一化 ψ 和缩放因子 \sqrt{d_k} 进行归一化,然后应用 softmax 函数 σ 得到注意力权重,最后与值 v 相乘得到输出。
图4:语义记忆与通道语义分组
- 说明:图4详细展示了语义记忆(S-Mem)的结构和通道语义分组策略。语义记忆:结构:按类别划分的队列,存储每个类别的特征通道。作用:提供丰富的未标签数据特征,用于重生标签数据特征。通道语义分组策略:过程:计算未标签数据特征通道与概率图之间的相似度,根据相似度将通道分组并加入语义记忆的对应类别槽中。结果:确保语义记忆中每个类别都有足够的准确特征。
表1:PASCAL VOC 2012原始数据集上的比较
- 内容:该表展示了在PASCAL VOC 2012原始数据集上,不同方法在不同标注数据量(1/16、1/8、1/4、1/2和全量)下的mIoU(平均交并比)性能。
- 关键发现:AllSpark在所有标注数据量下均取得了最高的mIoU,表明其在不同标注数据稀缺程度下均能有效提升性能。相较于其他最先进的方法(如UniMatch),AllSpark在全量标注数据下提升了约2.12%的mIoU,显示出显著的性能优势。
表2:Cityscapes数据集上的比较
- 内容:该表比较了在Cityscapes数据集上,不同方法在不同标注数据量下的mIoU性能。
- 关键发现:AllSpark在所有标注数据量下均表现优异,且在全量标注数据下达到了81.39%的mIoU,超过了其他所有方法。相较于次优方法(如CFCG),AllSpark在全量标注数据下提升了约0.8%的mIoU。
表3:PASCAL VOC 2012增强数据集上的比较
- 内容:该表展示了在PASCAL VOC 2012增强数据集上,不同方法在不同标注数据量下的mIoU性能,同时包含了使用与U2PL相同划分方法的结果。
- 关键发现:AllSpark在所有划分协议下均取得了最高的mIoU,进一步证明了其有效性。在使用与U2PL相同的高质量标注数据时,AllSpark的性能增益更为显著,达到了约0.47%的平均mIoU提升。
表4:COCO数据集上的比较
- 内容:该表比较了在COCO数据集上,不同方法在不同标注数据量下的mIoU性能。
- 关键发现:AllSpark在所有划分协议下均超过了其他方法,显示了其在处理大规模和多样化数据集时的强大能力。在最稀缺的标注数据量下(1/512),AllSpark仍然实现了34.10%的mIoU,相较于次优方法(如LogicDiag)有约1.03%的提升。
图5:标签特征通道重生前后对比
- 说明:图5通过可视化对比了标签特征通道在通过AllSpark模块重生前后的变化。重生前:标签特征通道主要关注相似的区域。重生后:标签特征通道开始关注不同的对象或上下文,表现出更高的多样性和精确性。意义:这种变化有助于缓解标签数据主导的问题,提升模型的泛化能力。
图6:相似性引导的通道分组策略的有效性
- 内容:此图展示了使用相似性引导的通道分组策略(CSG)与盲目地将所有通道添加到语义记忆(S-Mem)中的比较。
- 解释:x轴:类别。y轴:被选中并添加到相应类别槽的通道数量。结果:使用CSG策略时,每个类别的通道数量更加均衡,且整体性能优于盲目添加通道的方法(如表5所示,CSG带来了0.79%/0.64%的性能提升)。
表5:PASCAL VOC 2012数据集上AllSpark组件的有效性
- 内容:该表分析了AllSpark中不同组件(通道级交叉注意力机制CCA、语义记忆S-Mem和通道语义分组策略CSG)对性能的影响。
- 关键发现:通道级交叉注意力机制是AllSpark的核心,它显著提升了基线方法的性能(约8.06%)。语义记忆和通道语义分组策略进一步提升了性能,分别带来了约0.85%和0.79%的mIoU增益。当所有组件结合使用时,AllSpark相较于基线方法提升了约9.70%的mIoU,证明了其各个组件的有效性和必要性。
图7:语义记忆的部分可视化
- 内容:此图展示了语义记忆(S-Mem)中存储的部分特征通道。
- 解释:每个图像表示一个通道。通过在未标记的训练数据上运行推理,可以将原始图像放在每个通道下方以便更好地可视化。整体而言,S-Mem存储了与类别槽相关的准确特征,不仅扩大了与当前标记数据相同类别的未标记特征空间,还包含了作为计算相似度矩阵时负样本的其他类别特征。
表6:不同分割骨干网络在PASCAL VOC 2012数据集上的消融实验
- 目的:验证AllSpark模块在不同分割骨干网络上的表现,以及与其他SOTA方法的对比。
- 结果:当使用ResNet101+DeepLabV3+作为骨干网络时,AllSpark的表现(77.92 mIoU)优于其他SOTA方法(如CCVC的74.40 mIoU,DGCL的77.14 mIoU,UniMatch的77.19 mIoU)。当切换到SegFormer-B4/B5作为骨干网络时,其他SOTA方法的性能有所下降,而AllSpark的性能也有所下降,但仍然优于其他方法。这表明AllSpark与更强的骨干网络结合时仍能保持优势,但CNN骨干网络由于其有限的感受野,在AllSpark框架下表现较差。
图8:Transformer与CNN特征通道的比较
- 内容:此图比较了Transformer和CNN在处理大型对象(如汽车)时的注意力图。
- 解释:Transformer:能够捕捉到更广泛的上下文信息,注意力分布更加均匀。CNN:注意力图往往优先于少数显著的局部部分(如车轮),这可能导致在处理由AllSpark模块处理特征时,错误地查询到属于不同对象相似部分的通道(如飞机起落架的车轮),从而引入不必要的噪声和性能下降。
相关推荐
- Redis集群对比:主从复制、哨兵模式、Cluster一文看懂所有优缺点
-
在分布式系统中,Redis作为高性能的内存数据库,其集群方案的选择直接影响到系统的稳定性、可用性和扩展性。本文将全面对比Redis的三种主流集群方案:主从复制、哨兵模式和Cluster模式,帮助开发者...
- redis的主从复制,读写分离,主从切换
-
当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个sl...
- # Redis 入门到精通(九)-- 主从复制(3)
-
#Redis入门到精通(九)--主从复制(3)##一、redis主从复制-常见问题(1)###1、伴随着redis系统的运行,master的数据量会越来越大,一旦master重启...
- redis - 主从复制(Redis主从复制时序图)
-
1引言在上一篇文章中,我们了解了Redis两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AO...
- # Redis 入门到精通(九)-- 主从复制(2)
-
#Redis入门到精通(九)--主从复制(2)##一、redis主从复制--数据同步阶段注意事项###1、数据同步阶段master说明1)如果master数据量巨大,数据同步阶段应...
- Redis主从复制(redis主从复制主节点挂了)
-
介绍Redis有两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AOF文件恢复内存中的数据。不过...
- 深入解析 Redis 集群的主从复制实现方式
-
在互联网大厂的后端开发领域,Redis作为一款高性能的内存数据库,被广泛应用于缓存、消息队列等场景。而Redis集群中的主从复制机制,更是保障数据安全、实现读写分离以及提升系统性能的关键所在。今...
- Redis主从架构详解(redis主从架构高可用如何实现)
-
Redis主从架构搭建Redis主节点配置创建主节点目录(/opt/redis-master),复制redis.conf到该目录下,redis.conf配置项修改#后台启动daemonizeyes...
- 抖音“四大包塘战神”:承包了全网的快乐
-
在抖音钓鱼垂类领域,"包塘战神"军团正掀起一场黑色幽默风暴。空军华、大表坑、李赔光、透心良四位创作者,以承包鱼塘为舞台,用连续翻车的钓鱼直播构筑起流量奇观。当钓鱼佬在抖音集体转型喜剧人...
- ORACLE 11G RAC 安装-通过VM配置共享磁盘
-
简介:在自己的电脑上通过VM软件搭建Oracle11GRAC,通过修改VM的参数文件来实现磁盘共享!目标:搭建RAC环境实现:使用VMwareWorkstation8.0.0+ORACLE...
- Linux操作系统安全配置(linux系统安全配置包括)
-
一、服务相关命令systemctlenable服务名#开机自启动systemctldisable服务名#禁用开机自启动systemctlstop服务名#停止服务systemctls...
- 关于Linux性能调优中网络I/O的一些笔记
-
写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,i...
- 从 Sonatype Nexus Repository Manager 迁移到 Artifactory
-
1.Nexus1.1下载下载链接:https://help.sonatype.com/repomanager3/product-information/download/download-archiv...
- Ubuntu20安装zabbix5.0企业监控系统亲测教程
-
前言示例主机:zabbix10.0.100.10,将安装在UbuntuServer上教程说明:因使用官方教程无法安装成功,所以本教程与官方教程有所不同安装前提:已安装UbuntuServer2...
- Linux内核设计与实现—进程管理(linux内核程序设计)
-
进程进程就是处于执行期的程序(目标码存放在某种存储介质上)。进并不仅仅局限于一段可执行程序代码(Unix称其为代码段,textsection)。通常进程还要包含其他资源,像打开的文件,挂起的信号,...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)