【论文阅读笔记】PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation

1.论文介绍

PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation
PA-SAM:用于高质量图像分割的提示适配器SAM
2024年 ICME
Paper Code

2.摘要

Segment Anything Model,SAM在各种图像分割任务中表现出了优异的性能。尽管SAM接受了超过10亿个mask的训练,但在许多场景中,尤其是在现实世界的背景下,SAM在面具预测质量方面面临着挑战。本文在SAM中引入了一种新颖的提示驱动适配器,即Prompt Adapter Segment Any Model(PA-SAM),旨在提高原有SAM的分割掩码质量。通过专门训练提示适配器,PA-SAM从图像中提取详细信息,并在稀疏和密集提示级别优化掩码解码特征,提高SAM的分割性能,以生成高质量的掩码。

Keywords

3.Introduction

SAM能够根据提示为任意图像生成多个准确而合理的掩码,展示了分割任务中的实质性影响和潜在的进步。随后的研究已经将SAM的应用扩展到不同的领域。然而,实际应用揭示了SAM在高质量分割性能方面的局限性,其显著特征是网球拍和椅子等对象的掩码边界粗糙,以及对风筝线和昆虫触角等细节的错误预测。为了解决上述问题,HQ-SAM引入了一个高质量的令牌来捕获图像中的更多细节,通过只添加几个参数来极大地提高SAM的分割质量。然而,HQ-SAM中使用的隐式学习方法使得提高SAM的分割能力具有挑战性,因为它主要专注于提取SAM的掩码译码特征来进行分割训练,而该特征是独立于SAM的整体框架的。一些基于提示查询的方法利用图像特征生成固定的稀疏提示,可以有效地获取目标对象的位置,但难以捕获详细的对象信息。此外,集成或扩充方法重复使用原始的输入稀疏提示,在具有挑战性的领域产生有限的收益。因此,开发一种能够直接向SAM提供详细信息并提高掩码译码性能的网络是非常必要的。直觉上,实现这一目的的最直接方法是提供更详细的注释,例如附加点或更精确的掩码。受到这种天真直觉的启发,作者想知道该模型是否可以自动提取细节并将其传达给SAM,从而显著提高SAM的分割质量,而不需要额外的用户输入。

作者在本文中引入了Prompt Adapter Segment Anything Model(PA-SAM),这是一个旨在调查图像中不确定区域并将低级别详细信息纳入密集和稀疏提示中的网络,以增强SAM对细节的学习能力。为了捕捉细节,提出了一种提示驱动的适配器来执行自适应细节增强和硬点挖掘。与传统适配器不同,提示适配器不优化图像特征,而是优化提示特征以提取关于网络焦点区域的详细信息。将模板求精的过程转化为求精令牌和不确定令牌的学习,使模型对具有挑战性的区域中的图像细节更敏感。此外,还提出了一种基于Gumbel top-k操作的硬点挖掘方法,为模型提供了直接详细的指导。在训练过程中,PA-SAM冻结SAM组件,只训练提示适配器,从而在生成高质量分割图的同时保留了原始SAM强大的目标定位能力。

4.模型结构详解

在这里插入图片描述

为了捕捉高质量的细节信息,本文将图像细节转换为多粒度的提示特征,并将它们传递给掩码解码器。也就是说,以即时驱动的方式对SAM进行微调。基于这一思想,本文提出了一种可训练的提示驱动适配器,并将其集成到SAM中,形成了提示适配器SAM(PA-SAM)。PA-SAM的总体架构如图所示。PA-SAM将图像特征与密集提示相结合,并将其与稀疏提示一起发送到掩码解码器,在掩码解码器中,所提出的提示适配器根据每个块的自注意将图像特征和稀疏提示分别转换为密集和稀疏适配器提示。随后,将输出的提示特征以残差的方式重新整合到PA-SAM中,以优化掩码解码器的特征表示。

提示适配器(PA)
在这里插入图片描述

为了提高网络在不确定领域学习细节的能力,PA-SAM在SAM的掩码解码器中提出了一种可训练的提示驱动适配器,如图所示。该模块通过自适应细节增强和硬点挖掘将详细信息集成到网络中,以基于原始提示自适应地捕获相关细节信息。

