【nnUnetv2】Code分析
nnUnetv2是一个用于生物医学图像语义分割的自动化方法,它能自动适应给定的数据集。它会分析提供的训练案例,并自动配置一个匹配的基于 U-Net 的分割管道,无需用户具备专业知识,用户可以直接训练模型并将其用于自己的应用。
1.主要特性
1.1.自动适应性
能够自动分析数据集特性,配置合适的 U-Net 分割管道。
1.2.多模态支持
可以处理 2D 和 3D 图像,支持任意输入模态 / 通道。
1.3.鲁棒性
能理解体素间距、各向异性,对类别高度不平衡的情况也具有鲁棒性。
1.4.多配置选择
为每个数据集创建多种 U-Net 配置,包括2d
、3d_fullres
、3d_lowres
和3d_cascade_fullres
。
2.工作原理
2.1.数据集分析
给定新数据集,nnU-Net 会系统地分析训练案例,创建 “数据集指纹”。
2.2.U-Net 配置创建
根据数据集创建多种 U-Net 配置。
2.3.管道配置
基于三步策略配置分割管道:
固定参数:采用经过验证的鲁棒配置,如损失函数、数据增强策略和学习率。
规则参数:根据数据集指纹,通过硬编码的启发式规则调整某些分割管道属性,如网络拓扑、补丁大小和批量大小。
经验参数:通过试错确定最佳 U-Net 配置和后处理策略。
3.代码结构
3.1.根目录文件
.gitignore
: 指定在使用 Git 进行版本控制时需要忽略的文件和文件夹。
LICENSE
: 项目的开源许可证文件。
pyproject.toml
: 用于配置项目的构建工具和依赖项,通常与 Python 项目的打包和分发相关。
readme.md
: 项目的说明文档,介绍了 nnU - Net
的基本信息,包括它是什么、能做什么、适用范围、工作原理以及如何开始使用等内容,是用户了解项目的重要入口。
setup.py
: 用于 Python 项目的安装和分发,定义了项目的元数据(如名称、版本、作者等)和依赖项,方便用户通过 pip
等工具安装项目。
3.2..github
文件夹
workflows
: 包含 GitHub Actions 的工作流配置文件,用于自动化执行项目的构建、测试、部署等任务,确保项目的质量和稳定性。
3.3.documentation
文件夹
包含了项目的详细文档,帮助用户了解和使用 nnU - Net
assets
: 存放文档中使用的图片、图表等资源文件。
benchmarking.md
: 可能记录了项目的性能基准测试相关信息。
changelog.md
: 记录了项目的更新日志,说明每个版本的主要变化和改进。
competitions
: 可能包含项目在各类竞赛中的相关文档和结果。
convert_msd_dataset.md
: 关于如何转换医学分割数据集(MSD)的说明文档。
dataset_format.md
: 详细介绍了 <