SegVol: Universal and Interactive Volumetric Medical Image Segmentation

Abstract

精确的图像分割为临床研究提供了有意义且结构良好的信息。尽管在医学图像分割方面取得了显著的进展,但仍然缺乏一种能够分割广泛解剖类别且易于用户交互的基础分割模型。

本文提出了一种通用的交互式体医学图像分割模型——SegVol。通过对90k个未标记的CT卷和6k个标记的CT卷进行训练,该基础模型支持使用语义和空间提示对200多个解剖类别进行分割。大量的实验证明,SegVol在多个细分基准测试中表现出色。

在三个具有挑战性的病变数据集上,该方法比nnU-Net的Dice得分高20%左右。

SegVol的模型和数据看这里

Introduction

体积图像分割通过准确提取器官、病变和组织等感兴趣的区域,在医学图像分析中起着至关重要的作用,在肿瘤监测[1]、手术计划[2]、疾病诊断[3]、治疗优化[4]等方面有着广泛的临床应用。

SegVol的主要特性总结如下:

1.在96k ct上对模型进行预训练,并利用伪标签来解耦数据集和分割类别之间的虚假相关性。

2. 通过将语言模型集成到分割模型中,并在25个数据集的200多个解剖类别上进行训练,从而实现文本提示分割。

3. 采用协同策略协调语义提示和空间提示,实现高精度分割。

4. 设计一种放大放大机制,显著降低计算成本,同时保持精确分割。

SegVol通用分割能力,Dice平均得分为83.02%。

图1所提出的SegVol模型架构概述a. SegVol的主要结构包括图像编码器、文本编码器、提示编码器和掩码解码器。除了文本编码器,所有的网络都是可学习的。图像编码器提取体积输入的图像嵌入。将图像嵌入与提示嵌入一起馈送到解码器中以预测分割掩码。b.输入图像变换及提示符生成说明。c.放大放大训练:SegVol在全局和局部视图的数据上进行训练。d. Zoom-outzoom-in推理:SegVol首先进行全局推理,然后对提取的ROI进行局部推理,以细化结果。

作为一个通用模型,该方法通过“文本”提示为200多个重要器官、组织和病变提供准确的分割结果。作为一种精确的分割模型,它还引入了“点”和“盒”空间提示来指导解剖结构的分割,从而获得高精度的分割响应。为了建立SegVol,从25个开源医疗数据集中收集了6k个带有150k个分割掩码注释的CT。此外,从网络上抓取了90k个未标记的CT数据,并获得了511k个由FH算法生成的伪体积掩码。

Result

如图2 a所示,收集到的关节数据集包括四个主要的人体区域:头颈部、胸腔、腹部和骨盆,包括47个重要区域的200多种器官、组织和病变类型。共有5772个ct参与了联合数据集的训练和测试,总共有149199个带语义的体积掩码标签。来自四个主要人体区域的联合数据集的样本以二维切片的形式显示在图2 c中。为了增强SegVol的空间分割能力,使用FH算法生成510k的伪体积掩码标签来填充这些实例的未注释区域。

数据集可视化

联合数据集的概述和示例。a、联合数据集概述。联合数据集包括47个重要区域,每个区域在该空间区域内包含一个或多个重要的解剖结构。b、联合数据集的主要类别:其掩码标签数量排名前30,在联合数据集内人体四个主要部位的掩码标签数量占比。c,从联合数据集中采样的15个不同类别的器官、组织和病变示例,以切片视图呈现。

SegVol显著优于传统模型的主要有三个因素:

1)固定类集的有限情况限制了传统模型的性能。相反,SegVol具有更广泛的学习范围,因为它结合了25个数据集进行训练。这使得它不仅可以从不同数据集的相同类别中收集知识,还可以从自然语言嵌入空间内固有相关的类别中收集知识。例如,SegVol可以从“左肾”和“肾”类别中学习,因为它们的自然语言相关性。这种从更广泛、更多样化的数据中学习的能力比传统模型更有优势,使其能够理解传统模型可能错过的分割目标的内在相关性。

2)传统模型仅仅依靠整数代码来发现语义信息,而SegVol采用了更全面的快速学习方法。它不仅利用语义提示来理解目标,还利用空间提示来获得对目标的进一步空间认知。这种交互式分割模式使SegVol能够取得明显更好的结果,特别是在硬案例的精确分割中。

