【论文阅读】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.xdnf.cn/news/1483945.html

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

相关文章

JavaSE学习笔记第三弹之异常抛出

今天我们继续来学习JavaSE相关的知识,希望与大家共同努力。 目录 异常 什么是异常 运行时异常 编译时异常 ​编辑 为什么需要异常处理机制 错误 异常的处理与抛出 异常处理 异常抛出 自定义异常 结语 异常 什么是异常 Java中异常是一种在程序运行时发…

PHP宠物店萌宠小程序系统源码

🐾萌宠生活新方式🐾 🏡【一键直达萌宠世界】 你是否也梦想着拥有一家随时能“云撸猫”、“云吸狗”的神奇小店?现在,“宠物店萌宠小程序”就是你的秘密花园!🌟只需轻轻一点,就能瞬…

工厂方法模式java

文章目录 1. 概念2. 示例3. 代码示例 1. 概念 定义: 工厂方法模式又叫工厂模式,通过定义工厂父类创建对象的公共接口,而子类负责创建具体的对象 作用: 由工厂的子类来决定创建哪一个对象 缺点: 工厂一旦需要生成新的东西就需要修改代码,违背的开放封闭原则 2. 示例 3. 代码示…

Go语言并发编程-Context上下文

Context上下文 Context概述 Go 1.7 标准库引入 context,译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context 主要用来在 goroutine 之间传递上下文信息,包括:取…

rabbitmq简介与布署

rabbitMQ 常见的消息队列产品 rocketMQ(火箭) 阿里出品开源 kakfa 较少的核心提供超高的吞吐量,高可用高可靠高可扩展,但是建议支持较少的topic来保证其高吞吐量,适合大数据计算与日志收集。 rabbitMQ 基于erlang语言…

Chromium CI/CD 之Jenkins实用指南2024- 发送任务到Ubuntu(五)

1. 引言 在前一篇《Chromium CI/CD 之 Jenkins - 创建任务(四)》中,我们详细介绍了如何在Jenkins中创建和配置新任务,包括设置任务名称、选择运行节点、配置触发器、编写执行脚本以及添加文件收集步骤。通过这些步骤,…

COD论文笔记 Deep Gradient Learning for Efficient Camouflaged 2022

动机 这篇论文的动机在于解决伪装目标检测(COD)中的一个关键问题:在复杂背景下,伪装目标与背景的边界模糊,使得检测变得极其困难。现有的方法,如基于边界或不确定性的模型,通常仅响应于伪装目标的稀疏边缘&#xff0c…

最新Qt6的下载与成功安装详细介绍

引言 Qt6 是一款强大的跨平台应用程序开发框架,支持多种编程语言,最常用的是C。Qt6带来了许多改进和新功能,包括对C17的支持、增强的QML和UI技术、新的图形架构,以及构建系统方面的革新。本文将指导你如何在Windows平台上下载和安…

使用小波分析实现文字种类自动识别

文章目录 数据简介开始实验小波分解得出结果结果分析误差分析 数据简介 各找一篇中文,日文,韩文,英文,俄文较长的学术论文。将论文转化为JPG格式。拆分每张JPG生成更多小的JPG。最终获得很多5个不同语言的JPG并且自带标签。数据链…

VPN以及GRE和MGRE

VPN VPN — 是虚拟专用网络 通俗地说,就是通过虚拟的手段,将两个独立的网络,穿越一个公共网络进行连接,实现点到点专线的效果(可以理解为:一个分公司通过公网和总公司建立点到点的专线连接) 现…

Jupyter notebook如何快速的插入一张图片?如何控制插入图片的缩放、靠左展示(ChatGPT)

在Jupyter Notebook中,你可以使用Markdown语法快速插入图片,并且可以通过HTML标签来控制图片的展示方式和缩放。 注意:以下所有操作都有一个前提,即选择Cell-CellType-Markdown 1. 快速插入图片 要在Jupyter Notebook中插入图…

docker安装好了,但是启动失败

新项目要用docker部署,但是docker安装完后,启动失败,服务器用的是国产化的(之前的服务器非国产化,之前也没任何问题),国产化的使用起来问题一大堆,还是bclinux 安装好后重启一直显示 使用journalctl -xe也没任何报错 使用systemctl status docker查看docker状态是灰…

白话大模型微调(Fine-tune)

吾名爱妃,性好静亦好动。好编程,常沉浸于代码之世界,思维纵横,力求逻辑之严密,算法之精妙。亦爱篮球,驰骋球场,尽享挥洒汗水之乐。且喜跑步,尤钟马拉松,长途奔袭&#xf…

专业学习|系统建模与仿真的基础概念知识合集

学习笔记来源:http://tup.tsinghua.edu.cn/upload/books/yz/086457-01.pdf 一、系统 系统按照事物发展的连续性又可分为连续系统和离散系统。连续系统是指状态变量随 时间连续变化的系统,如图1-1所示;离散系统则是指状态变量只是在某个离散的时间点集合上发生变化…

Problems retrieving the embeddings data form OpenAI API Batch embedding job

题意:从OpenAI API批量嵌入作业中检索嵌入数据时遇到问题 问题背景: I have to embed over 300,000 products description for a multi-classification project. I split the descriptions onto chunks of 34,337 descriptions to be under the Batch e…

Linux--线程互斥(加锁)

目录 0.对原生线程封装的代码 1.为什么需要线程互斥 2.加锁 2.1.认识加锁和它的接口 2.2用一下接口 2.2.1 解决抢票问题 2.2.2设置局部锁 2.3从原理角度理解锁 2.4锁是如何实现的**** 0.对原生线程封装的代码 方便后续对锁的理解:Thread.hpp 详情请看&#…

mybatis-plus LambdaQueryWrapper条件构造器使用apply查询含有逗号‘,‘分隔的字段

mybatis-plus LambdaQueryWrapper apply自定义SQL条件使用 真实业务开发使用场景 数据库:postgreSQL 开发场景:SpringBoot2.5.7 数据库中数据如下 需求 查找, bingBdNumber字段为422875,要求数据库中bind_bd_number这一栏中只要有422875的就返回. 根据上图查422875需要返回…

【python】导入serial模块,读写串口数据(嵌入式软件自动化测试)

目录 环境准备安装pyserial硬件连接 基本函数使用获取串口设备列表初始化串口对象发送数据读取数据 环境准备 安装pyserial 1、python 3.6.7 2、pyserial模块封装了python对串口的访问 pip install serialpip install pyserial如果代码报错卸载掉serial 硬件连接 1、将串口…

Android 10.0 SystemUI下拉状态栏固定展开QsPanel不收缩功能实现

1. 前言 在10.0的系统ROM产品定制化开发中,在systemUi的原生下拉状态栏中,首次下拉展开quickQsPanel,第二次展开就显示 QsPanel,在产品开发中,需要下拉状态栏固定展开QsPanel,不需要二次展开,接下来分析下相关功能的实现,如图: 2.SystemUI下拉状态栏固定展开QsPanel不收…

Python和C++行人轨迹预推算和空间机器人多传感融合双图算法模型

🎯要点 🎯双图神经网络模型:最大后验推理和线性纠错码解码器 | 🎯重复结构和过约束问题超图推理模型 | 🎯无向图模型变量概率计算、和积消息传播图结构计算、隐马尔可夫模型图结构计算、矩阵图结构计算、图结构学习 |…