扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图
对抗性鲁棒分类器 + 扩散模型:为 正常的 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),他的视网膜底片可能会是什么样子。
- 输入: 真实的健康人视网膜底片,或OCT(光学相干断层扫描)图像。
- 处理: 使用对抗性鲁棒分类器确定糖尿病视网膜病变的特征,并使用扩散模型根据这些特征生成图像。
- 输出: 展示了如果患者患有某种眼科疾病(例如糖尿病视网膜病变或黄斑变性)时,其视网膜图像可能呈现的样子。
通过这种方法,医生可以更好地理解不同疾病状态下的视网膜变化,帮助诊断和治疗计划的制定。
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)可能提供了最佳平衡,既保留了健康图像的结构,又能添加足够的病变特征以改变分类器的决策。
调参:
-
疾病的严重程度:
- 对于轻微的病变,可能需要较小的正则化参数(高λ值),以便生成图像的变化更为微妙。
- 对于严重的病变,可能需要较大的正则化参数(低λ值),以生成更显著的病变特征。
-
保持原始图像结构:
- 需要一个平衡的正则化参数(中等λ值),以保持原始图像结构的同时引入或去除特定病变特征。
-
生成图像的现实性:
- 正则化参数应该调整到足以生成现实且准确反映病变特征的图像,但又不会引入不自然的伪影。
-
分类器的决策改变:
- 参数调整应该确保生成的图像能够改变分类器的决策,从健康到疾病状态或反之。
- 参数调整应该确保生成的图像能够改变分类器的决策,从健康到疾病状态或反之。
总结
问题: 如何生成视网膜底片和OCT图像的现实反事实图像?
解法: 使用 扩散模型 结合 对抗性鲁棒分类器 生成。
-
为什么使用扩散模型: 扩散模型能够生成高质量、现实感强的图像,适用于处理复杂的医学影像数据。
-
为什么使用对抗性鲁棒分类器: 这些分类器通过对抗性攻击的训练,能产生与特定类别特征对齐的强大梯度,有助于引导扩散模型生成具有目标类别特征的图像。
特征组成:
- 高质量图像生成: 扩散模型提供了生成逼真图像的能力。
- 现实感强的视觉输出: 扩散模型在去除加入的噪声的过程中维持图像的现实感。
- 疾病特征的准确描绘: 对抗性鲁棒分类器确保生成图像中包含准确的疾病特征。
- 图像数据预处理: 对原始视网膜图像进行标准化裁剪,确保输入数据的一致性。
- 数据增强: 使用额外的数据集加强模型对疾病样本的学习。
Fundus 转 OCT(只是猜想,不一定)
1. 疾病特征模拟
示例: 模拟糖尿病视网膜病变在OCT图像中的表现。
初始步骤是选取健康的fundus图像。
使用扩散模型,逐步引入与糖尿病视网膜病变相关的特征,如视网膜层的增厚或微血管异常。
这个过程中,对抗性鲁棒分类器帮助模型识别和模拟OCT图像中这些特征应该如何展现。
最终生成的图像展现了假设情况下的病变特征,供医生分析和学习。
2. 数据增强
示例: 为OCT图像数据集添加更多样化的病变样本。
在OCT图像数据稀缺的情况下,从已有的fundus图像出发,
利用扩散模型生成不同阶段和类型的视网膜病变OCT图像。
这些生成的图像被加入到现有的数据集中,提高了数据集的多样性和丰富性,有助于提升后续模型训练的质量和效果。
3. 疾病进展模拟
示例: 预测视网膜疾病在OCT图像上的进展。
选取初始阶段的糖尿病视网膜病变 fundus 图像,运用扩散模型逐步展现疾病从初期到晚期在 OCT 图像上的变化。
模型通过对抗性鲁棒分类器的引导,模拟出疾病的各个阶段特征,如视网膜液体积聚或层次结构改变,生成一系列图像来展示疾病的预期进展路径。
4. 跨模态学习
示例: 理解 fundus 和 OCT 图像在视网膜疾病表现上的关联。
分析在 fundus 图像上表现出的特定视网膜疾病特征,如血管异常,并使用扩散模型在 OCT 图像上模拟相应的变化,如视网膜层次的改变。
结合对抗性鲁棒分类器和扩散模型的步骤:
-
数据收集和准备:
- 收集 fundus 和 OCT 图像的数据集。
- 对两种图像进行预处理以保证输入数据的一致性和质量。
-
特征识别与标注:
- 使用对抗性鲁棒分类器分析 fundus 图像,标注出病变特征,如血管异常等。
- 对OCT图像执行同样的过程,标注出疾病相关的变化,如视网膜层次结构的改变。
-
使用扩散模型进行图像生成:
- 训练扩散模型,使其学会从一个模态(如fundus)到另一个模态(如OCT)的特征转换。
- 在训练扩散模型时,可以使用对抗性鲁棒分类器提供的梯度信息来指导图像生成过程。
- 这样,扩散模型不仅学会了从一种模态转换到另一种模态的特征,而且这些特征的表现会更加精确,更接近真实病变的表现。
-
跨模态对比分析:
- 生成的 OCT 图像与原始的 fundus 图像进行对比,验证病变特征是否准确转换。
- 对抗性鲁棒分类器可以再次用于验证生成的图像是否保持了与原始病变相同的分类信心度。
-
专家验证:
- 眼科专家参与评估AI生成的 OCT 图像的准确性,确保其临床可用性。
- 在这个过程中,对抗性鲁棒分类器的主要作用是提供关于病变特征的精确信息,帮助扩散模型理解在 fundus 图像上标注的病变特征应如何在 OCT 图像上呈现。
- 而扩散模型的作用是利用这些信息生成具有对应病变特征的 OCT 图像。
相关文章:

扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图
对抗性鲁棒分类器 扩散模型:为 正常的 fundus 和 OCT 图,生成更多病症图 解决问题创新点 效果调参技巧总结Fundus 转 OCT(只是猜想,不一定)1. 疾病特征模拟2. 数据增强3. 疾病进展模拟4. 跨模态学习 解决问题 论文&a…...

C++(6) 继承
文章目录 继承1. 继承1.1 什么是继承1.2 C 继承方式1.2.1 基本案例1.2.2 继承权限组合1.2.3 继承中构造函数的说法1.2.4 继承中析构函数的执行顺序1.2.5 继承中变量名称冲突问题1.2.6 继承中函数【重写】 继承 1. 继承 1.1 什么是继承 面向对象程序设计中最重要的一个概念是继…...

【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、Smart Tomcat插件二…...
解决Qt连接不上mysql数据库
问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 下载网盘中的三个文件(网盘链接在文章结尾):qsqlmysql.dll、qsqlmysqld.qll、libmysql.dll找到你安装Qt的目录ÿ…...

kubernetes-快速部署一套k8s集群
1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包 从github下载发行…...

Windows Server 安装 Docker
一、简介 Docker 不是一个通用容器工具,它依赖运行的 Linux 内核环境。Docker 实质上是在运行的 Linux 服务器上制造了一个隔离的文件环境,所以它执行的效率几乎等同于所部署的 Linux 主机服务器性能。因此,Docker 必须部署在 Linux 内核系统…...

智能分析网关V4智慧机房:视频AI智能安全监管方案
一、背景分析 随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直…...

一些反序列化总结
1 反序列化漏洞原理 如果反序列化的内容就是那串字符串,是用户可以控制的(即变量的值),且后台不正当的使用了PHP中的魔法函数,就会导致反序列化漏洞,可以执行任意命令。Java 序列化指 Java 对象转换为字节序…...
分披萨(100%用例)C卷(JavaPythonC++Node.jsC语言)
“吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并咐店员将披萨按放射状切成大小相同的偶数扇形小块。但是粗心服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从“吃货开始,轮流…...
SQL字符串截取函数【简笔记】
MySQL提供了多种字符串函数来处理和截取字符串。下面是一些常用的字符串截取函数及其使用示范: SUBSTRING(str, pos, len) str 是要截取的字符串。pos 是开始截取的位置。len 是截取的长度。 示例: SELECT SUBSTRING(Hello, World!, 8, 5); -- 结果: "World…...

会话技术复习笔记
一.登录校验的需求 什么是登录校验? 所谓登录校验,指的是我们在服务器端接收到浏览器发送过来的请求之后,首先我们要对请求进行校验。先要校验一下用户登录了没有,如果用户已经登录了,就直接执行对应的业务操作就可以…...

我用Rust开发Rocketmq name server
我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. Rocketmq-rust namesrv概述 经过一个多月的开发,终…...

【Deep Dive: Al Webinar】开源人工智能中赋能、透明性和可重复性三者之间的关系...
【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容,大致上分成了 3 个大类: 1. 人工智能的开放、风险与挑战(4 篇) 2. 人工智能的治理(总共 12 篇),其中分成了几个子类&…...

将Html页面转换为Wordpress页面
问题:我们经常会从html源码下载网站上获得我们想要的网站内容框架,以及部分诸如联系我们,About 等内页,但是在文章的发布上,则远不如Wordpress简便。而Wordpress尽管有各种模板,但修改又比较麻烦。解决方法…...
Next.js 学习笔记(七)——样式
样式 Next.js 支持不同的应用程序样式设计方法,包括: 全局 CSS:对于有传统 CSS 使用经验的人来说,使用简单且熟悉,但随着应用程序的增长,可能会导致 CSS 包过大,难以管理样式。CSS 模块&#…...

金线检测步骤
半导体行业,金线检测是必不可以少的一个检测项,除了焊点,die面,手指以外的必检项目. 重难点在于金线的提取,算法多种多样,找到适合才是关键,涉及到打光,图像处理,这里不做深入分析,软件和硬件配合好才能做的最好. 经典算法Block分析,结合图像检测. 高斯算法提取 边缘检测算法提…...

电池-电量监测基础知识
一、为何要进行电池电量监测 不知各位有没有想过为何现在手机电池和笔记本电脑电池不容易鼓包了?十年前还经常出现的电池鼓包最近像是消失了一样,其实是因为随着电量监测技术的发展,哪怕是最基本的电子设备也有电池侧和产品侧至少两级电量监测…...

西瓜书学习笔记——层次聚类(公式推导+举例应用)
文章目录 算法介绍实验分析 算法介绍 层次聚类是一种将数据集划分为层次结构的聚类方法。它主要有两种策略:自底向上和自顶向下。 其中AGNES算法是一种自底向上聚类算法,用于将数据集划分为层次结构的聚类。算法的基本思想是从每个数据点开始࿰…...

深度视觉目标跟踪进展综述-论文笔记
中科大学报上的一篇综述,总结得很详细,整理了相关笔记。 1 引言 目标跟踪旨在基于初始帧中指定的感兴趣目标( 一般用矩形框表示) ,在后续帧中对该目标进行持续的定位。 基于深度学习的跟踪算法,采用的框架包括相关滤波器、分类…...

【数据结构:顺序表】
文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...