【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型
【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型
文章目录
- 【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型
- 一、介绍
- 二、联系工作
- 三、方法
- 四、实验
Medical SAM Adapter: Adapting Segment Anything Model for Medical Image Segmentation
由于SAM在各种分割任务中的出色能力和基于提示的界面,SAM模型最近在图像分割领域获得了广泛的应用
我们提出了医学SAM适配器(Med-SA),而不是对SAM模型进行微调,该适配器使用轻而有效的自适应技术将特定领域的医学知识整合到分割模型中
Med-SA中,我们提出了空间深度转置(SD-Trans)来使2D SAM适应3D医学图像
超提示适配器(hyper - prompt Adapter)来实现提示条件适应
17种医学图像分割任务进行了综合评价实验
Med-SA优于几种最先进的(SOTA)医学图像分割方法,同时仅更新2%的参数
一、介绍
分割任意模型(SAM)作为一种强大而通用的视觉分割模型获得了极大的关注
它可以根据用户提示生成各种详细的分段掩码
认为它在医学图像分割上的表现欠佳。使医学图像分割具有交互性,例如采用SAM等技术,具有巨大的临床价值
交互式分割可以极大地帮助临床医生有效地从这些复杂的结构中区分目标组织
采用像SAM这样的基础交互模型进行临床应用变得至关重要
解决这个问题的最先进(SOTA)方法是完全微调香草SAM模型,
专门针对医疗数据(Ma和Wang 2023)
预训练的视觉模型对医学图像具有很强的可移植性
试图以最小的努力使训练良好的SAM适应医学图像分割
选择使用一种称为自适应的参数有效微调(PEFT)技术对预训练的SAM进行微调
Adaption的主要思想是将带有部分参数的Adapter模块插入到原始模型中,只更新少量额外的Adapter参数
自然图像不同,许多医学图像是3D的,比如CT和MRI扫描
虽然adaptive在NLP中取得了成功,但将其应用于视觉模型,特别是SAM等交互式视觉模型的研究还很有限
我们提出了一种新的适应框架,称为医学SAM适配器(MedSA)
Med-SA仅通过更新总SAM参数的2%的额外参数来实现这种优越的性能。
贡献:
- 以实现高维(3D)医疗数据的分割,解决医学图像模式带来的挑战
- 提出HyP-Adpt以促进即时条件适应,承认用户提供提示在医疗领域的重要性。(可能需要提示信息)
- 对17种不同图像模式的医学图像分割任务进行了广泛的实验,清楚地确立了Med-SA优于SAM和以前最先进的方法
二、联系工作
交互式分割
- 交互式分割有着悠久的历史,最初被研究者视为一种优化技术
- DIOS的开创性工作(Xu et al . 2016)通过集成深度学习并将积极和消极点击作为距离地图
- Li, Chen,at al.专注于通过预测多种潜在结果并使选择网络或用户从中选择来解决不确定性
- RITM (2022)和AccuracyNet (Forte et al 2020)引入了使用以前的掩模作为输入
然而,尽管交互式医学图像分割在临床实践中起着至关重要的作用,但人们对其的关注却有限
Parameter-Efficient重要性
PEFT已被证明是针对特定用途微调大型基本模型的有效策略
PEFT方法比完全微调效果更好,因为它们避免了灾难性的遗忘
所有PEFT策略中,Adaption(Hu et al . 2021)不仅在NLP中,而且在计算机视觉中,作为对下游任务的大型基本视觉模型进行微调的有效工具而脱颖而出
Adaption是将SAM带入医学领域的最合适的技术
三、方法
SAM架构 提供SAM体系结构的概述
SAM包括三个主要组件:
- 图像编码器
- 提示编码器
- 掩码解码器
我们使用了ViT-H/16变体,它采用14×14窗口关注和四个等间隔的全局关注块
如图(a)所示。图像编码器的输出是输入图像的16倍下采样嵌入。
提示编码器可以是稀疏的(点,框)或密集的(掩码)
它将点和框表示为每个提示类型的位置编码和学习嵌入
解码器使用双向交叉注意来学习提示和图像嵌入之间的交互
SAM对图像嵌入进行上采样,MLP将输出标记映射到动态线性分类器,该分类器预测给定目标掩码
Med-SA架构
目标是通过微调来增强SAM架构在医学图像分割任务中的医学能力
而不是完全调整所有参数,我们保持预先训练的SAM参数冻结
向下投影使用简单的MLP层将给定的嵌入压缩到较低的维度,而向上投影使用另一个MLP层将压缩的嵌入扩展回其原始维度。
在SAM编码器中,我们为每个ViT块使用两个适配器。对于标准ViT块
- 第一个适配器位于多头注意之后,剩余连接之前
- 第二个适配器被放置在MLP层的剩余路径中,跟随多头注意
第一个适配器用于集成提示嵌入,为了实现这一目标,我们引入了一种新的结构,称为HyPAdpt
第二个适配器以与编码器完全相同的方式部署,以适应mlp增强的嵌入
SD-Trans
我们提出了SD-Trans,灵感来自图像到视频的改编
在每个块中,我们将注意力操作分为两个分支:空间分支和深度分支
D对应于操作的数量,允许在N × L上应用交互,捕获和抽象空间相关性作为嵌入
在深度分支中,我们将输入矩阵转置以获得N×D×L,并随后将其馈送到相同的多头注意力中
交互现在发生在D × L上
将深度分支的结果转置回其原始形状,并将其添加到空间分支的结果中,合并深度信息
HyP-Adpt
适应在交互式视觉模型中的应用仍然很大程度上未被探索
源任务和下游任务之间的交互行为可能表现出显著差异
在这方面,我们提出了一种名为HyPAdpt的解决方案,旨在实现即时条件适应
操作:
- 仅利用投影和重塑操作从提示嵌入中生成一系列权重映射
- 权重映射(矩阵乘积)直接应用于适配器嵌入
- 实现广泛而深入的特征级交互
- 显著减少了所需参数的数量
减少的适配器嵌入上执行超提示
被连接并缩减为提示嵌入提示。然后我们使用e提示符生成一个权重序列
HyP-Adpt有助于将参数以提示信息为条件,更灵活地适应不同的模式和下游任务。
Training Strategy
对于交互式分割,我们在模型训练过程中使用点击提示和边界框(BBox)提示
生成BBox提示,我们采用与SAM相同的方法。但是,由于原始的SAM论文提供了有限的关于单击提示符生成的细节
点击提示生成过程背后的基本概念包括使用
- 积极的点击来指示前景区域
- 消极的点击来指示背景
我们结合随机和迭代的点击采样策略,用这些提示训练模型
我们使用迭代抽样过程合并一些单击。这种迭代采样策略模拟了与真实用户的交互
因为每次新的点击都被放置在由网络使用以前的点击集生成的预测的错误区域中
四、实验
在五种不同的医学图像分割数据集上进行了实验
ISIC 2019数据集(Milton 2019)上进行了实验。所有的数据集都是公开的
3D医学图像训练,我们使用了16个较小的批处理大小
REFUGE2、TNMIX和ISIC数据集,我们训练了40个epoch的模型
BTCV和BraTs数据集,我们将训练扩展到60个epoch
- 随机1个正点,记为“1点”
- 3个正点,记为“3点”
- 与目标重叠50%的边界框,记为“BBox 0.5”
- 与目标重叠75%的边界框,记为“BBox 0.75”
Comparing with SOTA on Abdominal Multi-organ Segmentation

