MSA【1】:Segment Anything Model for Medical Image Analysis: an Experimental Study

news2025/1/26 15:45:14

文章目录

  • 前言
  • 1. Abstraction & Introduction
    • 1.1. Abstraction
    • 1.2. Introduction
      • 1.2.1. What is SAM?
      • 1.2.2. How to segment medical images with SAM?
  • 2. Methodology
    • 2.1. SAM is used in the process of segmentation of medical images
      • 2.1.1. Semi-automated annotation
      • 2.1.2. SAM assisting other segmentation models
      • 2.1.3. New medical image foundation segmentation models
    • 2.2. Experiments
      • 2.2.1. Settings
      • 2.2.2. Prompt Point Generation Scheme
  • 总结


前言

本文主要介绍了 Segment Anything Model 在自然图像分割领域取得显著成就后,较早的将 SAM 在医学图像领域做评测的工作。

原论文链接:Segment Anything Model for Medical Image Analysis: an Experimental Study


1. Abstraction & Introduction

1.1. Abstraction

Segment Anything Model (SAM) 是一个在超过 10 亿个注释(主要是自然图像)上训练的基础模型,旨在以交互方式分割用户定义的感兴趣对象。尽管该模型在自然图像上的表现令人印象深刻,但目前尚不清楚该模型在转向医学图像领域时会受到怎样的影响。

本文对 SAM 分割医学图像的能力进行了广泛的评估,评估对象包括来自不同模式和解剖学的 11 个医学影像数据集。研究表明,SAM 的性能因任务和数据集而异,某些数据集的性能令人印象深刻,但其他数据集的性能则差至中等。

1.2. Introduction

为新的医学成像数据和任务开发和训练分割模型实际上具有挑战性,这是因为收集和整理医学图像既昂贵又耗时,而且还需要经验丰富的医生为图像提供仔细的掩膜注释。基础模型和零点学习可以通过使用在大量数据上训练的神经网络来显著减少这些困难,而无需使用传统的监督训练标签。

1.2.1. What is SAM?

Segment Anything Model 是一种分割模型,其目的是在给出提示时分割用户定义的感兴趣对象。提示的形式可以是一个点、一组点(包括整个掩膜)、一个边界框或文本。即使在提示不明确的情况下,也要求模型返回有效的分割掩膜。

有关 Segment Anything Model 的介绍可以参考我的另一篇 blog:SAM【1】:Segment Anything

1.2.2. How to segment medical images with SAM?

从技术上讲,SAM 可以在没有提示的情况下运行,但预计它在医学成像中不会有用。这是因为医学图像通常具有图像中许多感兴趣的特定物体,并且需要对模型进行训练才能识别这些物体。


2. Methodology

2.1. SAM is used in the process of segmentation of medical images

2.1.1. Semi-automated annotation

人工标注医学图像是该领域开发分割模型的主要挑战之一,因为这通常需要医生花费宝贵的时间。在这种情况下,SAM 可作为一种工具用于加快标注速度。

在最简单的情况下,人类用户为 SAM 提供提示,SAM 会生成一个掩膜供用户批准或修改;另一种方法是,SAM 在整个图像中以网格形式给出提示,并为多个对象生成遮罩,然后由用户命名、选择或修改。

2.1.2. SAM assisting other segmentation models

SAM 与另一种算法一起自动分割图像,以弥补 SAM 无法理解分割物体的语义信息的不足。例如,SAM 根据分布在图像上的点提示,可以生成多个对象掩码,然后由一个单独的分类模型将其归类为特定对象。同样,独立的检测模型可以生成图像的对象边界框,作为 SAM 生成精确分割掩码的提示。

此外,在训练语义分割模型的过程中,可以将 SAM 与语义分割模型循环使用。例如,在训练过程中,分割模型在未标记图像上生成的掩码可用作 SAM 的提示,以便为这些图像生成更精确的掩码,这些掩码可用作正在训练的模型的迭代改进监督训练示例。

2.1.3. New medical image foundation segmentation models

新的医学图像基础分割模型的开发过程可以由 SAM 的开发过程来指导;或者,在各种医学影像领域的医学图像和掩膜上对 SAM 进行微调,而不是从头开始训练,因为这可能需要更少的图像。

2.2. Experiments

2.2.1. Settings

评估是通过为每个对象创建一个或多个提示并评估 SAM 生成的掩码相对于给定数据集和任务的真实掩码注释的准确性来完成的。同时,本文始终使用SAM为给定提示生成的置信度最高的掩码。

选择 mIoU 作为评估指标。然而,经验研究表明,SAM 的性能在同一图像的不同类别中会有很大差异。因此,本文将 N 个类别的多类预测问题转换为 N 个二元分类问题,因此使用 IoU 作为最终评价指标就足够了。

