SCI 1区论文:Segment anything in medical images(MedSAM)[文献阅读]

news2024/9/24 11:30:41

基本信息

  • 标题:Segment anything in medical images
  • 中文标题:分割一切医学图像
  • 发表年份: 2024年1月
  • 期刊/会议: Nature Communications
  • 分区: SCI 1区
  • IF:16.6
  • 作者: Jun Ma; Bo Wang(一作;通讯)
  • 单位:加拿大多伦多大学 健康网络中心
  • DOI:https://doi.org/10.1038/s41467-024-44824-z
  • 开源代码:https://github.com/bowang-lab/MedSAM

摘要: 医学图像分割是临床实践中的一个关键组成部分,有助于准确诊断、治疗计划和疾病监测。然而,现有的方法通常针对特定的模式或疾病类型,在各种医学图像分割任务中缺乏可推广性。在这里,我们介绍了MedSAM,这是一个基础模型,旨在通过实现通用医学图像分割来弥合这一差距。该模型是在大型医学图像数据集上开发的,有1570263对图像-掩码对,涵盖10种成像模式和30多种癌症类型。我们对86个内部验证任务和60个外部验证任务进行了全面评估,证明了比模态专家模型更好的准确性和稳健性。通过在广泛的任务中提供准确高效的分段,MedSAM在加快诊断工具的发展和治疗计划的个性化方面具有巨大潜力。

章节速览

  • Introduction
    1. Results
    • 1.1 MedSAM:快速医学图像分割的基础模型
    • 1.2 定量和定性分析
    • 1.2 训练数据集大小的影响
    • 1.4 MedSAM提升标注效率
    1. Discussion
    1. Methods
    • 3.1 数据集管理和预处理
    • 3.2 网络架构
    • 3.3 训练方案及实验设置
    • 3.4 损失函数
    • 3.5 人类注释
    • 3.6 评估指标
    • 3.7 统计分析
    • 3.8 使用软件
    • 3.9 报告总结

Introduction

医学图像分割领域对通用模型的需求日益增长:即一次训练后能够应用于广泛分割任务的模型。这样的模型不仅在模型容量方面表现出更高的多功能性,还有可能在不同任务中产生更加一致的结果。

然而,由于自然图像与医学图像之间存在显著差异,因此分割基础模型(例如 SAM)在医学图像分割领域的适用性仍然有限。SAM本质上是一种可提示的分割方法,需要使用点或边界框来指定分割目标

许多研究已经将开箱即用的SAM模型应用于典型的医学图像分割任务和其他具有挑战性的场景。我们进一步介绍了MedSAM,这是一种改进的基础模型,可显着增强 SAM 在医学图像上的分割性能。MedSAM 通过在包含超过一百万对医学图像-掩模对的前所未有的数据集上微调 SAM 来实现这一目标

1. Results

1.1 MedSAM:快速医学图像分割的基础模型

MedSAM 旨在发挥通用医学图像分割基础模型的作用。构建此类模型的一个关键方面是能够适应成像条件、解剖结构和病理条件的各种变化。为了应对这一挑战,我们策划了一个多样化的大规模医学图像分割数据集,其中包含 1,570,263 个医学图像掩模对,涵盖 10 种成像模式、30 多种癌症类型和多种成像协议

图1 该数据集涵盖了各种解剖结构、病理状况和医学成像模式。洋红色轮廓和掩模叠加分别表示专家注释和 MedSAM 分割结果

图1 轮廓细节

图 2a概述了数据集中不同医学成像模式的图像分布,按总数排序。很明显,计算机断层扫描(CT)、磁共振成像(MRI)和内窥镜检查是主要的检查方式,反映出它们在临床实践中的普遍性。

图 2a 数据集中不同医学成像模式的图像分布

我们采用了SAM中的网络架构,包括图像编码器、提示编码器和掩模解码器(图2b)。图像编码器将输入图像映射到高维图像嵌入空间。提示编码器通过位置编码将用户绘制的边界框转换为特征表示。最后,掩模解码器使用交叉注意力(方法)将图像嵌入和提示特征融合在一起。

图 2b 网络架构

1.2 定量和定性分析

我们通过内部验证和外部验证评估了 MedSAM。内部验证包含 86 个分割任务。外部验证包括 60 个分割任务,所有这些任务要么来自新数据集,要么涉及看不见的分割目标

图3:内部验证集的定量和定性评估结果

1.3 训练数据集大小的影响

我们还研究了不同数据集大小对 MedSAM 性能的影响,因为训练数据集大小已被证明对模型性能至关重要。我们还在两种不同的数据集大小上训练了 MedSAM:10K 和 100K 图像,并将它们的性能与默认的 MedSAM 模型进行了比较

图 5a:训练数据集大小的影响

增加训练图像的数量显着提高了内部和外部验证集的性能

1.4 MedSAM提升标注效率

此外,我们进行了人工注释研究来评估两个管道的时间成本(方法)。对于第一个管道,两名人类专家以逐片方式手动注释 3D 肾上腺肿瘤。对于第二条流程,专家们首先每隔3-10片用线性标记(初始标记)绘制肿瘤长轴和短轴,这是肿瘤反应评估的常见做法。然后,使用 MedSAM 根据这些稀疏线性注释对肿瘤进行分割。结果表明,在 MedSAM 的帮助下,两位专家的注释时间分别大幅减少了 82.37% 和 82.95%

