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

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

文章目录

  • 【论文阅读】MCTformer+:弱监督语义分割的多类令牌转换器
    • 一、介绍
      • 1.1 WSSS背景
      • 1.2 WSSS策略
    • 二、联系工作
      • 2.1 弱监督语义分割
      • 2.2 transformers的可视化应用
    • 三、MULTI-CLASS TOKEN TRANSFORMER
      • 3.1 Multi-class token structure design
      • 3.2 阶级的训练
      • 3.3 The integration of CAM
      • 3.4 全局加权排名池
      • 3.5 Contrastive class token增强
      • 3.6 特定于class的定位推理
    • 四、实验

MCTformer+: Multi-Class Token Transformer for Weakly Supervised Semantic Segmentation

  

针对弱监督语义分割(WSSS),提出了一种新的基于变换的框架来生成精确的类特定对象定位图

利用标准VIT中one-class token的参与区域可以生成与class-agnostic localization maps的洞察力

  

引入了对比类令牌(CCT)模块来增强判别类令牌的学习

有效地从与不同类令牌相关的类到补丁关注生成类判别对象定位映射

利用从patch到patch转换器的注意力衍生出来的patch级成对亲和力

结果强调了class token对WSSS的重要性

  

一、介绍

1.1 WSSS背景

传统的语义分割方法通常依赖于精确标注的像素级标签

  

弱监督语义分割(WSSS)方法是在弱监督的前提下运行的,这涉及到使用更容易获得但更不精确的注释形式
  
尽量减少对像素级注释的需求

  • 图像标签
  • 涂鸦
  • 边界框

  

弱注释仅提供关于图像中对象或类的空间范围的有限信息,而没有指定每个区域的确切边界

WSSS任务的一个重要方面涉及到利用弱标签生成高质量的伪语义掩码

  

依赖卷积神经网络CNN的类激活映射CAM

CAM技术只能提供粗糙和不精确的类特定的密集定位图

  

WSSS技术采用了各种算法和策略包括:

  • 额外的线索和先验
  • 如上下文信息
  • 并发统计数据或类之间的关系
  • 从弱注释中推断像素级分割掩码

  

弱标签中的歧义和噪声,以及CNN架构固有的问题例如,有限的接受域,可能导致不完美的伪真语义掩码

  

  • VIT是为计算机视觉量身定制的开创性变压器模型
  • ViT通过利用其捕获广泛上下文信息的特殊能力,在大规模图像识别方面取得了显着的成功
  • ViT有助于在补丁之间建立有意义的连接,捕获图像中的依赖关系和关系

  

1.2 WSSS策略

ViT的一个特殊之处在于它利用了一个额外的class token,它整合了来自整个patch token序列的信息。虽然一些转换器方法省略了class token

class token关注可以发现语义场景布局

  

但将头部准确地链接到语义类的方法仍然不确定

single class token阻碍了变形器在单个图像中定位各种class的能力

  

single class token特性:

  • single class token的存在本质上允许学习包含各种类和背景背景的多种图像信息组合
  • single class token缺乏有效建模数据集中多个不同类别的patch的复杂关系的能力,导致不同对象的不精确定位

  

为了解决这些限制,一个简单的解决方案涉及使用多个class token,每个class token都用于学习特定类的表示

仅仅增加ViT中的类令牌数量并不会赋予它们特定的含义

直接使用每个class token和patch token之间的学习注意作为不同对象类别的类特定定位映射

  

patch token之间学习的转换器注意本质上产生patch-level pairwise affinity

通过对同一个分类目标的多个class token和patch token的联合学习,实现了它们之间的强对齐,大大增强了生成的定位图的分类判别能力。

  

提出了MCTformer+:

  1. 为了增强class-to-patch transformer map的类判别能力,在输出类令牌上引入了额外的正则化损失
  2. 正则化损失确保类令牌彼此不同,迫使它们关注不同的补丁令牌
  3. 引入了使用全局加权排名池来代替全局平均池
  4. 提出了一个class感知的训练策略和一个对比的class token模块
  5. 从每个class token和patch token之间的转换器注意中提取特定于类的本地化映射

在这里插入图片描述

  

二、联系工作

  

2.1 弱监督语义分割

