两件事:nnU-Net 把数据准备到了训练前一步就停了(没 GPU);HD-BET 直接拿别人训好的模型跑了一次推理。
本来想做:训练 → 推理。实际做到:"备料"那一步停了。
从公开数据集仓库扛回家。
用的是 MSD Task04 海马体分割数据集(260 训练 + 130 测试,单模态 MRI)。
体积 56 MB · 格式 NIfTI(医学影像 3D 体素矩阵)
只改文件名和元数据,不动图像内容。
三件小事:
_0000 后缀("第 0 个模态")dataset.json 改写成 v2 schema(channel_names / dict 形式的 labels)Task04 → Dataset004这是 nnU-Net 最聪明的一步——自己看数据、自己写菜谱,不用人调参。
一条命令搞定,CPU 跑了几分钟:
nnUNetv2_plan_and_preprocess -d 4 --verify_dataset_integrity
背地里做了:体检数据集 → 决定网络架构和 patch 大小 → 重采样 + 强度归一化 → 压缩存盘。
体积 71 MB · nnUNetPlans.json 就是包里 nnunet_plan.png 可视化的那个文件
这两步必须有 GPU,所以停在这里。
有 GPU 的话会跑 nnUNetv2_train 4 2d 0..4 训 5 折交叉验证,然后用 nnUNetv2_predict 给新病人分割。包里 nnUNet_results/ 现在是空的——这是真实状态,不是漏了什么。
作者已经把权重训好挂网上了,我们直接下载下来跑推理,不用 GPU。
原始脑部 MRI 包含头骨、皮肤、眼球——做后续分析前要把它们剥掉,只留脑实质。
hd-bet -i hdbet_test/test_brain.nii.gz \
-o hdbet_test/output/test_brain_bet.nii.gz \
-device cpu
CPU 单例约 1–2 分钟 · 注意参数是 -device(单短横线),不是 --device · 效果对比图在 outputs/hdbet_result.png
| 阶段 | 命令 | 产出 | 状态 |
|---|---|---|---|
| 下载 | wget + tar | downloads/ | ✓ |
| 转格式 | nnUNetv2_convert_MSD_dataset | nnUNet_raw/ | ✓ |
| 预处理 | nnUNetv2_plan_and_preprocess | nnUNet_preprocessed/ | ✓ |
| 训练 | nnUNetv2_train | nnUNet_results/ | ✗ 无 GPU |
| nnU-Net 推理 | nnUNetv2_predict | 分割掩码 | ✗ 无模型 |
| HD-BET 推理 | hd-bet | hdbet_test/output/ | ✓ |
| 可视化 | matplotlib | outputs/*.png | ✓ |
不是端到端「数据 → 模型 → 分割」的训练 demo,而是:
想跑完整训练,把 nnUNet_preprocessed/ 拷到一台有 GPU 的机器上跑 nnUNetv2_train 就行。