图5 b MedSAM 可用于大幅减少注释时间成本

2. Discussion

尽管 MedSAM 拥有强大的功能,但它也存在一定的局限性

  • 训练集中的模态不平衡,其中 CT、MRI 和内窥镜图像在数据集中占主导地位。这可能会影响模型在较少代表性的模式(例如乳房X光检查)上的性能。
  • 它在分割血管状分支结构方面存在困难,因为在此设置中边界框提示可能不明确。例如,在眼底图像中,动脉和静脉共享相同的边界框。

然而,这些限制并没有削弱 MedSAM 的实用性。由于 MedSAM 从大规模训练集中学习了丰富且有代表性的医学图像特征,因此可以对其进行微调,以有效地将新任务从代表性较低的模式或复杂的结构(如血管)中分割出来。

3. Methods

3.1 数据集管理和预处理

数据来源:这些数据集是从互联网上的各种来源获得的,包括TCIA、Kaggle、Grand-Challenge、Scientific Data、CodaLab 和MICCAI。

数据处理:所有3D 数据集(DICOM、nrrd 或 mhd 格式)都转换为广泛使用的 NifTI 格式。此外,灰度图像(例如 X 射线和超声)以及 RGB 图像(包括内窥镜检查、皮肤镜检查、眼底和病理图像)也被转换为 png 格式。

归一化方案

  • CT图像归一化:对 Hounsfield 单位进行归一化。软组织、肺和脑所采用的窗口宽度和水平值分别为(W:400,L:40)、(W:1500,L:-160)和(W:80,L:40)。随后,强度值被重新调整到 [0, 255] 的范围。
  • MR、X 射线、超声波、乳房 X 光检查和光学相干断层扫描 (OCT) 图像,我们将强度值剪裁到第 0.5 个百分位数和第 99.5 个百分位数之间的范围,然后将其重新缩放到 [0, 255] 范围。
  • RGB图像(例如内窥镜、皮肤镜、眼底和病理图像),如果它们已经在[0, 255]的预期强度范围内,则它们的强度保持不变。但是,如果它们超出此范围,我们会利用最大-最小归一化将强度值重新调整为 [0, 255]。

图像尺寸

最后,为了满足模型的输入要求,将所有图像调整为统一大小1024×1024×3。对于全幻灯片病理图像,使用滑动窗口方法提取无重叠的斑块。位于边界上的斑块用 0 填充到该大小。对于 3D CT 和 MR 图像,每个 2D 切片的大小调整为 1024 × 1024,并且通道重复 3 次以保持一致性。其余的 2D 图像直接调整为 1024 × 1024 × 3。

3.2 网络架构

本研究中使用的网络是基于Transformer架构,该架构在自然语言处理和图像识别等各个领域展现出了显著的有效性。具体而言,该网络包括一个基于Vision Transformer(ViT)的图像编码器,负责提取图像特征;一个提示编码器,用于整合用户的交互(边界框);以及一个掩模解码器,利用图像嵌入、提示嵌入和输出令牌生成分割结果和置信度分数。

3.3 训练方案及实验设置

模型使用预先训练的 SAM 模型和 ViT-Base 模型进行初始化。损失函数是Dice损失和交叉熵损失之间的未加权总和。AdamW 优化器(β 1 = 0.9,β 2 = 0.999)进行优化,初始学习率为 1e-4,权重衰减为 0.01。全局批量大小为 160,未使用数据增强。该模型在 20 个 A100 (80G) GPU 上进行了 150 个 epoch 的训练,并选择最后一个检查点作为最终模型。

看到最后,20 个 A100,我欣慰了,并不是我脑子不够用才发不了这么好的文章

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

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

相关文章

负载均衡(3)

文章目录 一、HAProxy介绍企业版社区版版本对比HAProxy功能支持功能不具备的功能 二、编译安装HAProxy解决lua环境Centos 基础环境 编译安装HAProxy验证HAProxy版本HAProxy启动脚本配置文件启动haproxy验证haproxy状态查看haproxy的状态页面 三、HAProxy基础配置详解global配置…

SSH口令问题

SSH(Secure Shell)是目前较可靠、专为远程登录会话和其他网络服务提供 安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。 SSH口令长度太短或者复杂度不够,如仅包含数字或仅包含字母等时&#xf…

正版软件 - Proxyman:让网络调试变得更智能、更高效

在软件开发的世界里,网络调试一直是开发者和测试工程师的痛点。传统的调试工具往往操作复杂,界面不够直观,而且性能上也难以满足现代应用的需求。今天,我要向大家介绍一款名为Proxyman的网络调试工具,它以其简洁的界面…

项目02《游戏-12-开发》Unity3D

基于 项目02《游戏-11-开发》Unity3D , 人物:实现场景怪物自动巡航 , 首先在场景中创建小球命名为路径点WayPoint0, 取消小球的碰撞器Collider, 再复制两个改名为WayPoint1 和 WayPoint2 , 在…

