Diffusion Transformer U-Net for MedicalImage Segmentation

news2024/11/26 23:29:56

用于医学图像分割的扩散变压器U-Net

摘要:

扩散模型在各种发电任务中显示出其强大的功能。在将扩散模型应用于医学图像分割时,存在一些需要克服的障碍:扩散过程调节所需的语义特征与噪声嵌入没有很好地对齐;这些扩散模型中使用的U-Net骨干网对上下文信息不敏感,而上下文信息在反向扩散过程中对于精确的像素级分割至关重要。

为了克服这些限制,我们提出了一个交叉注意模块来增强源图像的条件反射,以及一个基于转换器的U-Net,该U-Net具有多尺寸窗口,用于提取各种尺度的上下文信息。在Kvasir-Seg、CVC Clinic DB、ISIC 2017、ISIC 2018和Refuge 5个不同成像模式的基准数据集上进行了评估,我们的扩散变压器U-Net具有很强的泛化能力,并且在这些数据集上优于所有最先进的模型。

1 介绍

卷积神经网络(CNN)和视觉变形(ViT)等深度学习(DL)方法已经应用于医学图像分割[7,8,17],并取得了良好的效果。然而,这些深度学习方法在其网络架构上有一些固有的限制。例如,cnn能够提取局部特征,但不能直接提取全局特征,而vit采用固定窗口,这限制了它们提取精确像素级分割所必需的精细上下文细节的能力。

近年来,去噪扩散概率模型(Denoising Diffusion Probabilistic Model, DDPM)[9]在各种条件和无条件生成任务中表现出了很好的性能,也被应用于医学图像分割[23,24]。尽管取得了成功,但仍存在一些不足:(1)从源图像中提取的语义嵌入与扩散中的噪声嵌入不能很好地对齐

工艺,导致调理不良,性能欠佳;(2)在反向扩散(去噪)过程中,这些基于ddpm的方法中的UNet主干对各种尺度的上下文信息不敏感,在cnn和vit中也观察到这一点。

基于这些局限性,我们提出了一种扩散变压器U-Net,并做出了以下贡献:

提出了一种具有前向和后向过程的条件扩散模型来训练分割网络。在反向去噪过程中,通过一个新的交叉注意模块将噪声图像的特征嵌入与条件源图像的特征嵌入对齐。然后,通过分割网络将其去噪为源图像的分割掩码。

一个基于变压器的U-Net多尺寸窗口,命名为MT U-Net,它旨在提取像素级和全局上下文特征,以实现良好的分割性能。

扩散模型训练的MT U-Net在各种成像模式上具有很强的泛化能力,在结肠镜图像中的息肉分割[1,10]、皮肤镜图像中的皮肤病变分割[4,5]、视网膜眼底图像中的光学杯分割[14]等5个基准数据集上优于目前所有的最先进技术。

图1所示。用交叉注意扩散模型训练MT U-Net。

2 方法

2.1扩散模型

扩散有正向和反向两个过程(图1)。在正演过程中,通过T个时间步长逐渐加入高斯噪声,将地真值M0变换为带噪声的地真值MT。在相反的过程中,首先,源图像I和噪声映射m_t +1通过一个编码器E(两个残差初始化块[18])得到嵌入fI∈Rh×w×c1和fM∈Rh×w×c2(下标I和M表示图像和映射),其中h、w和c1 (c2)分别是嵌入的高度、宽度和通道。然后,在特征空间中通过交叉注意(Cross-Attention, CA)模块对两个嵌入进行对齐。将对齐后的特征映射作为带噪声的输入输入到MT U-Net中进行恢复M^t

这个反向过程从t = t−1迭代到t = 0(即,当t = t−1时,初始的m_t +1, m_t, i = s, i = s Mt, a + n和m_0最终恢复,预计与基本真理M0相同)。

图2展示了我们的CA模块的架构,该模块用于校准fM和fI,以改善扩散模型的调节。首先,将fM和fI分割成小块,并通过小块编码(Patch Encoding, PE)层将其平面化。然后,使用位置编码层(PoE)获取补丁的位置信息,并将其添加到原始补丁嵌入中以保持其位置信息。两个位置内置补丁嵌入的维度使用线性投影(LP)层对齐,并通过层归一化(LN)进行归一化,将两个LN之后的输出表示为f p M∈Rd和f p I∈Rd(补丁的d-dim特征向量)。第三,利用自关注进行特征融合;

