MedSegDiff-V2: Diffusion-Based Medical Image Segmentation with Transformer 论文总结

标题:MedSegDiff-V2: Diffusion-Based(基于扩散模型)Medical Image Segmentation(医学图像分割)with Transformer

论文(AAAI):https://ojs.aaai.org/index.php/AAAI/article/view/28418/28816

源码:KidsWithTokens/MedSegDiff: Medical Image Segmentation with Diffusion Model (github.com)

一、摘要

研究背景:扩散概率模型(DPM)最近在计算机视觉领域获得了流行,这得益于其图像生成应用,如Imagen、潜扩散模型和稳定扩散,这些应用展示了令人印象深刻的能力,并在社区内引发了许多讨论。最近的研究进一步揭示了 DPM 在医学图像分析领域的效用,医学图像分割模型在各种任务中表现出的良好性能强调了这一点。

研究问题:尽管这些模型最初是由UNet架构支撑的,但 存在通过集成视觉transformer机制来提高其性能的潜在途径 。然而,本文发现 简单地组合这两个模型会导致性能不佳 

主要工作:为了有效地将这两种前沿技术集成到医学图像分割中,本文提出一种新的基于transformer的扩散框架,称为MedSegDiffV2。

实验效果:在具有不同图像模态的20个医学图像分割任务上验证了其有效性。通过综合评估,所提出方法证明了比之前最先进的(SOTA)方法的优越性。

二、引言

三、相关工作

四、方法

A. Diffusion Process of MedSegDiff-V2 ( MedSegDiff-v2的扩散过程 )

基于(Ho, Jain 和 Abbeel 2020) 中提到的扩散模型设计了本文的模型。扩散模型是由两个阶段组成的生成式模型:正向扩散阶段和反向扩散阶段。在正向过程中,通过一系列步骤 t 逐步将高斯噪声添加到分割标签 x_0 中。在反向过程中,通过训练神经网络实现逆转噪声添加过程恢复数据。可以用数学表达式表示如下:

其中,θ 表示逆向过程中的参数。从高斯噪声分布出发,p_\theta (x_T) = N(x_T;0, I_{n \times n}),其中 I 是原始图像,反向过程将潜变量分布 p_\theta (x_T) 转换为数据分布 p_\theta (x_0) 。为了保持与前向过程的对称性,反向过程逐步恢复噪声图像,最终获得最终的清晰分割。

Q:什么是这里指的潜变量分布?

A:Latent variable distribution(潜变量分布)指的是在统计建模中用来描述未直接观测到的、无法直接测量的变量的分布。

在本文和扩散模型中,Latent variable distribution(潜变量分布)常用来描述高斯噪声和图像加性后的数据分布,这是一个符合高斯分布的概率分布。

在DPM(扩散模型)的标准实现之后,本文利用编解码器网络进行学习。为了实现分割,本文以原始图像的先验信息为条件,采用步长估计函数ϵ。这个条件可以表示为(这个公式是对整个模型的概述,包括模型的输入,TransF模块和解码器的输入):

这里,TransF 表示基于 transformer 的注意力机制。E_t^I 表示条件特征嵌入,在本文中,它对应于原始图像的嵌入。E^x_t 表示当前步骤的分割图的特征嵌入。这两个分量通过 transformer 合并在一起,并通过 UNet 解码器 进行重建。步骤索引 t 与组合的嵌入和解码器特征集成在一起,并且遵循(Ho,Jain,and Abbeel 2020)中描述的方法,使用共享的学习查找表来嵌入每个步骤索引。

B. Overall Architecture ( 整体架构 )

MedSegDiff-V2的整体流程如图所示。 

整体流程概述:噪声掩码 x_t 首先输入到UNet,称为 扩散模型(DIffusion Model)。扩散模型通过另一标准的UNet(称为 条件模型 Condition Model)从原始图像中提取的分割特征作为条件。将条件模型的解码分割特征作为锚点分割特征(先验特征)集成到扩散模型的编码特征中辅助UNet分支解码器的先验特征和扩散模型逆恢复特征融合这使得扩散模型可以用一个粗略但静态的参考来初始化,有助于减小扩散方差。然后,将语义条件施加到扩散模型的嵌入中,将条件模型的语义分割嵌入集成到扩散模型的嵌入中(将辅助UNet分支的最底层全局语义特征与扩散模型逆恢复特征融合)。这种条件集成由SS-Former实现,弥合了噪声和语义嵌入之间的差距,并利用transformer的全局和动态特性的优势抽象出更强的表示。

