【技术追踪】SDSeg:医学图像的 Stable Diffusion 分割(MICCAI-2024)

  这医学图像分割领域啊,终究还是被 Stable Diffusion 闯进去了~

  SDSeg:第一个基于 Stable Diffusion 的 latent 扩散医学图像分割模型,在五个不同医学影像模态的基准数据集上超越了现有的最先进方法~


论文:Stable Diffusion Segmentation for Biomedical Images with Single-step Reverse Process
代码:https://github.com/lin-tianyu/Stable-Diffusion-Seg


0、摘要

  扩散模型已经证明了它们在各种生成任务中的有效性。然而,当应用于医学图像分割时,这些模型遇到了一些挑战,包括大量的资源和时间需求。他们还需要一个多步骤的反向过程和多个样本来产生可靠的预测。
  为了解决这些挑战,本文引入了第一个 latent diffusion 分割模型 SDSeg,建立在 stable diffusion(SD)上。SDSeg 采用了一个简单的 latent 估计策略,以促进单步反向过程,并利用潜在融合连接来消除对多个样本的必要性。
  大量的实验表明,SDSeg在五个具有不同成像模态的基准数据集上超越了现有的最先进的方法。


1、引言

1.1、现有基于diffusion的图像分割模型的局限性

  (1)与普通图像相比,分割mask的信息是稀疏的,在 pixel 空间做 diffusion 会导致优化效率低,计算成本高;
  (2)扩散模型采样过程需要多个步骤迭代完成,在分割应用中,常需要多个样本平均以进行稳定的预测;

1.2、本文贡献

  (1)SDSeg 基于 LDM(latent diffusion model),在较低分辨率的感知等效潜在空间上进行扩散过程,使扩散过程计算友好;
  (2)引入了一种简单的潜在估计损失(latent estimation loss),使 SDSeg 能够在单步反向过程( a single-step reverse process)中生成分割结果,并提出了一种连接潜在融合技术( a concatenate latent fusion technique)来消除对多样本的需要;
  (3)SDSeg 在5个基准数据集上实现了最先进的性能,并通过减少训练资源、提高推理速度和增强生成稳定性,显著改进了基于扩散的分割模型;


2、方法

  方法框架如图1所示,训练时冻结编解码器。

  SDSeg 结构图,基本跟 LDM 差不多:在这里插入图片描述

2.1、潜在估计

  (1)扩散前向过程:
在这里插入图片描述

  (2)U-Net 网络采用预测噪声的方法;

  本文认为分割任务 mask 相比其他图像简单,因此没有从扩散的多步反向过程中显著获益,一个成熟的去噪 U-Net 能够恢复包含分割 mask 的所有必要的结构和空间特征的潜在特征。

  (3)故在得到估计的噪声后,可以通过等式的简单变换直接推导出相应的潜在估计(前向过程公式变形):
在这里插入图片描述
  (4)损失函数,noise 和 latent 损失均采用 MAE, λ = 1 {λ=1} λ=1
在这里插入图片描述

