【论文阅读】TransCAM: Transformer Attention-based CAM Refinement for WSSS

news2024/12/26 10:55:34

分享一篇阅读的用于弱监督分割的论文

论文标题:

TransCAM: Transformer Attention-based CAM Refinement for Weakly Supervised Semantic Segmentation

作者信息:

在这里插入图片描述

代码地址:

https://github.com/liruiwen/TransCAM

Abstract

大多数现有的WSSS方法都是基于类激活映射(CAM)来生成像素级的伪标签,用于监督训练。但是基于CNN的WSSS方法只是凸出最具有区别性的地方,即CAM部分激活而不是整体对象。作者提出了TransCAM模型,它基于Conforme的backbone结构,利用transformer的attention权重来细化CNN分支的CAM。

Introduction

在这里插入图片描述

现有的方法: 基于CNN训练分类网络的激活CAM,然后训练一个完整的监督网络。
现有方法的缺点:主要是部分激活问题,由类模型生成的CAM倾向于突出对象中最具区别性的部分而不是整体(如图1所示)。作者认为这个根本是CNN造成的,它的局部性质的接受阈只捕获小范围的特征依赖性。(就是说CNN还是感受野小了,偏向Local).
作者的motivation: 和CNN相比,Transformer更加具备整体性,利用多头自注意和多层感知器来捕获远程语义关联。并且Transformer不太注重局部细节信息,这都比较利好WSSS任务。
作者的方法: 使用Conformer作为主干网络(一种结合CNN和Transformer的结构)。原本的Conformer仅仅通过隐形的方式(FCU结构)对transformer分支的注意力权重进行调整,导致WSSS任务表现不佳。作者提出了TransCAM模型,直接利用transformer的注意力权重微调cnn分支生成CAM。另外Transformer也跟CNN类似,低层次block和高层次block各有其特点,具体方法上,作者通过对所有的多头注意力权重值进行平均,进而构建同时embedding低level和高level特征affinity的注意图。

Methodology

在这里插入图片描述

3.1. Preliminaries

The Conformer network: 一个由CNN和trasformer组成的双主干网络(主要结构见figure2红色部分),上方是resnet,下方是vit,中间通过FCU模块继进行连接。
Class Activation Map: 常规的CAM方法,计算公式如下:
在这里插入图片描述

3.2. CAM Generation from Conformer