自适应细节增强:为了捕获高质量的细节信息,Prompt适配器执行自适应细节增强,通过密集提示补偿稀疏提示优化从图像及其梯度中探索细节信息。
密集提示补偿。在图像编码过程中,由于其16×16的下采样,SAM经历了大量细节信息的损失。为了解决这个问题,本文设计了一个简单的补偿模块,它将原始图像I及其梯度∇I(如坎尼算子)编码misc.generalized_image_grad为引导信息。然后,通过使用一致表示模块(CRM)作为交叉注意或引导门,它可以保持输出特征和图像特征之间的一致性。通常,PA密集提示xpa可以由以下公式来表示:
xpa=Cm(Wg[i,∇i],x)(1)
其中,CRM是一致表示模块,并且Wg表示卷积运算。

这里密集提示通过原始图像I和特征梯度∇I补偿。首先cat两者,然后经过卷积,再通过交叉注意力或者引导门控机制(即文中的一致表示模块CRM)对齐密集提示x与卷积后的信息。

稀疏提示优化。PA-SAM进一步优化了稀疏提示特征,使详细信息能够流向稀疏提示,增强了模型对高质量图像分割的指导性。给定原始稀疏提示TIN,通过令牌到图像的交叉注意将它们转换为详细的稀疏提示Tpa:
TPA=注意(q=TIN,k=xpa,v=xpa)。(2)
这使得可以在保留原始的弱标记指导的同时优化稀疏提示表示。

稀疏提示优化的主要思路是使用稀疏提示作为查询(query),图像特征作为键(key)和值(value),通过注意力机制(attention)来更新稀疏提示,使其能够更好地指导分割任务。基于token-to-image跨注意力机制,将稀疏提示与图像特征结合。

此外,本文定义了不确定令牌UPA来识别具有挑战性的领域,并精炼令牌RPA来分割它们。这些令牌是在将掩码令牌与其各自的静态令牌连接起来之后通过MLP获得的。然后得到了三种不同的掩码:粗掩码MC、精化掩码MR和不确定掩码MU。用于监督PA-SAM的中间掩码Mpa如下:
在这里插入图片描述

掩码令牌是通过图像编码器和掩码编码器生成的特征表示,包含了图像中的初步分割信息。
静态令牌是一些固定的特征表示,用于辅助掩码令牌的处理。
生成不确定令牌和精炼令牌:通过一个多层感知机(MLP),将掩码令牌和静态令牌结合起来,生成不确定令牌和精炼令牌。
不确定令牌用于标识图像中不确定区域。精炼令牌用于对这些不确定区域进行进一步处理和优化。

困难点挖掘:在自适应细节增强的基础上,本文进一步提出将纹理细节的直接指导与稀疏提示结合起来。为此,提出了困难点挖掘,它利用稀疏提示优化中提到的MC、MR和MU来构造对挑战点进行采样的指导。以正点抽样为例,首先构造了初始抽样制导ϕ0。在训练阶段,为了确保采样点的多样性,将Gumbel-Softmax操作扩展到Gumbel top-k操作。在采样N个正点的情况下,具体过程如下:
在这里插入图片描述
其中γ∼Gumbel(0,1)、n∈N Sample和Gn表示当前样本的Softmax输出,定义如下:
在这里插入图片描述
将所有gn相加以获得g‘(g’=Pn∈N样本gn),其表示前k个softmax。然后,使用直通技巧获得最终的Gumbel top-k输出,如下所示:
在这里插入图片描述
其中sg是停止梯度运算符。
使用ˆg对PA密集提示xpa进行点采样,得到N个采样正点。同样,负点采样也使用Gumbel top-k操作,通过将ϕ0替换为Flatten(MU◦(MC−MR))来指导初始采样。这最终会产生新的点提示pSample。
通过稀疏提示优化和困难点挖掘,将PA稀疏提示TPA更新为:TPA=[ioupa,rpa,ppa,pSample,bpa],其中rpa表示精化的标记,pSample表示新的点提示。

硬点挖掘的核心思想是在训练过程中找到那些难以预测或误差较大的区域,并通过重点学习这些区域来提升模型的整体性能。1.首先通过模型生成不确定掩码(Uncertain Mask)和精炼掩码(Refined Mask),这些掩码帮助模型识别和处理图像中不确定和精细的区域。
2.使用不确定掩码和精炼掩码计算误差图(Error Map),误差图标识了模型在分割任务中预测误差较大的区域。误差图的计算公式如下:error_map=𝑀𝑈⋅∣𝑀𝑅−𝑀𝐶∣ 其中,𝑀𝐶是初步生成的粗略掩码(Coarse Mask)。
3.将误差图展平,以便于后续的采样操作。展平后,误差图变成一维张量,每个元素代表一个像素的误差。
Gumbel Top-k采样:使用Gumbel-Softmax或Gumbel Top-k操作,从展平后的误差图中采样那些误差较大的点(即“困难点”)。
4.在后续的训练过程中,对采样到的困难点给予更高的权重或更多的关注,以帮助模型更好地学习和处理这些复杂区域。

