【论文阅读笔记】SAM-Adapter: Adapting Segment Anything in Underperformed Scenes

1.论文介绍

SAM-Adapter: Adapting Segment Anything in Underperformed Scenes
SAM适配器:在表现不佳的场景中适配任何片段

2023年 ICCV
Paper Code

SAM Fails to Segment Anything? – SAM-Adapter: Adapting SAM in Underperformed Scenes:
Camouflage, Shadow, Medical Image Segmentation, and More
SAM无法分割任何内容?- SAM适配器:在表现不佳的场景中适配SAM:摄影、阴影、医学图像分割等
2023年 arXiv
Paper Code

2.摘要

大型模型(也称为基础模型)的出现为人工智能研究带来了重大进展。一个这样的模型是Segment Anything(SAM),它是为图像分割任务而设计的。然而,与其他基础模型一样,我们的实验结果表明,SAM在某些分割任务中可能会失败或表现不佳,例如阴影检测和隐藏对象检测(隐藏对象检测)。这项研究首先为将大型预训练图像分割模型SAM应用于这些下游任务铺平了道路,即使在SAM表现不佳的情况下。而不是微调SAM网络,我们提出SAM适配器,它采用了特定于域的信息或视觉提示到分割网络,通过使用简单而有效的适配器。通过将特定任务的知识与大模型学习到的一般知识相结合,SAM-Adapter可以显着提高SAM在挑战性任务中的性能,如大量实验所示。我们甚至可以超越特定任务的网络模型,并在我们测试的任务中实现最先进的性能:隐藏对象检测,阴影检测。我们还测试了息肉分割(医学图像分割),并取得了更好的结果。我们相信,我们的工作为SAM在下游任务中的应用开辟了机会,在各个领域都有潜在的应用,包括医学图像处理、农业、遥感等。

Keywords:SAM,SAM适配器

3.Introduction

人工智能研究已经见证了一种范式转变,模型在大量数据上进行了大规模训练。这些模型,或称为基础模型,如BERT,DALL-E和GPT-3,在许多语言或视觉任务中显示出有希望的结果。最近,在基础模型中,Segment Anything(SAM)作为在大型视觉语料库上训练的通用图像分割模型具有独特的地位。事实证明,SAM在不同的场景中具有成功的分割能力,这使其成为图像分割和计算机视觉相关领域的突破性一步。然而,由于计算机视觉涵盖了广泛的问题,SAM的不完整性是显而易见的,这与其他基础模型相似,因为训练数据无法涵盖整个语料库,并且工作场景会发生变化。在这项研究中,我们首先在一些具有挑战性的低级结构分割任务中测试SAM,包括隐藏对象检测(隐藏场景)和阴影检测,我们发现在一般图像上训练的SAM模型在这些情况下不能完美地“分割任何东西”。因此,一个关键的研究问题是:如何利用大型模型从大量语料库中获得的能力,并利用它们来造福下游任务?

在这里,我们介绍SAM适配器,它作为上述研究问题的解决方案。这项开创性的工作是首次尝试使大型预训练图像分割模型SAM适应特定的下游任务,并提高性能。正如其名称所述,SAMAdapter是一种非常简单但有效的自适应技术,它利用了内部知识和外部控制信号。具体来说,它是一个轻量级模型,可以用相对少量的数据学习对齐,并作为一个额外的网络,从该任务的样本中注入特定于任务的指导信息。使用视觉提示将信息传递到网络,这已被证明是高效和有效的,可以使冻结的大型基础模型适应许多下游任务,并且具有最少数量的附加可训练参数。

具体来说:SAM适配器可以直接应用于各种任务的定制数据集,以提高性能的协助SAM。可以毫不费力地将联合收割机多个显式条件组合起来,以多条件控制微调SAM。

本文的主要贡献可以概括如下:

  • 首先,对作为基础模型的Segment Anything(SAM)模型的不完备性进行了分析,提出了如何利用SAM模型为下游任务服务的研究问题。
  • 其次,我们首次提出了自适应方法SAM-Adapter,以使SAM适应下游任务并实现增强的性能。适配器将特定于任务的知识与大型模型学习的一般知识相结合。可以灵活地设计特定于任务的知识。
  • 第三,尽管SAM的骨干是一个简单的普通模型,缺乏为两个特定的下游任务量身定制的专门结构,但我们的方法仍然超过了现有的方法,并在这些下游任务中达到了最先进的(SOTA)性能。

4. 网络结构详解