CAM作为一种经典的弱监督对象定位方法,在现有的WSSS工作中被广泛采用

CAM无法生成完整的目标区域和精确的目标边界

提出了特定的分割损失函数[13]、[14]、[15]、[16]来处理分割监督不足的问题

增强CAM map,为语义分割提供高质量的监督
  

高质量CAM生成:

一种常见的解决方案涉及引入更大的挑战来实现分类目标

一些作品通过引入更细粒度的类别,将任务推进到更具挑战性的分类目标

为了解决标准图像分类目标损失函数不能保证发现完整目标区域的局限性,一些研究提出了正则化损失

传统图像分类cnn的局部接受域阻碍了判别信息的传播,并提出结合多尺度扩展卷积来获得更完整的定位图
  

学习类表示:

分类器的类相关权重和图像特征之间的逐像素关联来生成特定于每个类的定位映射

类相关的权重可以看作是类表示或类中心
  

  • 图像特定CAM (IS-CAM)等人被提出学习图像特定原型以捕获这些像素级语义相关性
  • 将CAM分数在前K置信度范围内的像素特征进行聚合,构建类原型
  • 该方法通过设计多个类标记来显式学习类表示
  • 类标记和来自不同层的patch token之间的转换注意表示不同语义级别的类到像素的相关性

  

面向CAM细化的亲和学习:

成对语义亲和学习的方法,用于CAM图的细化

CAMderived affinity伪标签学习相邻像素之间逐像素亲和力的方法。利用学习到的亲和力进行随机游走,实现CAM的传播
  

  • 利用由自信分割预测生成的亲和伪标签
  • 多任务特征亲和力也在一个弱监督框架中进行了研究
  • 利用语义分割伪标签派生的亲和力伪标签,基于补丁之间的转换注意力来预测亲和力
  • 提出了基于类感知注意力的亲和关系

  

MCTformer是第一个利用特定类别的变压器注意进行判别定位的工作

MCTformer+进一步提高了类特定定位性能

  

2.2 transformers的可视化应用

Transformers最初是为处理NLP任务中的顺序数据而开发

基于Transformers的先锋视觉模型是ViT[11],它对图像patch进行操作

自关注模块是ViT的核心组件,它允许每个patch与图像中的所有其他patch进行交互

  

TS-CAM[45]将CAM模块集成到ViT中,实现了ViT内的分类区分定位

所提出的MCTformer利用特定类别的变压器注意力进行判别定位

MCTformer利用特定类别的变压器注意力进行判别定位。这被证明是CAM机制更有效的补充
  

ViTs for WSSS

MCTformer和AFA是最早使用vit进行WSSS的两个作品

  • MCTformer引入了多个class token学习,从每个类令牌和补丁令牌之间的转换注意中利用类特定的定位信息
  • AFA[40]侧重于利用补丁令牌之间的自关注来预测语义亲和力
  • ToCo,它通过在两两patch tokrn相似度方面加强来自不同层的CAM映射的一致性

  

三、MULTI-CLASS TOKEN TRANSFORMER

我们提出了一种新的MULTI-CLASS TOKEN TRANSFORMER框架,利用特定于类的转换器关注进行WSSS的区分对象定位

MCTformer的整体架构

在这里插入图片描述

组成:

  • 变压器编码器
  • 类激活(CAM)模块

  

一个token class的标准VIT不同,提议的MCTformer配备了多个token class

指导每个patch tokrn使用patch token学习特定于类的注意
  

成分:

  • CAM模块可以使用patch token生成额外的类激活映射
  • 传统CAM模块中使用全局加权排序池而不是全局平均池
  • 提出了一个对比类标记模块,该模块插入到变压器编码器中
      

可以融合来自transformer注意和CAM模块的两种类型的映射
  

在这里插入图片描述

  

3.1 Multi-class token structure design

RGB图像被分割成N × N个小块。这些patch经过矢量化并线性投影成一系列patch token

  • Tp∈RM×D,其中D为嵌入维数,M = N2
  • 提出学习多个类令牌Tc∈RC×D,其中C表示类的个数
  • 生成的token Tin∈R(C+M)×D用作变压器编码器的输入,该编码器由一系列L编码层组成

  

