13个医学图像 AI 入门项目- 都跑完你就超神了!

本文介绍 MONAI 框架提供的 医学图像方面的教程,基本包括医学图像处理AI方向的各个领域,并且每个教程都是可以跑的通的!可以作为入门的第一项目。

主要内容如下

1 二维分类

  • 简介:这个笔记本展示了如何轻松地将 MONAI 功能集成到现有的 PyTorch 程序中。它基于 MedNIST 数据集,非常适合初学者作为教程。
  • 数据:MedNIST
    代码中有下载地址

类似于手写数字的,医学图像小图(64*64),一共有6个类别

  • 模型: DenseNet121
  • 结果

    训练4个epoch,auc=0.99
  • 代码地址

2 二维分割

  • 简介: 基于 UNet 和合成数据集的 2D 分割训练和评估示例

    一共有四个文件,后缀带’array’表示数据集使用数组传送给dataloader
    后缀带’dict’表示数据集是以字典形式传送
    这里 train 和 test 是分开的

选择一种你喜欢的方式就可。

  • 数据:代码中合成的数据

    这里展示的就是把图像和标签以字典形式传送
  • 模型: UNet
  • 结果:暂无,合成数据结果没有意义,只是展示如何做分割
  • 代码地址

3 三维分类

同二维分类类似,只不过把模型都改成了3D,并提供了两种代码版本。

  • ignite 版本

使用 pytorch 高级封装库,代码看起来更简洁,但学习成本相对较高

  • pytorch 版本
  • files: 同二维分类,提供了4个python文件,按自己习惯选择。
  • model: DenseNet121(spatial_dims=3)

spatial_dims调整模型是二维还是三维,修改参数即可切换,非常方便。

4 三维分割

三维分割是医学图像研究最多的领域,因此,MONAI 官方提供了非常多的示例。

4.1 ignite 版本

4.2 torch 版本

以上两个示例用的是合成数据,旨在展示如何使用ignite或者pytorch编写三维分割程序

4.3 BRATS 脑肿瘤多标签三维分割

这是一个真实案例,展示了如何构建基于 MSD 脑肿瘤数据集的多标签分割任务的训练工作流。

4.4 CT Spleen 脾脏分割

脾脏分割也提供了两个版本,一个 pytorch-lighting版本(高级封装版),一个标准pytorch版本。

4.5 COVID 19-20 挑战赛

这是MICCAI CT COVID 疾病分割挑战赛 MONAI版本,提供了一个基线模型。

4.6 btcv 使用transformer分割腹部多器官

本笔记本演示了如何使用 BTCV 挑战数据集构建 UNETR 多器官分割任务的训练工作流程。

  • model: UNETR ()
  • dataset: BTCV challenge dataset

5 二维配准

该笔记本显示了一个快速演示,用于基于学习的 64 x 64 X射线手的仿射配准。

  • dataset: MedNIST
  • model: GlobalNet

    因没有做过配准,不过多介绍。

6 三维配准

本教程展示了如何使用 MONAI 配准单个患者在不同时间点采集的肺 CT 数据。

7 Autoencoder 自编码器

本教程使用 MedNIST 手部 CT 扫描数据集来演示 MONAI 的自动编码器类。

可用于 异常检测,去噪等实验

  • model: AutoEncoder
  • dataset: MedNIST

8 GAN 生成对抗网络

本笔记本说明了使用 MONAI 训练网络以从随机输入张量生成图像。一个简单的 GAN 被用来处理单独的生成器和鉴别器网络。

