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

  

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode——622设计循环队列

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/design-circular-queue/ 1.题目 设计你的循环队列实现。 循环队列是一…

成都污水处理设备厂家哪家好?

在成都地区,选择一家专业可靠的一体化污水处理设备厂家对于实现环保目标至关重要。在这方面,四川博水环保科技有限公司无疑是一个值得推荐的选择。 博水办公楼外景 四川博水环保科技有限公司是一家领先的一体化污水处理设备供应商,专注于为各…

执行docker-compose up的时候报错network with driver “bridge“

执行docker-compose up的时候报错network with driver “bridge” (base) [rootVM-100-213-centos ~/composetest]# docker-compose up -d Creating network “composetest_default” with the default driver ERROR: could not find an available, non-overlapping IPv4 addre…

docker基本的掌握

前言:先要了解docker是干什么的, 1掌握基本概念,如;镜像,容器,数据卷 2知道使用常用命令 简易图; 补充: 默认情况下,每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实…

计算机网络-TCP连接建立阶段错误应对机制

错误现象 丢包 网络问题:网络不稳定可能导致丢包,例如信号弱或干扰强。带宽限制可能导致路由器或交换机丢弃包,尤其是在高流量时段。网络拥塞时,多个数据流竞争有限的资源,也可能导致丢包。缓冲区溢出:TC…

【深度学习】最强算法之:Transformer

Transformer 1、引言2、Transformer2.1 引言2.2 核心概念2.3 应用2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥,昨天的感受咋样 小鱼:啥感受啊? 小屌丝:你确定不知道? 小鱼:我… 小屌…

查看每月网站的带宽以及网站访问记录

接到一位用户反馈想要了解知道在带cPanel面板的虚拟主机中如何查看每个网站使用的带宽数值以及网站访问记录,这边私信进行沟通了解到他当前使用的是Hostease 的LInux虚拟主机,由于是属于新手,对于cPanel面板也不是很了解,因而在论…

Python爬虫之Scrapy框架基础

Scrapy爬虫框架介绍 文档 英文文档中文文档 什么是scrapy 基于twisted搭建的异步爬虫框架. scrapy爬虫框架根据组件化设计理念和丰富的中间件, 使其成为了一个兼具高性能和高扩展的框架 scrapy提供的主要功能 具有优先级功能的调度器去重功能失败后的重试机制并发限制ip使用次…

基于spring boot的大学生体质测试管理系统

基于spring boot的大学生体质测试管理系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 …

【SQL Sever】3. 用户管理 / 权限管理

1. 创建登录名/用户/角色 在SQL Server中,创建用户通常涉及几个步骤。 首先,你需要创建一个登录名,然后你可以基于这个登录名在数据库中创建一个用户。 以下是如何做到这一点的步骤和相应的SQL语句: 创建登录名 首先&#xff0c…

面试算法-171-翻转二叉树

题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {if (root n…

STM32电机控制SDK实战

一、前言 本次测试基于ST开发板NUCLEO-F302R8,驱动板X-NUCLEO-IHM07M1,使用无刷直流电机BLDC实现FOC控制;采样三霍尔传感器检测电机转子位置;基于速度环闭环控制实现电机转动; 二、实战环境 软件环境: 1…

IP地址查询的应用

IP地址是互联网中用于唯一标识设备的数字地址,通过查询IP地址,我们可以获取到与之相关的各种信息。IP地址查询在网络安全、网络管理、市场营销等领域都有着广泛的应用。本文将探讨IP地址查询的各种应用场景及其重要性。 IP地址准查询:IP数据…

【架构六】系统架构风格

一、数据流风格 批处理:每一步都是独立的,并且每一步都是顺序执行的,只有当前一步处理完毕后,后一步处理才开始。数据必须是完整的,作为一个整体进行传递。如日志分析、计费程序等。管道/过滤器:每个构件都…

50-服务编排(下):基于Helm的服务编排部署实战

制作IAM Chart包 我们假设IAM项目源码根目录为${IAM_ROOT},进入 ${IAM_ROOT}/deployments目录,在该目录下创建Chart包。具体创建流程分为四个步骤, 第一步,创建一个模板Chart。 Chart是一个组织在文件目录中的集合,…

【汇编语言实战】已知10个整数求最大值

C语言描述该程序流程&#xff1a; #include <stdio.h> int main() {int a[]{11,33,23,54,12,51,2,4,34,45};int maxa[0];for(int i1;i<9;i){if(a[i]>max){maxa[i];}}printf("%d",max); }汇编语言&#xff1a; include irvine32.inc .data arr dword 11…

深入了解Redis——持久化

一&#xff0c;Redis持久化 Redis持久化即将内存中的数据持久化到磁盘中&#xff0c;在下一次重启后还能进行使用&#xff0c;Redis持久化分为RDB和AOF两种&#xff0c;我们接下来分别介绍RDB和AOF的内部原理和区别 RDB Redis运行时会将当前的内存快照存入至磁盘中&#xff…

c++ 字符串与STL用法

文章目录 StringVector构造增加删除大小清空排序 map定义添加数据遍历数据查找清空删除长度判断空交换排序常用用法 String Vector vector是动态扩充的数组 构造 ​ vector()​:创建一个空vectorvector(int nSize)​:创建一个vector,元素个数为nSize​vector(int nSize,co…

【MATLAB】基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据(附代码)

基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据 WiFi指纹匹配是室内定位最为基础和常见的研究&#xff0c;但是WiFi指纹的采集可以称得上是labor-intensive和time-consuming。现在&#xff0c;给大家分享一下我们课题组之前在做WiFi指纹定位时的基于射线跟踪技术仿真WiFi…

Josephus排列:组合数学与跨学科应用

Josephus排列&#xff1a;组合数学与跨学科应用 一、背景二、定义和历史三、问题的形式化描述四、解决方案4.1 n2&#xff0c;任意m4.2 m1&#xff0c;任意n4.3 n为奇数&#xff0c;m为偶数4.4 n和m都是奇数 五、红黑树简介六、Josephus排列问题描述七、使用红黑树解决Josephus…