【弱监督语义分割】AllSpark:从transformer中的未标记特征重生标记特征,用于半监督语义分割

AllSpark: Reborn Labeled Features from Unlabeled in Transformer for Semi-Supervised Semantic Segmentation

摘要:

        目前最先进的方法是用真实标签训练标注数据,用伪标签训练未标注数据。然而,这两个训练流程是分开的,这就使得标注数据在训练过程中占据主导地位,从而导致伪标签的质量低下,并因此产生次优结果。为了缓解这一问题,我们提出了 AllSpark ,它利用信道交叉注意力机制从未标明的特征中重新生成标明的特征。我们进一步引入了语义记忆和通道语义分组策略,以确保未标记的特征充分代表已标记的特征。AllSpark 为 SSSS 的架构级设计而非框架级设计提供了新的思路,从而避免了日益复杂的训练流水线设计。它还可以被视为一个灵活的瓶颈模块,可以无缝集成到基于转换器的通用分割模型中。

介绍:

        大多数最先进的 SSSS 方法 [23, 24, 26, 31, 50] 都基于伪标签 [22, 34] 方案,即根据模型预测为未标签数据分配伪标签。然后使用这些伪标签数据对模型进行迭代训练,就像使用已标记的示例一样。根据标注数据和未标注数据的训练流程,目前的先进技术主要可分为两类:(1) 连续式、最有代表性的是以教师和学生为基础的框架[17, 20, 36, 44, 45, 56]。首先用标注数据进行训练,然后用指数移动平均值更新教师模型。(2) 并行,以 CPS(交叉伪监督)为代表[6, 23, 46, 50],即在一个小批量内将已标记数据与未标记数据串联起来,模型通过一致性正则化同时优化这两种数据流。

        如图 1(a) 所示,这些最先进方法的一个主要特点是将标注数据和非标注数据的训练流程分开。由于标注数据带有标签,因此训练流的分离使得标注数据在训练过程中占据主导地位;见图 1(c)。然而,这些方法都有一个共同的重大缺陷:用于为未标记图像生成伪标签的模型受到有限的标记样本集的严重影响,从而导致伪标签质量低下,结果不尽人意。遗憾的是,以往的研究忽略了这一重要观察结果。

        为此,我们提出了一种新颖的方法:我们不直接在已标注样本上进行训练,而是利用未标注样本生成已标注特征(如图 1(b) 所示)。这种方法的基本原理是,已标注数据远远少于未标注数据,通过从未标明数据中重新生成已标注特征,我们在已标注数据流中引入了多样性从而创造了更具挑战性的学习环境。标注分支不完全依赖自我重构,而是学会从未标明的特征中提取有价值的通道。通道中的通用语义信息为这一想法提供了可行性,例如,如图 3 所示,"船 "的标注样本和 "飞机 "的非标注样本表现出相似的金属材料质地。

        接下来的步骤是确定一种有效的方法来重新生成标注数据。幸运的是,最初在变压器解码器中使用的交叉注意机制 [39] 提供了一种合适的方法,因为它旨在利用源序列重建目标序列。因此,我们在交叉注意概念的基础上开发了我们的方法,并将其调整为以信道方式运行[9, 42],以提取信道语义信息。如图 2 所示,这种名为 AllSpark 的方法利用标记数据特征作为q,利用未标记数据特征作为k和v。具体来说,AllSpark 会计算已标注特征的每个通道与未标注特征之间的相似性矩阵然后强调相似度最高的未标记通道,以重建已标记的特征。然而,实现这一想法的关键挑战在于mini批次中有限的未标注特征,这些特征可能不足以重建正确的标注特征。为了解决这个问题,我们引入了语义内存(Semantic Memory,S-Mem),从以前的未标记特征中收集通道。S-Mem 采用建议的通道语义分组策略进行迭代更新,该策略首先将代表相同语义的通道分组,然后将它们排入 S-Mem 的相应类别插槽

