CLIP-Driven Universal Model for Organ Segmentation and Tumor Detection论文解读和实验复现

背景

  1. 医学图像数据集的增长:随着公开的医学图像数据集数量的增加,自动化器官分割和肿瘤检测技术得到了显著发展。
  2. 数据集的局限性:尽管数据集数量增加,但每个数据集通常规模较小,且存在部分标注问题。这意味着不是所有的图像都有完整的标注信息,这对于训练全面的AI模型构成了挑战。
  3. 肿瘤类型的多样性:现有模型通常只能处理特定类型的器官或肿瘤,缺乏对不同类型肿瘤的广泛研究。
  4. 模型的泛化能力:现有模型往往只能处理特定数据集中的特定任务,缺乏跨数据集、跨领域的泛化能力。

要解决的问题

  1. 标签不一致性:不同数据集之间存在标签索引、名称和背景不一致的问题,这使得将它们合并用于训练变得复杂。
  2. 标签正交性:传统的one-hot标签编码方式忽略了类别之间的语义关系,这对于需要理解器官和肿瘤之间复杂关系的医学图像分割任务来说是不足的。
  3. 模型的扩展性:需要一个能够适应不同网络结构、不同医院的CT扫描数据,并能够迁移到新任务的通用模型。
  4. 计算效率:现有模型在处理速度上可能不够快,影响了它们在临床实践中的应用。
  5. 性能提升:需要提高模型在器官分割和肿瘤检测任务上的性能,减少假阳性,提高检测的敏感性和特异性。

详解框架

CLIP-Driven Universal Model的框架结合了文本和图像信息,以提高医学图像分割和肿瘤检测的准确性和泛化能力。
在这里插入图片描述

1. 框架组成

文本分支(Text Branch)

  • 预训练文本编码器:使用CLIP模型的预训练文本编码器来处理与医学图像相关的文本描述(如器官或肿瘤的名称),生成文本嵌入。
  • 医学提示(Medical Prompts):将文本描述格式化为特定的提示模板,例如“一个[类别]的计算机断层扫描图像”,其中[类别]是具体的器官或肿瘤名称。
  • 文本嵌入生成:通过预训练的文本编码器和医学提示,为每个器官和肿瘤生成文本嵌入,这些嵌入捕获了文本描述的语义信息。

视觉分支(Vision Branch)

  • 图像预处理:对CT扫描图像进行标准化处理,包括调整方向、体素大小标准化以及强度归一化。
  • 视觉编码器:使用如Swin UNETR这样的网络结构作为视觉编码器,提取图像特征。
  • 特征处理:通过一系列卷积层进一步处理视觉编码器提取的特征。

2. 特征融合与分割

  • 特征对齐:将文本嵌入与图像特征进行对齐,通过连接操作实现,以便模型能够同时考虑文本和图像信息。
  • 参数生成:使用多层感知机(MLP),将对齐的特征转换为分割任务的参数。
  • 分割掩码预测:使用文本驱动的分割器(如1×1×1卷积层)来预测每个像素点属于特定器官或肿瘤的概率,形成分割掩码。

3. 训练与优化

  • 损失函数:使用二元交叉熵(BCE)损失函数进行监督学习,并通过掩码反向传播技术只对有标注的类别进行损失计算和反向传播。
  • 优化器:使用AdamW等优化器进行模型参数的优化。

4. 泛化与迁移能力

  • 多数据集训练:模型在多个数据集上进行训练,以提高其泛化能力。
  • 迁移学习:模型可以在新任务上进行微调,以利用在大规模数据集上预训练得到的特征表示。

5. 性能评估

  • 评估指标:使用Dice相似系数(DSC)、归一化表面距离(NSD)、敏感性、特异性等指标来评估模型性能。
  • 跨数据集验证:在多个外部数据集上进行测试,以验证模型的泛化能力。

6. 开源框架支持

  • MONAI集成:模型开发和实验过程中使用了MONAI框架,这是一个为医学成像研究提供标准化、用户友好、可复现的深度学习工具的开源项目。

怎么解决这些问题

  1. 整合CLIP文本嵌入

    • 利用CLIP预训练模型生成的文本嵌入来编码器官和肿瘤的标签,这些嵌入能够捕捉图像和文本之间的语义关系,从而克服了传统one-hot编码的局限性。
  2. 构建通用模型框架

    • 提出了一个可以从多个部分标注的数据集中学习的通用模型,这个模型不仅能够处理特定的器官或肿瘤分割任务,还能够泛化到新的领域和任务。
  3. 解决标签不一致性

    • 通过统一不同数据集中的标签索引,将不同数据集的标注标准化,使得模型能够在合并的数据集上进行训练。
  4. 掩码反向传播技术

    • 为了解决部分标签问题,提出了一种掩码反向传播技术,该技术只对那些在数据集中有标注的类别进行损失计算和反向传播,从而优化模型参数。

实验

