在医疗影像领域,生成式模型可以做些什么?用什么平台快速实现?使用MONAI框架进行生成式模型开发

news2024/11/23 15:16:16

生成模型具有巨大的潜力,不仅有助于通过合成数据集安全地共享医疗数据,还可以执行一系列逆向应用,如异常检测、图像到图像翻译、去噪和MRI重建。然而,由于这些模型的复杂性,它们的实现和再现性可能很困难。

对于我这种代码能力薄弱的研究者,需要有医学数据相关的现成代码借鉴参考,才能做实验。这时候,必须要大赞一下MONAI平台啦。提供了各种相关的模型和demo。

MONAI提供了一种通用的方式实现了这些模型,表明它们的结果可以扩展到2D或3D场景,包括具有不同模态(如CT、MRI和X射线数据)和不同解剖区域的医学图像。


以下是MONAI生成模型论文(arXiv:2307.15208)里面的内容,学习它可以了解MONAI在生成模型方面提供了些什么功能。以及在医学图像上,生成模型可以做些什么事!

生成式人工智能(Generative AI)是一系列旨在学习数据集的潜在模式和结构,并生成可能属于原始数据集的新数据点的人工智能技术和模型。尽管高维成像数据的数据分布非常复杂,但如今我们有各种强大的深度生成模型,例如扩散模型自回归 transformer生成对抗网络(GANs)和变分自编码器(VAEs),它们已经证明可以有效地学习和表示这些错综复杂的数据分布。

生成合成数据的能力一直是医学成像中生成模型的主要目标之一,因为它提供了在保护患者隐私的同时分享数据的可行解决方案。数据提供者可以在其自己的数据上训练模型,并以保护隐私的方式分享结果,而不是直接分享患者数据。最近的医学成像研究表明了生成高质量医学图像的前景能力。此外,使用包括合成数据的数据集训练进行下游任务的机器学习模型已经取得了与仅使用真实数据训练的模型相似甚至更优越的性能

除了生成合成数据之外,生成模型在医学成像中还有广泛的其他应用。其中之一是异常检测,生成模型可用于识别医学图像中的异常。这一任务对于诊断疾病和检测潜在健康风险尤为有用。另一个应用是图像到图像的翻译(风格迁移),生成模型可以被训练用于将一种模态的图像转换为另一种。例如,这些模型可以用于将CT扫描转换为MRI扫描,将标签映射转换为MRI图像,或将MRI扫描转换为异常图。此外,生成模型还可以用于图像增强,它们可以学习提高医学图像的质量而不丢失重要的临床信息。这包括图像去噪去除图像伪影增强图像分辨率等。最后,生成模型还可以用于图像重建,包括MRI和CT重建,它们可以从欠采样或噪声数据中重建高质量图像。这对医学成像具有重要意义,能够加快人体成像速度。总的来说,生成模型在医学成像中的潜在应用非常广泛,它们的使用可能会继续增长。

然而,这一领域伴随着挑战,包括各种质量评估指标的使用以及模型的复杂性。这些问题可能会阻碍模型的进展和实施。但是,MONAI Generative Models开源平台可以帮助我们更好的进行生成模型的开发和部署。

为了展示MONAI平台的强大功能,我们讨论了五个实验,在这些实验中我们在医学成像环境中使用了不同的模态(CT、MRI和X射线数据),涵盖了诸如异常检测、图像翻译和超分辨率等主题。我们的平台通过应用于不同的模态和身体部位,在2D和3D场景中展现了其多功能性,为推动医学成像提供了创新的途径。

使用MONAI进行异常检测

我们的平台促进了生成模型在医学影像领域的多种下游任务中的应用。在这里,我们展示了它们在对3D成像数据进行异常检测中的应用。我们采用了使用VQ-VAE + Transformers获取图像似然度的技术,正如[15,39]中所描述的那样。模型在公开可用的3D医学十项全能数据集上进行训练和评估,其中BRATs数据被选为内部分布数据集,而所有其他类别被视为异常分布数据,所有图像都被调整为128x128x128。模型的参数设置与[15]中描述的相同。平台的VQVAETransformerInferer类提供了便利的方法,用于从潜在模型中获取似然度。十项全能数据集中各类别的异常检测的AUC分数如表中所示。

使用MONAI进行图像转换

