MedSAM微调版,自动生成 Prompt 嵌入实现图像分割!

news2024/10/28 4:17:43

最近提出的Segment Anything Model (SAM)等基础模型在图像分割任务上取得了显著的成果。

然而,这些模型通常需要通过人工设计的 Prompt (如边界框)进行用户交互,这限制了它们的部署到下游任务。

将这些模型适应到具有完全 Token 数据的特定任务也需要昂贵的先验用户交互以获取真实标注。

本工作提出了一种替换输入 Prompt 条件的方法,该方法使用一个轻量级的模块直接从图像嵌入中学习 Prompt 嵌入,然后由基础模型使用这两个嵌入分别输出分割 Mask 。

作者的可学习 Prompt 的基础模型可以自动对任何特定区域进行分割,1)通过一个由简单模块预测的 Prompt 嵌入修改输入,2)使用弱标签(紧密边界框)和少样本监督(10个样本)。

作者的方法在MedSAM(SAM在医学图像上的微调版本)上进行了验证,并在MR和超声成像的三个医学数据集上获得了结果。作者的代码已在https://github.com/Minimel/MedSAMWeakFewShotPromptAutomation上发布。

1 Introduction

标注是医学影像中一个众所周知的人力密集型和耗时任务。经过训练用于识别特定感兴趣区域的有监督分割模型对新领域或类别的泛化性能不佳,在考虑新任务时需要更多的数据和再训练。这增加了解决多个任务分割模型的成本。因此,在训练后能够适用于各种任务的通用模型在医学影像分析中的需求正在增长。

像最近推出的Segment Anything Model (SAM) [10]这样的图像分割基础模型的出现,以及其针对医学影像的版本,如适应医学影像的MedSAM [12],在计算机视觉和医学图像分析领域产生了重大影响。这些模型在各种分割任务上表现出色。然而,它们仍然是需要用户交互才能获得目标目标分割 Mask 的即时模型。

此外,它们的零样本性能取决于用户 Prompt 的质量。对用户交互的依赖性阻碍了它们集成到自动 Pipeline 中,并限制了它们在大规模使用中的效用。

最近,人们尝试自动化SAM(Segmentation, Association, and Mapping)的 Prompt 生成[20; 17; 22]。然而,这些方法通常需要具有 GT 分割 Mask 的样本,这在医学领域获取起来是昂贵的。

这篇论文提出了一种轻量级的附加 Prompt 模块,该模块可以直接从SAM的图像嵌入中学习生成 Prompt 嵌入。作者的端到端方法使SAM模型能够专门针对特定区域进行分割,并只需要少量弱标注的样本。这降低了开发专门分割模型的交互成本。作者的验证结果表明,在仅用紧密框标注少量训练样本的情况下, Prompt 基础模型可以有效地生成目标区域的分割 Mask ,而无需手动 Prompt 输入。

医学图像分割的基础模型医学图像分割的基础模型通过大规模预训练在计算机视觉任务中取得了巨大的成功。特别是,基于视觉 Transformer 的Segment Anything Model (SAM) [10]最近被引入作为医学图像分割的 Prompt 驱动基础模型,它基于10亿张图像和1亿张 Mask 进行了预训练。

在自然图像上训练的SAM在医学数据上的表现不均匀[7; 13; 18],导致其适应医学领域[4; 12; 17]。特别是,MedSAM [12],一种用于通用医学图像分割的基础模型,是在10种成像模式下,基于150万图像- Mask 对进行预训练的。这些模型在零样本性能上令人印象深刻,但仍然需要用户交互进行推理。

Prompt 自动化对SAM的影响。 由于在自然语言处理领域的出色表现 [2], Prompt 调优已成功应用于大型视觉模型 [8]。因此,专注于专门化SAM(可 Prompt 模型)的方法自然地探索了 Prompt 生成。在极少完全标注的样本情况下,文献[20]中的自 Prompt 单元自动从SAM的图像嵌入中生成一个实际点及其边界框。AutoSAM用谐波密集网络取代SAM的 Prompt 编码器,以适应医学图像的分割 [17]。

最近一种无需训练的方法,PerSAM [22]将正负位置先验编码为 Prompt Token ,以从单个参考图像和 Mask 中生成特定物体的自动分割。与作者的方法不同,所有这些方法都需要具有完全分割 Mask 的样本。

