医学图像分割框架。完整流水线:下载 → 预处理 → 训练 → 推理。
脑 MRI 预处理工具。一行命令把头骨剥掉,只留脑实质。
| 组件 | 版本 / 来源 | 用途 | 规模 |
|---|---|---|---|
| nnU-Net v2 | pip install nnunetv2 | 数据预处理、自动 plan 生成 | — |
| nnU-Net v1 | pip install nnunet | 预训练权重推理(兼容性需要) | — |
| HD-BET | pip install hd-bet | 颅骨剥离 / 脑提取推理 | ~400 MB 权重 |
| PyTorch | 2.x · CPU build | 底层张量运算 · 自动求导 | — |
| nibabel + numpy < 2 | — | NIfTI 读写 + 数组运算 | — |
Medical Segmentation Decathlon 第 04 号任务,Vanderbilt University Medical Center 提供。 目标:对 T1 加权脑 MRI 中的 前海马 (Anterior, label=1) 与 后海马 (Posterior, label=2) 做体素级分割。
| 统计量 | 值 | 统计量 | 值 | 含义 |
|---|---|---|---|---|
| min | 0.00 | median | 362.88 | 典型 T1 信号水平 |
| max | 486,420.22 | mean | 22,360.46 | 极大值 → 必须归一化 |
| std | 60,654.62 | P0.5 / P99.5 | 28.0 / 277,682 | 裁剪边界(plan 用) |
从下载数据,到用预训练权重在 CPU 上跑出真分割结果。
训练这一步需要 GPU,本次跳过——但完成了所有训练前的准备工作。
MSD AWS bucket 下 27 MB tar / 56 MB 解压。 nnUNetv2_convert_MSD_dataset 把每个图像加 _0000 后缀,dataset.json 改写成 v2 schema。 预处理时 nnU-Net 自动分析数据集 → 生成训练菜谱 nnUNetPlans.json。
根据数据指纹自动推导出网络架构、patch size、batch size、池化次数,全程只用规则(不依赖梯度搜索),CPU 上几秒完成。同时生成 2D 和 3D 两套配置。
| 超参 | 2d | 3d_fullres | 来源 / 说明 |
|---|---|---|---|
| preprocessor | DefaultPreprocessor | DefaultPreprocessor | 统一处理流水线 |
| 归一化 | Z-Score | Z-Score | (x-μ)/σ · per-image |
| spacing | [1.0, 1.0] | [1.0, 1.0, 1.0] | 已是各向同性 · 无需重采样 |
| patch_size | [56, 40] | [40, 56, 40] | 稍大于 median image |
| batch_size | 366 | 9 | 2D 因 patch 小,可堆很多 |
| median image | [50, 35] | [36, 50, 35] | 来自 fingerprint |
训练 nnU-Net 需要 GPU,CPU 上完整 5 折交叉验证不现实。
DKFZ 团队 2020 年发论文时把 MSD 全套训好的权重打包上传到 Zenodo(CC-BY 4.0)。直接下来用。
训练集 3 例(带金标准 → 可算 Dice)+ 测试集 3 例(无标注 → 仅展示)。 用 fold 0 单模型,--disable_tta 关闭 test-time augmentation 提速 4×。
| 批次 | 例数 | Cases | 总耗时 | 单例平均 |
|---|---|---|---|---|
| 训练集(带 GT) | 3 | 001 / 003 / 004 | 2.84 s | 0.95 s |
| 测试集(无 GT) | 3 | 002 / 005 / 009 | 2.73 s | 0.91 s |
Dice = 2|A∩B| / (|A|+|B|) · 衡量模型预测与金标准的体素重叠率,1.0 = 完美重叠。
| case | 前海马 (label=1) | 后海马 (label=2) | 评级 |
|---|---|---|---|
| hippocampus_001 | 0.9733 | 0.9720 | excellent |
| hippocampus_003 | 0.9545 | 0.9531 | excellent |
| hippocampus_004 | 0.9630 | 0.9483 | excellent |
| 本次 · 训练集 3 例(数据泄漏) | ≈ 0.964 | ≈ 0.958 | 仅验证流水线 |
| 原作者 · 5-fold CV(公正评估) | 0.8975 | 0.8807 | 真实泛化性能 |
Caveat — 本次推理的 3 例 (001/003/004) 都在训练集里,模型见过它们的标注,Dice 自然高。这只能证明权重和命令链路跑通了,不能用作模型泛化性能的衡量。MSD challenge leaderboard 上的真实水平 ≈ 0.89 / 0.88。
DKFZ 团队基于 nnU-Net 训的脑提取专用模型(HBM 2019 论文)。 网络架构是 3D U-Net,训练在 1568 例多中心 MRI 上,论文报告 Dice ≈ 0.96。 第一次运行会自动从作者服务器下载权重到 ~/.cache/torch/。
完整流水线走通到推理,跳过训练直接用预训练权重。
下载预训练模型,对一张 MRI 做了真实推理。