弱监督语义分割的token对比笔记

Token Contrast for Weakly-Supervised Semantic Segmentation

摘要

目的:

  • 使用图像级标签的弱监督语义分割(WSSS)通常利用类激活映射(CAM)生成伪标签。
  • 受CNN局部结构感知的限制,CAM通常不能识别整体目标区域。
  • 虽然最近的视觉转换器(ViT)可以弥补这一缺陷,但我们观察到它也带来了过度平滑的问题,即最终的补丁令牌倾向于均匀。
  • 进一步探索ViT在WSSS中的优点

解决办法:

  • patch token对比模块( PTC):
    PTC使用从中间层派生的伪标记关系来监督最终的补丁标记,允许它们对齐语义区域,从而产生更准确的CAM。
  • 类token对比模块(CTC):
    为了进一步区分CAM中的低置信区域,CTC通过对比不确定局部区域和全局对象的类标记,促进了它们之间的表示一致性。

在这里插入图片描述
代码链接
论文链接

方法

在看本文方法之前需要了解CAM和VIT
在这里插入图片描述
ToCo使用ViT编码器中的辅助分类层来生成辅助CAM,辅助CAM随后用于生成辅助伪标签并指导PTC模块。同时,它还用于为CTC模块提供裁剪正、负局部图像的建议。使用分类层获得最终的CAM,并用于生成最终的伪标签

PTC(Patch Token Contrast)

目标是解决最终的patch token过度平滑问题,由于中间层仍然可以保持补丁令牌的语义多样性,在PTC中,利用中间层的知识,来监督最终的patch token。
在辅助分类头中,首先通过全局最大池化(GMP)聚合patch token得到Fm,然后用θm参数化的全连接层进行投影,计算辅助分类损失Lcls。因此,辅助CAM计算为
在这里插入图片描述
然后使用两个背景阈值βl、βh (0 < βl < βh < 1)将Mm分割到由可靠的前景、背景和不确定区域组成的伪令牌标签Ym。
生成的令牌标签Ym用于派生可靠的成对关系,用于监督最终的patch token。具体来说,如果两个token共享相同的语义标签,则它们被标记为正对;否则,它们被标记为负对。此外,为了保证可靠性,我们只考虑两个都属于可靠的前景或背景区域的令牌,忽略不确定区域。为了弥补过度平滑的问题,我们最大化两个最终补丁标记的相似性,它们属于正对,并最小化相似性。设F∈Rn×d为最终层补丁令牌,则PTC模块的损失函数构造为
在这里插入图片描述
然而,最小化原始余弦相似度并不能保证多样性,因为负余弦相似度的令牌对(例如−1)可能是高度相关的。
因此,在实践中,在公式3中,使用绝对余弦相似度代替原来的形式。通过最小化公式3,鼓励正符号的表示更一致,而负符号对更有区别,这样就可以很好地解决过平滑问题。

Class Token Contrast

设计了类令牌对比(class Token Contrast, CTC)模块,以促进局部非显著区域与全局对象之间的表示一致性,从而进一步强制CAM中激活更多的对象区域。
在这里插入图片描述
给定一幅图像,首先从其辅助CAM指定的不确定区域中随机裁剪局部图像。由于ViT中的类令牌捕获了语义对象的信息,因此全局图像和局部图像的类令牌分别聚合了全局和局部对象的信息。通过最小化全局和局部类标记之间的差异,整个对象区域的表示可以更加一致

为了应对裁剪的局部图像可能包含很少或没有前景对象的情况,如图3所示,我们还从背景区域裁剪了一些局部图像
通过最大化全局图像和局部背景区域的类标记之间的差异,也可以促进前景背景的差异。在实践中,我们随机裁剪固定数量的局部图像,并在伪标签Ym的指导下将其分配为正的(来自不确定区域)或负的(来自背景区域)
全局和局部类令牌首先分别通过投影头Pg和Pl,它们由线性层和L2归一化-组成
假设p表示投影的全局类令牌,Q+/Q−表示从不确定/背景区域中截取的投影局部类令牌集,CTC的目标是最小化/最大化p与Q+/Q−中局部类令牌之间的差异。这里我们使用InfoNCE损失作为目标,即

在这里插入图片描述

