医疗影像学习工具包
项目描述
MONAI Label
MONAI Label是一个智能开源的图像标注和学习工具,允许用户创建标注数据集并构建用于临床评估的AI标注模型。MONAI Label允许应用开发者以无服务器的方式构建标注应用,其中自定义标注应用通过MONAI Label服务器作为服务公开。
MONAI Label是一个服务器-客户端系统,通过使用AI促进交互式医学图像标注。它是一个开源且易于安装的生态系统,可以在具有单个或多个GPU的机器上本地运行。服务器和客户端可以在同一台或不同的机器上运行。它与MONAI遵循相同的原理。
有关更多详细信息,请参阅完整的MONAI Label文档或查看我们的MONAI Label深度视频系列。
请参阅MONAI Label教程系列,了解不同医学图像任务的应用和查看器工作流程。创建笔记本教程以提供详细说明。
目录
概述
MONAI 标注减少了标注新数据集的时间和努力,并通过从用户交互和数据中不断学习,使 AI 能够适应手头的任务。MONAI 标注允许研究人员和开发者通过允许他们在用户界面中与他们的应用程序交互,来持续改进他们的应用程序。最终用户(临床医生、技术人员和普通标注员)从 AI 持续学习和更好地理解最终用户试图标注的内容中受益。
MONAI 标注旨在填补开发人员创建新的标注应用程序与希望从这些创新中受益的最终用户之间的差距。
亮点和功能
- 用于开发和部署 MONAI 标注应用程序以训练和推断 AI 模型的框架
- 用于轻松集成现有工作流程的组件化和便携式 API
- 可根据不同用户的专业知识定制标注应用程序设计
- 通过 3DSlicer 和 OHIF 为放射学提供标注支持
- 通过 QuPath、数字切片档案 和 CVAT 为病理学提供标注支持
- 通过 CVAT 为内窥镜提供标注支持
- 通过 DICOMWeb 连接到 PACS
- 使用 CVAT 进行内窥镜的自动化主动学习工作流程
支持的矩阵
MONAI 标注支持模型库中的许多最先进的(SOTA)模型,以及它们与查看器和 monaibundle 应用程序的集成。有关支持的模型,包括全身分割、全脑分割、肺结节检测、肿瘤分割等,请参阅 monaibundle 应用程序页面。
此外,您还可以找到基本支持的字段、模态、查看器和通用数据类型的表格。然而,这些只是我们明确测试过的,并不代表您的数据集或文件类型无法与 MONAI 标注一起工作。尝试使用 MONAI 完成您的特定任务,如果您遇到问题,请通过 GitHub 问题进行联系。
字段 | 模型 | 查看器 | 数据类型 | 图像模态/目标 |
---|---|---|---|---|
放射学 |
|
|
|
|
病理学 |
|
|
|
|
视频 |
|
|
|
|
使用MONAI Label入门
开始使用 MONAI 标注需要几个步骤
- 步骤 1: 安装 MONAI 标注
- 步骤 2: 下载 MONAI 标注示例应用程序或编写自己的自定义应用程序
- 步骤 3: 安装兼容的查看器和支持的 MONAI 标注插件
- 步骤 4: 准备您的数据
- 步骤 5: 启动 MONAI 标注服务器并开始标注!
步骤 1 安装
当前稳定版本
pip install -U monailabel
MONAI 标注支持以下操作系统,并启用 GPU/CUDA。有关更详细的说明,请参阅安装指南。
GPU 加速(可选依赖项)
以下是可以帮助您加速MONAI中一些基于GPU的转换的可选依赖项。如果您使用的是projectmonai/monailabel
docker,则默认启用这些依赖项。
开发版本
使用以下选项之一安装最新功能
Git Checkout(开发者模式)
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 Label 示例应用
放射学
此应用包含示例模型,可以进行交互式和自动化的放射学(3D)图像分割。包括使用最新深度学习模型(例如,UNet,UNETR)对多个腹部器官进行自动分割。交互式工具包括DeepEdit和Deepgrow,用于积极改进训练模型和部署。
- Deepedit
- Deepgrow
- 分割
- 脾脏分割
- 多阶段脊椎分割
病理学
此应用包含示例模型,可以对病理(WSI)图像进行交互式和自动化的分割。包括对肿瘤细胞、炎症、结缔/软组织细胞、死细胞和上皮细胞的核多标签分割。该应用提供交互式工具,包括DeepEdits进行交互式核分割。
- Deepedit
- Deepgrow
- 分割
- 脾脏分割
- 多阶段脊椎分割
视频
内窥镜应用允许用户在2D图像上使用交互式、自动化的分割和分类模型进行内窥镜用例。与CVAT结合,它将展示全自动的主动学习工作流程来训练和微调模型。
- Deepedit
- 工具跟踪
- 体内/体外
捆绑包
捆绑包应用使用户能够为推理、训练或预处理任何目标解剖结构提供定制的模型。捆绑包应用与MONAILabel集成的规范链接到存档的模型-Zoo,用于定制标记(例如,用于标记肾皮质、髓质和肾盂系统的第三方变换器模型。交互式工具如DeepEdits)。
有关支持的捆绑包的完整列表,请参阅MONAI Label Bundles README。
步骤 3 MONAI Label 支持的查看器
放射学
3D Slicer
3D Slicer是一个免费的开源平台,用于分析、可视化和理解医学图像数据。在MONAI Label中,3D Slicer与放射学研究和算法、开发和集成进行了最多测试。
OHIF
开放健康影像基金会(OHIF)查看器是一个开源的、基于Web的医学影像平台。它旨在为构建复杂影像应用提供核心框架。
病理学
QuPath
定量病理学与生物图像分析(QuPath)是一个开源、强大、灵活、可扩展的生物图像分析软件平台。
数字切片档案
数字切片归档(DSA)是一个平台,可以存储、管理、可视化和注释大型成像数据集。数字切片归档设置
视频
CVAT
CVAT是一个用于计算机视觉的交互式视频和图像标注工具。CVAT 设置
步骤 4 数据准备
对于数据准备,您有两个选项:您可以使用本地数据存储或任何支持DICOMWeb的图像归档工具。
单一模态图像的放射学应用本地数据存储
对于本地文件归档中的数据存储,MONAI Label使用一组文件夹结构。将您的图像数据放入一个文件夹中,如果您有任何分割文件,请创建并放置在名为labels/final
的子文件夹中。下面是一个示例
dataset
│-- spleen_10.nii.gz
│-- spleen_11.nii.gz
│ ...
└───labels
└─── final
│-- spleen_10.nii.gz
│-- spleen_11.nii.gz
│ ...
如果没有标签,只需将图像/体积放入数据集文件夹中。
DICOMWeb 支持
如果您使用的查看器支持DICOMweb标准,则可以使用它而不是本地数据存储来为MONAI Label提供服务图像。在启动MONAI Label服务器时,我们需要在studies参数中指定DICOMweb服务的URL(以及,如果需要,需要用户名和密码的DICOM服务器)。下面是一个使用DICOMweb URL启动MONAI Label服务器的示例
monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models segmentation
步骤 5 启动 MONAI Label 服务器并开始标注
您现在可以开始使用 MONAI Label 了。配置好您的查看器、应用程序和数据存储后,您可以使用相关参数启动 MONAI Label 服务器。为了简单起见,以下是一个示例,我们下载了放射学样本应用程序和数据集,然后启动 MONAI Label 服务器。
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 标注教程
内容
- 放射学应用程序:
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- MONAILabel: HelloWorld:使用 3D Slicer 设置进行脾脏分割。
- 查看器:[OHIF](https://ohif.org/) | 数据存储:本地 | 任务:分割
- MONAILabel: Web-based OHIF Viewer:使用 OHIF 设置进行脾脏分割。
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- MONAIBUNDLE 应用程序:
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- MONAILabel: Pancreas Tumor Segmentation with 3D Slicer:在 3D Slicer 中使用 CT 扫描进行胰腺和肿瘤分割。
- MONAILabel: Multi-organ Segmentation with 3D Slicer:在 3D Slicer 中使用 CT 扫描进行多器官分割。
- MONAILabel: Whole Body CT Segmentation with 3D Slicer:使用 CT 扫描进行全身(104 个结构)分割。
- MONAILabel: Lung nodule CT Detection with 3D Slicer:使用 CT 扫描进行肺结节检测任务。
- 查看器:[3D Slicer](https://www.slicer.org/) | 数据存储:本地 | 任务:分割
- 病理学应用程序:
- 查看器:[QuPath](https://qupath.github.io/) | 数据存储:本地 | 任务:分割
- MONAILabel: Nuclei Segmentation with QuPath:使用 QuPath 设置和 Nuclick 模型进行核分割。
- 查看器:[QuPath](https://qupath.github.io/) | 数据存储:本地 | 任务:分割
- 内窥镜应用程序:
- 查看器:[CVAT](https://github.com/opencv/cvat) | 数据存储:本地 | 任务:分割
- MONAILabel: Tooltracking with CVAT:使用 CVAT/Nuclio 设置进行手术工具分割。
- 查看器:[CVAT](https://github.com/opencv/cvat) | 数据存储:本地 | 任务:分割
引用
如果您在研究中使用 MONAI Label,请使用以下引用:
@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 Label 的主动学习功能,请支持我们
@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 Label 做出贡献的指导,请参阅贡献指南。
社区
在 Twitter 上参与讨论 @ProjectMONAI 或加入我们的 Slack 频道。
在 MONAI Label 的 GitHub 讨论标签 上提问和回答问题。
其他资源
- 网站:[https://monai.org.cn/](https://monai.org.cn/)
- API 文档:[https://docs.monai.org.cn/projects/label](https://docs.monai.org.cn/projects/label)
- 代码:[https://github.com/Project-MONAI/MONAILabel](https://github.com/Project-MONAI/MONAILabel)
- 项目跟踪器:[https://github.com/Project-MONAI/MONAILabel/projects](https://github.com/Project-MONAI/MONAILabel/projects)
- 问题跟踪器:[https://github.com/Project-MONAI/MONAILabel/issues](https://github.com/Project-MONAI/MONAILabel/issues)
- Wiki:[https://github.com/Project-MONAI/MONAILabel/wiki](https://github.com/Project-MONAI/MONAILabel/wiki)
- 测试状态:[https://github.com/Project-MONAI/MONAILabel/actions](https://github.com/Project-MONAI/MONAILabel/actions)
- PyPI 软件包:[https://pypi.ac.cn/project/monailabel/](https://pypi.ac.cn/project/monailabel/)
- Docker Hub:[https://hub.docker.com/r/projectmonai/monailabel](https://hub.docker.com/r/projectmonai/monailabel)
- 客户端API: https://www.youtube.com/watch?v=mPMYJyzSmyo
- 演示视频: https://www.youtube.com/c/ProjectMONAI
项目详情
哈希值 for monailabel_weekly-0.5.dev2340-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 693b3365ab79046e88a3034372b9c9ddecda55a56d69cfc1afe1aeb90ea83ee1 |
|
MD5 | 5c9095d19f45c98388c217bfedcd2488 |
|
BLAKE2b-256 | 0ac4dbab42d36caacfd0367dd35fa50ea8231db84fe4bf2aa2afec60093d3bfb |