Diffusion【1】:SDSeg——基于Stable Diffusion的单步扩散分割!

文章目录

  • 前言
  • Abstract
  • Introduction
  • Methods
    • Latent Estimation
    • Concatenate Latent Fusion
    • Trainable Vision Encoder
  • Experiment
    • Datasets and Evaluation Metrics
    • Implementation Details
      • Experimental Settings
      • Inference Stage
    • Main Results
      • Comparison with State-of-the-Arts
      • Comparison of computing resource and time efficiency
      • Stability Evaluation
      • Ablation Study
  • 总结


前言

和大家分享一下我们发表在 MICCAI 2024 (CCF-B,医学图像处理方面的顶会,最后得分 54) 上的论文:Stable Diffusion Segmentation for Biomedical Images with Single-step Reverse Process

项目主页:
Stable-Diffusion-Seg

欢迎大家在 arxiv 上阅读:
Stable Diffusion Segmentation for Biomedical Images with Single-step Reverse Process

代码已经开源!!!期待您的 Star!!!
Stable Diffusion Segmentation (SDSeg)
在这里插入图片描述


Abstract

扩散模型已经在各种生成任务中证明了它们的有效性。然而,当应用于医学图像分割时,这些模型遇到了几个挑战,包括显著的资源和时间需求。它们还需要一个多步骤的逆向过程和多个样本来产生可靠的预测。为了应对这些挑战,我们介绍了第一个潜在扩散分割模型,名为 SDSeg,建立在稳定扩散(SD)之上。SDSeg 采用了一种简单的潜在估计策略,以促进单步逆向过程,并利用潜在融合连接去除了对多个样本的需求。广泛的实验表明,SDSeg 在五个具有不同成像方式的基准数据集上超越了现有的最先进方法。值得注意的是,SDSeg 能够通过单一的逆向步骤和样本生成稳定的预测,体现了模型以其名称所暗示的稳定性。


Introduction

图像分割是医学图像分析中的一项关键任务。为了减轻医学专业人员的工作负担,已经开发了许多自动化的医学图像分割算法。各种神经网络架构的有效性,如卷积神经网络(CNN)和视觉变换器(ViT),强调了深度学习是医学图像分割的一种有前途的方法。

研究人员对扩散概率模型(DPM)的近期兴趣导致了基于 DPM 的分割方法中对图像级扩散模型的关注。图像级扩散模型通过前向过程向图像引入噪声,并通过学习逐步解码噪声添加的逆过程来生成新图像。基于 DPM 的分割方法利用图像条件生成分割预测。然而,这些方法面临限制:(1) 在像素空间生成分割图是不必要的,可能导致优化效率低下和高计算成本,因为与普通图像相比,二元语义图具有稀疏的语义信息;(2) 扩散模型通常需要多个逆步骤来实现详细和多样的生成,以前的扩散分割模型需要多个样本来平均以获得稳定的预测。

为了克服这些挑战,我们提出了一个简单而高效的分割框架,称为 SDSeg,具有以下贡献:

  • SDSeg 建立在稳定扩散(SD)上,SD 是一种潜在扩散模型(LDM),在感知上等价的低分辨率潜在空间中进行扩散过程,使扩散过程对计算更为友好
  • 引入了一个简单的潜在估计损失,使 SDSeg 能够在单步逆过程中生成分割结果,并提出了一种连接潜在融合技术,以消除对多个样本的需求
  • 将条件视觉编码器设置为可训练,以学习图像特征进行分割并适应多个医学成像领域
  • SDSeg 在五个基准数据集上表现最佳,并显著提高了基于扩散的分割模型,通过减少训练资源、提高推理速度和增强生成稳定性

Methods

SDSeg 的框架如图 1 所示。对于医学图像,我们引入了一个可训练的视觉编码器 τ θ \tau_\theta τθ,将图像 C ∈ R H × W × 3 C\in \mathbb{R}^{H\times W\times 3} CRH×W×3 编码为其潜在表示 z c = τ θ ( C ) z_c=\tau_\theta(C) zc=τθ(C)。对于分割图,我们利用一个自编码器进行感知压缩。如图 1 所示,给定像素空间中的分割图 X ∈ R H × W × 3 X\in \mathbb{R}^{H\times W\times 3} XRH×W×3,编码器 E \mathcal{E} E X X X 编码为一个潜在表示 z = E ( X ) z=\mathcal{E}(X) z=E(X),解码器 D \mathcal{D} D 则从潜在表示中恢复分割图,得到重构 X ~ = D ( z ) = D ( E ( X ) ) \widetilde{X}=\mathcal{D}(z)=\mathcal{D}(\mathcal{E}(X)) X =D(z)=D(E(X)),其中 z ∈ R h × w × c z\in \mathbb{R}^{h\times w\times c} zRh×w×c

