SAM在医学图像分割的一些研究(Segment Anything Model for Medical Images?(2023))

使用预训练模型通过两种主要模式进行分割,包括自动一切和手动提示(例如,点和框)。SAM在各种自然图像分割任务上取得了令人印象深刻的效果。然而,由于医学图像的形态复杂、解剖结构精细、物体边界不确定和复杂、物体尺度大,使得医学图像分割(MIS)更具挑战性。同时,零射击、高效的MIS可以很好地减少标注时间,促进医学图像分析的发展。因此,SAM似乎是一种潜在的工具,其在大型医疗数据集上的性能有待进一步验证。我们收集并整理了52个开源数据集,构建了包含16种模态、68个对象、553K切片的大型医学分割数据集。我们在所谓的COSMOS 553K数据集上对不同的SAM测试策略进行了全面分析。大量的实验证实,SAM在医学图像中对物体感知的点和框等手动提示上表现更好,提示模式下的性能优于一切模式。此外,SAM在某些特定的对象和模态上表现出色,但在其他情况下则不完善甚至完全失败。最后,我们分析了不同因素(如基于傅里叶的边界复杂度和分割对象的大小)对SAM分割性能的影响。大量的实验证明,SAM的零距分割能力不足以保证其直接应用于MIS。

提示方法:

自动提示

点和框提示: 即1个正点、5个正点、5个正点加5个负点、1个方框、1个方框加1个正点。进一步建立了统一的选点规则,保证了选点的随机性、重复性和准确性。对于正点选择,a)我们首先计算出ground truth (GT)掩模的质心(图5中红色点)。b)如果质心在GT掩模内,我们将质心作为第一个正点。c)然后,我们直接将GT蒙版平铺成一维矢量,采用均匀采样的方法获得其他正点(图5中的绿色点)。d)如果质心在GT蒙版之外,则通过步骤c获得所有需要的正点。对于负点的选择,我们的目的是避免选择离目标区域太远的点。具体来说,我们首先将GT的边界框扩大了两倍。负点在nonGT区域均匀采样生成(图5中的黄色点)。最后,对于框的选择,我们直接采用GT蒙版的包围框,不做任何额外的操作。

在我们的研究中,我们使用不同的策略对一张图像进行了多次测试(n),以获得最终的评估(见图5)。在SAM的原始代码逻辑和设计中,同一张图像需要进行n次相同的编码操作,这导致我们的多策略测试场景的运行效率很低。当使用高分辨率输入时,情况变得更糟。在此基础上,我们提前计算所有输入图像的嵌入特征,并将其保存为中间文件。因此,图像嵌入可以重复使用,以减轻推理管道的计算负担。因此,SAM测试的整体效率可以提高近n倍。此外,SAM的测试策略越多,节省的时间就越多。这可以简单地扩展到SAM的其他多策略测试场景。E.分割评估的掩码匹配机制SAM为每个输入图像生成多个二值掩码,但并不是所有的都包含相应的对象。因此,我们提出了一种掩码匹配机制来评估在每种模式下使用SAM的分割性能。具体来说,对于给定图像中的目标(前景之一),我们在N个二元预测掩码{Pn} N N =1与GT g之间计算一组骰子分数{DICEn} N N =1,然后选择其中骰子得分最高的一个作为匹配的预测掩码P进行后续分割评估。得到P的过程可以表示为:P = max{(P1·G),(P2·G),…,(PN·G)},(1),其中N为一幅图像中一个对象的预测二值掩码总数。操作(·)和max{}表示计算一个预测掩码与GT之间的骰子得分,而max表示获得骰子得分最高的预测掩码。A.实现细节代码实现及逻辑。在本研究中,我们基本按照官方GitHub存储库4实现了SAM的测试管道。对于我们的多策略测试场景,我们运行了n次SAM算法,提取了n次图像嵌入。结果表明,图像嵌入提取过程耗时较长。然而,由于相同的嵌入可以用于不同的测试策略,我们寻求优化和加速这种多提取过程。因此,我们重构了部分代码。对于每个测试图像,我们只使用图像编码器进行特征提取一次,并将嵌入的特征保存为npy文件。当应用不同的测试策略时,只需要加载相应的npy文件,这大大提高了测试效率(大约为nx)。此外,对于提示测试,我们在图像嵌入后计算一次所需的点和框,并将其存储为npz文件。因此,所有提示测试策略都可以直接使用npz信息,而无需重新计算。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第一阶段】kotlin的when表达式