数据集和评估指标

  • 训练数据集:使用了14个公开的CT扫描数据集,共计3410个扫描图像。
  • 测试数据集:在3个额外的数据集上进行评估,包括6162个外部CT扫描图像。
  • 评估指标:使用了Dice Similarity Coefficient (DSC) 和 Normalized Surface Distance (NSD) 来评估器官/肿瘤分割的效果;使用Sensitivity(敏感性)和Specificity(特异性)来评估肿瘤检测的性能。

实施细节

  • 数据增强:包括改变CT扫描的方向、使用等间距重新切片每个扫描以统一体素大小,以及强度截断和归一化。
  • 网络结构:详细描述了文本分支和视觉分支的网络结构,包括使用的预训练模型和自定义的网络层。
  • 损失函数和优化器:使用了二元交叉熵损失函数,并采用AdamW优化器进行训练。

性能比较

  • MSD和BTCV挑战:模型在Medical Segmentation Decathlon (MSD) 和Beyond The Cranial Vault (BTCV) 挑战中的表现。
  • 与其他模型的比较:与现有的SwinUNETR模型(之前在MSD排行榜上排名第一)进行了性能比较。

器官分割性能

  • MSD任务:提供了5折交叉验证的结果,并展示了在MSD各个任务上的DSC分数。
  • BTCV任务:在BTCV验证集上与其他方法进行了比较,并提供了详细的DSC分数。

肿瘤检测性能

  • 五个数据集上的肿瘤检测:在包含肝脏、肾脏和胰腺肿瘤的数据集上评估了模型的肿瘤检测性能,并提供了敏感性和特异性的调和平均值。

CLIP嵌入的有效性

  • 嵌入空间的可视化:通过t-SNE可视化展示了使用CLIP嵌入与one-hot编码相比,如何更好地捕捉特征之间的聚类和解剖结构关系。
  • 不同提示模板的效果:评估了不同文本提示模板对CLIP嵌入性能的影响。

模型的临床相关特性

  • 效率:比较了模型的计算效率,使用FLOPs(浮点运算次数)作为指标。
  • 扩展性:展示了模型可以扩展到不同的网络骨干,如CNN和Transformer。
  • 泛化能力:在多个外部数据集上评估了模型的泛化能力。
  • 迁移学习能力:评估了模型在不同下游任务上的迁移学习能力。

指标

在这里插入图片描述

  1. Dice相似系数(DSC)

    • DSC是一个统计量,用于比较两个样本集合的相似度,通常用于评估图像分割任务中预测的分割掩码与真实标注之间的一致性。
    • 它的计算公式为:
      DSC = 2 ∣ X ∩ Y ∣ ∣ X ∣ + ∣ Y ∣ \text{DSC} = \frac{2 |X \cap Y|}{|X| + |Y|} DSC=X+Y2∣XY
      其中 X X X 是预测的分割掩码, Y Y Y 是真实的分割掩码, ∣ X ∩ Y ∣ |X \cap Y| XY 是两者交集的体积, ∣ X ∣ |X| X ∣ Y ∣ |Y| Y 分别是预测和真实分割掩码的体积。
    • DSC的值范围从0到1,值越高表示预测的分割与真实标注越相似。
  2. 归一化表面距离(NSD)

    • NSD是衡量两个表面之间距离的指标,通常用于评估图像分割任务中预测的分割边界与真实边界之间的接近程度。
    • 它的计算公式为:
      NSD = 1 N ∑ i = 1 N d i 2 spacing \text{NSD} = \frac{\sqrt{\frac{1}{N} \sum_{i=1}^{N} d_i^2}}{\text{spacing}} NSD=spacingN1i=1Ndi2
      其中 d i d_i di 是预测表面和真实表面之间的距离, N N N 是表面点的数量, spacing \text{spacing} spacing 是图像的体素间距。
    • NSD的值越小表示预测的分割边界与真实边界越接近。

复现

复现模型在xx数据集的表现(论文提到的)

我选用的是MSD的task 09 Spleen

下载好模型权重和数据集,并放置在对应的文件夹下,再运行validation.py即可同时,获得DSC分数

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

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

相关文章

如何使用Varjo直接观看Blender内容

最近,开源的3D建模程序Blender为Varjo提供了出色的OpenXR支持,包括四视图和凹进渲染扩展。但是在Blender中,默认不启用VR场景检查。要开始使用VR场景检查,只需遵循以下步骤: 1. 下载并安装Blender 2.启用Blender VR场景…

Go 语言之搭建通用 Web 项目开发脚手架

Go 语言之搭建通用 Web 项目开发脚手架 MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑&…

Python爬虫基础-正则表达式!

前言 正则表达式是对字符串的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则的字符串”,此字符串用来表示对字符串的一种“过滤”逻辑。正在在很多开发语言中都存在,而非python独有。对其知识点…

AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D

AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D 目录 Nvidia的显卡 Nvidia的5090/5080/4090/4080:据传传英伟达Nvidia RTX 5090后续推出32GB版且RTX 5080后续或推出24GB版 RTX 5090相较于RTX 4090&…