在这里插入图片描述

2.2.2. Prompt Point Generation Scheme

本文使用了一种通用的、直观的策略来模拟现实点提示的生成,该策略反映了用户如何以交互方式生成提示,实现的细节如下图所示:

在这里插入图片描述

生成逻辑:

  • 主要模拟了人在选点时候的思维:在选点的时候,用户通常会从明显最错误或者明显最正确的地方的中心选点,理论上这样可以尽可能地涵盖用户需要的部分
  • 将第一个提示点 p 1 p1 p1 初始化为掩膜前景中距背景最远的点
    • 即第一个提示点 p 1 p1 p1 是一个 positive prompt
    • 需要注意的是,SAM 需要一个 positive prompt 以确定分割的对象,所以传入 SAM 的第一个 point prompt 必须为 positive prompt
  • 由公式 P = a r g m a x ( i , j ) ( d [ ( i , j ) , ( k , l ) ] ) \mathcal{P} = argmax_{(i, j)} (d[(i, j), (k, l)]) P=argmax(i,j)(d[(i,j),(k,l)]) 得到一组符合上述条件的点
  • 从上述符合条件的点集中选择随机选择一个符合条件的点,作为第一个输入
  • 将 point prompt 的坐标输入 SAM 得到预测分数最高的一个 mask Y 1 Y_1 Y1
  • 获得预测错误的区域: E 1 = Y 1 ∪ M − Y 1 ∩ M E_1 = Y_1 \cup M - Y_1 \cap M E1=Y1MY1M
    • Y 1 ∪ M Y_1 \cup M Y1M:预测的 mask 在原掩膜中覆盖的面积与前景点集的并集
    • Y 1 ∩ M Y_1 \cap M Y1M:预测的 mask 在原掩膜中覆盖的面积与前景点集的交集
    • E 1 E_1 E1:预测的 mask 和前景点集中没有被正确预测的部分,即预测错误区域
  • 随后的 point prompt 是距离迭代更新误差区域 E n E_n En 边界最远的点
    • SAM 一次性只能接受一个 point prompt,并返回一个预测 mask,即多个 point prompt 是在每次 SAM 输出的预测 mask 的基础上迭代输入的过程
    • 每次迭代得到一个误差区域 E n E_n En 边界最远的点集
    • 从点集中随机选取一个点作为输入
    • 获得 SAM 的预测输出
    • 更新预测误差区域
  • 得到最后的预测结果

总结

本文主要是在 SAM 提出的基础上,对 SAM 能否在医学图像分割中应用做了一次评测,具体的数据集和结果可以参考原论文中的结果图。

这篇笔记侧重对 SAM 之后在医学图像分割中的应用以及微调的学习与理解,同时分析了本文提出的具有较高效率、比较模拟用户选点习惯的 point prompt 生成算法做了讨论与记录。

但同时,本文并没有研究 3D 的数据集,但 3D 数据在医学图像领域中十分常见,这也将会是之后研究的一个重点方向。

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

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

相关文章

【压力传感器】LPS22DFTR、LPS33KTR 绝对 压力,ADP5131 排气式压力计 50kPa 6-DIP

LPS22DFTR MEMS纳米压力传感器是一款超紧凑型压阻式绝对压力传感器,可用作数字输出气压计。LPS22DF的功耗更低,与上一代产品相比压力噪声更低。该器件包括一个传感元件和一个IC接口,通过I2C、MIPI I3CSM或SPI接口从传感元件向应用程序进行通信…

蒙德里安的梦想

题目 求把 NM 的棋盘分割成若干个 12 的长方形,有多少种方案。 例如当 N2,M4 时,共有 5 种方案。当 N2,M3 时,共有 3 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行&…

GO语言基础-04-数据类型-04-map(map的排序)

文章目录 1. 按value排序1.1 思路1.2 语法1.3 完整示例 2. 按key排序2.1 思路2.2 语法示例2.3 完整示例2.4 完整示例 1. 按value排序 1.1 思路 map本身的顺序不可控,我们考虑如下方法实现排队: 思路一:通过一个切片来接收拍好队的map成员思…

多线程应用场景

文章目录 前言一、CountDownLatch倒计时锁二、如何控制线程并发数?三、浅聊ThreadLocal1.ThreadLocal定义2.ThreadLocal源码解读3.关于ThreadLocal的一个案例 总结 前言 本篇介绍多线程中的应用场景,比如倒计时锁CountDownLatch、信号量Semaphore、以及…

【雕爷学编程】Arduino动手做(163)---大尺寸8x8LED方格屏模块5

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

一种简化的3D点云车道线自动识别标注一些思考

