扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图

news2024/11/17 4:25:30

对抗性鲁棒分类器 + 扩散模型:为 正常的 fundus 和 OCT 图,生成更多病症图

    • 解决问题
      • 创新点
    • 效果
    • 调参技巧
    • 总结
      • Fundus 转 OCT(只是猜想,不一定)
        • 1. 疾病特征模拟
        • 2. 数据增强
        • 3. 疾病进展模拟
        • 4. 跨模态学习

 


解决问题

论文:https://arxiv.org/pdf/2311.11629.pdf

代码:https://github.com/berenslab/retinal_image_counterfactuals

  • 裁剪眼底图:https://github.com/berenslab/fundus_circle_cropping

 
问题: 如何生成视网膜底片和OCT扫描图像的病症图?

解法: 使用基于扩散模型和对抗性鲁棒分类器的反事实图像生成方法(DVC),生成具有或没有特定疾病标记的视网膜图像。

假设有一张健康人的视网膜底片,我们想知道如果这个人患有糖尿病视网膜病变(DR),他的视网膜底片可能会是什么样子。

  1. 输入: 真实的健康人视网膜底片,或OCT(光学相干断层扫描)图像。
  2. 处理: 使用对抗性鲁棒分类器确定糖尿病视网膜病变的特征,并使用扩散模型根据这些特征生成图像。
  3. 输出: 展示了如果患者患有某种眼科疾病(例如糖尿病视网膜病变或黄斑变性)时,其视网膜图像可能呈现的样子。

通过这种方法,医生可以更好地理解不同疾病状态下的视网膜变化,帮助诊断和治疗计划的制定。

 

a. 原始的视网膜底片图像显示在计算机屏幕上。

b. 两种类型的反事实图像:

  • 一种是标记为“健康”的,意味着疾病特征被移除;
  • 另一种是标记为“DR”(糖尿病视网膜病变)的,意味着疾病特征被增强或添加。

c. 展示了扩散过程的视觉化,从原始图像(\x_0)开始,通过逐步增加噪声(\x_1, x_2, …),直到达到一个完全随机的噪声状态(x_T)。

  • 然后,展示了逆向扩散过程,从噪声状态( x T / 2 x_{T/2} xT/2)开始,逐步减少噪声,直到恢复为一个清晰的反事实图像(x_T)。

  • 上半部分描绘了一个健康眼底图像的正向和逆向扩散,而下半部分则是DR眼底图像的扩散过程。

d. 示意图显示了如何使用扩散模型和对抗性鲁棒分类器生成反事实图像。

  • 左侧是扩散过程的起始图像,然后是中间几个扩散步骤的示例,最右侧是经过半个扩散周期后的图像。
  • 这个过程涉及利用来自对抗性鲁棒分类器的梯度来指导逆向扩散过程,生成反映特定病理特征的图像。

图中还包含了一个小框图,解释了如何将对抗性鲁棒分类器的梯度(标记为R,棕色)投影到围绕简单模型梯度(标记为P,浅橙色)的一个锥形区域中,以引导图像生成过程。

 

创新点

扩散模型

  • 特征: 扩散模型通过在前向过程中向图像加入噪声,并在逆向过程中逐步去除这些噪声,生成高质量、现实感强的图像。

假设我们有一张健康人的眼底图像,我们想要生成这个人如果患有糖尿病视网膜病变(DR)的图像。

扩散模型首先在原始健康图像上加入噪声,使其变得模糊不清。

然后,在逆向过程中,模型逐渐去除噪声并引入糖尿病视网膜病变的特征,如微血管异常和出血点,最终生成一张逼真的、展现疾病特征的反事实图像。

 
对抗性鲁棒分类器

  • 特征: 对抗性鲁棒分类器经过训练,能够抵抗对抗性攻击,并产生与特定类别特征对齐的强大梯度,有助于引导扩散模型生成具有目标类别特征的图像。

设想一个任务,其中需要将健康眼底图像转换成显示糖尿病视网膜病变特征的图像。

对抗性鲁棒分类器能识别出,健康眼底图像中应该如何修改以展现糖尿病视网膜病变的特征,例如在哪些区域增加出血点或微血管异常。

这些针对性的梯度信息被用来指导扩散模型,在逆向过程中准确地引入这些病变特征。

 
结合扩散模型和对抗性鲁棒分类器

  • 方法: 结合扩散模型的图像生成能力和对抗性鲁棒分类器的特征引导能力,创建既现实又准确的反事实图像。

假设一个研究项目旨在生成展现糖尿病视网膜病变进展的图像序列。

