RegGAN:打破医学图像转换困境 --- 数据未对齐、噪声干扰和未配对图像

news2024/10/2 20:29:18

RegGAN:打破医学图像转换困境

    • 医学图像转换困境
    • 网络结构
    • 效果
    • 总结

 


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

代码:https://github.com/Kid-Liet/Reg-GAN.git

 

医学图像转换困境

一、传统的Pix2Pix方法要求输入图像必须是精确成对且对齐的。

  • 每个输入图像X都需要一个精确对齐的目标图像Y来训练生成器。
  • Pix2Pix 需要像素级对齐的成对图像,但在医学图像中,由于呼吸运动、解剖结构的变化、不同时间拍摄等因素,这种对齐可能难以实现。
  • 如果输入的成对图像未对齐或存在其他形式的噪声,Pix2Pix 的性能可能会受到影响,因为不具备处理这些噪声的内置机制。

 
二、非成对的 Cycle-consistency 算法(如CycleGAN):

  • 这种模式不需要输入的成对图像完全对齐,可以处理那些在不同时间、不同设备上拍摄的图像。
  • 由于不要求输入和目标图像成对对齐,可能会产生多种解决方案
  • 这意味着一个MRI图像可能被转换成多个在视觉上看起来合理,但在医学特征上不一致的PET图像。
  • 不一致性可能导致误诊或错误的治疗计划,因为医生依赖于这些图像来确定病变的精确位置和代谢活动的强度。

 
三、RegGAN 允许输入的图像对,是对齐或者未对齐的。

允许非成对

  • 比如,我们没有每个 MRI 图像的确切 PET 对应图像,但需要从 MRI 推断 PET 图像,RegGAN 也能处理这种未配对的数据。
  • TA 能学习不同成像模式之间的关系,即使没有精确的一一对应关系。

能够适应,从无噪声到大规模噪声的各种情况

  • 通过在生成器后面加入 配准网络R 来纠正这种未对齐,使得即便是在噪声影响下也能进行有效的图像到图像的转换。

  • 图像会由于各种原因产生噪声,如眼球微小的运动而出现模糊、头部微小的移动导致未对齐、扫描器差异、扫描参数的变化等

不仅对数据集的要求不严格,还能满足医学图像分析的高精度要求。

无论数据集是否对齐,RegGAN 都比 Pix2Pix、Cycle-consistency 模式好。

关键方法:“损失修正”和“噪声模型转换”

  • 这是 RegGAN 处理带噪声数据的核心方法,它将噪声视为变形误差并在网络架构中进行显式建模,通过配准网络来纠正和适应这些噪声。
  • 配准网络是RegGAN架构中的一个关键部分,专门用于识别和纠正输入图像之间的空间错位。
  • 网络目标是确定如何调整一个图像,使其与另一个图像空间对齐。
  • 输入图像在开始时是未对齐的,网络的输出是矫正过的,与目标图像对齐的版本。

比如,我们有一组CT图像和相应的MRI图像,但这些图像由于患者在不同时间被不同设备扫描,因此它们之间存在未对齐的问题。

在 RegGAN 中,我们不需要事先手动对这些图像进行对齐。

相反,我们将这些未对齐的图像对输入到RegGAN。

配准网络将学习必要的空间变换,自动调整生成的图像以匹配目标图像,从而克服了未对齐的问题。

这样,无论原始数据的对齐质量如何,RegGAN最终都能产生高质量的、空间上对齐的输出图像。

 

网络结构

上图是,三种不同模式的生成对抗网络(GANs)用于图像到图像的转换:

(a) Pix2Pix

  • G:生成器,将输入图像 X 转换为目标图像 G(X)。
  • Dy:判别器,用来判断生成的图像 G(X) 是否足够接近真实目标图像 Y。
  • L1 loss:表示生成的图像 G(X) 和真实图像 Y 之间的像素级损失,用于训练生成器 G 使其输出与真实图像尽可能相似。
  • Adv loss:对抗损失,用于训练判别器 Dy 以更好地区分生成的图像和真实图像。

(b) Cycle-consistency (如CycleGAN)

  • G 和 F:互为反向的两个生成器,G 负责从 X 到 Y 的转换,而 F 负责从 Y 到 X 的反向转换。
  • Dx 和 Dy:两个判别器,分别针对两个不同的域(X 和 Y)。
  • Cycle-consistency loss:循环一致性损失,确保图像在经过两个相反方向的转换后能够回到原始状态,以此来训练 G 和 F。
  • Adv loss:对抗损失,用于训练判别器 Dx 和 Dy。

© RegGAN

  • G:生成器,将输入图像 X 转换为目标图像 G(X)。
  • Dy:判别器,判断生成的图像 G(X) 是否足够接近真实目标图像 Y。
  • R:配准网络,用于调整生成器 G 的输出,以更好地适应未对齐噪声的分布。
  • Correction loss:修正损失,用于训练配准网络 R,帮助生成器适应目标图像的噪声分布。
  • Adv loss:对抗损失,用于训练判别器 Dy。

 

