文章持续更新,可以关注微公【医学图像人工智能实战营】获取最新动态。人手有限,文中涉及的链接前往微公对应文章查看。关注Tina姐,一起学习进步~
在3D Slicer中使用 Monai Bundle 和 Model Zoo 标注医学影像数据-分割肾子结构:皮质髓质和集合系统
导读
本系列涵盖从 3D Slicer 医学图像查看器的基础使用到高级自动分割扩展程序的内容(从入门到高阶!),具体包括软件安装、基础使用教程,自动分割扩展(totalsegmentator, monai label)快速标注数据。
在本系列第三部分中,我们在工作站上安装了 MONAILabel 服务端和 MONAILabel 3D Slicer 客户端。在第四部分内容中,我们从一个简单的腹部CT脾脏分割案例开始,介绍了monai label使用的一些基础用法。在第五部分中,使用radiology app进行全脊柱的分割,并且详细介绍了radiology app所有用法。在第六部分中首次使用monai bundle 和model zoo里面的分割模型在MRI图像上分割全脑133个结构…
本节重点:在这一节中,我们展示了带有bundle应用程序的MONAI Label模型,用于CT肾子结构分割。
该系列之前的内容如下:
【添加链接】
Monai Bundle 和 Model Zoo简单介绍
MONAI Model Zoo
提供了一系列由社区开发的医学影像模型,采用 Monai Bundle
格式。Monai Bundle 允许您轻松获取任何来自 MONAI Model Zoo 的模型并将其导入 MONAILabel。
Model Zoo提供的模型包括MRI脑肿瘤分割,CT肺结节检测,病理细胞核分割分类,CT胰腺分割,MRI前列腺分割,CT肾脏分割,CT脾脏分割,MRI脑切片生成等20几个模型。后面会用单独的篇幅分别介绍这些预训练模型的使用。
MONAI Bundle 是一种基于规范和文件结构的方式,用于分发经过训练的 MONAI 模型以及相关元数据、代码、文档和其他资源。这些旨在让您更轻松地以某种格式分发模型,该格式说明了模型的用途、如何使用它、如何重现您用它完成的科学研究,并将其用于 Label 和 Deploy 等其他应用程序。详细的使用教程可以去monai bundle github
接下来我们将用更多案例来演示monai bunlde在3D slicer中的用法
增强 CT 肾子结构分割
在每一个教程开始前,会简单介绍这个预训练模型的基本信息,了解模型才能更好的适配模型,提高标注准确度。
模型描述
一个用于从增强CT图像(动脉期/门静脉期)进行体积(3D)肾脏子结构分割的预训练模型。提供了训练管道以支持使用 bundle 和 MONAI Label 主动学习进行模型微调。
模型概述
A pre-trained UNEST base model for volumetric (3D) renal structures segmentation using dynamic contrast enhanced arterial or venous phase CT images.
参考论文: https://arxiv.org/abs/2111.14791.
数据
训练数据来自范德堡大学和范德堡大学医学中心的[ImageVU RenalSeg 数据集]。(训练数据尚未公开)。
- 目标:Renal Cortex | Medulla | Pelvis Collecting System(肾皮质 | 髓质 | 肾盂)
- 任务:分割
- 模态:CT(动脉期 | 静脉期)
- 规模:96个3D体积数据
数据和分割示例如下:
输入和输出格式
输入:1通道CT图像,实际模型输入:96 x 96 x 96
输出:4类:0:背景,1:肾皮质,2:髓质,3:肾盂系统
在3D slicer中进行CT肾子结构分割
该系列的实战环节,步骤都是一样的,第一个案例写的会更详细一些。如有不清楚,请查看part4。
- step1: 激活环境
conda activate monailabel
- step2: 下载monaibundle app
如在之前的教程中下载过请忽略此步骤
monailabel apps --name monaibundle --download --output apps
可以前往图片上地址查看下载了什么
- step3: 下载实验数据
这里没找到合适又好下载的增强期CT。Tina姐用的私有数据。如果没有增强CT可以用平扫CT替代演示。
- step4:启动MONAI Label Server
在–conf models 参数中指定bundle名称。例如:renalStructures_UNEST_segmentation
注意大小写
monailabel start_server --app apps/monaibundle --studies datasets/venous_abdomen/images --conf models renalStructures_UNEST_segmentation
- step5: 自动分割
启动3D Slicer和MONAI Label插件,绿色刷新符号连接服务端,点击next sample加载数据,最后点击run等待自动勾画
- step6: 运行自动推理并选择配置选项
预训练模型位于bundle的“models”文件夹中。例如,下载的预训练模型保存在“apps/monaibundle/model/wholeBody_ct_segmentation/models”文件夹中。
用户可以移动轴和切片来查看分割的正确位置。
用户可以在MONAI Label服务器终端中监控日志。
分割结果:
- step7: 编辑注释并提交标签
用户可以使用MONAI Label分割编辑器手动编辑推理标签,点击Segment Editor
面板。用户可以返回MONAI Label插件并点击Submit Label
,将真实标签保存到文件系统。
注意:最终的注释将保存到研究数据集的labels/final
文件夹中,例如,真实标签将保存到“datasets/Task09_Spleen/imagesTs/labels/final”文件夹中。
- step8: 训练和微调模型
通过多次迭代进行训练和主动微调模型是常见的标注场景。当保存了新的标注标签时,用户可以随时训练他们的模型。点击Train
按钮,MONAI Label服务器将获取保存的最终真实标签并微调先前的模型。
与Radiology应用程序类似,用户可以使用最新的微调模型进行自动分割。主动学习过程将选择未标记的批处理数据。
下一个图像将被选中,已经训练过的图像将被标记为已标记数据,因此不会在下一个标记批次中被选中。主动学习策略(如“first/random”)将用于选择要获取的未标记数据。
- step9: 重复直到所有数据被标注和训练
重复数据获取和主动学习过程(参考step5-step8),直到所有未标记数据都被标注和训练。
对于每个训练循环,新最佳指标模型将保存在“model/model.pt”中。比如,保存在“apps/monaibundle/wholeBody_ct_segmentation/model/model.pt”。
总结
本教程演示了如何使用MONAI Label和monaibundle应用程序,介绍了使用CT 动脉期或门静脉期图像分割肾脏内结构(皮质,髓质,集合系统)。包括主动学习过程、自动推理、分割编辑器、提交标签和保存模型。monaibundle应用程序突出了MONAI Label的强大模型部署能力。
我是Tina, 我们下篇博客见~
白天工作晚上写文,呕心沥血
觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连