输出结果:依旧是扩散模型中 x_t \rightarrow x_{t-1},只不过这个 x_{t-1} 受到了辅助 UNet 分支的指导,集合了先验特征和语义特征,使得扩散模型的反向过程更有方向性,会朝着指定的分割区域恢复。

MedSegDiff-V2主要由两步操作组成:

  • 1. 辅助UNet分支解码器最顶层的先验特征和扩散模型逆恢复特征融合  ——  U-SA
  • 2. 将辅助UNet分支的最底层全局语义特征与扩散模型逆恢复特征融合 —— SS-Former

这两步操作的作用位置不同,U-SA作用于辅助UNet分支解码器顶层,以分割特征作为先验特征对逆恢复特征进行约束。SS-Former作用于辅助UNet分支的最底层,为逆恢复特征融合全局语义。

     

Q:这种融合方法不会破坏扩散模型的反向过程吗?毕竟扩散模型的反向过程是依赖于正向过程中的数据分布的,向反向过程中添加正向过程中不存在的数据,不会破坏反向过程的推理吗?

 

损失函数:MedSegDiff-V2在DPM(Ho、Jain和Abbeel 2020)之后使用标准噪声预测损失 \mathcal{L}_n 和监督条件模型的锚点损失 \mathcal{L}_{anc} 进行训练。\mathcal{L}_{anc} 是soft dice loss \mathcal{L}_{dice} 和交叉熵损失 \mathcal{L}_{ce} 的组合。具体地,总损失函数表示为:

其中 t ≡ 0 (mod α) 通过超参数 α 控制对条件模型的监督次数,交叉熵损失用超参数 β 加权,分别设为 5 和 10 。 

  

C. Anchor Condition with U-SA ( 锚点条件与U-SA )

问题:没有卷积层的归纳偏差,transformer块具有更强的表示能力,但在训练数据有限的情况下,对输入方差也更敏感(Naseer et al. 2021)。直接将 transformer 块添加到扩散模型中会导致每次输出的方差很大

方法:为了克服这种负面影响,本文调整了 MedSegDiff 的结构,并将锚点条件操作引入扩散模型。锚点条件从条件模型(辅助UNet分支)中提取出一种粗糙的锚点特征,并将其融入到扩散模型中。这为扩散模型提供了正确的预测范围,同时也允许它进一步完善结果。

过程:具体地,将条件模型解码后的分割特征融入扩散模型的编码器特征中。提出 U-SA 机制(高斯卷积 + 自注意力)进行特征融合,以表示给定条件特征的不确定性本质。形式上,将最后一个条件特征 f^{-1}_c 集成到第一个扩散特征 f^0 _d 中。U-SA 可以表示为:

