【论文阅读笔记】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使其适配下游任务。

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

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

相关文章

5.5G,只比6G少0.5G

5.5G成为通信行业2024年开年的一大焦点。提到5.5G,多出来的0.5G又是啥?为什么不直接迈向6G时代?今天我们一探究竟! “0.5G”,现在与未来的桥梁 2021年,国际标准组织3GPP为通信技术的进一步发展定义了新的里…

云上百世慧 | 达索系统电池行业智能制造解决方案

当今诸多电池厂商快速成长的同时也面临诸多挑战: ※ 如何获得实时、数据驱动的KPI来衡量生产率? ※ 如何更好地管理生产线、物料流和周期时间? ※ 如何增强整个生产系统并推动实时制造流程? 达索系统专家通过实际案例&#xf…

Kimi精选提示词,总结PPT内容

大家好,我是子云,最近真是觉得Kimi这个大模型,产品体验很棒,能力也是不错,感觉产品经理用心了。 发现一个Kimi 一个小技巧,可以学习到很多高级提示词。 Kimi输入框可以配置常用提示词,同时也可…

上位机图像处理和嵌入式模块部署(qmacvisual亮度检测)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,在机器视觉当中,对于光源的处理要非常小心。这里面不仅包括了选择什么样的光源,还取决于怎样使用…

美创科技获浙江省网络空间安全协会多项荣誉认可

4月2日,浙江省网络空间安全协会第二届会员大会第一次会议在杭州隆重召开,近180家会员单位代表、数十位特邀专家、嘉宾莅临现场。浙江省委网信办副主任马晓军出席会议并致辞,本次大会由协会秘书长吴铤主持。 凝心聚力,继往开来&…

鸿蒙OS开发实例:【应用状态变量共享】

平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景,ArkT…

PD虚拟机在 Mac 上运行 Windows 解决方案,实现 Win 与 Mac 双系统!

现在的 Macbook 大多都是 M 芯片,想装双系统都没办法。需要暂时用下 Windows 软件,只能靠虚拟机工具。 而虚拟机软件 Parallels Desktop(简称 PD 虚拟机),则是同类工具中非常出色的存在。支持苹果芯片设备、性能优异&…

2012年认证杯SPSSPRO杯数学建模B题(第二阶段)节能减排全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 节能减排、抑制全球气候变暖 B题 白屋顶计划 原题再现: 第二阶段问题   虽然环境学家对地球环境温度的改变有许多种不同观点,但大多数科学家可以达成一个基本的共识:近年来人类的活动,尤指二氧…

加固HTML大作战:网站安全性提升方案解读

引言 HTML是网站开发的基础语言,它的安全性直接关系到网站的安全性。为了保障网站的安全性,我们需要加固HTML代码。本文将介绍一些具体方法,帮助你加固HTML代码,提高网站的安全性。 摘要 本文将介绍以下几种方法来加固HTML代码…

Android Studio 打开Local Changes界面

在编写代码的过程中,经常要回顾本地仓库做了那些修改。打开Local Changes界面,能做到一目了然,不用再去使用git命令查看。 File->Settings->Version control->Commit 把Use non-modal commit interface 选项 取消勾选 即可

Web前端—(原生JS)购物车效果

目录 购物车效果分析数据单件商品的数据整个界面的数据 分析界面分析事件 购物车效果 先准备好原始数据和素材 在下面数据的基础上,编写index.js 分析数据 编写程序要从数据入手,从数据到界面最后到事件在分析数据的过程中,要分析数据是通过…

C# 批量删除Excel重复项

当从不同来源导入Excel数据时,可能存在重复的记录。为了确保数据的准确性,通常需要删除这些重复的行。 手动查找并删除可能会非常耗费时间,而通过编程脚本则可以实现在短时间内处理大量数据。本文将提供一个使用C# 快速查找并删除Excel重复项…

JAVAEE之Cookie/Session

1.Cookie HTTP 协议自身是属于 "无状态" 协议. "无状态" 的含义指的是: 默认情况下 HTTP 协议的客户端和服务器之间的这次通信, 和下次通信之间没有直接的联系. 但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的. 例如登陆网站成功后, 第二…

WE博客代码系统

WE博客代码系统 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net mvc架构和sql server数据库,并采用EF实体模型开发。 三层架构并采用EF实体模型开发 功能模块: WE博客代码系统 WE博客代码系…

全自动封箱机的工作原理:科技与效率的完美结合

随着科技的不断发展,越来越多的自动化设备走进了我们的日常生活和工业生产中。其中,全自动封箱机作为物流包装领域的重要一环,凭借其高效、精准的工作性能,正逐渐成为提升生产效率、降低劳动成本的得力助手。星派就来与大家深入探…

HarmonyOS NEXT应用开发之状态管理优秀实践

为了帮助应用程序开发人员提高其应用程序质量,特别是在高效的状态管理方面。本章节面向开发者提供了多个在开发ArkUI应用中常见的低效开发的场景,并给出了对应的解决方案。此外,还提供了同一场景下,推荐用法和不推荐用法的对比和解…

代码随想录Day28:回溯算法Part4

Leetcode 93. 复原IP地址 讲解前: 这道题其实在做完切割回文串之后,学会了使用切割的方法来找到字符串的possible 子串之后,思路就会很快找到,细想一下其实无非也就是对given string然后进行切割,只是深度是固定的因…

GLP-1药物固相合成法-载体树脂及层析填料

摘要:在生物医药GLP-1药物制备领域不仅可提供高稳定性载体树脂,还可根据客户需求,合成定制化载体(如预接氨基酸固相合成载体、特殊溶胀度或基团负载量的载体、负载特殊基团的载体、清除树脂等)。同时,海普专…

深入剖析主机安全中的零信任机制及其实施原理

引言 在数字化转型加速与云端服务普及的大背景下,传统依赖边界的网络安全模式逐渐显露出其局限性。面对愈发复杂多变的威胁环境,零信任安全架构作为新一代的安全范式应运而生,尤其是在主机层面的安全实践中,零信任机制正扮演着至…

docker安装wekan

安装mongodb 注意这里用端口映射方法将db的端口映射到宿主机。并且注意自己的映射目录,如果不需要映射目录直接删除-v /home/data/project/wekan/wekandb/db:/data/db -v /home/data/project/wekan/wekandb/configdb:/data/configdb sudo docker run -d --name we…