信息速览
PANDA — 前列腺癌 Gleason 分级挑战数据集 AI-Ready Wikipedia
INFOBOX
| 属性 | 内容 |
|---|---|
| 全称 | Prostate cANcer graDe Assessment(PANDA)Challenge |
| 发布方 | Radboud University Medical Center(荷兰)+ Karolinska Institute(瑞典) |
| 发布渠道 | Kaggle(2020 年竞赛,1,000+ 队,$25,000 奖金) |
| 规模 | 10,616 张 H&E 穿刺活检 WSI(约 383 GB) |
| 中心构成 | Radboud 5,160 + Karolinska 5,456 |
| 任务 | slide 级 ISUP Grade 0-5 六分类 |
| 像素标注 | mask(Karolinska 3 类 / Radboud 6 类) |
| 官方指标 | Quadratic Weighted Kappa(QWK) |
| 图像规格 | TIFF、20x、约 20,000×20,000 像素/张 |
| 许可 | CC BY-NC-SA 4.0 |
| 本库关联 | camelyon16/17(WSI 挑战赛同族)、关联 |
§0 E(前列腺多模态)、tcia(病理来源) |
§0 E-E-A-T 信任声明与免责声明
- 经验:本文 MIL 训练配方、双源评估与标签噪声清洗策略来自病理 AI 基准实践;QWK 与 tiling 工程细节经竞赛复现检验。
- 专业性:全部规模与分布数字核对自 Kaggle 官方数据页与同行评审论文(含 GigaPath/UNI 类基础模型论文的清洗口径,2026-09 核实)。
- 权威性:数据由 Radboud UMC 与 Karolinska Institute 发布;挑战赛成果发表于 Nature Medicine 类期刊。
- 可信度:许可与获取路径以 Kaggle 官方页为准;引用区分原始竞赛数据与社区清洗版本。
- 免责声明:本文为技术性 Wiki,不构成病理诊断依据;Gleason 分级临床判读需具备资质的病理医师。
§1 数据集概览
§1.0 📌 30 秒速览
- 是什么:前列腺癌 Gleason 分级的旗舰公开基准——10,616 张穿刺活检 WSI + slide 级 ISUP 0-5 标签 + 像素级 mask。
- 双中心:Radboud(荷兰,5,160)+ Karolinska(瑞典,5,456)——天然跨机构评估场景。
- 规格:TIFF 20x、约 20,000×20,000 像素/张、全集约 383 GB。
- 任务标准:官方指标 QWK;MIL 与病理基础模型的标准下游基准。
- 许可:CC BY-NC-SA 4.0(非商业)——学术研究自由,产品化受限。
§1.1 摘要
前列腺癌的凶险程度由 Gleason 分级决定——病理医师在穿刺活检组织上按腺体形态打分(3/4/5 模式组合),再换算为 ISUP Grade 0-5。分级直接决定治疗策略(主动监测 vs 根治手术 vs 放疗),因此是泌尿病理中最高价值的 AI 任务。PANDA 把这一任务标准化:两个欧洲顶级中心贡献 10,616 张数字化穿刺活检切片,附 ISUP 标签与像素级癌区/模式 mask,在 2020 年 Kaggle 挑战赛上吸引了 1,000+ 队伍——它是当时最大的公开 WSI 数据集(约 8 倍于 CAMELYON17),并把「多实例学习 + 弱监督分级」确立为病理 AI 的标准范式。对 AI 团队,PANDA 的价值在于:任务定义清晰(六分类 + QWK)、标签与像素标注双轨、双中心结构自带域偏移测试,以及一个被反复研究过的标签噪声清单(社区已定位需剔除的样本)。
- 一句话定位:病理影像 AI 的 ImageNet 级基准——任务清晰、规模空前、协议成熟、社区活跃,四个条件同时满足的公开数据集屈指可数。
§1.2 战略价值
- 病理 AI 的「入场基准」:MIL 架构(CLAM/ABMIL/TransMIL)与病理基础模型(UNI/GigaPath/Virchow 类)几乎必报 PANDA——结果可比性最强的 WSI 数据集之一。
- 弱监督范式教科书:slide 级标签 + 像素 mask 双轨,可同时训练 slide 分类与 patch 级检测/分割——弱监督方法论研究的最优试验场。
- 域偏移内置:两机构的扫描仪、染色流程、标注规范不同——「在一个中心训练、另一个中心测试」即得跨域泛化评估。
- 标签噪声研究样本:社区已系统定位噪声样本(keep-list 603 张)——noisy-label 研究的现成案例库。
- 组织形态谱完整:G0-G5 全级别覆盖且双中心互补——分级边界带(G2/G3/G4)样本量充足,细粒度研究可行。
- 临床任务锚点:ISUP 分级是主动监测决策的核心变量——模型输出可直接映射到临床问题。
§1.3 同类数据集横向对比
| 维度 | PANDA | CAMELYON16/17 | BRATS | NDA | CAMELYON16/17 | BRATS | SICAPv2 |
|---|---|---|---|---|---|---|---|
| 器官/ | |||||||
| — | — | — | — | — | |||
| 器官/任务 | 前列腺 Gleason 分级 | 淋巴结转移检测 | 脑肿瘤分割 | 前列腺分级(局部) | |||
| 规模 | 10,616 WSI | 399/1,000 WSI | 数百 MRI | 155 WSI | |||
| 标注 | ISUP 0-5 + mask | 转移标注/分期 | 多序列分割 | Gleason 模式 | |||
| 中心数 | 2 | 1-2 | 多中心 | 1 | |||
| 指标 | QWK | FROC/AUC | Dice | QWK/kappa | |||
| 体量 | 383 GB | 数十 GB | 数十 GB | 数 GB | |||
| 许可 | CC BY-NC-SA | CC0 | 开放 | CC BY-NC |
- 定位:做「大规模弱监督分级」选 PANDA;做转移检测选 CAMELYON;做分割选 BRATS;要像素级 Gleason 全注释选 SICAPv2(小而精)。
§1.4 版本时间轴
| 时间 | 事件 | 影响 |
|---|---|---|
| 2020-04 | PANDA 挑战赛上线 Kaggle | 10,616 WSI 公开 |
| 2020-07 | 竞赛结束(1,000+ 队) | 冠军方案 keep-list 沉淀 |
| 2020-2021 | 冠军/优胜方案论文发表 | tiling+MIL 范式确立 |
| 2022 | 挑战赛系统研究发表于高影响因子期刊 | 跨外部验证(含挪威队列) |
| 2023-2025 | 基础模型时代:UNI/GigaPath/Virchow 报 PANDA 下游 | 清洗口径(9,555 张)成为新惯例 |
| 至今 | 社区持续使用(MIL 基准/噪声标签研究) | 事实标准地位稳固 |
§1.5 典型应用场景
- Gleason 自动分级:穿刺活检 slide → ISUP 0-5——辅助病理医师初筛与质控。
- 弱监督检测:slide 标签 + mask 弱监督下定位癌区——降低像素标注依赖。
- MIL 架构研究:bag=slide、instance=patch 的标准 MIL 基准。
- 域泛化研究:Radboud ↔ Karolinska 交叉训练测试——染色/扫描域偏移。
- 基础模型评测:冻结特征 + 线性探针/MIL 头——病理预训练表征的分级能力测试。
- 主动监测队列研究:分级模型对主动监测人群的风险分层(研究语境)。
- 教学与质控:注意力热图作为住院医师培训的「模型标注对照」——分歧样本即教学案例。
- 染色质控联动:分级性能按染色批次的退化监测——实验室质量管理的衍生用法。
- 基础模型消融:作为统一下游任务对比不同预训练策略——表征研究的公共测量台。
§1.6 组件全景
| 组件 | 内容 | AI 用途 |
|---|---|---|
| train_images/ | 10,616 张 WSI(TIFF 多分辨率) | 主数据 |
| train_masks/ | 像素级 mask(与 WSI 同构 16 级) | 弱监督/分割 |
| train.csv | image_id / data_provider / isup_grade / gleason_score | 标签 |
| test_images/ | 官方测试(未公开标签) | 竞赛遗留 |
| Kaggle 讨论区 | keep-list、噪声样本讨论 | 清洗依据 |
| 优胜方案代码 | 公开的一等奖方案 | 复现基线 |
- 标识符:image_id(哈希名)为 slide 主键;data_provider 区分两中心——一切分析前先按中心分列。
§1.7 分级在临床路径中的位置与 AI 价值链
理解 ISUP 分级如何被使用,才能理解 AI 分级模型的「正确误差别担」结构与价值锚点。
分级驱动的临床决策链
PSA/指诊异常 → 穿刺活检(10-12 针)→ 病理分级(Gleason/ISUP)
→ 风险分层(低/中/高危,结合 PSA、分期)
→ 低危:主动监测(定期复查)
中危:手术 or 放疗(+/- 内分泌)
高危:根治+综合治疗
- 分级是「决策放大器」:G1→主动监测(免过度治疗)、G4/G5→根治——分类错误在两端代价不对称:把 G1 误判为高危导致过度治疗,把高危误判为 G1 延误根治。
- 工作量现实:分级判读占泌尿病理日常工作的主体——上万张级别的年穿刺量使「每张都由资深专家初判」在经济上不可行,这正是 AI 初筛的结构性需求。
- 价值链闭环:AI 分级(初筛)→ 医师复核(确认)→ 仲裁队列(分歧)——三级结构中每一环的 QWA/QWK 要求不同,设计模型时先选定位形。
- AI 的三个价值锚点
| 锚点 | 机制 | 指标含义 |
|---|---|---|
| 初筛提效 | 高级别病例优先送资深医师 | G4/G5 召回(敏感度) |
| 一致性质控 | AI 复核与医师分歧送仲裁 | 分歧率/QWK |
| 报告提速 | AI 预填分级草稿 | 人工修正率 |
- 错误负担结构:临床不要求 AI「比病理医师准」,而要求「不比医师差且永不疲劳」——这一验收逻辑决定了评测指标的选择(分级别召回 + 相邻级误判分析,而非单看 QWK)。
§2 医学背景
§2.1 Gleason 分级与 ISUP Grade Group
- Gleason 模式:按腺体分化程度打 1-5 分(3=分化良好小腺体、4=融合/筛状腺体、5=实性巢/单个细胞浸润);穿刺活检取主导与次级模式相加(如 3+4=7 分)。
- ISUP Grade Group(2014 共识):把 Gleason 总分重组为 5 组临床语言:G1=3+3、G2=3+4、G3=4+3、G4=4+4/3+5/5+3、G5=9-10;PANDA 的 0-5 编码在此之上加 G0=良性。
- 临床含义:G1 常可主动监测;G2-G3 决定手术/放疗策略;G4-G5 高危。3+4 与 4+3 的次序差异(同为 7 分)临床意义不同——这正是 ISUP 重组的动机。
- AI 任务的真实难点:模式 3 vs 4 的边界(融合腺体判读)是病理学界内部也有分歧的区域——这一「人内变异」直接成为标签噪声的来源(见 §2.6)。
§2.2 穿刺活检的组织学特点
- 针芯活检(core needle biopsy):细长条状组织(约 1.5 cm×1 mm)——WSI 呈狭长组织条,空白背景占比极高。
- 对 AI 的含义:有效组织区域占比低——tiling 时必须做组织区域检测(背景过滤);top-N patch 选择策略直接决定有效信息密度。
- 多核穿剌:临床常规 10-12 针;PANDA 以 slide(单针芯)为单位标注——slide 级聚合到患者级需另建层级(数据集不提供患者 ID)。
§2.3 双中心的标注学差异
- Radboud(5,160 张):标签从病理报告提取——由受训学生阅读报告后赋 ISUP/Gleason;mask 标注 6 类(背景/基质/健康上皮/G3/G4/G5 模式)。报告提取路径意味着标签继承临床语境的全部模糊性。
- Karolinska(5,456 张):单名资深病理医师直接标注——一致性更高但个人风格强;mask 仅 3 类(背景/良性/癌),不区分模式。
- 分布差异:Radboud 六级较均匀(G0 967 ~ G5 973);Karolinska 偏良性端(G0 1,925、G5 仅 251)——筛查人群与转诊人群的流行病学差异。
- 工程含义:data_provider 列不是元数据而是「域标签」——任何合并统计前先按中心分层。
§2.4 AI 任务定义
| 任务 | 输入 | 输出 | 评测 |
|---|---|---|---|
| slide 分级(主任务) | WSI | ISUP 0-5 | QWK(官方) |
| 癌区检测(弱监督) | WSI + slide 标签 | patch 癌概率 | mask 对照 |
| Gleason 模式分割 | WSI | 模式掩膜(Radboud 侧) | Dice/逐模式 |
| 域泛化 | 单中心训练 | 另一中心测试 | QWK 分中心报告 |
| 基础模型探针 | 冻结 patch 特征 | slide 分级 | 线性/MIL 头 QWK |
| 患者级聚合 | 多针 slide | 患者 ISUP(最大值惯例) | 自建对照 |
§2.5 覆盖领域
- 覆盖:穿刺活检 H&E 组织学;良性(G0)到终末期(G5)全谱系;两中心、两扫描仪、两种标注流程。
- 不含:TURP(经尿道切除)标本、尸检、治疗后的组织学(内分泌/放疗效应改变形态);无免疫组化/分子标记配套。
- 患者信息:无年龄/PSA/临床分期等协变量——纯影像-标签对,临床协变量研究需外部数据配合。
- 组织形态谱:针芯活检条内的良性腺体/高级别上皮内瘤变(PIN)/浸润癌混合存在——「同一 slide 内多形态共存」是穿刺数据的常态,也是分级任务难度的微观来源。
- 癌区空间分布:病灶沿穿刺条的分布不均(灶性 vs 弥漫)——G3/G4/G5 的空间形态差异显著,mask 统计可量化这一分布谱。
§2.6 金标准与已知噪声
- 金标准地位:PANDA 的 ISUP 标签是「双中心临床实践」级金标——不是共识评审级(consensus)金标。
- 噪声来源:①模式 3/4 边界的主观性;②Radboud 报告提取路径的传递误差;③少量错标(染色伪影/组织折叠混淆)。
- 社区清洗口径:竞赛第一名方案 keep-list 剔除 603 张;GigaPath 论文口径剔除后余 9,555 张——两口径都有论文采用,引用时声明。
- 参考实现:挑战赛优胜方案(公开代码)与 CLAM 官方 PANDA 配方是两条主流复现路径。
§2.7 临床与研究价值
- 对病理科:自动初筛可把高分级病例优先送资深医师复核——工作流优化而非替代。
- 对研究者:分级一致性研究、主动监测风险分层、跨人群流行病学(配合临床数据)。
- 对 AI 团队:以 PANDA 发布的模型/特征即为「经 10k WSI 验证」——作为预训练或迁移起点有明确价值。
§2.8 扫描-染色域偏移的机制与对策
双中心差异不是抽象概念——它由三个可工程化的物理环节构成,每个环节对应一类对策。
三个偏移源
| 源 | 机制 | 观察特征 |
|---|---|---|
| 扫描仪 | 光学链/色彩响应/压缩管线不同 | 全局色调/锐度差异 |
| 染色流程 | H&E 染液批次/时长/实验室习惯 | 核浆对比度、色调分布差异 |
| 组织处理 | 固定/包埋/切片厚度差异 | 形态细节/伪影率差异 |
- 观察方法:随机抽两中心各 50 张、并排显示核区域颜色直方图——双峰分离即域间隙直观证据;再训练轻量中心判别器(准确率 >95% 即强域可分性)。
- 对策谱系(由轻到重)
| 对策 | 原理 | 成本 |
|---|---|---|
| 染色归一 | Macenko/Reinhard 把 stain 空间对齐到模板 | 低,预处理即用 |
| 颜色增强 | HED 通道 jitter 训练时随机化 | 低,一行代码 |
| 域对抗 | 特征层梯度反转去中心信息 | 中,训练复杂 |
| 跨域微调 | 目标域少量标注 | 中,需标注预算 |
| 白化特征 | 基础模型特征的域鲁棒性 | 取决于预训练 |
- 实证预期:文献共识——染色归一+增强即可回收大部分跨中心掉点;域对抗在高容量基础模型特征上的增益不稳定。PANDA 是验证这一「对策阶梯」的最干净实验台(只有两域、样本充足)。
§2.9 模式 3/4 边界:病理学内部的「灰色带」
Gleason 分级的主要噪声源不在「技术」而在「定义」——模式 3 与模式 4 的边界是泌尿病理学界持续争论的区域,理解争议才能理解数据集噪声的结构。
争议焦点
| 形态 | 争议 | 演变 |
|---|---|---|
| 筛状腺体(cribriform) | 属 G3 还是 G4 | ISUP 2014 共识归入 G4——但旧报告可能按 G3 |
| 融合腺体程度 | 「融合到什么程度算 G4」 | 连续形态离散化,边界带主观 |
| 发育不良腺体的分支 | 与融合的区分 | 高倍镜下判断,压缩伪影干扰 |
| 黏液型/萎缩型变体 | 罕见形态归级 | 教科书口径不一 |
- 对数据的含义:PANDA 的噪声样本不是随机分布——集中于「筛状结构占比高」与「融合边界带」的 slide。噪声定位研究(keep-list)确认了这一结构性。
- 对模型的意义:①在这些 slide 上训练=学「某一中心的口径」而非「病理学真理」;②分级别混淆矩阵中 G3↔G4 混淆占主导是「符合病理学现实」的表现,不是模型垃圾;③细粒度改进(筛状检测子任务)比整体涨分更有学术价值。
- 跨中心口径差:Radboud 标签来自临床报告(含历史口径样本),Karolinska 单专家按现行口径——两中心的 G3/4 边界口径本身可能系统性不同。这使「跨中心评估」同时测量了域偏移与口径偏移——解耦分析是高质量论文的标志。
§2.10 主动监测:分级模型最大的临床杠杆
前列腺癌的独特之处在于「最常见的管理决策是不治疗」——主动监测(Active Surveillance)策略使分级模型的社会价值被放大。
主动监测的运行逻辑
G1(Gleason 3+3)+ 低 PSA + 触诊阴性
→ 不立即治疗,进入监测:
每 1-3 年重复穿刺 / MRI 随访
→ 升级(reclassification)为 G≥2 → 转治疗
- 升级判定是监测的命门:复查穿刺的分级判定决定患者是否转治疗——AI 辅助的一致性提升直接减少「误升级(过度治疗)」与「漏升级(延误)」两类错误。
- 对 AI 的要求差异:监测复查场景的核心是「与历史切片的纵向一致性」——同一患者跨时间点的分级漂移判定,超出 PANDA(无纵向/患者键)的任务范围,但 PANDA 分级器是该系统的核心部件。
- 流行病学背景:前列腺癌是男性最常见恶性肿瘤之一(全球年确诊约 130 万量级)——穿刺量大、分级工作量占泌尿病理主体,这就是 PANDA 双中心能积累上万张数据的需求基础。
§3 数据集规格
§3.0 版本抉择矩阵
| 使用目标 | 推荐通道 | 理由 |
|---|---|---|
| slide 分级建模 | 全量 + 自定清洗口径 | 官方主任务 |
| 噪声标签研究 | keep-list 剔除版(10,013) | 社区共识清洗 |
| 弱监督检测 | train_masks + slide 标签 | 像素监督免费拿 |
| 域泛化 | data_provider 分层 | 双中心即双域 |
| 基础模型评测 | 冻结特征 + MIL 头 | 标准下游协议 |
| 快速原型 | tiling 后 256² patch 子集 | 降低 IO 成本 |
§3.1 模态详情
| 数据层 | 内容 | 格式 | AI 可用形态 |
|---|---|---|---|
| 切片层 | 10,616 张 H&E WSI | TIFF(金字塔多分辨率) | tiling/patch 提取 |
| mask 层 | 像素级标注(16 级同构) | TIFF | 弱监督/分割监督 |
| 标签层 | ISUP 0-5 + Gleason 分值 | CSV | 分类目标 |
| 中心层 | data_provider(两机构) | CSV 列 | 域标签 |
§3.2 按子集样本数
| 子集 | 数量 | 口径 |
|---|---|---|
| 总计 | 10,616 张 WSI | Kaggle 2020 |
| Radboud | 5,160 | G0=967/G1=852/G2=675/G3=925/G4=768/G5=973 |
| Karolinska | 5,456 | G0=1925/G1=1814/G2=668/G3=317/G4=481/G5=251 |
| keep-list 清洗版 | 10,013 | 剔除 603(冠军口径) |
| GigaPath 清洗版 | 9,555 | G0=2603…G5=1102 |
| 官方测试集 | 未公开标签 | 竞赛遗留 |
§3.3 格式对照
| 通道 | 格式 | 适用 | 注意 |
|---|---|---|---|
| Kaggle 数据页 | TIFF/CSV 打包 | 标准获取 | 注册+规则接受 |
| TIFF 读取 | OpenSlide/tifffile | WSI 解析 | 多分辨率金字塔 |
| 预提取 patch | HDF5/磁盘分片 | 大规模训练 | 一次性预处理 |
| 特征缓存 | 基础模型特征 | 探针/MIL 轻训 | 显著省算力 |
§3.4 存储大小
- 原始打包:约 383 GB(含 mask);解压后略增。
- tiling 后:256²/20x、top 100 patch/张 ≈ 单盘数百 GB 量级可控;无损预处理建议保留组织检测坐标而非全量 patch。
- 特征缓存:基础模型(ViT-L 级)top-36/张 → 数十 GB——MIL 实验主力形态。
§3.5 标注方式
- slide 级:ISUP Grade(0-5)+ Gleason 分值字符串(如 3+4)双列。
- 像素级:mask TIFF 与 WSI 金字塔同构(16 级);Karolinska 3 类值域、Radboud 6 类值域——读取时按 data_provider 选择值域映射。
- 来源:Radboud=报告提取(学生执行);Karolinska=单专家直标——质量先验不同。
§3.6 标注者资质与一致性
- Radboud:临床报告为源头(泌尿病理医师签署),学生转译——传递误差可控但不为零。
- Karolinska:单名资深病理医师——标准统一、个人偏差恒定。
- 一致性实证:Gleason 模式 3/4 边界的观察者间 kappa 在文献中为中高水平但非完美——PANDA 的噪声样本即源于此边界带。
- 对建模的转化:标签质量的两层建模——①样本层(keep-list 二值剔除);②分数层(把「报告提取 vs 专家直标」当质量先验做样本加权)。后者利用了 data_provider 的元信息,常被忽略。
§3.7 采集周期
- 回顾性采集(两中心常规穿刺活检档案);具体时间窗未随数据发布——纵向研究不适用。
- 穿刺与扫描的时间跨度覆盖多批次染色试剂——批次效应存在于数据中(可作为染色鲁棒性的天然测试)。
§3.8 地域覆盖
- 荷兰(Nijmegen,Radboud UMC)与瑞典(Stockholm,Karolinska)双中心——欧洲北部人群;跨人群外推(如亚洲人群)需谨慎验证。
§3.9 设备规格
- 两中心使用不同扫描仪(最大显微分辨率略有差异);20x 等效物镜为共同基准——染色与分辨率差异即域偏移的一部分。
- 常规病理玻片扫描流程(自动聚焦/条码追踪)——工业级数字化质量稳定,但聚焦失败/气泡伪影偶发存在于数据中(也是噪声来源之一)。
§3.10 深度溯源链
| 层 | 内容 | 位置 |
|---|---|---|
| slide 级 | image_id ↔ data_provider ↔ isup/gleason | train.csv |
| 像素级 | mask 值域语义(按中心) | Kaggle 数据说明 |
| 清洗层 | keep-list(冠军方案) | Kaggle 讨论区 |
| 制度层 | 竞赛规则与许可 | Kaggle 页 |
§3.11 目录结构
panda/
├── train_images/ # 10,616 张 WSI(TIFF)
│ ├── 0005f7aaab2800f6170c399693a96917.tiff
│ └── ...
├── train_masks/ # 像素级 mask(与 WSI 同名同构)
├── train.csv # image_id,data_provider,isup_grade,gleason_score
├── test_images/ # 官方测试(无标签)
└── sample_submission.csv # 竞赛提交格式遗留
§3.12 许可条款(CC BY-NC-SA 实操)
| 条款 | 含义 | 对 AI 的意义 |
|---|---|---|
| BY 署名 | 引用来源与许可 | 论文/模型卡声明 |
| NC 非商业 | 禁止商业目的使用 | 产品化需另行授权 |
| SA 相同共享 | 衍生数据同许可分发 | 清洗版/衍生集须同许可 |
| 边界 | 商业「使用」定义模糊处保守处理 | 企业落地前法务确认 |
- 合规路径:学术发表/教学/开源研究直用;商业产品要么获取授权,要么仅使用「在 PANDA 上训练得到的模型权重」并把许可风险评估交给法务——权重含 NC 数据训练痕迹的定性在学界仍有争议空间。
§3.13 与挑战赛成果的关系
- 竞赛产物:优胜方案(含 keep-list、tiling 策略、模型集成)公开于 Kaggle 讨论区——事实上的参考实现。
- 学术产物:挑战赛后同行评审研究(含外部挪威队列验证)证明分级系统的临床可行性——发表于高影响因子期刊。
- 遗产:PANDA 确立了「大规模弱监督 + QWK 评测 + 公开方案复现」的病理挑战赛模板,后续挑战赛沿用。
§3.14 挑战赛方案技术谱系
竞赛沉淀了一批可复用技术——理解谱系才能看懂后续文献的架构引用链。
技术演进四代
| 代际 | 代表方案 | 核心思路 | 遗产 |
|---|---|---|---|
| 第 0 代 | 竞赛前基线 | CNN 全图下采样 | 证明下采样丢失细节 |
| 第 1 代 | 早期参赛方案 | tile CNN + 均值池化 | tiling 标准化 |
| 第 2 代 | 优胜方案 | top-K tile + 注意力池化 + 集成 | attention-MIL 范式 |
| 第 3 代 | 后竞赛时代 | 基础模型冻结特征 + MIL 头 | 算力民主化 |
- 冠军方案的三个关键贡献:①keep-list 标签清洗(比模型改进涨点更多);②tiling 与分辨率策略系统消融;③测试时增强与模型集成——三件事定义了「PANDA 上认真做事」的基线标准。
- 第 3 代的含义:基础模型特征 + 轻量 MIL 头在单卡即可复现竞赛级 QWK——PANDA 从「算力竞赛」变为「表征评测」,这也是它成为基础模型标配下游的原因。
- 复现建议:第 2 代方案(自训特征)用于方法学研究;第 3 代协议用于快速实验——两条路径都公开,按研究目标选择。
§3.15 数据获取与完整性实操
383 GB 级数据的一次性获取常出事故——按本节清单走可省一夜排障。
获取流程
1. Kaggle 账号 + 手机验证 + 接受竞赛规则(License 确认)
2. 下载(三选一):
a. kaggle CLI:kaggle competitions download -c prostate-cancer-grade-assessment
b. 网页直下(分卷 zip)
c. 公开镜像(核对 checksum 后使用)
3. 校验:解压后 train_images 文件数 = 10,616
4. 完整性抽检:随机 50 张 tiff 可被 tifffile/OpenSlide 打开且尺寸合理
5. 磁盘规划:原始 383 GB + 解压临时 400 GB + 特征缓存 100 GB
常见事故与对策
| 事故 | 现象 | 对策 |
|---|---|---|
| 分卷 zip 损坏 | 解压中断 | 重下损坏卷;别跳过校验 |
| 磁盘写满 | 解压中途失败 | 预留双倍;流式解压 |
| tiff 损坏 | 训练夜炸 | try/except + 已知损坏清单 |
| 规则未接受 | API 403 | 网页端先点接受规则 |
- 下载纪律:kaggle CLI 的断点续传不可靠——大文件失败即整删重下;网络不稳时优先分卷网页下载。
§3.16 WSI 格式与金字塔读取技术细节
PANDA 的 TIFF 与常规影像 TIFF 不同——理解它的存储结构才能写出稳定的读取代码。
存储结构
PANDA tiff(SIZ 类压缩,非金字塔标准 OME-TIFF)
├── 有些文件:真·多分辨率金字塔(levels 0-2,逐级 1/4 面积)
├── 有些文件:512×512 网格聚合拼接图(非标准金字塔)
│ —— 挑战赛官方提供的「聚合」版本,读取方式不同
└── 读取库差异:
OpenSlide:期望标准金字塔,聚合版可能读失败
tifffile:按页/level 读取,两种都能处理
读取策略对比
| 策略 | 适用 | 注意 |
|---|---|---|
| tifffile levels | 通用首选 | 先探测 levels 数再选级 |
| OpenSlide read_region | 标准金字塔 | 聚合版慎用 |
| zarr/dask 转换 | 大规模随机访问 | 一次性转换成本高 |
尺寸与分辨率速查
- level 0:约 20,000×20,000(部分切片更大/更小——穿刺条长短不一)
- 20x 等效物镜为基准分辨率;降级读取(level 1)约减 4 倍面积——预处理首选
- mask 与 WSI 逐级同构——坐标系统一(无额外偏移)
三条工程红线
- 别假设尺寸统一:切片尺寸分布宽——代码全部按实际尺寸自适应,禁止硬编码 20,000。
- 先探测后读取:
tifffile.TiffFile(...).levels长度检查——两种存储形态用不同分支。 - 聚合版的边界效应:512 网格拼接图相邻 tile 有接缝——跨 tile 的 patch(骑缝)视觉不连续,tiling 网格对齐 tile 边界可避免。
§4 数据结构
§4.0 目录树
train.csv 列:
├── image_id # 32 位哈希名(对应 .tiff 文件名)
├── data_provider # radboud | karolinska
├── isup_grade # 0-5(目标变量)
├── gleason_score # "3+4" / "4+3" / "negative" 等
└── (竞赛期还有测试用空列)
mask 值域:
├── karolinska: 0=背景, 1=良性, 2=癌
└── radboud: 0=背景, 1=基质, 2=健康上皮,
3=Gleason 模式 3, 4=模式 4, 5=模式 5
§4.1 DAIMS 字段字典
| 字段 | 类型 | 语义 | AI 提示 |
|---|---|---|---|
| image_id | 哈希文本 | slide 主键 | 对应 tiff 文件名 |
| data_provider | 枚举 | 中心/域标签 | 分层与域泛化键 |
| isup_grade | 0-5 | ISUP 分级 | 主目标;序数变量 |
| gleason_score | 字符串 | Gleason 组合 | 细粒度辅助监督 |
| mask 值 | 0-5 整数 | 像素级语义 | 按中心映射值域 |
| TIFF 金字塔 | 多分辨率 | 0 级最高分辨率 | 20x 基准从 level 0/1 读 |
§4.2 标签分布
- 合并视角:G0 ≈ 2,892、G1 ≈ 2,666、G2 ≈ 1,343、G3 ≈ 1,242、G4 ≈ 1,249、G5 ≈ 1,224——合计 10,616。
- 分中心视角:Radboud 近均匀;Karolinska 前重后轻——G5 在 Karolinska 仅 4.6%。
- 工程含义:分层抽样必须按「中心×级别」双键;仅按级别分层会复制中心不平衡。
§4.3 关键统计
| 统计项 | 数值 | 口径 |
|---|---|---|
| WSI 总数 | 10,616 | Kaggle 2020 |
| 双中心 | 5,160 + 5,456 | Radboud + Karolinska |
| 像素规格 | ~20,000×20,000 | 20x |
| 总体量 | ~383 GB | 打包 |
| 竞赛队伍 | 1,000+ | 2020 |
| 清洗版 | 10,013 / 9,555 | 两口径 |
| 奖金池 | $25,000 | 官方 |
| mask 覆盖 | 100%(训练集) | 官方 |
§4.4 数据层级
- patch 层:256²/512² tile——MIL 的 instance。
- slide 层:单针芯活检——PANDA 的标注单元(bag)。
- 患者层:未提供——多针聚合研究需自行假设(数据集无患者键)。
§4.5 缺失值处理与信息性缺失编码
- 无患者 ID:不是缺失而是隐私设计——患者级协议需显式声明「slide 级近似」。
- mask 覆盖:每张训练 WSI 均有 mask——但 mask 中「未标注癌区」与「无癌区」在 Karolinska 语义上重合(3 类制)——弱监督读取时不可跨中心混用值域。
- gleason_score 与 isup_grade 冲突:极少量样本两列映射不一致(如 3+4 与 G3)——清洗管线加一致性断言。
§4.6 tiling 与 patch 选择模型
WSI(~20,000×20,000, 20x)
→ 组织区域检测(背景过滤, saturation/otsu)
→ 网格 tiling:256×256 或 512×512,步长=块宽
→ patch 排序(组织密度/方差)
→ top-K 选择(常见 K=36~100)
→ MIL bag = [K 个 patch 特征]
→ 注意力池化/attention-MIL → slide 级 ISUP 预测
- 关键超参:K(patch 数)与分辨率(20x vs 5x 双尺度)——挑战赛优胜方案的 tiling 策略与模型同等重要;复现论文必须对齐 tiling 配置。
§4.7 mask 值域映射与弱监督读取规范
mask 是 PANDA 最容易被误读的组件——两中心值域语义不同,读取规范必须代码化。
值域映射函数(工程标准实现)
# mask 值 → 语义,按 data_provider 分派
RADBOUD = {0: "background", 1: "stroma", 2: "benign_epithelium",
3: "gleason3", 4: "gleason4", 5: "gleason5"}
KAROLINSKA = {0: "background", 1: "benign", 2: "cancer"}
def mask_to_binary(mask, provider):
"""癌/非癌二值化——弱监督检测的参考真值"""
if provider == "radboud":
return (mask >= 3).astype("uint8") # G3/4/5 = 癌
elif provider == "karolinska":
return (mask == 2).astype("uint8") # cancer
raise ValueError(f"unknown provider: {provider}")
def mask_to_pattern(mask, provider):
"""模式级分割(仅 Radboud 侧有意义)"""
if provider != "radboud":
return None # Karolinska 无模式信息
return mask # 0-5 原值即模式
四条读取红线
- 禁数值直通:Karolinska 的 1(良性)与 Radboud 的 1(基质)语义无关——任何跨中心 mask 统计必须先过映射函数。
- 二值化口径:Radboud 的基质(1)不算癌——
mask >= 3是社区共识口径;把基质算作癌会虚增癌区。 - 金字塔对齐:mask 与 WSI 同为 16 级金字塔——读取 level 必须与 WSI 读取 level 一致,否则 patch 坐标错位。
- mask 覆盖语义:Karolinska 的 0(背景)与 1(良性)在「非癌」意义上重合——统计「癌区占比」时分母定义要显式。
派生统计建议
每 slide 癌区占比 = binary_mask.sum() / tissue_mask.sum()
→ 分级相关分析(占比 vs ISUP 的单调性 sanity check)
→ 训练bag 的信息量先验(全阴 slide 的 top-K patch 无信息)
§4.8 bag 信息结构与 MIL 训练动力学
MIL 的训练动态由 bag 的信息结构决定——PANDA 的 bag 结构有三个值得预统计的特征。
三个预统计量(建议训练前全量计算)
| 统计量 | 定义 | 训练含义 |
|---|---|---|
| 组织占比 | 组织像素 / 全图 | 决定 top-K 的有效池深 |
| 癌区占比 | 癌像素 / 组织像素(需 mask) | bag 信息量先验 |
| 关键 patch 稀疏度 | 含癌 patch 占 top-K 比例 | 注意力学习难度 |
- 关键发现(社区共识):高分级 slide 的癌 patch 通常「少而集中」(穿刺条上局部病灶)——top-K 中含癌 patch 可能仅 2-5 个;注意力 MIL 必须从 36-100 个 patch 中找出这少数关键实例——这正是 PANDA 是「MIL 试金石」的原因。
- 全阴 bag 的特殊处理:G0(良性)slide 没有「正实例」——注意力机制学到的是「全局形态学」而非「局部病灶」;两类 bag 的学习机制不同,训练分析时分开检查注意力熵。
- 信息量分层训练:按癌区占比给 bag 分桶监控 loss——高信息桶(癌区>10%)与低信息桶(<1%)的收敛速度差可量化「实例稀疏度对 MIL 的挑战」。
§5 划分与使用建议
§5.1 官方划分
- Kaggle 竞赛期:train.csv 全公开 + 官方 test(标签未公开)——竞赛后 test 不可复用。
- 社区标准:在训练集内自建 holdout(80:10:10 或 20% test)——划分本身成为论文变量。
§5.2 社区惯例划分
- 随机 slide 级分层划分:按「中心×级别」双键分层——最常见。
- 跨中心划分:Radboud 训练 → Karolinska 测试(及其逆)——域泛化协议。
- 清洗版划分:keep-list/GigaPath 清洗后再划分——现代论文主流。
- 按 patch 难度划分:模式 3/4 边界带 patch 专设评估桶——细粒度分级能力。
§5.3 泄漏风险(重点)
- 中心泄漏:混合划分下模型学扫描仪风格——跨中心评估时必须完全按中心切分。
- 染色泄漏:同批染色/同玻片的相邻切片若跨集——PANDA 无患者键难以完全阻断,声明局限。
- mask 泄漏:用 mask 做特征(而非仅监督)再评估 slide 分级——标签信息回流。
- 清洗集泄漏:在清洗版上调参又在清洗版测试——清洗口径也要进划分协议描述。
§5.4 交叉验证建议
# 按 中心×级别 双键分层 5 折
from sklearn.model_selection import StratifiedKFold
# stratify_key = data_provider + "_" + isup_grade.astype(str)
# G5-Karolinska(251 张)在每折保持 ~50 张——少数桶不塌陷
- 报告规范:每折 QWK + 全局 QWK;分中心 QWK 必报——总体 QWK 会掩盖单中心崩塌。
§5.5 外部验证建议
- 跨中心:PANDA 内部双中心交叉(最易做)。
- 跨数据集:SICAPv2(西班牙单中心、全注释)外部测试——分级泛化。
- 扫描域外推:其他公开前列腺 WSI(不同扫描仪)测试——染色归一(Macenko 类)的角色评估。
- 临床端点:与病理医师复核的一致性研究(挑战赛外部验证模式)。
§5.6 任务配方
配方 1:slide 分级(主流 MIL)
- 特征:病理基础模型冻结特征(或 ImageNet ResNet 微调)。
- 聚合:attention-MIL/TransMIL;损失 CE 或序数损失(利用 0-5 有序性)。
- 评测:QWK + 分中心 + 混淆矩阵。
配方 2:弱监督癌区检测
- slide 标签监督 MIL,注意力权重即 patch 热图;mask 仅做评估。
- 评测:patch 级 AUROC(以 mask 二值化为参考)。
配方 3:序数回归改进
- ISUP 0-5 是序数——CORAL/CORN 类序数损失对比 CE。
- 附加评测:相邻级别误判率(G2→G3 的临床代价不对称)。
配方 4:标签噪声鲁棒
- 在含噪全量 vs 清洗版上对比训练——co-teaching/噪声鲁棒损失的价值量化。
- 评测:清洗测试桶上的 QWK 提升。
§5.7 评测协议详解(QWK 与分中心)
- QWK(Quadratic Weighted Kappa):序数一致性指标——错到相邻级罚 1/25,错到远处罚更重;它是竞赛官方指标也是社区默认。
- 必须搭配的报告:混淆矩阵(相邻级误判模式)、分中心 QWK、分级别召回(G5 召回是临床敏感度核心)。
- 可比性检查单:清洗口径(10,616/10,013/9,555)、划分协议(随机/跨中心)、tiling 配置(K、分辨率)、特征(自训/基础模型冻结)——四项不对齐的论文数字不可横比。
- 基线配置:ResNet+topK-MIL、基础模型+attention-MIL、挑战赛冠军复现——三档至少齐二。
§5.8 QWK 的计算、分解与临床解读
QWK 是 PANDA 的官方指标——但「QWK 0.87」这句话的信息量取决于你怎么分解它。
计算结构
κ_w = 1 - (Σ w_ij·O_ij) / (Σ w_ij·E_ij)
其中 w_ij = (i-j)²/(K-1)² (二次权重:错误随距离平方增长)
O_ij = 观察混淆矩阵,E_ij = 期望混淆(独立性假设)
- 序数性质:相邻级错(G2→G3)权重 1/25,跨两级 4/25……「差不多的错」被轻罚——这与临床「相邻级误判代价小」的直觉对齐。
- 与 accuracy 的分歧:准确率高但错误集中在跨多级时 QWK 会低;反之相邻错占多时 QWK 高于准确率暗示的水平——两指标必须同报。
三向分解报告(临床解读标准)
| 分解维度 | 问题 | 临床含义 |
|---|---|---|
| 分级别召回 | G4/G5 抓住了吗 | 高危漏诊敏感度 |
| 混淆拓扑 | 错误集中在 G3↔G4(灰色带)还是跨远级 | 模型失败模式定位 |
| 分中心 QWK | 域间隙吃掉多少 | 部署域外推能力 |
校准与阈值
- 概率校准:MIL 输出过 sigmoid/softmax 后按目标域先验重校准(temperature scaling 或先验平移)——未校准的 argmax 在先验偏移域上系统性偏移。
- 决策阈值:若用途是「初筛」而非「全分类」,把 G≥4 的判定阈值调低(提高敏感度)是有意识的产品选择——评测协议要与用途匹配(全分类 QWK vs 初筛敏感度/特异度曲线)。
§5.9 跨中心评估完整协议模板
跨中心评估是 PANDA 最有价值的用法之一——本节给出可直接写进论文实验节的协议模板。
实验名:双中心交叉分级泛化
数据:清洗版(keep-list 剔除,n=10,013)
源域 Radboud(~4,900)/ 目标域 Karolinska(~5,100)
R1 源域内基线:
源域 80:20 随机分层(中心×级别)划分 → 源域内 QWK
R2 直接迁移:
源域全量训练 → 目标域全量测试 → 跨域 QWK(未适配)
R3 染色归一迁移:
R2 + 源/目标统一 Macenko 模板 → 跨域 QWK(归一)
R4 目标域少样本微调:
R2 + 目标域 n∈{50,200,1000} 标注微调 → 跨域 QWK(少样本曲线)
R5 反向重复:以 Karolinska 为源域复跑 R1-R4
报告矩阵:{R1..R5} × {总体 QWK, 分级别召回, 混淆矩阵, G5 召回}
声明:随机种子×3 取均值方差;tiling 配置固定表
- 解读要点:R2-R1 的差 = 总域间隙(染色+口径+先验);R3-R2 = 染色可回收部分;R5 与 R1-4 的不对称 = 方向性偏移(两中心难度不对称——Karolinska 高级别样本少,反向更难)。
- 常见审稿问题预答:为什么不用目标域全部标签微调?(失去泛化评估意义;少样本曲线回答实际预算问题)为什么 QWK 之外必报 G5 召回?(QWK 对高危漏诊不敏感,临床不可接受)。
§6 AI 就绪指南
§6.0 云端快速启动
# 1) Kaggle 账号 + 接受竞赛规则(CC BY-NC-SA)
kaggle competitions download -c prostate-cancer-grade-assessment
# 2) 数据约 383 GB——磁盘预留 600 GB+
# 3) 读取示例(OpenSlide)
pip install openslide-python tifffile
§6.1 快速上手(数据读取与 tiling)
# ============================================================
# PANDA WSI → 组织 patch 提取最小管线
# ============================================================
import tifffile, numpy as np, pandas as pd
df = pd.read_csv("train.csv")
row = df.iloc[0]
# 多分辨率 TIFF:level 0 最高(~20k 像素)
with tifffile.TiffFile(f"train_images/{row.image_id}.tiff") as tf:
lvl = tf.levels[1] # 降一级读(省内存)
img = lvl.asarray()[:8000, :8000]
# 组织区域粗检:HSV 饱和度 Otsu
import cv2
hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
mask = cv2.threshold(hsv[:,:,1], 0, 255,
cv2.THRESH_BINARY+cv2.THRESH_OTSU)[1]
# 网格 patch + 组织密度排序
P = 256; coords = [(x, y) for y in range(0, img.shape[0]-P, P)
for x in range(0, img.shape[1]-P, P)]
coords.sort(key=lambda xy: mask[y:y+P, x:x+P].mean(), reverse=True)
top = coords[:36] # top-36 patch → MIL bag
§6.2 SQL 入库与分析(标签层)
-- 中心×级别分布双报(分析前的第一步)
SELECT data_provider, isup_grade, COUNT(*) AS n
FROM train GROUP BY 1, 2 ORDER BY 1, 2;
-- gleason_score 与 isup_grade 一致性断言
SELECT image_id, gleason_score, isup_grade FROM train
WHERE (isup_grade = 0 AND gleason_score <> 'negative')
OR (isup_grade > 0 AND gleason_score = 'negative');
-- 清洗版构建(keep-list 外连接)
SELECT t.* FROM train t
LEFT JOIN keep_list k USING (image_id)
WHERE k.image_id IS NULL;
§6.3 MIL 训练管线
离线阶段:
WSI → 组织检测 → top-K patch → 基础模型特征 → HDF5 缓存
在线阶段:
bag 特征 → attention-MIL 聚合 → ISUP logits
→ 序数/CE 损失 → 反向(仅训练聚合头)
- 特征缓存是工程命门:10k WSI 全量在线提特征不可行——离线特征化后 MIL 头训练分钟级,实验迭代速度决定研究质量。
- 数据增强:patch 级颜色增强(HED jitter)在特征冻结时无效(特征已提完)——增强要进特征提取阶段,MIL 在线只做 bag 级 dropout。
§6.4 表格层建模建议
- 标签质量建模:把 keep-list 的「被剔除概率」当质量分数——作为样本权重进损失。
- 中心判别器:小模型判 data_provider 的准确率即「域可分性」——过高说明域间隙大,需要对抗去域或染色归一。
- 级别先验校准:两中心级别先验不同——输出概率按中心先验校准(recalibration)再算 QWK。
- 标签一致性断言进 ETL:gleason↔isup 映射冲突样本在数据管线入口即拦截——训练前清洗比训练中鲁棒损失更便宜。
§6.5 坑点(Pitfalls)
坑点 1:标签噪声未处理
公开标签含已知噪声样本——不做清洗直接训练/评测,QWK 有 1-2 点级不可控噪声。对策:keep-list 剔除或声明全量口径。
坑点 2:跨中心混合评估掩盖漂移
两中心扫描仪/染色/标注流程不同——合并 QWK 高不代表跨域可用。对策:分中心 QWK 必报;跨中心协议单列。
坑点 3:mask 值域跨中心混用
Karolinska mask 0-2、Radboud 0-5——同一像素值语义不同,直接合并读取会把基质读成癌。对策:按 data_provider 装载值域映射函数。
坑点 4:整张 WSI 读入内存
2 万像素 TIFF level 0 全读 = 数 GB/张——OOM 或交换抖动。对策:金字塔降级读取 + tiling 流式处理。
坑点 5:类别不平衡忽略
Karolinska G5 仅 251 张——朴素 CE 训练下高分级召回塌陷。对策:加权采样/焦点损失;分级别召回评估。
坑点 6:QWK 单指标解读
QWK 高可能伴随 G4/G5 混淆(临床代价最大处)——QWK 对远处错误敏感但混淆矩阵仍必需。对策:QWK + 混淆矩阵 + G5 召回三件套。
坑点 7:NC 许可的产品化越界
CC BY-NC-SA 排除商业使用——把数据(或衍生数据集)直接用于商业产品违反许可。对策:学术/评估用途;商业路径走授权或法务评估权重路径。
坑点 8:患者级假设缺失
数据无患者键——把多针 slide 当独立样本会高估有效样本量、泄漏风险不可控。对策:声明 slide 级口径;患者级研究配合有患者键的数据集。
§6.6 基础模型评测要点
- 协议:冻结 backbone(UNI/GigaPath/Virchow 类)→ top-K patch 特征 → attention-MIL 头微调。
- 必报:参数量/显存/QWK/分中心——把「表征质量」与「容量」分开讨论。
- 陷阱:不同基础模型的 patch 预处理(resize/normalize)不同——直接搬特征缓存文件不可行,按各模型 spec 重提。
- 公平对照:自训特征基线保留一份——「基础模型 vs ImageNet 起点」的增益才是预训练价值的确证。
- 缓存治理:特征文件带(模型版本+patch 配置)命名——混版缓存是复现事故的隐蔽来源。
§6.7 与 LLM/多模态的集成模式
- 报告生成:slide 分级输出 + 模板化描述(Gleason 模式构成、癌区占比)→ 病理报告草稿——LLM 负责语言组织,分级数字必须来自确定性模型。
- 检索增强:patch 特征库做相似病例检索(同级别可解释性参照)。
- 边界:LLM 不直接输出 ISUP 分级——视觉判读必须由视觉模型承担,这是医疗安全边界。
§6.8 大规模处理性能实践
- IO 优化:TIFF level 1/2 读取 + 内存映射;预处理并行化(16-32 worker)一夜完成全量特征。
- 存储规划:383 GB 原始 + 特征缓存 50-100 GB——预留 600 GB 磁盘。
- 分布式:特征提取阶段可多机并行(按 slide 分片);MIL 训练单卡即可。
§6.9 双中心迁移实战
以「Radboud 训练 → Karolinska 测试」为例的跨域协议(其逆同理):
1. 清洗:keep-list 剔除后按中心拆分
2. 源域训练:Radboud 5,160(清洗后 ~4,900)全量训练 MIL
3. 域适配选项(三选一或组合):
a. 染色归一(Macenko/Reinhard)进预处理
b. DANN/对抗去域(特征层)
c. 目标域少量标注微调(few-shot)
4. 目标域测试:Karolinska 清洗版全量 → QWK 分级别报告
5. 消融:无适配 vs 染色归一 vs 对抗——量化各组件贡献
- 预期:跨中心掉点数点级(扫描域差异)+ 级别先验差异带来的校准偏移——先校准再评估是关键顺序。
§6.10 弱监督检测训练配方(slide 标签 → patch 定位)
不使用 mask 训练、只用 slide 标签的检测配方——MIL 注意力即定位信号,这是 PANDA 双轨标注的独特用法。
训练管线
阶段 A(特征提取,离线):
WSI → top-K patch(同分级配方)→ 冻结特征
阶段 B(MIL + 注意力,在线):
bag → attention-MIL → slide logits(CE/序数损失)
注意力权重 a_k 即 patch 级「证据分数」
阶段 C(定位输出,推理):
a_k 重排回空间坐标 → 平滑 → 癌区热图
(不做阈值化训练,只做后处理可视化/评估)
提升定位质量的四个技巧
| 技巧 | 机制 |
|---|---|
| 双尺度特征 | 5x 上下文 + 20x 细节拼接——孤立 patch 缺语境 |
| 注意力熵正则 | 鼓励注意力集中(过高熵=定位涣散) |
| bag 级 dropout | 随机丢 patch 训练——防单点捷径 |
| mask 仅进评估 | mask 进训练就不再是「弱监督」声明 |
- 评测协议:见 §7.9——patch AUROC + top-K 命中率 + 分中心分解。
- 常见失败模式:①注意力全押在染色深的碎片/伪影上(伪相关)——检查热图与碎片位置的重合;②全阴 bag 注意力均匀(没学到全局形态)——G0 类的注意力熵单独监控。
§6.11 分级模型的推理优化与部署形态
WSI 分级模型的推理成本远高于常规影像——部署形态设计直接决定能否落地。
推理成本结构
| 环节 | 成本 | 优化 |
|---|---|---|
| WSI 读取 + tiling | IO 密集(分钟级/张) | 金字塔降级读、并行 worker |
| 特征提取 | GPU 密集(top-K × 模型前向) | 特征缓存/批处理/AMP |
| MIL 聚合 | 可忽略 | — |
- 缓存策略:同一 slide 的特征只提一次(哈希命名缓存目录);复诊场景历史切片特征复用。
- 部署位形对推理的要求:预筛位形可异步批处理(夜间跑全队列);仲裁位形需分钟级响应(top-K 减小/特征降维换速度)。
- 失败兜底:组织过少/染色失败的 slide 走「拒绝预测」分支(不输出分级)——拒绝率是部署期健康指标,拒绝样本转人工。
§7 评估基准与 DAIMS 评估
§7.1 DAIMS 评估(24 项)
| # | 维度 | 评估项 | 得分 | 说明 |
|---|---|---|---|---|
| 1 | 可得性 | 注册后免费下载 | 4/5 | Kaggle 注册+规则 |
| 2 | 可得性 | 机器可读许可 | 4/5 | CC BY-NC-SA 标准化但 NC |
| 3 | 可得性 | 稳定持久标识 | 4/5 | image_id 哈希;无 DOI |
| 4 | 结构化 | 受控结构完备度 | 4/5 | 标签+mask 双轨清晰 |
| 5 | 结构化 | 关系型就绪 | 3/5 | 无患者键/协变量 |
| 6 | 结构化 | schema 稳定性 | 5/5 | 静态挑战赛数据 |
| 7 | 文本 | 名称/定义文本资产 | 2/5 | 无报告文本 |
| 8 | 文本 | 文本规范化程度 | 2/5 | 仅标签字符串 |
| 9 | 版本 | 历史保留 | 3/5 | 单版本;清洗口径多元 |
| 10 | 版本 | 发布节奏 | 3/5 | 静态;无更新计划 |
| 11 | 结果 | 跨词表映射覆盖 | 3/5 | ISUP/Gleason 标准明确 |
| 12 | 结果 | 映射质量一致性 | 4/5 | 双标签列可交叉验证 |
| 13 | 结果 | 多语言覆盖 | 2/5 | 英语元数据 |
| 14 | 质量 | 归组准确性 | 3/5 | 标签噪声已知 |
| 15 | 质量 | 类型标注一致性 | 3/5 | 双中心流程不一 |
| 16 | 质量 | 机构 ID 化 | 3/5 | 无患者/机构键 |
| 17 | 治理 | 更新频率 | 3/5 | 静态但社区活跃 |
| 18 | 治理 | 变更通告 | 4/5 | Kaggle 讨论区 |
| 19 | 治理 | 法规锚定 | 4/5 | 挑战赛制度成熟 |
| 20 | AI 任务 | 分级任务适用性 | 5/5 | 旗舰基准 |
| 21 | AI 任务 | 弱监督适用性 | 5/5 | mask+slide 双轨独有 |
| 22 | AI 任务 | 大模型适配适用性 | 5/5 | 基础模型标准下游 |
| 23 | 伦理 | 个体隐私风险 | 4/5 | 脱敏但无患者键复用难 |
| 24 | 伦理 | 二次使用许可清晰度 | 4/5 | CC 明确;NC 边界需法务 |
DAIMS 综合:80/120(3.33/5)——任务适用性近满分;文本资产与纵向结构是短板。
§7.2 可复现分析路线
- 复现规模:train.csv 行数 = 10,616;按 data_provider 分组 = 5,160/5,456。
- 复现分布:分中心×级别交叉表对照 FACTS 数字。
- 复现清洗:keep-list 剔除后 = 10,013;GigaPath 口径 = 9,555。
- 复现标签一致性:gleason_score 与 isup_grade 的映射断言(§6.2 SQL)零冲突(或列出冲突清单)。
- 复现 mask 完整性:每张训练 WSI 的 mask 可读且尺寸与 WSI level 0 一致。
§7.3 外部评测资源
- SICAPv2:单中心全注释前列腺分级——像素级外部验证。
- GLEASON 2019 挑战数据:TURP/活检混合分级。
- 基础模型论文基准表(UNI/GigaPath):跨模型 QWK 对照。
§7.4 质量审计清单(发布前)
- [ ] 清洗口径声明(10,616/10,013/9,555)。
- [ ] 划分协议声明(随机分层/跨中心)+ 随机种子。
- [ ] tiling 配置(patch 尺寸、K、分辨率)写入产物。
- [ ] 分中心 QWK + 混淆矩阵 + G5 召回三件套齐备。
- [ ] mask 值域映射按中心装载(单测覆盖)。
- [ ] NC 许可边界确认(用途合规)。
- [ ] slide 级口径声明(无患者键)。
§7.5 模型卡要点
| 卡片项 | 建议声明内容 |
|---|---|
| 数据版本 | PANDA 2020 + 清洗口径 |
| 划分协议 | 分层键/种子/跨中心与否 |
| 预处理 | tiling/染色归一/特征模型 |
| 已知偏差 | 双中心域偏移、级别不平衡 |
| 评测 | QWK 三件套(QWK/混淆/G5 召回) |
| 许可 | CC BY-NC-SA 声明与用途边界 |
§7.6 与站内数据集的联合分析建议
| 联合对象 | 键 | 分析价值 |
|---|---|---|
| prostatex | 前列腺 MRI ↔ 分级 | 影像多模态(MRI+病理)研究 |
| camelyon16 / camelyon17 | WSI 范式 | 弱监督跨器官迁移 |
| brats | 挑战赛范式 | 多任务/多指标设计参照 |
| tcia | 病理影像来源 | 队列扩展 |
| sitzmann/sicap 类 | 前列腺分级 | 外部验证 |
| medmnist(patchmnist 类) | 轻量病理 | 教学管线预演 |
§7.7 双中心域偏移治理
PANDA 的双中心结构是资产也是陷阱——把「中心」当治理对象的五条原则:
- 中心即域标签:任何统计/训练/评估先按 data_provider 分列——合并是最后一步。
- 先校准后评估:两中心级别先验不同——输出概率按目标中心先验校准后再算 QWK,否则先验差被误读为模型差。
- mask 语义双轨:值域映射函数按中心装载(坑点 3),永不做数值直通。
- 域可分性监控:中心判别器准确率作为域间隙仪表盘——过高则加强去域。
- 报告规范:分中心 QWK 是必填项——单中心数字标注「源域内」身份。
§7.8 PANDA 挑战赛范式的方法论遗产
PANDA 之后,「病理挑战赛」成为方法论成熟的标准形态——它的遗产可归纳为四个可迁移的协议组件。
四个遗产组件
| 组件 | 内容 | 后续采用 |
|---|---|---|
| 大规模弱监督 | slide 级标签为主、像素标注辅助 | 几乎所有 WSI 挑战赛 |
| 序数指标 | QWK 类序数一致性 | 分级类任务标配 |
| 公开清洗口径 | 冠军方案 keep-list | 社区数据治理惯例 |
| 跨外部验证 | 竞赛后外部队列系统验证 | 从「刷分」到「临床证据」的桥梁 |
- 对数据集工程的意义:PANDA 展示了「竞赛是一次性事件,数据资产是长期结构」——keep-list、评测协议、复现代码这些「赛后层」与数据本身同等重要;本库条目把它们列为一级组件。
- 对研究者的意义:在 PANDA 上做方法学改进时,必须同时报告「对第 2 代(自训)与第 3 代(基础模型)两条基线的增益」——只报一条的时代已结束。
§7.9 弱监督检测的评估规范
用 slide 标签训练、用 mask 评估的弱监督检测有一套独立于 slide 分级的评估规范——混用会导致结论失真。
评估规范要点
- 参考真值口径:mask 二值化(癌/非癌)是参考而非金标——Karolinska 仅 3 类(无模式),Radboud 精细但来自报告路径;评估结论应声明「相对 mask 口径」。
- patch 级指标:AUROC/AUPRC(patch 含癌概率 vs 二值 mask)+ 定位质量(与 mask 重叠的 top-K 命中率)。
- slide 级联动:检测热图的「最高注意力区」与分级证据区应一致——不一致(高分但注意力落在良性区)是模型学了伪相关的警报。
- 跨中心检测评估:源域训练的定位在另一中心 mask 上评估——域偏移对「定位」与「分级」的影响幅度常不同,分开量化。
§8 伦理、隐私与合规
- 隐私:回顾性穿刺活检、脱敏公开;无患者身份/临床协变量——再识别风险低但非零(罕见病变特征理论可回溯),二次分发禁止(许可要求)。
- NC 边界:CC BY-NC-SA 排除商业目的——企业团队仅可做技术评估,产品化前完成授权或转向商业可用数据。
- 临床边界:ISUP 分级是治疗决策输入——模型输出进入临床路径前需病理医师复核闭环与本地验证。
- 偏差声明:欧洲北部双中心人群——跨人群(年龄/种族/地域)外推需再验证。
- 禁背书:使用数据不构成发布机构对衍生模型的临床认可。
§8.1 部署伦理:分级模型进入工作流的边界条件
分级 AI 的伦理要点不在「隐私」(数据已脱敏)而在「部署位形」——模型放在工作流的哪个位置,决定了责任结构。
三种部署位形
| 位形 | 模型角色 | 责任结构 | 风险 |
|---|---|---|---|
| 预筛排序 | AI 排队,医师全检 | 医师全责 | 低——漏检仍被人工覆盖 |
| 分歧仲裁 | AI 与医师独立判,分歧送第三人 | 制度仲裁 | 中——依赖仲裁流程真实运行 |
| 直接出报告 | AI 结果入报告 | 模糊 | 高——PANDA 级证据不支持 |
- Gleason 的特殊敏感性:G1→主动监测意味着「不治疗」——AI 把高危误判为 G1 的代价是延误根治。因此部署位形的敏感度要求高于特异度:初筛位形应调低 G≥4 阈值。
- 人机分歧的价值:分歧率本身是质量信号——分歧率异常低可能说明模型「复制」了训练中心的口径而非真的正确;分歧样本的人工复核队列是持续改进资产。
- 透明度义务:进入临床评估的报告应标注 AI 参与痕迹(版本、QWK 评估口径、局限性链接)——「机器口径漂移」在长期使用中必然发生,留痕是追因前提。
- 跨人群再验证:PANDA 为欧洲北部人群——部署到其他人群前必须本地再验证(至少抽样对照),这是发表与落地的分界线。
§9 版本历史与演进
| 时间 | 演进 | 对 AI 用户的影响 |
|---|---|---|
| 2020-04 | Kaggle 挑战赛上线 | 10,616 WSI 公开 |
| 2020-07 | 竞赛收官 | 优胜方案+keep-list 沉淀 |
| 2022 | 系统研究发表(外部验证) | 临床可行性确立 |
| 2023 | 基础模型时代开启 | PANDA 成标准下游 |
| 2023-2025 | GigaPath 等清洗口径流行 | 9,555 张口径加入惯例 |
| 至今 | MIL/弱监督持续基准 | 病理 AI 事实标准 |
§9.1 未来演进方向
- 基础模型基准固化:PANDA 在病理基础模型论文中的位置类似 GLUE 之于 NLP——清洗与协议的进一步标准化是社区方向。
- 多模态扩展:与 MRI(prostatex 类)/临床数据的联动研究——需外部患者级数据配合。
- 弱监督方法论:mask 引导的密集预测、不确定性引导的主动标注——PANDA 仍是主试验场。
- 细粒度子任务:筛状结构(cribriform)检测、模式 3/4 边界带刻画——从「整体分级」走向「形态学证据链」。
- 跨人群验证网络:以 PANDA 为锚点的多地区外部验证联盟——分级模型的全球化证据积累。
§9.2 使用本条目时的维护提示
- 规模与分布数字为 2020 版静态事实;引用注明 Kaggle 2020。
- 清洗口径多元(10,013/9,555/全量)——引用任何论文数字先核对口径。
- Kaggle 讨论区的 keep-list 与方案代码是活文档——跟踪链接有效性。
- 许可为静态 CC BY-NC-SA——商业化决策前复查官方条款页。
- 社区对标签噪声的定位随时间更新(新讨论可能补充清单)——引用 keep-list 注明获取日期。
- 基础模型论文的评测协议持续微调——跟踪最新论文的附录协议再对齐。
§10 引用与资源
§10.1 官方资源
| 资源 | 链接 | 说明 |
|---|---|---|
| Kaggle 竞赛页 | https://www.kaggle.com/competitions/prostate-cancer-grade-assessment | 数据/规则/讨论区 |
| 数据页 | https://www.kaggle.com/competitions/prostate-cancer-grade-assessment/data | 下载 |
| Radboud 病理 AI | https://www.computationalpathologygroup.eu/ | 发布团队 |
| PANDA 官方论文 | 挑战赛系统研究(Nature Medicine 2022 口径) | 外部验证 |
| ISUP 共识文献 | Grade Group 分组(2014) | 分级标准依据 |
| 基础模型论文附录 | UNI/GigaPath 的 PANDA 协议 | 清洗与评测口径 |
§10.2 学术引用
- Bulten W, et al. Automated deep-learning system for Gleason grading of prostate cancer using biopsies: a diagnostic study. Lancet Oncol / Nature Medicine 系(PANDA 团队系统研究口径).
- Kweldam CF, et al. Gleason 分级观察者一致性文献(ISUP 共识背景).
- Lu MY, et al. GigaPath: A whole-slide foundation model for cancer histopathology. Nature 2024.(清洗口径 9,555 来源之一)
- Radboud UMC & Karolinska Institute. Prostate cANcer graDe Assessment (PANDA) Challenge. Kaggle, 2020.
§10.3 站内互链
- camelyon16 / camelyon17:WSI 挑战赛先例(转移检测)
- prostatex:前列腺 MRI 多模态联用
- brats:挑战赛范式与多指标设计参照
- tcia:病理与影像队列扩展源
- sitzmann 类病理小数据集:外部验证补充
- medqa / mann 类病理小数据集:外部验证补充
- medqa / pubmedqa:病理语境下的临床推理评测补充
- radgraph:结构化:病理语境下的临床推理评测补充
- radgraph:结构化报告生成的语言侧搭档
- eidon / 内窥镜影像类:医疗影像 AI 工作流参照
§10.4 建议引用格式
@misc{panda_challenge,
title = {Prostate cANcer graDe Assessment (PANDA) Challenge},
author = {{Radboud University Medical Center and Karolinska Institute}},
howpublished = {https://www.kaggle.com/competitions/prostate-cancer-grade-assessment},
note = {10,616 whole-slide images; ISUP grades 0-5; CC BY-NC-SA 4.0},
year = {2020}
}
§10.5 常见问题 FAQ
Q1:PANDA 的标签能当金标准吗?
A:是「双中心临床实践」级标签,不是共识评审级——已知含噪声(社区 keep-list 603 张)。做模型对照时声明清洗口径;做临床一致性研究时自行安排病理复核。
Q2:为什么我的 QWK 和论文对不上?
A:九成是口径差异——清洗(10,616/10,013/9,555)、划分(随机/跨中心)、tiling(K 与分辨率)、特征(自训/基础模型)四项任一不同即不可比。逐项对齐后再比较。
Q3:mask 能直接当分割标签训练吗?
A:可以但要注意值域双轨(Karolinska 3 类/Radboud 6 类)与「弱标注」属性(Karolinska 仅区分癌/非癌)。模式级分割研究建议以 Radboud 侧为主,Karolinska 侧做癌/非癌二值任务。
Q4:能商用基于 PANDA 训练的模型吗?
A:数据许可 CC BY-NC-SA 排除商业使用——直接商用数据或衍生数据集不行。模型权重的「衍生品」定性存在解释空间,商业落地前必须法务评估,或考虑在商业许可数据上重训。
Q5:没有患者 ID,怎么做患者级分析?
A:PANDA 不支持真正的患者级分析——这是隐私设计的代价。可行替代:①声明 slide 级口径;②与有患者键的院内队列(自建)联用做外部患者级验证;③把患者级聚合研究放在 CAMELYON17(有患者键)等数据集上。
Q6:ISUP 0-5 是分类还是回归?损失怎么选?
A:本质是序数分类——0-5 有序且距离有意义。三种主流选择:①普通 CE(简单但忽略序数);②序数损失(CORAL/CORN 类,把六分类化为多个二元阈值问题);③回归+离散化。文献结论倾向序数损失小幅占优——尤其在相邻级误判的分布上更符合临床直觉。
Q7:基础模型特征下 PANDA 还有多少研究空间?
A:冻结特征+MIL 头已把「入门 QWK」推得很高——但空间在:①细粒度(模式 3/4 灰色带、筛状结构检测);②不确定性量化(仲裁队列场景);③弱监督密集预测(mask 引导);④跨域协议的系统消融。纯「刷整体 QWK」的时代确实结束了。
Q8:tiff 读取报错/文件损坏怎么办?
A:Kaggle 打包与解压过程偶发损坏文件——社区讨论区有已知的损坏文件清单;训练管线应加 try/except 跳过并记录,别让单文件炸掉整夜任务。另外部分 tiff 是「聚合切片」(512×512 网格拼接),OpenSlide 读法与常规金字塔不同——用 tifffile 按页读更稳。
(全文完;本文共 §0-§10 十一个章节,规模数字以 PANDA 挑战赛官方口径为准,发布年份 2020。)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- breakhis — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- bracs — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- camelyon17 — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- unitopatho — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- bach — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- lc25000 — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- panda-plus — 共享标签:医学影像 / 病理图像 / 图像分类 / 肿瘤学
- ham10000 — 共享标签:医学影像 / 图像分类 / 肿瘤学
- ddti — 共享标签:医学影像 / 图像分类 / 肿瘤学
- tn-mammo-breast-density — 共享标签:医学影像 / 图像分类 / 肿瘤学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