在这里插入图片描述

实际上,我们注意到 SD 提供的自编码器对二值分割图表现良好,如图 2 所示。因此,在训练阶段我们保持自编码器冻结,这使得 SDSeg 成为一个端到端的方法。SDSeg 的扩散过程是在潜在空间中进行的。

在这里插入图片描述

Latent Estimation

在训练阶段,第一时间步的分割图潜在表示 z 0 z_0 z0会添加 t t t个时间步的高斯噪声,得到 z t z_t zt。扩散的前向过程可以表示为:

z t = α ˉ t z 0 + 1 − α ˉ t n z_t = \sqrt{\bar{\alpha}_t}z_0+\sqrt{1-\bar{\alpha}_t}{n} zt=αˉt z0+1αˉt n

其中 n n n 是随机高斯噪声, α ˉ t \bar{\alpha}_t αˉt 是控制前向过程的超参数。每个训练步骤中,去噪 U-Net 的目标是估计随机高斯噪声 n n n 的分布,表示为 n ~ = f ( z t ; z c ) \tilde{n} = f(z_t;z_c) n~=f(zt;zc),其中 f ( ⋅ ) f(\cdot) f() 表示去噪 U-Net。噪声预测损失可以表示为 L n o i s e = L ( n ~ , n ) \mathcal{L}_{noise}=\mathcal{L}(\tilde{n}, n) Lnoise=L(n~,n)

在旨在生成多样且语义丰富图像的任务中,逆向过程中逐步应用噪声估计可以逐步改进结果。然而,我们认为分割图过于简单,不需要通过复杂的逆向过程来实现显著的改进。相反,经过有效训练的去噪U-Net能够恢复包含所有必要结构和空间特征的潜在特征,适用于分割图。因此,在获得估计噪声 n ~ \tilde{n} n~ 后,我们可以通过简单的变换直接推导出相应的潜在估计:

z ~ 0 = 1 α ˉ t ( z t − 1 − α ˉ t n ~ ) \tilde{z}_0=\frac{1}{\sqrt{\bar{\alpha}_t}}(z_t-\sqrt{1-\bar{\alpha}_t}{\tilde{n}}) z~0=αˉt 1(zt1αˉt n~)

这种技术使得可以轻松添加一个监督分支,优化目标是最小化预测的 z ~ 0 \tilde{z}_0 z~0 与真实 z 0 z_0 z0 之间的差异,潜在损失函数定义为 L l a t e n t = L ( z ~ 0 , z 0 ) \mathcal{L}_{latent}=\mathcal{L}(\tilde{z}_0, z_0) Llatent=L(z~0,z0)。因此,最终的损失函数可以表示为:

L = L n o i s e + λ L l a t e n t \mathcal{L}=\mathcal{L}_{noise}+\lambda\mathcal{L}_{latent} L=Lnoise+λLlatent

其中 λ \lambda λ 表示潜在损失函数的权重。在实践中, λ \lambda λ设为1, L n o i s e \mathcal{L}_{noise} Lnoise L l a t e n t \mathcal{L}_{latent} Llatent 均为平均绝对误差。

值得注意的是,仅使用 L n o i s e \mathcal{L}_{noise} Lnoise 和多次DDIM抽样可以生成出色的分割结果。引入 L l a t e n t \mathcal{L}_{latent} Llatent 的最大贡献在于消除生成分割图的冗余逆向过程,从而显著提高推理阶段的速度。

Concatenate Latent Fusion

稳定扩散引入了交叉注意力机制以支持多模态训练和生成。然而,对于图像到图像的分割模型,优先考虑从图像中提取语义特征和结构信息至关重要,而多模态能力可能并不会带来额外的优势。此外,将交叉注意力嵌入到去噪 U-Net 的多个块中会增加额外的计算成本。因此,寻找一种更有效的潜在融合方法对于 SDSeg 变得至关重要。