其中,∗ 表示滑动窗口内核操作,· 表示常规的元素级操作。在方程中,首先在 f^{-1}_c 上应用可学习的高斯核 Kg 来平滑激活,因为 f^{-1}_c 用作锚,但可能不完全准确。因此,在平滑后的特征图和原始特征图之间选取最大值来保留最相关的信息,从而得到平滑的锚点特征图 fanc。然后将 fanc 融合到 f^0_d 中,得到增强特征 f^{'0}_d。(本质上是一个对Key值进行高斯平滑处理的自注意力

细节:具体地说,首先应用1×1卷积 k_{1\times 1conv} 将锚点特征通道减少到1,并在Sigmoid激活后将其与 f^0_d 相乘,然后将其添加到 f^0_d 的每个通道,类似于空间注意的实现。 

  

D. Semantic Condition with SS-Former ( 语义条件和SS-Former )

问题:扩散模型从噪声掩码输入中预测冗余噪声,导致其嵌入与条件分割语义嵌入之间的域间差距(频域和空间域之间的差距)。当使用矩阵操作时,这种差异会影响性能,例如在一个 transformer 中。

思想:为应对这一挑战,本文提出一种新的频谱空间Transformer (SS-Former)。本文的核心思想 是在频域上学习条件语义特征和扩散噪声特征的相互作用 

方法:本文使用一个滤波器,称为神经带通滤波器 (NBP-Filter) 来将它们对齐到统一的频率范围,即频谱。NBP-Filter学习通过特定的频谱,同时约束其他频谱。以自适应扩散时间步长的方式学习该频谱,因为噪声水平 (频率范围) 对每个步骤都是特定的。这允许根据频率亲和度混合特征,也可以根据扩散步骤对齐特征。通过 NBP-Filter 对每一个步长都学习一个特定的频谱,并将输入特征对齐到这一统一的频率范围

结构:如图所示,由共享相同架构的 N 个块组成。本文中设置 N = 4。每个模块由两个类似交叉注意力的模块组成。

NBP-Filter设计来源然后,应用 NBP-Filter 来对齐频率的表示。M 中的每个点现在表示一个特定的频率,由于我们需要控制一个连续的频率范围,直观的是建立一个从特征映射位置到频率幅度的平滑投影。为了实现这一点,本文使用神经网络从坐标映射中学习权重映射通过这样做,网络的归纳偏差将促进平滑投影的学习,因为相似的输入将自然产生相似的输出(Sitzmann et al. 2020;吴和傅2019)。这种想法被广泛应用于3D视觉任务中,被称为神经辐射场(NeRF)(Mildenhall et al. 2020)。

过程第一步将扩散噪声嵌入条件语义嵌入中,接下来的对称模块将上一个语义嵌入到扩散噪声嵌入中。这 允许模型学习噪声和语义特征之间的相互作用 (选取最深层特征的作用,并实现更强的表示。形式上,考虑 c^0 是条件模型中 最深的特征嵌入 e 是扩散模型中 最深的特征嵌入 

  • 首先将 c^0 和 e 转移到傅里叶空间(FFT操作分别记为 F(c^0) 和 F(e) 。请注意,特征图都是按照标准的vision transformer方法进行拼接和线性投影的。然后,以e为查询,c^0 为键,计算傅里叶空间上的亲和度权重矩阵,该映射可以表示为 M = (F(c^0)W^q)(F(e)W^k)^T ,其中 W^q 和 W^k 是傅里叶空间中可学习的查询权重和键权重。( 傅里叶空间变换 + ViT

  • 然后,应用 NBP-Filter 来对齐频率的表示。但与原始的NeRF不同,本文进一步用时间步长信息对其进行条件化。具体来说,该网络以一个坐标图(coordinate map)作为输入,并产生一个注意力图作为过滤器,两者都具有相同的大小 m。简单堆叠卷积块和中间层归一化来实现它。为了用时间步信息来调节网络,使用扩散模型的时间步嵌入来缩放和移动归一化特征。使用两个 MLP 层将当前时间步嵌入投影到表示均值和方差的两个值,分别用于缩放和移动。堆叠总共 6 个这样的块和一个 Sigmoid 函数来产生最终的滤波器。最后,将滤波器与亲和性矩阵逐元素相乘
  • 然后,将经过过滤的亲和力图 M' 使用逆快速傅里叶变换 ( IFFT ) 转换回欧几里得空间,并应用 value 值 中的条件特征:f = F^{-1}(M')(c^0w^v),其中 w^v 是可学习的 value 权重 (卷积) 。还使用一个 MLP 进一步细化注意力结果,获得最终特征 \tilde{c}^0。接下来的注意力模块与第一个模块对称,但使用组合特征 \tilde{c}^0 作为查询,噪声嵌入 e 作为键和值以便将分割特征转换到噪声域。转换后的特征 c1 将作为下一个块的条件嵌入。

Q:坐标图(coordinate map)怎么获得的?由亲和度矩阵转化而来的吗?

 

    

五、实验

A. Dataset( 数据集 )

在五个不同的数据集上进行了实验。使用两个数据集来验证 通用分割性能 ,分别是包含16种解剖结构的AMOS2022公开数据集和包含12种被标注用于腹部多器官分割的解剖结构的BTCV公开数据集。另外使用四个公共数据集(包括:眼底图像的光学杯分割、MRI图像的脑肿瘤分割、超声图像的甲状腺结节分割)、BraTs-2021数据集、ISIC数据集和TNMIX数据集验证其 在多模态图像上的分割性能。(五种数据集,验证通用分割和多模态分割任务)

  

B. Implementation Details( 实验细节 )

实验设备:所有实验均使用PyTorch平台进行,并在4个NVIDIA A100图形处理器上进行培训/测试。

预处理:所有图像都被均匀地调整到256×256像素的分辨率。

优化器和批量大小:使用AdamW优化器以端到端的方式训练网络,批次大小为32。初始学习速率设置为1×10^−4。

扩散步数和执行次数:采用100个扩散步骤进行推理。为了集成,运行模型10次,这比MedSegDiff中的25次要少得多。然后使用STAPLE算法对不同的样本进行融合;

评价指标:通过Dice score,IoU,HD95指标对分割性能进行评估。

C. Main Results ( 主要结果 )

验证 MedSegDiff-V2 与SOTA方法在多器官分割数据集AMOS和BTCV上的分割性能。 

对比方法: 基于cnn的方法nnUNet,基于transformer的方法TransUNet、UNetr、Swin-UNetr以及基于扩散的方法EnsDiff、SegDiff、MedSegDiff。

结果分析:网络体系结构本身并不是性能的决定因素。例如,设计良好的基于 cnn 的模型 nnUNet 在表中大大优于基于 transformer 的模型 TransUNet 和 UNetr。对于基于扩散的模型也是如此。可以看到,直接采用扩散模型进行医学图像分割,即 EnsDiff 和 SegDiff ,其性能比 UNetr 和 Swin-UNetr 差。transformer和扩散模型的简单组合,即MedSegDiff + TransUNet,获得的性能甚至比标准MedSegDiff更差。

改进方法:通过引入锚定条件和SS-Former,MedSegDiff-v2克服了这些挑战,并表现出优越的性能。本文还在进行了定性比较。可以观察到,MedSegDiff-v2预测的分割图具有更精确的细节,即使在低对比度或模糊的区域。

D. Ablation Study ( 消融实验 )

进行了全面的消融研究,以验证所提出模块的有效性。Anc.Cond. 和 Sem.Cond. 分别表示锚点条件和语义条件。如表所示:

  • 锚点条件显著改善了基本的扩散模型,所提出的U-SA在所有数据集上的表现都优于之前的空间注意力。
  • 在语义条件中,单独使用SS-Former只提供了微小的改进,但将其与NBP-Filter相结合则带来了显著的改进,证明了所提出的SS-Former设计的有效性。 

  

六、结论

主要工作:在本文中,通过将 transformer 机制加入到原始的 UNet 主干中来增强基于扩散的医学图像分割框架,称为 MedSegDiff-V2 。为了学习噪声和语义特征之间的交互作用,本文提出了一种新的 SS-Former 结构。

实验效果:对比实验表明,在20种不同图像形态的医学图像分割任务中,本文的模型优于以往的SOTA方法。

展望:作为第一个用于医学图像分割的基于 transformer 的扩散模型,相信MedSegDiff-V2将作为未来研究的基准

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

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

相关文章

2024-6-2 石群电路-21

2024-6-2,星期日,天气:阴,心情:晴。今天没什么特别的事情发生,心情还是一如既往的好,明天就周一啦,虽然我暂时不用上班,但是希望大家新的一周元气满满~ 今日观看了石群老…

ANAH数据集- 大模型幻觉细粒度评估工具

大型语言模型(LLMs)在各种自然语言处理任务中取得了显著的性能提升。然而,它们在回答用户问题时仍面临一个令人担忧的问题,即幻觉,它们会产生听起来合理但不符合事实或无意义的信息,尤其是当问题需要大量知…

MongoDB-4.2.1 之安装和使用

安装 下载安装包 我自己电脑是 Windows7 的老古董,所以就下载老版本的 MongoDB。 mongodb: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip 解压安装包到指定路径 我解压到的 C 盘 C:\mongodb-4.2.1 添加环境变量 创建数据库和…

gitlab服务器迁移(亲测有效)

描述:最近公司迁移gitlab,我没有迁移过,经过网上查找资料最终完成迁移,途中也遇到挺多坑和两个问题,希望能帮到你。 新服务器安装gitlab 注意:新服务器gitlab版本也需要和旧版本一致。 首先查看原Gitlab…

渗透测试靶机----FirstLeads_1.3

渗透测试靶机----FirstLeads_1.3 启动靶机,扫描ip,平平无奇 可以看出,这里是存在139这个主机的,这就是扫描出来的靶机ip继续探测端口及其他信息 发现这里只开启了80 端口 尝试一些基本目录,发现存在robot.txt文件目录…

WIN10环境下xposed环境搭建

禁止拿来干坏事,仅做学习为目的 环境需求 1.夜神模拟器7.1 2.Android stdio 2022.3.1 3. Adb环境配置 具体实现 1.安装xposed 打开可一键安装,重启 2.连接虚拟机 adb connect 127.0.0.1:620013.打开as,进入project 4.在lib下添加准备好的jar包 …

JAVAEE1

Web前端: 1.建立web开发的息维模式写代码不仅仅是为了实现某个功能,更是学习解决问题的思维方式 2.先使用,再理解,会导致刚开始比较懵,不知其所以然.切忌不可深陷其中, 3.涉及简单的软件工程的设计思想&…

排序方法大汇总

以下所有排序方法均以排升序为例 一.插入排序 1.直接插入排序 1>方法介绍:假定前n个数据有序,将第n1个数据依次与前n个数据相比,若比第i个数据小且比第i-1个数据大则插入两者之间 2>时间复杂度:O(N^2) 空间复杂度&#…

数据结构与算法05-链表

介绍 基于结点的数据结构拥有独特的存取方式,因此在某些时候具有性能上的优势。 本章我们会探讨链表,它是最简单的一种基于结点的数据结构,而且也是后续内容的基础。 你会发现,虽然链表和数组看上去差不多,但在性能上…

ThingsBoard MQTT 连接认证过程 源码分析+图例

整个连接过程如图所示: 高清图片链接 1、环境准备 thingsboard3.5.1 源码启动。(不懂怎么启动的,大家可以看我的博文ThingsBoard3.5.1源码启动)MQTTX 客户端(用来连接 thingsboard MQTT)默认配置。queue.…

接口以及会话控制

接口 接口是前后端交互通信的桥梁 简单理解:一个接口就是服务中的一个路由规划,根据请求响应结果 接口的英文单词是API(Application Program Interface),所以有时也称之为API接口 这里的接口指的是数据接口,与编程语言&#x…

python基础知识点总结(第二节判断与循环)

一、判断语句 1、if判断语句 ~if语句的基本格式 if 要判断的条件: 条件成立时,要做的事情 ~if语句的注意事项: 判断语句的结果一定要是布尔类型不要忘记判断条件后的:冒号归属于if语句的代码块,需要在前方填…

【软件测试】6.设计测试用例的设计方法

目录 1.基于需求的设计方法 2.具体的设计方法 2.1等价类 2.2边界值 2.3正交法 2.4判定表法 2.5场景法 2.6 错误猜测法 1.基于需求的设计方法 基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计…

告别鼠标,安卓模拟鼠标,绘图板,手写板操作电脑PC端,卡卡罗特也说好,儿童节快乐

家人们,上链接了:https://download.csdn.net/download/jasonhongcn/89387887 横屏模式: 竖屏模式: 操作说明: 1. 手势滑动模拟鼠标移动 2. 界面如果有滚动条,右手指按紧,通过左手指移动实现…

【智能算法】红嘴蓝喜鹊优化算法(RBMO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,S Fu受到自然界中红嘴蓝喜鹊社会行为启发,提出了红嘴蓝喜鹊优化算法(Red-billed Blue Magpie Optimizer, RBMO)。 2.算法原理 2.1算…

【原创】springboot+mysql员工管理系统

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

找出字符串中出现最多次数的字符以及出现的次数

str.charAt(i) 是JavaScript中获取字符串中特定位置字符的方法&#xff0c;表示获取当前的字符。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…

Linux基础之进程控制--进程的创建和退出

目录 一、进程的创建 二、进程的终止 2.1 进程退出的场景 2.2 main()函数的返回值 2.3 用exit和_exit进行退出 2.4 进程异常终止 一、进程的创建 关于一个进程是如何被创建出来的&#xff0c;我们已经有所介绍这里我在给大家补充些东西。 首先&#xff0c;我们知道…

python之tkinter学习笔记

目录 Widget概览 加强版的tkinter模块 一、通用的 1.1、Label PhotoImage (gif图片加载) jpg图片加载 config方法-计时器 1.2、PanedWindow 1.3、LabelFrame 二、tkinter专有 2.1、Menu菜单复选框 2.2、工具栏 三、tkinter.ttk专有 3.1、Separator分隔线 3.2、n…

【C++】C++ 宾馆酒店管理系统(源码+数据+论文)【独一无二】(史上功能最全,拿来即用)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…