值得注意的是,CTC旨在加强局部视图表示来对齐全局视图。因此,我们停止投影头Pg的梯度。为了更新Pg,我们使用指数移动平均(EMA),即θg←ρθg +(1−ρ)θl,其中ρ是动量因子,θg和θl分别是来自Pg和Pl的参数。
训练目标为:
在这里插入图片描述
此外,将提议的ToCo插入到单阶段WSSS框架中。具体来说,由ToCo生成的伪标签然后使用像素自适应细化模块(PAR)进行细化,以对齐低级语义边界。改进后的伪标签将被用来监督分割解码器。我们使用常见的交叉熵损失作为分割损失Lseg。
因此,总体培训目标应包括Lseg,即。
L = Ltoco + λ3Lseg。
继之前的单阶段WSSS工作之后,我们还使用了一个额外的正则化损失项来加强预测分割mask的空间一致性

实验结果

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

总结

设计了一个patch token对比模块(PTC)。PTC将最终的patch表示与从中间层提取的知识进行对比,经验证明该方法可以很好地解决过平滑问题。根据ViT中类标记可以捕捉高层次语义的观察,我们进一步提出了类标记对比模块(class token Contrast module, CTC),对局部图像和全局图像的类标记进行对比,以促进整体对象区域的表示一致性。将ToCo插入单阶段WSSS框架,并在VOC和COCO数据集上进行了广泛的实验。实验结果表明,ToCo的性能明显优于其他竞争者。

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

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

相关文章

汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】

目录 一、99乘法表 汇编代码 效果 二、整数拆分 问题描述 c代码 汇编代码 效果 三、素数环 问题描述 c代码 效果 四、迷宫问题 问题描述 c代码 汇编代码 效果 一、99乘法表 汇编代码 INCLUDE Irvine32.inc .data a db *,0 .code main PROC mov ebx,1;ebxi m…

给对象新增两个数组,并分别给对象名称、名字

给对象新增两个数组&#xff0c;并分别给对象名称 代码如下&#xff1a; let a {}a.shuzu [1, 2, 3]a.zhangzu [5, 6, 7]console.log(测试添加, a)console.log(打印后台传递的值, this.res)

ToBeWritten之物联网MQTT、Z-Wave等协议

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

gpt训练数据-网页版chat软件

gpt-3 中文 api 目前&#xff0c;OpenAI官方并没有针对GPT-3的中文API&#xff0c;但是有一些第三方机构或者开发者提供了自己的中文API接口&#xff0c;可以使用GPT-3模型进行中文文本生成&#xff0c;利用这些API可以简单地进行中文文本生成等任务&#xff0c;尤其是对于不擅…

详解电容加速电路-加速电容

基本的晶体管开关电路 饱和开关的问题点&#xff1a;关断延时时间 如图1所示&#xff0c;使场效应晶体管开关动作时&#xff0c;加给晶体管的基极电流IB&#xff1a; IBIC/hFE。 晶体管饱和动作时&#xff0c;如图2所示&#xff0c;基极电流IB&#xff0c;即使为0&#xff…

【基础】索引

索引目的&#xff1a; 快速的查找我们的数据 索引的优势和劣势 优势 类似于书籍的目录索引&#xff0c;提高数据检索的效率&#xff0c;降低数据库的io成本 通过索引列对数据进行排序&#xff0c;降低数据排序的成本&#xff0c;降低CPU的消耗 劣势 实际上索引也是一张表&…

【艾特淘】电商干货-淘宝新卖家运营的8个步骤

1、选品 选品是运营的第一步&#xff0c;后续的运营工作都是以商品为载体&#xff0c;以挖掘市场潜力商品&#xff0c;帮助提升宝贝效果&#xff0c;优化库存状况&#xff0c;监控热销单品&#xff0c;跟踪竞争对手&#xff0c;打造爆款为运营主要目标。 1、行业热销品类、品牌…

⭐蓝桥杯高频题单——1.子串分值和(枚举 / 计算贡献 / 前缀数组 / 哈希思想)

⭐子串分值和⭐ 方法一&#xff1a; 暴力 在做这道题的时候我想到了以前力扣做的一道Leetcode.78. 子集__DFS算法剖析讲解。初始我的想法是通过深搜找到所有可能的子串&#xff0c;再对他们分别计算f(S)&#xff0c;从而得到所有的f(S)之和。但是经过思考发现&#xff0c;这里…

ChatGPT让现在的软件都土掉渣了

我们家有两个娃&#xff0c;每次我们想要出去时订个酒店时都好麻烦。我在某程上找&#xff0c;我先看有没有家庭房&#xff0c;但家庭房很少&#xff0c;而且有些家庭房实际上只能睡得下两大一小。普通房间能不能睡得下四个人&#xff0c;那可是得查看很多信息&#xff0c;如床…

SpringBoot——SB整合mybatis案例(残缺版本)第四集(真*大结局)