此外,我们在图 2 中的观察显示,分割图的潜在表示与其对应的潜在表示具有显著的空间相关性,可能包含有助于分割任务的必要结构和特征信息。因此,受传统语义分割方法的启发,我们采用串联方法将分割图的潜在表示与图像切片的潜在表示合并。串联在诸如 U-Net 和 DeepLabV3+ 等模型中广泛应用,并被验证为一种有效的整合图像语义特征的策略。

Trainable Vision Encoder

在语义分割中,一个有效的视觉编码器能够从图像中提取必要的结构和语义特征,从而提升分割结果。作为一种基于图像条件的生成模型,SDSeg 采用可训练的视觉编码器来捕获图像间丰富的语义特征。

视觉编码器 τ θ \tau_\theta τθ 与编码器 E \mathcal{E} E 具有相同的架构,并使用其预训练权重进行初始化。虽然我们发现,简单使用在自然图像上预训练的冻结图像编码器可以带来显著的结果,但我们选择将视觉编码器设置为可训练的,使得 SDSeg 能够适应不同的医学图像数据集模态,增强其多样性和有效性。


Experiment

Datasets and Evaluation Metrics

为全面评估SDSeg的有效性和泛化能力,我们在两个 2D 分割任务的 RGB 数据集和两个 3D 分割任务的 CT 数据集上进行实验,如表 1 所示:

在这里插入图片描述

我们的评估包括三个主要方面:首先,使用 Dice 系数(DC)和交并比(IoU)指标跨数据集评估分割结果的准确性。其次,通过比较与其他基于扩散的分割方法的计算资源使用和推理速度来评估我们模型的效率。第三,使用 LPIPS、PSNR、SSIM 和M S-SSIM 评估我们生成的分割结果的稳定性,与其他扩散分割模型进行对比。此外,我们还进行了消融研究来验证我们提出的模块的有效性。

Implementation Details

Experimental Settings

SDSeg 在单个V100 GPU上训练,具有 16GB RAM。模型使用 AdamW 优化器进行训练,基础学习率为 1 × 1 0 − 5 1\times 10^{-5} 1×105,总共训练 100,000 个步骤。默认情况下,批大小设置为 4。我们使用 KL 正则化自编码器和下采样率 r = H h = W w = 8 r=\frac{H}{h}=\frac{W}{w}=8 r=hH=wW=8的LDM模型。SDSeg 将 RGB 图像作为像素空间输入,其中 H = W = 256 H=W=256 H=W=256,相应的潜在表示形状为 h = w = 32 h=w=32 h=w=32 c = 4 c=4 c=4。所有模型部分均使用稳定扩散提供的预训练权重进行初始化。用于串联输入的去噪 U-Net 的额外模型参数被初始化为零。

Inference Stage

在推理阶段,我们将随机生成的高斯噪声与医学图像的潜在表示进行串联。然后,去噪U-Net预测估计的噪声,使得 SDSeg 可以推导出潜在估计 z ~ 0 \tilde{z}_0 z~0。接着,解码器 D \mathcal{D} D 将潜在估计转换为像素空间,得到最终的预测结果。如表 4 所示,SDSeg 无需外部采样器,只需进行单步逆向操作进行一次采样,即可实现稳定的预测。

Main Results

Comparison with State-of-the-Arts

我们在 REF、BTCV 和 STS 数据集上将我们的模型与几种语义分割方法进行了比较,如表 2 所示。此外,我们还在 CVC、KSEG 和 REF 数据集上将我们的模型与基于最新扩散技术的分割模型进行了比较,如表 3 所示。SDSeg 在这五个具有不同成像模态的数据集上表现优于所有其他模型,验证了其有效性和泛化能力。
在这里插入图片描述

Comparison of computing resource and time efficiency

表 4 展示了在BTCV数据集上对MedSegDiffs、Diff-U-Net 和 SDSeg 进行的效率评估结果。为了公平比较,这些模型都是在同一台服务器上使用它们的源代码进行训练的。结果突显了SDSeg在效率上的优势,其训练过程所需资源和时间显著减少。显著的是,SDSeg的推理过程比MedSegDiffs快约100倍,生成单个分割图的速度大约快28倍。

在这里插入图片描述

表 4 还比较了这些模型的逆向过程。潜在估计方案使得 SDSeg 能够在单步操作中生成分割图,并且串联潜在融合模块使得 SDSeg 仅需进行一次采样而不损害模型性能。此外,潜在估计使得 SDSeg 不再依赖任何外部采样器进行采样。

Stability Evaluation