基于边界框标注的分割。边界框已成为标注麻烦的替代方案。大多数方法将边界框作为目标区域的初始伪标签。经典的迭代图割算法GrabCut [16]在给定边界框的情况下将前景与背景分离。

DeepCut [14]使用现有的启发式方法将GrabCut扩展到神经网络。最近,边界框紧度先验被适应到基于深度学习的模型,通过针对预测施加一组约束[9],并与多实例学习和平滑最大近似[19]相结合。

2.1.1 Our contribution.

这项工作旨在高效地自动化医学领域的SAM(单细胞自动标注)变体MedSAM,通过使用少量的弱 Token 样本即可分割任何目标区域。作者的方法通过将原始 Prompt 编码器替换为增强的轻量级可调整 Prompt 学习模块来实现创新改进:

自动生成输入图像的 Prompt 嵌入

仅使用弱标签(紧密的边界框)进行训练,以及少样本学习

易于在MedSAM顶部添加(无需微调) 接下来几节作者将介绍作者为MedSAM提出的 Prompt 模块,并展示其在各种医学图像分割任务上的实用性。

2 Methodology

Preliminaries: MedSAM architecture

作者的方法基于MedSAM [12],这是一种针对医疗数据的SAM [10]变体微调的模型。该模型包含三个主要组件:一个大型图像编码器 ,一个 Prompt 编码器 和一个轻量级的 Mask 解码器 。

尽管图像编码器计算输入图像x的嵌入,但 Prompt 编码器会从提供的 Prompt 集[pr]中分别输出两个稀疏和密集的嵌入:分别是点或边界框(BB),以及一个 Mask 。网络通过将x和 Prompt 嵌入Z_{pr}=E_{pr}([pr])相乘来产生一个概率图:

σ 是 sigmoid 函数。

作者提出了一个端到端的方法,该方法无需修改预训练的MedSAM网络,即可移除对用户定义 Prompt 的典型依赖。

Lightweight prompt module

作者的方法包括一个用于直接计算由MedSAM提供的图像嵌入的 Prompt 模块(见图1b)。该模块输出与MedSAM生成的嵌入相同形状的两个嵌入(见图1a)。最初,密集的 Prompt 嵌入具有与图像的空间对应关系,可以被视为低质量的分割图,而稀疏嵌入是坐标的空间编码。因此,作者的 Prompt 模块通过卷积层生成一个密集嵌入,通过全连接(FC)层生成一个稀疏嵌入。

图片

Learning with tight box annotations

定义一个3通道输入图像 ,其中 对应于图像的每个通道,且高度为 ,宽度为 。此外,令 是 的真实二值分割 Mask 。假设作者只拥有目标紧边界框 的信息。 和 分别定义在边界框内部和外部的区域,且 。这导致了一个由边界框标注 产生的约束优化问题 [9]。

《的虚无》

由于中定义的边界框必须包含目标目标,因此中只能包含前景。因此,作者可以对中的所有像素应用交叉熵损失:

图片

紧边界框约束在中。边界框的紧致性表明,至少有一个前景像素必须穿过弱标签中的每一条水平和垂直线。如同[9]中所述,作者通过考虑宽度为的段而不是单个线来软化这一条件,并通过对输出概率而不是预测 Mask 进行考虑来确保可导性。该条件可表述为:

图片

所有宽度为的垂直和水平分段构成了边界框。作者将式(2)的不等式约束转换为损失函数,得到:

惩罚函数可以被建模为一种简单的缩放ReLU函数,即 。在本工作中,作者转而采用一个伪对数屏障函数,它在多个相互竞争的约束下提供了更稳定的优化。当 时,函数 表现为一个硬屏障,当 时,,否则 。在作者的方法中,作者发现固定 是最优的。

前景框大小约束。 边界框 也限制了预测 Mask 的目标大小。同样,作者考虑输出概率而不是单个预测以确保可区分性。通过在来自 的 个像素(其中 )上应用先验,作者得到:

图片

正如之前,作者使用将这些不等式约束转换为以下损失:

给定(1),(3)和(5),以及权重和,最终的损失变为:

3 Results

Datasets

作者的实验在三个公开数据集上验证了作者的方法:头围数据集2(HC18)[6],多结构超声分割心脏采集(CAMUS)[11]和自动心脏诊断挑战(ACDC)[1]。对于心脏数据集,作者使用的是舒张末期图像。对于HC18,作者从周长标注中过滤出不能由OpenCV自动生成的真实 Mask 样本,并将超声数据集分为507张训练图像、77张验证图像和148张测试图像。对于CAMUS,作者专注于左心室(LV)和左心房(LA)分割,并使用50张图像进行验证,100张图像进行测试,剩下的350张图像用于训练。