图2所示。交叉关注(CA)模块的体系结构。

其中f p M是查询(Q), f p M和f p I的连接是键(K)和值(V)。? 表示转置。第四,根据[20],我们通过层归一化(LN)和二层多层感知器(MLP)对LSA的输出进行编码,以提取更多的上下文信息。辅助连接(残差)用于增强信息传播。最后,我们应用一个重塑(RS)层来重塑并组装成与fM相同大小的补丁。

2.2 多规格变压器U-Net (MT U-Net)

图3(a)展示了我们的MT U-Net的架构,包括编码和解码部分。编码部分由Patch Partitioning层、Linear Embedding层、PoE和四个编码器块组成。Patch Partitioning层将输入分割成不重叠的Patch, Patch大小为2 × 2。

图3所示。提出的MT U-Net的体系结构,以及MT模块。为清晰起见,图中没有给出时间步长嵌入。

使用线性嵌入层将这些补丁与时间嵌入一起平面化为D × 1维线性嵌入。然后在通过四个编码器块之前,将从PoE获得的位置信息添加到线性嵌入中。除了最后一个编码器块只包含MT模块外,每个编码器块由一个多尺寸变压器(MT)模块和一个补丁合并层组成。MT模块提取多尺度上下文特征(稍后详细说明),Patch merge层对特征图进行下采样。受U-Net[15]的启发,我们采用了一种s - k - p连接,利用来自编码器的多尺度上下文信息来克服降采样过程中空间信息的丢失。

与编码器块类似,每个解码器块由一个MT模块和一个补丁扩展层组成,除了第一个解码器块只包含MT模块。补丁扩展层对特征映射进行上采样和重塑操作。最后,我们使用线性投影层来获得像素级预测。

所提出的多尺寸变压器(MT)模块(图3(b))与传统变压器不同[6]。MT模块由多尺寸窗口和可移动窗口两部分组成。多尺度窗口部分提取多尺度上下文信息,移动窗口部分丰富了提取的信息。多尺寸窗口部分有K个平行分支,每个分支由一个层归一化(LN)、多头自注意(SA)、辅助连接(残量)和一个多层感知器(MLP)组成,该感知器有两层,后面跟着GELU激活函数。多头自注意使用不同的窗口大小来提取多尺度的上下文特征。这些单独分支的输出被合并,并被发送到移动窗口部分。移动窗口部分的结构类似于在多尺寸窗口中使用单个分支,但在自关注(SW-SA)中使用移动窗口。

2.3 训练与推理

在训练过程中,将源图像及其分割地面真值图作为扩散模型的输入。扩散模型使用噪声预测损失(LNo ise)[12]和交叉熵损失(LCE)进行训练。

在推理过程中,从高斯分布中采样的噪声图像与测试图像一起作为反向过程的输入。

3 实验结果

3.1 数据集和评估指标

为了评估该方法的有效性和泛化能力,我们测试了不同的医学图像分割任务,包括:(1)结肠镜图像的息肉分割(Kvasir-SEG (KSEG) [10], CVC- clinic DB (CVC)[1]),(2)皮肤镜图像的皮肤病变分割(ISIC 2017 (IS17 ') [5], ISIC 2018 (IS18 ')[4,19]),以及(3)视网膜眼底图像的光学杯分割(REFUGE (REF)[14])。Dice Coefficient (DC)和Intersection over Union (IoU)被用作评价指标。

3.2 实现细节

通过交叉验证,MT模块中的分支数设置为3,窗口大小分别为4、8、16。扩散变压器U-Net使用SGD优化器进行40000次迭代训练,动量为0.6,批量大小为16,学习率设置为0.0005。在扩散中,我们使用T = 1000步的线性噪声调度器。为了与最近基于扩散的分割模型[23,24]进行公平的比较,在推理过程中,25个预测的平均集合被认为是最终预测。所有的实验都是使用NVIDIA Tesla V-100 GPU和32gb RAM进行的。

3.3 性能对比

首先,我们将我们的方法与几个众所周知的U-Net和/或transformer相关的分割模型进行定量比较,包括U-Net[15]、unnet++[26]、Attention U-Net[13]、Swin U-Net[2]、Trans U-Net[3]和SegFormer[25]。利用源代码对这些模型进行训练,并在实验数据集上进行评估。为了公平比较,所有模型对每个数据集使用相同的实验方案。定量结果如表1所示。