研究者首先使用对抗性鲁棒分类器确定哪些特征是糖尿病视网膜病变的关键指标,如血管异常的程度和出血点的分布。

然后,他们使用扩散模型,根据这些指标从健康眼底图像,生成一系列反映病变进展的图像。

这个过程结合了两种技术:对抗性鲁棒分类器提供了对疾病特征的深刻洞察,而扩散模型则负责生成逼真的图像。

不仅能生成逼真的图像,还能在图像中引入或去除特定的疾病特征。

 

效果


直接上结论,表明 DVC 技术能够生成比SVC技术更逼真的图像,更好地移除或引入与疾病相关的特征,而不会产生不自然的伪影

直接上结论。从这张图可以看出,对抗性鲁棒模型和锥投影模型生成的反事实图像在视觉上更加逼真,并且能够引入更明显的疾病相关变化,与普通模型相比,它们在模拟糖尿病视网膜病变方面更为有效


图中展示了光学相干断层扫描(OCT)图像,其中包含了一系列使用扩散视觉反事实(DVCs)技术生成的图像。

这些图像展示了当健康眼底图像被转换为具有某种疾病特征的图像,以及当有疾病特征的图像被转换回健康状态时的变化。

箭头指向了在图像生成过程中添加或移除的特定特征,蓝色箭头指示添加的特征,绿色箭头指示移除的特征。

这些图像证明了DVC技术能够在OCT图像上准确地模拟出疾病的特定视网膜变化,这对于疾病诊断和治疗规划具有潜在的价值。

调参技巧

正则化参数 λ 的不同值影响了生成图像的真实性和病变特征的准确性。

一般来说,中等正则化强度(如 λ = 0.5)可能提供了最佳平衡,既保留了健康图像的结构,又能添加足够的病变特征以改变分类器的决策。

调参:

  1. 疾病的严重程度:

    • 对于轻微的病变,可能需要较小的正则化参数(高λ值),以便生成图像的变化更为微妙。
    • 对于严重的病变,可能需要较大的正则化参数(低λ值),以生成更显著的病变特征。
  2. 保持原始图像结构:

    • 需要一个平衡的正则化参数(中等λ值),以保持原始图像结构的同时引入或去除特定病变特征。
  3. 生成图像的现实性:

    • 正则化参数应该调整到足以生成现实且准确反映病变特征的图像,但又不会引入不自然的伪影。
  4. 分类器的决策改变:

    • 参数调整应该确保生成的图像能够改变分类器的决策,从健康到疾病状态或反之。
       

总结

问题: 如何生成视网膜底片和OCT图像的现实反事实图像?

解法: 使用 扩散模型 结合 对抗性鲁棒分类器 生成。

  • 为什么使用扩散模型: 扩散模型能够生成高质量、现实感强的图像,适用于处理复杂的医学影像数据。

  • 为什么使用对抗性鲁棒分类器: 这些分类器通过对抗性攻击的训练,能产生与特定类别特征对齐的强大梯度,有助于引导扩散模型生成具有目标类别特征的图像。

特征组成:

  1. 高质量图像生成: 扩散模型提供了生成逼真图像的能力。
  2. 现实感强的视觉输出: 扩散模型在去除加入的噪声的过程中维持图像的现实感。
  3. 疾病特征的准确描绘: 对抗性鲁棒分类器确保生成图像中包含准确的疾病特征。
  4. 图像数据预处理: 对原始视网膜图像进行标准化裁剪,确保输入数据的一致性。
  5. 数据增强: 使用额外的数据集加强模型对疾病样本的学习。

 

Fundus 转 OCT(只是猜想,不一定)

1. 疾病特征模拟

示例: 模拟糖尿病视网膜病变在OCT图像中的表现。

初始步骤是选取健康的fundus图像。

使用扩散模型,逐步引入与糖尿病视网膜病变相关的特征,如视网膜层的增厚或微血管异常。

这个过程中,对抗性鲁棒分类器帮助模型识别和模拟OCT图像中这些特征应该如何展现。

最终生成的图像展现了假设情况下的病变特征,供医生分析和学习。

2. 数据增强

示例: 为OCT图像数据集添加更多样化的病变样本。

在OCT图像数据稀缺的情况下,从已有的fundus图像出发,

利用扩散模型生成不同阶段和类型的视网膜病变OCT图像。

这些生成的图像被加入到现有的数据集中,提高了数据集的多样性和丰富性,有助于提升后续模型训练的质量和效果。

3. 疾病进展模拟

示例: 预测视网膜疾病在OCT图像上的进展。