【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型
【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型 文章目录 【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型一、介绍二、联系工作三、方法四、实验 Medical SAM Adapter: Adapting Segment Anything Model for Medical Image Segm…...

创新体验触手可及 紫光展锐携手影目科技推出AI眼镜开放平台
近日,紫光展锐携手影目科技共同发布了搭载展锐W517芯片的影目X系列AI眼镜开放平台。这一产品的推出标志着双方在智能穿戴领域的深度协作,将紫光展锐的领先芯片技术与影目的产品创新相融合,合力打造全球智能眼镜市场的标杆产品。这一战略布局不…...

115页PDF | 埃森哲_XX集团信息化能力成熟度评估及能力提升方案(限免下载)
一、前言 这份报告是埃森哲_XX集团信息化能力成熟度评估及能力提升方案,报告首先分析了集团的战略规划,包括调整优化期、转型升级期和跨越发展期的目标,然后识别了集团面临的内部挑战和外部压力,如管控体系不完善、业务板块多样化…...

NumPy,科学计算领域中的Python明星库!
NumPy,科学计算领域中的Python明星库! 嘿,大家好呀,今天我们要来聊聊在科学计算领域里大放异彩的 NumPy 库。NumPy 是 Python 中的一个开源库,它提供了大量的数学函数,能够高效地处理大型数组与矩阵运算。…...

Hadoop生态圈框架部署(六)- HBase完全分布式部署
文章目录 前言一、Hbase完全分布式部署(手动部署)1. 下载Hbase2. 上传安装包3. 解压HBase安装包4. 配置HBase配置文件4.1 修改hbase-env.sh配置文件4.2 修改hbase-site.xml配置文件4.3 修改regionservers配置文件4.4 删除hbase中slf4j-reload4j-1.7.33.j…...