每个MHA模块中,使用自关注机制来学习令牌之间的成对交互。作为输入,标记序列首先被归一化,然后线性投影到三个向量序列

这个关注模块通过基于特定的关注权重动态聚合来自所有token的信息来更新每个token

在这里插入图片描述
  
使用转换器自关注来提取和细化WSSS特定类的定位映射

在这里插入图片描述
  

3.2 阶级的训练

传统的transformer在最终输出类别token上应用MLP头来预测类别分数

目标是确保每个token patch捕获唯一的、有区别的类相关信息
在这里插入图片描述

  

class token和真实图像级标签之间计算多标签软边际损失

在这里插入图片描述

  

每个class token提供了直接的类感知监督,使它们能够有效地封装特定于类的信息

  

3.3 The integration of CAM

Tout∈R(C+M)×DS的输出令牌

提取patch令牌Tout pat∈RM×D

2D特征映射,记为Fout pat∈RN×N×C

  
全局平均池(GAP)层处理这些特征映射以生成class token
在这里插入图片描述

  

MCTformer引入了一种有效的基于变压器的框架

自class token和patch token的类预测应用分类损失

这产生了更多的类别区分Patch CAM map

  

3.4 全局加权排名池

CAM[6]提出使用Global Average Pooling (GAP)使CNN仅使用图像级标签就具有定位能力

Kolesnikov等揭示了传统的全局池化技术有其缺点

在这里插入图片描述

  • Global Average Pooling (GAP)鼓励模型在所有位置上都有高响应
  • Global Max Pooling (GMP)鼓励模型只在一个位置上有高响应
  • GAP和GMP对目标区域大小的高估和低估

我们将全局加权排名池(GWRP)方法引入到transformer框架中,以聚合Patch class以进行类别预测

GWRP根据每个通道所有Patch 的激活排名来分配不同的权重

  

在这里插入图片描述

  

  • G(F)∈rc表示最终的汇总结果,即类预测
  • P∈RN2×C表示对由输出patch令牌导出的2D特征映射执行逐通道矢量化的输出
  • rj表示排序指标
  • λ为衰减率
      

GWRP策略允许模型优先考虑更多信息的补丁,确保它们对最终的全局类分数做出更大的贡献

在这里插入图片描述

  

3.5 Contrastive class token增强

虽然类感知训练策略使不同的类令牌能够关注不同的对象区域

同一图像中出现的不同类的最终类到class-to-patch transformer注意映射通常包含重叠的局部对象区域

  

  • 通过聚合每个类令牌嵌入来实现对类分数的多标签一对全损失的利用,并不能严格确保不同class token之间的区别
  • 由于只对最高级别的输出类令牌施加损失,这种损失的影响主要限于网络的最后几层
      

为了获得不同且不重叠的class-to-patch transformer attention maps

提出了一个具有正则化损失的对比类令牌(CCT)模块

在这里插入图片描述

操作:

  1. 给定从第i个转换器编码层输出的类令牌Ti out cls∈RC×D
  2. 计算每两个类令牌之间的成对相似度,形成相似度矩阵S i∈RD×D
  3. 相似性矩阵和单位矩阵I∈R D×D之间计算交叉熵损失
  4. 对比损失强加在每个转换器编码块的输出类令牌上

  

  • 模型能够获得更强、更频繁的指导
  • 从而在整个网络中学习更具判别性和类特异性的表示
  • 助于提高定位性能
  • 减少由重叠的注意区域引起的歧义
      

在这里插入图片描述

  

3.6 特定于class的定位推理

特定于class的Mul-token注意

  • 前C行表示每个C类和所有标记之间的注意力得分
  • 注意力分数映射回各自的原始patch位置
  • 每个变压器层都有其class到patch的注意映射
      

较深的(顶层)层捕获更多特定于任务的高级表示,而较浅的(底层)层捕获更一般的低级表示

在这里插入图片描述

K个转换器编码层的类到补丁关注结合起来

  

Map fusion

由于将CAM模块集成到所提出的框架中,我们还可以从Patch token表示为Patch CAM, 中提取特定于类的定位映射

从CAM模块的卷积层得到PatchCAM映射

改进后的类特定 本地化mapA可以通过以下两种map类型的组合获得

  
在这里插入图片描述

Map refinement