表1。与U-Net和/或变压器相关的最先进方法的比较。KSEG、CVC、IS18采用80:10:10’(训练:验证:测试数据分割)实验协议;分别在REF和IS17 '上使用默认分割。

图4所示。与SOTA方法在KSEG[10]、CVC[1]、IS18 '[4,19]、IS17 '[5]和REF[14]数据集上的定性比较。蓝色等高线代表真实情况,绿色等高线代表预测结果。

我们的扩散变压器U-Net在不同成像模式的五个数据集上优于所有其他U-Net或Transformer相关模型,验证了其有效性和泛化能力。

其次,我们将我们的扩散变压器U-Net与其他U-Net或变压器相关模型进行定性比较。从图4中随机抽样的测试图像中,我们观察到其他模型产生过分割(例如,Trans U- net, SegFormer)或欠分割结果(例如,U- net, SegFormer)

表2。与SOTA结果比较。' - ':未报告结果。“*”:图像数量。

Net, unet ++, Attention U-Net, Swin U-Net),我们的分割掩码最接近地面真相,证明了我们方法的有效性。

最后,我们将我们的扩散变压器U-Net与五个数据集上所有最新的最佳模型进行了比较,如表2所示。除MedSegDiff和MedSegDiff- v2外,引用方法的结果均直接从其论文中复制。这两种方法被重新训练,并在REF数据集上进行评估。注意,由于一些方法在IS18数据集上使用不同的实验协议。为了公平比较,我们使用两种不同的协议训练/交叉验证/测试我们的方法,并将我们的方法与使用相同协议的其他方法进行比较。如表2所示,我们的方法在这五个数据集上的表现始终优于目前所有的最佳模型,再次验证了我们的方法的有效性和优越性。

3.4 消融研究

我们进行了一系列烧蚀研究,以评估扩散变压器U-Net中每个模块的贡献,如表3所示:

-我们用简单的连接操作取代了扩散模型中的交叉注意(CA),并应用这种简化的扩散模型来训练U-Net。即使这种简化的扩散模型(第2行)也可以提高第1行U-Net的性能,显示扩散的有效性。

-使用我们的带有CA模块的扩散模型(第3行),与基本的串联操作(第2行)相比,性能得到了进一步提高,这验证了CA模型在扩散模型去噪过程中对特征嵌入进行对齐的贡献。

-使用CA模块的扩散模型,我们将没有多尺寸窗口的基本变压器单元[6]添加到U-Net中(第4行)。与第3行相比,这也提高了分割性能,这表明变压器可以帮助U-Net进行分割。

-基于第4行模型,我们在变压器中添加了多尺寸窗口(即第5行扩散变压器U-Net)。与烧蚀研究中的其他配置相比,这提供了最高的性能。

表3。消融对KSEG[10]、CVC[1]、IS18′[4,19]、IS17′[5]、REF[14]的影响。

4 结论

提出了一种用于医学图像分割的扩散变压器U-Net。

在扩散模型中,我们提出了一种基于多尺寸窗口的转换U-Net,以增强上下文信息的提取和重建。我们还设计了一个交叉注意模块来对齐特征嵌入,提供更好的从源图像到扩散模型的调节。在不同模态的数据集上的评价表明了该方法的有效性和泛化能力。

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

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

相关文章

OLED显示红外遥控键码

基本原理 本遥控器的编码是NEC编码,为PWM(脉冲宽度调制)。 发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。 逻辑“0”是由0.56ms的38KHZ载波和0.560ms的无载波间隔组成;逻辑“1”是由0.56ms的38KHZ…

计算机组成原理(2)-----存储芯片与CPU的连接

目录 一.单块存储芯片与CPU的连接 二.多块存储芯片与CPU的连接 1.位扩展 2.字扩展 (1)线选法 (2)译码器片选法 3.字位同时扩展 三.译码器相关 一.单块存储芯片与CPU的连接 如图所示是8*8位的芯片,总共8个存储…

命令执行讲解和函数

命令执行漏洞简介 命令执行漏洞产生原因 应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行 命令执行漏洞的危害 1.继承Web服务程序的权限去执行系统命会或读写文件 2.反弹shell,获得目标服务器的权限 3.进一步内网渗透 远程代…

