信息速览

PanNuke — 泛癌组织病理细胞核分割分类数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | PanNuke(Pan-Cancer Histology Nuclei Dataset) |
| 英文全称 | PanNuke: An Open Pan-Cancer Histology Dataset for Nuclei Instance Segmentation and Classification |
| 别名/简称 | PanNuke、PanNuke 扩展版、PanNuke 1.0 |
| 疾病分类 | 泛癌组织学(19 组织;代表性 ICD-11 肿瘤码见 §2.1,如 2C60 乳腺、2C25 肺、2C82 前列腺) |
| SNOMED CT | 399753008 Histopathology finding / 119303007 Malignant tumor / 84629003 Cell(详见 §2.1b) |
| 数据模态 | 2D H&E 染色病理图像(patch)+ 像素级细胞核实例掩码 |
| AI 任务类型 | 细胞核实例分割、5 类核型分类、细胞检测、跨组织泛化评估、WSI 整片推理 |
| 样本总数 | 7,901 张 256×256 图像 / 约 189,744 个标注核 / 19 种组织 / 3 折 |
| 数据大小 | 约 833-912 MB(三折 .npy 合计,视镜像格式) |
| 数据格式 | NumPy .npy(images.npy / masks.npy / types.npy);Hugging Face 镜像另有 image/instances/categories/tissue 表格式 |
| 许可证 | CC BY-NC-SA 4.0(Attribution-NonCommercial-ShareAlike) |
| 访问级别 | 开放(直接下载,研究/非商用用途;引用论文要求) |
| DUO 标签 | NPUNCU(非商业非营利) |
| 语言 | 英文(标签为 0-18 组织 / 0-4 类整型码) |
| 首发日期 | 2019(ECDP 论文初版)/ 2020-03-24(扩展版 arXiv) |
| 最后更新 | 2020-03-24(PanNuke 扩展版 v1.0) |
| 发布机构 | Tissue Image Analytics(TIA)Centre, University of Warwick 及多机构病理合作方 |
| 官方主页 | https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke |
| 下载地址 | https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke(Fold1/2/3 三链接) |
| DOI | arXiv:2003.10778(扩展版) |
| 引用次数 | 368+(Google Scholar,截至 2026-09;扩展版论文) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方三折划分 + 评测脚本 + HoVer-Net 基线权重齐备;扣分项:版本口径混乱、部分 patch 边缘核被裁、类别严重不平衡、官方无统一训练管道 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(19 组织与 ICD-11/SNOMED CT 映射、5 类核型临床意义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 数据结构(6 通道掩码与 instance ID 语义、三折 npy 数组)、§5 划分策略、§6 预处理 Pipeline 与坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与 Warwick TIA Centre、TCGA、GTEx 及各病理合作机构无任何商业利益关联。本页面不销售 PanNuke 数据本身,仅提供 AI 就绪指南与学术信息服务。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。PanNuke 的细胞核标签是形态学层面的标注,不等同于组织病理学最终诊断或患者级预后。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。PanNuke 存在 Part 1 与扩展版两种口径、版本数字在社区流传中不一致,使用者应核对自己实际下载的数组尺寸与许可证条款。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。PanNuke 采用 CC BY-NC-SA 4.0(非商用、署名、相同方式共享),官方要求发表研究时引用 Gamper et al. 2019(ECDP)与 2020(扩展版)两篇论文。任何派生数据或模型的再分发须遵守 ShareAlike 条款,禁止商用。
§1 数据集概览
§1.0 30 秒速览
这是什么?
PanNuke 是一个大型泛癌(pan-cancer)H&E 病理细胞核数据集。它把 19 种人体组织的苏木精-伊红(H&E)染色切片切成 7,901 张 256×256 的小图,并在图上逐个圈出每个细胞核(实例分割),同时给每个核打上 5 类临床标签之一——肿瘤性、炎症性、结缔组织性、坏死死亡、正常上皮。累计约 18.97 万个带像素级轮廓的核,规模在泛癌细胞核数据集中属顶尖水平。
为什么重要?
病理医生诊断癌症时,一个核心观察对象就是细胞核:核的数量、大小、形态与类型构成是判断肿瘤恶性程度、浸润与微环境反应的重要线索。PanNuke 是首个把「多组织 + 实例分割 + 多类核型」三者同时覆盖的公开基准,让算法能在同一套协议下跨乳腺、肺、前列腺等不同器官评估细胞核识别能力,而非只针对单一器官过拟合。
我能用它做什么?
- 训练与评测细胞核实例分割 + 分类模型(如 HoVer-Net 系架构);
- 研究跨组织/跨染色条件的泛化,检验模型在未见组织上的表现;
- 把模型部署到整张全切片(WSI)的平铺推理管线,用于计算病理工作流中的细胞计数、肿瘤微环境量化等下游任务。
数据速览卡片(把整页最关键的 8 个事实压成一行一个):
| 关键事实 | 数值/内容 |
|---|---|
| 扩展版规模 | 7,901 张 256×256 / 约 189,744 个标注核 |
| 组织多样性 | 19 种组织(TCGA/GTEx 汇入) |
| 核型类别 | 5 类:Neoplastic/Inflammatory/Connective/Dead/Epithelial |
| 成像规格 | H&E @40×,0.25 µm/像素 |
| 任务 | 像素级细胞核实例分割 + 分类 |
| 划分 | 3 折官方交叉验证(Fold 1/2/3) |
| 许可证 | CC BY-NC-SA 4.0(研究/非商用) |
| 下载 | Warwick TIA(Fold 1/2/3 三链接)+ 社区镜像 |
§1.1 摘要(技术定位)
PanNuke 由英国华威大学 Tissue Image Analytics(TIA)中心牵头、联合多家病理学机构共同构建(Gamper et al.,2019 ECDP 初版,2020 arXiv 扩展版)。其数据从 TCGA 与 GTEx 等公开全切片库中取材,经 H&E 染色并以 40× 放大(0.25 µm/像素)数字化后切分为统一尺寸的 256×256 patch。标注采用「半自动初标 + 病理医师质控」的流水线:先以算法/NuClick 交互工具勾出核轮廓初稿,再由多位病理医师修订并质控,产出像素级实例掩码。
扩展版共 7,901 张 patch、约 189,744 个标注核,覆盖 19 种组织;每个核按形态学归入 Neoplastic(肿瘤性)、Inflammatory(炎症性)、Connective/Soft tissue(结缔/软组织)、Dead(坏死死亡)、Non-Neoplastic Epithelial(非肿瘤性上皮)5 类。数据按 3 折(Fold 1/2/3,图像数 2,656/2,523/2,722)组织,官方给出三种「训练-验证-测试」组合以支持交叉验证。官方提供评测脚本(PanNuke-metrics)与 HoVer-Net 基线权重,评测指标以 IoU 阈值 0.5 的 mPQ(multi-class Panoptic Quality)为主、bPQ(Binary PQ)为辅,因此跨论文结果可比性较强——但前提是遵守同一评测协议。
从算法视角看 PanNuke 的「为什么这样设计」:细胞核在 H&E 里大量重叠、紧贴,是计算机视觉中极具挑战性的密集实例场景;而「分割 + 分类」要同时解决「把粘连核切开」与「判断核型」。PanNuke 的设计——像素级 6 通道掩码 + 每实例整数 ID——正是为这两类目标分别预留监督:通道划分解决分类监督,实例 ID 解决分割/分离监督。这种「一图多监督」的结构使它能直接喂给 HoVer-Net(距离图分离)、Mask R-CNN(两阶段实例)、DIST(检测)等不同范式的模型做公平对比,是论文能系统评估多基线的结构性前提。
§1.2 战略价值
维度一:跨器官的细胞级通用基准。 在 PanNuke 之前,多数细胞核数据集仅覆盖 1-9 种组织(如 MoNuSeg 为 TCGA 多器官但未带完整分类、CoNSeP 仅结直肠)。PanNuke 把 19 种组织放进同一标注协议,天然成为「跨组织泛化」的试金石。对产业与学术界,这意味着一个模型是否真正学到「核的普适形态」,而非「乳腺核的长相」,可用同一把尺子量出来——这正是计算病理从单器官走向全流程多器官产品的关键卡点。
维度二:肿瘤微环境量化与组织学特征工程。 5 类核型的空间构成直接对应肿瘤微环境:肿瘤性核密度反映增殖、炎症性核反映免疫浸润、坏死核反映缺血坏死、结缔核反映间质反应。以 PanNuke 为底训练的细胞级特征(如核型比率、空间邻接图)可被迁移到生存分析、分级、微卫星不稳定性预测等下游任务,作为解释性中间特征而非黑盒端到端,工程价值高、临床可接受度也更好。
维度三:评测口径的公共基准效应。 PanNuke 官方给出三折划分、评测脚本与基线权重,围绕它形成了 PapersWithCode 等多份公开排行榜。这使得新方法能以几乎零工程摩擦与历史结果对齐,成为细胞核分割+分类这一垂直赛道事实上的社区锚点(引用 368+,截至 2026-09)。
§1.3 同类数据集横向对比
| 数据集 | 组织数 | 核/样本规模 | 模态/格式 | 标注类型 | 相对 PanNuke 差异点 |
|---|---|---|---|---|---|
| PanNuke(扩展版) | 19 | 7,901 patch / 约 18.97 万核 | H&E patch 256×256 @40×,.npy | 实例分割 + 5 类核型 | 泛癌、多组织、统一 patch 协议 |
| MoNuSeg | 多器官(TCGA) | 30+14 图 / 约 2.9 万核 | H&E WSI patch,.tif | 实例分割(无分类) | 器官多但无细胞类型分类,视野大 |
| CoNSeP | 1(结直肠) | 41 图 / 约 2.4 万核 | H&E 1000×1000 @40× | 实例分割 + 7 类核 | 单器官、标注更细但规模小 |
| Lizard | 1(结直肠) | 约 43 万核 | H&E patch 综合 5 源 | 实例分割 + 6 类核 | 单器官、核数更多 |
| NuCLS | 乳腺 | 2,202 图 / 约 14 万核 | H&E 显微图 + WSI patch | 实例分割 + 多类细胞 | 专攻乳腺,语义更细含多种细胞 |
| MIDOG 2021/22 | 乳腺/肺等 | 训练 950 图级 | H&E | 有丝分裂检测 | 只检有丝分裂(目标不同) |
数据规模一句话定位:以「组织多样性 × 标注深度」二维看,PanNuke 站在泛癌细胞核数据集的桥头——组织数(19)与带完整分类的像素级核标注(约 18.97 万)同时处于高位,这是早期单器官或仅分割数据集无法替代的。对想训练「通用细胞核分析器」而非「乳腺核分割器」的研究者,它是目前门槛最低、口径最统一的起点。
§1.4 版本时间轴
| 版本/节点 | 日期 | 规模与内容 | 说明 |
|---|---|---|---|
| PanNuke(初版,Part 1) | 2019(ECDP) | 481 视野 / 205,343 核,多放大倍率,采样自 >20K 张 WSI | 论文《PanNuke: an open pan-cancer histology dataset…》首次发布;Kaggle「Cancer Instance Segmentation」即此版 |
| PanNuke 扩展版(PanNuke 1.0) | 2020-03-24 | 7,901 张 256×256 / 约 189,744 核 / 19 组织 / 3 折 | arXiv 2003.10778《PanNuke Dataset Extension, Insights and Baselines》,社区通行口径 |
| 镜像与再分发 | 2020 至今 | 多个 Hugging Face 镜像(RationAI/PanNuke、MedOtter/PanNuke 等) | 结构转为 image/instances/categories/tissue 表格式,方便 datasets 库直接加载 |
§1.5 典型应用场景
- 泛癌细胞核分割 + 分类基准评测:在官方三折上训练 HoVer-Net/DIST/Mask R-CNN 系模型,比较 mPQ/bPQ。
- 跨组织泛化诊断:以乳腺/前列腺等大组织训练、在少见组织(胆管/睾丸等)测试,量化冷启动泛化损失。
- WSI 整片平铺推理:训练后在真实全切片上滑窗切块、重叠融合,做细胞计数与核型占比的整片级量化。
- 肿瘤微环境量化:由核型空间构成估计炎症浸润、坏死区、间质比例,供下游预后/分级建模使用。
- 数据增强与仿真:用染色归一化、扩散模型合成核型标签,缓解 Dead 等稀有类样本不足。
任务→数据子集推荐:
| 你想解决的任务 | 建议使用的子集/设定 | 一句话建议 |
|---|---|---|
| 通用核分割+分类 | 全部 19 组织,官方三折交叉 | 用 mPQ 平均 ± 标准差对表 |
| 少见组织冷启动泛化 | 组织留出(训练去掉某组织) | 量化未见组织的迁移损失 |
| 单器官部署(乳腺等) | 只取该组织 patch 做训练 | 另用 MoNuSeg 同器官做外测 |
| WSI 整片推理 | 全量训练 + 滑窗平铺 | 带 overlap 融合,去边缘冗余 |
| 细胞组成量化/计数 | 全量 + 实例输出 | 关心 instance 精度更胜 mPQ 平均 |
| 快速验证管道 | fold1 子集几百张 | 冒烟后再全量,省时省卡 |
为何多数推荐直接用官方三折? 它同时均衡了组织与核类、提供社区可比口径,避免「自创划分+自研指标」造成的结果不可复现与不可对表。
§2 医学背景
§2.1 ICD-11 编码映射表
PanNuke 的标签是「细胞核形态学类别」,而非「疾病诊断」本身。下表将 19 种组织中最常见的肿瘤场景映射到 ICD-11 肿瘤章(Chapter 2, 2A00-2F9Z)的代表性码,作为医学背景参考,不代表每个 patch 都对应这些诊断。
| 组织/场景 | ICD-11 码 | ICD-11 术语 | 说明 |
|---|---|---|---|
| 乳腺 | 2C60-2C6Y | Malignant neoplasms of breast | 乳腺癌中核异型/分级是评估重点 |
| 肺 | 2C25 | Malignant neoplasms of bronchus or lung | 肺癌核质比、核型在诊断与分级中关键 |
| 前列腺 | 2C82 | Carcinoma of prostate | Gleason 分级依赖腺体与核异型 |
| 结肠/结直肠 | 2B90 | Malignant neoplasms of colon | 腺癌核分层、浸润与坏死 |
| 肝脏 | 2C12 | Malignant neoplasms of liver | 肝细胞癌核特征 |
| 肾 | 2C90 | Malignant neoplasms of kidney | 肾细胞癌亚型差异显著 |
| 子宫 | 2C70-2C7Z | Malignant neoplasms of corpus uteri | 子宫内膜癌核分级 |
| 宫颈 | 2C77 | Malignant neoplasms of cervix uteri | 鳞癌/腺癌核型差异 |
| 皮肤 | 2C30-2C3Z | Malignant neoplasms of skin | 黑色素瘤核异型 |
| 头颈/食管/胃/胰/胆管/卵巢/睾丸/甲状腺/肾上腺/膀胱 | 各异 | 相应器官恶性肿瘤 | 构成 pan-cancer 覆盖广度 |
§2.1b SNOMED CT 映射表
| 标签/概念 | ICD-11 参考 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| Histopathology(数据场景) | — | 399753008 | Histopathology finding |
| Neoplastic(肿瘤性核) | 2A00-2F9Z | 119303007 / 285807008 | Malignant tumor / Neoplastic disease |
| Inflammatory(炎症性核) | 4A00-4B4Z(免疫) | 235824008 | Inflammatory disorder |
| Connective/Soft tissue(结缔组织细胞) | — | 272681000 | Connective tissue cell |
| Dead cell(坏死) | — | 65778005 | Necrosis |
| Non-Neoplastic Epithelial(正常上皮) | — | 73877006 | Epithelial cell |
§2.2 疾病背景与临床意义
细胞核是组织病理学诊断的核心观察单位:肿瘤细胞核往往核质比增大、异型(pleomorphism)明显、染色质分布异常;炎症性核(淋巴/浆细胞等)密度反映免疫反应;坏死核提示缺血与肿瘤内退变;结缔组织核代表间质/纤维母细胞反应;正常上皮核则是「非肿瘤对照」。病理医生在镜下常需综合「周边组织上下文」才能把 neoplastic 与 non-neoplastic epithelial 区分开来——这正是 PanNuke 论文明确指出、AI 也难以攻克之处,也是其 5 类核型设计的临床动机。
流行病学上,PanNuke 覆盖的 19 种组织横跨全球最常见癌种(乳腺、肺、前列腺、结直肠等),使其在「泛癌」意义上具有代表性;但需注意,数据取自组织微阵列与公开 WSI 的子区域,不是按人群/患者分层抽样,不能用于推断任意人群的患病分布。
「核形态学」与「流行病学」的边界:核的形态特征(如异型、坏死、炎症密度)会随癌种、分期、治疗状态与扫描批次变化。PanNuke 不提供这些临床上下文,故不能用它研究「某癌种患者中核型分布如何随分期演变」这类流行病学问题。它的流行病学价值是间接的:为「计算病理细胞级分析」提供一个组织足够多样的形态学参考,让算法能在多个器官的核形态谱上被校准,而不是用单一癌种训练后假装普适。做任何涉及人群或临床终点的研究,都应把 PanNuke 限制为「形态学预训练/特征层」而非证据来源。
从组织病理学看,5 类核型的划分具有明确的形态学依据,而非随意的聚类:
| 核型 | 主要形态学特征(H&E) | 病理解读 |
|---|---|---|
| Neoplastic(肿瘤性) | 核大、核质比高、染色质粗/深染、核膜不规则、异型明显 | 恶性肿瘤细胞,增殖与侵袭能力的形态体现 |
| Inflammatory(炎症性) | 圆而小、核深染、胞质少(淋巴/浆细胞等) | 免疫/炎症浸润,肿瘤微环境的免疫反应 |
| Connective / Soft tissue | 梭形或细长、核染色较浅(纤维母细胞、平滑肌等) | 间质反应、纤维化与基质重构 |
| Dead(坏死) | 核固缩、碎裂或溶解、边界模糊、无完整核膜 | 缺血坏死、肿瘤内退变、治疗反应 |
| Non-Neoplastic Epithelial | 结构较规整、极性可见、核浆比较低 | 正常/良性上皮,作为「非肿瘤对照」 |
为何这 5 类足够? 它是细胞层面最核心的「肿瘤 vs 免疫 vs 间质 vs 死亡 vs 正常上皮」五元切分,既能刻画肿瘤负荷与免疫浸润,又不至于细到每类免疫细胞而让标注不可行。这也解释了为何 neoplastic 与 non-neoplastic epithelial 是模型最难区分的两类——两者只差「异型程度」与周边上下文,人类同样需要组织学背景辅助。
§2.3 临床任务定义
PanNuke 数据本身支撑的是亚任务(nuclei-level),服务于更大的诊断链:
- 核检测/实例分割:把每个核完整地从密集、重叠的背景中分离(分割是前提);
- 核型分类:把核归入 Neoplastic/Inflammatory/Connective/Dead/Epithelial 5 类,量化肿瘤细胞比例、炎症浸润、坏死面积;
- 间接支撑的临床目标:肿瘤分级(核异型评分)、浸润量化、免疫微环境表征、预后建模、治疗反应评估的细胞级特征提取层。
注意:PanNuke 没有提供患者级结局、分期或治疗标签,因此无法单独训练临床终点模型,只能作为特征提供方参与下游。
§2.4 患者人群表
| 维度 | 内容 | 说明 |
|---|---|---|
| 数据来源 | TCGA、GTEx 等公开全切片库 | 组织微阵列(TMA)与 WSI 子区域 |
| 时间 | 2019-2020 发布(源片采集时间不一) | 脱敏公开源,无患者识别信息 |
| 年龄/性别/种族 | 未随数据提供 | 公开源信息不可逐 patch 回溯 |
| 组织类型 | 19 种(乳腺/肺/前列腺/结肠/肝/肾等) | 部分少见组织样本量小 |
| 就医类型 | 肿瘤组织库切片 | 非按患者纵向随访设计 |
人群局限性:因为数据剥离了患者身份且源片来自 TCGA/GTEx,PanNuke 不具备通常意义的人群统计价值——它不能回答「某癌种在人群中占多少」「某患者风险如何」。任何把组织 patch 数量解读为患者数量、或据此推断人群分布的做法都是误用。可下结论的范围止于「跨组织的核形态多样性」这一形态学层面。
§2.5 临床价值
PanNuke 的核心临床价值在于把「细胞核形态学」变成可学习、可量化的特征。它为病理 AI 提供了跨器官统一的细胞级监督信号:肿瘤恶性程度评估、肿瘤分级、免疫微环境量化、新辅助治疗反应等任务所需的细胞组成信息,均可由细胞核分割+分类模型稳定提取。相比直接做 WSI 黑盒分类,这种「先分割细胞再统计特征」的可解释路径更容易获得病理医生的认可,也便于在临床上与人类专家的核级观察对齐。
需要清醒认识的是:PanNuke 提供的是「可解释特征层」,而非「诊断结论层」。临床落地通常是把它当作流水线的中间件——例如先统计「肿瘤性核密度」「炎症性核占比」「坏死核面积」,再把这些特征输入分级/预后模型,或直接辅助病理医生在镜下核对核型组成。它弥补了传统 WSI 分类模型「只给一个概率、说不清为什么」的可解释性缺口,但临床价值的成立仍取决于下游任务设计是否合理、验证是否充分。
§2.6 金标准表
| 环节 | 具体描述 |
|---|---|
| 划分方式 | 官方三折随机划分,每个折内按组织均衡、并保证每折含最小的类别等比例样本(论文 Figure 7) |
| 标注方式 | 半自动初标 + 病理医师修订与质控;Neoplastic/Dead/Ambiguous 等难例标注有明确指引 |
| 标注者 | 多位病理学医师(含华威、皇家伍尔弗汉普顿 NHS 等机构病理师) |
| 金标准性质 | 像素级实例掩码 + 5 类核型标签;tissue 标签由源切片/临床信息给定 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 规模 | 理由 |
|---|---|---|---|
| 实例分割 + 分类基准评测 | PanNuke 扩展版(1.0,arXiv) | 7,901 patch / 18.97 万核 / 19 组织 / 3 折 | 统一 256×256 @40×、官方三折、社区排行榜通用口径 |
| 更大视野、更多放大倍率的早期核标注 | PanNuke Part 1(2019) | 481 视野 / 205,343 核 | 视野更大、多倍率,但无标准三折、口径不同 |
| 快速加载到 PyTorch 数据管道 | Hugging Face 镜像(RationAI/PanNuke) | 同扩展版 7,901 | datasets 库直接加载 image/instances/categories/tissue |
| Few-shot 组织级分类 meta 实验 | Meta-Album PNU | 7,753 图(重排,128×128) | 作为分类 meta-dataset,非原始分割任务 |
| 单器官深层研究 | CoNSeP / Lizard(结直肠) | 见 §1.3 | 组织专属、核类型更细分 |
§3.1 模态详情
PanNuke 为单一模态的 2D H&E 染色病理图像。图像以 40× 物镜放大数字化,对应 0.25 µm/像素空间分辨率;patch 统一为 256×256 RGB(uint8)。H&E 染色将细胞核染成蓝紫(苏木精)、胞质/间质染成粉红(伊红),因此核-质-间质的对比主要体现为色相差异——这也是下游做染色归一化的依据。
来源上,图像主体来自组织微阵列(TMA)与部分全切片提取的子区域,从 TCGA/GTEx 公开库汇入。同一组织可能来自不同扫描仪与批次,色差(stain variation)显著,训练时需考虑染色增强或归一。
模态边界与陷阱:PanNuke 是 2D 单图斑块(patch),不含三维体量、免疫组化(IHC)多标记或荧光多通道。所有信息都浓缩在单张 256×256 H&E 的形态与色相中。这带来两点影响:(1) 无法做跨 patch 的全局上下文(如整片的空间排布),除非自行拼 WSI;(2) 色相(H&E)是唯一染色通道,无法像 IHC 那样用标记物区分细胞功能亚型——故 5 类核型的「功能」是病理医师依据形态+上下文推断的。
§3.2 按子集样本数表
| 子集(折) | patch 数(256×256) | 用途示例 |
|---|---|---|
| Fold 1 | 2,656 | 训练/测试之一 |
| Fold 2 | 2,523 | 训练/测试之一 |
| Fold 3 | 2,722 | 训练/测试之一 |
| 合计 | 7,901 | 官方三折交叉验证 |
| 标注核 | 约 189,744 | 全部带实例掩码 + 5 类标签 |
19 种组织一览(types.npy 整型 0-18,按字母序):Adrenal gland(肾上腺)、Bile duct(胆管)、Bladder(膀胱)、Breast(乳腺)、Cervix(宫颈)、Colon(结肠)、Esophagus(食管)、Head & Neck(头颈)、Kidney(肾脏)、Liver(肝脏)、Lung(肺)、Ovarian(卵巢)、Pancreatic(胰腺)、Prostate(前列腺)、Skin(皮肤)、Stomach(胃)、Testis(睾丸)、Thyroid(甲状腺)、Uterus(子宫)。这些组织的 patch 数量差异大:大癌种(乳腺/肺/前列腺/结直肠)贡献多,而胆管、睾丸、肾上腺等少见组织贡献明显偏少——跨组织训练前应先按 types.npy 统计各组织 patch 与核数,对样本不足的组织预留独立评测或欠采样策略。
§3.3 格式表
| 数据 | 格式 | 尺寸/形状 | 说明 |
|---|---|---|---|
| 图像 | NumPy .npy(或 PNG/uint8) |
每折 N×256×256×3 uint8 |
RGB H&E patch |
| 实例掩码 | .npy |
每折 N×256×256×6 |
通道 0-4 存整数 instance ID(neoplastic/inflammatory/connective/dead/epithelial),通道 5 为背景 |
| 组织标签 | .npy(types.npy) |
每折 N 整型 |
tissue ID 0-18(19 组织字母序) |
| HF 镜像表格式 | Hugging Face Arrow | image + inst_map + type_map + tissue + fold + sample_id | 由 npy 转换,见 §4 |
§3.4 存储大小
三折 .npy 合计约 833-912 MB(HF 镜像总大小 833-912 MB,视格式与压缩)。解压/转换后如需生成 PyTorch 目录树(每 patch 独立文件)体积会增加,建议至少预留 3-5 GB 工作盘。
存储与加载注意:.npy 为内存映射友好的连续数组,读入后是整折载入内存(每折约 256-290 MB 图像 + 掩码),对小显存机器一次性 load 一折可行,但三折全载入会占用较多 RAM。更省内存的做法是用 np.load(..., mmap_mode="r") 做惰性切片,或在预处理阶段把 npy 转成逐 patch 的 PNG/磁盘文件以支持 torchvision.datasets.ImageFolder 式的按需读取。
§3.5 标注方式
标注为半自动初标 + 病理医师人机协同:先由算法(含 NuClick 交互分割工具)生成核轮廓初稿,再由病理医师逐核修订、确认与质控。论文强调采用「减少选择偏差」的策略从组织微阵列中挑选有代表性、信息丰富的视野。5 类核型标签按形态学与周边上下文给出,neoplastic 与 epithelial 等难例需参考组织学上下文。
半自动如何落地:对组织学切片,纯手工逐核画轮廓在约 18.97 万核规模下不可行;半自动先用基于颜色/深度分割或点击式交互工具(NuClick 以一个 seed 点快速扩出核轮廓)生成初稿,再由病理医师验收/修正难例。这显著提升吞吐,也把人类注意力集中到真正难判的核上。理解这点,就能解释为何少数核的轮廓边缘可能与「理想病理标注」存在细微偏差——它是「效率与精度」权衡下的工程产物,而非病理金标准直出。
§3.6 标注者资质与一致性
标注与质控由具备病理学背景的合作医师(含皇家伍尔弗汉普顿 NHS Trust、考文垂与沃里克大学医院等机构)执行。论文指出区分 neoplastic 与 non-neoplastic epithelial 对人类同样困难,需上下文判断,因此存在标签固有歧义;Dead 核因体积小、边界模糊亦易标错。数据未提供逐例标注者间一致性(agreement)量化,使用者应把它当作含噪、半自动 QC 的数据看待。
一致性在实践中的含义:
- 把「模型输出与某位病理师标注一致」误读成「模型学对了客观金标准」是不成立的——金标准本身有主观成分;
- 若你的应用对 Dead/Epithelial 特别敏感,建议自行抽 50-100 个 patch 请 1-2 位病理师复核,量化一下标签噪声量级再决定是否加置信度过滤;
- 跨论文比较时,标签噪声源(半自动 vs 全自动 vs 多位医师 vs 单一医师)是影响性能上限的隐藏变量,需在论文中交代。
§3.7 采集周期
数据采集与标注贯穿 2019-2020(Part 1 于 2019 ECDP 发布,扩展版 2020-03 发布)。源切片的原始病理取材时间早于发布、且来自多个公开队列,故无统一临床采集时间窗。
实际意义:PanNuke 是「快照式」基准,而非纵向队列。源片跨越不同年份、不同机构的保存与数字化条件,这种异质性既是缺点(漂移来源)也是优点(比单一批次更接近真实多源临床场景)。做时间维度分析没有意义——它没有发布时刻以外的时变信息可挖,时间只是用于追溯取材与数字化工艺差异的元信息。
§3.8 地域覆盖
源切片来自 TCGA/GTEx 等跨国、跨机构公开全切片库,实际病例地域覆盖以这些源库为准(主要北美、部分欧洲/亚洲贡献)。发布与整理由英国华威大学 TIA 中心牵头。
TCGA 与 GTEx 的补充说明:TCGA(The Cancer Genome Atlas)以癌症为主,贡献了肿瘤性与配对的癌旁正常组织;GTEx(Genotype-Tissue Expression)以正常组织为主,补充了多样正常器官的表达与形态。两者结合使 PanNuke 在「同一 5 类核型下同时覆盖癌与非癌来源」上更加完整——这也是为何非肿瘤性上皮核能在多数组织中稳定出现的背景。地域上两者均偏北美,若用于欧洲/亚洲扫描与染色样本,地域+工艺双重漂移需另行评估。
§3.9 设备规格
公开资料给出的是数字扫描分辨率与放大倍率(40× / 0.25 µm/像素),未逐图公开具体扫描仪型号(ScanScope、Aperio 等多为 TCGA 常见平台)。染色为 H&E。因扫描与染色批次差异带来的色差,是评测时必须控制的变量(见 §6.5 坑点)。
采集与存储链路:一张 40×、0.25 µm/像素的全切片若完整数字化可达数 GB 量级,远超一个 patch。PanNuke 将切片切成 256×256 patch 后单图仅约 200 KB(uint8 RGB),使整个数据集压缩到不足 1 GB——这是它能被直接单机加载、训练的门槛前提。理解这条「整片 → 小 patch」的压缩链路,有助于判断为何它无法直接回答「整片级别」的问题,而需自行平铺拼接。
§3.10 深度溯源链
公开肿瘤组织库(TCGA / GTEx 等)
└─ H&E 切片取材 + 数字化(40×,0.25 µm/px)
└─ 组织微阵列(TMA)构建 / WSI 子区域选取
└─ patch 切分(256×256,扩展版统一尺寸)
└─ 半自动核初标(NuClick 等)+ 病理医师质控
└─ 三折划分(Fold 1/2/3)+ 6 通道掩码 + tissue 标签
└─ 官方发布(Warwick TIA)+ 镜像(Hugging Face 等)
§4 数据结构
§4.0 目录树
官方下载按折组织,每折为独立的 .npy 数组包。以下为解压/重组后的典型目录(以 fold1 为例,fold2/fold3 结构相同):
pannuke/
├── fold1/
│ ├── images.npy # (2656, 256, 256, 3) uint8 RGB H&E patches
│ ├── masks.npy # (2656, 256, 256, 6) instance-wise masks
│ └── types.npy # (2656,) int32 tissue type id (0-18)
├── fold2/
│ ├── images.npy # (2523, 256, 256, 3)
│ ├── masks.npy # (2523, 256, 256, 6)
│ └── types.npy # (2523,)
└── fold3/
├── images.npy # (2722, 256, 256, 3)
├── masks.npy # (2722, 256, 256, 6)
└── types.npy # (2722,)
(Hugging Face 镜像改为单条记录的 Arrow 格式:image、instances(每核一个二进制掩码)、categories(每核类码 0-4)、tissue 等字段,便于 datasets 直接加载。)
§4.1 DAIMS 标准化字段描述表
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image | uint8 array | 256×256×3 RGB patch | — | 模型输入 | 染色/扫描差异 | 无(整 patch) | [0,255] |
| masks(通道 0) | int array | Neoplastic 实例掩码 | 通道内同核同 ID | 分割+分类监督 | 轮廓标定误差 | 0=该区无此类核 | ≥0 |
| masks(通道 1) | int array | Inflammatory 实例掩码 | — | 同上 | 同上 | 0 | ≥0 |
| masks(通道 2) | int array | Connective/Soft 实例掩码 | — | 同上 | 同上 | 0 | ≥0 |
| masks(通道 3) | int array | Dead 实例掩码 | — | 同上 | 同上 | 0 | ≥0 |
| masks(通道 4) | int array | Epithelial(非肿瘤性)实例掩码 | — | 同上 | 同上 | 0 | ≥0 |
| masks(通道 5) | int array | 背景(非前景) | 0/1 | 判断无核像素 | — | 1=背景 | 0/1 |
| types | int | tissue 类型标签 | 3=Breast | 组织条件/元信息 | 源切片信息 | 无 | 0-18 |
核类与组织整型编码速查(避免在代码里把 0-4/1-5 记错):
| 掩码通道/类别整型 | 核型/通道名 |
|---|---|
| 通道 0 / categories 0 | Neoplastic(肿瘤性) |
| 通道 1 / categories 1 | Inflammatory(炎症性) |
| 通道 2 / categories 2 | Connective / Soft tissue(结缔/软组织) |
| 通道 3 / categories 3 | Dead(坏死死亡) |
| 通道 4 / categories 4 | Non-Neoplastic Epithelial(非肿瘤性上皮) |
| 通道 5 | 背景(非核) |
⚠️ 注意两种编码体系差异:掩码 6 通道的语义类型是「0-4 = 5 类前景 + 第 5 通道 = 背景」;而**语义 type_map(HF 镜像)**把 0 定为背景、1-5 定为 5 类核。若在语义任务里直接用 masks 的通道索引当类标签会差 1 位——务必以你实际加载的源为准统一(见坑点 2)。
§4.2 标签分布
5 类核型在约 18.97 万核中呈现明显不平衡:Neoplastic 占比最大,Dead 最少且占比极低。论文将类别不平衡列为影响分类性能(尤其 Dead 与部分非肿瘤类)的主要因素之一。以下为定性分布(精确数值因官方未在扩展版逐一公开,请以实际下载统计为准):
| 核型 | 相对规模 | 备注 |
|---|---|---|
| Neoplastic | 高(占比最大) | 肿瘤性核,样本丰富 |
| Inflammatory | 中-高 | 免疫浸润反映 |
| Non-Neoplastic Epithelial | 中 | 与 Neoplastic 形态相近,易混 |
| Connective / Soft tissue | 中-低 | 间质细胞 |
| Dead | 极低 | 体积小、标注少,性能最弱 |
19 种组织间 patch 数量亦不均衡:乳腺/肺/前列腺等大癌种组织样本多,胆管/睾丸/肾上腺等少见组织样本少,跨组织泛化差异明显。
按 patch 覆盖度的粗略分层(供参考,精确数量以实际下载统计为准):
| 覆盖档位 | 组织(示例) | 影响 |
|---|---|---|
| 高(样本充足) | Breast / Lung / Prostate / Colon 等大癌种 | 训练主源,性能相对稳 |
| 中 | Kidney / Liver / Stomach / Thyroid / Uterus 等 | 需结合增强 |
| 低(少见/样本少) | Bile duct / Testis / Adrenal gland 等 | 冷启动与跨组织泛化风险高,建议独立评测或欠采样 |
这种不均是模型「组织特异过拟合」的根源——在样本多的组织上表现好不代表在少见组织上同样好(呼应 §6.5 坑点 5)。
§4.3 关键统计
- 图像:7,901 张(Fold1 2,656 / Fold2 2,523 / Fold3 2,722),统一 256×256;
- 标注核:约 189,744 个,均带实例掩码与类标签;
- 组织:19 种;核类:5 种 + 背景;
- 分辨率:40×,0.25 µm/像素;
- 每 patch 核数分布不均,少数 patch 甚至无核或仅少量可见像素核(见坑点)。
统计口径提醒:扩展版的 189,744 是社区通行口径,但不同文档里对「核数」与「图像数」的写法并不统一(个别资源把 Part 1 的 205,343 也标给扩展版,或把图像数写成 7,753/7,904)。引用任何「PanNuke 规模」数字前,先确认它指哪个版本:扩展版应以 7,901 张 / 约 189,744 核 / 3 折为锚(对应你实际下载的 npy 行数);若要与 205,343 / 481 视野的数字对表,则那属于 Part 1,协议不同、不可混算。最稳妥的自证方式是打印 images.npy 第一维长度与 masks 通道数,与官方数组比对(见坑点 1)。
§4.4 数据层级
PanNuke 不提供患者→切片→patch 的完整层级公开映射(为匿名化与使用便利,仅发布 patch 级)。层级关系为:19 种组织类型 → 若干 patch(分属 3 折)→ 每 patch 内多个核实例 → 每核 1 个类标签 + 像素掩码。
由此产生三个工程含义:
- 不能做患者级或切片级分组划分——数据层级在 patch 层已封顶,任何「跨切片不泄漏」的宣称都无法直接验证;
- tissue 标签是唯一可用的高层元信息,做分层/留出只能到组织这一级(leave-one-tissue-out 是可达的稳健做法,见 §5.3);
- 同 patch 内核的共现/邻接关系是可用的空间结构,可用于图网络(cell graph)或社区检测等对「细胞邻域」敏感的方法。
§4.5 缺失值 + 信息性缺失编码表
| 情形 | 编码/表现 | 语义(信息性缺失) | 处理建议 |
|---|---|---|---|
| 背景像素 | 掩码通道 5=1 | 无核,非缺失 | 分类为背景,监督 softmax 含背景类 |
| patch 无任何核 | 全通道为 0/背景 | 该 patch 无可标注核(少) | 训练时可视作负样本或剔除 |
| 边缘被裁核 | 核像素 <10 | 核主体在 patch 外被裁 | 训练目标仍含它,评测时计入小实例 |
| tissue 未知 | — | 官方不提供此类 | —(全部 patch 有 tissue 标签) |
§5 划分与使用建议
§5.1 官方划分
官方为三折交叉验证设计,推荐三种组合(三折轮流做 train/val/test):
| 组合 | 训练 | 验证 | 测试 |
|---|---|---|---|
| Split 1 | Fold 1 | Fold 2 | Fold 3 |
| Split 2 | Fold 2 | Fold 1 | Fold 3 |
| Split 3 | Fold 3 | Fold 2 | Fold 1 |
论文按组织将每折均分到各类的「最小类等比例」子块,使三折的组织与核类分布尽量对齐,从而让跨折结果可比、可平均(平均 mPQ 跨 3 split)。
理解官方划分的「按核类均衡」:官方在划分时对每折都确保包含与全局「最小核类」等比例的子样本,目的是避免某折缺了某种核型或某类组织。这把「三折可互换、可平均」做到工程上限。但也正因为划分以「patch 数量均衡」为第一优先级而非「切片隔离」,它适合做通用分割能力评测,却不适合直接当跨组织/跨切片泛化的证据——后者的严谨做法必须自己组织留出(见 §5.3)。
一种推荐的稳健使用流程:先用官方三折交叉快速锁定模型与超参(平均 mPQ 作选型);锁定后再跑一次 leave-one-tissue-out(或至少把一个少见组织整体留出)评估真实跨组织泛化;最后用外部数据集/真实 WSI 做最终确认。三步分开报告,避免把「折内分数」误当「泛化分数」。
§5.2 社区惯例划分
PapersWithCode 等排行榜与多数复现论文直接使用官方三折、平均 mPQ 作为主指标;亦有工作自定义 fold1 训练、fold3 测试做快速实验。使用自定义划分时须报告划分方式,避免与官方数字直接对表。
为何官方推荐三折而不是固定 train/test? 因为 7,901 张 patch 中某些少见组织样本很少,单一固定划分可能让某组织恰好只在训练或测试中出现,导致方差极大。三折平均既提高了少见组织的曝光率,也让「组织是否见过」的影响被平均化——这既是被采纳为基准的原因,也是跨折分数应「平均 ± 标准差」报告的理由。
§5.3 数据泄漏风险
主要泄漏风险是「组织级/切片级重叠」:官方划分在 patch 层面随机、并按核类均衡,但并未保证同一组织块/同一源切片不被同时分到 train 与 test。因此:
- 若目标是「跨组织泛化」评测,应做组织留出法(leave-one-tissue-out)或切片级分组,否则同源 patch 会拉高得分、产生乐观估计;
- 若做数据增强的合成 patch 加入训练,须确保其未污染测试折;
- 报告 mPQ 时须说明是在「折内(同组织重叠允许)」还是「组织留出」设定下取得,二者不可混比。
§5.4 交叉验证建议
推荐用官方三折做 3 次「train/val/test」交叉并报告平均 mPQ ± 标准差(论文即如此)。对类别不平衡,val 划分建议按核类分层(stratify by nucleus class)或至少保证 Dead 在 val 有代表性,否则超参选择会偏向多数类。
组织留出(leave-one-tissue-out)的代码骨架——这是评估「跨组织泛化」的正确姿势:
import numpy as np
from sklearn.model_selection import train_test_split
def leave_one_tissue_split(fold_dir, held_out_tissue_id):
"""把指定组织整体留作测试,其余训练/验证。返回 (train_idx, val_idx, test_idx)。"""
types = np.load(f"{fold_dir}/types.npy")
n = len(types)
idx = np.arange(n)
test = idx[types == held_out_tissue_id] # 该组织全部做测试
rest = idx[types != held_out_tissue_id] # 其余组织
train, val = train_test_split(rest, test_size=0.15, stratify=types[rest])
return train, val, test
对 19 种组织各留出一种跑一次,得到「组织外平均 mPQ」,会比官方折内 mPQ 更真实地反映模型到新器官的表现(呼应 §5.3 与坑点 5)。
§5.5 外部验证建议
- 用 MoNuSeg 测试集(14 图、7 器官)检验未见表/未分类器官的分割迁移;
- 用 CoNSeP(结直肠,7 类核)检验单器官细分类迁移;
- 有条件者在真实 WSI 上整片平铺推理,检验 patch 训练模型在整片上下文的表现;
- 染色维度上用不同扫描批次的 patch 检验染色鲁棒性。
外部验证的取舍:外部数据集通常类别体系与 PanNuke 不一致(MoNuSeg 无分类、CoNSeP 类更细),直接对 mPQ 不现实,更实际的做法是:(1) 分割层面比 Dice/IoU(把类别并入二值核前景);(2) 分类层面做「类别粗化对齐」(如把 CoNSeP 的肿瘤上皮合并映射到 PanNuke 的 Neoplastic)。做映射时须在论文中写清映射表,否则外部数字仍不可比。外部验证的目标不是「碾压某个外部数字」,而是确认你的模型在脱离 PanNuke patch 分布后仍有合理泛化——这比绝对值更能说明真实可用性。
§6 AI 就绪指南
§6.1 快速上手
本节假设你已下载官方三折 .npy(每折含 images.npy/masks.npy/types.npy),并规划目录如下:
data/pannuke/
├── fold1/{images.npy,masks.npy,types.npy}
├── fold2/{images.npy,masks.npy,types.npy}
└── fold3/{images.npy,masks.npy,types.npy}
下面代码用 data_root 拼接 fold 路径,读取一折并打印形状与组织分布,作为「最小可用子集」的入口。先跑通读取再谈训练是 PanNuke 的通用建议——因掩码是 6 通道实例 ID 数组,语义必须先校验。
§6.2 数据获取
获取方式与渠道:
| 渠道 | 地址 | 说明 | 许可提示 |
|---|---|---|---|
| 官方(Warwick TIA) | https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke | Fold1/2/3 三链接,权威源 | CC BY-NC-SA 4.0,研究/非商用 |
| Hugging Face 镜像 | https://huggingface.co/datasets/RationAI/PanNuke 等 | 表格式,datasets 可加载 |
同 CC BY-NC-SA 4.0 |
| Kaggle 镜像 | https://www.kaggle.com/datasets/andrewmvd/cancer-inst-segmentation-and-classification | Part 1(481 视野) | 注意此非扩展版口径 |
# 官方 npy 读取示例(数据即下载,无需申请;记得引用论文)
import numpy as np
data_root = "data/pannuke" # 你解压后的根目录
for fold in ["fold1", "fold2", "fold3"]:
imgs = np.load(f"{data_root}/{fold}/images.npy") # (N,256,256,3)
msk = np.load(f"{data_root}/{fold}/masks.npy") # (N,256,256,6)
typ = np.load(f"{data_root}/{fold}/types.npy") # (N,)
print(fold, imgs.shape, msk.shape, "tissues:", np.unique(typ))
申请流程:无需注册/申请,直接下载即可。但官方明确:发表研究必须引用 Gamper et al. 2019 与 2020;不得商用;再分发遵循 ShareAlike。生产/商用前请自行评估许可。
§6.3 预处理全流程
流程:读取 → 校验掩码 → 从 6 通道实例 ID 生成 instance_map 与语义 type_map → 可选染色归一 → 组织类别映射。
import numpy as np
from collections import Counter
CLASS_NAMES = ["Neoplastic", "Inflammatory", "Connective", "Dead", "Epithelial"]
TISSUES = ["Adrenal gland","Bile duct","Bladder","Breast","Cervix","Colon",
"Esophagus","Head & Neck","Kidney","Liver","Lung","Ovarian",
"Pancreatic","Prostate","Skin","Stomach","Testis","Thyroid","Uterus"]
def load_fold(fold_dir):
"""返回 images, semantic type_map(0-5), tissue ids"""
imgs = np.load(f"{fold_dir}/images.npy")
masks = np.load(f"{fold_dir}/masks.npy") # (N,256,256,6)
types = np.load(f"{fold_dir}/types.npy")
# 语义类型:前景 5 类取像素级的类归属(任一通道>0)
# 官方 masks 通道 0-4 前景、通道 5 背景
sem = np.zeros(imgs.shape[:3], dtype=np.uint8) # (N,256,256)
for c in range(5):
sem = np.where(masks[..., c] > 0, c + 1, sem) # class 1..5
# 生成全局 instance_id(跨通道唯一;默认只在单通道内区分,跨通道 ID 可能重叠,需偏移)
inst = np.zeros(imgs.shape[:3], dtype=np.int32)
offset = 0
for c in range(5):
ch = masks[..., c]
inst = np.where(ch > 0, ch + offset, inst)
offset += ch.max() # 使跨通道 ID 唯一
return imgs, sem, inst, types
# 可选:染色归一(stain normalization),对跨批次泛化通常有益
# 可用 stainlib / torchstain 实现 Macenko/Vahadane 法
清洗要点:实例 ID 跨通道偏移(见上面 offset 逻辑)——若不做偏移,5 类掩码各自从 1 编号,同一 patch 内 Neoplastic#1 与 Epithelial#1 会撞号,导致连通域合并错误。
§6.4 PyTorch DataLoader
import torch
from torch.utils.data import Dataset, DataLoader
import numpy as np
CLASS_NAMES = ["Neoplastic", "Inflammatory", "Connective", "Dead", "Epithelial"]
class PanNukeDataset(Dataset):
"""数据预期目录 data_root/foldX/{images,masks,types}.npy"""
def __init__(self, data_root, fold="fold1", split_weights=None):
self.imgs = np.load(f"{data_root}/{fold}/images.npy")
masks = np.load(f"{data_root}/{fold}/masks.npy")
self.types = np.load(f"{data_root}/{fold}/types.npy")
# 语义类型图:0=背景,1..5=5 类
self.sem = np.zeros(masks.shape[:3], dtype=np.int64)
for c in range(5):
self.sem = np.where(masks[..., c] > 0, c + 1, self.sem)
# 由 masks 每通道连通域可得到 instance 目标(此处给语义示意)
self.class_weights = torch.tensor([1., 1., 1., 3., 3., 5.]) # 自行重加权
def __len__(self):
return len(self.imgs)
def __getitem__(self, i):
img = torch.from_numpy(self.imgs[i].copy()).permute(2, 0, 1).float() / 255.0
sem = torch.from_numpy(self.sem[i].copy()).long() # (256,256)
return {"image": img, "mask": sem, "tissue": int(self.types[i])}
ds = PanNukeDataset("data/pannuke", fold="fold1")
dl = DataLoader(ds, batch_size=16, shuffle=True, num_workers=4)
print("batches:", len(dl))
提示:这里给出语义分割快速范式(逐像素 6 类);若需严格复现官方 mPQ 的实例分割,需在连通域层面输出 instance mask 并对每个实例做类预测,随后套用 PanNuke-metrics 评测(见 §6.9)。
对齐校验(重要):images.npy / masks.npy / types.npy 三者按行一一对应(第 i 张图对应第 i 个掩码与第 i 个 tissue 标签)。若从 HF 表格式加载,则每行就是一条带 image + inst_map + type_map + tissue 的完整记录。务必先验证 alignment:随机抽 3-5 个 patch,把 image、type_map、tissue 名叠加打印,确认 tissue 名与形态相符、掩码轮廓贴核缘。这一步能拦截「下载错版本 / 通道错乱 / 行错位」绝大多数早期事故。
§6.5 常见坑点
⚠️ 坑点 1:版本口径混乱——7,901 还是 481?189,744 还是 205,343?(分类:标签理解)
问题:PanNuke 存在「2019 初版(Part 1)」与「2020 扩展版(1.0)」两个口径:前者 481 视野 / 205,343 核 / 多放大倍率(Kaggle「Cancer Instance Segmentation」即此版),后者 7,901 张 256×256 / 约 189,744 核 / 统一 40×。GitHub/HF/Meta-Album 上还流传 7,753、7,904 等不同数字,极易拿错口径对表。
症状:声称复现排行榜却样本数、核数对不上;下载 Kaggle 版当官方三折用导致划分完全错位。
解决:动工前核对 images.npy 的实际 shape 与 masks 通道数;排行榜/论文对比一律以扩展版(7,901 / 3 折)为基准;下载记录来源(官方 Warwick vs Kaggle vs HF)与文件名。
参考:https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke ;https://www.kaggle.com/datasets/andrewmvd/cancer-inst-segmentation-and-classification
⚠️ 坑点 2:6 通道掩码的语义——instance ID 与背景通道、跨通道撞号(分类:预处理陷阱)
问题:masks.npy 是 6 通道数组,通道 0-4 分别是 neoplastic/inflammatory/connective/dead/epithelial 的整数 instance ID(非二值),通道 5 是背景。若把 masks 当二值类别掩码直接做 cross-entropy,或在各通道分别从 1 编号后合并连通域,会得到错误的类与实例语义。
症状:语义分割训练 loss 不收敛或类别错乱;实例计数远超真实核数(因跨通道 ID 重叠被误算成新实例)。
解决:像素级分类用「任一前景通道>0 → 该通道索引」生成 type_map;实例级须对通道 5 之外的每个前景通道做连通域标号并跨通道加偏移保证 ID 全局唯一(见 §6.3)。读数据前先打印 masks.sum 与 np.unique 校验。
参考:https://huggingface.co/datasets/MedOtter/PanNuke (schema/type_map 说明)
⚠️ 坑点 3:patch 边缘核被裁剪——小目标/残缺真值拖累 PQ(分类:数据泄漏)
问题:PanNuke 从全切片切 256×256 patch,核若跨越 patch 边界会被裁掉,部分核可见像素 <10。这些残缺核会进入监督信号与评测,令小目标分割、检测困难。
症状:模型在 patch 中心准、在边缘差;mPQ 分数被边缘小实例拖低;按像素统计核数偏少。
解决:训练时保留原标签(残缺核仍是监督);评测严格按官方 mPQ(IoU 0.5)口径,勿因「排除小核」自行改真值而偏离官方设定;如需做 WSI 整片推理,用带 overlap 的滑窗并在融合时去除边缘冗余预测。
参考:https://huggingface.co/datasets/RationAI/PanNuke (dataset card 明确提示边缘被裁核)
⚠️ 坑点 4:Dead 稀有类与类别不平衡——mPQ 对少类不敏感、但分类 F1 敏感(分类:偏倚陷阱)
问题:Dead 核占比极低、体积小,Neoplastic 占大头。官方主指标 mPQ 先逐类算 PQ 再平均,可减轻不平衡;但若你改用逐像素 accuracy 或宏观 F1,多数类会压过 Dead,报告失衡。
症状:整体 Dice/mIoU 看着不错,但 Dead 类 recall 极低甚至为 0;自行用 pixel accuracy 评估得到虚高分数。
解决:评估用 mPQ/bPQ(官方口径,IoU 0.5);分类子任务可用宏观 F1/每类 PQ 报告;训练用类别重加权(class weights)、focal loss 或对 Dead 上采样/复制增强。
参考:https://www.researchgate.net/publication/340134824(论文 Table IV:各模型 Dead PQ 均低)
⚠️ 坑点 5:三折随机划分 ≠ 跨组织泛化——组织级泄漏抬高分数(分类:数据泄漏)
问题:官方划分在 patch 层随机、按核类均衡,但不保证同源切片/组织块不跨折。若你据此声称「在未见组织上也能分割」,会因同组织 patch 的相似性而得到乐观、虚高的跨组织性能。
症状:报告的组织外(leave-one-tissue-out)分数与官方三折分数混为一谈;实际部署到全新器官时性能骤降。
解决:做跨组织泛化用组织留出法或切片级 GroupShuffle;如需与官方基准对表,须明确说明是「折内设定」;论文本身即以「跨组织难度与选择偏差」为研究点,可参考其评估设计。
参考:Gamper et al. 2020 arXiv 2003.10778(selection bias 与跨组织章节)
⚠️ 坑点 6:染色彩差与 TMA→WSI 迁移——跨扫描批次掉点(分类:工程陷阱)
问题:H&E 染色在扫描仪、批次、实验室间差异大;PanNuke 以 TMA/公开库 patch 为主,色相分布未必代表真实临床 WSI 全片。
症状:在官方测试集表现好的模型,换一批未见的染色后 Dice/mPQ 明显下降;整片推理时色相不均造成边缘伪影。
解决:训练加染色增强(HED 扰动)或先做染色归一(Macenko/Vahadane,stainlib/torchstain);推理对 WSI 滑窗 patch 先归一再预测;保留染色版本作为验证维度。
参考:LSP-DETR 等论文均以染色/分辨率差异为跨域难点(https://arxiv.org/html/2601.03163v1)
⚠️ 坑点 7:评测协议不统一——bPQ/mPQ/阈值/后处理不同,跨论文不可直接比(分类:评估误用)
问题:即使都用 PanNuke,各论文的 mPQ/bPQ、IoU 阈值、实例聚合与后处理(NMS、分水岭、mask IoU 匹配)未必一致;还可能有 bPQ vs 纯分割 Dice、检测 F1(centroid 距离阈值)等混报。
症状:把 A 论文的 mPQ 与 B 论文的 Dice 直接比较得出错误结论;复现分数差几个点却查不到原因。
解决:只用官方 PanNuke-metrics 脚本与 IoU 0.5 口径;引用 SOTA 数字时注明论文自报协议;报告同时给 bPQ/mPQ(若模型仅做分割则说明未分类);检测任务注明 centroid 阈值。
参考:https://github.com/TIA-Lab/PanNuke-metrics ;http://paperswithcode.com/dataset/pannuke
⚠️ 坑点 8:标注噪声与 neoplastic/epithelial 歧义——真值并非黄金(分类:标签理解)
问题:半自动初标 + 多病理 QC 仍有噪声,尤其 Neoplastic 与 Non-Neoplastic Epithelial 形态相近、人类专家也需上下文才能区分;Dead 小而难标。数据未提供逐例 agreement,不能假定标签全对。
症状:模型学到「和某病理师标注一致」而非「客观形态学真值」;在歧义例上输出震荡、置信度低却分类错误。
解决:模型可输出不确定性/覆盖大语义上下文(如把 patch 级组织信息并入);评估时关注每类 PQ 而非单一总分;遇强分歧难例可自行二次标注子集做校准,并在论文中声明噪声假设。
参考:Gamper et al. 2020(论文 explicit 讨论 neoplastic vs epithelial 判别难度)
§6.6 数据增强
安全 ✅:
- 几何增强:随机旋转(多选 90° 倍数以保住核形态)、翻转、小幅缩放、平移;镜像翻转对病理核旋转等变性友好;
- 染色增强(HED 通道随机扰动)——直接缓解 §6.5 坑点 6 的色差;
- 随机裁剪到 224/128、gamma 亮度扰动;
- 针对 Dead 的复制粘贴(copy-paste)/拼接增强,缓解稀有类。
危险 ❌:
- 任意角度大旋转 + 严重缩放会扭曲核的真实形态与尺寸先验(0.25 µm/px 下核有合理尺度);
- 不可控的颜色域翻转(channel swap、任意 hue 变换)会破坏 H&E 的核-质色相语义;
- 用与官方三折重叠的合成数据/外部核数据增强训练却混入 test 分布,造成泄漏式虚高(§5.3)。
染色增强示意(安全,配合 albumentations):
# HED(苏木精-伊红-二胺)空间做可控扰动,比 RGB 任意 hue 更保语义
import numpy as np
# 可选用 stainlib/torchstain 的 HED 分解,或 staintools 的 augmentor
# 示意:在 [0,1] 空间对亮度/对比做轻柔扰动(安全的通用亮度增强)
def light_brightness_aug(img, strength=0.15, seed=None):
rng = np.random.default_rng(seed)
gain = 1.0 + rng.uniform(-strength, strength)
out = np.clip(img * gain, 0, 1)
return out.astype(img.dtype)
更推荐的方案是用专业的染色归一(Macenko / Vahadane)库在训练侧做随机染色域采样,既缓解 §6.5 坑点 6,又不会像 RGB 全局 hue 翻转那样把核染成不合理颜色。
§6.7 模型推荐表
| 需求 | 推荐模型 | 理由 |
|---|---|---|
| 官方基准复现 | HoVer-Net | 官方给权重、在多数组织上最优、天然做分割+分类 |
| 快速强基线 | DIST(+ 分类分支) | 论文对比模型,结构简单 |
| 经典两阶段 | Mask R-CNN | 实例分割 SOTA 基线,PanNuke 上有公开复现 |
| 轻量实时 | NuLite / Fast-ViT 类 | 轻量 CNN,速度优先 |
| WSI 可扩展 | LSP-DETR / Transformer 检测类 | 面向大图/重叠核,显存友好(见 §8.1) |
训练实用提示:
- 输入尺寸:256×256 可整张送入;若显存充裕,可叠加重叠 patch 的上下文信息提升歧义分类。
- 损失组合:语义分类常用 Dice/CE + 实例分离常用距离图损失(HoVer-Net 的 H/V map)或分水岭;对 Dead 类建议提升权重或 focal loss。
- 两阶段数据组织:先以 mask 连通域产出「每核一个实例 + 每核类标」,再训练;不要直接对 6 通道数组做 batch 分类而丢失实例语义。
- 早停与验证:val 集按核类分层,避免 Dead 在 val 缺失导致早停方向错误;监控每类 PQ 而非单一 pixel metric。
§6.8 硬件需求表
| 配置 | 用途 | 预估 |
|---|---|---|
| CPU(16 核)+ 16GB RAM | 数据读取/转换、小规模实验 | 足可跑 DataLoader 与预处理 |
| 单卡 GPU(8-16GB,如 2080Ti/3060) | HoVer-Net/DIST 训练,256×256 小图 | 建议批 8-32,可收敛 |
| 单卡 24GB(3090/A5000) | Mask R-CNN、更大批、多折交叉 | 更稳、更快 |
| 多卡(2-4×A100) | 三折交叉 + WSI 整片大规模推理 | 任务量大时 |
§6.9 评估指标代码
官方指标为 mPQ/bPQ。以下为可运行的示意实现(含语义 Dice 便于理解):
import numpy as np
def pq_single(pred_inst, gt_inst, pred_cls, gt_cls, iou_thresh=0.5):
"""每个像素 pred_inst/gt_inst 为该实例 ID(>0),pred_cls/gt_cls 为 1-5 类。"""
# 用每个 mask 的 IoU 匹配预测与真值实例(简化:按实例唯一连通标签遍历)
# 此函数示意,正式请用官方 PanNuke-metrics(含 mask 级 IoU 匹配)
raise NotImplementedError("请改用官方脚本: github.com/TIA-Lab/PanNuke-metrics")
def dice_semantic(pred, gt, nclass=6):
"""逐像素语义 Dice(背景 0 + 5 类),用于快速 sanity check"""
d = []
for c in range(nclass):
a = (pred == c); b = (gt == c)
inter = (a & b).sum()
denom = a.sum() + b.sum() + 1e-8
d.append(2 * inter / denom)
return np.array(d) # 每类 Dice,宏观可平均
正式复现路径:克隆 https://github.com/TIA-Lab/PanNuke-metrics 生成官方 mPQ/bPQ;模型须输出每个实例的掩码 + 类预测,再逐类匹配。
把模型输出转成可评测的 instance 结果(sanity 示范):模型先给逐像素语义 + 逐像素实例边界,再对前景做连通域即得每个核实例,每个连通域取多数类作为该核分类:
from scipy import ndimage
def semantic_to_instances(sem_pred, min_size=5):
"""sem_pred: (256,256) 0=背景 1..5 类。返回 (inst_map, per_inst_cls)。"""
fg = (sem_pred > 0).astype(np.int32)
inst_map, _ = ndimage.label(fg)
per_inst_cls = []
for inst_id in range(1, inst_map.max() + 1):
px = sem_pred[inst_map == inst_id]
if len(px) >= min_size: # 过滤过小/残缺核(<10px 见坑点 3)
per_inst_cls.append((inst_id, int(px.max(initial=0))))
return inst_map, per_inst_cls
匹配到真值后套用官方脚本的 IoU 0.5 匹配即可得 mPQ/bPQ。切忌用上例的自制脚本对外报 mPQ——它不含与真值的实例匹配与每类平均,仅用于开发期 sanity check。
§6.10 MLOps 笔记
- 版本固定:下载即记录来源(官方/镜像)与数组 hash,避免三折与来源错乱;
- 许可随仓库走:代码与数据许可分离;训练产物(含生成的 patch/掩码)不得商用,再分发遵循 ShareAlike;
- 复现清单:固定 Python/库版本 + 三折组合 + 评测脚本版本 + 数据 hash,锁进 experiment tracking;
- 评测归口:一切对外数字以官方 PanNuke-metrics 生成 mPQ/bPQ 为准,避免多套自研指标冲突;
- 容器化:256×256 小图对显存友好,CI 冒烟可用 CPU 跑 1 折几 batch 验证管道再上 GPU。
一份可复制的复现记录骨架(建议写进 README):
data:
source: warwick-tia / hf-rationai # 二选一,勿混
folds: fold1+fold2+fold3
sha256: <images.npy / masks.npy 哈希>
split: official-3fold-split1 # 或 leave-one-tissue-out
eval: PanNuke-metrics@<commit> # 固定评测脚本版本
metrics: mPQ, bPQ (IoU=0.5)
env: python=3.11 torch=2.x cuda=...
有了这份骨架,任何复现歧义(来源、划分、指标、脚本版本)都能在几分钟内定位,避免「分数对不上」的无效争论。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解 |
|---|---|---|---|
| 类别不平衡 | Dead 占比极低 | 高 | 重加权 / 复制增强 / 用 mPQ 评估 |
| 组织不均衡 | 少见组织 patch 少 | 中-高 | 组织留出评测、多折平均 |
| 版本/口径混淆 | Part1 vs 扩展版 | 高 | 核对 shape,统一扩展版口径 |
| 染色/扫描批次 | TMA 色相 ≠ 临床 WSI | 中 | 染色归一 + 染色增强 |
| 标签歧义 | neoplastic vs epithelial | 中 | 上下文特征、不确定性、二次标注校准 |
| 选择偏差 | 有信息视野优先 | 中 | 论文已述,迁移到 WSI 需整片验证 |
§7.2 标注质量
标注为「半自动初标 + 多病理医师质控」,覆盖 19 组织、像素级实例掩码,整体质量在同类公开数据集中属于高标。局限在于:(1) 半自动流程在细小/粘连核处可能标错或漏标;(2) Dead 与部分上皮核的形态歧义引入标签噪声;(3) 官方未提供逐例标注者间一致性量化,用户难以量化标签不确定度。
质量复核建议:正式训练前应抽少量 patch 做目视质检(image 与掩码叠加),重点看:(a) 掩码是否贴核缘、有无漏标的中等核;(b) Dead 通道是否误标了碎裂的胞质边缘;© 6 通道在某一 patch 是否有前景核却被通道 5 背景掩盖。这能及早发现下载了错误口径/通道错乱的副本。
§7.3 泛化性表
| 场景 | 失效风险 | 证据/说明 |
|---|---|---|
| 未见组织(胆管/睾丸等) | 高 | patch 少的组织训练样本稀缺,冷启动泛化弱 |
| 不同染色/扫描批次 | 中-高 | H&E 色相差异显著 |
| 真实临床 WSI 全片 | 中 | TMA/patch 分布 ≠ 整片,需滑窗+归一 |
| 同组织不同病人 | 中 | 官方未做病人级隔离,泛化需自行验证 |
| 极高密度/重叠核 | 中 | 粘连分离是核分割经典难点 |
§7.4 伦理
PanNuke 使用 TCGA/GTEx 等已匿名化的公开组织切片,无患者识别信息随数据分发,降低了隐私泄露面。但使用者须遵守 CC BY-NC-SA 的非商用与署名条款,不得将细胞核形态学输出包装成确定性临床诊断;任何面向临床的部署需额外伦理审查与监管审批。
需特别说明的伦理边界有三:(1) 数据来自组织库,不能据此推断病例的临床轨迹或诊断结论;(2) 细胞核计数/分型不能作为筛查或确诊的独立依据;(3) 若有第三方派生数据或模型上线,须保留原始署名并维持相同许可传播,避免「抹掉出处」的搭便车。科研诚信层面,发表时按官方要求同时引用 ECDP 2019 与扩展版论文。
§7.5 公平性
PanNuke 未提供人口学属性,无法对年龄/性别/种族做公平性子组分析;组织覆盖偏向大癌种也意味着少癌种场景的模型可能系统性偏差。建议使用者在自有数据上补做人口/疾病亚组评估,勿假定跨群体公平。
从公平性角度给四条实务建议:
- 组织维度公平:报告模型在 19 组织各自的 mPQ,而不是只看总平均——总平均会把少见组织的差表现隐藏在大癌种之后;
- 类别维度公平:单独报告 Dead / Epithelial 等易错类的每类 PQ,防止「多数类表现好=整体好」的错觉;
- 放大倍率/来源维度:若混用不同镜像或染色版本,注明来源差异对结果的影响;
- 不可外推:缺乏人口学属性,故不得把结论外推到未代表的群体或地区,发布时应附此限制声明。
§7.6 数据漂移
病理染色工艺、扫描仪与 AI 复现生态随时间演进,PanNuke(2019-2020)patch 分布与今日临床实验室 H&E 存在漂移。训练模型若用于新染色/新扫描平台,应定期用染色批次统计(如 HED 通道分布)监测漂移并重归一或微调。
可操作的漂移检查:(1) 记录训练集各 H&E 通道均值/方差作基线;(2) 对新采集 patch 计算同样统计并与基线比对(用简单距离或分箱卡方);(3) 超过阈值就触发染色归一或追加该批次微调。因为 PanNuke 只含公开库 patch,真实临床扫描仪的曝光/伽马曲线往往不同,直接上线前做一次「代表性新染色小样本」的评测是低成本高收益的防线(呼应 §6.5 坑点 6)。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据为宽格式(每行一个样本/事件) | ✅ | 每 patch 一个记录,npy 按行对齐 image/mask/tissue |
| 2 | 有唯一标识符列 | ⚠️ | 官方数组无显式 ID;HF 镜像提供 sample_id;核实例 ID 需自行连通域生成 |
| 3 | 无 Unicode 或特殊字符 | ✅ | 纯数值 npy(uint8/int32),无自由文本 |
| 4 | 无重复行 | ✅ | patch 层无重复样本 |
| 5 | 缺失值已识别并编码 | ✅ | 背景通道 5=1、无核 patch 语义明确 |
| 6 | 标签列被明确标识 | ✅ | 5 类核型 + tissue 0-18 明确(channel order/types.npy) |
| 7 | 已对罕见类别(<3%)进行分组 | ⚠️ | Dead 等稀有类未做官方重采样/分组,需自行处理 |
| 8 | 偏倚评估已完成 | ✅ | §7.1 列出类别/组织/染色/标签 6 类偏倚 |
| 9 | 有完整的数据字典 | ✅ | 论文 Table + §4.1 字段字典 + HF schema |
| 10 | 对"信息性缺失"有明确编码解释 | ⚠️ | 背景/无核语义清楚,但边缘被裁核语义未系统文档化 |
| 11 | 数据采集设备和设置已记录 | ⚠️ | 记录 40×/0.25 µm 与 H&E,但未逐图记录扫描仪型号 |
| 12 | 已移除完全共线性变量 | ✅ | 图像任务无数值共线列(语义冗余由标注协议控制) |
| 13 | 对编码的映射标准已说明 | ✅ | class/tissue 整型到名称的映射明确 |
| 14 | 对时间戳的处理已明确说明 | ✅ | 无时间戳字段,不涉及时间处理 |
| 15 | 训练/验证/测试划分建议已给出 | ✅ | 官方三折 + 3 种组合(§5.1) |
| 16 | 数据泄漏风险已被讨论 | ⚠️ | 未提供切片级隔离,组织级泄漏风险需用户注意(§5.3) |
| 17 | 标签分布已被分析 | ✅ | §4.2 类别/组织不均衡已分析 |
| 18 | 选择性测量偏倚已被讨论 | ✅ | 论文讨论选择偏差;patch 从有信息视野选取 |
| 19 | 外部验证建议已给出 | ✅ | §5.5 MoNuSeg/CoNSeP/WSI 整片 |
| 20 | 数据更新和版本信息已记录 | ✅ | 2019 Part1 → 2020 扩展版 v1.0 |
| 21 | 最小必要预处理脚本已提供 | ⚠️ | 官方给评测脚本与 HoVer-Net 权重,无统一训练管道 |
| 22 | 合规使用要求已明确 | ✅ | CC BY-NC-SA 非商用 + 论文引用要求 |
| 23 | 多模态对齐方法已说明 | ✅ | 图像与 6 通道掩码天然同 patch 对齐 |
| 24 | 去标识化方法已被记录 | ✅ | 源为 TCGA/GTEx 匿名公开片,无患者标识 |
DAIMS 评分:16.0 / 24
评分解读:良好——作为计算病理社区基准,PanNuke 提供官方三折、评测脚本、类别/组织分布文档与明确许可,工程可用性高;扣分集中在「实例 ID 需自行生成、切片级隔离缺失、半自动标注噪声、无统一训练管道」等数据产品化层面的留白。
对你意味着什么:16 个 ✅ 项多来自其「挑战赛级」包装——三折划分、PanNuke-metrics、HoVer-Net 权重让复现几乎零摩擦,这是它能成为社区锚点的根基。真正要自己补的工程活是:① 读数据即做 6 通道→instance_map/type_map 转换并跨通道偏移 ID(坑点 2);② 若要严谨的跨组织结论,自行做组织留出/切片级划分(坑点 5);③ 稀有类 Dead 与标签歧义需重加权与不确定性处理(坑点 4/8);④ 商用/生产前务必重读 CC BY-NC-SA。这些不是「数据坏了」,而是开放科研数据的固有边界——处理好它们,PanNuke 就是一个高度可复现的细胞核基准。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| MoNuSeg 测试集 | TCGA(多器官) | 核分割迁移 | Dice/IoU | 通常下降 | PanNuke 训练模型可迁移到未见表,但泛化有损(见 §6.5 坑点) |
| CoNSeP(结直肠) | 华威 TIA | 核分割 + 分类迁移 | PQ/Dice | 视类别 | 细分类别差异大,需微调 |
| 真实 WSI 整片 | 自备临床片 | 整片平铺推理 | 视觉 + 计数 | — | 论文演示 patch 模型可上 WSI;量化验证取决于切片 |
§8 基准性能与生态
§8.1 排行榜
下表为 PapersWithCode / SOTA2 上围绕 PanNuke 的代表性自报结果。注意各论文协议(mPQ vs bPQ vs Dice、训练设定、后处理)不一,数值不可直接跨列比较,请以官方 PanNuke-metrics 的 mPQ 口径为准。
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 基准 | HoVer-Net | mPQ 约 0.50(官方基线) | 2019/2020 | H/V 距离图分离粘连核 + 分类 | Gamper et al., 2020, arXiv 2003.10778 | 官方权重可用 |
| — | LSP-DETR | 面向大图/重叠核,WSI 可扩展 | 2026 | 掩码 PQ 处理重叠、检测匹配 | RationAI/LSP-DETR(arXiv 2601.03163v1) | 公开 |
| — | PointNu-Net | 多组织分割+分类 SOTA 系 | 2024 | 检测-分割解耦 + JPFM | PointNu-Net, 2024(Semantic Scholar) | 公开 |
| — | NuLite | 轻量核分割+分类 | 2024 | Fast-ViT U-Net,低算力 | NuLite, 2024 | 公开 |
⚠️ 数值不可直接比较的原因:各工作对 mPQ/bPQ、mask IoU 匹配阈值、染色归一、是否按组织留出、训练 epoch/增强均不同;且 PapersWithCode 上存在同任务的多套自报分数。建议以官方三折 + 官方评测脚本复现的 mPQ 作为对表基准。
如何理性看待这些数字:PapersWithCode/SOTA2 的 PanNuke 条目很多,mPQ、bPQ、Neoplastic PQ、F1、Dice、IoU 混报,数字从 50 出头到 80+ 都有——跨度之大并非真的模型差距,而是指标口径 + 任务细分不同(实例分割 vs 语义分割 vs 分类 vs 检测)。引用任何「PanNuke SOTA」前先回答三个问题:
- 它的指标是 mPQ/bPQ(实例分割)还是 Dice/IoU(语义分割)还是 F1/AUC(分类)?
- 它在官方三折平均,还是单折、还是组织留出?
- 它是否用官方 PanNuke-metrics,还是自研脚本?
只有三点都对上,跨论文比较才有意义(详见 §8.3 与坑点 7)。
§8.2 SOTA 总结与选型建议
泛癌细胞核分割+分类的 SOTA 可归为三类:HoVer-Net 系(距离图分离粘连,仍是稳健基准)、两阶段实例分割(Mask R-CNN/PointNu-Net,检测-分割解耦,分类更可控)、面向 WSI/重叠核的可扩展检测(LSP-DETR 等,牺牲局部保显存与重叠建模)。选型建议:复现官方 → HoVer-Net;追求分类精度 → PointNu-Net 系;部署到大图低显存 → LSP-DETR/NuLite 系。
按任务的选型速查:
| 你的侧重点 | 首选架构 | 原因 |
|---|---|---|
| 与历史论文对表(社区可比) | HoVer-Net | 官方基线与权重,口径天然一致 |
| 把「检测 + 分类」解耦、分类更细控 | PointNu-Net / Mask R-CNN 两阶段 | 检测器先定位核,再做核型分类,分类分支更独立 |
| 显存紧张 / 大 WSI / 重叠核 | LSP-DETR / NuLite | 用检测框或轻量骨干,避免逐像素大图爆显存 |
| 追求最高 mPQ(实例分割质量) | 前沿 DETR/掩码类(需看最新排行榜) | 榜单头部常为 Transformer/检测系,但须核对其口径 |
一条务实忠告:泛癌核分割的「性能天花板」与「可复现性」常常打架——榜单最高的模型可能用了非官方后处理或自定义指标,复现成本高。如果你的目标是发表可靠结果,先在官方协议上把 HoVer-Net/DIST 这类透明基线做到位,比追逐一个口径不清的「SOTA」更有价值(呼应坑点 7)。
§8.3 评测协议
官方协议:mPQ = 逐正类算 PQ 后平均(IoU 阈值 0.5),bPQ = 所有核并为一类;主判据为跨组织平均 mPQ,使各组织等权、对类别不平衡不敏感。检测任务以核 centroid 为点、F1/P/R 报告。复现时必须克隆 PanNuke-metrics 并使用一致的 IoU/后处理,否则跨论文不可比(坑点 7)。
mPQ 的细节与为何这样设计:
- PQ 把分割质量(IoU≥0.5 的匹配)与识别质量(匹配率)合并为单一值,天然同时惩罚漏检与错检;
- 对每正类独立算 PQ 再平均 → 类别不平衡不会把少类稀释掉,因此 Dead 类即使核少,其每类 PQ 仍独立计入;
- IoU 阈值固定 0.5,对小核(如 Dead)很苛刻——核小意味着微小位移就可能使 IoU 掉到 0.5 以下,这就是各模型 Dead 类 PQ 都低的制度性原因;
- bPQ 把所有核并为一类,适合只关心「分割是否准」不看分类的评估。
若你的研究目标是分类精度而非分割,可另报宏观 F1/每类 PQ;若只做检测,报告 centroid 匹配的 F1。务必在论文中写清采用哪套,别让读者误以为 mPQ 与 Dice 同量纲可比。
§8.4 相关数据集表
| 数据集 | 场景 | 与 PanNuke 关系 |
|---|---|---|
| MoNuSeg / MoNuSAC | 多器官核分割/分类 | 互补迁移验证对象 |
| CoNSeP / Lizard | 结直肠核 | 单器官细分类参照 |
| NuCLS | 乳腺细胞 | 乳腺专属、更细语义 |
| NCT-CRC-HE-100K / PCam | 结直肠/乳腺块分类 | tile 级而非核级 |
| MIDOG | 有丝分裂检测 | 检测子任务不同 |
选择参考:做「泛癌通用核分析」选 PanNuke(19 组织、口径统一);做「跨库迁移验证」把 PanNuke 当源域、MoNuSeg/CoNSeP 当目标域;做「结直肠深度研究」可直接用 Lizard/CoNSeP(核更多、类更细);做「乳腺细胞精细化」选 NuCLS。它们共用 HoVer-Net 血缘(华威 TIA 生态),框架间迁移学习成本低。
§8.5 关键论文 Top 5
- Gamper J, Koohbanani NA, Benet K, Khuram A, Rajpoot N (2019), ECDP. “PanNuke: an open pan-cancer histology dataset for nuclei instance segmentation and classification.” — 数据集初版(481 视野),定义 19 组织 + 5 类核的标注范式。
- Gamper J, Koohbanani NA, Graham S, et al. (2020), arXiv 2003.10778. “PanNuke Dataset Extension, Insights and Baselines.” — 扩展版(7,901 图 / 三折),系统评测 DIST/Mask R-CNN/Micro-Net/HoVer-Net,发布评测协议与选择偏差分析。社区主引用入口。
- Graham S, Vu QD, Raza SEA, et al. (2019), Medical Image Analysis. “HoVer-Net: Simultaneous segmentation and classification of nuclei in multi-tissue histology images.” — 距离图分离粘连核的经典架构,PanNuke 官方最优基线。
- Koohbanani NA, Jahanifar M, Tajadin NZ, Rajpoot N (2020), Medical Image Analysis. “NuClick: A deep learning framework for interactive segmentation of microscopy images.” — 半自动交互标注工具,PanNuke 标注流水线关键一环。
- PointNu-Net(2024)与 NuLite(2024)等近年工作 — 面向跨组织泛化与轻量化部署的最新推进,展示 PanNuke 在冷启动与实时场景的持续价值。
§8.6 社区活跃度
| 维度 | 数据 |
|---|---|
| Google Scholar 引用(扩展版) | 368+(截至 2026-09) |
| HF 镜像下载 | RationAI/PanNuke 月下载约 1,071+(截至 2026 初,口径不一) |
| PapersWithCode | 有 PanNuke 页面与 Panoptic Segmentation 等多任务排行榜 |
| 生态采用 | Lizard/CoNSeP/NuClick/PointNu-Net/MIDOG 同属华威 TIA 计算病理生态 |
| 期刊地位 | 数字病理与计算病理主流基准之一 |
活跃度解读:PanNuke 的「活跃」更多体现在被当作基准/迁移源域被反复引用,而非数据本身高频更新(2019-2020 后不再出新版)。这种「常青基准」特征意味着:社区围绕它沉淀了大量基线权重、评测脚本与复现,但对想追最新标注协议的用户它已不是"进行中"的源。选择用它应基于「需要统一泛癌核基准」的需求,而非期待它持续演进。
§8.7 生态快照
| 资源 | 类型 | 链接 | 为什么值得关注 |
|---|---|---|---|
| TIA-Lab/PanNuke-metrics | 官方评测 | https://github.com/TIA-Lab/PanNuke-metrics | 官方 mPQ/bPQ 实现,复现基准 |
| 官方数据页 | 下载 | https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke | 权威源,三折 + HoVer-Net 权重 |
| RationAI/PanNuke | HF 镜像 | https://huggingface.co/datasets/RationAI/PanNuke | datasets 直载表格式 |
| MedOtter/PanNuke | HF 镜像 | https://huggingface.co/datasets/MedOtter/PanNuke | 含 inst_map/type_map 重构说明 |
| PapersWithCode PanNuke | 排行榜 | http://paperswithcode.com/dataset/pannuke | 社区 SOTA 对表 |
| pathml PanNukeDataModule | 工具库 | https://pathml.readthedocs.io | 6 通道掩码与三折 DataModule |
如何组合这些资源:最佳实践是「官方数据页取原始 .npy → TIA 评测脚本做指标 → pathml/PyTorch 做 DataModule → PapersWithCode 对表」,全链路都落在同一套 PanNuke 协议内。只有当官方下载受限时才退而用 HF 镜像(并在论文中注明来源)。Meta-Album PNU 是它重排成的分类 meta 任务,与原生分割任务不同,切勿当成分割基准的数据来源。
§8.8 术语与指标速查
| 术语/缩写 | 含义 |
|---|---|
| patch | 从 WSI/TMA 切出的 256×256 小块(PanNuke 样本单位) |
| TMA(组织微阵列) | 多病例组织芯排列在单张玻片上的高通量格式 |
| instance mask | 像素级、每核独立编号的掩码 |
| type_map / semantic | 逐像素 5 类核 + 背景的语义图 |
| mPQ / bPQ | 多类/二值 Panoptic Quality(IoU 0.5) |
| NuClick | 交互式点击分割工具(PanNuke 标注用) |
| HoVer-Net | 距离图分离粘连核的分割+分类网络 |
| fold | PanNuke 三折之一(Fold 1/2/3) |
| leave-one-tissue-out | 留一组织法,评测跨组织泛化的划分方式 |
§9 相关资源与引用
官方资源
- 数据集主页/下载(Warwick TIA):https://warwick.ac.uk/fac/cross_fac/tia/data/pannuke
- 扩展版论文:https://arxiv.org/abs/2003.10778
- 初版论文(ECDP 2019):European Congress on Digital Pathology, pp. 11-19
- 官方评测脚本:https://github.com/TIA-Lab/PanNuke-metrics
- HF 镜像(RationAI):https://huggingface.co/datasets/RationAI/PanNuke
- HF 镜像(MedOtter):https://huggingface.co/datasets/MedOtter/PanNuke
- Kaggle Part 1 镜像:https://www.kaggle.com/datasets/andrewmvd/cancer-inst-segmentation-and-classification
- Meta-Album PNU:https://meta-album.github.io/datasets/PNU.html
- 许可证:Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
官方资源使用说明:官方数据页以独立链接提供 Fold1/2/3 三个 .npy 压缩包与 HoVer-Net 预训练权重,下载无需账号。文件内通常含 by-nc-sa 许可说明与 README。发布衍生研究前请通读这两份文件,确认许可、引用与署名义务;若需批量自动化下载或镜像,先确认不违反非商用与分享条款。当官方数据不可达时,优先使用标注了原始来源的社区镜像,并在论文方法区写明「数据取自 Warwick TIA / 镜像 X」,保证可复现。
延伸阅读建议:入门先读扩展版论文 Abstract + §2/§3(规模与统计)、再读其 baselines 表格理解 mPQ 量级;实现前看 TIA 评测脚本与 HF schema;做泛化实验读论文关于 selection bias 与跨组织的讨论。要快速看一张 patch 长什么样,PapersWithCode 页面与 HF dataset viewer 都有示例图。
BibTeX 引用(两篇论文,官方要求)
% 1) 扩展版(社区主引用,arXiv 2003.10778)
@article{gamper2020pannuke,
title={PanNuke Dataset Extension, Insights and Baselines},
author={Gamper, Jevgenij and Koohbanani, Navid Alemi and Graham, Simon
and Jahanifar, Mostafa and Khurram, Syed Ali and Azam, Ayesha
and Hewitt, Katherine and Rajpoot, Nasir},
journal={arXiv preprint arXiv:2003.10778},
year={2020}
}
% 2) 初版(ECDP 2019)
@inproceedings{gamper2019pannuke,
title={PanNuke: an open pan-cancer histology dataset for nuclei
instance segmentation and classification},
author={Gamper, Jevgenij and Koohbanani, Navid Alemi and Benet, Ksenija
and Khuram, Ali and Rajpoot, Nasir},
booktitle={European Congress on Digital Pathology},
pages={11--19},
year={2019},
organization={Springer}
}
引用指南
发表使用 PanNuke 的研究时,官方要求引用上述两篇论文(至少扩展版)。若使用 HoVer-Net 需另引 Graham et al. 2019;使用 NuClick 标注思想可引 Koohbanani et al. 2020。数据再分发与派生须遵守 CC BY-NC-SA(署名 + 非商用 + 相同方式共享)。
不同用途该引哪篇:
- 常规评测/复现 → 引扩展版
gamper2020pannuke(三折、基线与协议都在这篇); - 介绍 PanNuke 概念与早期标注法 → 同时引
gamper2019pannuke; - 用 HoVer-Net 当骨干 → 追加 Graham et al. 2019(Medical Image Analysis);
- 引用标注工具/方法学 → 追加 Koohbanani et al. 2020(NuClick)。
投稿/发布前核对清单:
- [ ] images/masks/types 三者行数与来源(官方 vs 镜像)已记录并写入 README;
- [ ] 报告了所用折/划分(三折 split 序号或 leave-one-tissue-out);
- [ ] 指标由官方 PanNuke-metrics 生成(mPQ/bPQ,IoU 0.5),并注明若用了 bPQ-only/自研指标;
- [ ] Dead 等稀有类的每类 PQ/宏观 F1 已单独报告,避免被多数类掩盖;
- [ ] 声明了 CC BY-NC-SA(研究/非商用)与相应引用;
- [ ] 如需跨组织/跨染色结论,已声明划分与染色归一设置。
§10 AI 使用声明卡
§10.1 AI 模型使用
| AI 模型 | 版本 | 用途 |
|---|---|---|
| deep-model(WorkBuddy) | 2026-09 | 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建 |
| WebSearch(多源检索) | 2026-09-05 | 检索官方页面、镜像 schema、规模数字、引用数快照、SOTA 交叉验证 |
§10.2 AI 参与范围
AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。
AI 在本页面的工作中负责:(1) 从 Warwick 官方页面、arXiv 论文、Hugging Face 镜像 schema 与 PapersWithCode 排行榜整理结构化信息;(2) 生成 §6 的 Python/PyTorch 代码示例;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。
§10.3 输入来源
- Warwick TIA PanNuke 官方数据页(Fold 下载、三折组合、HoVer-Net 权重、CC BY-NC-SA)
- Gamper et al. (2020), arXiv 2003.10778 — 扩展版论文(规模、标注协议、选择偏差、基线 mPQ)
- Gamper et al. (2019), ECDP 11-19 — 初版论文(481 视野 / 205,343 核口径)
- PapersWithCode PanNuke 页与 Panoptic Segmentation 排行榜
- SOTA2 PanNuke 基准聚合页
- Hugging Face RationAI/PanNuke 镜像(image/instances/categories/tissue schema,833 MB,月下载)
- Hugging Face MedOtter/PanNuke 镜像(inst_map/type_map 重构、三折计数 2,656/2,523/2,722)
- GitHub openmedlab/Awesome-Medical-Dataset PanNuke 条目(目录结构、类别分布)
- GitHub rane-mahfoud/pancancer-nuclei-dashboard DATASET_SETUP(6 通道掩码语义、目录布局)
- GitHub sarah-antillia/ImageMask-Dataset-PanNuke 与 Tensorflow 实验(Kaggle 205,343 口径、6 通道确认)
- Meta-Album PNU(7,753/19 类、许可证、BibTeX)
- Sciencedirect systematic review(H&E 核分割综述中的 PanNuke 数字交叉验证)
- BMC Medical Imaging(BayesNuSeg,PanNuke 获取与去标识化声明)
- Google Scholar 引用快照(扩展版被引 368,截至 2026-09)
- PanNuke-metrics 官方仓库(评测协议)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(19 组织 ICD-11/SNOMED 映射、核型临床意义、金标准) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据集规格(7,901/189,744/三折、版本矩阵) | 千方病案医学编辑部 | 与 arXiv 论文及 HF 镜像交叉比对 | ✅ 已验证 |
| §4 数据结构(6 通道掩码、instance ID、DAIMS 字段字典) | 千方病案医学编辑部 | 与官方 schema 交叉比对 | ✅ 已验证 |
| §5 数据划分策略 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §6 代码示例与坑点 | 千方病案医学编辑部 | 逻辑审查 + 与论文/镜像说明比对 | ✅ 已通过 |
| §7 质量评估与 DAIMS 评分 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 排行榜与引用数表述 | 千方病案医学编辑部 | 与原文及 Scholar 快照交叉比对 | ✅ 已验证 |
| §C JSON-LD @graph | 千方病案医学编辑部 | Schema v3.9 字段逐项校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.5 公平性评估、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。
§10.6 最后审核
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