以往的研究[37]、[38]、[39]经常利用成对亲和力来增强目标定位图。

学习亲和力训练额外的参数。

相比之下,我们的方法引入了一种新的技术,其中两两亲和映射直接从patch之间的变压器注意力中获得,而不需要任何额外的计算或监督

我们将patch-to-patch的关注重新格式化为4D张量
  

在这里插入图片描述

  

Aref∈RC×N×N是细化的融合类特定的定位图

利用patch-to-patch的注意力作为两两亲和力,可以得到更好的类特异性定位图,增强了外观的连续性和平滑性

  

四、实验

PASCAL VOC 2012、MS COCO 2014和OpenImages三个数据集对所提出的方法进行评估

伪标签精度

  
在这里插入图片描述
  
分割结果精度

在这里插入图片描述

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

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

相关文章

读人工智能全传15意向立场

1. 物理立场 1.1. 可以解释一个实体行为 1.2. 在物理立场中,我们使用自然法则(物理、化学等)来预测系统的行为结果 1.3. 虽然物理立场在解释这种行为的时候非常有效,但无法应用于理解或者预测人类行为 1.3.1. …

迭代器+反向迭代器

接上节内容&#xff0c;反向迭代器&#xff08;aoto的价值显示的更明显&#xff09; int main() {string s1("hello world");//string::reverse_iterator rit s1.rbegin();auto rit s1.rbegin();while (rit ! s1.rend()){(*rit) 3;cout << *rit << &…

解决 Vscode不支持c++11的语法

问题&#xff1a; 解决方案&#xff1a; 1、按 CtrlShiftP 调出命令面板&#xff0c;输入 C/C: Edit Configurations (UI) 并选择它。这将打开 C/C 配置界面 2、打开 c_cpp_properties.json 文件 3、编辑 c_cpp_properties.json 4、保存 c_cpp_properties.json 文件。 关闭并…

防火墙---带宽管理

防火墙的带宽管理&#xff1a;是指对防火墙设备的带宽进行管理和控制&#xff0c;以确保网络流量的合理分配和优化网络性能 带宽管理&#xff1a;是指限制网络流量的速率或控制网络流量的优先级&#xff0c;以确保网络的性能和可用性 核心&#xff1a; 带宽限制&#xff1a;…

在ArcGIS Pro中新建空图层的最快方法

01常规方法 一般情况下&#xff0c;如果我们想新建一个要素图层&#xff0c;常规方法是&#xff1a; 在目录框中&#xff0c;找一个gdb数据库&#xff0c;右键——新建——要素类&#xff1a; 设置好各种属性&#xff1a; 创建结果如下&#xff1a; 最后将要素类拖入地图中即…

GPU租赁教程/云主机使用教程/在线GPU环境部署/免费GPU/免费算力||运用云服务器,跑自己的深度学习模型(保姆级教程)

一、环境准备 pycharm professional&#xff08;需要pycharm专业版&#xff0c;社区版不行&#xff09;潞晨云账号访问链接&#xff0c;目前应该是最便宜的GPU租赁平台了&#xff0c;不知道之后会不会涨价&#xff0c;点我链接注册送10元代金券&#xff0c;能跑6个小时的4090w…

python-基础篇-运算符

文章目录 六、运算符相关的魔术方法1、比较运算符2、算术运算符 六、运算符相关的魔术方法 1、比较运算符 魔术方法说明__cmp__(self, other)如果该方法返回负数&#xff0c;说明 self < other; 返回正数&#xff0c;说明 self > other; 返回 0 说明 self other 。强烈…

所有权与生命周期:Rust 内存管理的哲学

所有权与生命周期&#xff1a;Rust内存管理的哲学 博主寄语引言&#xff1a;编程语言的内存管理困境与 Rust 的解决方案。所有权基本概念&#xff1a;资源的绝对主权生命周期的理解与应用&#xff1a;编译时的守护神借用与引用的精妙设计&#xff1a;安全与效率的和谐共舞Rust …

无人机之图传距离的决定因素

一、发射功率&#xff1a;图传设备的发射功率越大&#xff0c;信号能够传播的距离就越远 二、工作频段&#xff1a;不同频段具有不同的传播特性&#xff0c;一些频段在相同条件下可能具有更远的传输距离。 三、天线性能&#xff1a;优质的天线可以增强信号的发送和接收能力&a…