懒人精灵 之 Lua 捕获 json解析异常 ,造成的脚本停止.

Time: 2024年2月8日20:21:17 by:MemoryErHero 1 异常代码 Expected value but found T_END at character 12 异常代码 Expected value but found T_OBJ_END at character 223 处理方案 - 正确 json 示范 while true do--Expected value but found T_END at character 1--Ex…

【数据分享】1929-2023年全球站点的逐日平均风速数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全球气象站…

Java毕业设计-基于ssm的仓库管理系统-第76期

获取源码资料,请移步从戎源码网:从戎源码网_专业的计算机毕业设计网站 项目介绍 基于ssm的游泳馆管理系统:前端jsp、jquery、bootstrap,后端 springmvc、spring、mybatis,集成游泳课程报名、游泳卡在线售卖、购物车、…

c++设计模式之装饰器模式

作用 为现有类增加功能 案例说明 class Car { public:virtual void show()0; };class Bmw:public Car { public:void show(){cout<<"宝马汽车>>"<<endl;} };class Audi:public Car { public:void show(){cout<<"奥迪汽车>>&q…

【数据分享】1929-2023年全球站点的逐日平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;说到常用的降水数据&#xff0c;最详细的降水数据是具体到气象监测站点的降水数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

【Flink入门修炼】1-3 Flink WordCount 入门实现

本篇文章将带大家运行 Flink 最简单的程序 WordCount。先实践后理论&#xff0c;对其基本输入输出、编程代码有初步了解&#xff0c;后续篇章再对 Flink 的各种概念和架构进行介绍。 下面将从创建项目开始&#xff0c;介绍如何创建出一个 Flink 项目&#xff1b;然后从 DataStr…

pwn学习笔记(1)前置基础

pwn学习笔记&#xff08;1&#xff09; &#xff08;1&#xff09;pwn简介&#xff1a; ​ 以下来自于百度百科&#xff1a;”Pwn”是一个黑客语法的俚语词&#xff0c;是指攻破设备或者系统发音类似“砰”&#xff0c;对黑客而言&#xff0c;这就是成功实施黑客攻击的声音—…

【开源】SpringBoot框架开发医院门诊预约挂号系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2 科室医生档案模块2.1.3 预约挂号模块2.1.4 医院时政模块 2.2 可行性分析2.2.1 可靠性2.2.2 易用性2.2.3 维护性 三、数据库设计3.1 用户表3.2 科室档案表3.3 医生档案表3.4 医生放号…

【前端素材】bootstrap4实现绿色植物Lukani平台

一、需求分析 绿色植物商城是一个专门销售绿色植物的零售商店或在线平台。它提供各种类型和品种的室内植物、室外植物和盆栽等。绿色植物商城的作用可以从以下几个方面来分析&#xff1a; 1. 提供多样化的选择&#xff1a;绿色植物商城通常会提供各种各样的绿色植物选项&…

.NET Core 实现 JWT 认证

写在前面 JWT&#xff08;JSON Web Token&#xff09;是一种开放标准, 由三部分组成&#xff0c;分别是Header、Payload和Signature&#xff0c;它以 JSON 对象的方式在各方之间安全地传输信息。通俗的说&#xff0c;就是通过数字签名算法生产一个字符串&#xff0c;然后在网络…

『运维备忘录』之 Kubernetes(K8S) 常用命令速查

一、简介 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写&#xff0c;是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案&#xff0c;具有完备的集群管理能力&a…

UDP端口探活的那些细节

一 背景 商业客户反馈用categraf的net_response插件配置了udp探测, 遇到报错了&#xff0c;如图 udp是无连接的&#xff0c;无法用建立连接的形式判断端口。 插件最初的设计是需要配置udp的发送字符&#xff0c;并且配置期望返回的字符串&#xff0c; [[instances]] targets…

【PyTorch][chapter 14][李宏毅深度学习][Word Embedding]

前言&#xff1a; 这是用于自然语言处理中数据降维的一种方案。 我们希望用一个向量来表示每一个单词. 有不同的方案 目录&#xff1a; one-hot Encoding word-class 词的上下文表示 count-based perdition-based CBOW Skip-Gram word Embedding 词向量相似…

数据结构(C语言)代码实现(八)——顺序栈实现数值转换行编辑程序汉诺塔

目录 参考资料 顺序栈的实现 头文件SqStack.h&#xff08;顺序栈函数声明&#xff09; 源文件SqStack.cpp&#xff08;顺序栈函数实现&#xff09; 顺序栈的三个应用 数值转换 行编辑程序 顺序栈的实现测试 栈与递归的实现&#xff08;以汉诺塔为例&#xff09; 参考资…

Vision Pro新机测评!“这才是MR硬件该有的模样!”

期盼很久的Vision Pro终于到了&#xff0c;小编迫不及待地体验了一把&#xff0c;效果相当非常震撼&#xff0c;操作非常丝滑&#xff0c;画面非常清晰…来不急解释了&#xff0c;快和小编一起来看一下吧~ 新机一到公司&#xff0c;为解大家对Vision Pro 的“相思之苦”&#x…