SAM+ARM

news/2025/10/28 21:23:54/文章来源:https://www.cnblogs.com/Upwardxx/p/19172771

image

一、首先是图像caption的生成。

输入的图像,被输入进BLIP的图像编码器得到图像嵌入image,图像嵌入再经过imageBLIP Image-grounded Text Decoder
得到图像caption。

image

ti表示caption的第i个单词,总共有L个单词。

但是,caption中会存在与目标对象无关的内容(floor),分散了注意力。所以我们使用spaCy库进行词性标记,提取出现在caption中的第一个名词

二、Initial Multimodal Prompt的生成。

我们将图像嵌入image与名词image输入进BLIP Image-grounder Text Encoderimage,然后它会输出一个分数S,反应输入图像与文本的匹配程度

image

Across表示来自imagecross attention layer注意力权重,反映着图像和文本的关系

接着,通过反向传播以获得梯度Gcross,Gcross再与Aross进行element-wise(逐元素运算)。

image

Pinit就是Initial Multimodal Prompt
Grad-CAM表示梯度加权类激活映射,是一种可视化技术,可视化BLIP(输入多模态数据后)的对齐过程,以生成热力图(Pinit)。
这里的平均操作是,对每个注意头下不同文本序列对图像的影响进行平均,从而得到最终的Pinit。
也就是说,哪里影响最大,图像的哪里就高亮

image

上面得到Pinit后,我们发现Initial的掩码是不完整的,所以我们设计了ARM模块来优化这个不完整prompt。
因为,我们输入的文本只有一个名词,并没有额外的描述,所以最初生成的prompt只能粗略地之时对象的位置,而不能完全捕获其结构。

三、ARM
1、Adapter部分

image

对于每一个Adapter模块,计算过程是(Conv是二维卷积):

image

对于第k个Adapter模块的输出:

image

等号左边是第k个Adapter模块的输出,右边的第一个Emb是从上面来的Vision Embedding(BLIP Image Encoder),第二个Emb是从下面来的嵌入(SAM Image Encoder中的第k个Transformer Layer输出的图像嵌入)。

2、SAM图像编码器的优化。

上面第k个Adapter的输出SAM图像编码器中第k个Transformer层的输出相结合,作为第k+1个Transformer层的输入

image

从左到右,第一个Emb第k+1个Transformer层的输入第二个Emb第k个Adapter的输出第三个Emb第k个Transformer层的输出

3、对热力图的优化。

CLIP-ES[32]的启发,我们不重新训练另外的模型来精炼Pint,而是从image中提取注意力权重Aself,并使用最后一层Adapter的输出(吸取了所有的图像信息)来调整注意力权重。

image

问:为什么要从image中提取?

答:我们的Pinit是通过输入image和名词然后对齐得到的,所以要提取它里面的注意力权重。

然后:

image

其中,vec(M)是通过提取Pinit的高亮区域而产生的掩码M的矢量化。这里的第一个操作符还是Element-wise逐元素运算,第二个是矩阵乘法

然后我们就得到了优化后的热力图,提取其中的高亮区域,得到最终的高质量掩码。

4、最后SAM Decoder的输入(共三个输入)。

(1)上一步生成的高质量掩码,经过SAM Prompt Encoder,生成密集嵌入。这是第一个输入。

image

(2)将SAM图像编码器中最后一个Transformer层产生的图像嵌入ARM模块中最后一个Adapter层产生的图像嵌入相结合,得到最终的图像嵌入。这是第二个输入。

image

(3)我们把名词输入进Mamba得到对应的文本嵌入image
,再将文本嵌入与image相结合,得到辅助稀疏嵌入。这是第三个输入。

image

这三个一起输入进SAM Decoder,得到最终的分割结果。

总结一下整个过程:

1、图像输入进BLIP图像编码器得到图像嵌入,
2、这个图像嵌入先经过文本解码器得到描述
3、在描述中提取第一个名词,输入进BLIP Image-grounded Text Encoder得到文本嵌入,
4、在BLIP Image-grounded Text Encoder中进行图像嵌入和文本嵌入的对齐,得到Pinit
5、但是Pinit是低质量的,所以我们引入了ARM模块优化Pinit
(1)ARM一方面用来优化SAM Image Encoder,有效地将Adapter提取的图像特征集成到SAM中(第k个Adapter的输出与第k个Transformer的输出相结合作为第k+1个Transformer的输入),
(2)ARM一方面通过调整图像嵌入里的注意力权重(最后一个Adapter的输出与初始权重Elemrnt-wise)来优化Pinit。
6、得到高质量掩码后,最后输入进SAM Decoder就好了。
7、另外还有一个辅助稀疏嵌入,将名词输入进Mamba得到文本嵌入,然后与图像嵌入级联Concat

实验:

常用的COD数据集(4个):CHAMELEON、CAMO、COD10K、NC4K

评估指标(4个,前三个值越高效果越好,第四个值越小效果越好):

image

与其他SOTA的比较(table 1、figure 5):

image

image

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

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

相关文章

《代码大全2》观后感(二):需求分析——代码质量的“源头防线”

《代码大全2》观后感(二):需求分析——代码质量的“源头防线” “为什么明明按需求写的代码,最后还是要推翻重写?”这是我过去常有的困惑,直到读了《代码大全2》中“需求分析”的章节,才找到答案:很多时候,我…

NRF54LM20A 芯片的优点

多达 66 个 GPIO 7 个串行接口(SPI、TWI、UART、HS-SPI) 14 位 ADC、全局 RTC(在系统关闭状态下可用)、TDM、PDM、NFC、PWM、QDEC 等 显著降低的功耗 - 与 nRF52 系列相比,典型蓝牙低功耗应用场景下功耗降低约 30-50% …

