信息速览

Lizard(Lizard 核实例分割数据集)— 结肠 H&E 核分割分类基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | Lizard 多组织核实例分割数据集 |
| 英文全称 | Lizard: A Large-Scale Dataset for Colonic Nuclear Instance Segmentation and Classification |
| 别名/简称 | Lizard Dataset、CoNIC 底层数据集、Lizard(Graham et al., 2021) |
| 疾病分类 | ICD-11 2B32 结直肠癌;DD72 溃疡性结肠炎;DD71 克罗恩病(覆盖正常、炎症、异型增生与癌变结肠组织) |
| SNOMED CT | 363406005(结肠恶性肿瘤);64766004(溃疡性结肠炎);34000004(克罗恩病);34402009(结肠解剖结构) |
| 数据模态 | H&E 染色病理图像 + 像素级核实例分割掩码与 6 类核型标签 |
| AI 任务类型 | 核实例分割、核型分类、细胞构成计数回归 |
| 样本总数 | 495,179 个核实例;CoNIC patch 版 4,981 个 256×256 patch(431,913 个公开训练核) |
| 数据大小 | CoNIC patch 版约 700 MB(HuggingFace 镜像,截至 2026-09) |
| 数据格式 | 原始版 PNG + MAT;CoNIC patch 版 NPY + CSV |
| 许可证 | CC BY-NC-SA 4.0 |
| 访问级别 | 开放(官方页直接下载;CoNIC 测试集需注册后经平台评测) |
| DUO 标签 | NCU(非商业使用) |
| 语言 | 不适用(图像数据;标注类别名为英文术语) |
| 首发日期 | 2021-08-25(arXiv v1);2021-10(ICCVW 正式发表) |
| 最后更新 | 2021-11-20(CoNIC 挑战赛 patch 级训练数据发布);2024(CoNIC 正式论文发表于 Medical Image Analysis) |
| 发布机构 | 英国华威大学 Tissue Image Analytics 中心 + University Hospitals Coventry and Warwickshire NHS Trust 等 |
| 官方主页 | warwick.ac.uk/lizard-dataset |
| 下载地址 | 官方页、CoNIC Data、Kaggle 镜像 |
| DOI | 10.1109/ICCVW54120.2021.00082 |
| 引用次数 | 243+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方提供挑战赛训练发布与 HoVer-Net 基线代码,但原始版需自行处理 .mat 格式与无官方划分的自行切分 |
| 页面状态 | published |
§0 E-E-A-T 审核与免责
医学审核:[千方病案医学编辑部] 交叉审核:§2 医学背景(结直肠癌与炎症性肠病的 ICD-11/SNOMED CT 映射、核型分类的临床意义)、§7 偏倚分析。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Lizard 采用 CC BY-NC-SA 4.0 许可,仅限非商业研究使用,再分发须以相同方式共享;CoNIC 挑战赛数据同样附非商业 Creative Commons 许可。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? Lizard 是一个结肠病理「找细胞数细胞」的图像数据集:研究者把来自英国、中国、美国 16 个中心的 H&E 染色结肠组织显微图像,切成了一个个图像区域,并把里面每一个细胞核的轮廓一个像素一个像素地描了出来——总共约 49.5 万个细胞核,还标注了每个核属于哪一类(上皮、结缔、淋巴、浆细胞、中性粒、嗜酸粒 6 类)。它由英国华威大学与多家 NHS 病理科合作构建,2021 年随 ICCV Workshop 论文发布。
为什么重要? 病理医生看切片诊断癌症,很大程度上就是在数细胞、看细胞核形态。让 AI 学会这件事,需要海量像素级标注——但一个图像区域动辄上千个细胞核,纯人工描画根本不够用。Lizard 用「半自动预测 + 病理医师精修」的多阶段标注管线,把规模做到了此前同类公开数据集(如 CoNSeP 24,319 个核)的约 20 倍,是核级计算病理学模型的事实训练基准之一。
我能用它做什么? 训练或评测核实例分割与分类模型(如 HoVer-Net、StarDist、CellViT 系列);做肿瘤微环境定量分析(各类免疫细胞的空间分布与密度);做细胞构成回归(一张图里各类细胞各有多少个);或作为半自动标注工具的预标注模型。注意许可证为 CC BY-NC-SA 4.0,仅限非商业研究使用。
§1.1 摘要
Lizard(Graham et al., 2021)解决了计算病理学中「大规模标注与标注精度不可兼得」的矛盾:作者提出一条五阶段多级标注管线——先以 HoVer-Net 为基础做迭代式的分割分类再训练与推理,病理医师在环抽样精修不合格预测;再用 NuClick 基于点标注做边界细化;随后针对最难分的中性粒与嗜酸粒做迭代炎性核细分与类别精修;最后在代表性样本上做多位病理医师一致性定量分析。数据来自 6 个数据源(CoNSeP、DigestPath、CRAG、GlaS、PanNuke 及合作机构内部数据)共 16 个中心、3 个国家的结肠 H&E 图像区域,20× 物镜(约 0.5 µm/px)采集,产出 495,179 个带 6 类核型标签的核实例(论文)。原始发布为 PNG 图像 + MAT 标注(实例图、类别、边界框、计数);2021 年 11 月发布的 CoNIC 挑战赛将其重切为 4,981 个 256×256 patch 的 NPY 数组 + counts.csv,公开其中 431,913 个训练核,测试集 103,150 个核全程保密(CoNIC 论文)。
§1.2 战略价值
规模维度:核级监督数据的「量变引起质变」。 在 Lizard 之前,最大的带类别核分割公开集是 PanNuke 的 205,343 个核(多器官)与 NuCLS 的 222,396 个核(乳腺);Lizard 以 495,179 个单器官深度标注核跃居首位(论文 Table 1)。对数据饥渴的分割模型而言,这一规模让「从零训练」成为可能,也让过拟合到少数形态的风险显著下降。CoNIC 挑战赛进一步证明:在该规模上训练的模型,其特征能显著预测下游异型增生分级(F1 0.8739)与疾病特异性生存(C-index 0.6554),说明技术指标的提升可以传导为临床预测能力(CoNIC 正式版引用:Graham et al., Medical Image Analysis, 92:103047, 2024)。
标注方法维度:半自动管线的可复制范式。 Lizard 的核心贡献不只是数据本身,而是「CNN 预标注 → 病理医师在环精修 → NuClick 边界细化 → 一致性定量审计」的整套流程。它示范了如何在保证代表样本一致性的前提下把标注规模提升一个数量级,这一范式后来被多个大规模病理标注项目沿用。对数据集建设者而言,论文中的多病理医师一致性评估设计(对代表性样本而非全部数据)提供了大规模标注质检的成本参考。
评测协议维度:从「公开集刷分」到「保密测试 + Docker 提交」。 Lizard 通过 CoNIC 挑战赛确立了核分割领域的评测基础设施:训练数据公开、测试数据保密、Docker 容器提交、60 分钟时限、post-challenge 持续开放。这一协议把「在自切验证集上的分数」与「可信外部分数」区分开来,是后来多个病理挑战赛(如 MoNuSAC 后续、PathLM 系列)参照的对象。对使用者来说,这意味着存在一条明确的「可信度阶梯」:自建划分分数 < 按源 CV 分数 < CoNIC 平台分数。
§1.3 同类数据集横向对比
| 数据集 | 核实例数 | 器官/组织 | 带类别标注 | 模态 | 差异化 |
|---|---|---|---|---|---|
| Lizard | 495,179 | 结肠(16 中心) | ✅ 6 类 | H&E 图像区域(20×) | 规模最大、半自动+在环精修管线、边界经 NuClick 细化 |
| PanNuke | 205,343 | 19 类多器官 | ✅ 5 类 | H&E patch(256×256) | 覆盖广但单器官深度不及 Lizard |
| NuCLS | 222,396 | 乳腺 | ✅ 多类 | H&E ROI(TCGA) | 多层人工标注与一致性研究深入 |
| MoNuSAC | 46,909 | 多器官(TCGA) | ✅ 4 类 | H&E(多倍率) | 含 4 个倍率,强调泛化评测 |
| CoNSeP | 24,319 | 结肠 | ✅ 7 类 | H&E(40×) | HoVer-Net 原始数据,同为华威团队出品 |
| MoNuSeg | 21,623 | 多器官(TCGA) | ❌ 仅分割 | H&E(40×) | 经典分割基准,无类别 |
| CRAG | 不适用(腺体级标注,无核实例数) | 结肠 | ❌ 腺体分割 | H&E | 腺体分割与分级,Lizard 数据源之一 |
(前 6 行数字均出自 Lizard 论文 Table 1;千方病案医数集已收录 CoNSeP、CRAG、GlaS、PanNuke 条目。)
值得注意的是对比表中「规模」与「器官广度」的取舍:PanNuke 用 19 类器官换广度、单器官标注深度有限;Lizard 反其道而行,把单一器官做到近 50 万核,并配以最深的标注管线。两者在基准上互补——多器官预训练 + Lizard 精调/评测是当前社区最常用的组合,但必须处理两者间 112 个 patch 的子集重叠(见坑点 3)。
§1.4 版本时间轴
| 时间 | 版本/事件 | 内容与影响 |
|---|---|---|
| 2021-08-25 | Lizard v1(arXiv 2108.11195) | 论文首次公开,495,179 核,PNG + MAT 原始格式,官方页 warwick.ac.uk/lizard-dataset |
| 2021-10 | ICCVW 2021 正式发表 | ICCV Workshops(CDPath),pp. 684-693,DOI 10.1109/ICCVW54120.2021.00082 |
| 2021-11-20 | CoNIC 训练数据发布 | Lizard 重切为 4,981 个 256×256 patch(公开 431,913 训练核),NPY + CSV 格式,附 HoVer-Net 基线 |
| 2022-03 | CoNIC 决赛与 ISBI 2022 workshop | 103,150 核保密测试集评测,373 次提交,26/24 支队伍登上两任务榜单 |
| 2024 | CoNIC 正式版发表 | Medical Image Analysis, 92:103047:补充鲁棒性分析与下游临床验证(1,658 张 WSI) |
§1.5 典型应用场景
- 核实例分割与分类模型训练/基准评测:在统一的大规模结肠核数据上比较 HoVer-Net、StarDist、CellViT 等模型,mPQ/mPQ+ 指标可直接对标 CoNIC 榜单。
- 肿瘤微环境(TME)定量分析:用训练好的模型对结直肠癌 WSI 提取各类免疫细胞密度与空间特征,构建可解释的形态学生物标志物。
- 细胞构成回归:直接以 patch 级 6 类计数为目标训练回归模型(CoNIC Task 2),用于快速表型筛选。
- 半自动标注工具的预标注模型:以 Lizard 训练的分割模型作为 NuClick/QuickAnnotator 类工具的初始化,加速新标注项目。
- 病理基础模型的分辨率适配研究:Lizard 的 0.5 µm/px 与主流 0.25 µm/px 的差异使其成为研究分辨率迁移与重采样策略的标准测试床(CellViT++ 案例,见 §6.5 坑点 6)。
§2 医学背景
§2.1 ICD-11 编码表
Lizard 覆盖的结肠组织状态与其对应的 ICD-11(MMS)编码如下:
| 组织状态/标签 | ICD-11 编码 | ICD-11 中文名 |
|---|---|---|
| 正常结肠黏膜 | —(非疾病,无编码) | 正常解剖结构 |
| 溃疡性结肠炎相关炎症组织 | DD72 | 溃疡性结肠炎 |
| 克罗恩病相关炎症组织 | DD71 | 克罗恩病 |
| 结直肠异型增生(癌前病变) | 随 2B32 肿瘤章节管理 | 结直肠上皮异型增生 |
| 结直肠癌(腺癌为主) | 2B32 | 结直肠恶性肿瘤 |
§2.1b SNOMED CT 映射表
| 标签/概念 | ICD-11 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 结直肠癌 | 2B32 | 363406005 | Malignant tumor of colon(结肠恶性肿瘤) |
| 溃疡性结肠炎 | DD72 | 64766004 | Ulcerative colitis(溃疡性结肠炎) |
| 克罗恩病 | DD71 | 34000004 | Crohn’s disease(克罗恩病) |
| 结肠解剖部位 | — | 34402009 | Colon structure(结肠结构) |
§2.2 疾病简介与流行病学
Lizard 的样本覆盖结直肠癌(colorectal cancer,CRC)的完整形态学谱系:正常黏膜 → 炎症 → 异型增生 → 浸润性腺癌。结直肠癌是全球第三高发恶性肿瘤:据 GLOBOCAN 2020 统计,2020 年全球新发结直肠癌约 193 万例、死亡约 93.5 万例,位居恶性肿瘤发病第三位、死亡第二位(Sung et al., 2021, CA: A Cancer Journal of Clinicians)。炎症性肠病(溃疡性结肠炎与克罗恩病)是重要的癌前背景状态,长期病程患者的结直肠癌风险显著升高,因此「炎症—异型增生—癌变」的鉴别诊断正是结肠活检病理的核心日常工作,也是 Lizard 选择覆盖正常、炎症、异型增生与癌变四类状态的原因(论文)。
在显微镜下,这一谱系对应的核级形态变化包括:核增大与多形性(癌变)、核质比升高、染色质粗糙、核分裂象增多,以及炎症背景中中性粒/嗜酸粒/浆细胞浸润的比例变化。Lizard 的 6 类核型标签恰好量化了这些要素,使模型输出可以直接对接「肿瘤上皮占比 + 炎症细胞密度」这类临床解读逻辑。六类核的形态学特征与病理学意义如下:
| 核型(编码) | 形态学特征 | 病理学意义 |
|---|---|---|
| 上皮细胞(2) | 核较大、极性排列、可见核仁;癌变时多形性显著 | 肿瘤主体细胞;核异型性是分级核心依据 |
| 淋巴细胞(3) | 小而圆、染色质致密深染、胞质极少 | 通用免疫监视指标;肿瘤内浸润密度与预后相关 |
| 浆细胞(4) | 偏位核、染色质车轮状、核旁空晕 | 慢性炎症背景;IBD 活动度评估的组成部分 |
| 中性粒细胞(1) | 分叶核、核小而多叶 | 急性炎症标志;隐窝炎/隐窝脓肿的诊断要素 |
| 嗜酸性粒细胞(5) | 双叶核、胞质嗜酸性颗粒 | 过敏/寄生虫/药物性损伤及部分 IBD 亚型提示 |
| 结缔组织细胞(6) | 梭形或扁平核(成纤维/内皮/平滑肌合并) | 间质微环境构成;合并类设计见 CoNIC 论文 |
§2.3 临床任务定义
| 临床任务 | 输入 | 对应数据集能力 | 临床用途 |
|---|---|---|---|
| 结直肠病变筛查/检出 | 活检 H&E 切片 | 核分割 + 上皮/炎症细胞识别 | 辅助发现异型增生与癌变区域 |
| 肿瘤分级(Grade) | 手术/活检切片 | 核形态与腺体结构特征(核级为分级要素) | 结直肠癌组织学分级(低级别/高级别) |
| 炎症活动度评估 | IBD 活检切片 | 中性粒/嗜酸粒/浆细胞计数 | 炎症分级与疗效随访 |
| 肿瘤微环境表型 | 手术切除 WSI | 6 类核的密度与空间分布 | 免疫浸润表型、预后分层 |
| 预后预测 | TCGA WSI 队列 | 由核特征聚合的 slide 级特征 | 疾病特异性生存预测(CoNIC 下游验证 C-index 0.6554) |
§2.4 患者人群
Lizard 是图像区域级数据集,未随数据发布患者级元数据(年龄、性别、种族等均不可得),下表仅汇总可核实的来源信息:
| 维度 | 内容 |
|---|---|
| 来源机构 | University Hospitals Coventry and Warwickshire(英国);Histo Pathology Diagnostic Center、瑞金医院(上海);西京医院(西安);上海松江区中心医院;美国国家癌症研究所 NCI 等(Kaggle 镜像致谢列表) |
| 数据源数据集 | CoNSeP、DigestPath、CRAG、GlaS、PanNuke 及合作机构内部数据,共 6 个来源 |
| 中心数/国家 | 16 个中心,英国、中国、美国 3 个国家(CoNIC 论文 §2.1.1) |
| 组织类型 | 结肠 H&E 染色组织(活检与手术切除,覆盖正常、炎症、异型增生、癌变) |
| 采集时间 | 未逐例公开(各源数据集发表于 2015-2020 年间) |
| 年龄/性别/种族 | 未公开(图像区域级发布,不含人口学元数据) |
§2.5 临床价值
核级分析的直接临床价值在于「可解释」。与端到端 slide 级黑箱模型相比,先分割细胞核再分类统计的流程给出的是病理医生实际使用的语言——「高分化区上皮核规则、间质淋巴细胞丰富」。Lizard 论文明确将其定位为可解释形态学生物标志物的基础:核分割是核形态学特征提取的第一步,可用于下游癌症分级预测。CoNIC 正式版对这一主张给出了迄今最系统的验证:将榜单头部算法应用于 1,658 张 TCGA 全切片、提取 222 个形态特征后,模型特征对异型增生分级(平均 F1 0.8739)与疾病特异性生存(C-index 0.6554)均有显著预测力,且技术指标(PQ)的提升与临床预测能力显著相关(CoNIC 正式版)。
对模型开发者,这条验证链还有一层方法论含义:榜单分数的边际提升(如 mPQ+ 从 0.42 提到 0.46)在下游任务中转化为可测量的预测增益,说明「先在 Lizard/CoNIC 上刷高分割指标,再做下游建模」的研发路径是被证据支持的,而非指标游戏。
§2.6 金标准参考
| 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|
| 原始版无官方 train/test 划分;CoNIC 版公开 4,981 个训练 patch,103,150 个测试核保密 | HoVer-Net 半自动预标注 + 病理医师在环精修 + NuClick 边界细化;对代表性样本做多病理医师一致性审计 | 华威大学 TIA 团队 + 英国 3 家 NHS 病理科执业/资深病理医师 | 事实上的社区金标准:CoNIC 2022 挑战赛(373 次提交)与后续多数核分割论文以 Lizard 为主要训练/评测集 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 快速跑通训练、复现 CoNIC 基准 | CoNIC patch 版(4,981×256×256) | 约 700 MB | NPY 数组即取即用,附 counts.csv 与官方 HoVer-Net 基线,最省工程量 |
| 训练自由尺寸模型 / 做全图推理研究 | 官方原始版(PNG + MAT) | 未公开精确大小 | 保留原始图像区域尺寸(非固定 256×256),可自行定义切块与重叠策略 |
| 与 CoNIC 榜单直接对比 | CoNIC patch 版 + 平台提交 | 约 700 MB + Docker | 只有向 grand-challenge 平台提交才能拿到保密测试集分数 |
| 需要跨数据集联合训练 | 原始版 + 自查重叠 | 未公开 | Lizard 内含 PanNuke/GlaS/CRAG/CoNSeP/DigestPath 子集,必须按源去重防泄漏(见坑点 3) |
§3.1 模态详情
- 成像模态:H&E(苏木精-伊红)染色结肠组织切片的明场显微扫描图像,20× 物镜(约 0.5 µm/px 空间分辨率),RGB 三通道 8 位。该分辨率是 CoNIC 官方明确给出的采集标准(CoNIC 论文),约为常见基础模型训练分辨率 0.25 µm/px 的一半。
- 组织覆盖:结肠组织,涵盖正常黏膜、炎症(含 IBD 背景)、低/高级别异型增生与癌变四类状态,目的是让模型见过足够多样的结肠形态以提高泛化。
- 标注模态:像素级实例分割掩码(每个核一个整数 ID)+ 每实例 6 类核型标签 + 实例边界框 + 每图各类核计数。类别体系把内皮细胞、成纤维细胞与肌细胞合并为「结缔组织细胞」一类(CoNIC 论文明确说明)。
- 两条发布线:同一标注体系以两种物理形态发布——原始版保留图像区域的自然尺寸(PNG+MAT),CoNIC patch 版统一为 256×256 网格(NPY+CSV)。两者标签语义完全一致,可互为校验。
§3.2 按子集样本数
| 子集/数据源 | 规模 | 说明 |
|---|---|---|
| Lizard 全量 | 495,179 个核实例 | 6 个数据源、16 个中心、3 个国家(CoNIC 论文) |
| CoNIC 训练发布合计 | 431,913 个核(4,981 个 patch) | 含 DigestPath、CRAG、GlaS、CoNSeP、PanNuke 五个公开源 |
| — CRAG | 2,304 个 patch | 上海松江区中心医院来源(HF 镜像 source 字段统计) |
| — DigestPath | 1,799 个 patch | 西京医院来源 |
| — GlaS | 702 个 patch | 腺体分割挑战赛来源切片 |
| — PanNuke | 112 个 patch | 多器官数据集中的结肠子集 |
| — CoNSeP | 64 个 patch | 华威/UHCW 来源 |
| CoNIC 测试集 | 103,150 个核 | TCGA 63,266 核 + 内部结肠活检约 40,000 核(39,884),全程保密 |
(patch 源分布出自 HuggingFace MedOtter/CoNIC2022 数据卡对官方数据的重切统计;Lizard 论文报告为 6 个数据源,CoNIC 训练发布仅覆盖其中 5 个公开源。)
§3.3 数据格式
| 组成 | 原始版 | CoNIC patch 版 |
|---|---|---|
| 图像 | .png(图像区域,尺寸不一) | patches.npy:4981×256×256×3,uint8 |
| 实例分割标注 | .mat 中 inst_map(0=背景,1…N=核实例 ID) | labels.npy 通道 1:uint16 实例图 |
| 核型类别标注 | .mat 中 class/type_map(0-6 整数) | labels.npy 通道 2:uint16 类别图(0-6) |
| 附加标注 | .mat 中 inst_bbox(边界框)、nuc_counts(计数) | counts.csv:每 patch 6 类计数(中心 224×224 区域内) |
| 加载方式 | scipy.io.loadmat(MAT 格式) | numpy.load(mmap_mode 可选) |
§3.4 存储大小
官方原始版未公布精确压缩包大小;CoNIC patch 版镜像总大小约 700 MB(HF 镜像数据卡,截至 2026-09),其中 4,981 个 uint8 patch 数组与 4,981 个 uint16 标注数组在未压缩下理论上限约为 0.98 GB(4981×256×256×5 字节),镜像发布为压缩存储格式故实际约 700 MB。单卡训练无需解压全部数据,建议直接以 mmap 方式读取 NPY。
§3.5 标注方式
Lizard 采用半自动 + 人工在环的多阶段标注(非纯人工,非纯自动),五阶段流程为(论文 Fig.1):
- 迭代分割与分类:以公开数据训练 HoVer-Net,对目标图像推理产生初始实例掩码与类别;病理医师抽样标注困难区域,将精修结果并入训练集再训练,循环迭代。
- 边界精修:对分割边界不满意的核,使用 NuClick——以中心点标注驱动的分割网络——重描边界,再人工确认。
- 迭代炎性核细分:针对中性粒、嗜酸粒等易混炎性核,单独抽 patch 训练分类模型并迭代精修。
- 类别精修:对类别存疑的 patch 人工复核改标。
- 定量分析:对代表性样本组织多位病理医师独立标注,量化与发布标注的一致性。
各阶段的执行者、工具与产出对照:
| 阶段 | 核心执行者 | 关键工具 | 产出 |
|---|---|---|---|
| 迭代分割与分类 | CNN + 病理医师在环 | HoVer-Net(迭代再训练) | 全量实例掩码 + 类别初稿 |
| 边界精修 | CNN + 人工确认 | NuClick(点标注驱动) | 精修后的实例边界 |
| 炎性核细分 | CNN + 病理医师 | 专项分类模型(炎性子类) | 中性粒/嗜酸粒可靠标签 |
| 类别精修 | 病理医师 | 人工复核 | 最终 6 类标签 |
| 定量分析 | 多位病理医师 | 一致性统计 | 代表性样本 concordance 报告 |
§3.6 标注者资质与一致性
标注与审核由英国 3 家 NHS 信托(University Hospitals Coventry and Warwickshire、University Hospitals of Leicester、The Royal Wolverhampton)的病理科医师团队与华威大学 TIA 中心研究者共同完成(作者名单见论文),其中多位为具有独立签发报告资质的执业病理医师(David Snead、Ksenija Benes 等)。论文对「数十万核无法逐一多人标注」的矛盾给出了成本可行的答案:对代表性样本做多位病理医师独立标注,计算一致性统计量并据此评估发布标注的可接受性。需要强调:由于数据非完全人工标注,官方明确承认存在不可避免的标注噪声,但经与多位病理医师标注对比后判定误差水平可接受(CoNIC 正式版)。论文同时指出,对数十万级标注细胞做传统两两一致性(如逐核 Cohen’s kappa)在计算与组织上均不可行,其代表性抽样设计正是为绕开这一障碍——这也是引用 Lizard 做标注质量声明时应当复述的限定条件。
§3.7 采集周期
Lizard 于 2021 年 8 月随论文首次发布(arXiv v1 提交于 2021-08-25),2021 年 10 月正式见刊 ICCV Workshops;其组成数据集的原始切片采集时间未逐例公开,组成源数据集分别发表于 2015 年(GlaS)至 2020 年(PanNuke)之间。CoNIC patch 级重切块版本于 2021-11-20 随挑战赛训练数据发布。
§3.8 地域覆盖
图像来自 16 个中心、3 个国家(英国、中国、美国)——英国的 NHS 病理科(UHCW 等)贡献了内部队列与 CoNSeP,中国医院贡献了 CRAG(上海松江区中心医院)与 DigestPath 结肠部分(西京医院)及上海两个病理诊断中心,美国 NCI 与 TCGA 相关切片进入 PanNuke 等源(CoNIC 论文、Kaggle 致谢)。多中心、多染色协议是 Lizard 相对单中心数据集的核心泛化优势,同时也是需要显式建模的域偏移来源(见 §7.1)。
§3.9 设备规格
官方论文统一以「20× 物镜、约 0.5 µm/px」描述采集规格(CoNIC 论文对 patch 版再次确认),但未逐源公布扫描仪型号、切片厚度与染色试剂方案;由于数据聚合自 6 个来源,扫描设备与染色协议必然存在差异。使用者在做染色归一化或扫描域适配实验时应将「来源数据集」作为唯一可用的域标签(见 §4.2 source 字段)。
§3.10 深度溯源链
原始手术/活检标本(英国 NHS / 中国医院 / 美国 NCI,去标识化)
→ H&E 染色与切片(各源机构病理科)
→ 数字扫描(20×,约 0.5 µm/px)
→ 图像区域提取(ROIs/patches,分属 CoNSeP、DigestPath、CRAG、GlaS、PanNuke、内部队列)
→ HoVer-Net 半自动预标注(迭代再训练)
→ NuClick 边界精修 + 病理医师在环类别精修
→ 代表性样本多病理医师一致性审计
→ Lizard v1 发布(2021-08,PNG+MAT) → CoNIC patch 版(2021-11,NPY+CSV)
§4 数据结构
§4.0 目录树
lizard/ # data_root(自拟顶层目录)
├── Lizard/ # 官方原始版(PNG + MAT)
│ ├── Images/ # 结肠 H&E 图像区域,尺寸不一
│ │ ├── consep_1.png # 命名模式:{来源}_{序号}
│ │ ├── crag_1.png
│ │ └── ...
│ ├── Labels/ # 与图像同名的 .mat 标注
│ │ ├── consep_1.mat # 键:inst_map / class / inst_bbox / nuc_counts
│ │ ├── crag_1.mat
│ │ └── ...
│ └── README/说明文档 # 官方页随包提供的说明
└── CoNIC/ # CoNIC patch 版(挑战赛训练发布)
├── patches.npy # (4981, 256, 256, 3) uint8 RGB
├── labels.npy # (4981, 256, 256, 2) uint16:通道 1 实例图、通道 2 类别图
└── counts.csv # 每 patch 6 类核计数(中心 224×224 区域)
(原始版目录名与文件命名以官方压缩包实际结构为准;上表中 .mat 键名 inst_map、class 经社区加载代码与 CoNIC 论文双重印证。)
§4.1 DAIMS 字段字典
| 字段 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image_id | str | 原始版图像区域文件名({来源}_{序号}) | consep_1 | 分组划分、按源去重 | 无 | 无 | 任意文件名 |
| image | uint8 数组 | H&E RGB 图像(原始版尺寸不一;patch 版 256×256) | (256,256,3) | 模型输入 | 染色/扫描域差异 | 无 | 0-255 |
| inst_map | uint16/int32 数组 | 实例分割图:每个核一个唯一整数 ID,0=背景 | 值 0…N | 实例分割监督信号 | 半自动边界噪声(官方承认可接受) | 0=背景(结构性,非缺失) | 0 至单图核数 |
| class / class_map | int 数组 | 像素级类别图:1 中性粒、2 上皮、3 淋巴、4 浆、5 嗜酸粒、6 结缔 | 值 0-6 | 核型分类监督信号 | 类间混淆(上皮/淋巴/浆相似) | 0=背景像素(结构性) | 0-6 |
| inst_bbox | 数组 | 每个核实例的边界框坐标 | [x1,y1,x2,y2] | 检测头训练、裁剪加速 | 随实例掩码推导 | 无 | 图像坐标 |
| nuc_counts | int | 每图各类核计数(原始版 .mat 内) | 构成回归弱监督 | 依赖实例计数正确性 | 无 | ≥0 | |
| counts_*(6 列) | int(CSV) | patch 版中心 224×224 区域内各类核数,列序同类别编码 | count_neutrophil=3 | Task 2 回归目标 | 仅统计中心区域 | 无 | ≥0 |
| source / patch_info | str | patch 所属来源数据集与源图 token(镜像字段) | crag、consep_1-0000 | 域泛化实验、防泄漏去重 | 无 | 无 | crag/dpath/glas/pannuke/consep |
| patch_id | int | patch 版行索引(0-4,980),与 NPY 存储顺序一致 | 3,141 | 主键、与 counts.csv 对齐 | 无 | 无 | 0-4,980 |
§4.2 标签分布
CoNIC 公开训练发布(431,913 个核)的类别分布(CoNIC 论文):
| 类别(编码) | 核数 | 占比 | 相对上皮的频率 |
|---|---|---|---|
| 上皮细胞(2) | 210,372 | 约 48.7% | 1.0× |
| 淋巴细胞(3) | 92,238 | 约 21.4% | 0.44× |
| 结缔组织细胞(6) | 约 97,347 | 约 22.5% | 0.46× |
| 浆细胞(4) | 24,861 | 约 5.8% | 0.12× |
| 中性粒细胞(1) | 4,116 | 约 1.0% | 0.020× |
| 嗜酸性粒细胞(5) | 2,979 | 约 0.7% | 0.014× |
(结缔组织细胞数由总数 431,913 减其余五类推算; imbalance 约 71:1 的上皮/嗜酸粒比例是 §6.5 坑点 4 的直接证据。)
§4.3 关键统计
- 总量:495,179 个核实例(全量);431,913 个核 / 4,981 个 patch(CoNIC 公开训练发布)。
- patch 密度:公开训练发布平均每 patch 约 86.7 个核(431,913/4,981),高密度区域单 patch 可超过 200 个核。
- 分辨率:20× 物镜、约 0.5 µm/px;计数协议仅覆盖 patch 中心 224×224 区域。
- 边界重采样效应:官方说明——即使使用非重叠切块,当源图宽/高不被 256 整除时会在图像边界重采样补块,因此 patch 级核数统计会略高于原始图像级统计(CoNIC 论文)。
- 类别图与实例图严格对齐:class_map 中某像素为类别 c 当且仅当该像素属于某实例且该实例类别为 c;两通道像素一一对应,无多模态对齐问题。
§4.4 数据层级
数据源数据集(6 个:CoNSeP / DigestPath / CRAG / GlaS / PanNuke / 内部队列)
└── 中心(16 个,英/中/美)
└── 原始切片(WSI 级,未随集发布)
└── 图像区域(原始版发布单元,PNG+MAT)
└── 256×256 patch(CoNIC 版发布单元,可按 source 字段回溯)
└── 核实例(inst_map 整数 ID)
└── 像素(inst_map + class_map 双通道)
注意:患者 → 切片层级缺失。数据以图像区域发布,同源同切片的 patch 之间共享同一组织/患者背景,做划分时必须按「源图像/来源数据集」分组而不是按 patch 随机划分(见 §5.3)。
§4.5 缺失值与信息性缺失编码
Lizard 无传统意义上的 NA 缺失;需要理解的编码约定如下:
| 字段 | 取值 | 含义 | 使用建议 |
|---|---|---|---|
| inst_map | 0 | 背景像素(非细胞核) | 计算实例数时排除;损失计算时作为背景类 |
| class_map | 0 | 背景像素 | 与实例图 0 一致;不要误当作「第 0 类核」 |
| counts_* | 0 | 该 patch 中心区域内该类核数为 0 | 真实零计数,不是缺失;回归任务保留 |
| source | 五个枚举值 | 来源数据集 | 域标签;划分与去重的依据 |
§4.6 使用前完整性自检清单
拿到数据后先跑一遍以下校验,可在训练前暴露绝大多数工程问题:
import numpy as np, pandas as pd
# 目录预期:{data_root}/CoNIC/{patches.npy, labels.npy, counts.csv}
patches = np.load("/data/lizard/CoNIC/patches.npy", mmap_mode="r")
labels = np.load("/data/lizard/CoNIC/labels.npy", mmap_mode="r")
counts = pd.read_csv("/data/lizard/CoNIC/counts.csv")
assert patches.shape == (4981, 256, 256, 3), "图像数组形状异常"
assert labels.shape == (4981, 256, 256, 2), "标注数组形状异常"
assert len(counts) == 4981, "计数表行数与 patch 数不一致"
# 校验 1:实例图与类别图对齐——任一实例 ID 的像素类别应唯一
pid = 0
inst, cls = labels[pid, :, :, 0], labels[pid, :, :, 1]
for i in np.unique(inst)[1:]:
assert np.unique(cls[inst == i]).size == 1, f"实例 {i} 类别不唯一"
# 校验 2:实例数与计数表一致(注意仅统计中心 224×224 区域)
center = slice(16, 240) # 256 → 中心 224
n_cls = np.unique(cls[center, center])
assert n_cls.max() <= 6, "类别图中出现超出 0-6 的编码"
# 校验 3:类别编码顺序(1 中性 2 上皮 3 淋巴 4 浆 5 嗜酸 6 结缔)
assert sorted(np.unique(cls).tolist()) == sorted(set(np.unique(cls)) & set(range(7)))
print("完整性自检通过")
§5 划分与使用建议
§5.1 官方划分
原始 Lizard 未随集发布官方 train/val/test 划分。CoNIC 挑战赛给出了一个隐式划分:公开 4,981 个训练 patch(431,913 核)→ 初步测试约 25,000 核(单一 TCGA 中心)→ 决赛 103,150 核(TCGA 63,266 核 + 内部结肠活检约 40,000 核),测试数据全程保密、仅能以 Docker 容器提交评测(CoNIC 论文)。训练发布中 TCGA 数据为零,测试集是严格外部集。
§5.2 社区惯例划分
- 按源 5 折交叉验证:「Keep it accurate and robust」(CSBJ 2024)将 Lizard 按五个来源数据集切成 5 折做交叉验证,报告 3 折均值与标准差,是当前论文报告 Lizard 分数的常见协议(CSBJ 论文)。
- 固定比例随机划分:部分工作直接按 7:1:2 或 8:1:1 在 patch 级随机划分——这不推荐,原因见 §5.3。
- CoNIC patch 版单训练集 + 外部验证:以公开 4,981 patch 训练,用 CoNSeP/内部数据或自己团队数据做外部验证,模拟真实部署场景。
§5.3 泄漏风险(重点)
- patch 级随机划分 = 同源同切片泄漏:同一图像区域切出的相邻 patch 共享同一组织背景、同一染色域甚至同一患者;随机划分会让验证集几乎只是训练集的平移版本,mPQ 虚高。必须按源图像(image_id/patch_info 的来源 token)分组划分。
- 跨数据集子集重叠:Lizard 内嵌 PanNuke(112 patch)、GlaS(702)、CRAG(2,304)、DigestPath(1,799)、CoNSeP(64)的图像;若你的预训练或评测用到这些数据集本体,必须按 source 字段去重。CellViT++ 团队在 Lizard 评测时显式移除了 PanNuke 子集,理由正是其分割模型预训练用过 PanNuke(CellViT++ 论文)。
- CoNIC 测试集不可反向拟合:初步测试集来自单一 TCGA 中心,在预提交阶段反复调参会对该中心过拟合;决赛测试集已特意加入初步阶段未见的 TCGA 中心(官方明示)。
§5.4 交叉验证建议
推荐「按源分组 5 折 CV」作为默认协议:以 source 为折键、以 image_id 为分组粒度,报告 5 折均值±标准差;如需与 CSBJ 2024 等论文直接对比,采用其 Fold 0 报告口径并注明。小类别(中性粒、嗜酸粒)应检查每折是否均有足够样本,必要时做按类分层。
§5.5 外部验证建议
按优先级推荐:① CoNIC 平台提交(唯一可复现的保密测试分数通道,post-challenge 提交持续开放);② MoNuSeg/MoNuSAC(多器官 TCGA,考验跨器官泛化,但注意类别体系需映射);③ 自建本院数据(同染色协议不同扫描仪,或反之);④ PanNuke 多器官联合训练 + Lizard 单器官测试的组合,检验器官特异性。
§5.6 按源分组划分示例代码
import numpy as np, pandas as pd
from sklearn.model_selection import GroupKFold
# 目录预期:{data_root}/CoNIC/counts.csv(patch 版主表)
counts = pd.read_csv("/data/lizard/CoNIC/counts.csv")
# 若使用 HF 镜像,可直接获得 source 列;官方 counts.csv 需自行从
# patch_info(如 consep_1-0000)解析来源 token 并映射到 source。
# 此处以 HF 镜像字段为基准:
# counts["source"] ∈ {crag, dpath, glas, pannuke, consep}
gkf = GroupKFold(n_splits=5)
X = np.arange(len(counts))
groups = counts["source"].values # 按来源数据集分组
for fold, (tr, va) in enumerate(gkf.split(X, groups=groups)):
print(f"Fold {fold}: train {len(tr)}, val {len(va)}, "
f"val sources={sorted(set(groups[va]))}")
# 实际训练时还应进一步按 patch_info 的源图 token 细分,
# 避免同源数据集内相邻 patch 泄漏。
§6 AI 就绪指南
§6.0 云端快速启动
无需本地下载即可开始:HuggingFace 镜像 MedOtter/CoNIC2022(约 700 MB)与 Kaggle 镜像 aadimator/lizard-dataset 均可在 Colab/Kaggle Notebook 内直接加载;Kaggle 平台可将该镜像挂载为数据源,避免上传耗时。官方原始版(PNG+MAT)从 warwick.ac.uk/lizard-dataset 下载后上传至云端对象存储或直接在 Kaggle 数据集中注册。
§6.1 快速上手
代码块使用前必读:以下代码假设
data_root目录结构为 §4.0 所示——{data_root}/CoNIC/patches.npy、{data_root}/CoNIC/labels.npy、{data_root}/CoNIC/counts.csv;data_root即数据集解压根目录,代码内部只做字符串拼接。最小可用子集:CoNIC patch 版(约 700 MB,无需申请、下载即用)。运行环境:Python ≥ 3.8,numpy、pandas、matplotlib。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data_root = "/data/lizard" # 按你的实际解压路径修改
# 读取三件套:图像数组、标注数组、计数表
patches = np.load(f"{data_root}/CoNIC/patches.npy", mmap_mode="r") # (4981,256,256,3) uint8
labels = np.load(f"{data_root}/CoNIC/labels.npy", mmap_mode="r") # (4981,256,256,2) uint16
counts = pd.read_csv(f"{data_root}/CoNIC/counts.csv") # 每行一个 patch
patch_id = 0
image = patches[patch_id] # RGB
inst_map = labels[patch_id, :, :, 0] # 通道 1:实例图,0=背景,1..N=核
class_map = labels[patch_id, :, :, 1] # 通道 2:类别图,0=背景,1-6=六类核
# 类别编码(务必记住,非 epithelial-first!):
# 1=Neutrophil 中性粒, 2=Epithelial 上皮, 3=Lymphocyte 淋巴,
# 4=Plasma 浆细胞, 5=Eosinophil 嗜酸粒, 6=Connective 结缔
row = counts.iloc[patch_id]
print(row) # count_neutrophil ... count_connective,仅统计中心 224×224 区域
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
axes[0].imshow(image); axes[0].set_title("H&E patch")
axes[1].imshow(inst_map, cmap="nipy_spectral"); axes[1].set_title("Instance map")
axes[2].imshow(class_map, cmap="tab10", vmin=0, vmax=6); axes[2].set_title("Class map")
plt.show()
若使用官方原始版(PNG + MAT),用以下最小脚本检查一张图的标注结构:
import scipy.io as sio
import matplotlib.pyplot as plt
# 目录预期:{data_root}/Lizard/Labels/consep_1.mat,与 Images/consep_1.png 配对
mat = sio.loadmat("/data/lizard/Lizard/Labels/consep_1.mat")
print("keys:", [k for k in mat if not k.startswith("__")])
inst_map = mat["inst_map"] # (H,W) 0=背景,1..N=实例 ID
class_map = mat["class"] # (H,W) 0=背景,1-6=核型类别
print("图像区域尺寸:", inst_map.shape, "实例数:", inst_map.max())
plt.subplot(1, 2, 1); plt.imshow(inst_map, cmap="nipy_spectral")
plt.subplot(1, 2, 2); plt.imshow(class_map, cmap="tab10", vmin=0, vmax=6)
plt.show()
§6.2 数据获取
| 渠道 | 内容 | 大小 | 获取流程 | 适用人群 |
|---|---|---|---|---|
| 官方页 | 原始版 PNG+MAT | 未公布 | 页面直接下载 | 需要自由尺寸/全图推理的研究者 |
| CoNIC Data | patch 版训练发布 | 约 700 MB | 注册 grand-challenge 账号并 Join 挑战后下载 | 参赛/对标榜单者 |
| HuggingFace 镜像 | patch 版(含 source 字段) | 约 700 MB | 直接下载(截至 2026-09 月下载 193 次) | 云端快速实验 |
| Kaggle 镜像 | 原始版 | 未公布 | Kaggle 账号直接挂载 | Kaggle 用户 |
| CoNIC 平台提交 | 保密测试集评测 | — | 注册 → Join → 按 Docker 模板提交 | 需要榜单分数者 |
# HuggingFace 镜像下载(推荐,含 source 字段便于去重)
pip install -U huggingface_hub
huggingface-cli download MedOtter/CoNIC2022 --repo-type dataset --local-dir /data/lizard/conic
§6.3 预处理全流程
格式转换 → 实例图拆解 → 类别合并 → 标准化 → 增强的完整管线:
import numpy as np
import scipy.io as sio
from scipy import ndimage
# ---- 步骤 1:读取原始版 .mat(若使用原始版) ----
# 目录预期:{data_root}/Lizard/Labels/consep_1.mat(与 Images/ 下同名 png 配对)
def load_lizard_mat(path):
mat = sio.loadmat(path) # scipy.io.loadmat 读取 MAT v5
inst_map = mat["inst_map"].astype(np.int32) # (H,W) 0=背景,1..N=实例 ID
cls_map = mat["class"].astype(np.int32) # (H,W) 0=背景,1-6=类别
return inst_map, cls_map
# ---- 步骤 2:把实例图拆成单核掩码与质心(用于检测/NuClick 类模型) ----
def extract_instances(inst_map):
inst_ids = np.unique(inst_map)
inst_ids = inst_ids[inst_ids > 0]
centroids = ndimage.center_of_mass(
np.ones_like(inst_map), inst_map, inst_ids)
return inst_ids, centroids
# ---- 步骤 3:染色归一化(推荐直接使用 staintools 或 torchstain 的 Macenko/Reinhard 实现) ----
# 关键纪律:归一化参数只在训练折内估计,再应用到验证/测试折,防止跨折信息泄漏。
# ---- 步骤 4:CoNIC patch 版标准化(uint8 → [0,1]) ----
def normalize_patch(img_u8):
return img_u8.astype(np.float32) / 255.0
# ---- 步骤 5:分辨率适配(0.5 µm/px → 0.25 µm/px,供 0.25 标准的预训练模型) ----
from PIL import Image
def upsample_to_025(img_u8): # Lanczos 上采样 2×
im = Image.fromarray(img_u8)
return np.array(im.resize((im.width * 2, im.height * 2), Image.LANCZOS))
# 注意:推理后须把预测掩码下采样回 0.5 µm/px 再计算指标(CellViT++ 协议)。
<details>
<summary>点击展开 Macenko 染色归一化最小实现(约 45 行)</summary>
import numpy as np
def macenko_normalize(img_u8, ref_ST=np.array([[0.5626, 0.2159],
[0.7201, 0.8012],
[0.4062, 0.5581]]),
ref_conc=np.array([1.9705, 1.0308]), beta=0.15, alpha=1):
"""Macenko 染色归一化最小实现。
ref_ST/ref_conc 为参考图估计的 stain matrix 与浓度(可在训练折上估计一次)。
注意:SVD 参数估计只在训练折内做,验证/测试折仅做浓度映射。
"""
img = img_u8.astype(np.float64) / 255.0 + 1e-6
OD = -np.log(img.reshape(-1, 3)) # 光密度
OD_hat = OD[OD.min(axis=1) > beta] # 剔除透明像素
cov = np.cov(OD_hat.T)
V, D = np.linalg.eigh(cov)
V = V[:, [2, 1]] # 前两个主成分
if V[0, 0] < 0: V[:, 0] *= -1
if V[0, 1] < 0: V[:, 1] *= -1
phi = np.arctan2(OD_hat @ V[:, 1], OD_hat @ V[:, 0])
phi_min, phi_max = np.percentile(phi, alpha), np.percentile(phi, 100 - alpha)
v1, v2 = V @ np.array([np.cos(phi_min), np.sin(phi_min)]), \
V @ np.array([np.cos(phi_max), np.sin(phi_max)])
ST = np.vstack([v1, v2]).T # 当前图 stain matrix
C = np.linalg.lstsq(ST, OD.T, rcond=None)[0] # 3×N 浓度
maxC = np.percentile(C, 99, axis=1, keepdims=True)
C_norm = C / maxC * ref_conc[:, None] # 浓度映射到参考
OD_norm = ref_ST @ C_norm
out = 255 * np.exp(-OD_norm.T.reshape(img_u8.shape))
return np.clip(out, 0, 255).astype(np.uint8)
</details>
§6.4 PyTorch DataLoader 完整代码
<details>
<summary>点击展开完整 Dataset + DataLoader 代码(约 70 行)</summary>
import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
LIZARD_CLASSES = {1: "neutrophil", 2: "epithelial", 3: "lymphocyte",
4: "plasma", 5: "eosinophil", 6: "connective"}
class LizardCoNICDataset(Dataset):
"""CoNIC patch 版数据集。
目录预期(data_root 拼接关系):
{data_root}/CoNIC/patches.npy (4981,256,256,3) uint8
{data_root}/CoNIC/labels.npy (4981,256,256,2) uint16
{data_root}/CoNIC/counts.csv
最小可用子集:全部 4,981 个 patch(约 700 MB,下载即用)。
"""
def __init__(self, data_root, split_indices=None, augment=False):
self.patches = np.load(f"{data_root}/CoNIC/patches.npy", mmap_mode="r")
self.labels = np.load(f"{data_root}/CoNIC/labels.npy", mmap_mode="r")
self.counts = pd.read_csv(f"{data_root}/CoNIC/counts.csv")
self.indices = np.array(split_indices) if split_indices is not None \
else np.arange(len(self.counts))
self.augment = augment
def __len__(self):
return len(self.indices)
def _augment(self, img, inst, cls):
# 等变增强:翻转/旋转必须同时作用于图像与两个标注通道
if self.augment and np.random.rand() < 0.5:
k = np.random.randint(0, 4) # 随机 90° 旋转 k 次
img, inst, cls = np.rot90(img, k).copy(), np.rot90(inst, k).copy(), np.rot90(cls, k).copy()
if self.augment and np.random.rand() < 0.5:
img, inst, cls = np.fliplr(img).copy(), np.fliplr(inst).copy(), np.fliplr(cls).copy()
return img, inst, cls
def __getitem__(self, i):
idx = self.indices[i]
img = self.patches[idx] # uint8 HWC
inst = self.labels[idx, :, :, 0].astype(np.int64)
cls = self.labels[idx, :, :, 1].astype(np.int64)
img, inst, cls = self._augment(img, inst, cls)
img = torch.from_numpy(img.copy()).permute(2, 0, 1).float() / 255.0
return {"image": img,
"inst_map": torch.from_numpy(inst.copy()),
"class_map": torch.from_numpy(cls.copy())}
# 按源分组划分示例(防泄漏,见 §5.3):此处以 patch_id 奇偶示意,
# 实际请以 source/patch_info 字段按源图像分组。
all_ids = np.arange(4981)
train_ds = LizardCoNICDataset("/data/lizard", split_indices=all_ids[:4500], augment=True)
val_ds = LizardCoNICDataset("/data/lizard", split_indices=all_ids[4500:], augment=False)
train_dl = DataLoader(train_ds, batch_size=16, shuffle=True, num_workers=8, pin_memory=True)
val_dl = DataLoader(val_ds, batch_size=16, shuffle=False, num_workers=4, pin_memory=True)
</details>
§6.5 坑点 8 个
⚠️ 坑点 1:类别编码顺序不是 epithelial-first(分类:标签理解)
问题:多数资料把上皮类放在第一位叙述,导致使用者默认 class_map 的 1 号是上皮;实际 Lizard/CoNIC 的整数编码为 1 中性粒、2 上皮、3 淋巴、4 浆细胞、5 嗜酸粒、6 结缔组织。编码错位会让下游核型统计整体张冠李戴,且训练损失照常下降、不易察觉。
症状:分类图可视化里「淋巴细胞」大片出现在肿瘤上皮区;per-class mPQ 中上皮类异常低、中性粒异常高。
解决:
- 简单方法:写死映射字典并在可视化时按官方颜色渲染(1 中性/2 上皮/3 淋巴/4 浆/5 嗜酸/6 结缔,0 背景),来源见 HuggingFace CoNIC2022 数据卡的 Semantic class encoding 表。
- 进阶方法:用 counts.csv 做一致性校验——对每个 patch 从 class_map 统计各类实例数,与 count_* 列比对,若整体错位会立刻暴露。
- SOTA 方法:在配置文件中集中管理类别映射与颜色表,任何脚本从配置读取,禁止硬编码。
参考:HuggingFace MedOtter/CoNIC2022 数据卡、StructGraph dataset.py
⚠️ 坑点 2:拿 40× 代码跑 20× 数据,预测全错(分类:预处理陷阱)
问题:HoVer-Net 官方主仓库(vqdang/hover_net)为 40× 数据(如 CoNSeP)设计,而 Lizard/CoNIC 为 20×(0.5 µm/px)。CoNIC 的推理代码在另一条分支上,不在主分支视野内。尺度不匹配下核的大小超出模型训练分布,输出接近随机。
症状:在 CoNSeP 上正常的预训练权重,到 Lizard patch 上推理出的实例图碎片化、计数与真值差一个量级;即「predictions will be garbage」。
解决:
- 简单方法:直接使用官方 CoNIC baseline:
TissueImageAnalytics/CoNIC仓库 docker-template 分支下的 conic_baseline 推理代码与预训练 HoVer-Net 权重。- 进阶方法:若必须用 40× 代码,将图像 2× 上采样至等效 0.25 µm/px 输入,输出掩码再下采样回 0.5 µm/px 评估(分辨率适配协议见坑点 6)。
- SOTA 方法:训练前把「目标 µm/px」写入实验配置并在数据管线出口做断言,任何模型-数据分辨率不匹配在启动时即报错。
参考:hover_net issue #219(维护者 vqdang 亲自确认 20×/40× 分支问题)
⚠️ 坑点 3:Lizard 内嵌五个公开数据集子集,跨基准评测必泄漏(分类:数据泄漏)
问题:Lizard 由 CRAG(2,304 patch)、DigestPath(1,799)、GlaS(702)、PanNuke(112)、CoNSeP(64)等源拼合而成;若你在 PanNuke 上预训练再到 Lizard 评测(或反之),112 个 PanNuke 源 patch 就是训练测试泄漏;把 Lizard 与其源数据集分别「独立」报告也是隐性双重计数。
症状:跨数据集迁移实验结果好得反常;CellViT++ 团队发现直接评测会高估,遂显式剔除。
解决:
- 简单方法:评测前按 source 字段 drop 对应行(如预训练用过 PanNuke 就删 pannuke 的 112 个 patch)。
- 进阶方法:构建统一登记表记录模型训练历史上见过的所有数据集,评测脚本自动检查交集并阻断。
- SOTA 方法:按源图像 token(patch_info 的 consep_1-0000 类前缀)做图级去重,甚至做染色纹理指纹(如 Macenko 亲和聚类)清理同切片变体。
参考:CellViT++(arXiv 2501.05269)中「removed the PanNuke samples of the Lizard dataset」的处理、HF CoNIC2022 数据卡 Cross-dataset overlap 警告
⚠️ 坑点 4:约 71:1 的类不平衡让稀有类「消失」(分类:偏倚陷阱)
问题:CoNIC 训练发布中上皮 210,372 个 vs 嗜酸粒 2,979 个(约 71:1),中性粒也只有 4,116 个。训练早期模型可能整类不预测;加权损失过度又会伤整体 PQ。官方 issue 区亦有案例:小 batch size 叠加不平衡导致某类完全不预测,加大 batch size 后缓解。
症状:训练日志里中性粒/嗜酸粒的 per-class PQ 长期为 0 或剧烈震荡;整体 mPQ+ 卡在 0.45 附近不动。
解决:
- 简单方法:加大 batch size(官方维护者建议)并延长训练;检查每 batch 是否采样到稀有类。
- 进阶方法:对稀有类使用 focal loss 或按类逆频率加权;对含稀有核的 patch 做过采样而非对核做复制。
- SOTA 方法:CoNIC 冠军方案验证了 copy-paste 增强(把稀有类实例贴进训练图)对稀有类显著有效;可配合类别感知采样器。
参考:hover_net issue #219、CoNIC 正式版对 copy-paste 增强的结论(Graham et al., Medical Image Analysis, 2024)
⚠️ 坑点 5:计数只在中心 224×224 区域,评测口径不齐(分类:评估误用)
问题:CoNIC 的 counts.csv 只统计 patch 中心 224×224 区域内的核(边界 16 像素环内的核被排除),而 patch 图像本身是 256×256。用全图 256×256 统计核数再去对齐计数标签,系统性偏高;把分割模型输出按全图聚合再去比 R² 也会吃亏。
症状:Task 2 的 R² 无论分割分支 mPQ 多高都上不去;自算计数与 counts.csv 恒差约一成。
解决:
- 简单方法:聚合计数前先把预测裁剪到中心 224×224(官方协议:核只要有任一部分落在中心区域内即计入)。
- 进阶方法:复用官方评测代码中的匹配逻辑,保证「部分可见核」的判定与官方一致。
- SOTA 方法:训练时就以中心区域损失为主、边界环为辅(多任务框架中的构成回归分支即按此设计)。
参考:CoNIC 论文 Data 节对 224×224 计数协议的定义
⚠️ 坑点 6:0.5 µm/px 与 0.25 µm/px 基础模型生态的分辨率鸿沟(分类:预处理陷阱)
问题:主流病理基础模型与预训练分割模型(CellViT 系列等)以 0.25 µm/px 为标准分辨率,Lizard 是 0.5 µm/px。直接把 0.5 的图喂给 0.25 模型产生显著分布偏移——CellViT++ 团队实测此前有过「直接应用导致性能显著退化」的记录。
症状:零样本/迁移实验分数远低于论文水平;分割掩码整体偏大或碎裂。
解决:
- 简单方法:Lanczos 滤波 2× 上采样到 0.25 µm/px 推理,再把预测掩码下采样回 0.5 µm/px 计算指标(CellViT++ 采用的协议)。
- 进阶方法:在训练管线中统一以 µm/px 为基准做重采样,屏蔽「物镜倍率」这个表面参数。
- SOTA 方法:训练时随机分辨率抖动(0.4-0.6 µm/px 等效范围)提升尺度鲁棒性,或采用尺度自适应编码器。
参考:CellViT++(arXiv 2501.05269)Lizard 分辨率泛化实验
⚠️ 坑点 7:mPQ 与 mPQ+ 两个指标混用,榜单分数不可直接互比(分类:评估误用)
问题:CoNIC 榜单排名用 mPQ+(逐 patch 计算再聚合的增强版多类全景质量),而部分论文(如 CellViT 系列)报告 mPQ(全数据集聚合版)。两者数值系统性不同(同模型 mPQ+ 通常高于 mPQ),跨口径比较会得出「A 比 B 强」的错误结论。
症状:把自己复现的 0.46 mPQ+ 与别人论文的 0.42 mPQ 比较,误以为自己已 SOTA;复现分数「对不上」原论文。
解决:
- 简单方法:读评测代码确认口径——mPQ+ 对每个 patch 计算后平均;标注自己报告的指标版本。
- 进阶方法:同时报告 mPQ 与 mPQ+ 两个口径(CSBJ 2024 论文即两者并报)。
- SOTA 方法:跟随 CoNIC 官方评测协议(Docker 提交、保密测试)获取唯一可比的数字;论文内跨模型比较一律自算同口径。
参考:CoNIC 正式版指标定义、CSBJ 2024 Table 3/5
⚠️ 坑点 8:patch 重采样的边界效应与同源泄漏叠加(分类:工程陷阱)
问题:官方说明——源图宽/高不被 256 整除时会在图像边界重采样补块,因此 patch 级核数高于图像级统计;同时相邻 patch 来自同一切片。若再叠加 patch 级随机划分,验证集与训练集共享同一切片甚至重叠视野,模型评估被系统性高估。
症状:验证 mPQ+ 0.55+ 而外部测试(CoNIC 平台)骤降到 0.42-0.46 档;边界 patch 的计数真值与人工复核不符。
解决:
- 简单方法:按 patch_info 的源图 token 分组划分(同源图 patch 只进一个子集)。
- 进阶方法:自切 patch 时丢弃与相邻块重叠超过阈值的边界补块,或在实例级按 IoU 去重。
- SOTA 方法:按「中心/患者(若可得)→ 切片 → patch」三层嵌套划分,并把 source 作为分层变量保证每折域分布一致。
参考:CoNIC 论文边界重采样说明、本文 §5.3
§6.6 数据增强
| 增强 | 安全性 | 说明 |
|---|---|---|
| 随机水平/垂直翻转、90° 旋转、转置 | ✅ 安全 | 必须同步作用于图像 + 实例图 + 类别图三个数组(等变增强) |
| 亮度/对比度/饱和度/Hue 抖动 | ✅ 安全 | 模拟染色差异;幅度克制(CSBJ 2024 实践) |
| 高斯/中值/运动模糊(每次仅选一种) | ✅ 安全 | 模拟扫描离焦;论文报告失真(distortion)类增强不稳定,建议排除 |
| 弹性形变 | ❌ 危险 | 破坏核边界与实例拓扑,标注不再对齐 |
| 灰度反转/负片 | ❌ 危险 | H&E 染色语义被破坏,核/基质颜色关系失真 |
| Copy-paste 稀有类实例 | ⚠️ 受控使用 | CoNIC 冠军方案验证对稀有类有效,但粘贴位置需避开无组织区域并做泊松融合 |
§6.7 模型推荐
| 模型 | 类型 | Lizard/CoNIC 表现 | 适用场景 | 代码 |
|---|---|---|---|---|
| HoVer-Net | 分割+分类经典基线 | mPQ+ 0.4893(3 折 CV);CoNIC 官方基线 | 快速基线、标注工具内核 | vqdang/hover_net |
| 多任务增强框架(SEResNeXt 集成) | 多任务分割 | mPQ+ 0.5599、R² 0.8437(同上口径) | 冲击 SOTA、构成回归 | CSBJ 2024 论文 |
| StarDist | 星凸多边形分割 | CoNIC mPQ+ 0.50132(冠军) | 高效推理、大尺度 WSI 全图处理 | stardist |
| CellViT / CellViT++ | 基础模型迁移 | mPQ 0.4980(SAM-H);跨分辨率适配协议成熟 | 标注稀缺场景的零样本/少样本 | TIO-IKIM/CellViT |
| Cerberus | 统一多任务 | bPQ 0.612(Lizard 3 折) | 一模型多任务(分割/分类/计数) | Medical Image Analysis 2023 |
| CGIS-CPF | 图像+上下文融合 | bPQ 0.660(Lizard 3 折,对比实验最高) | 上下文感知分割研究 | Zhong et al., 2023 |
§6.8 硬件需求
| 阶段 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| 数据加载/EDA | 8 GB 内存 | 32 GB 内存 | NPY mmap 模式 8 GB 可跑;全量载入约 2 GB 内存 |
| 训练(HoVer-Net 级) | 1× 11 GB GPU(RTX 2080 Ti 级) | 1× 24 GB GPU(3090/4090) | batch 8-16,50 epoch 内收敛 |
| 训练(集成/大 backbone) | 2× 24 GB GPU | 4× 24 GB GPU(3090 分布式,CSBJ 2024 即此配置) | batch 16、SEResNeXt101 集成 |
| 推理(256×256 patch) | 1× 8 GB GPU | 1× 11 GB GPU | CoNIC 决赛要求 60 分钟内处理全部测试 patch(含 CPU 优化空间) |
§6.9 评估指标代码
<details>
<summary>点击展开多类全景质量(mPQ/mPQ+)计算代码(约 45 行)</summary>
import numpy as np
def panoptic_quality(gt_inst, pred_inst, gt_cls, pred_cls, iou_thr=0.5):
"""单图多类 PQ。mPQ+ = 对每图计算后平均;mPQ = 全局聚合后计算。"""
scores = []
for c in range(1, 7): # 1-6 六类核
gt_ids = np.unique(gt_inst[(gt_cls == c)]) # 该类 GT 实例
gt_ids = gt_ids[gt_ids > 0]
pr_mask = (pred_cls == c)
pr_ids = np.unique(pred_inst[pr_mask])
pr_ids = pr_ids[pr_ids > 0]
if len(gt_ids) == 0 and len(pr_ids) == 0:
continue
ious = {}
for gi in gt_ids:
g = (gt_inst == gi)
inter = (pred_inst[pr_mask & g]).astype(np.int64)
inter = inter[inter > 0]
for pi in np.unique(inter):
union = np.logical_or(g, pred_inst == pi).sum()
ious[(gi, pi)] = inter[inter == pi].size / union
matched = {(g, p) for (g, p), v in ious.items() if v > iou_thr}
tp = len(matched)
fp = len(pr_ids) - len({p for _, p in matched})
fn = len(gt_ids) - len({g for g, _ in matched})
sq = sum(ious[m] for m in matched) / tp if tp else 0.0
dq = tp / (tp + 0.5 * fp + 0.5 * fn) if (tp + 0.5 * fp + 0.5 * fn) else 0.0
scores.append(dq * sq)
return float(np.mean(scores)) if scores else 0.0
# mPQ+:对每个 patch 计算 PQ 后取平均(CoNIC 榜单口径)
# mpq_plus = np.mean([panoptic_quality(...) for each patch])
</details>
除 mPQ 外,CoNIC Task 2 使用各类核计数的决定系数 R²(聚合全部 patch 计算);进行检测类评测时另有 bPQ(二类全景质量,不区分类别)。建议论文中并报 mPQ/mPQ+ 与 R²,并声明口径(见坑点 7)。
import numpy as np
def r2_score_counts(pred_counts, true_counts):
"""CoNIC Task 2 构成回归的 R²。
pred/true 形状均为 (N, 6),列序与类别编码一致:
1 中性粒、2 上皮、3 淋巴、4 浆、5 嗜酸粒、6 结缔。
注意:true_counts 必须只统计中心 224×224 区域(counts.csv 直接可用)。
"""
pred = np.asarray(pred_counts, dtype=np.float64)
true = np.asarray(true_counts, dtype=np.float64)
ss_res = ((true - pred) ** 2).sum()
ss_tot = ((true - true.mean(axis=0)) ** 2).sum()
return 1.0 - ss_res / ss_tot
§6.10 MLOps 笔记
- 数据版本:Lizard 无正式版本号,建议在数据登记表中记录「下载渠道 + 下载日期 + 校验和」,区分原始版与 CoNIC patch 版两条数据线。
- 实验配置:把类别映射、224×224 计数区域、mPQ 口径(+ 与否)、分辨率适配策略写进配置文件并随 checkpoint 归档——这四项是最容易复现失败的自由度。
- 评测隔离:评测代码与训练代码分离,mPQ 计算优先采用官方评测实现;任何自实现需先用官方训练发布做回归测试。
- 类别一致性:类别映射、颜色表、counts 列序三处必须同源(同一配置文件),任何一处手改都会复现坑点 1 的错位事故。
- 分辨率元数据:在数据卡中记录 0.5 µm/px 基准,所有重采样步骤显式换算并写入实验日志,避免 0.25/0.5 混用静默发生。
- 数据卡:生产部署前补一张内部数据卡,记录训练集来源构成(CRAG/DigestPath/GlaS/PanNuke/CoNSeP 比例)以便追溯域偏移。
- 提交通道:CoNIC post-challenge 提交(2022-07-15 起开放)持续可用,是唯一能拿到保密测试集分数的正式通道。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 类别不平衡 | 上皮/嗜酸粒约 71:1;中性粒、嗜酸粒合计不足 2% | 高 | 加大 batch、稀有类过采样、copy-paste 增强(见坑点 4) |
| 源域偏移 | 6 个来源的染色协议与扫描特性不同(如 CoNSeP 源 patch 仅 64 个) | 中高 | 按源分组划分;染色归一化;source 分层评估 |
| 半自动标注噪声 | 非完全人工标注,边界与类别存在不可避免噪声(官方承认并经一致性审计判定可接受) | 中 | 代表性样本一致性审计;训练中对边界像素降权 |
| 器官单一性 | 全部为结肠组织,跨器官泛化无保证(CoNIC 正式版明列为局限) | 高(对外推) | 与 PanNuke/MoNuSAC 联合训练;外部器官数据验证 |
| 测试域偏移 | CoNIC 测试集含 TCGA 中心,初步测试中心在训练中完全未现,外观差异明显 | 中 | 决赛集特意覆盖未见中心;提交前用 TCGA 子集自测 |
| 结缔类粗粒度 | 内皮、成纤维、肌细胞合并为一类,无法细分间质亚型(官方明示局限) | 中 | 需要间质细分时叠加免疫标记数据或其他数据集 |
§7.2 标注质量
官方对标注质量的主张建立在三重证据上:① 多阶段管线中每一阶段都有病理医师在环;② 对代表性样本组织多位病理医师独立标注,计算一致性统计(论文核心贡献之一),结论是大规模半自动标注与专家标注的误差水平可接受;③ CoNIC 正式版重申「由于数据非完全人工标注,噪声不可避免,但对比多位病理医师标注后认为误差水平可接受」(正式版)。边界质量的额外保障来自 NuClick 点标注细化步骤。需要保持清醒的是:逐核一致性的全局数字未随集发布,使用者在做极高精度需求(如核形态组学)时应对目标子集自行抽检。推荐的抽检流程:
| 抽检步骤 | 抽样方式 | 检查内容 | 通过标准(自定,供参考) |
|---|---|---|---|
| 1. 分层抽样 | 按 source × 类别分层,每层 ≥ 50 个核 | 边界贴合度(人工目测) | 边界明显错误 < 5% |
| 2. 类别抽检 | 重点抽中性粒/嗜酸粒/浆细胞 | 类别判定正确性 | 错分 < 8% |
| 3. 计数抽检 | 随机 50 个 patch | 自算实例数 vs counts.csv(中心区域) | 偏差 < 2% |
| 4. 稀有场景 | 高密度重叠区域 | 实例分离完整性 | 无大片黏连实例 |
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 结肠内跨中心(英↔中↔美) | 低-中:多源训练已覆盖,但单源内部小类(CoNSeP 64 patch)代表性弱 | 16 中心构成与 patch 分布(HF 数据卡) |
| 结肠 → 其他器官 | 高:官方将「仅结肠」列为 CoNIC 主要局限 | CoNIC 正式版 limitations |
| 20× → 40×/0.25 µm/px 数据 | 高:直接推理性能显著退化,须重采样适配 | CellViT++ 分辨率泛化实验 |
| TCGA 外部中心 | 中:外观与训练源明显不同,榜单决赛分普遍低于内部验证 | CoNIC 初步测试集设计(单 TCGA 中心) |
| IHC/荧光等其他染色 | 极高:数据仅为 H&E,染色语义不可迁移 | 模态定义 |
§7.4 伦理
数据由英国 NHS 信托与中国、美国合作机构的常规诊断切片经去标识化后聚合而成,组成源数据集(CoNSeP、GlaS、DigestPath、CRAG、PanNuke)各自在原始发表时已通过相应伦理审批;Lizard 发布物中不含任何患者标识或临床元数据。许可证为 CC BY-NC-SA 4.0,禁止商业使用,衍生数据须以相同许可共享。使用者在发表成果时应同时引用 Lizard 与其所用子集对应的源数据集论文。
§7.5 公平性
数据未公开人口学元数据,无法进行性别/种族分层的公平性审计——这本身是局限:若下游任务涉及人群差异化诊断,需在自有队列上补充验证。地域上英、中、美三国的覆盖有助于染色与设备多样性,但每个中心内部的患者构成未知。建议在部署前用本地人群数据做分亚组性能评估(如年龄、性别分组的关键指标差异 < 5%)。
§7.6 数据漂移
三点漂移风险值得纳入监控:① 扫描仪/染色协议漂移——新扫描仪或新染色批次的输入会偏离 6 源混合分布,建议以源分类器的置信度做域监测;② 标注管线漂移——半自动标注依赖的 HoVer-Net 版本变化会改变标注风格,跨批次合并数据时注意;③ 任务漂移——从 patch 级计数到 WSI 级聚合时,处理流程(切块重叠、聚合方式)本身构成分布变化。CoNIC 正式版的鲁棒性分析(对输入变化的敏感性测试)是设计这些监控项的直接参考。
对应的工程化监控建议:在生产管线中维护一个「域指纹」仪表盘,逐批记录输入 patch 的平均光密度、核密度估计(个/1000 像素)与六类构成比例,任一指标偏离训练发布分布(可用 §4.2 表为基准)超过预设阈值时触发人工复核。核密度骤降常见于扫描失焦或组织过白,构成比例突变则往往意味着新染色协议或新器官误入管线。
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式数据 | ✅ | patch 表 + counts.csv 即宽格式;每行一个 patch |
| 2 | 唯一标识 | ✅ | patch_id(0-4,980)与 inst_map 整数 ID 双层主键 |
| 3 | 特殊字符处理 | ✅ | 图像/掩码为纯数组;文件名仅字母数字与下划线 |
| 4 | 重复行 | ⚠️ | 边界重采样使补块与源图内容部分重叠,patch 级存在受控的近重复 |
| 5 | 缺失编码 | ✅ | 0=背景为结构性编码,无 NA;计数零值为真实零 |
| 6 | 标签标识 | ✅ | class_map 像素级标签 + counts.csv 表级标签,编码官方明示 |
| 7 | 罕见类分组 | ⚠️ | 中性粒 4,116、嗜酸粒 2,979 过少,且结缔类为三种细胞的合并类 |
| 8 | 偏倚评估 | ✅ | 类不平衡、源域偏移、半自动噪声均有官方或第三方量化讨论 |
| 9 | 数据字典 | ✅ | .mat 键与 patch 版字段均有官方/社区文档双重印证 |
| 10 | 信息性缺失解释 | ✅ | 无信息性缺失场景;0 的两种含义已在 §4.5 说明 |
| 11 | 设备记录 | ⚠️ | 仅给出统一 20×/0.5 µm/px 规格,未逐源公布扫描仪型号 |
| 12 | 共线性 | ✅ | 不适用(图像模态),特征级共线性由下游建模自检 |
| 13 | 编码映射 | ✅ | 1-6 类别映射在论文、数据卡、社区代码三处一致 |
| 14 | 时间戳处理 | ✅ | 不适用(静态图像集);发布时间线见 §1.4 |
| 15 | 划分建议 | ✅ | 官方挑战赛划分 + 社区按源 5 折 CV 协议明确 |
| 16 | 泄漏讨论 | ✅ | 边界重采样、跨数据集子集重叠等泄漏路径均有公开讨论与处理先例 |
| 17 | 标签分布 | ✅ | 431,913 核的 6 类分布官方公布(§4.2) |
| 18 | 测量偏倚 | ✅ | 半自动标注的 CNN 预标注偏倚被官方显式承认并审计 |
| 19 | 外部验证建议 | ✅ | CoNIC 平台提交 + MoNuSeg/MoNuSAC 映射方案(§5.5) |
| 20 | 版本记录 | ⚠️ | 无正式版本号,仅有两条发布时间线(原始版/CoNIC 版) |
| 21 | 预处理脚本 | ✅ | 官方 CoNIC baseline(HoVer-Net 训练/推理)、patch 抽取脚本开源 |
| 22 | 合规要求 | ✅ | CC BY-NC-SA 4.0 明确;无注册门槛,合规成本低 |
| 23 | 多模态对齐 | ✅ | 实例图/类别图/计数同源同尺寸,像素级对齐无误差 |
| 24 | 去标识化 | ✅ | 图像区域发布,无患者标识与临床元数据 |
DAIMS 评分:19.5 / 24(✅ ×18 = 18 分,⚠️ ×3 = 1.5 分;无 ❌)
评分解读:19.5/24 属于「研究可用性优秀、生产细节待补」区间。数据字典、编码映射、泄漏讨论、对齐与去标识化五项全部达标,说明该数据集在 AI 训练直接可用性上是核分割领域最完善的公开资源之一;扣分集中在工程治理层面(近重复、设备元数据缺失、无正式版本号),这些不影响学术基准使用,但会在多团队长期协作的生产化场景中制造摩擦。
对你意味着什么:如果你要做核分割/分类研究,可以直接采用按源 5 折 CV 协议开跑,无需等待任何治理修复;如果你要把它纳入长期生产的数据资产,则需要补三件事——按 HF 镜像 source 字段建立去重登记、自行记录每个源的扫描仪元数据(从源数据集论文回溯)、用内部命名体系给两条数据线打版本号。如果你做的是临床部署前验证,重点看 §7.3:结肠外器官场景基本失效,必须重建训练数据。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| CoNIC 保密测试集(TCGA + 内部活检,103,150 核) | TCGA 多中心 + UHCW 内部 | 分割分类 / 构成回归 | mPQ+ 0.50132(冠军)/ R² 0.76413 | 低于 Lizard 内部 3 折最优 mPQ+ 0.5599 | 严格外部域下性能普遍下降约 0.06-0.1 mPQ+,但排名稳定 |
| TCGA 1,658 张 WSI 下游分级 | TCGA | 异型增生分级 | F1 0.8739(最佳模型) | — | 核级特征可显著预测级别,技术指标与临床预测显著相关 |
| TCGA 1,658 张 WSI 生存分析 | TCGA | 疾病特异性生存 | C-index 0.6554(最佳模型) | — | 空间免疫特征与预后相关,验证 TME 表型价值 |
| CellViT++ 跨分辨率迁移(Lizard 0.5 µm/px) | 华威等 6 源 | 分割分类 | bPQ 0.536(重采样后零样本) | 低于在域训练的 bPQ 0.612-0.660 | 分辨率适配协议可大幅挽回性能但仍有差距 |
(各数字来源:CoNIC 正式版与 CSBJ 2024 论文,完整引用见 §8.1/§8.5。)
§8 基准性能与生态
§8.1 排行榜
CoNIC 2022 Task 1(分割+分类,保密测试集,mPQ+)Top 5:
| 排名 | 模型/队伍 | mPQ+ | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | EPFL StarDist | 0.50132 | 2022 | 星凸多边形实例分割 + 预训练 backbone | Weigert, M. & Schmidt, U. et al., 2022, ISBI Challenges(StarDist for Nuclei Instance Segmentation) | stardist |
| 2 | MDC Berlin IFP Bern | 0.47616 | 2022 | 集成 + 域鲁棒训练 | Graham et al., 2024, Medical Image Analysis 92:103047(榜单汇总) | 经挑战赛平台 |
| 3 | Pathology AI | 0.46310 | 2022 | SEResNeXt50/101 多任务集成 | Wang, W. & Zhang, J., 2022, arXiv 2203.03415(Keep It Accurate and Robust) | 随论文发布 |
| 4 | LSL000UD | 0.46278 | 2022 | HoVer-Net 变体 | Graham et al., 2024, Medical Image Analysis 92:103047 | 经挑战赛平台 |
| 5 | AI_medical | 0.45759 | 2022 | 多模型集成 | Graham et al., 2024, Medical Image Analysis 92:103047 | 经挑战赛平台 |
CoNIC 2022 Task 2(细胞构成回归,R²)Top 5:
| 排名 | 模型/队伍 | R² | 年份 | 关键技术 | 完整引用 |
|---|---|---|---|---|---|
| 1 | Pathology AI | 0.76413 | 2022 | SEResNeXt 多任务 + 双层集成 | Wang, W. & Zhang, J., 2022, arXiv 2203.03415 |
| 2 | AI_medical | 0.71589 | 2022 | 多模型集成 | Graham et al., 2024, Medical Image Analysis 92:103047 |
| 3 | LSL000UD | 0.70325 | 2022 | HoVer-Net 变体 | Graham et al., 2024, Medical Image Analysis 92:103047 |
| 4 | Arontier | 0.69145 | 2022 | 集成回归 | Graham et al., 2024, Medical Image Analysis 92:103047 |
| 5 | MBZUAI_CoNiC | 0.67440 | 2022 | 多分支网络 | Graham et al., 2024, Medical Image Analysis 92:103047 |
⚠️ 数值不可直接比较的原因:① 测试集保密且仅可经平台提交获得,个人复现分数(如 Lizard 3 折 CV 的 mPQ+ 0.5599)与榜单分数(mPQ+ 0.50132)来自不同数据分布与口径,不可互比;② 榜单允许集成与 TTA,单模型复训结果系统性偏低;③ 决赛要求 60 分钟内处理全部测试 patch,部分队伍为此牺牲精度。
§8.2 SOTA 总结与选型建议
在 Lizard 自身的 3 折按源 CV 口径下,公开报告的最优单框架结果是 CSBJ 2024 多任务框架(mPQ+ 0.5599、R² 0.8437),显著超过 HoVer-Net 基线(0.4893)与 Mask R-CNN/Cascade R-CNN/QueryInst/StarDist 等通用实例分割器;在 mPQ 口径下 CellViT-SAM-H(0.4980)展示了基础模型迁移的竞争力但在 0.5 µm/px 上仍低于在域训练模型(bPQ 0.536 vs 0.612-0.660)。选型建议:追指标 → 多任务 CNN 集成;求部署效率 → StarDist(榜单冠军且推理快);标注稀缺/多器官复用 → CellViT++ 加分辨率适配;工程保守 → 官方 HoVer-Net baseline 起步。
按使用场景的具体决策路径:
| 你的约束 | 推荐路线 | 理由 |
|---|---|---|
| 一周内出基线论文数字 | HoVer-Net + CoNIC patch 版 + 按源 3 折 CV | 官方代码直接复用,口径与多数论文可比 |
| 追求榜单级精度 | SEResNeXt50/101 多任务 + 模型集成 + copy-paste | CoNIC Task 2 冠军配方,mPQ+ 0.5599 可复现路径明确 |
| WSI 全图推理、算力受限 | StarDist | 多边形表示推理快,榜单 Task 1 冠军架构 |
| 标注预算极低的新器官项目 | CellViT++ 零样本/少样本 + Lizard 做分辨率适配验证 | 基础模型迁移在 3-4 张标注瓦片即可接近监督训练 |
| 要做构成回归而非分割 | 多任务框架的构成分支或独立回归头 | R² 0.8437 证明联合训练互益;纯回归也可用(Dawood et al. 路线) |
§8.3 评测协议
CoNIC 官方协议要点:训练仅限官方发布数据(禁外部数据);Docker 容器提交、保密测试;Task 1 以 mPQ+ 排名、Task 2 以 R² 排名;决赛每队每任务一次提交机会;测试 patch 须 60 分钟内处理完;初步测试集(约 25,000 TCGA 核)仅供熟悉流程与提升泛化。post-challenge 提交自 2022-07-15 起持续开放,沿用同一 Docker 协议(挑战赛官网)。
复现或参与评测时的要点清单:
| 协议要素 | 官方规定 | 常见踩坑 |
|---|---|---|
| 训练数据范围 | 仅限官方发布训练集,禁用任何外部数据 | 混入 ImageNet 预训练权重属允许范畴,但混入其他核分割数据集违规 |
| 提交形式 | Docker 容器(模板见 CoNIC 仓库) | 容器内路径硬编码导致评测环境失败 |
| 计算时限 | 全部测试 patch 60 分钟内处理完 | 过度集成超时被取消资格 |
| 输出口径 | 分割分类输出实例+类别;构成回归输出计数向量 | 把 256×256 全图计数直接输出(应为 224×224 口径) |
| 决赛要求 | 随提交附方法短文,否则取消资格 | 忘记提交方法描述 |
§8.4 相关数据集
| 数据集 | 关系 | 规模 | 差异 |
|---|---|---|---|
| CoNSeP | Lizard 数据源之一,同团队前作 | 24,319 核、40× | 7 类标签;无 NuClick 边界精修 |
| CRAG | 数据源之一 | 腺体分割集 | 腺体级标注而非核级 |
| GlaS | 数据源之一 | 165 张腺体图 | 腺体分割挑战赛(2015) |
| PanNuke | 数据源之一 | 205,343 核、19 器官 | 多器官广度 vs Lizard 结肠深度 |
| DigestPath | 数据源之一 | 挑战赛多任务集 | 结肠部分进入 Lizard |
| MoNuSeg / MoNuSAC | 平行基准 | 21,623 / 46,909 核 | TCGA 多器官;MoNuSeg 无类别 |
§8.5 关键论文 Top 7
- Graham, S., Jahanifar, M., Azam, A., et al., 2021, ICCV Workshops, pp. 684-693. DOI 10.1109/ICCVW54120.2021.00082 — Lizard 数据集原始论文:多阶段标注管线 + 495,179 核发布。
- Graham, S., Jahanifar, M., Vu, Q. D., et al., 2021, arXiv 2111.14485. DOI 10.48550/arXiv.2111.14485 — CoNIC 挑战赛技术报告:patch 化协议、任务定义与评测指标。
- Graham, S., Vu, Q. D., Jahanifar, M., et al., 2024, Medical Image Analysis, 92:103047. DOI 10.1016/j.media.2024.103047 — CoNIC 正式版:373 次提交分析、鲁棒性测试与 1,658 WSI 下游临床验证。
- Wang, W. & Zhang, J., 2022, arXiv 2203.03415;2024, Computational and Structural Biotechnology Journal. DOI 10.1016/j.csbj.2024.10.046 — CoNIC Task 2 冠军方案:SEResNeXt 多任务集成,Lizard mPQ+ 0.5599。
- Graham, S., Vu, Q. D., Raza, S. E. A., et al., 2019, Medical Image Analysis, 58:101563. DOI 10.1016/j.media.2019.101563 — HoVer-Net:Lizard 标注管线与官方基线所用的分割分类框架。
- Hörst, F., Remke, M., et al., 2025, Computer Methods and Programs in Biomedicine(CellViT++). arXiv 2501.05269 — 基础模型跨分辨率迁移研究:Lizard 分辨率适配协议与防泄漏评测设计。
- Sirinukunwattana, K., et al., 2017, Medical Image Analysis, 35:489-502. DOI 10.1016/j.media.2016.11.008 — GlaS 挑战赛:Lizard 数据源之一的腺体分割背景。
§8.6 社区活跃度
CoNIC 挑战赛(2022)吸引 373 次提交、26/24 支队伍分别登上两任务榜单,post-challenge 提交通道持续开放;HoVer-Net 与 CoNIC 仓库由华威 TIA 团队维护,issue 区有维护者亲自答复(如 #219)。第三方生态活跃:HuggingFace 镜像月下载 193 次(截至 2026-09)、Kaggle 提供开箱镜像、CellViT/StarDist 等主流框架均以 Lizard 为标准评测集之一。Lizard 论文 Google Scholar 引用 243+(截至 2026-09),近三年增速稳定,属于「持续被引用的方法学基准」而非一次性竞赛数据。
§8.7 生态快照
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| Lizard 官方页 | 数据发布 | warwick.ac.uk/lizard-dataset | 原始版 PNG+MAT 唯一官方渠道 |
| CoNIC 挑战赛 | 竞赛平台 | conic-challenge.grand-challenge.org | 唯一保密测试集评测通道 |
| TissueImageAnalytics/CoNIC | 官方代码 | GitHub | baseline 推理代码、patch 抽取工具、Docker 模板 |
| vqdang/hover_net | 模型代码 | GitHub | HoVer-Net 原始实现(注意 20×/40× 分支差异,见坑点 2) |
| MedOtter/CoNIC2022 | 数据镜像 | HuggingFace | 含 source 字段、700 MB 即取即用 |
| aadimator/lizard-dataset | 数据镜像 | Kaggle | Kaggle 内直接挂载原始版 |
| TIO-IKIM/CellViT | 模型代码 | GitHub | 基础模型迁移与分辨率适配参考实现 |
§9 相关资源与引用
§9.1 官方资源清单
- 数据集官方页(原始版下载):warwick.ac.uk/lizard-dataset
- Lizard 论文(ICCVW 2021):CVF Open Access、arXiv 2108.11195
- CoNIC 挑战赛主页与数据:主页、Data
- CoNIC 论文:arXiv 2111.14485;正式版 Medical Image Analysis 92:103047(2024)
- 官方代码:TissueImageAnalytics/CoNIC(baseline、评测、patch 抽取)
- HoVer-Net:vqdang/hover_net(CoNIC 分支含 20× 推理)
- 社区镜像:HF MedOtter/CoNIC2022、Kaggle aadimator/lizard-dataset
- 学习路径建议:先跑 CoNIC patch 版 EDA → 复现官方 HoVer-Net baseline → 按源 5 折 CV 自训模型 → CoNIC 平台提交获取外部分数 → 按 CellViT++ 协议做基础模型迁移实验
§9.2 BibTeX 引用
@inproceedings{graham2021lizard,
title = {Lizard: A Large-Scale Dataset for Colonic Nuclear Instance
Segmentation and Classification},
author = {Graham, Simon and Jahanifar, Mostafa and Azam, Ayesha and
Nimir, Mohammed and Tsang, Yee-Wah and Dodd, Katherine and
Hero, Emily and Sahota, Harvir and Tank, Atisha and
Benes, Ksenija and Wahab, Noorul and Minhas, Fayyaz and
Raza, Shan E. Ahmed and El Daly, Hesham and
Gopalakrishnan, Kishore and Snead, David and Rajpoot, Nasir M.},
booktitle = {Proceedings of the IEEE/CVF International Conference on
Computer Vision Workshops (ICCVW)},
pages = {684--693},
year = {2021},
doi = {10.1109/ICCVW54120.2021.00082}
}
@article{graham2021conic,
title = {CoNIC: Colon Nuclei Identification and Counting Challenge 2022},
author = {Graham, Simon and Jahanifar, Mostafa and Vu, Quoc Dang and
Hadjigeorghiou, Giorgos and Leech, Thomas and Snead, David and
Raza, Shan E. Ahmed and Minhas, Fayyaz and Rajpoot, Nasir},
journal = {arXiv preprint arXiv:2111.14485},
year = {2021}
}
@article{graham2024conic,
title = {CoNIC Challenge: Pushing the frontiers of nuclear detection,
segmentation, classification and counting},
author = {Graham, Simon and Vu, Quoc Dang and Jahanifar, Mostafa and
Weigert, Martin and Schmidt, Uwe and Zhang, Wenhua and others},
journal = {Medical Image Analysis},
volume = {92},
pages = {103047},
year = {2024}
}
@article{graham2019hovernet,
title = {HoVer-Net: Simultaneous segmentation and classification of
nuclei in multi-tissue histology images},
author = {Graham, Simon and Vu, Quoc Dang and Raza, Shan E. Ahmed and
Azam, Ayesha and Tsang, Yee Wah and Kwak, Jin Tae and
Rajpoot, Nasir},
journal = {Medical Image Analysis},
volume = {58},
pages = {101563},
year = {2019}
}
@article{sirinukunwattana2017glas,
title = {Gland segmentation in colon histology images: The GlaS
challenge contest},
author = {Sirinukunwattana, Korsuk and Pluim, Josien P. W. and Chen, Hao and
Qi, Xiaojuan and Heng, Pheng-Ann and Guo, Yun Bo and
Wang, Li Yang and Matuszewski, Bogdan J. and others},
journal = {Medical Image Analysis},
volume = {35},
pages = {489--502},
year = {2017}
}
§9.3 引用指南
使用 Lizard 时建议至少引用两条文献:① Graham et al., 2021(数据集本体,必引);② 你实际使用的版本/协议对应的文献——用 CoNIC patch 版或榜单协议则引 Graham et al., 2021 arXiv 报告或 2024 正式版。若论文中使用到 Lizard 的子集内容做独立分析,还应引用对应源数据集论文(见下表):
| 使用到的内容 | 应引文献 |
|---|---|
| CoNSeP 源 patch(64 个) | Graham et al., 2019, Medical Image Analysis 58:101563(HoVer-Net 论文,CoNSeP 随文发布) |
| GlaS 源 patch(702 个) | Sirinukunwattana et al., 2017, Medical Image Analysis 35:489-502 |
| PanNuke 源 patch(112 个) | Gamper et al., 2020, ECCV Workshops(PanNuke: An Open Pan-Cancer Histology Dataset) |
| CRAG 源 patch(2,304 个) | Graham et al., 2019(CRAG 随 MILD-Net 论文发布) |
| DigestPath 源 patch(1,799 个) | DigestPath 2019 挑战赛(结肠组织分割赛道) |
在方法节注明所用版本(原始版/CoNIC patch 版)、划分协议(按源 5 折 CV 或 CoNIC 官方发布)与指标口径(mPQ 或 mPQ+)。
§10 AI 使用声明卡
§10.1 AI 模型列表
本页面由大语言模型辅助撰写(初稿生成与结构化整理),撰写模型基于公开检索结果与用户提供规范运行。
§10.2 AI 参与范围
AI 参与:文献检索结果汇总、章节结构生成、代码示例初稿、表格整理。AI 不参与:医学与数据工程审核结论(由千方病案医学编辑部承担)、事实裁定(以检索到的原始文献为准)、最终发布决策。
§10.3 输入来源列表
- Graham, S., et al., 2021, ICCV Workshops, pp. 684-693. DOI 10.1109/ICCVW54120.2021.00082(Lizard 原始论文)
- Graham, S., et al., 2021, arXiv 2111.14485. DOI 10.48550/arXiv.2111.14485(CoNIC 技术报告)
- Graham, S., et al., 2024, Medical Image Analysis, 92:103047. DOI 10.1016/j.media.2024.103047(CoNIC 正式版)
- Wang, W. & Zhang, J., 2024, Computational and Structural Biotechnology Journal. DOI 10.1016/j.csbj.2024.10.046(Keep it accurate and robust)
- Wang, W. & Zhang, J., 2022, arXiv 2203.03415(同上预印本)
- Hörst, F., et al., 2025, Computer Methods and Programs in Biomedicine, arXiv 2501.05269(CellViT++)
- Graham, S., et al., 2019, Medical Image Analysis, 58:101563. DOI 10.1016/j.media.2019.101563(HoVer-Net)
- Sirinukunwattana, K., et al., 2017, Medical Image Analysis, 35:489-502. DOI 10.1016/j.media.2016.11.008(GlaS)
- Sung, H., et al., 2021, CA: A Cancer Journal of Clinicians(GLOBOCAN 2020 结直肠癌流行病学)
- HuggingFace MedOtter/CoNIC2022 数据卡(patch 源分布、类别编码、700 MB、引用信息)
- Kaggle aadimator/lizard-dataset(致谢机构、CC BY-NC-SA 4.0)
- CoNIC 挑战赛官网(时间线、提交协议)
- vqdang/hover_net issue #219(20×/40× 分支坑点、batch size 案例)
- MDC Berlin CoNIC 正式版 PDF(测试集构成、指标定义、噪声声明)
- StructGraph dataset.py(.mat 键名与类别编码印证)
§10.4 人工校验
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射、流行病学) | 千方病案医学编辑部 | 对照 ICD-11/SNOMED CT 官方编码与 GLOBOCAN 文献逐项核对 | ✅ 已通过/已验证 |
| §3-§5 数据规格、结构、划分 | 千方病案医学编辑部(数据工程) | 对照官方论文与数据卡逐数字核对 | ✅ 已通过/已验证 |
| §6 代码与坑点 | 千方病案医学编辑部(数据工程) | 代码逻辑走查 + 坑点溯源至官方 issue/论文原文 | ✅ 已通过/已验证 |
| §7-§8 质量评估与基准 | 千方病案医学编辑部 | DAIMS 逐项核对 + 榜单数字对照正式版论文 | ✅ 已通过/已验证 |
| §9-§10 引用与声明卡 | 千方病案医学编辑部 | 引用完整性检查(DOI/出处/截至日期) | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
全部章节由 AI 辅助起草,经人工审核与修正后发布;§2.1/§2.1b 的编码映射与 §7.7 DAIMS 评分为人工复核重点,已按上表完成核验。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
