【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器
【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器
文章目录
- 【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器
- 一、介绍
- 二、联系工作
- 三、方法
- 四、实验结果
Multi-class Token Transformer for Weakly Supervised Semantic Segmentation
本文提出了一种新的基于变换的框架来学习类特定对象定位映射作为弱监督语义分割(WSSS)的伪标签
可以利用标准视觉转换器中一个类令牌的参与区域来形成与类无关的定位映射,我们研究了转换器模型是否也可以通过学习转换器中的多个类令牌来有效地捕获特定于类的注意力
提出了一个多类令牌转换器,称为MCTformer,它使用多个类令牌来学习类令牌和补丁令牌之间的交互
提出的MCTformer可以成功地从对应于不同token的类到patch关注生成类判别对象定位映射
我们还建议使用从patch -patch转换器注意力中提取的patch级成对亲和度来进一步细化定位图
提出的框架被证明可以完全补充类激活映射(CAM)方法
一、介绍
弱监督语义分割(WSSS)旨在通过弱监督来减轻对像素级真值标签的依赖
利用弱标签生成高质量的伪分割真值标签
图像级标签可以提供简单的弱标签,其仅指示某些类的存在或不存在定位信息
来自卷积神经网络(CNNs)的对象定位图。尽管使用了复杂的CAM扩展策略或多个训练步骤,但现有方法在定位对象的完整性和准确性方面仍然表现出有限的性能
视觉转换器(ViT)作为第一个专门为计算机视觉设计的转换器模型,最近在多个视觉任务上取得了性能突破
ViT在大规模图像识别方面取得了最先进的性能,这要归功于其强大的远程上下文建模能力
ViT还使用一个额外的cls token来聚合来自整个patch token序列的信息
最近的一项工作DINO揭示了在自监督ViT特征中存在关于图像语义分割的明确信息
在实际工作中我们探究了Class_cls, CNN_cls和Patch_cls的联系,最后选择了Class_cls, CNN_cls
从类标记的注意力图中发现语义场景布局
注意力图在无监督分割任务中产生了有希望的结果
但如何将头部与正确的语义类相关联仍不清楚。也就是说,这些注意力映射仍然是类不可知的