正如之前提到的,我们旨在支持的另一种应用类型是图像到图像(image-to-image)的任务。这个实验将展示ControlNets在图像翻译任务中的表现。ControlNets是一种神经网络,它显著增强了扩散模型的可控性和定制性。它们类似于轻量级的适配器,可以控制预训练网络的行为。在这个实验中,我们使用在英国生物库2D数据集上训练的模型(实验I)来训练一个ControlNet,能够将2D FLAIR切片转换成扩散模型生成的T1加权图像。为了评估模型的性能,我们使用了合成2D图像和真实T1加权图像之间的平均绝对误差、峰值信噪比和MS-SSIM。我们的模型能够在条件FLAIR图像上以高保真度生成T1加权图像,获得了PSNR=26.2458 ± 1.0092,MAE=0.02632 ± 0.0036和MS-SSIM=0.9526 ± 0.0111的性能。

使用MONAI生成超分辨率图像

生成模型已经在广泛的任务中证明了其高效性,包括超分辨率。这个任务不仅有助于提高低分辨率图像的质量,还可以通过级联模型实现图像生成。级联方法涉及训练一个生成模型来生成低分辨率图像,然后是一个专注于实现期望高分辨率的次要模型。这种方法对于3D模型特别有优势,可以用更小的内存占用进行训练。
低分辨率到高分辨率

在我们的研究中,我们探索了使用Stable Diffusion 2.0 Upscaler方法的生成模型在超分辨率方面的应用。利用英国生物库的3D数据,我们最初在分辨率为2 mm³(80 × 112 × 80体素)的数据集版本上训练了一个潜在扩散模型(Latent Diffusion Model, LDM)。为了进一步增强结果,我们对32 × 32 × 32体素的数据块训练了另一个LDM。

为了整合超分辨率技术,我们将低分辨率图像连接作为扩散模型的输入,并添加了高斯噪声。扩散模型基于噪声水平进行条件设定,从而实现更好的性能。通过迭代地将超分辨率技术应用于生成图像的图块,我们在图像质量和分辨率方面取得了显著的改进。

我们的研究展示了生成模型在超分辨率任务中的有效性,特别是对于3D模型。低分辨率模型经过对下采样的测试集进行评估,得到了FID=0.0009、多样性的MS-SSIM=0.7818以及自编码器重构的MS-SSIM=0.9970。我们使用conditioned upscaler model模型生成了高分辨率的合成图像,噪声水平为1。将它们与高分辨率测试集进行比较,我们观察到FID为0.0024,MS-SSIM为0.9141,这种级联方法在保持更高保真度和类似多样性方面的表现。这一改进得益于本实验网络中参数数量的增加,同时使用相同的计算资源对其进行训练。另一方面,图像生成需要更多时间,使用单阶段方法生成一张图像大约需要22秒,而使用级联方法则需要约13分钟(使用NVIDIA TITAN RTX和200个时间步的DDIMScheduler)。

这些代码可以去 monai 案例代码里面查看学习。

我也是刚学习GAN,diffusion这块。这些demo以后有时间跑了再跟大家分享。其实我也不是第一次接触GAN,去年做了一个异常检测项目(无监督脑肿瘤分割,已发表在CIBM),就用过GAN了,但是打那之后,我就发4再也不碰GAN了(太!难!训!),但是今年又看了一些cycleGAN,starGAN的论文,又心动了💓。

写这篇文章的目的很单纯,看看哪些大佬在做这块,带带弟弟吧。建个裙裙👗专门讨论生成模型,先加V再拉你哦。

文章持续更新,可以关注微公【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持以实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

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

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

相关文章

图像分割项目中损失函数的选择

文章目录 前言场景:实际项目中,通常会有一个常见的问题:样本不均衡一、focal loss思考 二、Dice loss三、二分类未完待续 前言 在图像分割领域,最基础、最常见的损失当然是交叉熵损失 —— Cross entropy。随着不断的研究&#x…

一个java文件的JVM之旅

准备 我是小C同学编写得一个java文件,如何实现我的功能呢?需要去JVM(Java Virtual Machine)这个地方旅行。 变身 我高高兴兴的来到JVM,想要开始JVM之旅,它确说:“现在的我还不能进去,需要做一次转换&#x…

OceanBase 如何通过日志观测冻结转储流程?

本文旨在通过日志解析 OceanBase 的冻结转储流程,以其冻结检查线程为切入点,以租户(1002)的线程名为例。 作者:陈慧明,爱可生测试工程师,主要参与 DMP 和 DBLE 自动化测试项目。 爱可生开源社区…

2258. 逃离火灾 : 详解如何从「二分」到「分类讨论」(图解过程)