选取初始阶段的糖尿病视网膜病变 fundus 图像,运用扩散模型逐步展现疾病从初期到晚期在 OCT 图像上的变化。

模型通过对抗性鲁棒分类器的引导,模拟出疾病的各个阶段特征,如视网膜液体积聚或层次结构改变,生成一系列图像来展示疾病的预期进展路径。

4. 跨模态学习

示例: 理解 fundus 和 OCT 图像在视网膜疾病表现上的关联。

分析在 fundus 图像上表现出的特定视网膜疾病特征,如血管异常,并使用扩散模型在 OCT 图像上模拟相应的变化,如视网膜层次的改变。

结合对抗性鲁棒分类器和扩散模型的步骤:

  1. 数据收集和准备:

    • 收集 fundus 和 OCT 图像的数据集。
    • 对两种图像进行预处理以保证输入数据的一致性和质量。
  2. 特征识别与标注:

    • 使用对抗性鲁棒分类器分析 fundus 图像,标注出病变特征,如血管异常等。
    • 对OCT图像执行同样的过程,标注出疾病相关的变化,如视网膜层次结构的改变。
  3. 使用扩散模型进行图像生成:

    • 训练扩散模型,使其学会从一个模态(如fundus)到另一个模态(如OCT)的特征转换。
    • 在训练扩散模型时,可以使用对抗性鲁棒分类器提供的梯度信息来指导图像生成过程。
    • 这样,扩散模型不仅学会了从一种模态转换到另一种模态的特征,而且这些特征的表现会更加精确,更接近真实病变的表现。
  4. 跨模态对比分析:

    • 生成的 OCT 图像与原始的 fundus 图像进行对比,验证病变特征是否准确转换。
    • 对抗性鲁棒分类器可以再次用于验证生成的图像是否保持了与原始病变相同的分类信心度。
  5. 专家验证:

    • 眼科专家参与评估AI生成的 OCT 图像的准确性,确保其临床可用性。
    • 在这个过程中,对抗性鲁棒分类器的主要作用是提供关于病变特征的精确信息,帮助扩散模型理解在 fundus 图像上标注的病变特征应如何在 OCT 图像上呈现。
    • 而扩散模型的作用是利用这些信息生成具有对应病变特征的 OCT 图像。

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

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

相关文章

Ultraleap 3Di示例Interactable Objects组件分析

该示例代码位置如下: 分析如下: Hover Enabled:悬停功能,手放在这个模型上,会触发我们手放在这个模型上的悬停功能。此时当手靠近模型的时候,手的模型的颜色会发生改变,反之,则不会…

npm create vue3项目特别慢

问题:Vue CLI v5.0.8在配置了淘宝镜像的情况下,创建项目报Failed to check for updates,还特别慢,等了好久都创建不好 查看 npm config get registry更换npm镜像 npm config set registryhttps://registry.npmmirror.com这样创建…

如何监控两台android设备之间串口通讯的ADB日志?

如果你的目标是将设备通过 Wi-Fi 连接到计算机,可以执行以下步骤: 一.通过 USB 连接设备: adb devices 确保设备通过 USB 连接,并且可以通过 adb devices 命令正常识别。 二、将设备1和设备2都切换到 TCP/IP 模式:…

guitar pro2024永久免费许可证(下载安装步骤教程)

1-guitar pro 版本有win版和mac版两种,本次以安装guitar pro 7 win版做步骤详解。 2-下载就不教了,把下载链接复制到浏览器(这里建议用迅雷下载,速度快,浏览器下载容易中途断开) 3-打开软件安装包&#x…

Kubernetes多租户实践

由于namespace本身的限制,Kubernetes对多租户的支持面临很多困难,本文梳理了K8S多租户支持的难点以及可能的解决方案。原文: Multi-tenancy in Kubernetes 是否应该让多个团队使用同一个Kubernetes集群? 是否能让不受信任的用户安全的运行不受信任的工作…

【JaveWeb教程】(28)SpringBootWeb案例之《智能学习辅助系统》的详细实现步骤与代码示例(1)

目录 SpringBootWeb案例011. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理 SpringBootWeb案例01 前面我们已经讲解了Web前端开发的基础知识,也讲解了Web后端开发的基础(HTTP协议、请求响应),并且也讲解了数据库…

JavaWeb:商品管理系统(Vue版)

文章目录 1、功能介绍2、技术栈3、环境准备3.1、数据库准备3.2、在新建web项目中导入依赖3.3、编写Mybatis文件3.4、编写pojo类3.5、编写Mybatis工具类3.6、导入前端素材(element-ui & vue.js & axios.js)3.7、前端页面 4、功能实现4.1、查询所有…