3)对大规模未标记数据的预训练使SegVol能够学习更广义的特征表示。该过程显著增强了其对下游任务的适应性和鲁棒性。

Method

医学图像分割数据集D = {(xi, yi)}由一个三维图像基准xi∈RC×D×H×W和K个掩码标签yi∈{0,1}K×D×H×W组成,对应K个目标类别。经典分割模型[5-10]F(∗,θ)基于体积输入xi学习预测属于K个类别的掩码yi,即oi = F(xi, θ),其中oi∈RK×D×H×W。因此,传统的模型不能推广到看不见的类别。

受二维自然图像分割的最新进展,分割任何(SAM)[43]的启发,我们设计了一种新的交互式和通用的体医学图像分割方法,称为SegVol。我们在图1a中说明了该模型。

SegVol支持三种类型的交互式分割提示:“box”提示,b∈R6表示两个对角线顶点的坐标;' point '提示符,包含一组(P)个点P∈RP ×3;和“文本”提示符,如“肝脏”或“颈椎C2”,它被标记为张量t。SegVol由四个模块组成,即图像编码器FIE(∗,θIE),文本编码器FTE(∗,θTE),提示编码器FPE(∗,θPE)和掩码解码器FMD(∗,θMD)。我们将在下面介绍每个模块。

图像编码器。我们使用ViT (Vision Transformer)[44]作为图像编码器,当在大规模数据集上进行预训练时,它比卷积模型[45]具有显著的优势。我们首先在全部收集到的96k ct上使用MAE算法[46]对ViT进行预训练,然后用150k标记分割掩码对6k ct进行进一步的监督训练。图像编码器记为FIE(∗,θIE),以体积图像x∈RC×D×H×W作为输入。首先,将x分割为一组补丁,记为xpatch∈rnx (C×PD×PH×PW),其中N = D×H×W PD×PH×PW。PD、PH、PW为patch的大小。然后将这些补丁输入到网络中,该网络输出一个嵌入zimage = FIE(xpatch, θIE), zimage∈RN×F。F表示特征维度,本文默认设置为768。

文本提示编码器。传统分割模型的一个主要限制是模型学习的数据集特定的标签编码为整数,不能推广到新的数据集或任务,限制了它在现实世界中的应用。我们通过利用文本提示实现跨数据集的通用分割。我们使用CLIP模型[47]中的文本编码器对输入文本提示进行编码,因为CLIP[47]已经被训练成在网络规模的图像-文本对上对齐图像和文本。我们将文本提示编码器表示为FTE(∗,θTE)。给定一个单词或短语作为提示符,我们使用模板s = '[文本提示符]的计算机断层扫描'[48]来完成它。

然后将s标记为t。文本编码器接受t作为输入并输出文本嵌入ztext = FTE(t, θTE),其中ztext∈RF。由于CT数据集中的文本数据量很少,我们在训练过程中冻结了现成的文本编码器

空间提示编码器。根据SAM[43],我们对点提示符p和框提示符b使用位置编码[49],得到点嵌入zpoint∈RF和框嵌入zbox∈RF。我们将三种提示符的嵌入连接为zprompt = FPE(p, b, s, θPE) = [zpoint, zbox, ztext]。

掩码译码器。在获得图像嵌入zimage、提示嵌入zprompt和文本嵌入ztext后,我们将它们输入到掩码解码器中,并预测掩码p = FMD(zimage, zprompt, ztext, θMD)。我们在两个方向上使用自注意和交叉注意[50]来混合图像嵌入和提示嵌入,然后使用转置卷积和插值操作来生成掩码。由于文本嵌入是通用分割的关键,并且文本和体积区域之间的相关性也很难学习,因此我们通过在联合提示符嵌入zprompt旁边引入并行文本输入ztext来增强文本信息。我们进一步计算了转置卷积输出的放大嵌入与掩码解码器中的文本嵌入之间的相似矩阵。在插值之前,将相似矩阵与掩码预测进行逐元相乘,然后模型输出掩码。

Training procedure