基础登录功能 要求输入用户名和密码然后从对应的数据库员工表当中查询是否存在对应员工: 查询成功 查看接口文档 响应数据中有一个JWT令牌。 实现思路 新建一个LoginController用于接收登录请求&#xff0c;然后调用EmpService中的借口进行查询操作。 三层架构的代码 Pos…

病毒丨熊猫烧香病毒分析

作者丨黑蛋 一、病毒简介 病毒名称&#xff1a; 熊猫烧香 文件名称&#xff1a; 40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496 文件格式&#xff1a; EXEx86 文件类型(Magic)&#xff1a; MS-DOS executable 文件大小&#xff1a; 29.30KB SHA256&…

【阅读论文】USAD:多变量时间序列上的无监督异常检测

USAD : UnSupervised Anomaly Detection on Multivariate Time Series 摘要 IT系统的自动监控是Orange目前面临的挑战。考虑到其IT运营所达到的规模和复杂性&#xff0c;随着时间的推移&#xff0c;用于推断正常和异常行为的测量所需的传感器数量急剧增加&#xff0c;使得传统…

【C++】内存管理+模板

前言&#xff1a; 本章将详细讲解C内存管理和模板的实现。 第一部分我们讲解C内存管理&#xff0c;C语言中有malloc/calloc/realloc等开辟空间和free释放空间&#xff0c;那么C将符合实现呢&#xff1f; 第二部分我们会一起来初步认识模板与泛型编程&#xff0c;并详细探讨函…

微服务高级篇【1】之微服务保护

文章目录前言一 初识Sentinel1.1 雪崩问题1.2 解决方法1.3 小结1.4 服务保护技术对比1.5 Sentinel介绍1.6 Sentinel安装1.7 微服务整合Sentinel二 测试工具&#xff1a;Jmeter2.1 Jmeter安装和配置2.2 Jmeter快速入门2.2.1 设置中文语言2.2.2 设置Jmeter桌面快捷图标2.3 Jmeter…

已经提了离职,还有一周就走,公司突然把我移出企业微信,没法考勤打卡, 还要继续上班吗?...

黎明前的黑暗最容易出事&#xff0c;离职前的几天也最容易出幺蛾子&#xff0c;比如下面这位网友的遭遇&#xff1a;已经提了离职&#xff0c;还有一周就正式离职了&#xff0c;公司突然把我移出企业微信&#xff0c;没法考勤打卡了&#xff0c; 还要继续上班吗&#xff1f;该怎…

BGP小型实验

实验分析 1.主要考察的是对BGP配置的熟练 2.实验需要在R1与R5分别发布一条路由可以在BGP 中使用network 网段 掩码命令 3.R1与R2,R4与R5是EBGP&#xff0c;而R2,R3,R4是IBGP 实验操作 1.配置接口ip,与环回路由 以R1为例 2.AS内部需要实现非直连的建立是需要保证IBGP内部是通的所…

蓝桥杯30天真题冲刺|题解报告|第三十天

大家好&#xff0c;我是snippet&#xff0c;今天是我们这次蓝桥省赛前一起刷题的最后一天了&#xff0c;今天打了一场力扣周赛&#xff0c;前面3个题都是有思路的&#xff0c;第三个题只过了一半的案例&#xff0c;后面看完大佬们的题解彻悟&#xff0c;下面是我今天的题解 目录…

蓝桥杯备考

数论&#xff1a;判断素数&#xff0c;鸽笼定理&#xff0c;抽屉理论 注意事项&#xff1a; long类型的数后面要加L long s 2658417853L; 保留几位小数&#xff1a; System.out.printf(“%.2f”, arg); 四舍五入问题&#xff1a;比如保留两位小数&#xff0c;就在数的后面再…

java基础知识汇总

目录 1、Java基础语法 1、类型转换问题 1. 运算符 1.1 算术运算符&#xff08;理解&#xff09; 1.2 赋值运算符&#xff08;应用&#xff09; 1.3 自增自减运算符&#xff08;理解&#xff09; 1.4 关系运算符&#xff08;应用&#xff09; 1.5 逻辑运算符&#xff08…

【CSS】清除浮动 ④ ( 清除浮动 - 使用双伪元素清除浮动 | 代码示例 )

文章目录一、清除浮动 - 使用双伪元素清除浮动二、代码示例一、清除浮动 - 使用双伪元素清除浮动 为 .clearfix:before 和 .clearfix:after 并集选择器 , 设置如下样式 : /* 清除浮动 - 使用双伪元素清除浮动 */.clearfix:before,.clearfix:after {content: "";displ…