当然,官方不止提供以上教程,更多教程详见 MONAI github 官网教程

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

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

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

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

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于深度学习医学图像处理分析平台源码+项目说明(AI全自动疾病诊断).zip # AI_Medical_System AI_Medical_System(idea分享,大创/基金项目AI全自动疾病诊断流程的一些构思) #-----------------------------------------------# update on 06/08/2022 by GW.kayak 上大招就使用LSTM-CLIP时序经网络结构,可尝试引入深度强化学习!(优点:潜力大,大数据下潜力效果优于机器学习;缺点:模型大,硬件要求高,结构复杂,不易驾驭,需要数据量很大,数据小容易过拟合);原理流程图DEMO如下: ![Imgur](https://github.com/kay-cottage/AI_Medical_System/blob/main/LSTM1.png) * 基于LSTM-CLIP的多模态自主疾病诊疗方法,包含。包括电子病历信息预处理模块、transformer文本编码器模块、图像编码器模块、图像特征提取网络模块、LSTM循环经网络模块、以及基于强化学习的交互模块。其中:电子病历信息预处理模块:用于采集病人文本病历以及影像学病历信息并对他们做预处理,使其转换为可以供经网络输入的相关数据形式。 * 编码器模块:分为图像编码器(Images encoder)与文本编码器(Text encoder)模块,图像编码器将输入图像编码成一个包含语义信息的高维向量,同理文本编码器将病人的病历文本信息进行特征提取并将其编码成包含病历语义信息的高维向量。 * 特征提取网络模块:该模块为额外附加的模块,可以根据实际应用中不同的需求插入到决策网络中。 * LSTM循环经网络模块:该模块是整个决策网络的主干,也是整个系统中与强化学习环境相交互的agent。模块将前面编码器结构所提取的高维特征做时序建模并做出相应的诊疗动作。 * 基于强化学习的交互模块:该模块基于价值网络的DDQN算法,提供整个系统强化学习环境,模块接收来自病人反馈的评分并根据这些反馈生成相应的奖赏指导智能体agent决策网络做出相应诊疗行为action。 #-----------------------------------------------# update on 05/08/2022 by GW.kayak DEMO:baseline主干网络流程图如下:(优点:模型小,硬件较低,需要数据量不大,数据小效果好,容易出结果;缺点:天花板低,大数据时效果比不少深度学习![Imgur](https://github.com/kay-cottage/AI_Medical_System/blob/main/1%20(2).png) #-----------------------------------------------# update on 05/04/2022 by GW.kayak 类DNS域名解析服务的疾病流程分级解析流程(初筛疾病种类进行分科->对应专科的疾病初筛网络(开出检查项目->临床决策网络->临床后端评价网络) 初筛网络,决策网络,时序网络,强化学习网络 多个多模态Clip网络作分类器进程集成,深度强化学习state reward的现实交互模式从临床中学习(clip Finetune可以见我另一主页) LSTM时序网络联系前后网络结果最后做出
### UNet经网络训练医学影像数据集 #### 准备工作 为了成功使用UNet模型来处理医学影像数据集,准备阶段至关重要。这包括获取合适的医学影像数据集以及设置好开发环境。对于医学影像识别与分析的任务,可以考虑使用`masked montgomery county x-ray set`肺部医学影像数据集[^2]。 #### 数据预处理 在加载选定的数据集之后,需对其进行必要的预处理操作以适应UNet架构的要求。这些步骤通常涉及图像尺寸调整、标准化等,确保输入到模型中的每张图片都具有相同的大小和像素分布特性。 #### 构建UNet模型 构建UNet模型是整个流程的核心部分之一。该模型由编码器路径(下采样层)和解码器路径(上采样层)组成,在两者之间通过跳跃连接传递特征图谱信息。下面是一个简单的TensorFlow实现案例: ```python import tensorflow as tf from tensorflow.keras import layers, models def get_unet(input_size=(128, 128, 1)): inputs = layers.Input(shape=input_size) conv1 = layers.Conv2D(64, 3, activation='relu', padding='same')(inputs) pool1 = layers.MaxPooling2D(pool_size=(2, 2))(conv1) conv2 = layers.Conv2D(128, 3, activation='relu', padding='same')(pool1) pool2 = layers.MaxPooling2D(pool_size=(2, 2))(conv2) conv3 = layers.Conv2D(256, 3, activation='relu', padding='same')(pool2) up4 = layers.UpSampling2D(size=(2, 2))(conv3) merge4 = layers.concatenate([conv2, up4], axis=3) conv4 = layers.Conv2D(128, 3, activation='relu', padding='same')(merge4) up5 = layers.UpSampling2D(size=(2, 2))(conv4) merge5 = layers.concatenate([conv1, up5], axis=3) conv5 = layers.Conv2D(64, 3, activation='relu', padding='same')(merge5) outputs = layers.Conv2D(1, 1, activation='sigmoid')(conv5) model = models.Model(inputs=[inputs], outputs=[outputs]) return model ``` 此代码片段定义了一个基础版本的UNet结构,适用于多种类型的二维灰度级医学图像分割任务[^3]。 #### 训练过程 完成上述准备工作后即可进入实际训练环节。这里需要注意的是要选择恰当的损失函数(如交叉熵)、优化算法(Adam较为常用),并合理设定批量大小(batch size)及迭代次数(epoch),以便获得更好的收敛效果。 #### 测试评估 最后一步是对已训练好的模型进行测试验证其性能表现。可以通过计算Dice系数或其他评价指标衡量预测结果的质量,并据此做出相应改进措施直至满足应用需求为止。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tina姐

我就看看有没有会打赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值