【Harmony】SCU暑期实训鸿蒙开发学习日记Day1

关于ArkTS和ArkUI&#xff0c;基础语法请看&#x1f449;官方开发手册 系统学习后&#xff0c;聊聊几个点&#xff0c;面向刚学习这门语言的小白&#xff0c;用于巩固和回顾&#x1f60b; 目录 类型推断应用 函数相关 布局方式 线性布局 堆叠布局 网格布局 弹性布局 …

Python | Leetcode Python题解之第240题搜索二维矩阵II

题目&#xff1a; 题解&#xff1a; class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m, n len(matrix), len(matrix[0])x, y 0, n - 1while x < m and y > 0:if matrix[x][y] target:return Trueif matrix[x][y] > tar…

【入门篇】2.3 STM32启动模式(一)

一,Boot引脚分步 二,启动电路 三,启动模式 STM32F4 根据 BOOT 引脚的电平选择启动模式,这两个 BOOT 引脚根据外部施加的电平来决定芯片的启动地址。 下表中 BOOT0 和 BOOT1 是 STM32 芯片上面的两个引脚,用于控制 STM32

网络开局 与 Underlay网络自动化

由于出口和核心设备 部署在核心机房,地理位置集中,业务复杂,开局通常需要网络工程师进站调测。 因此核心层及核心以上的设备(包含核心层设备,旁挂独立AC设备和出口设备)推荐采用WEB网管开局方式或命令行开局方式。 核心以下的设备(包含汇聚层设备、接入层设备和AP)由于数量众…

HTML2048小游戏

源代码在效果图后面 效果图 源代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2048 Game&l…

【STM32】RTT-Studio中HAL库开发教程三:IIC通信--AHT20

文章目录 一、I2C总线通信协议二、AHT20传感器介绍三、STM32CubeMX配置硬件IIC四、RTT中初始化配置五、具体实现代码六、实验现象 一、I2C总线通信协议 使用奥松的AHT20温湿度传感器&#xff0c;对环境温湿度进行采集。AHT20采用的是IIC进行通信&#xff0c;可以使用硬件IIC或…

linux网络驱动(以太网)

前言 由于最近要做一个MCU的以太网通信&#xff0c;学习一下以太网。由于过来实习没带MCU&#xff0c;只能继续做一下SOC&#xff0c;所以这期还是imx6ull的以太网&#xff08;以下简称网络&#xff09;驱动。 理论&#xff08;imx6ull内置MAC外设&#xff09; 其实整个SOC网络…

【后端开发实习】用MongoDB和Redis实现消息队列搭建分布式邮件消息系统

用Redis实现消息队列并搭建分布式邮件消息系统 系统介绍Redis实现消息队列思路分析代码实现 MongoDB监听数据变化思路分析代码实现Mongoose测试连接监听mongodb数据变化 注意点 系统介绍 本次要实现的是一个能够实现实时监控Mongodb中数据变化的系统&#xff0c;要能够在数据发…

iterator(迭代器模式)

引入 在想显示数组当中所有元素时&#xff0c;我们往往会使用下面的for循环语句来遍历数组 #include <iostream> #include <vector>int main() {std::vector<int> v({ 1, 2, 3 });for (int i 0; i < v.size(); i){std::cout << v[i] << &q…

在 Windows 上运行 Linux:WSL2 完整指南(一)

系列文章目录 在 Windows 上运行 Linux&#xff1a;WSL2 完整指南&#xff08;一&#xff09;&#x1f6aa; 在 Windows 上运行 Linux&#xff1a;WSL2 完整指南&#xff08;二&#xff09; 文章目录 系列文章目录前言一、什么是 WSL&#xff1f;1.1 WSL 的主要特性1.2 WSL 的…

GitHub 令牌泄漏, Python 核心资源库面临潜在攻击

TheHackerNews网站消息&#xff0c;软件供应链安全公司 JFrog 的网络安全研究人员称&#xff0c;他们发现了一个意外泄露的 GitHub 令牌&#xff0c;可授予 Python 语言 GitHub 存储库、Python 软件包索引&#xff08;PyPI&#xff09;和 Python 软件基金会&#xff08;PSF&…