相关工作: 

        Semantic Segmentation 

        Semi-supervised Semantic Segmentation

        传统的半监督语义分割(SSSS)方法侧重于如何通过框架级设计更好地利用未标记数据,并使用基于 CNNs 的基本分割模型作为骨干。其中最引人注目的两个基本框架是教师-学生(teacherstudent)[20, 36, 44, 45, 56] 和交叉伪监督(CPS)[6, 46, 50]。具体来说,在基于教师学生的框架中,首先用标注数据训练学生模型,然后用学生的指数移动平均(EMA)更新教师模型,生成伪标签。在基于 CPS 的框架中,标注数据与未标注数据在一个迷你批次中串联起来,模型通过一致性正则化同时优化这两种数据流。

        最近,有几项研究探索了基于 Transformer 的模型,以扩展 SSSS 的边界。具体来说,SemiCVT [17] 提出了一种模型间的类一致性,以交叉教学的方式补充 CNN 和 Transformer 的类级统计。其他方法[23, 25]在基于 CPS 的框架[6]中利用 ViT 作为 CNN 的多样化模型。这些方法可以概括为基于 CNN-Transformer 的方法,它们利用变换器的方式都很幼稚,因此限制了 ViT 潜力的充分发挥。与这些方法不同,我们通过架构层面的设计为纯变压器 SSSS 方法带来了新的启示。

AllSpark: Reborn Labeled Features from Unlabeled Features

Channel-wise Cross-attention: the Core of AllSpark 

                

        为了缓解单独训练方案带来的有偏差的标注数据的主导地位,我们提出了 AllSpark 方案,用非标注数据直接介入标注数据训练流程。通常,不同的特征通道编码不同的语义信息。与补丁标记相比,这些通道特征包含更丰富的上下文信息,在各种输入图像中更具通用性(参见图 7)。我们利用这些来自未标记数据的上下文信息,使用通道交叉关注机制(channelwise crossattention mechanism)[9, 42]重建标记数据的特征,作为一种稳健的正则化。在这一机制中,有标签的数据特征作为q,而无标签的特征作为k和v,如图 3 所示。具体来说,我们计算已标注特征的每个通道与未标注特征之间的相似度相似度最高的未标注通道在重构已标注特征时发挥更重要的作用。其基本原理是,即使与已标记的特征相比,未标记的特征可能来自不同的类别,但它们仍然拥有可以共享的具有通道智慧的通用信息,例如纹理。 

        在编码器阶段后,给定已标记数据和未标记数据的隐藏特征 [hl, hu],我们将其拆分,然后以多头方式将 hl 设置为q,hu 设置为k和v: 

其中,wq、wk、wv∈R C×2C 为变换权重,hl、hu∈R C×d,d 为序列长度(斑块数),C 为信道维度。通道关注度定义如下 :

其中,ψ(-)和σ(-)分别表示实例归一化[37]和软最大函数,wout∈R2C×C。与传统的自我关注机制相比,信道明智的自注意可以捕捉通道之间的长距离依赖关系。为了进一步完善未标注数据的隐藏特征,我们还应用了通道自注意力。获得细化的未标记特征 ˆ h u i 的公式与公式 2 和 3 类似,唯一不同的是 q 被替换为 q = hu wq。重建的 ˆ hl i 和 ˆ hu i 随后被输入解码器,生成最终预测结果。 

Semantic Memory for Enlarging the Feature Space of AllSpark

        在单个mini批次中直接利用未标记的特征不足以有效地重生已标记的特征。为了克服这一限制,我们需要扩展 未标记的特征空间。为此,我们引入了一个先进先出队列--分类语义内存(SMem),用于存储大量未标记的特征,如图 4 底部所示。该内存允许我们在重建过程中有效地访问更广泛的未标记特征。

        S-Mem 的形状为 R K×C×d,其中 K 代表类别数。对于每个类别,S-Mem 存储 C 个通道,每个通道由 d 个贴片组成。在训练过程中,我们利用语义记忆替换未标记特征的原始k和v分量(公式 3 中的 kT 和 vT)。在下一小节 §3.4 中,我们将演示如何用包含特定类别语义信息的精确通道更新每个类别槽。