由于扩散模型是生成模型,它们生成的样本可能会展现出一定的变化性。然而,在医学分割模型的背景下,多样性并不被视为一个优点特征,因为医疗专业人员需要人工智能的帮助以保持一致性和可靠性。给定一个训练好的模型和固定的测试数据,我们评估基于扩散的分割模型在以下两个任务中的稳定性:

  • Dataset-level Stability:进行重复推断测试数据,使用 LPIPS(Zhang等人,2018)指标来衡量不同推断之间的变异性
  • Instance-level Stability:通过在固定条件下进行重复推断,检验模型在不同初始噪声下的一致性,使用 PSNR、SSIM 和 MS-SSIM 作为评估指标

表 5 展示了 SDSeg 在这些测试中的显著稳定性,突显了其在不同初始噪声条件下在分割任务中的可靠性。
在这里插入图片描述

Ablation Study

我们的消融研究评估了 SDSeg 内每个组件的贡献,详见表 6。基准模型依赖稳定扩散与交叉注意力生成基于图像的分割图。引入潜在融合串联显著增强了性能,有助于有效学习空间信息和特征。此外,可训练编码器通过从分割目标中提取相关语义特征显著提升了性能。
在这里插入图片描述

虽然潜在估计损失函数在一定程度上提升了性能,但其主要优势在于显著加速了逆向过程,使得 SDSeg 能够放弃传统的采样器,采用单步逆向过程,如图 3 所示。
在这里插入图片描述


总结

本文提出了 SDSeg,一个利用稳定扩散进行医学图像分割的新颖高效框架。我们引入了一种潜在估计策略,实现了单步潜在预测,从而消除了多步逆向过程的需求。模型采用串联潜在融合,将学习到的图像潜在有效地引导分割任务。此外,可训练的视觉编码器增强了模型学习图像特征并适应多样化图像模态的能力。SDSeg 在五个分割数据集上实现了最先进的性能,显著减少了训练资源需求,加速了推理过程,并保持了卓越的稳定性。

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

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

相关文章

组队学习——支持向量机

本次学习支持向量机部分数据如下所示 IDmasswidthheightcolor_scorefruit_namekind 其中ID:1-59是对应训练集和验证集的数据,60-67是对应测试集的数据,其中水果类别一共有四类包括apple、lemon、orange、mandarin。要求根据1-59的数据集的自…

在RK3568上如何烧录MAC?

这里我们用RKDevInfoWriteTool 1.1.4版本 下载地址:https://pan.baidu.com/s/1Y5uNhkyn7D_CjdT98GrlWA?pwdhm30 提 取 码:hm30 烧录过程: 1. 解压RKDevInfoWriteTool_Setup_V1.4_210527.7z 进入解压目录,双击运行RKDevInfo…

24暑假算法刷题 | Day16 | LeetCode 513. 找树左下角的值,112. 路径总合,106. 从中序和后序遍历序列构造二叉树

目录 513. 找树左下角的值题目描述题解 112. 路径总合题目描述题解 106. 从中序和后序遍历序列构造二叉树题目描述题解 513. 找树左下角的值 点此跳转题目链接 题目描述 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至…

虚继承(C++)

目录 菱形继承 虚继承 虚继承原理 虚继承使用注意事项: 不要把所有的遗憾都留给未来,趁年轻出去走走, 让我们用心去感受这个世界,用脚步去丈量这个世界的距离。 这里是来自M--Y的专栏:C启()航…

SAP ABAP 批导函数(封装版)

EXCEL批导函数相信大家熟悉的不能再熟悉了,但是特殊场景不同函数对工作的影响真的很大。 整理本篇文章是因为公司电脑统一使用了加密系统,通过先前的统一函数无法直接上传,每次都要先另存为TEXT文本后上传,用户体验非常差&#x…

持续集成01--Git版本管理及基础应用实践

前言 本系列文章旨在深入探讨持续集成/持续部署(Continuous Integration/Continuous Deployment, CI/CD)流程中的各个环节,而本篇将聚焦于Git版本管理及其基本应用。通过本文,读者将了解到Git的基本原理、安装配置、基本命令以及如…

GuLi商城-商品服务-API-品牌管理-品牌分类关联与级联更新

先配置mybatis分页: 品牌管理增加模糊查询: 品牌管理关联分类: 一个品牌可以有多个分类 一个分类也可以有多个品牌 多对多的关系,用中间表 涉及的类: 方法都比较简单,就不贴代码了

无线物联网新时代,RFID拣货标签跟随潮流

