CV | SAM在医学影像上的模型调研【20240207更新版】

news2024/11/15 23:35:05

本文主要是SAM(Segment Anything)在医学影像上的数据集,模型及评估方法调研【持续更新】~

1.开源数据集

可参考这篇【数据集 | 基于计算机视觉的医学影像处理数据集_CSDN博客】

2.算法模型

2023.04_SAM

 论文:2018.08.05v_Segment Anything

论文地址:2304.02643.pdf (arxiv.org)

代码地址:facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model. (github.com)

 基础模型,详情请参考【CV | Segment Anything论文详解及代码实现】

2023.04.02v1_SAM-Adapter

论文:SAM Fails to Segment Anything? – SAM-Adapter: Adapting SAM in Underperformed Scenes: Camouflage, Shadow, Medical Image Segmentation, and More

论文地址:2304.09148.pdf (arxiv.org)

两个 MLP 和一个激活函数组成的Adapter。解码器中不输入任何提示。 

2023.04_Medical-SAM-Adapter

Adapting Segment Anything Model for Medical Image Segmentation

论文地址:2304.12620.pdf (arxiv.org)

论文代码:KidsWithTokens/Medical-SAM-Adapter: Adapting Segment Anything Model for Medical Image Segmentation (github.com)

对医疗图像分割任务的 SAM 架构进行微调,插入 Adapter 模块。

2023.06.01_DeSAM

论文:DeSAM: Decoupling Segment Anything Model for Generalizable Medical Image Segmentation

论文地址:2306.00499.pdf (arxiv.org)

  • 修改 SAM 的mask decoder,以解耦mask生成和提示嵌入,同时利用预先训练的权重
  • 提示相关的 IoU 模块(PRIM),包括一个交叉注意变压器层和一个 IoU 预测头,丢弃掩码预测头,从交叉注意变压器层提取掩码嵌入
  • 提示不变掩码模块(PIMM),CNN结果输出mask

2023.07.17_MedSAM

论文:Segment Anything in Medical Images

论文地址:2304.12306.pdf (arxiv.org)

MedSAM 的目标是创建一种用于细分各种医疗图像的通用工具。为了使 SAM 适应医学图像分割,需要选择适当的用户 Prompt 和网络组件进行微调。SAM 的网络架构包含三个主要组件:图像编码器、提示编码器和掩码解码器。

MedSAM 选择微调掩码解码器组件。图像编码器基于 VIT,它在 SAM 中具有最大的计算开销。为了最大限度地降低计算成本,冻结了图像编码器。提示编码器对边界框的位置信息进行编码,可以从 SAM 中预先训练的边界框编码器中重复使用,因此也会冻结该组件。其余需要微调的部分是掩码解码器。

此外,预先计算了所有训练图像的图像嵌入,以避免重复计算每个提示的图像嵌入,这显著提高了训练效率。掩码解码器只需要生成一个掩码而不是三个掩码,因为在大多数情况下,边界框提示符可以清楚地指定预期的分割目标。

 大规模医学图像分割数据集。使用基于边界框的提示。

2023.08_Polyp-SAM++

论文:Polyp-SAM++: Can A Text Guided SAM Perform Better for Polyp Segmentation?

论文地址:

 补充文本提示,使用grounded-DINO

2023.08.15_Self-Prompting Large Vision Models for Few-Shot Medical Image Segmentation

论文地址:2308.07624v1.pdf (arxiv.org)

利用简单的像素分类器自提示 SAM 模型,采取图像嵌入提供边界框和点 

2023.08.17_SurgicalSAM

论文:SurgicalSAM: Efficient Class Promptable Surgical Instrument Segmentation

论文地址:2308.08746.pdf (arxiv.org)

  • 提出了一个轻量级的基于原型的类提示编码器,直接生成提示嵌入类原型,并消除了显式提示的使用
  • 进一步提出了对比原型学习,利用对比损失来获得有区别的学习类原型

2023.08.31_SAM-Med2d

论文:SAM-Med2D

论文地址:2308.16184.pdf (arxiv.org)

论文代码:OpenGVLab/SAM-Med2D: Official implementation of SAM-Med2D (github.com)

对于 2D 数据集,仅检查像素值是否在 [0, 255] 范围内,并将所有处理后的图像以 PNG 格式保存以保持数据加载的一致性;

2023.09_SAMUS

论文:SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation

论文地址:2309.06824.pdf (arxiv.org)