0. 简介 作为3D车道线训练来说,数据集是至关重要的,而使用点云的精确性来完成准确的车道线地图构建是一个非常重要且有趣的事情。下面我们将会从一个例子开始,分阶段来告诉大家该怎么样去完成一个简单的3D点云车道线自动识别标注工具。 1. …

WordPress作为可扩展的企业级解决方案

网络商业世界就像一片汪洋大海,大型企业是大海中最大的鱼。然而,只因为你比其他人都大,并不意味着你不能逆流而上。相反,企业业务面临的挑战更大,对网站的技术要求更高。 多年来,大型公司通常依赖最昂贵的…

爆肝整理,接口自动化测试面试题+答案,25k*15薪如何达成的...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、请问你是如何做…

MB10S-ASEMI迷你贴片整流桥50MIL芯片MB10S

编辑:ll MB10S-ASEMI迷你贴片整流桥50MIL芯片MB10S 型号:MB10S 品牌:ASEMI 芯片个数:4 封装:MBS-4 恢复时间:50ns 工作温度:-50C~150C 浪涌电流:30A 正向电流:1…

HttpRunner自动化测试之辅助函数debugtalk.py

辅助函数debugtalk.py Httprunner框架中,使用yaml或json文件进行用例描述,无法做一些复杂操作,如保存一些数据跨文件调用,或者实现一些复杂逻辑判断等,为了解决这个问题,引入了debugtalk.py辅助函数来进行一…

Linux操作系统升级低版本的OpenSSH到9.3的高版本

OpenSSH 9.3之前的版本存在各种各样的安全漏洞,为此,我们需要将OpenSSH升级到最新的9.3的版本。 执行:ssh -V,我们可以查看当前的openssh版本 为了避免升级过程中出现意外而导致服务器无法正常使用,建议操作前先对服务…

插槽的使用!!

什么是插槽 插槽(Slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。可以把插槽认为是组件封装期间,为用户预留的内容的占位符 即:使用者来决定某一块区域…

开利网络拜访番禺前后仓国际珠宝基地,以数字化技术赋能产业升级

近日,开利网络拜访位于番禺的前后仓国际珠宝基地,对基地目前的数字化需求和产业升级方向进行了解和探讨。目前,基地拥有以数字贸易综合服务中心,以人才、流量、运营、金融为抓手,以供应链选品、直播电商、跨境电商为媒…

【C++医学影像PACS】CT检查中的三维重建是什么检查?

一、【PACS影像科普】CT检查中的三维重建是什么检查? 三维重建是多层螺旋CT的一个最大的优点,也是影像工作多年来,从横断解剖到多平面,乃至立体的一次飞跃,让抽象变的形象,大大地提高了准确性,为…

大数据测试之数据仓测试怎么做(下)

前面的文章我们为大家介绍了一个常见的互联网大厂的数据仓的技术框架,也就是下面这张图所展示的内容。 为大家介绍了从操作数据层,到DW层,再到汇总数据层,最后到维度层和数据应用层的整个流程。本文我们将整个架构打平来展示制作…

我们正在开发一套组件库,欢迎你的加入~

项目地址 github地址 可以先点进来康康~ 技术栈 目前我们整体采用的是vue3typescriptless作为整体的开发的选择 需要说的是,我们并没有采用很多组件库采用的TSX的写法,而是选择了SFC的写法,这是因为我们觉得对于大部分的vue开发者来说&am…

用得最多的企业文件加密软件【企业文件加密软件前十】

企业文件加密软件是一种专门设计用于保护企业敏感信息的软件工具。它通过使用加密算法将企业的文件、文件夹和移动设备上的数据转化为不可读的格式,以防止未经授权的访问和数据泄露。这些软件通常提供了多种加密算法和安全控制选项,以满足不同企业的安全…

国外访问学者博士后常用的网络视频面试软件

面试是获得邀请函的重要环节,随着网络的广泛应用,现在视频面试逐渐取代了电话面试,本篇知识人网小编介绍几种国外访问学者博士后常用的网络视频软件。 在申请国外博士后或者访问学者职位时,当接收方导师收到CV(简历&am…

postgis上传 上千个资源文件

需求背景所需工具解决流程1. 获取文件名信息2.复制到 excel 表格中3.转成 csv 文件 需求背景 需要把上千个文件资源上传到远端,并建立数据表 所需工具 Notepad 7wps office 11.1.0 解决流程 1. 获取文件名信息 复制文件路径,在 cmd 中进到文件夹&…

Python程序设计基础:列表与元组(二)

文章目录 一、数值列表的生成1、通过input()函数输入创建列表2、通过list()函数转换3、列表生成式4、数值列表的几种统计计算 二、元组1、元组的定义2、元组的操作3、元组作为列表元素 三、转换函数1、元组和列表之间的转换2、字符串和列表之间的转换3、split()方法 一、数值列…