提示的一代。SegVol可以接受多种提示类型,包括单个点提示,框提示和文本提示,以及它们的组合。为了充分利用分割训练数据,我们为每个数据生成各种提示。然后,利用提示对和掩码对计算训练损失。SegVol支持“点”提示,“框”提示和“文本”提示。

损失函数。我们将二元交叉熵(BCE)损失和Dice损失结合起来作为损失函数L(θ;D)训练参数为θ的模型,其中θ = [θ ie, θ pe, θ md], D为训练数据集。损失函数为:

Zoom-out-zoom-in机制。

        多视点的训练。为了适应不同大小的体积数据并实现放大-放大推理,我们构造了两类训练数据。一种是调整大尺寸CT的尺寸以适应模型的输入尺寸,获得放大视图的训练数据。另一种方法是根据模型的输入尺寸将原始大尺寸CT裁剪成立方体。这样,我们就得到了放大视图的训练数据。该过程如图1c所示。

        Zoom-out-zoom-in推理。图1d说明了我们的放大放大推理。我们首先缩小并实现全局推理。给定一个大体积的图像,它被调整大小,然后输入到SegVol模型中。在根据用户提示获得全局预测分割掩码后,定位感兴趣区域(ROI)并进行放大,即从原始尺寸的图像中裁剪该区域。我们在裁剪区域上应用滑动窗口,实现更精确的局部推理。我们针对局部推理调整了输入提示,因为当放大时,用户输入的原始点框提示可能不适用于局部推理区域。具体来说,我们忽略局部区域外的正点或负点。与第4.3节中的训练框提示生成类似,我们将局部区域的全局预测掩码作为伪掩码来生成局部框提示。最后用局部分割掩码填充全局分割掩码的ROI区域。放大放大机构同时实现了高效和精确的推理。

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

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

相关文章

kibana查看和展示es数据

本文来说下使用kibana查看和展示es数据 文章目录 数据准备查询所有文档示例kibana查看和展示es数据 数据准备 可以使用es的命令或者java程序来往,es进行新增数据 查询所有文档示例 在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:92…

rust跟我学二:模块编写与使用

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info中模块的使用。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Rust库更新]g…

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型 0. 背景1. 安装依赖2. 开发 main.py3. 运行 main.py 0. 背景 看了一些文章之后,今天尝试在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型。 1. 安装依赖 pip install torch torchvision …

Spring框架的背景学习

Spring 的前世今生 相信经历过不使用框架开发 Web 项目的 70 后、80 后都会有如此感触,如今的程序员开发项目太轻松了,基本只需要关心业务如何实现,通用技术问题只需要集成框架便可。早在 2007 年,一个基于 Java语言的开源框架正…

Opencv基础用法学习2

案例1&#xff1a;调整图片颜色 在opencv中的读图方式是BGR,常见的读图方式是RGB // opencv 调整颜色 #include "opencv2/opencv.hpp" #include <iostream>int main() {// 读取图片cv::Mat src cv::imread("./media/dog.jpg");// BGR -> Grayc…

计算机网络 网络安全

网络安全 网络安全问题概述 计算机网络面临的女全性威胁 计算机网络的通信而临两大类威胁&#xff0c;即被动攻击和主动攻击 被动攻击是指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获。在被动攻击中&#xff0c;攻击者只是观察和分析某一个协议数据单元 PDU…

Docker-Dockerfile

DockerFile(用于构建镜像的文本) 常用的保留字 FROM #基础镜像,基于那个镜像 MAINTAINER #镜像的维护者 #构建容器需要执行的命令(RUN)支持两种格式 shell格式&#xff1a;RUN yum -y install vim #exec格式:RUN["./test.sh", "dev", "offile&qu…

4、Redis高并发分布式锁实战

引言 在分布式系统中&#xff0c;保证数据的一致性和避免竞争条件是至关重要的。分布式锁是一种常用的机制&#xff0c;而Redis作为一款高性能的内存数据库&#xff0c;提供了简单而强大的分布式锁方案。本文将深入探讨如何利用Redis高并发分布式锁来解决分布式系统中的并发控…

Armv8-R AArch32 architecture概念学习