python怎么解决中文注释
最近开发学习Python,当加入中文注释时,运行程序报错: File "red.py", line 10 SyntaxError: Non-ASCII character \xe5 in file red.py on line 10, but no encoding declared; see http://www.python.org/peps/pep-0263.html fo…...

【Unity】Game Framework框架学习使用
前言 之前用过一段时间的Game Framework框架,后来有那么一段时间都做定制小软件,框架就没再怎么使用了。 现在要做大型项目了,感觉还是用框架好一些。于是又把Game Framework拾起来了。 这篇文章主要是讲Game Framework这个框架是怎么用的…...

Linux(CentOS 7) yum一键安装mysql8
1、通过yum安装 (1)下载mysql 在Linux找个地方输入以下命令 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm (2)安装mysql yum 仓库配置文件 [rootVM-8-15-centos ~]# sudo rpm -Uvh mysql80-c…...

Kafka 快速入门(一)
1.1安装部署 1.1.1 集群规划 bigdata01bigdata02bigdata03zookeeperzookeeperzookeeperkafkakafkakafka 1.1.2 集群部署 官方下载地址:http://kafka.apache.org/downloads.html 检查三台虚拟机的zk是否启动:zkServer.sh start 默认启动方式 1)解压…...

丹摩征文活动 | SD3+ComfyUI的图像部署实践
一、前言 作为Stability AI 推出的一款革命性的文本转图像开源模型,Stable Diffusion 3(简称SD3)在图像质量、文本内容生成、理解复杂指令以及资源利用效率方面,都有着不俗的表现。 SD3的Medium版本,拥有20亿参数&am…...

H.265流媒体播放器EasyPlayer.js网页web无插件播放器:如何优化加载速度
在当今的网络环境中,用户对于视频播放体验的要求越来越高,尤其是对于视频加载速度的期待。EasyPlayer.js网页web无插件播放器作为一款专为现代Web环境设计的流媒体播放器,它在优化加载速度方面采取了多种措施,以确保用户能够享受到…...

【Linux】进程状态的优先级
大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦 本文由:残念ing原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各…...
react中的组件传参
在React中,组件之间的数据传递是构建用户界面的关键部分。根据不同的需求和场景,有多种方式可以在React中传递参数,以下是对这些方式的详细说明: 一、通过props传递参数 这是React中最基本和最常用的数据传递方式。父组件通过属…...
HTML5:网页开发的新纪元
文章目录 前言一、HTML5技术概述二、主要特点及优势1. 多媒体支持2. 图形绘制3. 离线存储4. 表单控件增强5. 响应式设计 三、应用场景1. 游戏开发2. 在线教育3. 电子商务 四、面临的挑战结语 前言 在互联网技术快速发展的今天,H5(HTML5的简称࿰…...

CKA认证 | Day2 K8s内部监控与日志
第三章 Kubernetes监控与日志 1、查看集群资源状态 在 Kubernetes 集群中,查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释,帮助你更好地管理和监控 Kubernetes 集群。 1.1 查看master组件状态 Kubernetes 的 Master 组件包…...

电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现
0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…...

ubuntu更改max_map_count
在Ubuntu系统中,max_map_count是一个内核参数,用于限制每个进程可以拥有的内存段的数量。对于Elasticsearch等需要大量内存映射的应用,可能需要增加这个值。 执行以下步骤来更改max_map_count的值: 打开终端。 输入以下命令以编…...
《NPU、CPU、GPU 算力定义和计算方式》
一、引言 在人工智能时代,算力成为了推动技术发展的关键因素之一。不同类型的处理器,如中央处理器(CPU)、图形处理器(GPU)和神经网络处理器(NPU),在算力方面有着各自的特…...

初级数据结构——顺序表
目录 前言一、定义与特点二、类型三、基本操作四、应用场景五、优缺点六、元素插入和删除动态图解插入删除 七、代码模板八、使用顺序表的经典例题1.求奇数的乘积代码题解 2.数值统计代码题解 九、总结结语 前言 顺序表示最基础的数据结构之一,它也是我们学习开始学…...

游戏引擎学习第五天
这节貌似没讲什么 视频参考:https://www.bilibili.com/video/BV1Gmm2Y5EwE/ uint8 *A somewhere in memory; uint8 *B somewhere in memory;//BEFORE WE GOT TO HERE int Y *B; // whatever was actually there before the 5 *A 5; int X *B; // 5 //Obviously! Y and …...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...