- 在之前的Transformer中,仅使用一个cls_token(红色方块)来聚合来自patch_token(蓝色方块)的信息
- 所提出的MCTformer使用多个类令牌来学习cls_token和patch_token之间的交互。学习的类对不同类标记的注意力进行Patch可以生成类特定的对象定位图
利用Transformer的特定类别注意力是一项挑战
现有的基于转换器的作品有一个共同的问题,即仅使用一个cls_token,这使得在单个图像上准确定位不同对象具有挑战性
存在的问题:
- cls_token设计本质上不可避免地从其他对象类别和背景中捕获上下文信息
- 导致相当无歧视和有噪声的对象定位
- 模型容量不足以实现有针对性的判别定位性能
一个简单的想法是利用多个cls_token,它将负责学习不同对象类的表示。为此,我们提出了一种多类令牌转换器(MCTformer),其中使用多个类特定令牌来利用类特定转换器的注意力
作用:
- 拥有类特定令牌的目标不能通过简单地增加ViT中cls_token的数量来实现,因为这些类令牌仍然没有特定的含义
- 沿着嵌入维度对来自转换器编码器的输出类令牌应用平均池,以生成cls_token,这些分数由基本事实类标签直接监督
- 学习到的类对不同类的注意力的patch可以直接用作类特定的定位图
- 所学习的patch到patch的注意力可以作为patch级别的成对亲和力
- 所提出的转换器框架完全补充了CAM方法。这导致类标记和补丁标记之间的高度一致性,从而显著增强了它们派生的对象定位图的判别能力
贡献:
- 建议利用类特定的转换器注意力进行弱监督语义分割
- 提出了一个有效的转换器框架,其中包括一个新的多类令牌转换器(MCTformer),结合类感知训练策略,从类中学习特定于类的定位图,以修补不同类令牌的注意力
- 使用patch到patch的注意力作为patch级别的成对亲和力,这可以显著细化特定类别的转换器注意力
二、联系工作
大多数现有的WSSS方法依赖于类激活映射来从CNN中提取对象定位图
因此无法为语义分割网络的学习提供足够的监督。为了解决这个问题,已经提出了特定的分割损失
-
SEC损失
-
CRF损失
-
对比损失
进从CAM图中获得的伪分割标签上。这些方法可分为以下几类:生成高质量的CAM映射。一些方法开发了启发式策略,如“隐藏和搜索”[31]和擦除[40],应用于图像[24,49]或特征图[16,21],以驱动网络学习新的对象模式
子类别和跨图像语义来定位更准确的对象区域
正则化损失来引导网络发现更多的对象区域
通过引入扩张卷积来解决标准图像分类CNN的感受野有限的问题
Refining CAM maps with affinity learning
Ahn等人提出了affinity ,从原始CAM图的可靠种子中学习相邻像素之间的仿射关系
网络可以预测仿射矩阵以通过随机游动传播CAM映射
分割结果中的置信像素学习了成对亲和网络
直接从分类网络的特征图中学习亲和度,以细化CAM图
Xu等人[44]提出了一种跨任务亲和性,该亲和性是从弱监督多任务框架中的显著性和分割表示中学习的
我们提出了一种基于Transformer的模型来提取类特定的对象定位图。我们利用Transformer机制中的转换器注意图来生成对象定位图
Transformer
Transformer,最初设计用于对NLP领域中长序列的长程依赖性进行建模
如图像分类[10]、显著性检测[27]和语义分割[30],实现了有希望的性能
然后,这些标记被转发到多个堆叠的基于自我关注[37]的层中,使每个补丁都具有全局感受野
自监督方法应用于ViT,并观察到类标记在补丁上的注意力包含关于场景语义布局的信息
TS-CAM,使CAM模块适应ViT。然而,TS-CAM只利用了ViT的类不可知注意力映射
提出的多类令牌转换器框架被证明比原始ViT更好地补充了CAM机制,生成了比TS-CAM更好的对象定位图
三、方法
具体框架:

新的纯基于Transformer的框架(MCTformer-V1)来利用变换器注意力的类特定对象定位图
输入RGB图像首先被分割成不重叠的patch,然后被转换成patch标记序列
使用多个cls_token。这些类标记与嵌入patch信息的补丁标记连接,以形成转换器编码器的输入标记
cls_token和patch_token。我们对最后一层的输出cls_token应用平均池来生成类分数,而不是像传统的转换器那样使用多层感知(MLP)来进行分类预测
cls_token直接产生的类分数和基本事实类标签之间计算分类损失
聚合来自多个层的注意力图
从patch到patch的注意力中提取patch级别的成对亲和力,以进一步细化类到补丁的注意
类特定的定位图被用作种子以生成伪标签来监督分割模型
Multi-class token结构设计
- 考虑一个输入图像,它被分割成N×N个补丁
- patch标记序列
- C类标记序列
- C类标记与补丁标记级联,并添加位置嵌入
- 每个编码层由一个多头注意力(MHA)模块、一个MLP和分别应用于MHA和MLP之前的两个LayerNorm层组成
我们使用标准的自关注层来捕获令牌之间的长程依赖关系。更具体地说,我们首先对输入token序列进行归一化

token到token的注意力映射At2t
全局成对注意力映射At2t
每一行表示特定class对所有patch的注意力得分
考虑到较高的层学习更多的高级判别表示(而较早的层捕获更多的一般和低级视觉信息)
class融合到最后K个变换器编码层的patch注意力

Amct是从所提出的MCFormer-V1的第l个变换器编码层提取的特定于类的变换器注意力。
以生成最终的class特定对象定位映射AmctRC×N×N

Class-specific attention refinement
在先前的工作中经常使用成对仿射来细化对象定位图。它通常需要一个额外的网络或额外的层来学习亲和图
我们建议从所提出的MCTformer的patch匹配注意力中提取成对亲和图,而无需额外的计算或监督
通过提取patch到patch的注意力Ap2pRM×M来实现的

所提取的亲和度用于进一步细化类特定的变换器注意力