2.2、连接潜在融合

  本文认为,分割图与相应的潜在表征表现出明显的空间相关性,其中可能包含了必要的结构和特征信息,有利于分割任务。

  故采用 concatenation 方式,这是一种常用的有效的整合图像语义特征的策略,将分割映射的潜在表示与原始图像的潜在表示合并,即图1中的 Z T {Z_T} ZT Z C {Z_C} ZC 。(朴实无华,简单有效

  潜在表示和重建可视化:

在这里插入图片描述

2.3、可训练的视觉编码器

  编码原始图像和编码 mask 的编码器结构一样,若冷冻其权重,效果也还过得去,但作者为了使 SDSeg 适应各种医学图像数据集模式,增强其多功能性和有效性,编码原始图像的编码器 τ θ { τ_θ } τθ 是可训练的。


3、实验与结果

3.1、数据集

  5个公开数据集,3个RGB数据集二维分割(肠镜息肉、眼底照相视杯),2个CT数据集三维分割(腹部器官、牙齿),(好像数据也不是特别多呀~

在这里插入图片描述

3.2、评价指标

  (1)分割效果评价:Dice系数、IoU;
  (2)计算资源的使用和推理速度;
  (3)分割结果的稳定性:LPIPS、PSNR、SSIM、MS-SSIM

3.3、实施细节

  (1)显卡:V100 16GB;
  (2)优化器:AdamW;
  (3)学习率: 1 × 1 0 − 5 {1×10^{−5}} 1×105
  (4)步数:100000;
  (5)batch size:4;
  (6)隐空间降采样率:8;
  (7)输入图像大小:256×256;
  (8)隐空间图像大小:4×32×32;

3.4、与当前最优结果对比

在这里插入图片描述

3.5、计算资源和时间效率的比较

  公平比较:同一个服务器上使用其他模型的源代码进行训练的;

在这里插入图片描述

3.6、稳定性比较

  扩散模型是生成模型,它们生成的样本可以表现出可变性。然而,在医学分割模型的背景下,多样性并不被认为是一个有利的特征,因为医学专业人员需要人工智能的帮助,才能保持一致和可靠。
  (1)Dataset-level 稳定性:使用LIPIS指标,以测量不同推断之间的可变性;
  (2)Instance-level 稳定性:以PSNR、SSIM和MS-SSIM为指标,通过在固定条件下进行重复推断,来检验模型在不同初始噪声下的一致性;

在这里插入图片描述

  评价指标含义:
在这里插入图片描述

3.7、消融实验

在这里插入图片描述


  为什么别人的 diffusion 那么好训又好使呢,暴风哭泣 /(ㄒoㄒ)/~~

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

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

相关文章

基于LangChain构建RAG应用

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,上一篇文章中我们详细介绍了RAG的核心思想以及搭建向量数据库的完整过程;😲 本文将基于上一篇文章的结果进行开发,主…

配置Nginx二级域名

一、环境 (一)配置 1.服务器 linux CentOS 2.反向代理 Nginx 3.开放端口 云服务器开放端口80和443 二、域名备案 (一)腾讯云 1.腾讯云域名备案流程 备注:一级域名备案后,二级域名可以不用再备案&a…

AS-V1000外部设备管理介绍(国标GB28181设备管理,可以管理的国标设备包括DVR/NVR、IPC、第三方国标28181平台)

目录 一、概述 1、视频监控平台介绍 2、外部设备定义(接入的国标设备) 二、外部设备管理 2.1 外部设备添加 (1)设备侧的配置 (2)平台侧的配置 2.2 外部设备信息的修改 三、外部通道管理 3.1 外部…

Java入门教程(上)

Java入门教程(上) Java是一种流行的面向对象编程语言,以其简洁、可移植和强大的特性,被广泛应用于各种软件开发领域。对于初学者来说,掌握Java的基础知识和编程技巧是非常重要的。本文将带你从零开始学习Java&#xf…

AI智能管理系统设计文档

AI智能管理系统设计文档 1. 引言 本设计文档旨在开发一套全面的AI智能管理系统,以优化生产运营效率和决策质量。该系统将利用先进的AI技术和数据分析能力,提供自动化流程控制、预测性维护、智能决策支持等功能。 2. 需求分析与目标设定 2.1 业务需求…

使用kubeadm安装k8s并部署应用

安装k8s 1. 准备机器 准备三台机器 192.168.136.104 master节点 192.168.136.105 worker节点 192.168.136.106 worker节点2. 安装前配置 1.基础环境 ######################################################################### #关闭防火墙: 如果是云服务器&…

React_创建一个项目

目录 一、React(js 版) 二、React(ts 版) 使用react创建一个项目,前提是确保你已经安装了Node.js和npm。 如果没有安装Node.js和npm,查看这个文件: 安装node.js和npmhttps://blog.csdn.net/zxy1993106…

志愿填报,院校优先还是专业优先?

1. 前言 24年高考帷幕落下,一场新的思考与选择悄然来临。对于每一位高考考生,学校和专业都是开启大学新生活的两个前置必选项。但有时候“鱼与熊掌不可兼得”,在分数受限的条件下,是选择一个心仪的专业还是选择一个知名度更高的学…

GoSync+华为智能穿戴使用指导

GoSync官方简介: GoSync 是一款免费应用程序,主要用于将您的可穿戴设备中的步行、跑步、骑自行车和游泳等活动数据同步到您的 Google Fit 和其他健身平台。在开始同步数据之前,您需要将您的可穿戴设备账户与您的健身平台账户连接起来。在创建…

三元和磷酸铁锂电池有什么区别?

现在的电动车大多都会使用到锂电池,在常见的锂电池分为两种,一种是三元锂电池另外一种是磷酸铁锂电池,面对这两种锂电池时,它们到底有什么不同? 1、材料不同 这两种锂电池的不同之处便是材料不同,磷酸铁锂…

时间序列分析入门:概念、模型与应用【ARMA、ARIMA模型】

在这篇博客中,我们将全面探讨时间序列分析的基本概念和分类,深入理解平稳性及其检验方法,并介绍自回归模型(AR)、滑动平均模型(MA)、自回归滑动平均模型(ARMA)以及自回归…

Unity免费领高级可视化编程自定义节点工具AI行为UI流程对话树状态机逻辑等FlowReactor价值50刀high level20240627

刚发现一款类似虚幻蓝图的可视化编程工具,原价50刀,现在免费领取了。赶紧去领取入库,防止作者涨价。 高级可视化编程自定义节点工具:https://prf.hn/l/BJbdvnD 作者其他资产:https://prf.hn/l/YLAYznV Unity免费领高级…

宿州市各区县科技服务机构备案和绩效评价申报材料条件和申报时间解答

一、宿州市各区县科技服务机构备案工作 (一)申报条件 1.以研发设计、创业孵化、技术转移、科技金融、知识产权、科技咨询、检验检测认证、科学技术普及等为主营业务,在宿州市注册的独立法人机构,登记注册时间不少于一年&#xf…

提取url中的参数

let url https://alibaba.com?a1&b2&c3#hash function queryUrlParams(URL){let url URL.split(?)[1];const urlSearchParams new URLSearchParams(url);console.log(url1, urlSearchParams);console.log(entries,urlSearchParams.entries())const params Object…

ErrnoException: open failed: EPERM (Operation not permitted)

在应用权限管理里面没有文件读写权限 <!-- // 1. 适配分区存储的特性&#xff0c;并在清单文件中注册一个 meta-data 属性--> <!-- // <meta-data android:name"ScopedStorage" android:value"true" />--> <!-- …

antd RangePicker 格式化 季度 YYYY- QQ 受控组件 / 非受控组件

需求&#xff1a; 根据选中类型 切换 RangePicker 且设默认值 年&#xff1a; YYYY 季度&#xff1a; YYYY - QQ 月&#xff1a; YYYY - MM Antd 日历组件 需要展示 YYYY - Q1 需求 且传值也是 YYYY -QQ import dayjs from "dayjs";let advancedFormat require(&q…

华为---配置基本的访问控制列表(ACL)

11、访问控制列表&#xff08;ACL&#xff09; 11.1 配置基本的访问控制列表 11.1.1 原理概述 访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合&#xff0c;这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。A…

C++11 右值引用和移动语义,完美转发和万能引用,移动构造和移动赋值,可变参数模板,lambda表达式,包装器

文章目录 C11简介统一的列表初始化&#xff5b;&#xff5d;初始化std::initializer_list声明autodecltypenullptr 范围for循环 智能指针STL中一些变化右值引用和移动语义左值引用和右值引用左值引用与右值引用比较 右值引用使用场景和意义右值引用引用左值及其一些更深入的使用…

C++文件路径处理1 - 判断一个文件是否存在|是否可读|是否可写|是否可执行

1. 关键词2. filesystem.h3. filesystem_unix.cpp4. filesystem_win.cpp5. filepath.h & filepath.cpp6. 测试代码7. 运行结果8. 源码地址 1. 关键词 关键词&#xff1a; C 文件路径处理 文件 是否存在 是否可读 是否可写 是否可执行 跨平台 应用场景&#xff1a; 在对…

vue2的watch详解。真的是服了这个watch有bug

在 Vue.js 2 中&#xff0c;watch 是一个用来观察和响应 Vue 实例数据变动的选项。它可以用来监听数据的变化并执行相应的逻辑&#xff0c;比如在数据变化时更新界面或者执行一些异步操作。 基本用法 监听单个数据源 最简单的用法是监听单个数据源&#xff08;即一个数据属性…