论文代码:xianlin7/SAMUS (github.com)

  • 在 SAM 的基础上,引入了一个并行的 CNN 分支
  • 提出位置Adapter和特征Adapter,以适应 SAM 从自然到医学领域

2023.10.03_ Multi-Prompt Fine-Tuning of Foundation Models for Enhanced Medical Image Segmentation

论文:Multi-Prompt Fine-Tuning of Foundation Models for Enhanced Medical Image Segmentation

论文地址:2310.02381.pdf (arxiv.org)

 

2023.10.29v2_SAM-Med3d

论文:SAM-Med3D

论文地址:2310.15161.pdf (arxiv.org)

论文代码:uni-medical/SAM-Med3D: SAM-Med3D: An Efficient General-purpose Promptable Segmentation Model for 3D Volumetric Medical Image (github.com)

对于 3D 数据集,作者们将每个体积的强度值标准化到 [0, 255] 范围,并沿着 x、y、z 轴提取所有切片图像及其对应的掩码;

2023.11.13v2_MediViSTA-SAM

论文:MediViSTA-SAM: Zero-shot Medical Video Analysis with Spatio-temporal SAM Adaptation

论文地址:MediViSTA-SAM: Zero-shot Medical Video Analysis with Spatio-temporal SAM Adaptation (arxiv.org)

  • 介绍了第一项关于在视频分割上调整SAM的研究,称为MediViSTA-SAM,这是一种专为医学视频分割而设计的新方法。
  • 给定视频数据,MediViSTA 时空适配器通过跨帧注意力机制捕获长距离和短距离时间注意力,有效地约束了其将前一帧视频作为参考,同时也有效地考虑了空间信息。
  • 通过使用 U 形编码器和改进的掩码解码器来处理不同大小的物体,从而实现了多尺度融合。

3.评估方法

dice 和 iou 都是衡量两个集合之间相似性的度量

3.1.IOU

IoU(Intersection-over-Union)即是预测样本和实际样本的交并比,表达式如下:

 