效果


三种不同图像转换模型 CycleGAN©、Pix2Pix和RegGAN,在不同噪声水平下的性能。

性能指标包括,归一化平均绝对误差(NMAE)、峰值信噪比(PSNR)和结构相似性指数(SSIM)。

  • 箭头向下,值越小越好,最好值用黑体加粗
  • 箭头向上,值越大越好,最好值用黑体加粗

表中列出了七种不同的噪声设置,从Noise.0(无噪声)到Noise.5(最高噪声水平),以及一个非仿射噪声设置Noise.NA。

从表中看出:

  • 在无噪声的条件下(Noise.0),所有模型都显示出相对较好的性能,但是随着噪声水平的增加,CycleGAN©和Pix2Pix的性能逐渐下降。
  • 在所有噪声条件下,RegGAN 的性能都保持相对稳定,并且在多数情况下优于其他两种方法。
  • 对于非仿射噪声(Noise.NA),RegGAN 的性能也表现出鲁棒性,这表明 RegGAN 可以有效处理各种类型的变形误差。

在医学图像转换上,非常好用。

  • 对于成对且对齐的条件下,RegGAN 的性能至少与 Pix2Pix 相当,都优于 CycleGAN©。
  • 对于成对但未对齐的条件下,RegGAN 的性能优于 CycleGAN©,CycleGAN© 的性能又优于 Pix2Pix。
  • 对于未配对的条件下,RegGAN 的性能同样优于 CycleGAN©,而CycleGAN© 的性能优于 Pix2Pix。

 


总结

具体问题: 医学图像转换中的数据未对齐、噪声干扰和未配对图像。

解法名字: RegGAN

RegGAN = 处理未对齐数据的配准网络 + 适应噪声分布的损失修正 + 处理未配对数据的鲁棒性。

通过将配准网络集成到生成对抗网络框架中,并结合损失修正,RegGAN能够有效解决医学图像转换中的未对齐、带噪声和未配对数据问题。

这使得RegGAN在各种条件下都能维持稳定的高性能,这一点是传统 Pix2Pix 和 CycleGAN© 所无法做到的。

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

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

相关文章

day32_CSS

今日内容 0 复习昨日 1 css属性 2 盒子模型 【重点】 3 css扩展属性 4 Bootstrap【重点】 0 复习昨日 1 表格标签 table表格里面有tr , (行)行内有单元格,td行合并,rowspan列合并,colspan 2 写出input标签type属性的值 文本框 text 密码框 password 单选框 radio 复选框 checkb…

Sublime Text 3配置 Java 开发环境

《开发工具系列》 《开发语言-Java》 Sublime Text 3配置 Java 开发环境 一、引言二、主要内容1. 初识 Sublime Text 32. 初识 Java3. 接入 Java3.1 JDK 下载3.2 安装和使用 java3.3 环境变量配置 4. 配置 Java 开发环境5. 编写 Java 代码6. 编译和运行 Java 代码7. 乱码问题 三…

PuLP库-多数线性规划问题

投标价格重预算 背景 甲方需要采购一批物资,采购数量为甲方给定的预计采购数量,并限制了采购总价。例甲方采购预算清单如下,采购总预算为不超过 3175 元 采购内容采购数量投标单价投标报价合计电脑10空调20洗衣机8桌子7打印机35合计 注&a…

Shell脚本④循环语句for、while、until

目录 一.for 1. 九九乘法表 2.求1到10奇数和 3.累计加到100 (1)方法一 (2)方法2 二.while 1.猜价格小游戏 2.累加到100的方法三 三.until循环 1.累加到100方法四 四.嵌套循环 五.循环语句中break、exit和continue 1…

网络防御——NET实验

一、实验拓扑 二、实验要求 1、生产区在工作时间(9:00---18:00)内可以访问服务区,仅可以访问http服务器; 2、办公区全天可以访问服务器区,其中,10.0.2.20可以访问FTP服务器和HTTP服…

Google浏览器Provisional headers are shown. Disable cache to see full headers.

Google浏览器Provisional headers are shown. Disable cache to see full headers. 问题 解决方法 勾选禁用缓存,刷新 成功

制造领域 物料清单(BOM)与零件明细表的区别

有许多人分不清物料清单(BOM)与零件明细表的区别,其实它们在企业的生产管理软件中起着不同的作用,各有各的特色,但是却有不尽相同。接下来我们就来区分一下吧 物料清单(BOM),是详细记录一个项目所用到的所有下阶材料及相关属性,亦即母件与所有子件的从属…

代码随想录刷题笔记 DAY15 | 翻转二叉树 No.226 | 对称二叉树 No.101

Day 15 01. 翻转二叉树(No. 226) 题目链接 代码随想录题解 1.1 题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9…

