医疗影像主动学习工具包
项目描述
MONAI Label
MONAI Label是一个智能开源图像标注和学习工具,使用户能够创建标注数据集并构建用于临床评估的AI标注模型。MONAI Label使应用程序开发者能够以无服务器的方式构建标注应用程序,其中自定义标注应用程序通过MONAI Label服务器作为服务公开。
MONAI Label是一个服务器-客户端系统,它通过使用AI促进交互式医学图像标注。它是一个开源且易于安装的生态系统,可以在具有单个或多个GPU的机器上本地运行。服务器和客户端可以在同一台或不同的机器上运行。它与MONAI具有相同的原理。
有关更多详情,请参阅完整的MONAI Label文档,或查看我们的MONAI Label深度学习视频系列。
请参阅MONAI Label 教程系列,了解不同医学图像任务中的应用和工作流程。为了详细说明,创建了类似笔记本的教程。
目录
概述
MONAI Label 可以减少标注新数据集的时间和精力,并通过不断从用户交互和数据中学习,使 AI 能够适应手头的任务。MONAI Label 允许研究人员和开发人员通过与他们的应用程序进行交互来不断改进他们的应用程序,就像最终用户会做的那样。最终用户(临床医生、技术人员和标注员)从 AI 的持续学习以及更好地理解最终用户试图标注的内容中受益。
MONAI Label 的目标是为了填补开发人员创建新的标注应用程序和希望从中受益的最终用户之间的差距。
亮点和功能
- 开发并部署 MONAI Label 应用程序以训练和推理 AI 模型的框架
- 可组合且易于集成的 API,以便于集成到现有的工作流程中
- 可根据不同用户的专业知识定制标注应用程序设计
- 通过 3DSlicer 和 OHIF 支持放射学的标注
- 通过 QuPath、数字切片档案 和 CVAT 支持病理学的标注
- 通过 CVAT 支持内窥镜的标注
- 通过 DICOMWeb 连接到 PACS
- 使用 CVAT 进行内窥镜的自动化主动学习工作流程
支持矩阵
MONAI Label 支持模型库中的许多最先进(SOTA)模型,并将它们与查看器和 monaibundle 应用程序集成。有关支持的模型,包括全身分割、全脑分割、肺结节检测、肿瘤分割等,请参阅monaibundle 应用程序页面。
此外,您还可以找到基本支持的字段、模态、查看器和通用数据类型的表格。但是,这些只是我们已经明确测试过的,并不代表您的数据集或文件类型不能与 MONAI Label 一起使用。尝试使用 MONAI 完成您给定的任务,如果您遇到问题,请通过 GitHub Issues 联系我们。
字段 | 模型 | 查看器 | 数据类型 | 图像模态/目标 |
---|---|---|---|---|
放射学 |
|
|
|
|
病理学 |
|
|
|
|
视频 |
|
|
|
|
开始使用 MONAI Label
开始使用 MONAI Label 需要几个步骤
- 步骤 1: 安装 MONAI Label
- 步骤 2: 下载 MONAI Label 示例应用程序或编写自己的自定义应用程序
- 步骤 3: 安装兼容的查看器和支持的 MONAI Label 插件
- 步骤 4: 准备您的数据
- 步骤 5: 启动 MONAI 标注服务器并开始标注!
步骤 1 安装
当前稳定版本
pip install -U monailabel
MONAI 标注支持以下操作系统并启用 GPU/CUDA。有关更详细说明,请参阅安装指南。
GPU 加速(可选依赖项)
以下是一些可选依赖项,可以帮助您加速 MONAI 中一些基于 GPU 的转换。如果您使用的是 projectmonai/monailabel
docker,则默认启用这些依赖项。
开发版本
要使用以下任一选项安装 最新功能
Git 检出(开发者模式)
git clone https://github.com/Project-MONAI/MONAILabel pip install -r MONAILabel/requirements.txt export PATH=$PATH:`pwd`/MONAILabel/monailabel/scripts
如果您使用 DICOM-Web + OHIF,则必须单独构建 OHIF 软件包。请参阅[此处](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/ohif#development-setup)。
Docker
docker run --gpus all --rm -ti --ipc=host --net=host projectmonai/monailabel:latest bash
步骤 2 MONAI 标注示例应用程序
放射学
此应用程序包含示例模型,可以对放射学(3D)图像进行交互式和自动分割。包括使用最新深度学习模型(例如,UNet、UNETR)对多个腹部器官进行自动分割。交互式工具包括 DeepEdit 和 Deepgrow,用于积极改进训练模型和部署。
- Deepedit
- Deepgrow
- 分割
- 脾脏分割
- 多阶段椎骨分割
病理学
此应用程序包含示例模型,可以对病理(WSI)图像进行交互式和自动分割。包括癌变细胞、炎症、结缔/软组织细胞、死细胞和上皮细胞的核多标签分割。应用程序提供交互式工具,包括用于交互式核分割的 DeepEdits。
- Deepedit
- Deepgrow
- 分割
- 脾脏分割
- 多阶段椎骨分割
视频
内窥镜应用程序使用户能够对内窥镜用例的 2D 图像进行交互式、自动化分割和分类模型。与 CVAT 结合使用时,将展示完整的自动化主动学习工作流程来训练和微调模型。
- Deepedit
- ToolTracking
- 体内/体外
捆绑
捆绑应用程序使用户能够使用自定义模型进行推理、训练或对任何目标解剖结构进行预处理和后处理。捆绑应用程序的 MONAI 标注集成规范链接到存档的 Model-Zoo 以进行自定义标注(例如,用于标注肾皮质、髓质和肾盂系统的第三方 Transformer 模型。交互式工具如 DeepEdits)。
有关支持捆绑的完整列表,请参阅MONAI 标注捆绑 README。
步骤 3 MONAI 标注支持查看器
放射学
3D Slicer
3D Slicer 是一个免费的开源平台,用于分析、可视化和理解医学图像数据。在 MONAI 标注中,3D Slicer 与放射学研究和算法、开发和集成进行了最全面的测试。
OHIF
开放健康成像基金会(OHIF)查看器是一个开源的、基于网络的医学成像平台。它的目标是提供一个核心框架来构建复杂的成像应用程序。
病理学
QuPath
定量病理学与生物图像分析(QuPath)是一个开源、强大、灵活、可扩展的生物图像分析软件平台。
数字切片档案
数字切片存档(DSA)是一个平台,能够存储、管理、可视化和注释大型成像数据集。数字切片存档设置
视频
CVAT
CVAT 是一个交互式视频和图像标注工具,用于计算机视觉。CVAT 设置
步骤 4 数据准备
对于数据准备,您有两种选择,您可以使用本地数据存储或任何支持 DICOMWeb 的图像存档工具。
单模态图像上放射学应用程序的本地数据存储
对于本地文件归档中的数据存储,MONAI 标签使用一组特定的文件夹结构。请将您的图像数据放置在文件夹中,如果您有任何分割文件,请创建一个名为 labels/final
的子文件夹并将它们放置在其中。以下是一个示例
dataset
│-- spleen_10.nii.gz
│-- spleen_11.nii.gz
│ ...
└───labels
└─── final
│-- spleen_10.nii.gz
│-- spleen_11.nii.gz
│ ...
如果没有标签,只需将图像/体积放置在数据集文件夹中。
DICOMWeb 支持
如果您使用的查看器支持 DICOMweb 标准,则可以使用它而不是本地数据存储来为 MONAI 标签提供图像。在启动 MONAI 标签服务器时,我们需要在 studies 参数中指定 DICOMweb 服务的 URL(可选,如果需要,还可以指定 DICOM 服务器的用户名和密码)。以下是一个示例,展示如何使用 DICOMweb URL 启动 MONAI 标签服务器
monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models segmentation
第 5 步:启动 MONAI 标签服务器并开始标注
您现在可以开始使用 MONAI 标签。一旦您配置了查看器、应用程序和数据存储,您就可以使用相关参数启动 MONAI 标签服务器。为了简化,以下是一个示例,其中我们下载了一个放射学示例应用程序和数据集,然后启动 MONAI 标签服务器
monailabel apps --download --name radiology --output apps
monailabel datasets --download --name Task09_Spleen --output datasets
monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --conf models segmentation
注意:如果您想使用默认提出的不同标签,请根据以下说明更改配置文件:[链接](https://youtu.be/KtPE8m0LvcQ?t=622)
MONAI Label 教程
内容
- 放射学应用程序:
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- [MONAILabel: HelloWorld](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_HelloWorld_radiology_3dslicer.ipynb):使用 3D Slicer 设置进行脾脏分割。
- 查看器:[OHIF](https://ohif.org/) | 数据存储:本地 | 任务:分割
- [MONAILabel: Web-based OHIF Viewer](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_radiology_spleen_segmentation_OHIF.ipynb):使用 OHIF 设置进行脾脏分割。
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- MONAIBUNDLE 应用程序:
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- [MONAILabel: Pancreas Tumor Segmentation with 3D Slicer](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_bring_your_own_data.ipynb):使用 CT 扫描在 3D Slicer 中进行胰腺和肿瘤分割。
- [MONAILabel: Multi-organ Segmentation with 3D Slicer](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_monaibundle_3dslicer_multiorgan_seg.ipynb):使用 CT 扫描在 3D Slicer 中进行多器官分割。
- [MONAILabel: Whole Body CT Segmentation with 3D Slicer](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_wholebody_totalSegmentator_3dslicer.ipynb):使用 CT 扫描进行全身(104 个结构)分割。
- [MONAILabel: Lung nodule CT Detection with 3D Slicer](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_monaibundle_3dslicer_lung_nodule_detection.ipynb):使用 CT 扫描进行肺结节检测任务。
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- 病理学应用程序:
- 查看器:[QuPath](https://qupath.github.io/) | 数据存储:本地 | 任务:分割
- [MONAILabel: Nuclei Segmentation with QuPath](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_pathology_nuclei_segmentation_QuPath.ipynb):使用 QuPath 设置和 Nuclick 模型进行核分割。
- 查看器:[QuPath](https://qupath.github.io/) | 数据存储:本地 | 任务:分割
- 内镜检查应用程序:
- 查看器:[CVAT](https://github.com/opencv/cvat) | 数据存储:本地 | 任务:分割
- [MONAILabel: Tooltracking with CVAT](https://github.com/Project-MONAI/tutorials/blob/main/monailabel/monailabel_endoscopy_cvat_tooltracking.ipynb):使用 CVAT/Nuclio 设置进行手术工具分割。
- 查看器:[CVAT](https://github.com/opencv/cvat) | 数据存储:本地 | 任务:分割
引用
如果您在研究中使用 MONAI 标签,请使用以下引用
@article{DiazPinto2022monailabel,
author = {Diaz-Pinto, Andres and Alle, Sachidanand and Ihsani, Alvin and Asad, Muhammad and
Nath, Vishwesh and P{\'e}rez-Garc{\'\i}a, Fernando and Mehta, Pritesh and
Li, Wenqi and Roth, Holger R. and Vercauteren, Tom and Xu, Daguang and
Dogra, Prerna and Ourselin, Sebastien and Feng, Andrew and Cardoso, M. Jorge},
title = {{MONAI Label: A framework for AI-assisted Interactive Labeling of 3D Medical Images}},
journal = {arXiv e-prints},
year = 2022,
url = {https://arxiv.org/pdf/2203.12362.pdf}
}
@inproceedings{DiazPinto2022DeepEdit,
title={{DeepEdit: Deep Editable Learning for Interactive Segmentation of 3D Medical Images}},
author={Diaz-Pinto, Andres and Mehta, Pritesh and Alle, Sachidanand and Asad, Muhammad and Brown, Richard and Nath, Vishwesh and Ihsani, Alvin and Antonelli, Michela and Palkovics, Daniel and Pinter, Csaba and others},
booktitle={MICCAI Workshop on Data Augmentation, Labelling, and Imperfections},
pages={11--21},
year={2022},
organization={Springer}
}
可选引用:如果您使用 MONAI 标签的主动学习功能,请支持我们
@article{nath2020diminishing,
title={Diminishing uncertainty within the training pool: Active learning for medical image segmentation},
author={Nath, Vishwesh and Yang, Dong and Landman, Bennett A and Xu, Daguang and Roth, Holger R},
journal={IEEE Transactions on Medical Imaging},
volume={40},
number={10},
pages={2534--2547},
year={2020},
publisher={IEEE}
}
贡献
有关为 MONAI 标签做出贡献的指导,请参阅[贡献指南](https://github.com/Project-MONAI/MONAILabel/blob/main/CONTRIBUTING.md)。
社区
在 Twitter 上加入讨论 @ProjectMONAI 或加入我们的 [Slack 频道](https://projectmonai.slack.com/archives/C031QRE0M1C)。
在 [MONAI Label 的 GitHub 讨论标签](https://github.com/Project-MONAI/MONAILabel/discussions) 上提问和回答问题。
其他资源
- 网站: https://monai.org.cn/
- API 文档: https://docs.monai.org.cn/projects/label
- 代码: https://github.com/Project-MONAI/MONAILabel
- 项目跟踪器: https://github.com/Project-MONAI/MONAILabel/projects
- 问题跟踪器: https://github.com/Project-MONAI/MONAILabel/issues
- Wiki: https://github.com/Project-MONAI/MONAILabel/wiki
- 测试状态: https://github.com/Project-MONAI/MONAILabel/actions
- PyPI 包: https://pypi.ac.cn/project/monailabel/
- Docker Hub: https://hub.docker.com/r/projectmonai/monailabel
- 客户端 API: https://www.youtube.com/watch?v=mPMYJyzSmyo
- 演示视频: https://www.youtube.com/c/ProjectMONAI
项目详情
散列 for monailabel-0.8.3-202405250550-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3049f7a45e8c3c208b0a9c8bea68921ddafb3009147ad9bb0d51b87f9f55ad00 |
|
MD5 | 663bfcce7589aa972f81f04a4cfe6aed |
|
BLAKE2b-256 | 40c173ea52bdcae74b4a958c39e43db165dd629f99fbf892a04b1b930d00a84d |