使用SAM作为backbone
SAM适配器的目标是利用从SAM中学习的知识。因此,本文使用SAM作为分割网络的骨干。SAM的图像编码器是ViT-H/16模型,具有14 x14窗口注意力和四个等间隔的全局注意力块。保持预训练图像编码器的权重冻结。还利用SAM的掩码解码器,它由一个修改后的Transformer解码器块和一个动态掩码预测头组成。使用预训练的SAM的权重来初始化我们方法的掩码解码器的权重,并在训练期间调整掩码解码器。在SAM的原始掩码解码器中不输入任何提示。

图像编码器参数不训练,只训解码器,提示编码器不使用。

适配器
在这里插入图片描述
接下来,任务特定的知识Fi被学习并通过适配器注入到网络中。采用了提示的概念,它利用了基础模型已经在大数据集上被训练的事实。使用适当的提示来引入特定于任务的知识可以增强模型对下游任务的泛化能力,特别是当注释数据很少时。所提出的SAM适配器的架构如上图所示。目标是保持适配器的设计简单而高效。因此,选择使用仅由两个MLP和两个MLP中的激活函数组成的适配器。具体地,适配器获取信息Fi并获得提示Pi:
在这里插入图片描述
其中 M L P t u n e i MLP^i_{tune} MLPtunei是用于为每个适配器生成任务特定提示线性层。 M L P u p MLP_{up} MLPup是所有适配器共享的上投影层,用于调整Transformer要素的尺寸。Pi是指附加到SAM模型的每个Transformer层的输出提示。GELU是GELU激活函数。信息Fi可以被选择为各种形式。

输入任务特定信息
值得注意的是,信息Fi可以根据任务而具有各种形式,并且可以被灵活地设计。例如,它可以以某种形式从任务的特定数据集的给定样本中提取,例如纹理或频率信息,或一些手工制作的规则。此外,Fi可以是由多个引导信息组成的合成形式:
在这里插入图片描述
其中Fj可以是一种特定类型的知识/特征,并且wj是用于控制合成强度的可调节权重。

5.实验

在实验中,选择了两种类型的视觉知识,补丁嵌入Fpe和高频分量Fhfc,wj被设置为1。因此,Fi由Fi = Fhfc +Fpe导出。MLPi tune具有32个线性层,MLPi up是一个线性层,其将来自GELU激活的输出映射到Transformer层的输入数量。我们使用SAM的ViT-H版本。平衡BCE损失用于阴影检测。BCE损失和IOU损失被用于隐藏对象检测和息肉分割。AdamW优化器用于所有的实验。初始学习率设置为2 e-4。余弦衰减应用于学习率。对图像对象分割的训练进行20个epoch。阴影分割训练了90个epoch。息肉分割被训练120个时期。实验使用PyTorch在四个NVIDIA Tesla A100 GPU上实现。

其实就是把提示编码器换成高频分量+补丁分量,然后以SAM为backbone,微调SAM使其适配下游任务。

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

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

相关文章

吴恩达:AI 智能体工作流

热门文章推荐: (1)《为什么很多人工作 3 年 却只有 1 年经验?》(2)《一文掌握大模型提示词技巧:从战略到战术巧》(3)《AI 时代,程序员的出路在何方&#xff1…

Vue2(完结):replace属性、编程式路由导航、缓存路由组件、两个新钩子、路由守卫、history与hash

一、router-link的replace属性 1、作用:控制路由跳转时操作浏览器历史记录的模式 2、浏览器的历史记录有两种写入方式:分别为push和replace,push是追加历史记录,replace是替换当前记录。路由跳转时候默认为push 3、如何开启repla…

EXCEL地理数据处理工具(地图任务)

版本号 作者 修订内容 发布日期 1.0 小O 更新至0705版 2022-4-28 1.1 小O 更新至0772版 2024年4月3日 一、概述 小O地图EXCEL插件版提供基于EXCEL表格进行地理数据处理、地图可视化、地图绘图等功能,地理工具是用户使用频率很高的功能模块。地理工具能…

C语言交换两个变量值的方法,详细讲解

不管在学习哪门语言,都会遇到交换两个变量的这种问题,而且在面试测试题中也经常提到。既然出现的频率这么高,那我们今天就来讲讲交换两个变量常用的几种方法。 今天主要是基于C语言写的代码,不管哪种语言写的,应该核心…

Linux下Qt生成程序崩溃文件

文章目录 1.背景2.Qt编译生成程序2.1.profile模式的本质 3.执行程序,得到core文件4.代码定位4.1.直接使用gdb4.2.使用QtCreator 5.总结6.题外话6.1.profile模式和debug模式的区别 1.背景 在使用Qt时,假如在windows,当软件崩溃时,…