细化的类特定定位图
可以获得更好的对象定位图,并提高外观连续性
Class-aware training
与传统的转换器使用来自最后一层的单个cls_token通过MLP执行分类预测相比,我们有多个类令牌,并且我们需要确保不同的类令牌可以学习不同的类判别信息
平均值集中输出类令牌以生成类分数

我们计算类c的类得分y(c)与其基本事实标签之间的soft margin loss
我们将CAM模块集成到所提出的多类令牌转换器框架中
我们将其划分为输出类令牌Tout_cls RC×D和输出补丁令牌Tout_pth RN×D
patch标记进行整形,并将其转发到具有C个输出通道的卷积层
总损失是分别根据类标记和补丁标记在图像级基本事实标记和类预测之间计算的两个soft margin loss的总和

将PatchCAM和特定于类的转换器注意力相结合
可以从最后一个卷积层提取基于补丁标记的CAM(此后称为PatchCAM)图
将提取的PatchCAM映射与所提出的类特定变换器注意力映射相结合
通过逐元素乘法运算产生融合的对象定位映射
where ◦ denotes the Hadamard product
类特定的对象定位映射细化。类似于MCTformer-V1中提出的注意力细化机制
我们也可以从MCTformer-V2中提取Patch到Patch的注意力图作为Patch级别的成对亲和度,以细化融合的对象定位图

其中CAM方法可以灵活而稳健地适应多标签图像
四、实验结果
数据集:PASCAL VOC 2012和MS COCO 2014
PASCAL VOC:
- 即训练集(train)、验证集(val)和测试集,每个子集分别包含1464、1449和1456个图像
- 20个对象类和一个用于语义分割任务的背景类
- 10582张图像的增强集以及中的额外数据进行训练
MSCOCO:
- 80个对象类和一个背景类进行语义分割
- 其训练集和验证集分别包含80K和40K图像
只使用了这些数据集的图像级基本事实标签
ImageNet[9]上预训练的DeiT-S主干构建了所提出的MCTformer
具体细节:
- 遵循了中提供的数据扩充和默认训练参数
- 训练图像的大小调整为256×256
- 然后裁剪为224×224
- 在测试时,我们使用多尺度测试和超参数的CRF进行后处理