Channel-wise Semantic Grouping

        以天真的方式存储之前未标记的特征并不适合语义分割任务,因为类别往往是不平衡的。为了确保每个类别都有足够的语义信息,有必要建立一个类别平衡的语义记忆。因此,我们引入了通道语义分组(Channel-wise Semantic Grouping)策略,以确定未标记特征中每个通道的语义表示,然后将它们分组并添加到 SMem 的相应类槽中,如图 4 所示。具体来说,我们计算未标记特征 hu∈ RC×d 与概率标记 ˆ p∈ RK×d 之间的相似度。概率标记是从概率图 p∈RK×H×W 中得到的经过调整和重塑的向量,它是分割网络的软预测,包含 hu 的整体语义信息。确定每个通道的语义表示后,我们就可以根据各自的语义类别将它们存储在存储器中。相似性矩阵 Sim ∈ RK×C 的定义为Simi,j = ψ(ˆ p⊤ j hu i )。这样,通过比较第 i 个(i∈[0, C])通道的语义信息和图像的整体语义上下文,我们就能确定第 i 个通道最有可能代表的语义类别。然后,我们将代表相同语义类别的通道分组,并将它们排入语义存储器中相应的类别槽。 

        在推理阶段,虽然我们仍然可以利用 S-Mem 的交叉注意机制,但它往往会带来计算负担,而且对性能的改善微乎其微。为了提高效率,我们选择在推理阶段取消 S-Mem 和 CSG。因此,交叉注意的两个输入变得相同,可以简化为自我注意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android数据恢复:如何在手机上恢复丢失的文件和照片

我们都有 我们错误地从手机中删除重要内容的时刻。确实如此 不一定是我们的错。其他人可以对您的手机数据执行此操作 有意或无意。这在某个时间点发生在我们所有人身上。 但是,今天市场上有各种各样的软件可以 帮助恢复已删除的文件。这些类型的软件被归类为数据恢复…

Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly

可视化工具介绍 让我们一起探讨Matplotlib、Seaborn、Pandas Plot和Plotly这四个数据可视化库的优缺点以及各自的适用场景。这有助于你根据不同的需求选择合适的工具。 1. Matplotlib 优点: 功能强大:几乎可以用于绘制任何静态、动画和交互式图表。高度可定制&a…

用OpenCV先去除边框线,以提升OCR准确率

在OpenCV的魔力下,我们如魔法师般巧妙地抹去表格的边框线,让文字如诗如画地跃然纸上。 首先,我们挥动魔杖,将五彩斑斓的图像转化为单一的灰度世界,如同将一幅绚丽的油画化为水墨画,通过cv2.cvtColor()函数的…

寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)

贵工程寝室快修目录 目录 基于SprinBootvue的贵工程寝室快修小程序 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 在线报修管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&a…

结构方程模型【SEM】:非线性、非正态、交互作用及分类变量分析

张老师(研究员),长期从事R语言结构方程模型、群落生态学、保护生物学、景观生态学和生态模型方面的研究和教学工作,已发表了多篇论文,拥有丰富的科研及实践经验。 利用结构方程模型建模往往遇到很多‘特殊’情况&…

Excel 批量创建sheet页

参考资料 最巧妙的Excel批量创建工作表方法 一. 需求 ⏹有如下模板,现想根据提供的姓名,批量创建sheet页,要求每个sheet页拥有相同的模板 二. 通过透视表,批量创建sheet页面 ⏹如下图所示的步骤,创建透视表后&#…

人工 VS AGV无人搬运机器人,AGV赋能中国智能制造

agv 机器人作为智能制造的重要抓手,正在渗透到各个传统行业,成为我国制造业转型升级的焦点。未来,智能AGV将不仅仅是简单的把货物搬运到指定的位置,而是要把5G技术、大数据、物联网、云计算等贯穿于产品的设计中,让智能…

《动手学深度学习(Pytorch版)》Task03:线性神经网络——4.29打卡

《动手学深度学习(Pytorch版)》Task03:线性神经网络 线性回归基本元素线性模型损失函数随机梯度下降 正态分布与平方损失 线性回归的从零开始实现读取数据集初始化模型参数定义模型定义损失函数定义优化算法训练 线性回归的简洁实现读取数据集…

帕累托森林李朝政博士受聘「天工开物开源基金会」专家顾问