题目描述 这是 LeetCode 上的 「2258. 逃离火灾」 ,难度为 「困难」。 Tag : 「多源 BFS」、「二分」、「预处理」 给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid,它表示一个网格图。 每个格子为下面 个值之一: 0 表示草地。 1 表…

【狂神说Java】SpringSecurity+shiro

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :【狂神说Java】 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台&#xff0c…

ShuffleNet系列 网络结构

文章目录 ShuffleNet V1Channel Shuffle:通道打散SuffleNet UnitModel Architecture实验结果 ShuffleNet V2Guideline 1Guideline 2Guideline 3Guideline 4模型结构代码 论文:ShuffleNet: ShuffleNet: An Extremely Efficient Convolutional Neural Netw…

2023年的低代码:数字化、人工智能、趋势及未来展望

本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 正如许多专家预测的那样,低代码平台在2023年将展现更加强劲的势头。越来越多的企业正在纷纷转向低代…

ArcGIS 气象风场等示例 数据制作、服务发布及前端加载

1. 原始数据为多维数据 以nc数据为例。 首先在pro中需要以多维数据的方式去添加多维数据,这里的数据包含uv方向: 加载进pro的效果: 这里注意 数据属性需要为矢量uv: 如果要发布为服务,需要导出存储为tif格式&…

spring 中 @Validated/@Valid

超级好的链接 添加链接描述

Vue实现面经基础版案例(路由+组件缓存)

一、面经基础版-案例效果分析 1.面经效果演示 2.功能分析 通过演示效果发现,主要的功能页面有两个,一个是列表页,一个是详情页,并且在列表页点击时可以跳转到详情页底部导航可以来回切换,并且切换时,只有…

AI:69-基于深度学习的音乐推荐

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

JavaScript脚本操作CSS

脚本化CSS就是使用JavaScript脚本操作CSS,配合HTML5、Ajax、jQuery等技术,可以设计出细腻、逼真的页面特效和交互行为,提升用户体验,如网页对象的显示/隐藏、定位、变形、运动等动态样式。 1、CSS脚本化基础 CSS样式有两种形式&…

OpenCV 在ImShow窗体上选择感兴趣的区域

窗体上选择感兴趣ROI区域 在计算机视觉处理中, 通常是针对图像中的一个特定区域进行处理, 有时候这个特定区域需要人来选择, OpenCV 也提供了窗口选择ROI机制. 窗体支持两种选择ROI区域的方法, 一个是单选, 一个是多选, 操作方法如下: 单选: 通过鼠标在屏幕上选择区域, 然后通过…

【Linux系统编程十六】:(基础IO3)--用户级缓冲区

【Linux系统编程十六】:基础IO3--用户级缓冲区 一.用户级缓冲区二.缓冲区刷新策略1.验证: 三.缓冲区意义 一.用户级缓冲区 我们首先理解上面的代码,分别使用printf和fprintf,fwrite往1号文件描述符里输出,也就是往显示…

论文阅读——InternImage(cvpr2023)

arxiv:https://arxiv.org/abs/2211.05778 github:https://github.com/OpenGVLab/InternImage 一、介绍 大部分大模型都是基于transformer的,本文是一个基于CNN的视觉基础模型。使用可变性卷积deformable convolution作为核心操作&…

docker复制镜像文件

一、复制镜像 #1. 查找本机已有的镜像docker images |grep xxxx#2. 将镜像复制出来指向到xxxx.tar的文件中 docker save 343cca04e31d > xxxx.tareg: 二、加载镜像 直接将拷贝好的镜像包直接加载即可 docker load < myimage.tar

【C++】一文简练总结【多态】及其底层原理&具体应用(21)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.多态的概念二.多态的实现1&#xff…

Codeforces Round 908 (Div. 2)视频详解

Educational Codeforces Round 157 &#xff08;A--D&#xff09;视频详解 视频链接A题代码B题代码C题代码D题代码 视频链接 Codeforces Round 908 (Div. 2)视频详解 A题代码 #include<bits/stdc.h> #define endl \n #define deb(x) cout << #x << "…

mac M2 anaconda 解决装不了python3.7

今天发现一个很奇怪的问题 但是我一换成 conda create -n DCA python3.8.12就是成功的 这个就很奇怪, 解决如下 https://towardsdatascience.com/how-to-manage-conda-environments-on-an-apple-silicon-m1-mac-1e29cb3bad12 998 conda search pythonconda search python …