石油化工控制台定制厂家具备的专业条件一览

石油化工行业,作为国家的支柱产业之一,对设备与控制台的要求尤为严格。石油化工控制台是石油化工行业必不可少的办公设备之一。因此,选择一家专业的石油化工控制台定制厂家,对于提升企业的生产效率与安全水平具有不可估量的价值&a…

CTF之矛盾

这一题就是php的弱比较“” 这里要求输入的不是数字,并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符,因为php的弱比较将字符与数字进行比较的时候,会把字符转换成数字再比较,当转换到字符时后面便都为空了 flag{…

ChatGLM-6B实战微调(P-tuning-v2、LORA)

硬件准备 GPU: NVIDIA Tesla A30 24GB python 3.10 pytorch 1.11 transformers 4.27.1 实验环境 Change your pip source pip config set global.extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple # Writing to /opt/conda/pip.conf pip config set global.inde…

C/C++预处理过程

目录 前言: 1. 预定义符号 2. #define定义常量 3. #define定义宏 4. 带有副作用的宏参数 5. 宏替换的规则 6. 宏和函数的对比 7. #和## 8. 命名约定 9. #undef 10. 命令行定义 11. 条件编译 12. 头文件的包含 13. 其他预处理指令 总结&#x…

【御控物联】JavaScript JSON结构转换(15):对象To数组——转换映射方式

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

2024年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

本文收录于专栏《Scratch等级认证CCF-GESP真题解析》,专栏总目录・点这里. 一、单选题(共 10 题,每题 3 分,共 30 分) 第1题 小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?( )。 A、小程序 B、计时器 C、操作系统 D、神话人物 答案:…

【vite】-【vite介绍】-【vite的基础应用】-【vite的高级应用】-【

目录 vite介绍vite的基础应用vite创建项目vite创建vue3项目vite创建vue2项目vite创建react项目 vite中使用css的各种功能vite中使用tsvite中处理静态资源的方法vite集成eslint和prettiervite中的env环境变量 vite的高级应用 vite介绍 一、特点: 开发时效率极高开箱…

Excel常用技巧

个人笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 目录 一&#xff1a…

UE4几个常用节点链接

UE4几个常用节点链接 2017-12-02 12:54 1. 流光材质(及uv平铺次数) 2. 跑九宫格 3.闪光3。1 粒子闪烁效果 4.图案重复5.平移扭曲 6.溶解 刀光的uv滚动图片源或采样节点属性里改成clamp无后期发光光晕anistropic 各向异性高光法线图 法线图叠加 blendangle orrectedNo…

ThingsBoard通过MQTT发送属性数据

MQTT基础 客户端 MQTT连接 属性上传API 案例 MQTT基础 MQTT是一种轻量级的发布-订阅消息传递协议,它可能最适合各种物联网设备。 你可以在此处找到有关MQTT的更多信息,ThingsBoard服务器支持QoS级别0(最多一次)和QoS级别1&…

Python爬取公众号封面图(零基础也能看懂)

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍&…

【Web应用技术基础】JavaScript(4)——案例:全选/取消全选按钮

视频已发。截图如下&#xff1a; 1.点击全选按钮&#xff0c;则选中所有选项 2.只要某个选项取消&#xff0c;则自动取消全选按钮的勾选状态 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"vie…

Pytorch数据结构:GPU加速

文章目录 一、GPU加速1. 检查GPU可用性&#xff1a;2. GPU不可用需要具体查看问题3. 指定设备4.将张量和模型转移到GPU5.执行计算&#xff1a;6.将结果转移回CPU 二、转移原理1. 数据和模型的存储2. 数据传输3. 计算执行4. 设备管理5.小结 三、to方法的参数类型 一、GPU加速 .…

华为CCE部署RabbitMQ中间件操作文档

1、创建有状态&#xff08;StatefulSet&#xff09;部署 中间件一般为有状态部署&#xff0c;有状态部署与无状态部署区别参考文档&#xff1a;K8S有无状态部署-CSDN博客 1.1、基本信息 注意&#xff1a; 应用名称命名规则&#xff1a;&#xff08;命名规则最好统一&#xff…

C++高频面试知识总结 part2

C高频面试 1.sizeof是什么&#xff1f;sizeof一个class大小怎么确定&#xff1f;是在编译期还是在运行期确定?2.函数重载的机制&#xff0c;重载是在编译期还是在运行期确定&#xff0c;重载有额外开销吗3.函数重写在编译还是运行时确定&#xff1f;4.如何找到虚函数表&#x…