# Iou
def Iou(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    union = temp - intersection         # 计算并集:A ∪ B = A + B - A ∩ B
    smooth = 1e-8                       # 防止分母为 0
    iou_score = intersection.sum() / (union.sum() + smooth)
    return iou_score
  •  intersection 为两个区域的交集,即两个区域的乘积
  • temp 为两个区域的和,(注:这里不是并集,因为没有减去相交的部分)
  • union 为两个区域的并集

MIoU

 Mean IoU是在所有类别的IoU上取平均值。

3.2.DICE

对于分割过程中的评价标准主要采用Dice相似系数(Dice Similariy Coefficient,DSC),Dice系数是一种集合相似度度量指标,通常用于计算两个样本的相似度,值的范围 0−1 ,分割结果最好时值为 1 ,最差时值为 0

# Dice
def Dice(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    smooth = 1e-8                       # 防止分母为 0
    dice_score = 2*intersection.sum() / (temp.sum() + smooth)
    return dice_score

相关论文

When SAM Meets Medical Images: An Investigation of Segment Anything Model (SAM) on Multi-phase Liver Tumor Segmentation 【paper】

Q&A

【Q&A1】ct和x-ray的区别是什么?

CT(Computed Tomography)扫描和X射线(X-ray)是医学影像学中常用的两种成像技术,它们有一些区别,主要涉及到成像原理和应用领域:

成像原理:

  • X射线: X射线是一种电磁辐射,通过人体组织时,不同组织对X射线的吸收程度不同,从而形成影像。X射线成像主要是通过检测射线通过组织的衰减程度来生成影像。
  • CT扫描: CT扫描则是利用X射线进行成像,但其采用了旋转式的探测器和计算机算法,能够获取多个方向上的断层图像,进而重建出三维的图像。

图像分辨率:

  • X射线: X射线成像一般为二维影像,提供了对骨骼和某些软组织的清晰图像。
  • CT扫描: CT扫描提供了更高的图像分辨率,并能够生成多层次、三维的图像,对于观察细微结构和检测病变更为有效。

应用领域:

  • X射线: X射线主要用于检查骨折、关节问题以及胸部、腹部等一些基本解剖结构的影像。
  • CT扫描: CT扫描在更广泛的情况下使用,可用于头部、胸部、腹部、骨盆等多个部位的成像,对于肿瘤、感染、血管疾病等的诊断具有高度准确性。

辐射剂量:

  • X射线: 一般来说,X射线的辐射剂量相对较低。
  • CT扫描: 由于CT扫描需要多个X射线投影,因此相对于普通X射线,CT扫描的辐射剂量较高,需要在医学必要性和辐射风险之间进行权衡。

总体而言,X射线成像在一些基础的骨骼检查中仍然是常用的,而CT扫描则提供了更为细致和全面的图像,适用于更广泛的医学应用。在实际应用中,医生会根据具体情况选择合适的成像技术。

参考文献

【1】YichiZhang98/SAM4MIS: Segment Anything Model for Medical Image Segmentation: paper list and open-source project summary (github.com)

【2】23年9月始阅读过的SAM相关文章总结[2024/2/2] - 知乎 (zhihu.com) 

【3】【理论+实践】史上最全-论文中常用的图像分割评价指标-附完整代码 - 知乎 (zhihu.com) 

【4】分割常用评价指标Dice、Hausdorff_95、IOU、PPV等(打马) - 知乎 (zhihu.com) 

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

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

相关文章

Win32 SDK Gui编程系列之--弹出式菜单

1.弹出式菜单 例如,在命令提示窗口中点击鼠标右键,会出现如下图所示的弹出菜单(下拉菜单)。 这种弹出式菜单的实现很简单。不创建菜单栏,用CreatePopupMenu函数创建的菜单是最顶端的菜单就可以了。 菜单的显示使用TrackPopupMenu函数进行。 例如,点击鼠标右键显示弹出…

尚硅谷 Java 基础实战—Bank 项目—实验题目 3

实验题目 修改 withdraw 方法以返回一个布尔值,指示交易是否成功。 实验目的 使用有返回值的方法。 提示 修改 Account 类 修改 deposit 方法返回 true(意味所有存款是成功的)。修改 withdraw 方法来检查提款数目是否大于余额。如果amt小…

十七、vben合并行后操作按钮如何合并

上期我们说了如何在table内部合并行,行内的内容都是字符串,那么如果是多个操作按钮呢,他们是如何合并的,事件是怎么触发的,怎么写呢。 先看效果图 数据上也是和上期一样有9条信息。 下面来看一下我们的具体实现 一、在template里面写table <BasicTable:showIndexCol…

【网络技术】【Kali Linux】Nmap 嗅探(一)简单扫描

一、实验环境 本次实验进行简单的Nmap扫描&#xff0c;实验使用 Kali Linux 虚拟机和 Ubuntu Linux 虚拟机完成&#xff0c;主机操作系统为 Windows 11&#xff0c;虚拟化平台选择 Oracle VM VirtualBox&#xff0c;如下图所示。 二、实验步骤 1、相关配置 Kali Linux 虚拟机…

【python】python实现代码雨【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 系列文章 1新年烟花代码https://blog.csdn.net/m0_73367097/article/details/1354817792爱心代码https://blog.csdn.net/m0_73367097/article/details/136017032 一、效果图&#xff1a; 二、准备工作 &#xff08;1…

第二证券:股市的国家队是谁?股市国家队包括哪些机构?

在a股商场上&#xff0c;投资者大致能够分为散户、游资、主力、组织、国家队这几大类&#xff0c;那么&#xff0c;股市的国家队是谁&#xff1f;股市国家队包含哪些组织&#xff1f; 国家队主要是指以下五大类&#xff1a; 1、中心汇金 中心汇金的全称为中心汇金投资有限责…

【STM32F103】PWM驱动舵机(SG90MG995)

PWM 关于如何发出PWM可以参考我之前的文章。 【STM32F103】TIM定时器&PWM-CSDN博客 SG90&MG995 以这两款舵机为例是因为我手上碰巧只有这两款舵机。不过实际上舵机的操作基本上差不了多少&#xff0c;基本上都是给频率为50Hz的PWM&#xff0c;然后就可以让舵机旋转…

详解C++类和对象(中(类的6个默认成员函数))

文章目录 写在前面1. 类的6个默认成员函数2. 构造函数2.1 构造函数的引入2.1 构造函数的特性 3. 析构函数3.1 析构函数的引入3.2 析构函数的特性 4. 拷贝构造函数4.1 拷贝构造函数概念4.2 拷贝构造函数的特性4.3 拷贝构造函数典型调用场景 5. 赋值运算符重载5.1 运算符重载5.2 …

Javaweb之SpringBootWeb案例之登录校验功能的详细解析

2. 登录校验 2.1 问题分析 我们已经完成了基础登录功能的开发与测试&#xff0c;在我们登录成功后就可以进入到后台管理系统中进行数据的操作。 但是当我们在浏览器中新的页面上输入地址&#xff1a;http://localhost:9528/#/system/dept&#xff0c;发现没有登录仍然可以进…

寻迹模块——红外循迹模式使用介绍

目录 循迹模式——红外循迹模式使用介绍 红外循迹模块介绍 接线 循迹小车原理 安装与接线 实验程序 实验效果 循迹模式——红外循迹模式使用介绍 实验效果&#xff1a; 寻迹模块-CSDN直播 红外循迹模块介绍 传感器的红外发射二极管不断发射红外线&#xff0c;当发射出…

RabbitMQ-5.消费者的可靠性

消费者的可靠性 5.消费者的可靠性5.1.消费者确认机制5.2.失败重试机制5.3.失败处理策略5.4.业务幂等性5.4.1.唯一消息ID5.4.2.业务判断 5.5.兜底方案 5.消费者的可靠性 当RabbitMQ向消费者投递消息以后&#xff0c;需要知道消费者的处理状态如何。因为消息投递给消费者并不代表…

jvm几个常见面试题整理

1. Full GC触发机制有如下5种情况。 (1)调用System.gc()时&#xff0c;系统建议执行Full GC&#xff0c;但是不必然执行。(2)老年代空间不足。(3)方法区空间不足。(4)老年代的最大可用连续空间小于历次晋升到老年代对象的平均大小就会进行Full GC。(5)由Eden区、S0(From)区向S…

前端vite+vue3——自动化配置路由布局

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐ 自动化配置路由&#x1f496;引入vite版本自定义目录映射&#x1f496;自动化读取文件下的路由&#x1f496;main入口加载路由&#x1f496;入口app.vue配置&#x1f496;layout基础布局配置&#x1f496;效果 ⭐总结⭐结束 ⭐前言…

python实现中国剩余定理

中国剩余定理又称孙子定理&#xff0c;是数论中一个重要定理。最早可见于我国的数学著作《孙子算经》卷下“物不知数”问题&#xff0c;原文如下&#xff1a; 有物不知其数&#xff0c;三三数之剩二&#xff0c;五五数之剩三&#xff0c;七七数之剩二。问物几何&#xff1f;即…

车载网络测试 - 总线基础 - CAN总线负载计算

我想做过CAN总线测试的都有遇到过拉高总线负载相关的测试&#xff0c;这个时候我们一般都会通过增加报文的数量或者减小报文的周期来实现&#xff0c;但是CAN总线上的负载到底是如何计算的呢&#xff1f;我想很多人都会有这个疑问吧&#xff0c;那么今天我们一起来看下如何计算…

CX341A 安装驱动与刷固件

参考 驱动安装1 DPDK编译&#xff1a;支持Mellanox 25Gbps网卡 - 知乎 NVIDIA Mellanox CX网卡固件、驱动系列操作 - 知乎 驱动安装2 Mellanox网卡驱动安装指南 Mellanox OFED_崇尚匀速 追求极致的技术博客_51CTO博客 驱动与固件&#xff1a; 家用万兆网络指南 6 - 比…

当前的脑机交互更像是自动化交互,而不是智能化交互

脑机交互是指通过直接连接人类大脑与外部设备&#xff0c;实现人与计算机、机器或其他设备之间的交互。目前的脑机交互技术还存在许多挑战和限制&#xff0c;因此可以说脑机交互还远远不成熟。当前的脑机交互更像是自动化交互&#xff0c;而不是智能化交互。 目前的脑机交互技术…

ArcGIS学习(六)地理数据库

ArcGIS学习(六)地理数据库 上个任务我们讲了一个非常重要的知识点一一坐标系。这个任务我们带来另外一个很重要的知识点一一地理数据库。 地理数据库的内容相比于坐标系简单很多! 首先,先让我们来学习下地理数据库的理论。 ArcGIS 中的地理数据库(Geodatabase)是一个用…

Verilog刷题笔记22

题目&#xff1a; Build a priority encoder for 8-bit inputs. Given an 8-bit vector, the output should report the first (least significant) bit in the vector that is 1. Report zero if the input vector has no bits that are high. For example, the input 8’b100…

2019年江苏省职教高考计算机技能考试——一道程序改错题的分析

题目&#xff1a;函数将str字符串中的5个数字字符串转换为整数&#xff0c;并保存在二维数组m的最后一行&#xff0c;各元素为3、-4、16、18、6。并经函数move处理后&#xff0c;运行结果如下&#xff1a; 18 6 3 -4 16 16 18 6 3 -4 -4 16 …