Python二级考试笔记

Python二级考试笔记【源源老师】 01. 字符串 1. 常规功能合集 字符串本身有一些功能,有些之前运用过,这里总结如下: # 功能一:判断字符串类型 print(type("Hello")) print(str(123)) # 转换# 功能二:连…

【网络】传输层TCP协议 | 三次握手 | 四次挥手

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

我的NPI项目之Android USB 系列(一) - USB的发展历史

设计目的 USB was designed to standardize the connection of peripherals to personal computers, both to exchange data and to supply electric power. 一个是为了标准化电脑连接外设的方法。 能够支持电脑和外设的数据交互和(对外)供电。 目前已…

最短路径与关键路径

目录 文章目录 前言 一.最短路径 1.基本概念 1.1什么是源点? 1.2什么是最短路径 2.作用 3.迪杰斯特拉算法 4. 弗洛伊德算法 4.1过程演示 二.拓扑排序 1.基本概念 1.1什么是有向无环图 1.2什么是活动 1.3什么是AOV网 1.4什么是拓扑序列 1.5什么是拓扑…

Go语言的100个错误使用场景(40-47)|字符串函数方法

前言 大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…

java8-重构、测试、调试

8.1.1 改善代码的可读性 改善代码的可读性到底意味着什么?我们很难定义什么是好的可读性,因为这可能非常主观。通常的理解是,“别人理解这段代码的难易程度”。改善可读性意味着你要确保你的代码能非常容易地被包括自己在内的所有人理解和维护。为了确保…

MySQL 基础知识(八)之用户权限管理

目录 1 MySQL 权限管理概念 2 用户管理 2.1 创建用户 2.2 查看当前登录用户 2.3 修改用户名 2.4 删除用户 3 授予权限 3.1 授予用户管理员权限 3.2 授予用户数据库权限 3.3 授予用户表权限 3.4 授予用户列权限 4 查询权限 5 回收权限 1 MySQL 权限管理概念 关于 M…

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.21 - No.40

本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接:2024 前端面试题(GPT回答 示例…

【Java多线程】对进程与线程的理解

目录 1、进程/任务(Process/Task) 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理(Memory Manage) 4、线程(Thread)…

【C++】:哈希和哈希桶

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关哈希和哈希桶的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

前端网络安全笔记

本文主要涉及6个内容: HTTP与HTTPS同源策略(Same-origin policy,简称 SOP)/ 跨域资源共享(Cross-Origin Resource Sharing,简称 CORS)跨站脚本攻击(Cross-Site Scripting&#xff0…

Base64编码的优点与缺点

title: Base64编码的优点与缺点 date: 2024/2/16 14:06:37 updated: 2024/2/16 14:06:37 tags: Base64编码ASCII转换数据传输文本存储安全性数据膨胀字符串解码 Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式。它被广泛应用于数据传输和存储,以提升…

飞天使-k8s知识点18-kubernetes实操3-pod的生命周期

文章目录 探针的生命周期流程图prestop 探针的生命周期 docker 创建:在创建阶段,你需要选择一个镜像来运行你的应用。这个镜像可以是公开的,如 Docker Hub 上的镜像,也可以是你自己创建的自定义镜像。创建自己的镜像通常需要编写一…

基于Python实现的元宵节猜灯谜兑奖软件源码,输入灯谜序号,获取谜面及谜底

基于Python实现的元宵节猜灯谜兑奖软件源码,输入灯谜序号,获取谜面及谜底 核心代码: import sys from time import sleep import xlrd import os import tkintertable_listA "" table_listB ""filename os.getcwd()&…

重磅!谷歌宣布发布Gemini 1.5 Pro,距离Gemini发布仅仅一个半月!最高支持1000万上下文长度,GSM8K评测全球第一

本文原文来自DataLearnerAI官方网站: 重磅!谷歌宣布发布Gemini 1.5 Pro,距离Gemini发布仅仅一个半月!最高支持1000万上下文长度,GSM8K评测全球第一 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/bl…

【题解】差分

差分其实就是前缀和的逆运算。 如果数组 A 是数组 B 的前缀和数组,则称 B 是 A 的差分数组。 思路 由题意得,应该求给定数组的差分数组。 差分加速的原理 对 L 到 R 区间内的数加上 c,时间复杂度是O(c) ,即O(n) 。 但是如果…