对于ACDC,作者专注于右心室(RV)和左心室(LV)分割,并使用10名患者进行验证(78张图像),50名患者进行测试(470张图像),剩下的90名患者(765张图像)用于训练。所有实验中的每个样本都有最小的前景大小。

参考[12],作者的预处理包括将每个2D图像(HC18,CAMUS)或每个3D体积(ACDC)的强度值在0.5百分位数和99.5百分位数之间截断,并将其重缩放到[0, 255]范围内。作者还把每个ACDC的3D体积划分成2D图像,并将其重新采样到固定的1mm×1mm分辨率。

对每个样本进行中心裁剪和填充,使其大小为640×640(HC),512×512(CAMUS)或256×256(ACDC)。

为了满足MedSAM的要求,作者在将其输入模型之前,将所有图像都调整为固定的3×1024×1024大小。

Implementation details

3.2.1 Model.

作者的 Backbone 模型是基于ViT-B的MedSAM,这是SAM的最小版本。在训练过程中, Backbone 模型保持冻结。作者通过使用较少的层来保持 Prompt 模块的轻量。首先,一个1x1卷积层将通道数减少。然后,通过一个3x3卷积得到稠密嵌入,通过一个1x1卷积层、池化层和全连接层得到稀疏嵌入。所有卷积层后跟ReLU激活函数。因此,作者的 Prompt 模块有2.4M可训练参数。

3.2.2 Loss parameters.

作者使用 训练 Prompt 模块,其中 ,。对于作者的紧密边界约束,作者遵循 [9] 并使用 的段。作者假设前景区域至少是其紧密边界框的一半大小,并设置 。与使用完整分割 Mask 的比较训练使用二进制交叉熵 Dice 损失,每个项具有相同的权重。

3.2.3 Training.

作者使用批量大小4,学习率(LR)为0.001,使用多步调度器,在完成一半的epoch后,LR降低0.1,权重衰减为0.0001。为了降低计算复杂性,作者没有使用数据增强。这使得作者在初始迭代时保存图像嵌入后,可以丢弃MedSAM的图像和 Prompt 编码器,从而将总参数数量从96.1M减少到6.5M(仅2.4M可训练)。

在10-shot设置中,作者重复实验9次,每次随机选择3个初始种子和3个训练子集。结果对这些实验进行平均。所有实验都使用Python 3.8.10在NVIDIA RTX-A6000 GPU上使用PyTorch实现。

3.2.4 Baselines.

对于每个类别,作者将作者的方法与两种专门的任务单一模型进行比较:一个标准的UNet [15] 和一个TransUNet [3]。作者还验证了作者的方法与PerSAM [22]进行比较,它使用1-shot监督自动实现SAM,以及AutoSAM [17]使用谐波密集网络(41.6M参数)学习 Prompt 嵌入。

作者将UNet、TransUNet和AutoSAM在完整的分割 Mask 上进行训练,使用标准的交叉熵Dice损失。为了提高 Baseline 模型的性能,使用了更长的训练时间(200个周期)和更大的批量大小(24个)的TransUNet(遵循[3])。

同样,PerSAM的最佳结果是通过使用ViT-H Backbone 获得的。当 Prompt 使用最紧的边界框(没有噪声)时,MedSAM的结果也包含在内。

Validation on multiple medical segmentation tasks

作者使用骰子相似度得分(DSC)作为作者的评估标准。作者在三个数据集上评估作者的方法:CAMUS,MedSAM的内部验证集,以及HC18和ACDC,这两个数据集在MedSAM的训练期间从未见过。

这使作者能够验证 Prompt 模块在域内和跨域数据上有效学习哪个区域进行分割的能力。训练在完整的训练集和困难的10-shot模式上进行。