SRS:构建实时免费视频服务器的全方位指南

SRS(Simple Realtime Server)是一个开源的、基于MIT协议的实时视频服务器,以其简单、高效而著称。它支持多种流媒体协议,包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等,使其成为直播和WebRTC领域的理想…

Day95 Docker

Docker的使用 1、Docker是什么 docker是一个用来管理镜像的容器 容器(container):可以装东西 镜像( image ):所谓的镜像,你可以认为就是一个虚拟机 虚拟机:用软件代理硬件来模拟整个计算机的这样一套软件就成为 虚拟机 镜像说白了…

Imperva 数据库与安全解决方案

Imperva是网络安全解决方案的专业提供商,能够在云端和本地对业务关键数据和应用程序提供保护。公司成立于 2002 年,拥有稳定的发展和成功历史并于 2014 年实现产值1.64亿美元,公司的3700多位客户及300个合作伙伴分布于全球各地的90多个国家。…

搜维尔科技:【煤矿虚拟仿真】煤矿企业、高校、科研单位-多语言支持、数字孪生、交互式学习体验

品牌:SouVR 发票:支持专票、普票 单位:套 版本号:1.0 包装清单:软件1套 软件形式:U盘、光盘 运行环境:windows 应用对象:煤矿企业、高校、科研单位 系统配置:…

[C++]——哈希(附源码)

目录 ​编辑 ​编辑 一、前言 二、正文 2.1 unorder系列关联式容器 2.1.1 unordered_map 2.1.1.1 unorderer_map的介绍 ①unordered_map的构造 ②unordered_map的容量 ③unordered_map的迭代器 ④unordered_map的元素访问 ⑤unordered_map的查询 ⑥unordered_map的修改操…

Linux:防火墙和selinux对服务的影响

1-1selinux 1-1 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 1-2 SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是…

qt QProgressBar详解

1、概述 QProgressBar是Qt框架中的一个控件,专门用于显示任务的进度。它提供了一个可视化的进度条,让用户能够直观地了解任务的完成程度。QProgressBar支持水平和垂直两种显示方向,并且可以通过设置最小值和最大值来指定进度条的范围。此外&…

力扣最热一百题——杨辉三角

目录 题目链接:118. 杨辉三角 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:利用特性构建杨辉三角 1. 结果存储结构: 2. 初始化和循环遍历每一层: 3. 构建每一层: 4. 填充中间的元素&…

解决com.mysql.jdbc.NonRegisteringDriver内存泄漏问题

1. 问题背景 线上出现内存报警,通过dump文件,MAT分析,发现mysql-connector-java 有内存泄漏问题 2.问题分析 然后看大对象列表,NonRegisteringDriver 对象确实占内存比较多,里面村的数据库连接的虚引用占比较多 3.解…

【AIGC】ChatGPT提示词Prompt高效编写技巧:逆向拆解OpenAI官方提示词

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯OpenAI官方提示词的介绍OpenAI官方提示词的结构与组成如何通过分析提示词找到其核心组件 💯OpenAI官方提示词分析案例一:制定教学计划案例二&…

Ubuntu 22 安装 Apache Doris 3.0.3 笔记

Ubuntu 22 安装 Apache Doris 3.0.3 笔记 1. 环境准备 Doris 需要 Java 17 作为运行环境,所以首先需要安装 Java 17。 sudo apt-get install openjdk-17-jdk -y sudo update-alternatives --config java在安装 Java 17 后,可以通过 sudo update-alter…

多线程生产消费者模型

线程同步 互斥锁(互斥量)条件变量生产/消费者模型 一、互斥锁 C11提供了四种互斥锁: mutex:互斥锁。timed_mutex:带超时机制的互斥锁。recursive_mutex:递归互斥锁。recursive_timed_mutex:带超时机制的递归互斥锁…

理解 WordPress | 第五篇:页面构建器选择指南

WordPress 专题致力于从 0 到 1 搞懂、用熟这种可视化建站工具。 第一阶段主要是理解。 第二阶段开始实践个人博客、企业官网、独立站的建设。 如果感兴趣,点个关注吧,防止迷路。 什么是 WordPress 构建器 WordPress 构建器(Page Builder&am…

【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程创建 2、线程异常 3、线程用途 4、进程 VS 线程 5、线程控制 5.1、创建和等待线程 1、线程创建 线程能看到进程的大…

基于SSM的在线作业管理系统 -octopus-master(源码+调试)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

医学影像类和医用电气设备测试标准整理

医学影像类和医用电气设备测试标准整理 1、GB 9706.225-2022 医用电气设备 第2-25部分:心电图机的基本安全和基本性能专用要求 GB 9706.225规定了在201.3.63中定义的通过自身或作为ME系统一部分,提供可供诊断用的心电图报告的心电图机基本安全和基本性能,以下称为ME设备。 …