拣选技术的演变历程,本质上是从人力操作向自动化、智能化转型的持续进程。近期,“货寻人”技术成为众多企业热烈追捧的对象,它可以根据企业的特定需求,从众多拣选方案中选出最优解。那么,在采用“货到人”拣选技术时&a…

【python】OpenCV—Scanner

文章目录 1、需求描述2、代码实现3、涉及到的库函数cv2.arcLengthcv2.approxPolyDPskimage.filters.threshold_localimutils.grab_contours 4、完整代码5、参考 1、需求描述 输入图片 扫描得到如下的结果 用OpenCV构建文档扫描仪只需三个简单步骤: 1.边缘检测 2.使用图像中…

VS code配置docker远程连接

一 前置条件 1、本地已安装docker 2、服务端docker已配置Docker配置远程连接 二 VScode安装docker扩展 三 执行docker命令 1、切换到远程docker节点 docker context create remote-docker --docker "hosthttp://192.168.6.9:2375" 2、使用远程节点 docker cont…

PyTorch 深度学习实践-逻辑斯蒂回归

视频指路 参考博客笔记 参考笔记二 用来分类的模型 说明:1、 逻辑斯蒂回归和线性模型的明显区别是在线性模型的后面,添加了激活函数(非线性变换) ​ 2、分布的差异:KL散度,cross-entropy交叉熵 现在损失函数衡量不是距离而是分布…

学习react-环境手脚架页面路由

1. 搭建环境 安装node和npm 在下面网址下载node,并安装 https://nodejs.cn/ #检测是否ok node -v npm -v安装react npm install -g create-react-app2. 创建手脚架(TypeScript) create-react-app my-app --template typescript cd my-a…

昇思25天学习打卡营第15天|两个分类实验

打卡 目录 打卡 实验1:K近邻算法实现红酒聚类 数据准备 模型构建--计算距离 计算演示 模型预测 实验2:基于MobileNetv2的垃圾分类 任务说明 数据集 参数配置(训练/验证/推理) 数据预处理 MobileNetV2模型搭建 Mobile…

AGI 之 【Hugging Face】 的【零样本和少样本学习】之三 [无标注数据] 的简单整理

AGI 之 【Hugging Face】 的【零样本和少样本学习】之三 [无标注数据] 的简单整理 目录 AGI 之 【Hugging Face】 的【零样本和少样本学习】之三 [无标注数据] 的简单整理 一、简单介绍 二、零样本学习 (Zero-shot Learning) 和少样本学习 (Few-shot Learning) 1、零样本学…

钡铼分布式 IO 系统 OPC UA边缘计算耦合器BL205

深圳钡铼技术推出的BL205耦合器支持OPC UA Server功能,以服务器形式对外提供数据。符合IEC 62541工业自动化统一架构通讯标准,数据可以选择加密(X.509证书)、身份验证方式传送。 安全策略支持basic128rsa15、basic256、basic256s…

【Git远程操作】理解分布式管理 | 创建远程仓库

目录 1.理解分布式管理 多人协作开发 2.创建远程仓库 2.1仓库名&路径 2.2初始化仓库&设置模板 1.理解分布式管理 目前我们学习的所有内容都是在本地来完成的。(add /commit /版本撤销回退/分支管理) Git是一个分布式 的版本控制系统。 分支…

数据挖掘与分析部分实验与实训项目报告

一、机器学习算法的应用 1. 朴素贝叶斯分类器 相关代码 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB, MultinomialNB from sklearn.metrics import accuracy_score # 将数据加载到DataFrame中&a…

算法工程师第十四天(找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树 )

参考文献 代码随想录 一、找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 层次遍历&#…

【hadoop大数据集群 2】

【hadoop大数据集群 2】 文章目录 【hadoop大数据集群 2】1. 虚拟机克隆2. 时间同步3. 环境变量配置、启动集群、关闭集群 1. 虚拟机克隆 克隆之后一定要重新生成新虚拟机唯一的MAC地址和UUID等,确保新虚拟机与源虚拟机在网络拓扑中不发生冲突。 注意1.生成新的MA…

Pytorch学习笔记day3——用神经网络学习一组函数

好的,我们开始吧。首先第一个问题,神经网络的本质是什么?是古典主义的人类的神经元吗?绝对不是,他只是一个优化函数 y f θ ( x ) y f_{\theta}(x) yfθ​(x) 这和小学学到的线性函数拟合并无本质区别。只是其中参数…