作者的结果如表1和图2所示。首先,仅使用紧检测框(BB)标注,作者的方法在两个不同的任务(HC和LA)上超过了在真实分割 Mask 上训练的UNet。最显著的结果出现在10-shot设置下。在仅使用1.3% (ACDC),2% (HC18) 和2.9% (CAMUS) 的总训练样本的情况下,作者的方法(除RV分割外)与全数据设置相比性能仅略有下降。这与UNet和TransUNet在多个分割任务中观察到的显著性能下降形成对比,即使这两种方法都使用真实 Mask 标签进行训练。因此,作者的基于模块的方法不仅在计算效率上比专业模型更高,而且只需要较弱的标签,在少样本设置下表现更强大。AutoSAM的测试dice分数略好于作者的方法,但AutoSAM需要完整的真实 Mask ,并且使用更重的模型来学习 Prompt ,导致训练时间增加了3倍。

此外,PerSAM使用只有一个参考图像,无法生成令人信服的分割。它在医学数据集上的性能不佳可能是因为PerSAM生成的点 Prompt 被SAM使用,这些 Prompt 更有可能引入歧义[12]。

图片

图片

作者提出的方法的优点在图2中得到了视觉支持。作者的模块在10个训练样本和紧密的边界框上进行训练,产生的分割比使用真实 Mask 训练的UNet更具有说服力。

在训练数据较少的情况下,UNet在背景区域产生了大量假象。作者的方法还可以生成比AutoSAM和PerSAM两种现有的基于 Prompt 的适应方法对SAM更忠诚的分割 Mask 。

4 Conclusion

这项工作提出了一种自动化基于 Prompt 的全域模型(如MedSAM)的方法,该方法通过直接从基础模型的图像嵌入生成任务特定的 Prompt 嵌入。

作者可以将其集成到MedSAM中的附加模块直接去除对用户输入的依赖。

更重要的是,通过应用紧密性和大小约束,作者的模块可以仅使用边界框标注进行有效训练,同时让MedSAM保持不变。

此外,作者的10-shot实验表明,在不需要显著降低模型性能的情况下,可以大大减少训练模型所需的样本数量。

通过添加一个轻量级的 Prompt 模块,可以有效地使用少数弱标签进行训练,从而在最小化标注障碍的情况下,使MedSAM针对特定任务高效自动化。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

Arduino Uno 同时控制多路舵机

Arduino Uno同时控制4个舵机 舵机可以在0~180度内指定角度的控制。常用于航模、机器人、遥控玩具等物品,然而,很多时候要一次性控制多个舵机,今天以控制4个舵机为例进行说明 接线方式如下图: 舵机的信号线分别接A0,A1,A2,A3。控制舵机从0旋转到180度,再由180度旋转到0度,…

从0开始深度学习(18)——层和块