相关文章:
【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器
【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器 文章目录 【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器一、介绍二、联系工作三、方法四、实验结果 Multi-class Token Transformer for Weakly Supervised Semantic Segmentation 本文提出了一种新的基于变换…...
FMix: Enhancing Mixed Sample Data Augmentation 论文阅读
1 Abstract 近年来,混合样本数据增强(Mixed Sample Data Augmentation,MSDA)受到了越来越多的关注,出现了许多成功的变体,例如MixUp和CutMix。通过研究VAE在原始数据和增强数据上学习到的函数之间的互信息…...
2024蓝桥A组A题
艺术与篮球(蓝桥) 问题描述格式输入格式输出评测用例规模与约定解析参考程序难度等级 问题描述 格式输入 无 格式输出 一个整数 评测用例规模与约定 无 解析 模拟就好从20000101-20240413每一天计算笔画数是否大于50然后天数; 记得判断平…...
Linux journalctl命令详解
文章目录 1.介紹2.概念设置system time基本的日志查阅方法按时过滤日志(by Time)显示本次启动以来的日志(Current Boot)按Past Boots按时间窗口按感兴趣的消息筛选按unit按进程、用户、Group ID按组件路径显示内核消息按消息优先级…...
恢复MySQL!是我的条件反射,PXB开源的力量...
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
Storm详细配置
一、认识Storm Apache Storm是个实时数据处理的“大能”,它可以实时接收、处理并转发大量数据流,就像一个高速运转的物流中心,确保数据及时、准确地到达目的地。我们要做的,就是把这个物流中心搭建起来,并且根据我们的…...
linux redis部署教程
单节点部署: 单节点部署 Redis 非常简单,只需要在一台服务器上安装 Redis 服务即可。以下是在 Linux 环境下的单节点部署步骤: 安装 Redis:打开终端,并执行以下命令来更新软件包列表并安装 Redis 服务器:…...
【Java】隐式锁(synchronized):如何解决餐厅等座的并发难题
当你走进一家熙熙攘攘的餐厅,准备享受一顿美味的晚餐时,你是否曾想过,这里正上演着一场场微观的线程战争?在这个场景中,每一张桌子都代表着珍贵的共享资源,而每一位顾客(线程)都在争…...
科技论文和会议录制高质量Presentation Video视频方法
一、背景 机器人领域,许多高质量的期刊和会议(如IEEE旗下的TRO,RAL,IROS,ICRA等)在你的论文收录后,需要上传一个Presentation Video材料,且对设备兼容性和视频质量有较高要求&#…...
Spring高手之路17——动态代理的艺术与实践
文章目录 1. 背景2. JDK动态代理2.1 定义和演示2.2 不同方法分别代理2.3 熔断限流和日志监控 3. CGLIB动态代理3.1 定义和演示3.2 不同方法分别代理(对比JDK动态代理写法)3.3 熔断限流和日志监控(对比JDK动态代理写法) 4. 动态代理…...
如何在Unity中使用设计模式
在 Unity 环境中,设计模式是游戏开发人员遇到的常见问题的通用解决方案。将它们视为解决游戏开发中特定挑战的经过验证的模板或蓝图。以下是一些简单易懂的设计模式: 1. 单例=> 单例模式确保一个类只有一个实例,并提供对该实例的全局访问点。在 Unity 中,可以使用单例模…...
基于springboot+vue+Mysql的旅游管理系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
vue3+ts中判断输入的值是不是经纬度格式
vue3ts中判断输入的值是不是经纬度格式 vue代码: <template #bdjhwz"{ record }"><a-row :gutter"8" v-show"!record.editable"><a-col :span"12"><a-input placeholder"经度" v-model:v…...
python常用知识总结
文章目录 1. 常用内置函数1. ASCII码与字符相互转换 1. 常用内置函数 1. ASCII码与字符相互转换 # 用户输入字符 c input("请输入一个字符: ")# 用户输入ASCII码,并将输入的数字转为整型 a int(input("请输入一个ASCII码: "))print( c &qu…...
常用的启发式算法
A算法:在电子地图导航软件中,当你输入目的地时,软件就会利用A算法来计算从现在的位置到目的地的最佳路径。该算法兼顾了路径的优化以及计算速度,保证了结果的准确性以及反馈的实时性。 模拟退火算法:模拟退火算法常被…...
应该如何进行POC测试?—【DBA从入门到实践】第三期
在数据库选型过程中,为确保能够灵活应对数据规模的不断扩大和处理需求的日益复杂化,企业和技术人员会借助POC测试来评估不同数据库系统的性能。在测试过程中,性能、并发处理能力、存储成本以及高可用性等核心要素通常会成为大家关注的焦点&am…...
通过Clojure中的集合与序列谈谈抽象的重要
与君共勉:生命不息,学习不止,切忌浮躁,静下心来,每天进步一点点。 Clojure简介 Clojure是一门运行在JVM上面的Lisp方言,其它的Lisp方言还有Scheme、Common Lisp等。Lisp相关的著名书籍有《计算机程序的构…...
Rust---模式(Pattern)匹配
目录 模式是什么它用来做什么模式匹配和赋值为什么会有模式匹配模式匹配用在什么地方match 表达式if let表达式while let表达式for 循环let 语句函数参数不可驳模式匹配和可驳模式匹配模式是什么 在Rust中,模式(Pattern)是一种用于匹配和解构数据的语法结构。模式匹配中常用…...
MATLAB 计算点投影到平面上的坐标(59)
MATLAB 计算点投影到平面上的坐标(59) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 点投影到平面,计算投影点的坐标,下面提供MATLAB版本的计算程序,直接运行即可,内有验证数据,具体看代码即可。 二、算法实现 1.代码 代码如下(示例): % 平面上的三个点分…...
2024年MathorCup数学建模B题甲骨文智能识别中原始拓片单字自动分割与识别研究解题文档与程序
2024年第十四届MathorCup高校数学建模挑战赛 B题 甲骨文智能识别中原始拓片单字自动分割与识别研究 原题再现: 甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
