【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器

news2025/6/23 17:03:39

【论文阅读】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进行后处理

  

在这里插入图片描述

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

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

相关文章

数字化浪潮下,制造业如何乘势而上实现精益生产

随着数字化技术的迅猛发展,制造业正迎来前所未有的变革机遇。本文将探讨如何利用数字化手段助推制造业实现精益生产,从而在激烈的市场竞争中脱颖而出。 1、构建智能化生产系统 借助物联网技术,实现设备之间的互联互通,构建智能化…

最祥解决python 将Dataframe格式数据上传数据库所碰到的问题

碰到的问题 上传Datafrane格式的数据到数据库 会碰见很多错误 举几个很普遍遇到的问题(主要以SqlServer举例) 这里解释下 将截断字符串或二进制数据 这个是字符长度超过数据库设置的长度 然后还有字符转int失败 或者字符串转换日期/或时间失败 这个是碰到的需要解决的最多的问…

比特币减半后 牛市爆发

作者:Arthur Hayes of Co-Founder of 100x 编译:Qin jin of ccvalue (以下内容仅代表作者个人观点,不应作为投资决策依据,也不应被视为参与投资交易的建议或意见)。 Ping PingPing,我的手机发出的声音&…

词频统计程序

使用Hadoop MapReduce处理文本文件,Mapper负责将文本分割为单词,然后Reducer对每个单词进行计数,最后将结果写入输出文件。 // 定义WordCount公共类 public class WordCount {// 主入口方法,处理命令行参数public static void m…

C语言进阶|顺序表

✈顺序表的概念及结构 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串.. 线性表在逻辑上是线性结构,也就说是连…

推荐学习什么编程语言?

选择编程语言学习时,除了就业因素外,还可以考虑以下几个方面来决定学习哪些编程语言: 个人兴趣与目标:如果你对某个特定领域感兴趣,比如游戏开发、数据分析、人工智能等,可以选择与该领域紧密相关的编程语言…

Python---【re库的使用】

目录: 一.re库简介 二.match方法 三.Match对象方法 四.使用search()方法进行匹配 五.使用findall()方法进行匹配 六.使用sub()方法替换字符串 七.使用split()方法分割字符串 一.re库简介 re库是Python用来实现“正则表达式”的库,并且re库在Pyth…

使用 nginx 服务器部署Vue项目

安装nginx 文本代理服务器 centos下载 注意需要root权限 在CentOS服务器上下载Nginx可以通过以下步骤完成: 更新系统软件包列表: yum update 安装EPEL存储库(Extra Packages for Enterprise Linux): yum install…

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述…

Visual Studio C++ 正确创建项目与更改文件名

1、创建项目 1)打开Visual Studio,选择创建新项目。 2)创建空项目 3)配置新项目,注意不要勾选 " 将解决方案和项目放在同一目录中 " 。并将位置的文件夹设为与解决方案同名,方便管理。项目名称则…

《零秒思考》像麦肯锡精英一样思考 - 三余书屋 3ysw.net

零秒思考:像麦肯锡精英一样思考 大家好,今天我们要深入探讨的著作是《零秒思考》。在领导提出问题时,我们常常会陷入沉思,却依然难以有所进展,仿佛原地踏步,但是身边的同事却能够立即给出清晰的回答。这种…

乡村智慧化升级:数字乡村打造农村生活新品质

目录 一、乡村智慧化升级的内涵与意义 二、乡村智慧化升级的具体实践 1、加强农村信息基础设施建设 2、推广智慧农业应用 3、提升乡村治理智慧化水平 4、丰富智慧乡村生活内容 三、数字乡村打造农村生活新品质的成果展现 1、农业生产效率与质量双提升 2、农民收入与消…

学习Rust的第二天:Cargo

We dive into Cargo, the powerful and convenient build system and package manager for Rust. 基于Steve Klabnik的《The Rust Programming Language》一书,我们深入了解Cargo,这是Rust强大而方便的构建系统和包管理器。 Cargo is a robust and effic…

Linux文件与目录的默认权限和隐藏权限

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、Linux的起源与发展 二、文件默认权限&#xf…

vitepress/vite vue3 怎么实现vue模版字符串实时编译

如果是vue模版字符串的话,先解析成模版对象 另一篇文章里有vue模版字符串解析成vue模版对象-CSDN博客 //vue3写法(vue2可以用new Vue.extend(vue模版对象)来实现)import { createApp, defineComponent } from vue;// 定义一个简单的Vue组件c…

【从浅学到熟知Linux】进程状态与进程优先级(含进程R/S/T/t/D/X/Z状态介绍、僵尸进程、孤儿进程、使用top及renice调整进程优先级)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。 🎯每天努力一点点,技术变化看得见 文章目录 进程状态进程状态查看R运行状态(running)S睡眠状态(sleeping&a…

软考 系统架构设计师系列知识点之大数据设计理论与实践(2)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(1) 所属章节: 第19章. 大数据架构设计理论与实践 第1节 传统数据处理系统存在的问题 最严重的问题是系统并没有对认为错误进行工程设计,仅靠备份是…

[C++]让C++的opencv库支持写出h264格式视频

当我们写下面测试代码时候&#xff1a; #include <opencv2/opencv.hpp>int main() {cv::VideoCapture cap("E:\\car.mp4"); // 打开默认摄像头if (!cap.isOpened()) {std::cout << "读取完毕!" << std::endl;return -1;}double fps ca…

HarmonyOS时区和语言设置-使用相关api实现系统语言和地区设置

介绍 本示例展示了i18n&#xff0c;intl&#xff0c;resourceManager在eTS中的使用&#xff0c;使用相关api实现系统语言和地区设置、时间和时区设置&#xff0c;展示了区域格式化示例。 效果预览 使用说明 1.启动应用&#xff0c;进入应用&#xff0c;首页分为三个按钮&…

Linux第87步_阻塞IO实验

阻塞IO是“应用程序”对“驱动设备”进行操作&#xff0c;若不能获取到设备资源&#xff0c;则阻塞IO应用程序的线程会被“挂起”&#xff0c;直到获取到设备资源为止。 “挂起”就是让线程进入休眠&#xff0c;将CPU的资源让出来。线程进入休眠后&#xff0c;当设备文件可以操…