说明

代码写得好复杂。。
这篇文章通过image和image-encoder中的特征生成提示,入mask-decoder中。
生成提示的模块叫Prompt adapter。它将图像梯度和图像与密集提示通过交叉注意力对齐,使用token-to-image跨注意力机制将稀疏提示与图像特征结合。还定义了不确定token和精炼token辅助不确定区域生成。在稀疏提示上,还使用了困难点挖掘,计算出误差高的点,对密集提示进行点采样和Gumbel top-k操作生成新的点提示,以更新点提示。

代码太复杂了看得不是特别懂,可以结合代码阅读文章。

在encoder中:

early embedding:vit中在第一个全局注意力块(global attention block)之后提取早期层的特征
guiding embedding:图像梯度与图像cat后卷积
final embedding:image-encoder中输出结果
image record:图像信息 (有mask生成的边界框,所以它是有提示的)

mask decoder:
传入上面的信息和Prompt adapter和prompt encoder。
在decoder中,保留原来的结构,在transformer块的token to image计算中,再计算prompt adapter得到一系列结果。
prompt adapter会更新transformer块的atten、key 和 value。

计算网络输出的掩码与真实标签之间的损失(包括掩码损失和Dice损失),初步损失为掩码损失和Dice损失之和。
计算粗略掩码、精炼掩码和不确定性地图的损失(包括掩码损失和Dice损失),将最终掩码损失和Dice损失加到总损失中。
计算不确定性地图与真实标签之间的损失,将不确定性地图损失加到总损失中。

prompt adapter:
通过对 guiding_embedding 和 keys 进行乘法操作来生成新的指导嵌入;
使用交叉注意力机制将令牌和图像特征结合起来,更新查询张量;
通过连接静态嵌入令牌和查询张量的特定部分,并使用MLP生成不确定性令牌和精炼令牌;
计算不确定性掩码、精炼掩码和粗略掩码,并结合它们生成最终的掩码;
计算点的采样参考图:使用Gumbel-Softmax或Top-k操作来采样正点和负点,生成这些点的位置信息和内容,并更新查询张量和位置编码。

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

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

相关文章

软考又考了,数据库范式这次一定要弄懂!

0. 引言 今年数据库范式又作为选择题在软考中出题了,范式和反范式同样也在我们日常开发的数据库表设计工作中提供重要理论,今天我们来彻底弄懂几大范式的概念和区别,以及常见的反范式设计方法 1. 定义 1.1 基础概念 在实际讲解之前&#…

终于用上了桌面版本的chatGPT

最近经过不断的探索,也算是用上了桌面版本的chatgGPT,想要用同学,可以关注一下,后面我会出一期教程的~

docker安装elasticsearch8和kibana,带ik分词器

全文目录,一步到位 1.前言简介1.1 专栏传送门 2. elasticsearch和kibana安装2.1 准备工作2.1.1 下载elasticsearch2.1.2 下载kibana镜像 2.2 创建并运行es容器2.2.1 创建es网络2.2.2 创建es容器2.2.3 放行端口2.2.4 访问查看结果> 步骤一: 点击高级, 然后继续访问> 步骤二…

KIVY AliasProperty 运用报错汇总

案例1: 在Kivy中,AliasProperty 允许你创建一个属性的别名,该别名可以基于其他属性计算得到。但是,与普通的Python属性不同,Kivy的Property类(包括AliasProperty)并没有直接提供定义getter和s…

Tensorflow入门实战 T04-猴痘识别

本篇文章主要:tensorflow 运行环境:本地cpu 运行epoch:50 1、tensorflow官网 tensorflow的官网教程。初学者的 TensorFlow 2.0 教程 | TensorFlow Core 官网上有图像分类的相关详细描述还有代码示例。 2、完整代码展示 from tensorflo…

单调队列总结

单调队列的介绍 由于现在我也没接触过正经的单调队列的定义,因而引申为介绍, 单调队列,类似与单调栈,存储在单调队列里面的元素理应都是单调的,单调队列的基础使用deque(双端队列)去实现的&am…

【总线】AXI总线:FPGA设计中的通信骨干

目录 AXI4:高性能地址映射通信的基石 AXI4-Lite:轻量级但功能强大的通信接口 AXI4-Stream:高速流数据传输的利器 结语:AXI总线在FPGA设计中的重要性 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计…

FlowUs息流开启知识管理的新纪元|FlowUs息流公开知识库