1.Java 的if /when是语句 kotlin的if/when是表达式,表达式是有返回值的 java中void是个关键字,Unit在kotlin中是个类 2.当使用when语句的时候必须有一个不满足的值即else: fun main() {var week:Int5val info when(week){1->"今天是星期一"…

【iOS】—— UIKit相关问题

文章目录 UIKit常用的UIKit组件懒加载的优势 CALayer和UIView区别关系 UITableViewUITableView遵循的两个delegate以及必须实现的方法上述四个必须实现方法执行顺序其他方法的执行顺序: UICollectionView和UITableView的区别UICollectionViewFlowLayout和UICollecti…

em3288 linux_4.19 第一次烧写无法进入内核的情况

1. 情况一: /DDR Version 1.11 20210818 In SRX Channel a: DDR3 400MHz Bus Width32 Col10 Bank8 Row15 CS1 Die Bus-Width16 Size1024MB Channel b: DDR3 400MHz Bus Width32 Col10 Bank8 Row15 CS1 Die Bus-Width16 Size1024MB OUT Boot1 Release Time: Jul 22 2…

Jenkins插件管理切换国内源地址

一、替换国内插件下载地址 选择系统管理–>插件管理–> Available Plugins 并等待页面完全加载完成、这样做是为了把jenkins官方的插件列表下载到本地、接着修改地址文件、替换为国内插件地址 进入插件文件目录 cd /var/lib/jenkins/updatesdefault.json 为插件源地址…

STM32 LWIP UDP 一对一 一对多发送

STM32 LWIP UDP通信 前言设置 IP 地址UDP函数配置实验结果单播发送,一对一发送广播发送,一对多发送 可能遇到的问题总结 前言 之前没有接触过网络的通信,工作需要 UDP 接收和发送通信,在网上没有找到一对一、一对多的相关例程&am…

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式:做格式校验包装类:在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中,掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开,帮助读者更好地面对面试挑…

IIC子系统-实现si7006温湿度传感器采集温湿度功能

1.将IIC核心层和总线驱动层配置进内核 *********************配置核心层*************************1.找到核心层代码目录:内核顶层目录/drivers/i2c2. 内核顶层目录执行make menuconfig3. > Device Drivers > I2C support ->-*-I2C support4.保存退出***…

数据预处理matlab

matlab数据的获取、预处理、统计、可视化、降维 数据的预处理 - MATLAB & Simulink - MathWorks 中国https://ww2.mathworks.cn/help/matlab/preprocessing-data.html 一、数据的获取 1.1 从Excel中获取 使用readtable() 例1: 使用spreadsheetImportOption…

端口映射教程vs快解析内网穿透

随着社会信息化的发展,很多人都开始关注网络问题,掌握一些基础的网络知识是非常有必要的。其中,端口映射作为一项重要的技术,在网络通信中起到了至关重要的作用。 端口映射在现实生活中有着广泛的应用。如果你是一位游戏爱好者&a…

极狐GitLab 全新「价值流仪表盘」使用指南

本文来源:about.gitlab.com 作者:Haim Snir 译者:极狐(GitLab) 市场部内容团队 GitLab / 极狐GitLab 价值流仪表盘的使用相对简单,这种可以定制化的仪表盘能够让决策者识别数字化转型进程中的趋势及机遇。 如果你已经在用 GitLab…

NGZORRO:动态表单/模型驱动 的相关问题

官网的demo的[nzFor]"control.controlInstance"&#xff0c;似乎是靠[formControlName]"control.controlInstance"来关联的。 <form nz-form [formGroup]"validateForm" (ngSubmit)"submitForm()"><nz-form-item *ngFor&quo…

day50-Insect Catch Game(捉虫游戏)

50 天学习 50 个项目 - HTMLCSS and JavaScript day50-Insect Catch Game&#xff08;捉虫游戏&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport"…

【MySQL】数据库基本使用

文章目录 一、数据库介绍二、数据库使用2.1 登录MySQL2.2 基本使用2.2.1 显示当前 MySQL 实例中所有的数据库列表2.2.2 创建数据库2.2.3 创建数据库表2.2.4 在表中插入数据2.2.5 在表中查询数据 三、服务器、数据库、表之间的关系四、SQL语句分类五、存储引擎 一、数据库介绍 …

图卷积网络(GCN)和池化

一、说明 GCN&#xff08;Graph Convolutional Network&#xff09;是一种用于图形数据处理和机器学习的神经网络架构。GCN 可以在图形中捕获节点之间的关系&#xff0c;从而能够更好地处理图形数据。GCN 可以沿着图形上的边缘执行滤波器操作&#xff0c;将每个节点的特征向量进…

中国艺术孙溟㠭篆刻作品《活着》

人人为生活挣扎着&#xff0c;做着不想做的事&#xff0c;说着不想说的话&#xff0c;为生活低头弯腰委屈求全人生苦多甜少&#xff0c;何时了&#xff01;何时了&#xff01;甜来人生到头了…… 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 文/九钵

python3GUI--我的翻译器By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;展示1.主界面2.段落翻译3.单词翻译 三&#xff0e;设计1.UI设计2.软件设计3.参考 四&#xff0e;总结 一&#xff0e;前言 很早之前写过一篇python3GUI–翻译器By:PyQt5&#xff08;附源码&#xff09; &#xff0c;但是发现相关引擎…

设计模式之单例模式

单例模式 定义&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点 引子&#xff1a;读取配置文件 很多地方要用到&#xff0c;如果每次都new 一个对象的话&#xff0c;会浪费内存资源。 改装成饿汉式&#xff08;饿汉式有线程并发问题&#xff0c…

【计算机网络】11、网桥(bridge)、集线器(hub)、交换机(switch)、路由器(router)、网关(gateway)

文章目录 一、网桥&#xff08;bridge)二、集线器&#xff08;hub&#xff09;三、交换机&#xff08;switch)四、路由器&#xff08;router&#xff09;五、网关&#xff08;gateway&#xff09; 对于hub&#xff0c;一个包过来后&#xff0c;直接将包转发到其他口。 对于桥&…

【Linux命令200例】cp用于复制文件和目录(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜…

SpringBoot项目增加logback日志文件

一、简介 在开发和调试过程中&#xff0c;日志是一项非常重要的工具。它不仅可以帮助我们快速定位和解决问题&#xff0c;还可以记录和监控系统的运行状态。Spring Boot默认提供了一套简单易用且功能强大的日志框架logback&#xff0c;本文将介绍如何在Spring Boot项目中配置和…