ChatGPT惊艳更新!一个@让三百万GPTs为你打工

ChatGPT悄悄更新个大功能!看起来要把插件系统迭代掉了。 部分(灰度)用户已经收到这样的提示: 现在可以在对话中任意GPT商店里的GPTs,就像在群聊中一个人。 体验到的博主Dan Shipper第一时间录视频激动地分享:一个改变游戏规则的…

Jenkins邮件推送配置

目录 涉及Jenkins插件: 邮箱配置 什么是授权码 在第三方客户端/服务怎么设置 IMAP/SMTP 设置方法 POP3/SMTP 设置方法 获取授权码: Jenkins配置 从Jenkins主面板System configuration>System进入邮箱配置 在Email Extension Plugin 邮箱插件…

excel中多行合并后调整行高并打印

首先参考该文,调整全文的行高。 几个小技巧: 1.转换成pdf查看文件格式 2.通过视图--》分页预览,来确定每页的内容(此时页码会以水印的形式显示) 3. 页面布局中的,宽度可以选为自动,因为已经是…

C# .Net6搭建灵活的RestApi服务器

1、准备 C# .Net6后支持顶级语句,更简单的RestApi服务支持,可以快速搭建一个极为简洁的Web系统。推荐使用Visual Studio 2022,安装"ASP.NET 和Web开发"组件。 2、创建工程 关键步骤如下: 包添加了“Newtonsoft.Json”&…

锂电池升6V输出3A芯片。2.7v-5.5v输入,输出6v给马达供电

锂电池升压输出芯片是一种常见的电子元件,广泛应用于各种电子设备中。本文将介绍一款锂电池升压输出芯片,AH8681可以将2.7V-5.5V的输入电压升压至6V,电流可达3A,内置MOS管。 该锂电池升压输出芯片具有以下特点: 1. 输…

蓝桥杯备战——6.串口通讯

1.分析原理图 由上图我们可以看到串口1通过CH340接到了USB口上,通过串口1我们就能跟电脑进行数据交互。 另外需要注意的是STC15F是有两组高速串口的,而且可以切换端口。 2.配置串口 由于比赛时间紧,我们最好不要去现场查寄存器手册&#x…

Redis学习——入门篇③

Redis学习——入门篇③ 1. Redis事务1.1 事务实际操作1.2 watch 2. Redis管道(pipelining)2.1 管道简介2.2 管道实际操作2.3 管道小总结 3. Redis(pub、sub)发布订阅(不重要)3.1 简介3.2 发布订阅实际操作 这是一个分水岭…

uniapp 实现路由拦截,权限或者登录控制

背景: 项目需要判断token,即是否登录,登录之后权限 参考uni-app官方: 为了兼容其他端的跳转权限控制,uni-app并没有用vue router路由,而是内部实现一个类似此功能的钩子:拦截器,由…

Jmeter连接数据库报错Cannot load JDBC driver class‘com.mysql.jdbc.Driver’解决

问题产生: 我在用jmeter连接数据库查询我的接口是否添加数据成功时,结果树响应Cannot load JDBC driver class com.mysql.jdbc.Driver 产生原因: 1、连接数据库的用户密码等信息使用的变量我放在了下面,导致没有取到用户名密码IP等信息,导致连接失败 2、jmeter没有JDB…

echarts 柱状图数据过多时自动滚动

当我们柱状图中X轴数据太多的时候,会自动把柱形的宽度挤的很细,带来的交互非常不好,我们可以用dataZoom属性来解决 简易的版本,横向滚动。 option.dataZoom [{type: "slider",show: true,startValue: 0, //数据窗口范…

对接京东SDK踩坑

背景 最近刚好需要对接京东本地生活,部分接口和数据可以直接对接京东的开放平台,有一些敏感数据需要在京东云鼎上面入驻,然后在鼎内做一些业务逻辑,然后再将数据做一个转发,然后踩了一个坑就是京东SDK打包时未打包依赖…

C语言第十弹---函数(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 函数 1、函数的概念 2、库函数 2.1、标准库和头文件 2.2、库函数的使用方法 2.2.1、功能 2.2.2、头文件包含 2.2.3、实践 2.2.4、库函数文档的⼀般格式 …

C++实现推箱子游戏

推箱子游戏 运行之后的效果如视频所示,在完成游戏后播放音乐 准备工作:建立一个新的文件夹,并在文件夹中任意增加一张背景图片,以及各个部件的照片文件 因为这里用到了贴图技术,要使用graphic.h这个函数&#xff0c…