导语: 开源铸造了当前最前沿的科技引擎。开源驱动了软件生态,也以指数级速度驱动硬件生态。 3月中旬,天工开物开源基金会授予李朝政博士专家顾问,表彰他积极推动参与中国智能软件生态的建设,期待一起共筑未来新生态。…

Python_AI库 Pandas的时间序列操作详解

Python_AI库 Pandas的时间序列操作详解 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 了解pandas,matplotlib的基础操作 具备自主扩展学习能力 在数据分析和处理中,时间序列数据是一类常见且重要的数据类型。大量的…

CSS实现各种优惠券效果

一、左半圆效果 <style style"text/css">.coupon {width: 240px;height: 100px;margin-top: 15px;background-color: #ff6347;-webkit-mask: radial-gradient(circle at left center, transparent 20px, red 20px); } </style><div class"coupon…

TruLens

文章目录 一、关于 TruLensHow it works 二、安装三、快速使用Get DataInCreate Vector StoreBuild RAG from scratchSet up feedback functions.Construct the appRun the app 一、关于 TruLens Evaluate and Track LLM Applications 官网&#xff1a;https://www.trulens.o…

linux,从零安装mysql 8.0.30 ,并且更新至mysql 8.0.36

前言&#xff1a; 系统使用的CentOS 7&#xff0c;系统默认最小安装。 一、基础配置 配置虚拟机IP&#xff0c;需要更改的内容&#xff0c;如下红框中 修改之后 至此&#xff0c;基础配置完成。注意&#xff1a;此处虚拟机网络适配器使用的是&#xff1a;桥接模式 二、软件…

掌握Lazada自养号测评技巧,轻松提升产品销量与排名

Lazada店铺销量不佳&#xff0c;时常让卖家们感到困扰。然而&#xff0c;仅仅感叹和自我安慰并不能解决问题。作为卖家&#xff0c;我们需要专注于打牢基础&#xff0c;尤其是要深入了解Lazada店铺测评的益处及其运用技巧。通过巧妙地结合运营策略和测评方法&#xff0c;我们可…

Django框架之请求生命周期流程图

一、引言 WSGI、wsgiref、uwsgi三者是什么关系? WSGI是协议&#xff0c;小写的wsgiref和uwsgi是实现该协议的功能模块 缓存数据库 提前已经将你想要的数据准备好了&#xff0c;需要的时候直接拿就可以&#xff0c;提高了效率和响应时间。 eg:当你在修改你的数据的时候&…

vscode查看变量小技巧

vscode查看变量有3种方法 print()输出要查看的变量&#xff0c;此方法适用于所有编程软件安装jupyter&#xff0c;右键run in interactive window—在交互窗口运行&#xff0c;之后点击变量即可查看 通过调试查看&#xff0c;使用于大多编程软件。打断点&#xff0c;调试后会…

【SZU计算机网络实验】从rdt到GBN,这实验居然实现了TCP的可靠数据传输机制?

前言 一个实验六个任务&#xff0c;实验文档一划划不到底。。看来老师们是真下功夫了啊 本文主要展示了作者在完成SZU计算机网络实验3的思路及过程&#xff0c;实验主要包括&#xff1a; 理解rdt2.1实现rdt2.2实现rdt3.0实现回退N步&#xff08;GBN&#xff09;机制实现面向…

2000.1-2023.8中国经济政策不确定性指数数据(日度、月度)

2000.1-2023.8中国经济政策不确定性指数数据&#xff08;日度、月度&#xff09; 1、时间&#xff1a;日度&#xff1a;2001.1.1-2022.06.17&#xff0c;月度2000.1-2023.8 2、指标&#xff1a;CNEPU&#xff08;经济政策不确定性指数&#xff09; 3、来源&#xff1a;China…

Linux网络-文件传输协议之FTP服务(附带命令及截图)

目录 一.FTP简介 二.FTP的数据模式 1.主动模式 2.被动模式 3.两种模式比较 三.安装配置vsftpd 1.安装vsftpd 1.1.安装前关闭防火墙 1.2.安装vsftpd 1.3.查看 1.4.备份 2.配置 3.重启后生效 四.相关实验 1.以win为例 1.1.设置并测试测试连通性 1.2.在终端里创建…

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…