在信息爆炸的时代,如何高效地管理和利用知识成为了一个挑战。FlowUs知识库以其超巨的性价比,为用户带来了全新的解决方案。它不仅仅是一个存储信息的工具,更是一个能够激发创造力和提高生产力的平台。 性价比之选 FlowUs以其合理的价格&…

ChromeDriver新手教程:一步步指导Chrome 114到127版本的驱动安装

114之前版本下载链接在这里 ​​​​​​125以后版本下载链接在此,只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一样;下载所需版本只需点击对应的版本名称即可跳转到对应版本的下载位置。 以…

学习笔记——网络管理与运维——SNMP(基本配置)

四、SNMP基本配置 1、SNMP配置举例 整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度&#x…

windows系统把桌面的文件重定向到电脑的其他分区盘

当我们使用windows系统的电脑时,很喜欢把一些常用的文件放到桌面上。而桌面上的文件默认都是设定在C盘下的。时间长了,C盘容易爆红(空间不足)。下面我将介绍一种比较简单快捷的办法来解决这种问题--就是把桌面的文件重定向到电脑的其他分区盘。 首先我们…

[蓝桥杯真题]买二赠一

蓝桥杯真题;买二赠一,要求赠的一价格不能超过买的两者之间最小价格的二分之一 看到这个题的时候我信心满满的一顿操作猛如虎,全部写出来的时候内心想着,稳了!这次绝对稳了!然而。。。答案错误。。。 我只能去看了一下…

2024年春季学期《算法分析与设计》练习15

问题 A: 简单递归求和 题目描述 使用递归编写一个程序求如下表达式前n项的计算结果&#xff1a; (n<100) 1 - 3 5 - 7 9 - 11 ...... 输入n&#xff0c;输出表达式的计算结果。 输入 多组输入&#xff0c;每组输入一个n&#xff0c;n<100。 输出 输出表达式的计…

使用dev_dbg调试

首先内核要使能两个配置才可以使用。一般内核都是打开的。 CONFIG_DEBUG_FSy CONFIG_DYNAMIC_DEBUGy 当编译选项CONFIG_DYNAMIC_DEBUG打开的时候&#xff0c;在编译阶段&#xff0c;kernel会把所有使用dev_dbg()的信息记录在一个table中&#xff0c;这些信息我们可以从/sys/k…

谷歌发布Infini-Transformer模型—无限注意力机制长度,超越极限

Transformer 是一种基于自注意力机制的深度学习模型&#xff0c;最初应用于自然语言处理领域&#xff0c;现已扩展到图像、音频等多个领域。与传统的循环神经网络 (RNN) 不同&#xff0c;Transformer 不依赖于顺序数据处理&#xff0c;能够并行计算&#xff0c;从而显著提高效率…

Havoc工具

Team端 客户端 打开后需要生成监听器和agent 监听 生成payload 最后上线 HTTPS流量 HTTP流量 心跳

【ARMv8/ARMv9 硬件加速系列 3.3 -- SVE LD2D 和 ST2D 使用介绍】

文章目录 SVE 多向量操作LD2D(加载)LD2D 操作说明LD2D 使用举例ST2D(存储)ST2D 使用举例ST2D 存储示例代码ld2d 和 st2d 小结SVE 多向量操作 在ARMv8/9的SVE (Scalable Vector Extension) 指令集中,st2d和ld2d指令用于向量化的存储和加载操作,具体地,它们允许同时对两个…

物联边缘网关如何助力工厂实现智能化生产?以某智能制造工厂为例-天拓四方

随着工业4.0的深入推进&#xff0c;智能制造工厂成为了工业发展的重要方向。在这个背景下&#xff0c;物联边缘网关以其独特的优势在智能制造工厂中发挥着越来越重要的作用。以下将通过一个具体的智能制造工厂应用案例&#xff0c;来阐述物联边缘网关如何助力工厂实现智能化生产…

超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名

该系统完全在linux下运行&#xff0c;不存在使用第三方收费工具&#xff0c;市面上很多系统都是使用的是第三方收费系统&#xff0c;例如&#xff1a;某心签名工具&#xff0c;某测侠等&#xff0c;不开源而且需要每年交费&#xff0c;这种系统只是在这些工具的基础上套了一层壳…

java文件传输小工具 java17+springboot3+thymeleaf

背景 在和同事工作中经常需要传输文件&#xff0c;但是公网传输太慢&#xff0c;业务方不是计算机专业直接用命令行沟通麻烦。 本小工具通过页面可视化方便用户使用&#xff0c;端口9090&#xff0c;启动默认展示当前登陆本机用户的桌面。 代码开源&#xff1a; https://git…