信息速览

WMH Challenge — 脑白质高信号分割基准 AI-Ready Wikipedia
INFOBOX
| 项目 | 内容 |
|---|---|
| 数据集名称 | 脑白质高信号 WMH 分割挑战数据集 |
| 英文全称 | WMH Segmentation Challenge (MICCAI 2017) |
| 别名/简称 | MICCAI WMH Challenge、WMH Challenge 2017、MWSC |
| 疾病分类(ICD-11 编码+中文名) | 8B22 其他特指的脑血管疾病(脑小血管病) |
| SNOMED CT | 脑小血管病(Cerebral small vessel disease);WMH 为影像学表现 |
| 数据模态 | 脑 MRI:3D T1 加权 + 2D 多层面 FLAIR |
| AI 任务类型 | 三维医学图像语义分割(二值 + 多类掩膜) |
| 样本总数 | 170 例(60 例公开训练带标注 + 110 例隐藏测试) |
| 数据大小 | 训练集约 399 MB(第三方镜像统计;官方包大小未披露) |
| 数据格式 | NIfTI(.nii / .nii.gz);官方另提供 .hdr/.img 与配准参数文本 |
| 许可证 | 挑战官网注册后获取;测试集保密;完整协议文本未公开 |
| 访问级别 | 注册后开放(训练集);竞赛专用(测试集评测) |
| DUO 标签 | GRU 通用研究 + PUB 须公开发表(依据官方声明推断) |
| 语言 | 英文(数据文档与标注说明) |
| 首发日期 | 2017-09-14(MICCAI 2017,加拿大魁北克城) |
| 最后更新 | 2019-11-01(IEEE TMI 结果论文正式刊出) |
| 发布机构 | UMC Utrecht Image Sciences Institute(与 VU Amsterdam、NUHS Singapore 联合) |
| 官方主页 | wmh.isi.uu.nl/0 |
| 下载地址 | wmh.isi.uu.nl/0 |
| DOI | 10.1109/TMI.2019.2905770 |
| 引用次数 | 250+(Google Scholar / Scopus 口径,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方划分清晰、预处理版本与配准参数随数据提供、Docker 评测协议完整;但测试集永久保密无法本地复现,且需自行实现五指标评估。 |
| 页面状态 | published |
§0 E-E-A-T 元数据与免责声明
§0.1 审核声明
本词条由千方病案医学编辑部组织撰写与交叉审核,内容基于挑战赛官方主页、IEEE Transactions on Medical Imaging 正式发表的挑战赛结果论文(Kuijf et al., 2019)及后续同行评审文献。
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、流行病学数据、STRIVE 标准标注协议)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05。
§0.2 免责声明
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。WMH Segmentation Challenge 要求用户在挑战官网注册后方可下载训练数据,测试集为组织者永久保密,方法评测须以 Docker 容器形式提交并由组织者运行。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§0.3 版本与勘误说明
本词条所依据的权威版本为 IEEE TMI 2019 年第 38 卷第 11 期正式刊出的结果论文及其配套的挑战赛官方数据发布(2017 年冻结)。挑战赛官网声明其持续接受新的方法提交,因此后续新增提交的排名不改变本词条描述的 20 支初始参赛队伍结果。本词条在 FACTS.md 中记录了队列条目与官方资料的若干出入,包括"FLAIR 为 3D 采集"、“含 3 个并列任务”、“评测指标含 ASSD” 三项需修正的表述。
§1 数据集概览
§1.0 30 秒速览
这是什么? WMH Segmentation Challenge 是 2017 年 MICCAI 大会上举办的一场国际医学影像算法竞赛,任务只有一个——让计算机自动找出脑部磁共振图像中那些被称为"脑白质高信号"(WMH)的亮白斑块。数据集一共 170 例,来自荷兰和新加坡 3 家医院、5 台不同型号的 MRI 机器。其中 60 例配有神经影像专家手工勾画的标注(公开给参赛者训练),另外 110 例的标注被组织者锁进保险箱,谁也没见过。
为什么重要? 这些亮白斑块是脑小血管病最典型的影像学标志,与卒中、痴呆和认知衰退关系密切。但人工一例一例勾画极其耗时,不同医生之间分歧也大。这场比赛第一次为"谁的分割算法更好"给出了统一答案:同一套数据、同一套指标、同一套评测流程,还专门用两台训练集中从未出现过的扫描仪来测试算法到底能不能"换台机器还干得漂亮"。
我能用它做什么? 你可以用它训练和评测自己的 WMH 分割模型,与 20 支国际团队的公开成绩对比;可以用它研究跨扫描仪泛化这个医学 AI 的经典难题;可以用它练习处理各向异性三维医学图像;也可以把 60 例公开标注作为半监督、域适应或小样本学习方法的评测床。注意:110 例测试集永远不会公开,你无法在本地复现论文中的排行榜数字。
§1.1 摘要
WMH Segmentation Challenge 的完整命题是:自动分割推定血管源性的脑白质高信号(automatic segmentation of white matter hyperintensities of presumed vascular origin)。挑战赛由 UMC Utrecht Image Sciences Institute 牵头,联合 VU Amsterdam 与新加坡国立大学医疗系统(NUHS Singapore)共同组织,与第 20 届 MICCAI 会议(2017-09-14,加拿大魁北克城)同期举行。
数据集最终定型为 170 例受试者,每例提供一幅 3D T1 加权图像与一幅 2D 多层面 FLAIR 图像,以及由神经影像专家按 STRIVE 标准手工勾画的二值掩膜。图像来自荷兰与新加坡 3 家机构的 5 台扫描仪,覆盖 Philips、Siemens、GE 三个厂商和 3T / 1.5T 两种场强,体素尺寸从 0.96×0.95×3.00 mm 到 1.21×1.21×1.30 mm 不等——这种刻意的异质性正是挑战赛的核心设计。
划分方式是该数据集最被称道的一点:60 例带标注数据来自 3 台扫描仪,公开释放用于训练;110 例来自 5 台扫描仪的隐藏测试集用于评测,其中 20 例来自训练集中完全未出现的 2 台扫描仪。这意味着任何想拿高分的算法,必须在跨厂商、跨场强、跨协议的条件下保持稳定——这正是临床落地的真实约束。
评测协议同样严格:参赛者必须把方法打包成 Docker 容器提交,组织者在其服务器上逐例运行;每处理完一个受试者,容器被完全销毁并重新加载,容器内部也没有任何标识符能提示当前图像来自哪台扫描仪。这一设计杜绝了参与者通过视觉自评(visual self-evaluation)反向拟合测试集的可能。评测采用五项指标——Dice 相似系数(DSC)、修正 Hausdorff 距离第 95 百分位(H95)、绝对对数体积差(lAVD)、单病灶召回率(Lesion Recall)与单病灶 F1 分数——五项指标的归一化排名取均值得到最终名次,并额外给出一份独立的 inter-scanner 鲁棒性排名。
最终 20 支国际团队完成提交,前 11 名全部采用深度学习方法,冠军为中山大学团队 sysu_media,加权平均 Dice 达到 0.80,与独立人工观察者 0.77-0.79 的一致性水平相当甚至更高。
§1.2 战略价值
维度一:跨扫描仪泛化研究的稀缺标准床
医学影像 AI 最大的落地障碍之一是"域偏移"——在 A 医院数据上训练的模型,到了 B 医院的机器上性能断崖式下跌。绝大多数公开数据集在划分时是随机切分,训练集和测试集共享同一个成像分布,因此掩盖了这一问题。WMH Challenge 的处理方式是刻意把 5 台扫描仪分成"训练可见(3 台)"和"测试可见/不可见(5 台,其中 2 台从未在训练出现)"两组,并单独发布 inter-scanner 鲁棒性排名。
论文的结论极具警示性:总体排名第 1 的 sysu_media 在鲁棒性排名中退居第 2,而总体排名第 9 的 ipmi-bern 反而拿下鲁棒性第 1。此外,使用 dropout 训练的方法鲁棒性排名显著更差;鲁棒性前 10 名中包含 3 个非深度学习方法,而最终排名前 20 中一个都没有。这些发现有直接的工程含义:追求峰值精度和追求跨设备稳定性是两个不同的优化目标,不能假设前者蕴含后者。截至 2026-09,挑战赛官网仍持续接受提交,这一数据集因此长期保有"活体基准"的属性。
维度二:病灶级指标对体积级指标的补充
传统的分割评测几乎只看 Dice。但在 WMH 这个任务上,Dice 会严重掩盖一个临床关键问题:小病灶漏检。一个受试者可能有 60 多个 WMH 病灶(论文报告均值 62 ± 35 个),其中大量是体积很小的孤立斑点。如果模型只检测出少数几个大融合病灶,Dice 依然可以很高,但在临床意义上却漏掉了散在的、可能提示早期小血管病变的信号。
WMH Challenge 因此引入了两项病灶级指标:Lesion Recall(以三维连通分量为单位计算检出率)和 Lesion F1。这两项指标立刻暴露了所有方法的短板——论文报告所有方法在小病灶上的召回率均低于大病灶,下降幅度从冠军的 −20% 到 text_class 的 −87%。这个"指标设计本身产生科学发现"的案例,对后续所有病灶分割数据集的设计都有方法论价值,也在 ATLAS 等其他 MICCAI 脑影像挑战中得到呼应。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 标注内容 | 核心差异化 |
|---|---|---|---|---|
| WMH Challenge | 170 例(60 训练 + 110 测试) | T1 + FLAIR | WMH 二值掩膜 + 其他病理标签 2 | 包含 2 台未见扫描仪,专测跨设备泛化;测试集永久保密;5 指标 + 鲁棒性双排名 |
| ISLES 系列 | 各届不同,ISLES 2022 含 ATLAS v2.0 的 955 例公开图像 | DWI / ADC / FLAIR / T1 | 缺血性卒中病灶掩膜 | 急性/亚急性/慢性卒中;多模态(ISLES22)与单通道(ATLAS)两线并行 |
| ATLAS v2.0 | 1,271 例(655 训练 + 300 测试 + 316 泛化) | T1 单通道 | 卒中后病灶掩膜 | 数据集规模远大于 WMH Challenge;含完全隐藏的泛化集;BIDS 格式规范 |
| MSSEG / 多发性硬化分割集 | 各届不同 | T1 / T2 / FLAIR / PD | MS 病灶掩膜 | 病灶形态与分布与血管源性 WMH 不同(Dawson 手指征),标注协议独立 |
| ADNI 衍生 WMH 集 | 数千例量级 | T1 / FLAIR | 半自动 + 人工修正 WMH | 纵向随访丰富;WMH 为附加产物而非主要标注目标,协议一致性弱于专项挑战 |
| UK Biobank 影像子集 | 数万例量级 | T1 / T2-FLAIR | 自动 pipeline 生成 WMH 体积 | 群体规模极大,但以体积表型为主,缺少逐例人工像素级标注 |
关键读法:WMH Challenge 的样本量在这些同类数据集中并不占优,它的价值来自划分设计与评测协议而非规模。如果你的课题是"如何让模型在未见设备上稳定工作",它是目前最标准、最被广泛引用的试验床之一;如果你的课题是"最大化单中心分割精度",ATLAS 或更大型数据集可能更合适。与 ISLES、ATLAS 等 MICCAI 脑影像挑战并列,它代表了"小样本 + 强协议"这一路线。
§1.4 版本时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2017-09-14 | 挑战赛正式举办 | 与 MICCAI 2017(加拿大魁北克城)同期举行,60 例训练数据在赛前释放 |
| 2017-09-14 | 提交截止,20 支团队完成评测 | 方法以 Docker 容器提交,组织者在隐藏 110 例上运行 |
| 2018 | 冠军方法论文预印 | Li et al. 发布 Fully Convolutional Network Ensembles(后刊于 NeuroImage),公开代码与模型 |
| 2019-03-19 | 结果论文在线发表 | IEEE TMI 提前在线,DOI 10.1109/TMI.2019.2905770 |
| 2019-11-01 | 结果论文正式刊出 | IEEE TMI 第 38 卷第 11 期,页码 2556-2568 |
| 赛后(时间未披露) | 部分团队提交更新版本 | misp、neuro.ml、nih_cidi、sysu_media、tig 提交更新版,性能均有提升 |
| 持续至今 | 挑战赛保持开放 | 官网声明继续接受新提交,作为公开的方法评测平台 |
§1.5 典型应用场景
场景一:跨扫描仪泛化方法研发。 把 3 台训练扫描仪当作 3 个"域",在留出的 2 台未见扫描仪上评估域适应(domain adaptation)、测试时自适应(TTA)、元学习等方法。这是该数据集被引用最多的用法,也是其划分设计直接支持的场景。
场景二:小病灶检测专项研究。 用病灶级 Recall 与 F1 作为主指标,研究不平衡采样、焦点损失(focal loss)、病灶级后处理、连通分量重建等策略。论文明确指出这是全领域最大的改进空间。
场景三:各向异性三维医学图像处理。 FLAIR 重采样后层厚 3 mm、面内约 1 mm,层间分辨率比约 3:1。这让 2D 与 3D 网络的取舍成为一个真实的研究问题——论文观察到 3D 卷积方法整体排名偏低,而部分 3D 方法(cian、nic-vicorob、misp)又表现良好,说明关键在实现而非维度本身。
场景四:半监督与弱监督学习基准。 只有 60 例带像素级标注,这个规模逼迫研究者思考如何利用无标注数据。可用第三方镜像中未使用的病例(若可得)或外部无标注 FLAIR 数据进行自监督预训练。
场景五:评测协议与指标设计教学。 五指标 + 双排名 + bootstrap 置信区间的完整评测设计,是医学影像课程中讲解"如何公平比较算法"的经典案例。
§2 医学背景
§2.1 ICD-11 编码映射
| 标签 | ICD-11 编码 | 中文名称 | 说明 |
|---|---|---|---|
| 脑小血管病(WMH 所属疾病实体) | 8B22 | 其他特指的脑血管疾病 | KEGG 疾病条目 H00877(Brain small vessel disease)即归入此类 |
| 脑血管疾病(上位类目) | 8B | 脑血管疾病 | ICD-11 第 08 章"神经系统疾病"下的类目 |
| 脑缺血 | 8B10 | 脑缺血 | 小血管病相关缺血机制的上位编码 |
| 无急性脑症状的脑血管病 | 8B21 | 无急性脑症状的脑血管病 | 适用于无症状性脑小血管病影像学表现 |
| 血管性认知障碍(并发症) | 6D8x 系列 | 认知障碍相关的血管性病因 | 存在认知损害时,在认知障碍章节另编码并标注血管病因 |
编码实践提示:WMH 本身是影像学描述词(radiological descriptor),而非独立疾病诊断。临床记录中应先写明病变类型(如脑小血管病)、相关危险因素(高血压、糖尿病)、认知状态与卒中/TIA 史,再选择编码。ICD-10 时代的对应编码为 I67.82(脑缺血,含慢性)与 I67.9(未特指的脑血管病),跨版本映射时需注意类目粒度差异。
§2.1b SNOMED CT 映射
| 标签 | ICD-11 | SNOMED CT 术语 | 语义说明 |
|---|---|---|---|
| 脑小血管病 | 8B22 | Cerebral small vessel disease | 涵盖小动脉、微动脉、毛细血管、小静脉的病理谱系 |
| 脑白质高信号 | 8B22 | White matter hyperintensity of presumed vascular origin | 影像学所见,非独立诊断实体 |
| 脑白质疏松 | 8B22 | Leukoaraiosis | CT 低密度 / T2 高信号的放射学描述词,不特指病因 |
| 腔隙灶 | 8B22 | Lacunar infarct | 直径 3-15 mm 的皮质下小梗死腔,常与 WMH 共存 |
| 脑微出血 | 8B22 | Cerebral microbleed | 含铁血黄素沉积,SWI/GRE 最敏感 |
| 血管性痴呆 | 6D81 | Vascular dementia | WMH 负荷与认知损害的终点事件之一 |
术语学提醒:文献中 white matter hyperintensities、white matter lesions、white matter changes、leukoaraiosis、unidentified bright objects 常被混用,指的是同一类影像学表现。STRIVE-2 共识推荐在 MRI 语境下使用"white matter hyperintensity (WMH)" 并在需要时明确"of presumed vascular origin"。本数据集严格遵循这一定义,且明确排除多发性硬化等其他病因导致的白质信号异常。
§2.2 疾病简介与流行病学
脑白质高信号是脑小血管病(cerebral small vessel disease, cSVD)最主要的影像学表现之一。在 T2 加权与 FLAIR 序列上,它们表现为脑白质内边界模糊的片状高信号;而在 T1 加权图像上则呈低信号。病理基础通常包括慢性低灌注导致的脱髓鞘、轴索丢失与胶质增生。
流行病学要点:WMH 的患病率随年龄急剧上升。人群研究中,50 岁以上约 65% 以上可检出一定程度的 WMH,60-70 岁以上可达 90% 以上;健康儿童罕见,健康青年不常见。影像学上 WMH 的患病率报告区间宽(约 5%-96%),差异主要来自人群年龄结构、场强(3T 比 1.5T 更敏感)与判定方法。
临床关联:meta 分析显示,携带 WMH 的个体发生痴呆与卒中的风险约为无 WMH 者的 3 倍,死亡风险约 2 倍。其他相关表现包括步态与平衡障碍、跌倒风险增高、抑郁、注意力与信息处理速度下降。WMH 也常与高血压、糖尿病、高脂血症、吸烟等传统血管危险因素并存。近年证据表明,控制血压等危险因素可减缓 WMH 进展并降低卒中与轻度认知障碍风险,这也是 WMH 定量从"研究工具"走向"临床可干预指标"的关键。
§2.3 临床任务定义
| 任务层级 | 具体内容 | 常用手段 | 本数据集支持程度 |
|---|---|---|---|
| 筛查 | 在常规脑 MRI 中检出 WMH 的存在与分布 | 视觉阅读 + 半定量量表(Fazekas、ARWMC) | 部分支持:数据为影像原料,未提供量表评分 |
| 诊断 | 结合 STRIVE 标准判定 WMH 是否属血管源性,并排除 MS 等鉴别诊断 | 影像 + 临床 + 实验室 | 支持:标注严格按 STRIVE 执行,且单列"其他病理"标签 2 |
| 分级 | 按 WMH 体积或空间分布分级(如 Fazekas 0-3 级) | 视觉量表或体积定量 | 部分支持:提供体积真值,但未提供官方分级标签 |
| 定量 | 精确测量 WMH 体积与病灶数目,用于纵向随访 | 人工勾画、半自动或全自动分割 | 完全支持:这就是挑战赛的核心任务 |
| 预后 | 用 WMH 负荷预测卒中、痴呆、认知衰退风险 | 体积 + 临床变量建模 | 不支持:数据集本身不含随访与结局变量 |
本数据集的定位:它服务于上表的"诊断辅助"与"定量"两个环节。需要特别强调的是,该数据集不包含任何临床结局、随访信息或人口学细节(除年龄与性别统计值),因此不能直接用于预后建模。任何声称用它在预后任务上训练的报告,都存在数据误用。
§2.4 患者人群
| 维度 | 内容 | 来源 |
|---|---|---|
| 来源机构 | UMC Utrecht(荷兰)、VU Amsterdam / Amsterdam UMC(荷兰)、NUHS Singapore(新加坡) | 论文 |
| 采集时间 | 官方未披露具体起止年份 | — |
| 年龄 | 均值 70.1 ± 9.3 岁 | 论文 |
| 性别 | 50% 男性 | 论文 |
| 种族/族裔 | 官方未披露逐例族裔;地理上覆盖荷兰与新加坡 | — |
| 就医类型 | 回顾性纳入的常规脑 MRI 检查受试者,具不同程度的衰老相关退行性与血管性病理 | 论文 |
| WMH 基线负荷 | 体积均值 16.9 ± 21.6 ml(范围 0.78-195.15 ml);病灶数均值 62 ± 35 个(范围 12-194) | 论文 |
| 训练/测试可比性 | 年龄 p=0.45、性别 p=0.87、WMH 体积 p=0.74、WMH 数目 p=0.75、腔隙灶 p=0.86、其他病理体积 p=0.62,均无显著差异 | 论文 |
人群偏倚提示:受试者平均年龄 70 岁,且均为荷兰与新加坡的老年人群。这意味着数据集中几乎不存在儿童或青少年病例,也不代表其他地理区域的人群特征。若将模型直接迁移到年轻人群或不同族裔人群,需要重新验证。
§2.5 临床价值
从"人工读片"到"可计算生物标志物"。 WMH 的临床意义长期受制于测量手段:视觉量表(如 Fazekas 分级)粗糙且主观,人工逐层勾画则耗时到无法大规模开展。论文明确指出了这一矛盾——人工分割"费时费力"(laborious procedure),且不同观察者之间差异显著。自动化分割的价值在于把 WMH 从"定性印象"转变为"可计算、可比较、可纵向追踪"的定量生物标志物。
观察者间一致性构成性能上界。 这一点常被忽略但极为关键:论文中两位独立观察者 O3、O4 与参考标准的一致性 Dice 分别为 0.77 和 0.79。也就是说,即便是受训的专家,标注结果之间也只有约八成重合。冠军算法 Dice 0.80 已经达到甚至超过这一水平。这意味着在 WMH 任务上,把 Dice 从 0.80 推向 0.90 的边际临床价值,可能远低于把病灶级 Recall 从 0.84 提升到 0.95。
小病灶的临床权重被体积指标系统性低估。 病灶级指标揭示的问题具有直接的临床含义:散在的小 WMH 往往提示早期、弥漫的小血管病变,而融合的大病灶通常是晚期表现。一个只擅长分割大融合病灶的模型,在 Dice 上可能非常漂亮,却可能漏掉最需要早期干预的信号。这构成了"为什么不能只用 Dice"的临床论证。
§2.6 金标准构建
| 维度 | 内容 |
|---|---|
| 标注方式 | 人工逐体素轮廓勾画(contour drawing technique),随后转为二值掩膜 |
| 标注标准 | STRIVE 标准(STandards for ReportIng Vascular changes on nEuroimaging) |
| 主要标注者 | 观察者 O1:具备 WMH 人工分割的丰富经验,此前已标注 1000+ 例 |
| 同行评审者 | 观察者 O2:11 年定量神经影像与临床神经放射学经验 |
| 一致性流程 | O2 逐例评审;若发现错误或不符 STRIVE 标准之处,在 O1、O2 共识会议中由 O1 修正 |
| 最终参考标准 | O1 经 O2 评审后修正的分割结果 |
| 观察者间一致性标注 | O3(受训、无丰富经验)与 O4(受训、有经验)独立标注 60 例训练图像 |
| 观察者间一致性结果 | O3:DSC 0.77(0.74-0.80)、H95 6.79 mm;O4:DSC 0.79(0.76-0.81)、H95 7.22 mm |
| 二值化规则 | 体素体积 >50% 落在勾画轮廓内即判为 WMH |
标签体系与抑制规则:
| 标签值 | 含义 | 官方评测处理 |
|---|---|---|
| 0 | 背景 | 负类 |
| 1 | WMH(推定血管源性) | 正类,唯一计分目标 |
| 2 | 其他病理(腔隙灶、非腔隙性梗死、(微)出血) | 评测中忽略(ignored in evaluation) |
标签 2 的掩膜按 3×3×1 体素核在平面内膨胀 1 像素。膨胀后若标签 1 与标签 2 出现重叠,该体素判为标签 1(WMH 优先)。这一"WMH 优先"规则在需要同时使用标签 2 做辅助任务时必须精确复现,否则会引入边界处的系统性标签偏移。
§3 数据集规格
§3.0 版本抉择矩阵
WMH Challenge 官方只发布一个版本(2017 冻结版),但其"发布形态"存在多种选择,另外社区还存在第三方镜像分发。决策时请按下表选择。
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 复现官方挑战赛提交 | 官方注册 + Docker 提交协议 | 训练数据约 399 MB | 只有官方提供隐藏测试集评测;提交后可获得与论文可比的名次 |
| 本地训练与交叉验证 | 官网注册后下载官方训练集(60 例,含原始预处理两版) | 约 399 MB | 数据完整、目录结构规范、含配准参数与 face mask,无许可不确定性 |
| 快速原型与代码调试 | 官方训练集 + 手动留出 12 例作本地验证 | 约 399 MB | 官方未提供训练集内部划分,需自行按扫描仪分层留出 |
| 快速获取无需注册 | 第三方镜像(Hugging Face / Kaggle) | 约 399 MB | 免注册即时可用;但均为第三方再分发,许可标注不一致(CC-BY-4.0 / Unknown),仅建议用于代码调试 |
| 跨设备泛化研究 | 官方训练集,按扫描仪分组做域划分 | 约 399 MB | 3 台训练扫描仪天然构成 3 个域,可模拟与官方的"未见扫描仪"场景 |
| 外部验证 | 自采数据 + 官方训练集训练的模型 | 取决于自采 | 官方测试集不可得,跨机构验证必须自行收集外部数据 |
核心判断:如果你要发表与官方排行榜可比的结果,必须走官方注册 + Docker 提交路径;如果只是做方法原型验证,官方训练集加自划分足够;第三方镜像只适合解决"注册流程太长想先跑通代码"的问题。
§3.1 模态详情
| 模态 | 采集维度 | 原始分辨率 | 处理后分辨率 | 作用 |
|---|---|---|---|---|
| T1 加权(3D) | 3D 容积采集 | 依扫描仪而定 | 重采样为 2D 多层面以匹配 FLAIR 空间 | 提供解剖参照;WMH 在 T1 上呈低信号 |
| FLAIR(2D 多层面) | 2D 多层面采集 | 依扫描仪而定 | 层厚重采样至 3.00 mm,层间无间隙 | 参考标准定义于 FLAIR;WMH 在此呈清晰高信号 |
两模态的配合逻辑:T1 在解剖结构上更好,但 WMH 在 T1 上表现为"信号缺失",与脑脊液、部分正常结构难以区分;FLAIR 通过抑制脑脊液信号,让 WMH 的亮白特征凸显出来。因此FLAIR 是主力通道,T1 是辅助通道。论文统计显示,仅用 FLAIR 的方法也能取得不错成绩(如 achilles),但多模态输入对泛化有帮助。
关键陷阱:论文观察到 3D 卷积方法整体排名偏低。一个重要原因是所有 FLAIR 都是 2D 多层面采集(重采样后约 1×1×3 mm,层间分辨率比 3:1),3D 网络会"误以为"层间信息与层内信息等价。而部分 3D 方法(cian、nic-vicorob、misp)表现良好,说明问题不在 3D 本身,而在是否针对各向异性做了适配。
§3.2 按子集与扫描仪划分的样本数
| 子集 | 中心 / 扫描仪 | 厂商与型号 | 场强 | 体素尺寸(mm) | FLAIR 矩阵 | 训练例数 | 测试例数 |
|---|---|---|---|---|---|---|---|
| Utrecht | UMC Utrecht | Philips Achieva | 3T | 0.96 × 0.95 × 3.00 | 240 × 240 × 48 | 20 | 30 |
| Singapore | NUHS Singapore | Siemens TrioTim | 3T | 1.00 × 1.00 × 3.00 | 252 × 232 × 48 | 20 | 30 |
| GE3T | Amsterdam | GE Signa HDxt | 3T | 0.98 × 0.98 × 1.20 | 132 × 256 × 83 | 20 | 30 |
| AMS GE1.5T | Amsterdam | Philips Ingenuity(论文表格标注为 3T,此处照录原文) | 1.5T | 1.04 × 1.04 × 0.56 | 官方未披露 | 0 | 10 |
| AMS PETMR | Amsterdam | GE Signa HDxt | 1.5T | 1.21 × 1.21 × 1.30 | 官方未披露 | 0 | 10 |
| 合计 | 3 家机构 | 3 个厂商 | 1.5T / 3T | 0.96-1.21 mm 面内,0.56-3.00 mm 层厚 | — | 60 | 110 |
读表要点:
- 训练与测试的扫描仪不重合:训练只覆盖前 3 台,测试覆盖全部 5 台。后 2 台(AMS GE1.5T、AMS PETMR)在训练阶段完全不可见,且合计 20 例——这 20 例就是官方"跨扫描仪泛化"考核的全部依据。
- 层厚差异巨大:从 0.56 mm(AMS GE1.5T)到 3.00 mm(Utrecht / Singapore),相差 5 倍以上。任何依赖固定体素间距的预处理都会在这些数据上失败。
- 论文表格中的场强标注疑似有误:AMS GE1.5T 一行的扫描仪型号名含"1.5T"但场强列标注为"3T",两者自相矛盾。本词条照录原文并提示该不确定性,实际场强以官方数据说明为准。
§3.3 数据格式
| 文件类型 | 扩展名 | 说明 |
|---|---|---|
| 图像卷 | .nii.gz / .nii(部分镜像为 .hdr + .img) | 标准 NIfTI 格式,含体素数据与仿射矩阵 |
| 分割掩膜 | .nii.gz | 标签值 0/1/2,与 FLAIR 空间对齐 |
| 配准参数 | 文本文件 | elastix 输出的 T1 → FLAIR 变换参数 |
| 面部移除掩膜 | .nii.gz | 用于去除受试者面部区域的二值掩膜 |
| 元数据 | .csv / .xlsx | 受试者级统计(部分第三方镜像提供) |
§3.4 存储大小
| 项目 | 大小 | 来源 |
|---|---|---|
| 官方训练集压缩包 | 官方未披露 | — |
| 第三方镜像总文件大小 | 约 399 MB | Hugging Face / Kaggle 镜像页 |
| 单例典型内存占用(FLAIR,float32) | 约 240×240×48×4 ≈ 11 MB | 按 Utrecht 矩阵估算 |
| 单例典型内存占用(T1,float32) | 与 FLAIR 同量级 | 重采样后与 FLAIR 空间一致 |
| 完整 60 例加载至内存 | 约 1.3-2.0 GB(float32,双模态) | 按上两行估算 |
内存预算提示:数据集体量很小(不足 1 GB),瓶颈不在存储而在训练时的批量组织。60 例的规模意味着如果按整卷输入,一个 epoch 只有 60 个样本;必须走三维块(patch)采样路线,否则梯度更新次数不足。
§3.5 标注方式
| 维度 | 内容 |
|---|---|
| 标注类型 | 全监督,逐体素人工勾画(像素级密集标注) |
| 标注工具 | 轮廓勾画技术(contour drawing),具体软件官方未披露 |
| 标注层级 | 三维连通分量级(每个 WMH 病灶是一个 3D 连通分量) |
| 标注范围 | 仅 60 例训练数据带公开标注;110 例测试数据标注由组织者持有且永不公开 |
| 其他病理 | 同步标注腔隙灶、非腔隙性梗死、(微)出血,存入标签 2 |
| 双模态一致性 | 参考标准定义于 FLAIR,T1 重采样对齐至 FLAIR 空间,故标注天然对齐 FLAIR |
| 标注粒度 | 二值分割 + 多类标签(0/1/2),非实例分割 |
§3.6 标注者资质与一致性
| 观察者 | 资质 | 角色 | 与参考标准的一致性 |
|---|---|---|---|
| O1 | WMH 分割丰富经验,此前已标注 1000+ 例 | 主要标注者(reference standard 来源) | 基准 |
| O2 | 11 年定量神经影像与临床神经放射学经验 | 同行评审者,共识会议主持人 | 不适用(评审者) |
| O3 | 受训但无丰富 WMH 分割经验 | 独立性观察者(仅标注 60 例训练数据) | DSC 0.77(0.74-0.80)、H95 6.79 mm、lAVD 0.176、Recall 0.65、F1 0.74 |
| O4 | 受训且有 WMH 分割经验 | 独立性观察者(仅标注 60 例训练数据) | DSC 0.79(0.76-0.81)、H95 7.22 mm、lAVD 0.195、Recall 0.66、F1 0.76 |
一致性的深层含义:O3 与 O4 的召回率(0.65 与 0.66)明显低于其 F1(0.74 与 0.76),说明两位观察者的误差主要来自漏检小病灶而非误报——这与算法方法的失败模式完全一致。论文指出,高排名方法的表现已达到或超过这两位独立观察者,提示自动方法在 WMH 定量任务上具备替代个体人工观察者的潜力。
为什么"人工上界"只有 0.79:这不是标注质量差,而是 WMH 的边界本身模糊(部分容积效应、与血管周围间隙及陈旧腔隙灶的信号重叠)。任何以 Dice = 1.0 为目标的建模假设都是错误的,合理的目标区间是 0.78-0.83。
§3.7 采集周期
官方未披露具体采集起止年份。已知的时间锚点为:挑战赛于 2017-09-14 在 MICCAI 2017(加拿大魁北克城)举办,数据在此之前完成采集、标注与冻结。结果论文于 2019-03-19 在线发表。后续存在赛后的方法更新提交,但官方未公布新增提交的时间线。
§3.8 地域覆盖
| 国家/地区 | 机构 | 贡献扫描仪 | 训练例数 | 测试例数 |
|---|---|---|---|---|
| 荷兰 | UMC Utrecht(Image Sciences Institute) | Philips Achieva 3T | 20 | 30 |
| 荷兰 | VU Amsterdam / Amsterdam UMC | GE Signa HDxt 3T、Philips Ingenuity 1.5T、GE Signa HDxt 1.5T | 20 | 50 |
| 新加坡 | NUHS Singapore | Siemens TrioTim 3T | 20 | 30 |
地域局限:仅覆盖荷兰与新加坡两个高收入国家的 3 家机构,且受试者平均年龄 70 岁。中国、北美、非洲、南美人群完全缺席。对于需要人群多样性的应用(如不同族裔的脑结构差异),该数据集不适用。
§3.9 设备规格与成像参数
| 参数 | 取值或范围 | 影响 |
|---|---|---|
| 场强 | 1.5T / 3T(论文表格中标注存在矛盾,见 §3.2) | 场强影响信噪比与 WMH 可见度;3T 更敏感 |
| 厂商 | Philips、Siemens、GE | 三厂商各有强度归一化与重建差异 |
| 面内分辨率 | 0.95-1.21 mm | 差异约 27%,影响小病灶的边缘像素数 |
| 层厚 | 0.56-3.00 mm(FLAIR 统一重采样至 3.00 mm) | 原始层厚最大相差 5 倍以上 |
| FLAIR 矩阵 | 132×256×83 至 252×232×48 | 体积与视场差异显著 |
| 偏置场校正 | SPM12 | 官方已统一处理,处理前后两个版本均提供 |
| 配准 | elastix(T1 → 重采样 FLAIR) | 变换参数随数据提供 |
| 面部去除 | 手工去除,掩膜随数据提供 | 官方脱敏步骤 |
| 切片间隙 | 重采样后层间无间隙 | 避免了间隙导致的采样伪影 |
§3.10 深度溯源链
临床常规脑 MRI 采集(荷兰 2 家 + 新加坡 1 家机构,5 台扫描仪)
↓
回顾性纳入受试者(具不同程度衰老相关退行性与血管性病理)
↓
SPM12 偏置场校正(所有序列)
↓
elastix 配准:3D T1 → 重采样后的 FLAIR 空间(变换参数保留并随数据发布)
↓
3D FLAIR 重采样至层厚 3.00 mm,层间无间隙
↓
手工去除受试者面部(面部掩膜随数据发布)
↓
神经影像专家 O1 按 STRIVE 标准逐体素轮廓勾画 WMH(及腔隙灶/梗死/微出血)
↓
专家 O2 逐例同行评审 → 分歧经共识会议修正 → 冻结为参考标准
↓
二值化(>50% 体积落在轮廓内即判为 WMH);标签 2 平面内膨胀 1 像素;重叠处 WMH 优先
↓
60 例(前 3 台扫描仪)带标注公开释放 ──→ 训练集
110 例(全部 5 台扫描仪)保留不公开 ──→ 隐藏测试集(含 20 例未见扫描仪)
↓
Docker 容器化提交 → 组织者逐例运行 → 五指标评测 + inter-scanner 鲁棒性排名
溯源链的工程含义:官方同时提供**预处理前(orig/)与预处理后(pre/)**两个版本。使用预处理后版本能省去偏置场校正与配准步骤,但会失去对原始强度的控制;使用预处理前版本则获得更大的方法自由度,代价是必须自行复现 SPM12 + elastix 流程。两者不可混用——混用会导致强度分布不一致。
§4 数据结构
§4.0 目录树
wmh_data_root/
├── training/ # 60 例公开训练数据
│ ├── Utrecht/ # 20 例,Philips Achieva 3T
│ │ ├── 1/
│ │ │ ├── orig/ # 预处理前
│ │ │ │ ├── T1.nii.gz # 3D T1 加权原始图像
│ │ │ │ ├── FLAIR.nii.gz # 2D 多层面 FLAIR 原始图像
│ │ │ │ ├── T1_to_FLAIR.txt # elastix 配准变换参数
│ │ │ │ ├── T1_to_FLAIR_0.nii.gz
│ │ │ │ ├── T1_to_FLAIR_1.nii.gz
│ │ │ │ ├── brainmask.nii.gz # 脑掩膜
│ │ │ │ └── facemask.nii.gz # 面部移除掩膜
│ │ │ ├── pre/ # 预处理后(偏置场校正 + 对齐 FLAIR 空间)
│ │ │ │ ├── T1.nii.gz
│ │ │ │ ├── FLAIR.nii.gz
│ │ │ │ └── brainmask.nii.gz
│ │ │ └── wmh.nii.gz # 标签掩膜(0 背景 / 1 WMH / 2 其他病理)
│ │ ├── 2/
│ │ └── ... # 至 20
│ ├── Singapore/ # 20 例,Siemens TrioTim 3T
│ │ ├── 21/ ... 40/
│ └── Amsterdam/
│ └── GE3T/ # 20 例,GE Signa HDxt 3T
│ ├── 101/ ... 120/
├── test/ # 110 例隐藏测试数据:永不公开
│ └── (organizer-only, 含 AMS GE1.5T 与 AMS PETMR 各 10 例)
└── (评测脚本与 Docker 示例:见挑战官网 methods 页)
目录约定的四个关键点:
- 三层结构
{中心}/{扫描仪}/{受试者 ID}。受试者 ID 全局唯一但不连续(Utrecht 类 1-20、GE3T 类 101-120),解析时不要假设 ID 连续或从 1 开始。 orig/与pre/同例并存。训练时建议统一用pre/,除非要研究预处理本身的影响。wmh.nii.gz直接位于受试者目录下,不在orig/或pre/内。第三方镜像可能把掩膜放在其他位置,加载代码需适配。- 标签值有三类,且标签 2 在官方评测中被忽略。若损失函数把所有非零当正类,会引入系统性偏差。
§4.1 DAIMS 字段字典
以下字段字典以"受试者级元数据表"为对象(每行一个受试者),字段名按官方目录结构与论文统计量归纳。表中"观测误差"列为该字段可能的测量或记录误差来源。
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| subject_id | string | 全局唯一受试者标识 | “Utrecht/3T/7” | 划分与索引主键 | 无 | 不允许缺失 | 60 个训练值 + 110 个测试值 |
| center | categorical | 采集机构 | “Amsterdam” | 域标签、分层划分 | 无 | 不允许缺失 | Utrecht / Singapore / Amsterdam |
| scanner | categorical | 扫描仪型号与场强组合 | “GE3T” | 域标签、跨扫描仪评估 | 论文表格场强标注存疑 | 不允许缺失 | Utrecht / Singapore / GE3T / GE1.5T / PETMR |
| vendor | categorical | 设备厂商 | “Siemens” | 厂商级泛化分析 | 无 | 不允许缺失 | Philips / Siemens / GE |
| field_strength | categorical | 场强 | “3T” | 分层与亚组分析 | AMS GE1.5T 行标注矛盾 | 不允许缺失 | 1.5T / 3T |
| voxel_size | float tuple | 体素尺寸(mm) | [0.96, 0.95, 3.00] | 重采样参数推导 | 各向异性导致插值误差 | 不允许缺失 | 面内 0.95-1.21;层厚 0.56-3.00 |
| t1_path | path | T1 加权图像路径 | “training/Utrecht/1/pre/T1.nii.gz” | 多模态输入 | 无 | 不允许缺失 | 有效路径 |
| flair_path | path | FLAIR 图像路径 | “training/Utrecht/1/pre/FLAIR.nii.gz” | 主模态输入 | 无 | 不允许缺失 | 有效路径 |
| mask_path | path | WMH 标签掩膜路径 | “training/Utrecht/1/wmh.nii.gz” | 监督信号 | 观察者间 Dice 仅 0.77-0.79 | 测试集为 MA(缺失依设计) | 训练集必有;测试集必无 |
| wmh_volume_ml | float | WMH 总体积(ml) | 11.18 | 回归目标、分层抽样 | 受标注边界模糊影响 | 不允许缺失(有标注时) | 0.78-195.15;均值 16.9 ± 21.6 |
| lesion_count | integer | WMH 病灶数(3D 连通分量) | 57 | 病灶级指标、分层抽样 | 与连通性判定阈值相关 | 不允许缺失(有标注时) | 12-194;均值 62 ± 35 |
| label_2_volume_ml | float | 其他病理体积(ml) | 官方未披露逐例值 | 辅助任务、假阳性抑制 | 同上 | 无标注时为 MA | 非负 |
| age | float | 受试者年龄(岁) | 70.1 | 协变量、亚组分析 | 仅提供群体统计量 | MA(逐例值未发布) | 群体均值 70.1 ± 9.3 |
| sex | categorical | 受试者性别 | “M” | 协变量、公平性分析 | 仅提供群体比例 | MA(逐例值未发布) | 群体 50% 男性 |
| split | categorical | 数据集划分归属 | “train” | 防止泄漏 | 无 | 不允许缺失 | train / test |
字典使用提示:上表中 age、sex、label_2_volume_ml 三个字段在公开发布中是信息性缺失(MA = missing by design)——不是数据丢失,而是官方从未发布逐例值。这是挑战赛刻意的最小化披露策略,设计隐私保护分析时必须考虑:你无法在受试者级做年龄分层,只能使用论文给出的群体统计量。
§4.2 标签分布
| 标签 | 含义 | 训练集中的体素占比 | 官方评测处理 |
|---|---|---|---|
| 0 | 背景(含正常白质、灰质、脑脊液) | 绝大多数(估计 >99%) | 负类 |
| 1 | WMH(推定血管源性) | 极小(按体积均值 16.9 ml 与全脑约 1,200 ml 估算,约 1-2%) | 正类,唯一计分目标 |
| 2 | 其他病理(腔隙灶、非腔隙性梗死、(微)出血) | 极小 | 忽略(ignored in evaluation) |
类别不平衡的量级:以 Utrecht 扫描仪 FLAIR 矩阵 240×240×48 计算,单例体素总数约 276 万;WMH 体积均值 16.9 ml 对应约 1.7 万体素(按 0.96×0.95×3.00 mm 体素体积约 2.7 mm³ 折算,约 6,200 体素;实际因扫描仪而异)。正类占比在 0.1%-1% 量级,属于典型的极端不平衡分割任务。
病灶级不平衡更严重:均值 62 个病灶中,大量是几十个体素的小病灶。按中位病灶大小划分后,论文发现所有方法在小病灶上的召回率都明显低于大病灶——这正是病灶级指标要捕捉的信号。
§4.3 关键统计量
| 统计量 | 数值 | 备注 |
|---|---|---|
| 受试者总数 | 170 | 60 训练 + 110 测试 |
| 年龄(均值 ± 标准差) | 70.1 ± 9.3 岁 | 群体统计,逐例值未发布 |
| 男性比例 | 50% | 群体统计 |
| WMH 体积最小值 | 0.78 ml | 极小负荷病例存在 |
| WMH 体积第一四分位 | 3.24 ml | — |
| WMH 体积中位数 | 11.18 ml | — |
| WMH 体积第三四分位 | 23.00 ml | — |
| WMH 体积最大值 | 195.15 ml | 极大负荷,约为最小值的 250 倍 |
| WMH 体积均值 | 16.9 ± 21.6 ml | 标准差大于均值,强右偏分布 |
| 病灶数最小值 | 12 | — |
| 病灶数中位数 | 57 | — |
| 病灶数最大值 | 194 | — |
| 病灶数均值 | 62 ± 35 | 近正态,离散度中等 |
| 训练/测试年龄差异 | p = 0.45 | 无显著差异 |
| 训练/测试 WMH 体积差异 | p = 0.74 | 无显著差异 |
| 训练/测试 WMH 数目差异 | p = 0.75 | 无显著差异 |
分布形态的实际影响:WMH 体积的标准差(21.6)大于均值(16.9),呈强右偏——少数病例携带极大病灶负荷。这意味着简单的均值指标会被大负荷病例主导,评测必须使用对数变换(官方的 lAVD 正是为此设计)或按体积分层报告。同样,训练时若不做重采样,模型会偏向于在大病灶上表现好。
§4.4 数据层级
受试者(subject,170 例,全局唯一 ID)
└── 检查(session,官方为单次检查,无纵向随访)
└── 序列(sequence,每例 2 个:3D T1 加权 + 2D 多层面 FLAIR)
├── orig/ 版本(原始配准前图像 + 配准参数 + 脑掩膜 + 面部掩膜)
└── pre/ 版本(SPM12 偏置场校正后 + 对齐 FLAIR 空间)
└── 切片(slice,FLAIR 为 2D 多层面,层厚 3.00 mm 无间隙)
└── 体素(voxel,各向异性,面内约 1 mm × 层厚 3 mm)
└── 标签(label,0 背景 / 1 WMH / 2 其他病理)
标注层级(与数据层级正交)
└── 病灶(lesion,3D 连通分量,每例 12-194 个,均值 62 个)
层级设计的三个工程后果:
- 无纵向维度:每例只有一次检查,因此不能做进展预测、不能做纵向一致性分析。这与 ADNI 等随访队列形成鲜明对比。
- 序列数固定为 2:所有病例都有 T1 和 FLAIR,不存在缺模态情况(这一点比 BraTS 等数据集简单),因此模型可以无条件假设双通道输入。
- 切片是 2D 而非 3D 采集:FLAIR 的层间信息是"插值/重采样"出来的,不是真实采集的。2D 网络逐层处理再堆叠的路线在这份数据上是合理的一阶近似。
§4.5 缺失值与信息性缺失编码
| 情形 | 编码 | 性质 | 处理建议 |
|---|---|---|---|
| 110 例测试集无 wmh.nii.gz | MA(missing by design) | 信息性缺失,官方刻意保密 | 绝不可尝试获取;只能通过 Docker 提交获取评测分数 |
| 逐例年龄、性别未发布 | MA(missing by design) | 官方最小化披露 | 使用论文群体统计量做整体描述,不做逐例分层 |
| 逐例其他病理体积未发布 | MA(missing by design) | 官方未提供逐例统计 | 若需该信息,从 wmh.nii.gz 中提取标签 2 体素自行计算 |
| orig/ 中 T1 与 FLAIR 未严格对齐 | 结构性差异(非缺失) | 需自行应用配准参数 | 使用 pre/ 版本,或自行用提供的变换参数重采样 |
| AMS GE1.5T / PETMR 的 FLAIR 矩阵 | 官方未披露 | 信息性未披露 | 不可推断;处理时不要硬编码矩阵尺寸 |
| 部分扫描仪的场强标注矛盾 | 记录误差 | 非缺失但存疑 | 以官方数据说明为准,不要依赖论文表格该单元格 |
缺失处理的底线:该数据集的所有"缺失"都是设计性的,不是数据质量问题。不要对缺失做插补——测试集掩膜缺失是评测机制的一部分,任何试图填补它的行为都构成作弊。
§5 划分与使用建议
§5.1 官方划分
| 划分 | 例数 | 扫描仪覆盖 | 标注可得性 | 用途 |
|---|---|---|---|---|
| 训练集 | 60 | Utrecht、Singapore、GE3T(3 台,各 20 例) | 公开,含 wmh.nii.gz | 方法开发与训练 |
| 测试集 | 110 | Utrecht(30)、Singapore(30)、GE3T(30)、AMS GE1.5T(10)、AMS PETMR(10) | 永不公开 | 仅通过 Docker 提交由组织者评分 |
划分三特征:
- 按扫描仪分层而非随机切分。训练集覆盖 3 台扫描仪各 20 例,测试集中这 3 台各有 30 例,另有 2 台各 10 例全新扫描仪。这个设计使"同扫描仪泛化"与"跨扫描仪泛化"可以分开评估。
- 训练/测试在人口学与疾病负荷上经过配平。论文报告两组在年龄、性别、WMH 体积、WMH 数目、腔隙灶存在、其他病理体积六个维度上均无显著差异(p 值 0.45-0.87)。这意味着性能差距主要来自成像域偏移,而非人群构成差异——这是该数据集设计上最精巧的一点。
- 划分一旦冻结不再调整。挑战赛自 2017 年后持续接受提交,但训练/测试划分保持不变,因此不同年份的提交结果仍然可比。
§5.2 社区惯例划分
官方没有提供训练集内部的验证划分,社区实践中形成了几种常见方案:
| 方案 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 按扫描仪留一域(LOGO) | 每次留出 1 台扫描仪(20 例)作验证,用另 2 台(40 例)训练 | 最接近官方"未见扫描仪"考核 | 训练样本骤降至 40 例,方差大 |
| 分层随机 5 折 | 按扫描仪分层后随机 5 折交叉验证 | 充分利用 60 例,结果稳定 | 高估跨扫描仪性能 |
| 固定留出 12 例 | 按扫描仪各留 4 例作验证,48 例训练 | 实现简单,成本低 | 单次划分方差大 |
| 双轨验证 | 同时报告随机 5 折与 LOGO 结果 | 同时给出上界与泛化估计 | 计算成本翻倍 |
推荐做法:论文自己采用了"训练集内部评估 + 隐藏测试集评估"的双轨模式。复现研究时建议至少同时报告分层随机交叉验证(估计同分布性能)与留一扫描仪(估计泛化性能),并明确说明两者差距。这个差距本身就是一个有价值的研究对象。
§5.3 泄漏风险(重点)
泄漏风险一:以任何形式接触测试集。 110 例测试数据从未公开,理论上不存在直接泄漏。但需要注意间接泄漏路径:
- 反复向官方提交大量相似方法变体并据反馈调参,本质上是对测试集的过拟合。论文对此有防护设计——组织者会对提交频次与有效性做校验,且提供的方法说明文档(1-2 页)会被审阅。但研究者仍应自我约束:用本地验证集做模型选择,只用官方提交做最终确认。
- 论文提供了各扫描仪的细分结果(例如 Utrecht 30 例的 DSC),这些聚合数值可以被反向利用来猜测测试集特性。不建议把它当作调参信号。
泄漏风险二:orig/与pre/混用导致的隐性重复。 如果一部分样本用orig/、另一部分用pre/,同一受试者的两个版本可能同时出现在训练与验证中(若划分时按文件路径而非受试者 ID 切分)。必须按 subject_id 划分,绝不能按文件路径划分。
泄漏风险三:受试者 ID 不连续导致的划分错误。 受试者 ID 在全局唯一但不连续(如 Utrecht 1-20、GE3T 101-120)。如果按 ID 数值区间做划分(如"ID < 100 为训练"),会得到完全按中心切分的结果,而非预期的随机划分——这会让验证分数虚高。必须显式按 center/scanner 字段分层。
泄漏风险四:多模态的重复使用。 同一受试者的 T1 与 FLAIR 必须分在同一侧。若按模态分文件划分,会造成同一受试者跨集泄漏。这在 WMH 数据上尤其容易发生,因为两个模态是分开的文件。
泄漏风险五:预处理统计量泄漏。 若用全数据集(含验证集)计算强度归一化的均值方差,验证集信息会渗入训练。必须只用训练折的统计量,并在验证折上应用。这在 WMH 任务上影响显著,因为不同扫描仪的强度分布差异很大。
§5.4 划分策略与交叉验证
推荐的三层划分(60 例):
第一层 域划分 Utrecht (20) → held-out domain;Singapore (20) + GE3T (20) → 训练域
第二层 域内划分 训练域 40 例 → 训练折 32 例(各扫描仪 16 例)/ 验证折 8 例(各 4 例)
第三层 最终确认 用全部 60 例重训 → 提交官方评测(唯一一次,避免过拟合测试集)
交叉验证方案选择:
| 目标 | 推荐方案 | 折数 | 注意 |
|---|---|---|---|
| 同分布性能上界 | 分层随机 K 折 | 5 | 按 scanner 分层,三类各 20 例天然平衡 |
| 跨扫描仪泛化 | 留一扫描仪(LOGO) | 3 | 每次留出整台扫描仪;报告均值与标准差 |
| 小样本稳定性 | 重复分层 K 折 | 5 × 5 | 60 例下重复次数比折数更重要 |
| 最终提交前 | 全量训练 | — | 用 60 例全部数据训练,不再看本地验证 |
两个容易犯的错误:(1) 用 GroupKFold 按 scanner 分组时会退化为 LOGO,若目的是估计同分布性能则分组方式错误——务必先想清楚要估计哪个量;(2) 按 6:2:2 单次划分时测试集只剩 12 例,Dice 的 95% 置信区间宽度可能超过 0.05,无法支撑模型比较,因此强烈建议用交叉验证而非单次划分并报告 bootstrap 置信区间。
§5.5 外部验证建议
官方测试集不可得,真正的跨机构验证只能自采外部数据:
| 验证场景 | 数据要求 | 预期表现 | 依据 |
|---|---|---|---|
| 同厂商不同型号(Philips 3T → 1.5T) | ≥ 20 例带标注 | 中等下降 | 同扫描仪性能可保持,未见扫描仪下降 |
| 跨厂商(Siemens → GE) | ≥ 20 例带标注 | 明显下降 | 冠军方法在 AMS PETMR 上 DSC 从 0.83 降至 0.72 |
| 跨场强(3T → 1.5T) | ≥ 20 例带标注 | 明显下降 | AMS GE1.5T 与 PETMR 的 H95 均超过 10 mm |
| 跨人群(老年荷兰 → 其他族裔/年龄) | ≥ 30 例带标注 | 未知 | 官方未提供证据,必须自行验证 |
| 跨协议(研究序列 → 常规临床序列) | ≥ 30 例带标注 | 显著下降 | 外部研究显示基准方法在异构临床 MRI 上泛化差 |
最低报告要求:至少报告 DSC、H95 与病灶级 Recall 三项,并说明外部数据的厂商、场强、层厚、TR/TE。只报 DSC 会让小病灶失效问题被掩盖。论文中的 AMS GE1.5T 与 AMS PETMR 两例本质上是"内置的外部验证集",其细分结果(§8)可作为自采外部数据时的预期参考。
§6 AI 就绪指南
本章是全篇核心。所有代码均在 Python 3.11 + PyTorch 2.x + nibabel + scipy 环境下验证语法与调用链。运行前请确保已从官方渠道注册获取训练数据,或使用第三方镜像做代码调试。
§6.0 环境准备
python3.11 -m venv wmh_env && source wmh_env/bin/activate
pip install "torch>=2.0" "numpy>=1.24" "nibabel>=5.0" "scipy>=1.10" \
"scikit-learn>=1.3" "pandas>=2.0" "matplotlib>=3.7" "tqdm>=4.65" \
"SimpleITK>=2.2" "monai>=1.2"
数据集体量小:完整 60 例训练在单张 12 GB 显存 GPU 上可完成(三维块 96×96×64、批大小 2),2D 逐层方案 8 GB 足够,CPU 预处理数分钟内完成。测试集不可得,云端仅用于训练与本地验证;建议先把 60 例训练数据打包上传至持久化存储,避免每次重启重新下载。
§6.1 快速上手
# 目录结构预期(官方训练集解压后):
# data_root/training/{Utrecht|Singapore}/{1..20|21..40}/{orig/,pre/,wmh.nii.gz}
# data_root/training/Amsterdam/GE3T/{101..120}/{orig/,pre/,wmh.nii.gz}
# data_root 拼接关系:
# subject_dir = f"{data_root}/training/{center}/{scanner}/{subject_id}"
# 若 center == "Amsterdam",scanner 层为 "GE3T";否则 scanner 层与 center 同名
# 最小可用子集:先用 Utrecht 的 20 例跑通全流程(层厚统一 3.00 mm),再扩展到 60 例
import os, numpy as np, nibabel as nib
from collections import defaultdict
DATA_ROOT = os.environ.get("WMH_DATA_ROOT", "/path/to/wmh_data")
def discover_subjects(data_root):
"""遍历三层目录结构,返回受试者记录列表。
注意:受试者 ID 全局唯一但不连续(Utrecht 1-20、GE3T 101-120),
必须靠目录结构而非 ID 数值推断归属。"""
records = []
train_root = os.path.join(data_root, "training")
for center in sorted(os.listdir(train_root)):
for scanner in sorted(os.listdir(os.path.join(train_root, center))):
scanner_dir = os.path.join(train_root, center, scanner)
for subject_id in sorted(os.listdir(scanner_dir)):
subject_dir = os.path.join(scanner_dir, subject_id)
mask_path = os.path.join(subject_dir, "wmh.nii.gz")
if os.path.isfile(mask_path):
records.append({"subject_id": f"{center}/{scanner}/{subject_id}",
"center": center, "scanner": scanner,
"pre_dir": os.path.join(subject_dir, "pre"),
"mask_path": mask_path})
return records
records = discover_subjects(DATA_ROOT)
print(f"发现 {len(records)} 个训练样本")
assert len(records) == 60, f"预期 60 例训练数据,实际 {len(records)} 例"
# ---------- 读取单例,检查形状、标签与体素间距 ----------
sample = records[0]
flair_img = nib.load(os.path.join(sample["pre_dir"], "FLAIR.nii.gz"))
t1_img = nib.load(os.path.join(sample["pre_dir"], "T1.nii.gz"))
mask_img = nib.load(sample["mask_path"])
print("FLAIR shape / zooms :", flair_img.shape, flair_img.header.get_zooms())
# pre 目录内 T1 / FLAIR / 掩膜三者必须同形(已由官方配准对齐)
assert t1_img.shape == flair_img.shape == mask_img.shape, "pre 目录内三卷形状应一致"
mask_data = mask_img.get_fdata().astype(np.uint8)
print("标签取值 :", np.unique(mask_data)) # 预期 [0 1 2] 的子集
voxel_volume_mm3 = float(np.prod(flair_img.header.get_zooms()))
print(f"WMH 体积 : {(mask_data == 1).sum() * voxel_volume_mm3 / 1000.0:.2f} ml")
# 可与论文中位数 11.18 ml 对照
# ---------- 各扫描仪体素间距差异(关键前置检查) ----------
zooms_by_scanner = defaultdict(list)
for rec in records:
zooms_by_scanner[rec["scanner"]].append(
nib.load(os.path.join(rec["pre_dir"], "FLAIR.nii.gz")).header.get_zooms())
for scanner, zl in sorted(zooms_by_scanner.items()):
arr = np.array(zl, dtype=float)
print(f"{scanner:12s} n={len(zl):2d} mean={arr.mean(axis=0).round(3)} "
f"std={arr.std(axis=0).round(4)}")
# 预期:扫描仪内部间距方差接近 0,扫描仪之间差异明显(面内 ~1mm,层厚 3mm)
跑通标准:60 例、三卷同形、标签取值在 {0,1,2} 内、各扫描仪内部体素间距方差接近 0。若形状不一致,说明误用了 orig/ 而非 pre/,或解压不完整。
§6.2 数据获取
| 获取途径 | 内容 | 是否需注册 | 推荐用途 |
|---|---|---|---|
| 挑战赛官网(wmh.isi.uu.nl/0) | 官方 60 例训练集,含 orig/ 与 pre/ 两版 | 是 | 正式研究、论文投稿、官方评测提交 |
| 挑战赛官网 methods 页 | Docker 提交规范、Python 与 MATLAB 示例容器 | 是 | 准备官方评测提交 |
| 挑战赛官网 results 页 | 官方排行榜与方法描述 | 否 | 查阅完整 20 队排名 |
Hugging Face 镜像 Angelou0516/wmh-segmentation |
170 行元数据,约 399 MB,License 标注 CC-BY-4.0 | 否 | 快速调试;非官方分发,许可存疑 |
Kaggle 镜像 farahmo/wmh-dataset |
同一数据的再分发,License 标注 Unknown | 否 | 快速调试;非官方分发,许可存疑 |
| 冠军方法软件(NITRC what_v1) | 夺冠算法的代码与模型 | 否 | 复现冠军结果、作为基线 |
# 官网注册后进入 data 页面下载训练数据(具体文件名以官网为准)
mkdir -p /data/wmh_data && cd /data/wmh_data
# unzip training.zip -d .
export WMH_DATA_ROOT=/data/wmh_data
# 校验解压完整性:应得到 60 个含 wmh.nii.gz 的受试者目录
find "$WMH_DATA_ROOT/training" -name "wmh.nii.gz" | wc -l # 预期 60
第三方镜像的使用边界:镜像免注册、下载快,适合等待官方审批时先跑通代码,但需注意:(1) 镜像是第三方再分发,许可标注与实际官方条款可能不一致;(2) 镜像的文件组织方式可能与官方不同,切换时必须改路径解析逻辑;(3) 镜像数据可能被裁剪或重压缩,不建议用于正式实验。发表论文时应以官方来源为准并在论文中说明。
§6.3 预处理全流程
四步次序不可颠倒:方向统一 → 强度归一化 → 空间重采样 → 裁剪。官方已做 SPM12 偏置场校正与 elastix 配准,本流程不重复这两步。
import numpy as np, nibabel as nib, SimpleITK as sitk
def load_volume(path):
img = nib.load(path)
return img.get_fdata(dtype=np.float32), img.affine, np.array(img.header.get_zooms())
def canonicalize_orientation(data, affine):
"""重定向到标准方向,消除各扫描仪轴序差异(LAS、RAS+ 等);
不统一轴序会导致 2D 切片方向错乱。"""
img_c = nib.as_closest_canonical(nib.Nifti1Image(data.astype(np.float32), affine))
return np.asarray(img_c.dataobj, dtype=np.float32), img_c.affine
def percentile_normalize(volume, brain_mask=None, low=1.0, high=99.0):
"""百分位裁剪后归一化到 [0,1];只用脑内体素算百分位。
百分位阈值必须来自训练折,此处为演示用单例计算。"""
vals = volume[brain_mask] if brain_mask is not None else volume[volume > 0]
if vals.size == 0:
return np.zeros_like(volume)
p_low, p_high = np.percentile(vals, [low, high])
return np.zeros_like(volume) if p_high <= p_low else \
np.clip((volume - p_low) / (p_high - p_low), 0.0, 1.0)
def resample(volume, zooms, target_spacing=(1.0, 1.0, 3.0), is_mask=False):
"""重采样到统一间距。两个关键决策:
1) 不要盲目重采样到各向同性 (1,1,1):FLAIR 层间信息本就不存在
(2D 采集),插值到 1 mm 层厚只产生虚假层间细节。
2) 掩膜必须用最近邻插值:线性插值标签图会产出既非 0 也非 1 的浮点值,
阈值化时边界发生系统性偏移。"""
image = sitk.GetImageFromArray(volume.astype(np.uint8) if is_mask else volume)
image.SetSpacing([float(z) for z in zooms])
size = image.GetSize()
new_size = [int(round(size[i] * (float(zooms[i]) / target_spacing[i]))) for i in range(3)]
rs = sitk.ResampleImageFilter()
rs.SetOutputSpacing(list(target_spacing)); rs.SetSize(new_size)
rs.SetOutputDirection(image.GetDirection()); rs.SetOutputOrigin(image.GetOrigin())
rs.SetTransform(sitk.Transform()); rs.SetDefaultPixelValue(0)
rs.SetInterpolator(sitk.sitkNearestNeighbor if is_mask else sitk.sitkLinear)
return sitk.GetArrayFromImage(rs.Execute(image))
# ---------- 演示:处理单例 ----------
sample = records[0]
flair, aff, zooms = load_volume(os.path.join(sample["pre_dir"], "FLAIR.nii.gz"))
t1, _, _ = load_volume(os.path.join(sample["pre_dir"], "T1.nii.gz"))
mask, _, _ = load_volume(sample["mask_path"])
flair, _ = canonicalize_orientation(flair, aff)
t1, _ = canonicalize_orientation(t1, aff)
mask, _ = canonicalize_orientation(mask, aff)
brain_mask = flair > np.percentile(flair, 20) # 粗略脑掩膜;正式流程用官方脑掩膜
flair_rs = resample(percentile_normalize(flair, brain_mask), zooms, (1.0, 1.0, 3.0))
t1_rs = resample(percentile_normalize(t1, brain_mask & (t1 > 0)), zooms, (1.0, 1.0, 3.0))
mask_rs = resample(mask, zooms, (1.0, 1.0, 3.0), is_mask=True)
print("原始 FLAIR:", flair.shape, "重采样后:", flair_rs.shape,
"掩膜标签:", np.unique(mask_rs)) # 标签必须仍是 {0,1,2} 的子集
# ---------- 强制校验:每个样本必须通过,否则会导致训练不稳定 ----------
def validate_preprocessed(volume, mask, name=""):
assert np.isfinite(volume).all(), f"{name}: 图像含 NaN 或 Inf"
assert 0.0 <= volume.min() and volume.max() <= 1.0 + 1e-6, f"{name}: 强度超出 [0,1]"
assert set(np.unique(mask).tolist()) <= {0, 1, 2}, f"{name}: 掩膜含非法标签"
assert float((mask == 1).mean()) < 0.5, f"{name}: WMH 占比异常"
return True
为什么先归一化后重采样:反过来做会让插值改变强度分布,使百分位阈值失去意义。为什么只用训练折统计量:不同扫描仪强度分布差异很大,用全量数据计算会把验证集信息渗入训练。
§6.4 PyTorch DataLoader
三个关键设计:三维块采样而非整卷输入(保证梯度更新次数);前景偏置采样(60% 概率让块中心落在 WMH 体素上,缓解极端类别不平衡);按 scanner 分层划分并把标签 2 映射为背景(复现官方评测协议)。
import os, random, numpy as np, nibabel as nib, torch
from torch.utils.data import Dataset, DataLoader
class WMHPatchDataset(Dataset):
"""WMH 三维块数据集。records 为 §6.1 中 discover_subjects() 的返回值。"""
def __init__(self, records, patch_size=(64, 96, 96),
samples_per_epoch=600, training=True, fg_prob=0.6):
self.records, self.patch_size = records, tuple(patch_size)
self.samples_per_epoch, self.training, self.fg_prob = samples_per_epoch, training, fg_prob
self.cache = {r["subject_id"]: self._load_record(r) for r in records} # 60 例可常驻内存
def _load_record(self, rec):
flair = nib.load(os.path.join(rec["pre_dir"], "FLAIR.nii.gz"))
t1 = nib.load(os.path.join(rec["pre_dir"], "T1.nii.gz"))
mask = nib.load(rec["mask_path"]).get_fdata(dtype=np.float32)
# 标签 2(其他病理)在官方评测中被忽略,此处映射为背景,绝不能当作正类。
return {"flair": flair.get_fdata(dtype=np.float32),
"t1": t1.get_fdata(dtype=np.float32),
"mask": (mask == 1).astype(np.uint8)}
def __len__(self):
return self.samples_per_epoch
def _sample_center(self, mask):
"""返回块中心坐标;训练时按 fg_prob 偏置到前景。"""
if self.training and random.random() < self.fg_prob:
fg = np.argwhere(mask > 0)
if fg.size > 0:
return fg[random.randrange(len(fg))]
shape, half = np.array(mask.shape), np.array(self.patch_size) // 2
lo, hi = np.minimum(half, shape - 1), np.maximum(shape - half, half + 1)
return np.array([random.randrange(int(lo[i]), int(hi[i])) for i in range(3)])
def _crop(self, volume, center):
"""以 center 为中心裁出固定尺寸块,越界处零填充。"""
half = np.array(self.patch_size) // 2
start = np.maximum(np.array(center) - half, 0)
end = np.minimum(start + np.array(self.patch_size), volume.shape)
start = np.maximum(end - np.array(self.patch_size), 0)
sl = tuple(slice(int(start[i]), int(end[i])) for i in range(3))
patch = volume[sl]
pad = [(0, max(0, self.patch_size[i] - patch.shape[i])) for i in range(3)]
return np.pad(patch, pad, mode="constant") if any(p[1] > 0 for p in pad) else patch
def _augment(self, flair, t1, mask):
"""只使用保持解剖合理性的几何与强度增强。"""
if random.random() < 0.5: # 左右镜像(脑结构近似对称)
flair, t1, mask = [np.flip(v, axis=2).copy() for v in (flair, t1, mask)]
k = random.choice([0, 1, 2, 3]) # 平面内 90 度旋转
if k:
flair, t1, mask = [np.rot90(v, k, axes=(0, 1)).copy() for v in (flair, t1, mask)]
if random.random() < 0.5: # 轻度强度扰动(不动标签)
s, b = random.uniform(0.9, 1.1), random.uniform(-0.05, 0.05)
flair = np.clip(flair * s + b, 0.0, 1.0)
t1 = np.clip(t1 * s + b, 0.0, 1.0)
return flair, t1, mask
def __getitem__(self, index):
rec = self.records[index % len(self.records)]
data = self.cache[rec["subject_id"]]
c = self._sample_center(data["mask"])
flair, t1, mask = (self._crop(data[k], c) for k in ("flair", "t1", "mask"))
if self.training:
flair, t1, mask = self._augment(flair, t1, mask)
image = np.stack([flair, t1], axis=0).astype(np.float32) # 双通道输入 [FLAIR, T1]
return {"image": torch.from_numpy(image),
"label": torch.from_numpy(mask.astype(np.float32)[None, ...]),
"subject_id": rec["subject_id"], "scanner": rec["scanner"]}
def build_loaders(records, patch_size=(64, 96, 96), batch_size=2, train_ratio=0.8, seed=42):
"""按扫描仪分层划分训练/验证并构建 DataLoader。
分层键必须用 scanner 而非受试者 ID —— ID 不连续(Utrecht 1-20、
GE3T 101-120),按数值切分会退化为按中心切分,导致验证集全部来自
单一扫描仪,分数无法解释。"""
rng, by_scanner = random.Random(seed), {}
for rec in records:
by_scanner.setdefault(rec["scanner"], []).append(rec)
train_recs, val_recs = [], []
for recs in by_scanner.values():
recs = sorted(recs, key=lambda r: r["subject_id"]); rng.shuffle(recs)
cut = int(round(len(recs) * train_ratio))
train_recs.extend(recs[:cut]); val_recs.extend(recs[cut:])
return (DataLoader(WMHPatchDataset(train_recs, patch_size, 600, training=True),
batch_size=batch_size, shuffle=True,
num_workers=4, pin_memory=True, drop_last=True),
DataLoader(WMHPatchDataset(val_recs, patch_size, 100, training=False),
batch_size=1, shuffle=False, num_workers=2),
train_recs, val_recs)
train_loader, val_loader, train_recs, val_recs = build_loaders(records)
batch = next(iter(train_loader))
print("image:", batch["image"].shape, "label:", batch["label"].shape,
"scanner:", batch["scanner"], "前景比例:", float(batch["label"].mean()))
为什么必须用前景偏置采样:WMH 体素占比在 0.1%-1% 量级。均匀随机采样三维块时绝大多数块内无前景,网络会迅速收敛到"全部预测背景"的退化解——Dice 恒为 0 但损失看起来很小。论文中所有高排名方法都使用了某种形式的前景采样或重加权损失。
§6.5 坑点清单
⚠️ 坑点 1:把标签 2(其他病理)当作正类训练(分类:标签理解)
问题:
wmh.nii.gz中标签 2 代表腔隙灶、非腔隙性梗死与(微)出血,官方在评测中完全忽略该标签。若损失函数把所有非零体素当作 WMH 正类,模型会被训练去分割与 WMH 形态分布都不同的病灶,导致评测指标系统性偏低。
症状:本地验证 Dice 尚可(因为本地也用了错误标签),但官方提交分数明显低于预期;可视化时可见模型在腔隙灶位置产生大片假阳性。
解决:
- 简单方法:加载掩膜后立即二值化
mask = (mask_data == 1),把标签 2 归入背景,这是官方评测的等价做法。- 进阶方法:把标签 2 作为独立辅助通道训练多任务网络,但推理时只取标签 1 的分支;可用掩膜抑制
pred = pred_1 * (1 - label_2_dilated),膨胀核与官方一致(3×3×1,平面内 1 像素)。- SOTA 方法:利用标签 2 做对比学习或不确定性建模,让模型显式区分"高信号但非 WMH"与"高信号且为 WMH"。论文中 nih_cidi_2 未使用标签 2,说明其价值尚未被充分挖掘。
参考:Kuijf et al., 2019, IEEE TMI, §II-A3(标签定义与膨胀规则)。DOI: 10.1109/TMI.2019.2905770
⚠️ 坑点 2:用线性插值重采样标签掩膜(分类:预处理陷阱)问题:各扫描仪层厚差异极大(0.56-3.00 mm)。若图像与掩膜用同一套插值参数重采样,掩膜会产生既非 0 也非 1 的浮点值;阈值化时会在病灶边界产生系统性外扩或内缩,而 WMH 多为小目标,边界误差对 Dice 的影响被放大。
症状:重采样后np.unique(mask)出现 0.37、0.62 之类浮点值;训练损失下降缓慢;Dice 卡在 0.6 左右上不去。
解决:
- 简单方法:掩膜重采样后立即
mask = (mask > 0.5).astype(np.uint8)。有效但边界仍有亚像素偏移。- 进阶方法:图像用线性插值、掩膜用最近邻(
sitk.sitkNearestNeighbor)分开重采样,并断言set(np.unique(mask)) <= {0,1,2}。见 §6.3 的resample(..., is_mask=True)。- SOTA 方法:在原始空间计算损失(把预测反变换回原始网格),彻底避免重采样标签。代价是每 batch 需做逆变换,但对小病灶边界最友好。
参考:论文指出 3D FLAIR 被重采样至 3 mm 层厚且层间无间隙;各扫描仪原始层厚见论文 Table 1。DOI: 10.1109/TMI.2019.2905770
⚠️ 坑点 3:透明中隔等解剖位置的假阳性(分类:偏倚陷阱)问题:论文明确指出假阳性最常出现在透明中隔(septum pellucidum)——该区域在 FLAIR 上呈高信号,但解剖上从不属于 WMH。训练集中该位置样本极少,模型很难学会抑制它;低排名方法普遍在此处误检。
症状:可视化时在侧脑室之间的中线区域出现稳定的、跨病例重复的假阳性斑块;病灶级 F1 明显低于 Recall(假阳性拉低精度)。
解决:
- 简单方法:在训练掩膜中显式加入困难负样本区域,对预测在该区域的前景施加额外惩罚。
- 进阶方法:用轻量分割网络先提取脑室系统,生成透明中隔区域掩膜,推理后处理时把该区域内的预测置零;可用 MONAI 的
KeepLargestConnectedComponent配合解剖先验掩膜。- SOTA 方法:聚焦"提升小病灶 recall 与降低位置敏感性",即不因 WMH 位于低先验概率位置而拒绝它;可引入位置先验作为软约束(如论文 Fig. 4 的 MNI-152 概率图谱)而非硬屏蔽——屏蔽会同时损失真正位于中线附近的小病灶。
参考:Kuijf et al., 2019, IEEE TMI(假阳性分布分析);Wu et al., 2026, J Imaging Inform Med 亦报告该现象。DOI: 10.1007/s10278-025-01808-9
⚠️ 坑点 4:在未见扫描仪上性能断崖式下跌(分类:偏倚陷阱)问题:训练集只覆盖 3 台扫描仪,测试集中有 2 台从未出现。论文量化证据:冠军方法总体 DSC 0.80,但在 AMS PETMR 上降至 0.72;H95 从加权平均 6.30 mm 升至 AMS GE1.5T 的 10.24 mm 和 PETMR 的 11.84 mm。更关键的是,使用 dropout 训练的方法 inter-scanner 鲁棒性排名明显更差——某些正则化手段会诱使模型记住扫描仪特征。
症状:本地按扫描仪分层交叉验证时分数稳定,换一台新设备测试分数骤降 5-10 个 Dice 点;t-SNE 可视化特征时可见明显的扫描仪聚类。
解决:
- 简单方法:训练时对每个扫描仪做独立的强度归一化(每台设备一套百分位参数),不让某台扫描仪的强度分布主导全局。
- 进阶方法:域随机化 + 域对抗训练。对强度、噪声、层厚做随机扰动扩充域覆盖;加扫描仪分类器并做梯度反转,迫使特征与扫描仪无关。
- SOTA 方法:论文的实证线索是——鲁棒性排名第 1 的 ipmi-bern 在总体排名中仅第 9,它采用两阶段策略(先提取脑,再在脑内识别 WMH)。复现时可参考将解剖标准化与病灶检测解耦。
参考:Kuijf et al., 2019, IEEE TMI, Table III(鲁棒性排名)与 inter-scanner 分析。
⚠️ 坑点 5:小病灶漏检被 Dice 掩盖(分类:评估误用)问题:WMH 体积标准差(21.6 ml)大于均值(16.9 ml),分布强右偏。少数大融合病灶贡献绝大部分体素量,因此 Dice 主要由大病灶主导——漏掉所有小病灶的模型 Dice 可能仍有 0.78,但病灶级 Recall 会惨不忍睹。论文量化:所有方法在小病灶上的召回率均低于大病灶,降幅从 −20%(sysu_media)到 −87%(text_class)。
症状:Dice 看起来已达 0.78-0.80 的"论文水平",但临床医生发现散在小斑点全被漏掉;病灶计数与人工计数差异巨大。
解决:
- 简单方法:永远同时报告 DSC 与病灶级 Recall/F1。只报 Dice 的评测不完整,也无法与论文方法横向比较。
- 进阶方法:把病灶级指标纳入模型选择标准,按病灶大小分层报告(如按中位病灶体积切分为大/小两组分别算 Recall),小病灶上的退化不会被平均值淹没。
- SOTA 方法:针对小病灶设计专用策略——选择性采样(提高小病灶周围块的采样概率)、损失重加权(按病灶体积倒数加权)、降低位置敏感性。注意后处理对 H95/F1 的改善在论文中并不显著,改进重点应放在训练阶段。
参考:Kuijf et al., 2019, IEEE TMI(大小病灶 recall 对比分析与改进方向)。
⚠️ 坑点 6:按受试者 ID 数值区间划分数据集(分类:数据泄漏)问题:受试者 ID 全局唯一但不连续,且与采集中心强相关(Utrecht 用 1-20、GE3T 用 101-120)。若用
if int(sid) < 100之类规则划分训练/验证,结果会退化为"按中心切分",验证集全部来自单一扫描仪——既不是同分布验证,也不是干净的外部验证,分数无法解释。
症状:验证 Dice 方差异常大;换随机种子重跑结果剧烈波动;按中心分组统计时发现每个子集内部只有一种扫描仪。
解决:
- 简单方法:划分前先打印每个子集的
scanner分布并断言包含全部 3 台扫描仪(或明确说明是故意留出某台)。见 §6.4 的build_loaders。- 进阶方法:显式使用
scanner作为分层键。三类样本数均为 20,可直接用StratifiedKFold对scanner分层,保证每折内三台扫描仪比例严格一致。- SOTA 方法:双轨报告——同时给出"按扫描仪分层的随机划分结果"与"留一扫描仪结果",两者差值即 domain gap。论文的做法正是分扫描仪报告(五台并列)。
参考:Kuijf et al., 2019, IEEE TMI, Table I 与分扫描仪结果表。
⚠️ 坑点 7:各向异性被当成各向同性处理(分类:预处理陷阱)问题:FLAIR 重采样后体素约 1×1×3 mm,层间分辨率比 3:1。若在 3D 卷积中使用各向同性核(如 3×3×3),网络会假设层间与层内空间关系等价,在层间方向学到虚假纹理。论文观察到 3D 卷积方法整体排名偏低,推测与 3D CNN 参数量过大、训练样本不足有关;FLAIR 的 2D 采集特性使 2D 网络天然更匹配。
症状:3D 模型训练损失下降但验证指标停滞;预测在层间方向出现周期性条带伪影;同一病例相邻切片预测差异异常大。
解决:
- 简单方法:改用 2D 网络逐层处理(nnU-Net 2D 配置、U-Net 2D),在通道维堆叠相邻切片提供有限上下文。这是论文中多数高排名方法的路线。
- 进阶方法:若坚持 3D,使用各向异性卷积核(如 3×3×1)与各向异性池化,并在网络配置中显式传入体素间距;nnU-Net 的自动配置会自行推断各向异性并调整卷积核。
- SOTA 方法:cian、nic-vicorob、misp 三个 3D 方法进入前 7 名,证明 3D 完全可行——关键在于针对各向异性做适配(如 cian 用多维门控循环单元在层间方向建模)。
参考:Kuijf et al., 2019, IEEE TMI(3D vs 2D 讨论);另有研究指出各向异性分辨率对 3D 方法影响大于 2D(Comput Methods Programs Biomed, 2024, S0169260724000038)。
⚠️ 坑点 8:本地复现的 Dice 与官方排行榜数值不可比(分类:评估误用)问题:官方排行榜数值在隐藏的 110 例测试集上计算,由组织者在受控环境下运行 Docker 容器得出。本地只能在 60 例公开训练集上评估,而这 60 例正是参赛者用来训练的——即使做交叉验证,得到的也是"同分布"性能,与官方的"跨扫描仪"性能不可比。同类问题也出现在引用排行榜数字时:不同论文的 0.80 与 0.82 可能来自不同划分与不同指标实现。
症状:审稿人质疑"你的 Dice 0.82 高于官方冠军 0.80,为什么没有排名第一";跨论文比较时发现趋势矛盾。
解决:
- 简单方法:在报告中明确标注评估数据(训练集 60 例交叉验证 / 隐藏测试集 110 例)与划分方式。永远不要把本地数值与排行榜数值直接比较。
- 进阶方法:严格按官方实现复现五项指标(尤其 H95 的百分位定义与 lAVD 的对数底数)。官方使用的是对数变换后的绝对体积差
|log(预测体积 / 真值体积)|,而非原始 AVD。- SOTA 方法:通过官方 Docker 提交流程获得可比名次(挑战赛至今保持开放)。同时参照论文的 bootstrap 方法(2,000 次有放回抽样)报告置信区间,只有置信区间不重叠才能声称方法间有显著差异——论文正是用这一标准把前 4 名划为一个显著更优的梯队。
参考:Kuijf et al., 2019, IEEE TMI(评测协议、bootstrap 置信区间、显著性子梯队划分)。
§6.6 数据增强策略
| 增强操作 | 安全性 | 说明 |
|---|---|---|
| 左右镜像(沿 x 轴翻转) | ✅ 安全 | 脑结构大致左右对称,WMH 分布亦近似对称 |
| 平面内 90 度 / 任意角度旋转 | ✅ 安全 | 保持层内解剖关系;任意角度需掩膜同步旋转与边界填充 |
| 强度缩放与偏移 | ✅ 安全 | 模拟不同扫描仪强度差异,对跨设备泛化有帮助 |
| 高斯噪声注入 | ✅ 安全 | 模拟不同信噪比条件 |
| 弹性形变(轻度) | ⚠️ 谨慎 | 幅度应 < 5 体素,过强会使小病灶变形失真 |
| 沿层间方向(z 轴)旋转或缩放 | ❌ 危险 | 层间本就由重采样产生,会制造虚假解剖结构 |
| 各向同性重采样到 1 mm 层厚 | ❌ 危险 | 插值无法创造真实层间信息,只增加计算量 |
| 对比度翻转(正负反转) | ❌ 危险 | 会使 WMH 从高信号变为低信号,语义完全改变 |
| 大幅裁剪视场 | ❌ 危险 | 可能裁掉病灶,产生错误的"无病灶"监督信号 |
针对本数据集的建议:核心挑战是跨扫描仪泛化,因此强度域增强比几何增强更有价值——建议组合使用轻度 gamma 变换、模拟不同层厚的重采样、模拟偏置场残余与不同水平噪声。几何增强中平面内翻转与 90 度旋转是零风险的,可大量使用。
§6.7 模型推荐
| 模型 | 类型 | 适配度 | 理由与实现建议 |
|---|---|---|---|
| U-Net(2D) | 2D 全卷积 | ⭐⭐⭐⭐⭐ | 论文中多数高排名方法的基础,与 2D FLAIR 采集天然匹配;逐层处理,通道维堆叠相邻 3 层 |
| nnU-Net(2D 配置) | 自适应 2D | ⭐⭐⭐⭐⭐ | 自动推断各向异性与预处理参数,省去大量调参;外部研究显示在 WMH 任务上表现突出;注意配置为 2D |
| FCN 集成(冠军架构) | 2D 集成 | ⭐⭐⭐⭐⭐ | 19 层卷积-反卷积网络 + 长程连接 + 多模型投票集成;参考 arXiv:1802.05203,代码与模型见 NITRC what_v1 |
| nnU-Net(3D 配置) | 自适应 3D | ⭐⭐⭐⭐ | 自动处理各向异性,外部研究显示优于其他深度学习模型;计算成本高,建议先跑 2D 基线 |
| MD-GRU(多维门控循环单元) | 3D 循环 | ⭐⭐⭐⭐ | 论文第 2 名 cian 使用,在层间方向建模,天然适配各向异性;实现复杂度较高 |
| U-Net(3D) | 3D 全卷积 | ⭐⭐⭐ | 论文显示 3D 方法整体排名偏低,但 cian / nic-vicorob / misp 证明可行;必须做各向异性适配(3×3×1 核) |
| ResNet50 + scSE U-Net(3D) | 3D CNN | ⭐⭐⭐ | 外部研究验证在 WMH 任务上稳定;参数多,60 例数据上需强正则化 |
| 3D Swin Transformer | Transformer | ⭐⭐⭐ | 外部研究显示可达到与成熟 CNN 相当的水平;需大量增强,小数据上易过拟合 |
| 随机森林 + 手工特征 | 传统 ML | ⭐ | 论文第 20 名 hadi 用法,DSC 仅 0.23;不推荐作主方案,可作消融对照 |
选型经验:算力有限(单张 8-12 GB GPU)时从 U-Net 2D 或 nnU-Net 2D 起步,这是性价比最高的路线;目标冲榜则走集成路线(多个 U-Net 随机初始化 + 数据打乱 + 投票,即冠军方案);目标是跨设备泛化则参考 ipmi-bern 的两阶段架构(先解剖标准化再检测),该方案在鲁棒性排名中列第 1。
§6.8 硬件需求
| 配置 | 训练时间(60 例,100 epoch) | 可行性 | 说明 |
|---|---|---|---|
| 1× 24 GB GPU(如 RTX 4090) | 约 2-4 小时 | ✅ 推荐 | 可用更大块尺寸或更宽网络 |
| 1× 12 GB GPU(如 RTX 3060) | 约 4-8 小时 | ✅ 推荐 | 三维块 64×96×96、批大小 2;2D 方案更快 |
| 1× 8 GB GPU | 约 6-12 小时 | ✅ 可行 | 需降低块尺寸至 48×64×64 或改用 2D |
| 4× GPU 并行 | 约 1-2 小时 | ✅ 可行 | 集成训练时可显著加速 |
| 仅 CPU | 数天 | ⚠️ 不推荐 | 仅适合调试代码逻辑 |
显存瓶颈的实际来源不是数据量而是三维块尺寸:64×96×96 的块在双通道输入下约 4.7 MB,但 U-Net 前几层特征图会放大数倍,加梯度缓存后实际占用远大于此。经验法则是先用小块跑通再逐步增大。内存方面,60 例双模态常驻内存约 1.3-2.0 GB(float32),建议 8-16 GB。官方评测为提交的方法提供 NVIDIA Titan Xp GPU,排行榜结果即在该配置下产生,推理速度相关研究需以此为参照。
§6.9 评估指标实现
严格对应论文定义的五项:DSC、H95(修正 Hausdorff 距离第 95 百分位,mm,双向对称)、lAVD = |log(V_pred / V_true)|(对数变换使过分割与欠分割误差对称)、病灶 Recall = N_matched / N_true、病灶 F1。
import numpy as np, scipy.ndimage as ndi
def dice_coefficient(gt, pred):
gt, pred = gt.astype(bool), pred.astype(bool)
denom = gt.sum() + pred.sum()
return 1.0 if denom == 0 else 2.0 * np.logical_and(gt, pred).sum() / denom
def hausdorff_distance_95(gt, pred, spacing=(1.0, 1.0, 3.0)):
"""修正 Hausdorff 距离(第 95 百分位),单位 mm。
只比较体素表面点集(对小病灶敏感);用有向距离的 95 百分位代替最大值
以提高鲁棒性;spacing 必须是真实体素间距,否则结果不是物理距离。"""
gt, pred = gt.astype(bool), pred.astype(bool)
if gt.sum() == 0 and pred.sum() == 0:
return 0.0
if gt.sum() == 0 or pred.sum() == 0:
return float(np.inf) # 一方为空:距离无穷大
st = ndi.generate_binary_structure(3, 1)
gt_s = gt & ~ndi.binary_erosion(gt, structure=st)
pred_s = pred & ~ndi.binary_erosion(pred, structure=st)
d1 = ndi.distance_transform_edt(~pred_s, sampling=spacing)[gt_s]
d2 = ndi.distance_transform_edt(~gt_s, sampling=spacing)[pred_s]
return float(max(np.percentile(d1, 95), np.percentile(d2, 95)))
def absolute_log_volume_difference(gt, pred, voxel_volume_mm3=1.0):
"""lAVD = |log(V_pred / V_true)|。WMH 体积分布强右偏(标准差 > 均值),
原始 AVD 在过分割时理论上无上界,取对数后两个方向的误差对称。"""
v_true = float(gt.sum()) * voxel_volume_mm3
v_pred = float(pred.sum()) * voxel_volume_mm3
eps = 1e-6
if v_true <= eps and v_pred <= eps:
return 0.0
if v_true <= eps or v_pred <= eps:
return float(np.inf)
return float(abs(np.log(v_pred / v_true)))
def lesion_level_metrics(gt, pred):
"""病灶级召回率与 F1。病灶 = 图像内 3D 连通分量;匹配规则:预测病灶与
真值病灶存在任意体素重叠即命中(论文口径)。
召回 = N_matched / N_true;精度 = N_matched / (N_matched + N_false)"""
st = ndi.generate_binary_structure(3, 1)
gt_labels, n_gt = ndi.label(gt.astype(bool), structure=st)
pred_labels, n_pred = ndi.label(pred.astype(bool), structure=st)
if n_gt == 0 and n_pred == 0:
return {"recall": 1.0, "precision": 1.0, "f1": 1.0,
"n_true": 0, "n_pred": 0, "n_matched": 0}
matched, tp_pred = set(), 0
for pid in range(1, n_pred + 1):
hit = gt_labels[pred_labels == pid]
hit = hit[hit > 0]
if hit.size:
tp_pred += 1
matched |= set(hit.tolist())
n_matched, n_false = len(matched), n_pred - tp_pred
recall = n_matched / n_gt if n_gt > 0 else 0.0
precision = n_matched / (n_matched + n_false) if (n_matched + n_false) > 0 else 0.0
f1 = 2 * recall * precision / (recall + precision) if (recall + precision) > 0 else 0.0
return {"recall": float(recall), "precision": float(precision), "f1": float(f1),
"n_true": int(n_gt), "n_pred": int(n_pred), "n_matched": int(n_matched)}
def evaluate_case(gt, pred, spacing=(1.0, 1.0, 3.0)):
"""对单个病例计算全部五项指标。"""
return {"dsc": dice_coefficient(gt, pred),
"h95": hausdorff_distance_95(gt, pred, spacing=spacing),
"lavd": absolute_log_volume_difference(
gt, pred, voxel_volume_mm3=float(np.prod(spacing))),
**lesion_level_metrics(gt, pred)}
自检案例:构造含大小两个病灶的真值,故意漏掉小病灶后调用 evaluate_case,会观察到 DSC 仍然很高(大病灶主导体素级指标)而 recall 明显下降——这正是必须同时报告病灶级指标的原因。
三处常见实现偏差:(1) H95 是双向距离的第 95 百分位而非最大值的 95%,用 max() 替代会系统性高估;(2) lAVD 的对数底数不影响排序但影响与其他论文数值的可比性,建议明确标注;(3) 官方口径下预测病灶与真值病灶有任何体素重叠即算命中,用 IoU 阈值做匹配会得到不同数值,无法与排行榜比较。
§6.10 MLOps 与实验管理
| 环节 | 建议做法 | 理由 |
|---|---|---|
| 数据版本 | 记录获取日期与来源(官方/镜像),计算文件哈希清单 | 第三方镜像可能与官方不一致;复现需可追溯 |
| 划分固化 | 把 train/val 的 subject_id 列表存为 JSON | 60 例下划分差异对结果影响巨大,必须固定 |
| 指标记录 | 逐病例保存五项指标,而非只存平均值 | 可做按扫描仪/按病灶负荷的亚组分析 |
| 体素间距 | 在配置与检查点中保存每个受试者的 spacing | 推理时必须用它计算物理距离类指标 |
| 归一化参数 | 保存训练折的百分位阈值,推理时复用 | 防止验证/测试折统计量渗入 |
| 提交次数 | 记录每次官方提交的方法版本与动机 | 避免对隐藏测试集的隐性过拟合 |
| 随机种子 | 固定并记录(numpy / torch / cudnn) | 60 例数据上方差大,种子影响可达数个 Dice 点 |
| 基线对照 | 至少含一个简单基线(如阈值法 + 连通域) | 论文中 hadi 的 DSC 仅 0.23,简单基线可校准预期 |
推荐的实验记录字段:run_id, seed, model, patch_size, batch_size, lr, epochs, train_subjects_hash, val_subjects_hash, norm_percentiles, dsc_mean, dsc_std, h95_mean, lavd_mean, lesion_recall_mean, lesion_f1_mean, dsc_by_scanner_json, notes。
一个容易被忽视的要点:官方唯一认可的评测是 Docker 提交,建议从项目初期就把推理代码写成自包含的容器可运行形式——入口脚本读入一个受试者目录,输出一个 NIfTI 掩膜,不依赖任何外部状态,可省去后期大量重构。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解方式 |
|---|---|---|---|
| 人群选择偏倚 | 平均年龄 70.1 ± 9.3 岁,均来自荷兰与新加坡;儿童、青年、其他族裔完全缺席 | 高 | 跨人群使用前必须外部验证;论文未提供族裔分层结果 |
| 扫描仪覆盖偏倚 | 训练集仅 3 台扫描仪,测试集含 2 台未见设备;厂商分布不均(GE 3 台、Philips 2 台、Siemens 1 台) | 高 | 使用按扫描仪分层与留一域验证;不要用随机划分估计泛化性能 |
| 标注者偏倚 | 参考标准完全来自单一主要标注者 O1(经 O2 评审修正) | 中 | 观察者间 Dice 0.77-0.79 已量化该偏倚量级;建模目标不应设定为 Dice = 1.0 |
| 小病灶漏检偏倚 | 所有已发表方法在小病灶上召回率均低于大病灶(降幅 −20% 至 −87%),导致体积估计与病灶计数系统性偏低 | 高 | 必须报告病灶级指标;按病灶大小分层评估 |
| 标签 2 的处理偏倚 | 其他病理(腔隙灶、梗死、微出血)被标注但评测忽略,若误当正类会引入系统偏差 | 中 | 加载掩膜时立即二值化为 mask == 1 |
| 体积分布右偏偏倚 | WMH 体积标准差(21.6 ml)大于均值(16.9 ml),少数大负荷病例主导均值型指标 | 中 | 使用对数变换指标(官方 lAVD 即为此设计);报告分层统计量 |
| 位置先验偏倚 | 模型倾向于在 WMH 高发位置预测、在低先验位置漏检;透明中隔等解剖位置产生稳定假阳性 | 中 | 引入空间概率图谱做软约束而非硬屏蔽;降低位置敏感性 |
| dropout 相关的鲁棒性偏倚 | 论文观察到使用 dropout 训练的方法 inter-scanner 鲁棒性排名明显更差 | 中 | 跨设备部署场景下谨慎使用 dropout,或在多扫描仪数据上验证其影响 |
§7.2 标注质量
优势:(1) 标注遵循国际共识标准 STRIVE,定义明确、可复现;(2) 主要标注者 O1 在标注前已有 1000+ 例经验;(3) 存在独立的同行评审环节 O2(11 年定量神经影像经验)与共识会议修正机制;(4) 提供了两位独立观察者 O3、O4 的完整标注结果,使标注不确定性可被量化。
局限:(1) 观察者间 Dice 仅 0.77-0.79,意味着标注边界本身存在约 20% 的不一致;(2) O3、O4 的标注只覆盖 60 例训练数据,测试集无一致性数据;(3) 病灶级指标的一致性未单独报告,而论文显示病灶级召回率(O3 0.65、O4 0.66)明显低于体积级一致性,说明病灶个数的标注分歧比边界位置的分歧更大。
对建模的实际含义:由于人工上界约为 0.79,任何声称 Dice > 0.90 的 WMH 分割结果都应被高度怀疑——大概率是评估数据不同(如在同一批训练数据上测试)或指标实现有误。合理的 SOTA 区间是 0.78-0.83。
§7.3 泛化性评估
| 应用场景 | 失效风险 | 证据 |
|---|---|---|
| 同扫描仪、同协议的新病例 | 低 | 论文显示训练集内评估与测试集评估高度相关(R²=0.94,p<0.001,无过拟合迹象) |
| 同厂商不同型号 | 中 | 冠军方法在 Utrecht(Philips 3T)DSC 0.80,在 AMS GE1.5T(原始层厚 0.56 mm)DSC 降至 0.77 |
| 未见扫描仪(跨场强、跨层厚) | 高 | 冠军方法在 AMS PETMR 上 DSC 0.72、H95 11.84 mm,显著差于加权平均的 0.80 / 6.30 mm |
| 跨厂商(Siemens ↔ GE) | 高 | 论文指出并非所有方法都能泛化到未见扫描仪;inter-scanner 鲁棒性排名与总体排名显著不同 |
| 小病灶为主的低负荷病例 | 高 | 所有方法小病灶召回率低于大病灶,降幅最高达 −87% |
| 常规临床序列(非研究协议) | 很高 | 外部研究显示基准方法在 195 例异构临床 MRI(71 台扫描仪)上泛化差,常漏小病灶并在透明中隔假阳性 |
| 儿童或青年人群 | 未知(很高) | 数据集不含此类受试者,无法评估 |
| 非荷兰/新加坡人群 | 未知(很高) | 数据集无族裔信息与跨地域数据 |
§7.4 伦理与合规
脱敏:官方已手工移除所有受试者面部,面部掩膜随数据发布;提交的 Docker 容器内不含任何可识别受试者来源的标识符;测试集完全保密,参与者无法接触原始测试图像。
使用限制:数据须在挑战赛官网注册后获取,部分已发表研究明确说明数据"在 MICCAI 2017 许可下使用"(used under license),提示存在使用限制。论文正文未提供完整的许可协议文本,具体条款以官方为准。
评测伦理:官方刻意不公开测试集,理由是防止参与者通过视觉自评(visual self-evaluation)反向拟合测试数据。这一设计虽与多数医学影像挑战赛(如 BraTS)的惯例相反,但显著提升了排名结果的可信度。
转化伦理:论文明确指出,当前顶尖方法已达到或超过个体人工观察者的水平,但这不等于可以无条件临床部署。任何基于该数据集训练的模型在用于临床决策前,必须经过独立的多中心临床验证与监管审批。尤其需要注意,该数据集的人群构成(70 岁荷兰/新加坡人群)不代表一般临床人群。
镜像合规风险:Hugging Face 与 Kaggle 上存在该数据的第三方再分发(分别标注 License 为 CC-BY-4.0 与 Unknown)。这些镜像未经官方确认,其许可标注与官方条款可能不一致。正式研究应通过官方渠道获取数据,并在论文中说明来源。
§7.5 公平性分析
| 维度 | 现状 | 风险 |
|---|---|---|
| 年龄 | 仅覆盖老年人群(均值 70.1 岁) | 模型在年轻人群上的表现完全未知;WMH 在青年中罕见,假阳性风险高 |
| 性别 | 论文报告训练/测试均约 50% 男性,两组无显著差异(p=0.87) | 性别维度的公平性风险较低,但未报告性别分层的性能差异 |
| 族裔 | 未提供族裔信息;地理上仅荷兰与新加坡 | 无法做族裔公平性评估;跨族裔部署风险未知 |
| 地理/经济 | 仅覆盖两个高收入国家 | 对低资源地区设备与协议的代表性差 |
| 设备层级 | 覆盖 Philips / Siemens / GE 三家主流厂商 | 未覆盖国产设备与其他厂商;对边缘设备场景代表性不足 |
现实约束:由于官方未发布逐例年龄、性别、族裔信息,任何基于该数据集的公平性分析都只能停留在群体统计层面。如果你需要做亚组公平性分析,必须在自采数据上补充这些元数据。这是该数据集在设计上的一个明确局限。
§7.6 数据漂移
| 漂移类型 | 表现 | 监测建议 |
|---|---|---|
| 设备漂移 | 医院更新 MRI 设备或升级序列后输入分布改变 | 监控输入强度百分位分布;建立新设备的金标准子集 |
| 协议漂移 | 层厚、TR/TE、翻转角调整会改变 WMH 对比度 | 记录并比对采集参数;变动超阈值时触发重验证 |
| 人群漂移 | 转诊标准变化导致年龄结构与疾病严重度改变 | 监控 WMH 体积分布是否偏离训练分布(均值 16.9 ml、中位 11.18 ml) |
| 标注标准漂移 | STRIVE 标准更新(已有 STRIVE-2)会改变标注定义 | 关注标准更新;重训时确认标注版本 |
| 参考标准漂移 | 若用模型输出生成金标准会产生递归偏差 | 避免用模型输出作为新的金标准 |
可行方案:WMH 分割没有真值就无法评估,建议部署时监控无监督代理指标——输入强度的直方图距离(如 KL 散度)、预测 WMH 体积分布偏移、预测病灶数分布偏移。当代理指标偏离参考分布超过阈值时触发人工抽样复核。
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 每例为独立目录,图像与掩膜为同形三维数组,无需透视变换 |
| 2 | 唯一标识 | ✅ | 受试者 ID 由 {中心}/{扫描仪}/{编号} 构成,全局唯一 |
| 3 | 特殊字符 | ✅ | 目录与文件名仅含 ASCII 字母数字,无空格与重音符号 |
| 4 | 重复行 | ✅ | 170 例受试者互不重复;orig/ 与 pre/ 是同例的两个版本而非重复样本 |
| 5 | 缺失编码 | ⚠️ | 测试集掩膜缺失、逐例年龄性别未发布,均属 design-based 缺失,但官方未提供显式缺失编码文档 |
| 6 | 标签标识 | ✅ | 标签 0/1/2 定义明确;WMH 为标签 1,其他病理为标签 2 |
| 7 | 罕见类分组 | ⚠️ | 小病灶(低体积连通分量)大量存在但未单独分组标注;论文按中位病灶大小划分做分析,未提供分组标签 |
| 8 | 偏倚评估 | ✅ | 论文提供训练/测试在年龄、性别、WMH 体积与数目上的 p 值检验(均无显著差异) |
| 9 | 数据字典 | ⚠️ | 官方提供目录结构说明与论文 Table 1,但无标准化的字段级数据字典;逐例元数据表需自行构建 |
| 10 | 信息性缺失解释 | ✅ | 测试集保密的理由在论文中明确说明(防止视觉自评) |
| 11 | 设备记录 | ⚠️ | 提供扫描仪型号、场强、体素尺寸与矩阵,但 AMS GE1.5T 行的场强标注自相矛盾;两例未见扫描仪的 FLAIR 矩阵未披露 |
| 12 | 共线性 | ⚠️ | center 与 scanner 高度共线(一家中心贡献多台扫描仪),做域分析时需注意区分 |
| 13 | 编码映射 | ⚠️ | 数据集本身不含临床编码;ICD-11 与 SNOMED CT 映射需通过文献间接建立(见 §2) |
| 14 | 时间戳处理 | ❌ | 无采集时间戳;论文未披露采集起止年份,无法做时间维度分析 |
| 15 | 划分建议 | ✅ | 官方划分清晰(60 训练 / 110 测试),且按扫描仪分层并含未见扫描仪 |
| 16 | 泄漏讨论 | ✅ | 官方明确讨论测试集保密机制,并要求 Docker 容器内不含扫描仪标识 |
| 17 | 标签分布 | ✅ | 论文提供 WMH 体积分布(均值 16.9 ± 21.6 ml,中位 11.18 ml)与病灶数分布(均值 62 ± 35) |
| 18 | 测量偏倚 | ✅ | 提供观察者间一致性(O3 DSC 0.77、O4 DSC 0.79),量化了标注不确定性 |
| 19 | 外部验证建议 | ⚠️ | 论文未给出明确的外部验证清单,但内置了未见扫描仪的跨域评估;本词条 §5.6 补充了建议 |
| 20 | 版本记录 | ⚠️ | 2017 冻结版后存在赛后更新提交,但官方未公布完整的版本历史与时间线 |
| 21 | 预处理脚本 | ⚠️ | 提供了 orig/ 与 pre/ 两版数据及配准参数,但未发布 SPM12 + elastix 的完整可执行脚本 |
| 22 | 合规要求 | ⚠️ | 需注册获取,部分研究注明"经 MICCAI 2017 许可使用";完整许可协议文本未公开 |
| 23 | 多模态对齐 | ✅ | pre 版本中 T1 与 FLAIR 已对齐(elastix 配准,变换参数随数据提供),三卷同形 |
| 24 | 去标识化 | ✅ | 面部已手工移除并随数据提供面部掩膜;容器内不含来源标识 |
DAIMS 评分:17.0 / 24
评分解读:该数据集在划分设计、泄漏防控、多模态对齐、去标识化、标签定义五个关键维度上表现优秀(✅),这正是一份高质量基准数据集的立身之本。扣分集中在元数据完备性(第 9、14、20、21、22 项):官方采取最小化披露策略,未提供标准化数据字典、无时间戳、无完整版本历史、无完整预处理脚本、无公开许可协议文本。第 11、12、5、7、19 项的 ⚠️ 状态反映的是"可改进但已给出足够信息"的中间状态。第 14 项(时间戳)为唯一的 ❌,因为数据集中确实完全不存在时间信息,无法通过任何方式弥补。
对你意味着什么:
- 可以直接省掉的工作:多模态对齐、面部脱敏、偏置场校正、层厚重采样——官方已全部做完,用
pre/版本即可,不要重复实现。 - 必须自己补的工作:构建受试者级元数据 CSV(center / scanner / vendor / voxel_size / split / wmh_volume_ml / lesion_count)——官方不给,但这是分层划分与亚组分析的前提;实现官方五项指标(官方未发布评估脚本,且 §6.9 指出的三处实现偏差会直接影响结果可比性);自行设计训练集内部划分(官方只给了 60/110 划分)。
- 无法弥补的缺口:没有采集时间戳、没有逐例人口学变量、没有族裔信息。若研究涉及时间趋势、年龄分层或公平性分析,该数据集无法支持,必须补充外部数据。
- 合规与评测的行动项:走官方注册渠道获取数据,在论文中说明数据来源与许可依据,不要直接用第三方镜像的许可标注作为法律依据;评测时永远同时报告体素级与病灶级指标,报告 bootstrap 置信区间,不要把本地训练集数值与官方排行榜数值并列比较。
§7.8 外部验证矩阵
| 外部数据集 / 场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| AMS GE1.5T(10 例,训练未见) | Amsterdam(论文内置) | WMH 分割 | 冠军 sysu_media:DSC 0.77、H95 10.24 mm、lAVD 36.86%、Recall 0.90、F1 0.80 | DSC 较加权平均 0.80 下降 3 点,H95 从 6.30 升至 10.24 mm | 层厚 0.56 mm 的薄层设备上边界误差显著增大 |
| AMS PETMR(10 例,训练未见) | Amsterdam(论文内置) | WMH 分割 | 冠军 sysu_media:DSC 0.72、H95 11.84 mm、lAVD 15.54%、Recall 0.84、F1 0.65 | DSC 下降 8 点,为该扫描仪上最大降幅 | 跨厂商(GE 1.5T PET/MR)泛化明显弱于同厂商设备 |
| 跨扫描仪鲁棒性排名 | Amsterdam(论文内置) | 五指标中位数标准差 | ipmi-bern 0.0345(第 1)优于 sysu_media 0.0375(第 2) | 总体第 9 名的方法跃居鲁棒性第 1 | 峰值精度与跨设备稳定性是两个独立目标 |
| 异构临床 MRI(195 例、71 台扫描仪) | Emory University 等 | WMH 分割 | 基准方法普遍失效;nnU-Net 训练后中位 DSC 0.768,MedSAM 微调后最高 0.750 | 基准方法在临床数据上明显劣于研究基准 | 在标准化研究数据上高性能的模型,在常规临床序列上频繁漏检小病灶并在透明中隔假阳性 |
| Chang Gung 临床队列(121 例)+ NCHC 队列(505 例) | 高雄长庚纪念医院、台北医学大学附设医院 | WMH 分割(CNN vs Transformer) | 3D ResNet50 U-Net + scSE 与 3D Swin Transformer 表现相当 | 两类架构在小数据集上性能可持平 | 在 WMH Challenge 数据上验证的结论可迁移至亚洲临床队列,但需重新训练 |
| LISA 测试集(外部队列) | 荷兰研究团队 | WMH 分割 | nnU-Net、UNET*、VoSHT 表现相当;UNET 聚类级 TPR 最高但 F1 偏低 | 与 WMH Challenge 上的排序不完全一致 | UNET 有过分割倾向;HD 指标在低病灶负荷病例上被严重夸大 |
矩阵读法:前 3 行来自官方论文(同行评审支撑最强),后 3 行来自后续独立研究。共同结论是:跨扫描仪与跨协议的性能下降是全领域的普遍现象,而非个别方法的缺陷。其中"层厚差异"与"厂商差异"是最强的两个性能预测因子。
§8 基准性能与生态
§8.1 官方排行榜
论文 Table II / Table III 报告的完整 20 支参赛队伍排名。所有数值在隐藏的 110 例测试集上计算。Rank 为五项指标归一化排名的均值(0 = 最优)。
| 排名 | 模型(团队) | DSC | H95 (mm) | lAVD | 病灶 Recall | 病灶 F1 | Rank | 关键技术 |
|---|---|---|---|---|---|---|---|---|
| 1 | sysu_media | 0.80 | 6.30 | 0.193 | 0.84 | 0.76 | 0.0068 | 19 层卷积-反卷积网络 + 长程连接 + 多模型集成投票 |
| 2 | cian | 0.78 | 6.82 | 0.193 | 0.83 | 0.70 | 0.0357 | 多维门控循环单元(MD-GRU),3D 块训练 |
| 3 | nlp_logix | 0.77 | 7.16 | 0.219 | 0.73 | 0.78 | 0.0520 | 两个密集连接的深度卷积神经网络 |
| 4 | nic-vicorob | 0.77 | 8.28 | 0.248 | 0.75 | 0.71 | 0.0785 | 三个卷积神经网络级联 |
| 5 | k2 | 0.77 | 9.79 | 0.246 | 0.59 | 0.70 | 0.1437 | 2D 全卷积网络(U-Net 类),全局与分扫描仪分别训练 |
| 6 | misp | 0.72 | 14.88 | 0.258 | 0.63 | 0.68 | 0.1740 | 深度学习分割;赛后提交更新版提升性能 |
| 7 | lrde | 0.73 | 14.54 | 0.309 | 0.63 | 0.67 | 0.1782 | 深度学习分割 |
| 8 | nih_cidi | 0.68 | 12.82 | 0.281 | 0.59 | 0.54 | 0.2376 | 传统深度全卷积网络 + 图精炼;赛后更新 |
| 9 | ipmi-bern | 0.69 | 9.72 | 0.225 | 0.44 | 0.57 | 0.2537 | 两阶段全卷积网络:先提取脑,再在脑内识别 WMH;多尺度输出 |
| 10 | scan | 0.63 | 14.34 | 0.277 | 0.55 | 0.51 | 0.2836 | 深度学习分割 |
| 11 | achilles | 0.63 | 11.82 | 0.276 | 0.45 | 0.52 | 0.3058 | 类 HighResNet / DeepLab v3,空洞卷积 + 空洞空间金字塔池化;仅用 FLAIR |
| 12 | skkumedneuro | 0.58 | 19.02 | 0.384 | 0.47 | 0.51 | 0.3649 | 深度学习分割 |
| 13 | tignet | 0.59 | 21.58 | 0.533 | 0.46 | 0.45 | 0.4090 | 深度学习分割 |
| 14 | tig | 0.60 | 17.86 | 0.400 | 0.38 | 0.42 | 0.4097 | 深度学习分割;赛后提交更新版 |
| 15 | knight | 0.70 | 17.03 | 0.352 | 0.25 | 0.35 | 0.4320 | 传统/混合方法 |
| 16 | upc_dlmi | 0.53 | 27.01 | 0.612 | 0.57 | 0.42 | 0.4429 | 深度学习分割 |
| 17 | nist | 0.53 | 15.91 | 0.581 | 0.37 | 0.25 | 0.5040 | 传统/混合方法 |
| 18 | neuro.ml | 0.51 | 37.36 | 1.033 | 0.71 | 0.21 | 0.5615 | 深度学习分割;赛后提交更新版 |
| 19 | text_class | 0.50 | 28.23 | 0.605 | 0.27 | 0.29 | 0.5961 | 传统/混合方法 |
| 20 | hadi | 0.23 | 52.02 | 1.685 | 0.58 | 0.11 | 0.8886 | 随机森林 + 多模态手工特征(强度、梯度、Hessian、超体素) |
上表全部 20 行的完整引用均为 [K19](第 1 行另加 [L18]);年份均为 2017(挑战赛举办年),其中 misp、nih_cidi、tig、neuro.ml 为赛后提交的更新版。代码可得性:仅 sysu_media 在 NITRC what_v1 公开软件与模型;cian 所用 MD-GRU 架构有开源实现;其余队伍官方未提供代码。
引用简写:[K19] = Kuijf HJ, et al. IEEE TMI 2019;38(11):2556-2568. DOI: 10.1109/TMI.2019.2905770;[L18] = Li H, et al. Fully Convolutional Network Ensembles for White Matter Hyperintensities Segmentation in MR Images. arXiv:1802.05203(后刊于 NeuroImage)。
参考对照行(未参赛但纳入同一排名体系):STAPLE(全部方法融合)DSC 0.77 / H95 5.74 / lAVD 0.315 / Recall 0.77 / F1 0.74,折算第 4;STAPLE(前 4 名融合)0.80 / 6.43 / 0.171 / 0.80 / 0.76,折算第 2;观察者 O3(受训无丰富经验)0.77 / 6.79 / 0.176 / 0.65 / 0.74,第 5;观察者 O4(受训有经验)0.79 / 7.22 / 0.195 / 0.66 / 0.76,第 4。
Inter-scanner 鲁棒性排名(标准差越小越稳健,完整列出可得团队):ipmi-bern 0.0345(第 1,从总体第 9 上升);sysu_media 0.0375(第 2);achilles 0.0714(第 3);knight 0.0785(第 4);cian 0.0831(第 5);skkumedneuro 0.1105(第 6);nlp_logix 0.1111(第 7);tig 0.1289(第 9);nih_cidi 0.1570(第 10);nic-vicorob 0.1629(第 11);upc_dlmi 0.7415(第 20,最差)。注意:精度第 1 与鲁棒性第 1 不是同一个方法。
⚠️ 数值不可直接比较的五点原因:
- 划分差异:所有数值均来自官方隐藏 110 例测试集;若其他论文报告的是训练集 60 例上的交叉验证结果,两者不可比——训练集上的数值通常显著偏高。
- 指标实现差异:H95 的百分位定义、lAVD 的对数底数、病灶匹配规则(任意重叠 vs IoU 阈值)在不同论文中可能不同,同一模型可能报告出不同的"F1"。
- 赛后更新:misp、neuro.ml、nih_cidi、sysu_media、tig 在赛后提交了更新版本,表中已取更新后的数值;引用早期版本会得到不同结果。
- 挑战赛持续开放:官网至今接受新提交,若有新方法加入排名会变化,但表中 20 队的名次不会回溯改变。
- 统计显著性:论文用 bootstrap(2,000 次)计算 95% 置信区间,只有置信区间不重叠才可声称显著优于。前 4 名构成一个显著优于其余方法的梯队,其中 sysu_media 显著优于所有其他方法,但第 2、3、4 名之间的差异不一定显著。
§8.2 SOTA 总结与选型建议
- 第一梯队(显著更优):sysu_media(0.0068)为唯一冠军;cian(0.0357)、nlp_logix(0.0520)、nic-vicorob(0.0785)显著优于其余方法。四者均基于深度卷积网络,前三者使用某种形式的集成或循环建模。
- 深度学习主导:前 11 名全部为深度学习方法;传统机器学习最高只到第 15 名(knight),纯手工特征方法(hadi,随机森林)垫底,DSC 仅 0.23。
- 集成有效但有上限:冠军方案是多个随机初始化 U-Net 的投票集成,论文报告集成模型 DSC 78.80% 优于最佳单模型 77.06%;但跨团队的 STAPLE 融合并未超过冠军,与前 4 名融合后也仅到第 2 位。
- 指标间无一致最优:sysu_media 在 DSC、H95、Recall 三项最佳;cian 在 lAVD 最佳;nlp_logix 在 F1 最佳。没有方法在所有指标上最好。
- 鲁棒性与精度分离:ipmi-bern 用两阶段架构(先脑提取再病灶检测)拿下鲁棒性第 1,但总体仅第 9。
| 你的目标 | 建议方案 | 理由 |
|---|---|---|
| 追求最高分割精度 | 多模型集成(U-Net 2D × N,随机初始化 + 数据打乱 + 投票) | 冠军路线,实现简单,收益明确 |
| 追求跨设备稳定性 | 两阶段架构(解剖标准化 → 病灶检测) | ipmi-bern 的鲁棒性第 1 方案,解耦解剖与病理特征 |
| 追求体积定量准确 | 优化 lAVD,可用带对数变换的回归损失 | cian 在 lAVD 上最佳,体积指标与 Dice 目标不完全一致 |
| 追求病灶检出率 | 前景重采样 + 病灶级损失重加权 + 位置先验软约束 | nlp_logix 的 F1 最高(0.78),此处改进空间最大 |
| 计算资源有限 | nnU-Net 2D 配置 | 自动配置省去调参,外部研究验证在 WMH 任务上表现突出 |
§8.3 评测协议
| 协议要素 | 内容 |
|---|---|
| 评测数据 | 隐藏测试集 110 例,来自 5 台扫描仪(含 2 台训练未见) |
| 提交方式 | 方法须 Docker 容器化,提交给组织者运行 |
| 容器执行 | 逐例运行;每处理一个受试者后容器完全销毁并重载;容器内无扫描仪标识符 |
| 硬件环境 | 组织者提供 NVIDIA Titan Xp GPU |
| 校验机制 | 容器在首个训练受试者上的输出先返回给参与者验证,确保环境一致性 |
| 方法说明 | 参与者需提交 1-2 页方法描述 |
| 评测指标 | DSC、H95、lAVD、病灶 Recall、病灶 F1 五项 |
| 排名方法 | 逐指标优→劣映射至 [0,1](最优 0,最差 1),五项取均值 |
| 置信区间 | bootstrap 2,000 次有放回抽样,95% CI 不重叠视为显著差异 |
| 鲁棒性排名 | 各扫描仪各指标中位数的标准差,越小越稳健 |
| 开放性 | 挑战赛持续接受新提交,作为长期公开评测平台 |
协议三点独特性:(1) 测试集永久保密,与 BraTS 等公开测试集的挑战赛形成对比;(2) 容器逐例销毁重载,杜绝利用批内统计量作弊;(3) 容器内无扫描仪标识,防止方法根据来源切换策略。
§8.4 相关数据集
| 数据集 | 关系 | 差异 |
|---|---|---|
| ISLES 系列 | 同属 MICCAI 脑影像分割挑战 | 任务为缺血性卒中病灶;模态为 DWI/ADC/FLAIR 或单通道 T1 |
| ATLAS v2.0 | ISLES 2022 的单通道分支 | T1 单模态;1,271 例远大于 WMH Challenge;含完全隐藏的泛化集 |
| MSSEG 系列 | 同为白质病灶分割挑战 | 病灶为多发性硬化斑块,病因与形态不同(Dawson 手指征) |
| ADNI 衍生 WMH 集 | 随访队列的附属产物 | 纵向随访丰富,但 WMH 标注协议一致性弱于专项挑战 |
| UK Biobank 影像子集 | 大规模人群队列 | 数万例量级,但以自动 pipeline 生成的体积表型为主,缺逐例像素级标注 |
| BraTS | 同属 MICCAI 脑肿瘤分割挑战 | 任务为胶质瘤分割;测试集曾公开,评测协议不同 |
| LISA 测试集 | 外部验证队列 | 用于验证 WMH 分割方法的跨队列泛化,规模与协议由使用方定义 |
§8.5 关键论文
- Kuijf HJ, Biesbroek JM, de Bresser J, et al. Standardized Assessment of Automatic Segmentation of White Matter Hyperintensities and Results of the WMH Segmentation Challenge. IEEE TMI, 2019, 38(11): 2556-2568. DOI: 10.1109/TMI.2019.2905770 — 本数据集官方结果论文,定义任务、划分、五项指标与完整排行榜。
- Li H, Jiang G, Zhang J, et al. Fully Convolutional Network Ensembles for White Matter Hyperintensities Segmentation in MR Images. arXiv:1802.05203(后刊于 NeuroImage)— 冠军方法 sysu_media 的技术报告,含跨扫描仪评估与集成规模定量分析。
- Wu J, et al. Benchmark White Matter Hyperintensity Segmentation Methods Fail on Heterogeneous Clinical MRI. Journal of Imaging Informatics in Medicine, 2026. DOI: 10.1007/s10278-025-01808-9 — 用 195 例、71 台扫描仪的临床数据证明基准方法泛化差。
- Wardlaw JM, Smith C, Dichgans M. Small vessel disease: mechanisms and clinical implications. The Lancet Neurology, 2019, 18(7): 684-696. — 脑小血管病权威综述。
- Debette S, Markus HS. The clinical importance of white matter hyperintensities on brain magnetic resonance imaging: systematic review and meta-analysis. BMJ, 2010, 341: c3666. — WMH 与卒中、痴呆、死亡风险关联的经典 meta 分析。
- Wardlaw JM, et al. Neuroimaging standards for research into small vessel disease(STRIVE). The Lancet Neurology, 2013. — 本数据集标注所依据的 STRIVE 标准原始文献。
- Isensee F, et al. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nature Methods, 2021, 18: 203-211. — 被广泛用作 WMH 分割的强基线。
- Vanderbecq Q, et al. Comparison and validation of seven white matter hyperintensities segmentation software in elderly patients. NeuroImage: Clinical, 2020, 27: 102357. — 对七种 WMH 分割工具的独立比较。
§8.6 社区活跃度与生态快照
| 指标 | 现状 | 说明 |
|---|---|---|
| 挑战赛状态 | 持续开放 | 官网声明继续接受新方法提交,作为长期公开评测平台 |
| 主论文引用量 | 250+(Scopus / WoS 口径,截至 2026-09) | 在医学影像分割基准类论文中属高被引 |
| 赛后更新提交 | 至少 5 支团队提交更新版 | misp、neuro.ml、nih_cidi、sysu_media、tig |
| 冠军代码公开 | 是 | NITRC what_v1 项目提供软件与模型 |
| 第三方镜像 | 存在多个 | Hugging Face、Kaggle 上均有再分发 |
| 后续衍生研究 | 活跃 | 2024-2026 年持续有论文以该数据集为主基准(nnU-Net 变体、Transformer、基础模型微调) |
| 资源 | 类型 | 位置 |
| — | — | — |
| 挑战赛官网 | 数据与排行榜 | wmh.isi.uu.nl/0 |
| 官方结果论文 | 文献 | doi.org/10.1109/TMI.2019.2905770 |
| 冠军方法代码与模型 | 代码/模型 | NITRC what_v1 |
| nnU-Net | 框架 | github.com/MIC-DKFZ/nnUNet |
| MONAI | 框架 | github.com/Project-MONAI/MONAI |
| SimpleITK | 工具库 | simpleitk.org |
| MD-GRU 实现 | 代码 | github.com/zubata88/mdgru |
§9 相关资源与引用
§9.1 官方资源
| 资源 | 用途 |
|---|---|
| 挑战赛主页(wmh.isi.uu.nl/0) | 挑战赛总入口:注册、公告、背景说明 |
| 数据页(挑战赛官网 data 路径) | 训练数据下载(需注册),含 orig/ 与 pre/ 两版 |
| 结果页(挑战赛官网 results 路径) | 官方完整排行榜与各团队方法摘要 |
| 方法页(挑战赛官网 methods 路径) | Docker 提交规范、Python 与 MATLAB 示例容器 |
§9.2 数据集获取与许可指引
- 官方途径(推荐):访问挑战赛官网完成注册 → 从数据页下载 60 例训练数据 → 阅读并遵守官方条款 → 如需排行榜成绩,按 methods 页规范构建 Docker 容器提交。
- 引用要求:任何使用该数据集的研究,必须引用 Kuijf et al., 2019, IEEE TMI(DOI: 10.1109/TMI.2019.2905770)。若使用冠军方法作为基线,另需引用 Li et al.(arXiv:1802.05203)。
- 测试集纪律:不得尝试获取 110 例测试数据;不得通过反复提交变体对测试集做隐性调参;提交需附 1-2 页方法说明。
- 第三方镜像警示:Hugging Face 与 Kaggle 上的镜像为第三方再分发,许可标注(CC-BY-4.0 / Unknown)未经官方确认。正式研究与论文投稿应使用官方渠道来源。
§9.3 BibTeX 引用块
@article{Kuijf2019WMHChallenge,
title = {Standardized Assessment of Automatic Segmentation of White Matter
Hyperintensities and Results of the {WMH} Segmentation Challenge},
author = {Kuijf, Hugo J. and Biesbroek, J. Matthijs and de Bresser, Jeroen
and Heinen, Rutger and Andermatt, Simon and Bento, Mariana
and Berseth, Matt and Belyaev, Mikhail and Cardoso, M. Jorge
and Casamitjana, Adri{\`a} and Collins, D. Louis and Dadar, Mahsa
and Georgiou, Achilleas and Ghafoorian, Mohsen and Jin, Dakai
and Khademi, April and Knight, Jesse and Li, Hongwei
and Llad{\'o}, Xavier and Luna, Miguel and Mahmood, Qaiser
and McKinley, Richard and Mehrtash, Alireza and Ourselin, S{\'e}bastien
and Park, Bo-yong and Park, Hyunjin and Park, Sang Hyun
and Pezold, Simon and Puybareau, {\'E}lodie and Rittner, Let{\'i}cia
and Sudre, Carole H. and Valverde, Sergi and Vilaplana, Ver{\'o}nica
and Wiest, Roland and Xu, Yongchao and Xu, Ziyue and Zeng, Guodong
and Zhang, Jianguo and Zheng, Guoyan and Chen, Christopher
and van der Flier, Wiesje M. and Barkhof, Frederik
and Viergever, Max A. and Biessels, Geert Jan},
journal = {IEEE Transactions on Medical Imaging},
volume = {38}, number = {11}, pages = {2556--2568}, year = {2019},
doi = {10.1109/TMI.2019.2905770}, publisher = {IEEE}
}
@article{Li2018FCNEnsemble,
title = {Fully Convolutional Network Ensembles for White Matter
Hyperintensities Segmentation in {MR} Images},
author = {Li, Hongwei and Jiang, Gongfa and Zhang, Jianguo and Wang, Ruixuan
and Wang, Zhaolei and Zheng, Wei-Shi and Menze, Bjoern},
journal = {arXiv preprint arXiv:1802.05203}, year = {2018}
}
@article{Isensee2021nnUNet,
title = {{nnU-Net}: a self-configuring method for deep learning-based
biomedical image segmentation},
author = {Isensee, Fabian and Jaeger, Paul F. and Kohl, Simon A. A.
and Petersen, Jens and Maier-Hein, Klaus H.},
journal = {Nature Methods}, volume = {18}, pages = {203--211}, year = {2021}
}
§9.4 引用指南
| 使用场景 | 必引文献 | 补充引用 |
|---|---|---|
| 使用本数据集训练或评测 WMH 分割模型 | Kuijf et al., 2019, IEEE TMI | 若用冠军基线,加引 Li et al., 2018 |
| 讨论 WMH 的临床意义 | Debette & Markus, 2010, BMJ;Wardlaw et al., 2019, Lancet Neurol | — |
| 讨论标注标准 | Wardlaw et al., 2013(STRIVE) | — |
| 使用 nnU-Net 作为基线 | Isensee et al., 2021, Nature Methods | — |
| 讨论跨设备/跨协议泛化 | Kuijf et al., 2019(内置未见扫描仪验证);Wu et al., 2026 | — |
§10 AI 使用声明卡
§10.1 AI 模型清单
| 模型/工具 | 用途 |
|---|---|
| 大语言模型(文本生成) | 章节草稿撰写、技术叙述组织、表格结构化 |
| 检索增强(WebSearch / WebFetch) | 官方主页、IEEE TMI 论文、arXiv 全文、后续引用文献的事实核查 |
| 代码生成与语法校验 | §6 全部代码块;通过 Python 3.11 语法检查 |
§10.2 AI 参与范围
| 环节 | AI 参与程度 | 说明 |
|---|---|---|
| 事实检索 | 高 | 所有规模、日期、性能数值均来自检索到的官方或同行评审来源 |
| 数值核算 | 高 | 排行榜数值、统计量、样本数均逐项对照论文表格 |
| 章节撰写 | 高 | 全部正文由 AI 起草,人工审阅定稿 |
| 代码编写 | 高 | §6 代码由 AI 编写,人工审阅其逻辑正确性 |
| 医学判断 | 低 | 仅转述文献结论,不新增医学主张 |
| 结论与建议 | 中 | 选型建议基于论文证据推导,人工复核 |
§10.3 输入来源清单
- 挑战赛官方主页 — wmh.isi.uu.nl/0
- Kuijf HJ, et al. IEEE TMI 2019;38(11):2556-2568. DOI: 10.1109/TMI.2019.2905770(PubMed PMID 30908194,PMCID PMC7590957)
- 结果论文 arXiv 全文 — arxiv.org/abs/1904.00682(全文表格与统计量来源)
- Li H, et al. arXiv:1802.05203 及其全文镜像 ar5iv.arxiv.org/html/1802.05203(冠军方法、扫描仪参数表与分扫描仪结果)
- UMC Utrecht 研究信息页 — researchinformation.umcutrecht.nl;Amsterdam UMC Pure 出版物页 — pure.amsterdamumc.nl(主办方、赛事日期与论文元数据)
- IEEE Xplore 论文页 — ieeexplore.ieee.org/document/8669968
- Hugging Face 镜像数据集页 — huggingface.co/datasets/Angelou0516/wmh-segmentation(文件大小与目录结构)
- Kaggle 镜像数据集页 — kaggle.com/datasets/farahmo/wmh-dataset(标签定义与目录结构)
- Wu J, et al. J Imaging Inform Med 2026. DOI: 10.1007/s10278-025-01808-9(异构临床 MRI 泛化研究)
- PMC11697725(扫描仪多样性与例数确认);PMC8764480(数据许可说明与软件公开信息)
- 脑小血管病术语与流行病学 — radiopaedia.org/articles/cerebral-small-vessel-disease;stroke-manual.com(风险倍数);ICD-11 编码参考 — identifiers.org/kegg.disease/H00877
- 同类数据集对比与指标研究 — isles-challenge.org、atlas.grand-challenge.org、ScienceDirect S0169260724000038、repository.ubn.ru.nl/bitstream/handle/2066/323875/323875.pdf
§10.4 人工校验
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1 概览与战略价值 | 千方病案医学编辑部 | 对照官方主页与论文摘要逐项核对 | ✅ 已通过 |
| §2 医学背景与编码映射 | 千方病案医学编辑部(医学审核) | 核对 ICD-11 / SNOMED CT 术语与流行病学文献 | ✅ 已通过 |
| §3 数据集规格 | 千方病案医学编辑部(数据工程审核) | 逐项对照论文 Table 1 与官方目录说明 | ✅ 已通过 |
| §4 数据结构与 DAIMS 字典 | 千方病案医学编辑部(数据工程审核) | 核对目录结构与标签定义 | ✅ 已通过 |
| §5 划分与泄漏分析 | 千方病案医学编辑部(数据工程审核) | 复核泄漏路径与交叉验证建议 | ✅ 已通过 |
| §6 代码与坑点 | 千方病案医学编辑部(数据工程审核) | 语法检查 + 逻辑复核 + 对照论文 limitation | ✅ 已验证 |
| §7 质量评估与偏倚 | 千方病案医学编辑部(医学审核) | 核对观察者一致性数值与外部验证结果 | ✅ 已通过 |
| §8 排行榜与生态 | 千方病案医学编辑部 | 逐格核对论文 Table II / Table III 数值 | ✅ 已通过 |
| §9 引用与 BibTeX | 千方病案医学编辑部 | 核对 DOI、卷期页码与作者列表 | ✅ 已通过 |
| §10 声明卡与 JSON-LD | 千方病案医学编辑部 | 结构化数据校验与一致性检查 | ✅ 已通过 |
§10.5 AI 生成章节标注
全文由 AI 起草。其中以下内容为基于检索来源的事实性转述,不含 AI 独立主张:§2 医学背景、§3 数据集规格、§4 数据结构、§7.2 标注质量、§7.7 DAIMS 评估、§8.1 排行榜、§8.5 关键论文、§9.3 BibTeX。
以下内容为AI 基于文献证据推导的建议性内容,已由人工复核:§1.2 战略价值、§5 划分与使用建议、§6 AI 就绪指南(含 8 个坑点)、§7.7 的"对你意味着什么"、§8.2 选型建议。
§10.6 最后人工审核日期
最后人工审核日期:2026-09-05(与 §0.1 审核日期一致)。
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- isles — 共享标签:神经科学 / 脑影像 / 医学图像分割 / 心血管疾病 / 挑战赛数据集
- atlas-v2 — 共享标签:神经科学 / 脑影像 / 医学图像分割 / 心血管疾病
- camus — 共享标签:医学图像分割 / 心血管疾病 / 挑战赛数据集
- sliver07 — 共享标签:医学问答与基准 / 医学图像分割 / 挑战赛数据集
- btcv — 共享标签:医学问答与基准 / 医学图像分割 / 挑战赛数据集
- crossmoda2022 — 共享标签:神经科学 / 医学图像分割 / 挑战赛数据集
- aims-tbi — 共享标签:脑影像 / 医学图像分割 / 挑战赛数据集
- mms-2 — 共享标签:医学图像分割 / 心血管疾病 / 挑战赛数据集
- cmrxmotion — 共享标签:医学图像分割 / 心血管疾病 / 挑战赛数据集
- lvquant — 共享标签:医学图像分割 / 心血管疾病 / 挑战赛数据集
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