零散点小总结(25.10.28)

今天练习了Dp,主要把Dp重新看待了一下,有以下几点Dp其实本质是一种表,用于储存子问题的答案 Dp中其实还有枚举,只是由于子问题被存入表中了,所以减少了时间复杂度 一个搜索其实就是Dp的暴力解,有很多的子问题,但…

Top Tree大学习

前言 \(Top Tree\) 用来解决 路径查询,动态 \(dp\) 等问题。 信息储存在 簇 中。 簇(\(Cluster\)) 树上一个边联通块,可以收缩成一条边,我们成这样的联通子图为 簇。 簇上的某些点与其它簇相接,我们称其为簇的 端…

乱学点东西目录

这里记录了各种各样的奇奇怪怪的算法/思路/数据结构,好玩! 乱学点东西#1 :二进制警报器可以自由转载

CFS任务的负载均衡(load balance)

前言 我们描述CFS任务负载均衡的系列文章一共三篇,第一篇是框架部分,第二篇描述了task placement和active upmigration两个典型的负载均衡场景。本文是第三篇,主要是分析各种负载均衡的触发和具体的均衡逻辑过程。 …

EVE-NG导入华为等镜像的方法

镜像下载Dynamips:思科设备真实IOS镜像,类似GNS3,电脑CPU利用率非常高。 IOL:IOU模拟器的镜像,基本完全支持思科设备二、三层功能。 QEMU:这已经不是镜像文件,而是KVM虚拟机安装操作系统后生成的磁盘文件,通常…

(简记)一类支配点对解决区间查询问题

前言:最近好像见了挺多这种题,记录一下。 支配点对 我们经常遇到树上或区间上关于 \(x,y\in[l,r]\) 一类的区间统计问题,且通常要求区间内点两两任意匹配并统计总贡献,这个贡献不具有简单可加性。我们往往通过找支…

2025 云斗

10/27 Contest 5 A:小分讨+dp C:发现是所有的数和它的倍数有限制,对于值域 \(n\) 这样的限制也只有 \(\sum\limits_{i=1}^n\frac{n}{i}=n\log n\) 个,考虑如何表示这些限制。 考虑对于限制 u,v,若两点都不是对方的…

c++ ranges随笔

ranges c++20引入,在<ranges>头文件中 建立在 std::algo 和 iterator基础上,并做了进一步的抽象集成 与之前相比更加的 安全、简洁、方便 // ranges concept template <typename T> concept range = req…

qoj14458. 调色滤镜

qoj14458. 调色滤镜 平面 \([1,10^9]\times[1,10^9]\) 上有 \(n\) 个点,点 \(i\) 位于 \((x,y)\),有颜色 \(c_i\in [0,9]\)。 有 \(q\) 次操作,每次对平面上一个矩形范围内的点的颜色作用映射 \(f:[0,9]\rightarrow…

第8天(中等题 不定长滑动窗口、哈希表)

打卡第八天 3道中等题滑动窗口相当于在维护一个队列。右指针的移动可以视作入队,左指针的移动可以视作出队。 熟练度+++ 可以十几分钟独立写出相似题了^O^/ 耗时≈一小时 明天继续

P10259 [COCI 2023/2024 #5] Piratski kod

题链 题意 首先,题目写的很抽象,模拟赛时读了半个小时才读懂 题意概括一下就是枚举长度为k的所有01串 然后对01串进行划分,每遇到两个1就进行一次划分 然后把每段提取出来单独处理 如果把提出来的01串计为\(s[1...r]\)…

巧用 using 作用域(IDisposable)的生命周期包装特性 实现前后置处理

需求:在多个方法前后输出日志 logger.Info("begin"); method(); logger.Info("end");如果需要在方法后输出日志同时加上时长 logger.Info("begin"); var sw= Stopwatch.StartNew(); me…

2025.10.27训练记录

其实是10.28晚上写的。感觉就这个题要记录一下。 上午noip模拟。喜提一道不会。 B 题外话: 7:45 开始考试,广附集训爷大吼一声我做过!声称A完全不可做,但B他场切了。于是我开场看B。 那就看B,7:50闭了一下眼睛,睁…

软考复习总结

距离软考还有不到十天,主要对学习的知识点进行总结回顾(以下知识点无顺序重点): 1.对于尾数用补码进行表示时,要注意如果机器位8位,已知补码包含一位符号位,则补码真值的范围(-2n-1,2n-1 - 1), 则将其转换为…

实用指南:Eclipse 透视图(Perspective)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

? #6

100 + 0 + 80 + 0 = 180, Rank 2/6.2024暑期CSP-S&NOIP模拟赛第8套题⾯ 链接:link 题解:暂无 时间:4h (2025.10.28 14:00~18:00) 题目数:4 难度:A B C D\(\color{#F39C11} 橙\) \(\color{#FFC116} 黄\)*1000 …

鲜花:不会说明你有抑郁症3

这回是广为人知题了。自然数幂和:给定 \(n,k\),求 \(\sum_{i=1}^{n} i^k\),\(n\le 10^{18},k\le 2000\)。本来以为用扰动法求自然数幂和很猎奇,结果一搜出来十来篇博客。唉我还是太菜了。 尝试扰动法处理。 设: \…

算法竞赛知识点速通手册

1. 基础贪心:邻项交换与证明 贪心算法的精髓在于“局部最优”导向“全局最优”。然而,其正确性并非总是显而易见的,需要严谨的数学证明。邻项交换(Exchange Argument)是证明一类排序相关贪心策略最经典、最强大的…