1 层和块 1.1层 层是神经网络的基本组成单位。每一层由多个神经元(或单元)组成,这些神经元在前一层的输出上执行某种计算,并将结果传递给下一层。根据功能,层可以分为以下几种类型: 输入层(I…

《决策思维:人人必备的决策口袋书》

本书干货很多,十分值得一读。但受众不是一线员工与一线管理者,更多的倾向于管理者的管理者。一线员工读完的最大收获是可以理解老板的决策逻辑与思维方式,便于更好的去做执行。同时,还能帮助判断老板的决策是否正确,是…

【Android】view的基础知识

文章目录 View与ViewGroupView位置参数View的滑动1. scrollTo与scrollBy2. 属性动画ObjectAnimatorViewPropertyAnimator 3. LayoutParams(布局参数)layout方法offsetLeftAndRight View的弹性滑动1. Scroller 类2. 动画(ObjectAnimator&#…

SYN590RL 300MHz至450MHz ASK接收机芯片IC

一般描述 SYN590RL是赛诺克全新开发设计的一款宽电压范围,低功耗,高性能,无需外置AGC电容,灵敏度达到典型-110dBm,300MHz”450MHz 频率范围应用的单芯片ASK或OOK射频接收器。 SYN59ORL是一款典型的即插即用型单片高集成度无线接收器&…

Spring Boot实现的动态化酒店住宿管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理酒店客房管理系统的相关信息成为必然。开发…

pytorch的标签平滑介绍

什么是标签平滑(Label Smoothing)? 标签平滑(Label Smoothing)是一种正则化技术,旨在防止模型过度自信(即输出的概率分布过于“尖锐”)。在分类任务中,标准的目标标签是one-hot编码,也就是正确类别的概率为 1,其他类别的概率为 0。而标签平滑通过将正确类别的概率从…

绝了,这款播放器让发烧友疯狂种草,堪称音乐神器

作为音乐爱好者的不二之选,foobar2000凭借其卓越的音频处理能力,在Windows系统用户中树立了极高的声誉。这款轻量级播放器的设计理念是将极致的性能与个性化完美结合。用户可以根据自己的使用习惯,打造出独具特色的播放界面和操作流程。在音频…

【redis】初识非关系型数据库——redis

W...Y的主页 😊 代码仓库分享💕 初识 Redis Redis是⼀种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis 中的值可以是由string(字符串)、hash&#xff0…

html 登入界面,用户注册界面相关的标签及案例

案例效果图 以上界面的完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

Python浪漫之画星星

效果图&#xff08;动态的哦&#xff01;&#xff09;&#xff1a; 完整代码&#xff08;上教程&#xff09;&#xff1a; import turtle import random import time # 导入time模块# 创建一个画布 screen turtle.Screen() screen.bgcolor("red")# 创建一个海龟&a…

【学术论文投稿】Windows11开发指南:打造卓越应用的必备攻略

【IEEE出版南方科技大学】第十一届电气工程与自动化国际会议&#xff08;IFEEA 2024)_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看&#xff1a;https://ais.cn/u/nuyAF3 目录 引言 一、Windows11开发环境搭建 二、Windows11关键新特性 三、Windows11设计指南 …

Android 自定义 Dialog 实现列表 单选,多选,搜索

前言 在Android开发中&#xff0c;通过对话框让用户选择&#xff0c;筛选信息是很方便也很常见的操作。本文详细介绍了如何使用自定义 Dialog、RecyclerView 以及自定义搜索框 来实现选中状态和用户交互&#xff0c;文中大本分代码都有明确注释&#xff0c;主打一个简单明了&a…

springboot 同时上传文件和JSON对象

控制器代码 PostMapping("/upload") public ResponseEntity<String> handleFileUpload(RequestPart("file") MultipartFile file,RequestPart("user") User user) {// 处理文件和用户信息return ResponseEntity.ok("File and user i…

tomcat部署war包部署运行,IDEA一键运行启动tomacat服务,maven打包为war包并部署到tomecat

tomcat部署war包前端访问 在Java Web开发中&#xff0c;Tomcat是一个非常流行的开源Web服务器和Servlet容器。它实现了Java Servlet和JavaServer Pages (JSP) 技术&#xff0c;提供了一个纯Java的Web应用环境。本文将介绍如何在Tomcat中部署运行WAR包&#xff0c;让你的应用快…

SpringBoot实现mysql多数据源配置(Springboot+Mybatis)

最近在学习SpringBoot的一些知识&#xff0c;主要是参考了纯洁的微笑的一些博客作为练手&#xff0c;想着他已经把入门的教程写的很详细了,如果再简单的把他的教程拷贝到自己的简书&#xff0c;这是是赤裸裸的剽窃&#xff0c;很不地道&#xff0c;作为一个技术人员&#xff0c…

通过页面添加国际化数据,实现vue的国际化

element ui 写在前面1. 原有的vue的国际化处理1.1 语言文件1.2 lang的index.js1.3 入口文件导入1.3 应用 2. 通过页面添加国际化数据2.1 做法2.2 lang的index.js文件修改2.3 需要注意的点 总结写在最后 写在前面 需求&#xff1a;在系统的国际化管理页面添加国际化数据&#x…

机器视觉-相机、镜头、光源(总结)

目录 1、机器视觉光源概述 2、光源的作用 3、光谱 4、工业场景常见光源 4.1、白炽灯 4.2、卤素灯 4.3、 荧光灯 4.4、LED灯 4.5、激光灯 5、光源的基本性能 5.1、光通量 5.2、光效率 5.3、发光强度 5.4、光照度 5.5、均匀性 5.6、色温 5.7、显色性 6、基本光学…

嵌入式软开项目——电子手环开发——学习引导和资料网址

文末附所有资料下载链接 1、需要将该文件夹放置到英文路径下&#xff0c;否则无法运行 2、目录下总共四个文件夹 2.1 第一个文件夹“0、OV-Watch-main(原版)”&#xff0c;为开源代码的原版资料 2.2第二个文件夹” OV-Watch-main”&#xff0c;为本人对开源代码的学习&…

Java-I/O框架02:使用文件字节流复制文件

package com.yundait.Demo03;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream;/*** 使用文件字节流实现文件的复制* author zhang*/ public class FileInputStreamDemo03 {public static void main(String[] args) th…