先通过CNN的分支,获得初始的CAM,记为 M M M
(作者分析了这种CAM比一般的单backbone的强,因为有transformer分支提供的fcn进行隐形的调节,没有充分利用注意权重的特征亲和信息进行定位。

3.3. Attention Map Generation

首先计算第 l l l层transformer block的attention权重,公式如下:
在这里插入图片描述
其实就是Q跟K的点集加上softmax(常规attention计算中,除了v的其他部分),然后在这个基础上,对每个head取平均值,然后再在多个transformer block上也求平均值(浅层block和深层block都一起算)
在这里插入图片描述
同时这里剔除transformer中的cls token,因为后面用不到,即:
在这里插入图片描述

3.4. Attention-based CAM refinement

利用前面计算的attention权重,对初始的CAM进行refine。利用矩阵的乘法即可:
在这里插入图片描述
后面这个操作是reshape,让feature map重塑到相当的尺寸。

3.5 Training and Pseudo Label Generation

模型的分类的logits是由cnn分支和transformer分支共同作用输出的(见figrue2),即:
在这里插入图片描述
模型仅有分类损失函数,计算方法为:
在这里插入图片描述
其余设置和常规的WSSS任务一样,给背景手动设置score:
在这里插入图片描述
使用argmax获得伪标签:
在这里插入图片描述

Experiments

消融实验
在这里插入图片描述
在这里插入图片描述

一阶段的结果:
在这里插入图片描述
二阶段的结果:
在这里插入图片描述

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

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

相关文章

java判断某个字符串是否在字符串数组中的方法(4种)

1.效率最高(最原始) 代码如下(示例): public class Demo { public static boolean useLoop(String[] arr, String targetValue) { for (String s : arr) { if (s.equals(targetValue)) return true; } return false; }…

图像分类——模型微调

目录 微调热狗识别获取数据集模型构建与训练 微调 热狗识别 获取数据集 import tensorflow as tf import pathlibtraindirhotdog/train testdirhotdog/test image_gentf.keras.preprocessing.image.ImageDataGenerator(rescale1/255) train_data_genimage_gen.flow_from_direc…

2023年Q2空调行业品牌数据榜单(京东商品数据)

随着夏季的来临,高温天气也带动部分家电行业的销售,以空调为代表的家电市场正逐步恢复活力。结合鲸参谋电商数据分析平台的相关数据,我们来分析一下2023年Q2空调市场的具体销售表现。 根据鲸参谋平台的数据显示,2023年4-6月份&am…

TypeScript学习(2)- ts基本类型

类型声明式Ts非常重要的一个特点,通过类型声明可以指定TS中变量(参数,形参)的类型。指定类型后,当为变量赋值时,ts编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。 目录 …

从VAE到Diffusion生成模型详解(1):VAE

文章目录 1. 生成式模型简介2. PixelRNN/CNN3. VAE3.1 自编码器AE3.2 VAE基本原理3.3 VAE公式推导 4. 参考 1. 生成式模型简介 什么是生成式模型 给定训练集,产生与训练集同分布的新样本。如下图所示,希望学习到一个模型 p m o d e l ( x ) p_{model}(…

22 分页控件

文章目录 界面设置初始化主对话框子页面初始化 页面1枚举窗口页面2枚举进程全部代码 界面设置 ui 设置 >创建CTablCtrl > 创建页控件(子窗口),style设置成为chlid 添加类 页面中加入listCtrl 控件 添加变量 分别添加初始化函数 初始化…

举例说明单层神经网络的工作原理

假设我们有一个简单的单层神经网络,用于解决一个简单的问题:根据一个人的年龄(x)来预测其收入(y)。在这个例子中,输入数据只有一个特征(年龄),因此我们可以用…

Can转以太网网关can协议转以太网协议

YC-ETH-CAN-2 是一款用来把 CAN 总线数据转为网口数据的设备。网口支持 TCP Sever、TCP Client、UDP Sever、UDP Client、UDP Broadcast 模式,可以通过软件配置和网页配置。 设备提供两路 CAN 接口,两路 CAN 可分别配置为不同的工作模式,独立…

[QT编程系列-4]:C++图形用户界面编程,QT框架快速入门培训 - 2- QT程序的运行框架:信号、槽函数、对象之间的通信

目录 2. QT程序的运行框架 2.4 设计界面元素的行为:信号、槽函数、对象之间的通信 2.4.1 对象之间的通信 2.4.2 信号槽与消息队里区别 2.4.3 预定义信号与默认槽函数 2.4.4 预定义信号与默认槽函数:案例2 2.4.5 预定义信号与自定义槽函数&#xff…

【JVM系列】类加载机制和双亲委派机制(一)

使用java8 一、类加载运行全过程 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。 package jvmdemo;public class Math {public static final int initData 666;public static User user new User();public int comput…

立创EDA(专业版)电路设计与制作快速入门

1.新建工程的时候 (要注意用版本控制,项目名,日期,版本) 2.原理图设计环境设置 3.电源转换电路 电源是一般是5v转3.3v电路 电源主要的可以选择LLDO来降压的或者是DCDC减压 这个电路主要是用LDO来降压的 AMS1117降…

操作系统Linux—day01

编程 网页 软件 网站项目 知识点: 前端页面:HTML css JavaScript JQuery VUE 数据库:Oracle MySQL 服务器:服务器的操作系统Linux Http://115.159.96.174:8090/EasyBuy/ www.baidu.com>http://180.101.49.12/ 后台技术…

【iOS】消息传递

Objective-C是一种动态语言,因此其很多行为是在运行时决定的。对于静态语言来说,函数的调用在编译时就已经确定。动态语言则不然,动态语言通过一些巧妙的机制使得函数的真实调用是在运行时决定的,即动态语言的特点是将一些决定性的…

2、常用基本命令-文件

Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以 通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。 本章就将分类介绍 常用的基本 shell 命令。 7.1 帮助命令 7.1.1 man 获得帮助信息 1)基本…

大于100万行数据如何转换坐标、格网生成和裁剪、低格网数据提取

在工作过程中,对于100万以下的数据,我们一般使用EXCEL进行操作,但对于大于1百万行的数据,EXCEL也无能为力。此时,解决办法有三种:(1)拆分成几个小于100万的文件,再用EXCE…

机器学习原理

此次主要是由分类来引出 由于宝可梦的图片比较简洁,而数码宝贝的图片就显得比较复杂,我们计算出他们的轮廓,求出白色数量的多少。 e的函数会计算线条的复杂程度。当得出的线条的复杂程度,小于h。我们认为其是宝可梦,反…

Python(七)二进制

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

Mac非brew方式安装OpenResty教程

本文版本基于openresty-1.15.8.1和pcre-8.4.4安装。 一、安装前准备 由于openResty本质上还是基于nginx和Lua的高性能Web平台,安装openResty前需要先安装好openssl和pcre。 小编的机器因为之前安装过nginx,所以openssl和pcre已经有了。openssl的安装目…

Python(六)转义字符和原字符

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

包管理工具:npm、yarn、cnpm、npx、pnpm

yarn:  yarn是由Facebook(react)、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具;  yarn 是为了弥补早期npm 的一些缺陷而出现的;  早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列…