代码随想录 Leetcode429. N 叉树的层序遍历

题目&#xff1a; 代码(首刷自解 2024年1月24日&#xff09;&#xff1a; /* // Definition for a Node. class Node { public:int val;vector<Node*> children;Node() {}Node(int _val) {val _val;}Node(int _val, vector<Node*> _children) {val _val;childre…

在云服务器上通过FileZilla配置FTP(通过FileZilla配置FTP升级版)

有兴趣的读者可以看看博主的博客&#xff0c;有很全面的教程 阿里云之申请云服务器–配置jdk,tomcat,安全策略–能够在他人电脑上显示本电脑的Tomcat 通过FileZilla配置FTP 修改我们的安全组&#xff0c;将21&#xff0c;和50000-50010端口添加进去 加入实例即可&#xff0c;剩…

怎样使用CSS技术美化网页?(知识点2)

知识引入 引入CSS样式表 CSS提供了行内式、内嵌式、外链式、导入式四种引入方式&#xff0c;具体介绍如下。 行内式 行内式也被称为内联样式&#xff0c;是通过标签的style属性来设置标签的样式&#xff0c;其基本语法格式如下。 <标签名 style“属性&#xff1a;属性值…

Denoising diffusion implicit models 阅读笔记2

Denoising diffusion probabilistic models (DDPMs)从马尔科夫链中采样生成样本&#xff0c;需要迭代多次&#xff0c;速度较慢。Denoising diffusion implicit models (DDIMs)的提出是为了在复用DDPM训练的网络的前提下&#xff0c;加速采样过程。 加速采样的基本思路是&#…

Shell脚本⑤函数与数组

一.函数 封装的可重复利用的具有特定功能的代码 格式&#xff1a; 方法一&#xff1a; [function] 函数名 (){ 命令序列 [return x] #使用return或者exit可以显式的结束函数 } 方法二&#xff1a; 函数名(){ 命令序列 } 1.函数的调用方法 &#xff08;1&…

【Flink】记录Flink 任务单独设置配置文件而不使用集群默认配置的一次实践

前言 我们的大数据环境是 CDP 环境。该环境已经默认添加了Flink on Yarn 的客户端配置。 我们的 Flink 任务类型是 Flink on Yarn 的任务。 默认的配置文件是在 /etc/flink/conf 目录下。如今我们的需求是个别任务提供的配置仅用于配置执行参数&#xff0c;例如影响作业的配置…

python 基础知识点(蓝桥杯python科目个人复习计划24)

今日复习内容&#xff1a;基础算法中的模拟 1.模拟题 &#xff08;1&#xff09;定义&#xff1a;直接按照题目含义模拟即可&#xff0c;一般不涉及算法。 &#xff08;2&#xff09;注意&#xff1a;读懂题&#xff1a;理清楚题目流程&#xff1b; 代码和步骤一一对应&…

爷爷问:IPv6为什么还没有完全替换掉IPv4 ?区别是什么?

首先IPV6之所以提出&#xff0c;很大一部分原因是IPV4的地址不够用了&#xff0c;再出现新设备就没得地址分配&#xff0c;所以才会提出新的IP版本以满足分配需求。在对IPV6进行一个基本了解后来看看两者的区别。 IPV6基本了解 1.层次化的地址结构 地址长度为128bit&#xf…

鸿蒙ArkUI开发-实现增删Tab页签

场景介绍 部分应用在使用过程中需要自定义添加或删除标签的场景&#xff0c;比如在浏览器中的顶部标签栏中需要新打开或关闭网页页签&#xff0c;而这种场景与Tabs组件效果类似&#xff0c;但Tabs组件不提供增加或删除页签的功能&#xff0c;不能自由的增加删除页签&#xff0…

Java编程的利器:Pair和Triple无缝解决多值返回问题,助力编写高效代码

在实际编码中&#xff0c;经常会遇到一个方法需要返回多个值的情况&#xff0c;你编写一个方法&#xff0c;需要同时返回某个操作的结果和一些相关的附加信息。使用传统的方式&#xff0c;你可能需要创建一个包含这些信息的自定义类或者使用集合&#xff08;如 Map&#xff09;…

系统引导程序 Boot Loader——学习笔记

基于嵌入式Linux 的完整系统软件由三个部分组成&#xff1a;系统引导程序、Linux 操作系统内核和文件系统。 系统引导程序 Boot Loader 是系统加电后运行的第一段软件代码&#xff0c;它的作用是加载操作系统或者其他程序到内存中&#xff0c;并将控制权交给它们。 Boot Load…

代码随想录算法训练营第16天 | 104.二叉树的最大深度, 111.二叉树的最小深度 ,222.完全二叉树的节点个数

二叉树理论基础&#xff1a; https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 104.二叉树的最大深度 题目链接&#xff1a;https://leetcode.cn/problems/maximum-depth-…