提示 该博客主要为个人学习&#xff0c;通过阅读官网手册整理而来&#xff08;个人觉得阅读官网的英文文档非常有助于理解各个IP特性&#xff09;。若有不对之处请参考参考文档&#xff0c;以官网文档为准。阅读该文章&#xff0c;可以先查看AArch64 Exception Model学习&…

idea 安装免费Ai工具 codeium

目录 概述 ide安装 使用 chat问答 自动写代码 除此外小功能 概述 这已经是我目前用的最好免费的Ai工具了&#xff0c;当然你要是有钱最好还是用点花钱的&#xff0c;比如copilot&#xff0c;他可以在idea全家桶包括vs&#xff0c;还有c/c的vs上运行&#xff0c;还贼强&am…

C语言如何引⽤⼀个已经定义过的外部变量?

一、问题 如何引⽤⼀个已经定义过的外部变量&#xff1f; 二、解答 如果在⼀个⽂件中定义了⼀个外部变量 a&#xff0c;在另⼀个程序⽂件中再定义⼀个外部变量 a&#xff0c;就会产⽣⼀个“重复定义”的错误&#xff0c;那么怎样引⽤⼰经定义的外部变量呢&#xff1f; 引⽤被…

CentOS下用rpm安装软件时报错error: Failed dependencies

在CentOS下用rpm安装软件时会报如下错误&#xff1a; 1、安装时提示&#xff1a; [rootdb software]# rpm -ivh ksh-20120801-254.el8.x86_64.rpm warning: ksh-20120801-254.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY error: Failed depende…

力扣白嫖日记(sql)

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 586.订单最多的客户 表&#xff1a;Orders 列名类型order_numberintcustomer_numberint 查找下了最多订单的…

机器人持续学习基准LIBERO系列7——计算并可视化点云

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

用Perl采集美容化妆目标网站做一个深度调研

在Perl中编写爬虫程序涉及到几个关键步骤&#xff0c;包括使用相关的库来发送HTTP请求和解析HTML内容。首先我们要了解Perl爬虫程序编程得几大步骤&#xff1a;安装必要的Perl模块—创建一个用户代理—发送HTTP请求—解析响应内容—提取所需数据—存储或进一步处理数据。所以说…

【ChatGPT VS baidu】:提升程序员开发效率的智能助手

在现代软件开发中&#xff0c;ChatGPT&#xff08;Chat Generative Pre-trained Transformer&#xff09;作为一种基于人工智能的对话模型&#xff0c;为程序员带来了许多便利和效率提升。ChatGPT 结合了先进的自然语言处理和生成技术&#xff0c;能够理解和生成人类语言&#…

springcloud Alibaba中gateway和sentinel联合使用

看到这个文章相信你有一定的sentinel和gateway基础了吧。 官网的gateway和sentinel联合使用有些过时了&#xff0c;于是有了这个哈哈&#xff0c;给你看看官网的&#xff1a; 才sentinel1.6&#xff0c;现在都几了啊&#xff0c;所以有些过时。 下面开始讲解&#xff1a; 首先…

虚拟服务器的监控和管理

IT 网络中虚拟环境的出现给 IT 管理员带来了一些挑战&#xff0c;虚拟环境降低了管理硬件和软件的成本和复杂性&#xff0c;同时&#xff0c;他们通常需要 IT 管理员管理更多的空间&#xff0c;以确保完全可见和快速解决问题。 虚拟服务器在现代 IT 基础架构中越来越普遍&…

LabVIEW模拟荧光显微管滑动实验

LabVIEW模拟荧光显微管滑动实验 在现代生物医学研究中&#xff0c;对微观生物过程的精准模拟和观察至关重要。本案例展示了如何利用LabVIEW软件和专业硬件平台&#xff0c;创新地模拟荧光显微管在滑动实验中的动态行为&#xff0c;这一过程不仅提升了实验效率&#xff0c;还为…

基于冯·诺依曼架构能否实现有主动思想的AI

冯诺依曼架构是一种计算机体系结构&#xff0c;由冯诺依曼在20世纪40年代设计并提出。它是现代计算机设计的基础&#xff0c;并广泛应用于当前的计算机系统。冯诺依曼架构的核心思想是将程序和数据存储在同一个存储器中&#xff0c;并通过控制单元、算术逻辑单元、存储器和输入…