信息速览

DigestPath — 消化道病理检测与分割基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | DigestPath 2019 |
| 英文全称 | Digestive-System Pathological Detection and Segmentation Challenge 2019 Dataset |
| 别名/简称 | DigestPath、DigestPath2019、消化道病理图像检测与分割挑战赛数据集 |
| 疾病分类 | 消化系统恶性肿瘤(ICD-11:2B72 胃恶性肿瘤 / 2B90 结肠恶性肿瘤 / 2B92 直肠恶性肿瘤;形态学编码 XH4546 印戒细胞癌,详见 §2.1) |
| SNOMED CT | 126824007 Malignant tumor of stomach(胃恶性肿瘤);印戒细胞癌形态学对应 ICD-O-3 8490/3(详见 §2.2) |
| 数据模态 | 数字病理 H&E 染色图像(全切片图像切块) |
| AI 任务类型 | 细胞目标检测、恶性病灶语义分割、整图良恶性分类、部分标注(弱监督)检测 |
| 样本总数 | 1,559 张病理图 / 631 名患者(两子任务合计)/ 2 个任务(印戒细胞检测 687 图、组织分割 872 图) |
| 数据大小 | 官方未公布总体积;按未压缩 RGB 估算约 8 GB + 65 GB 量级(估算方法见 §3.4) |
| 数据格式 | 栅格图像 + XML 边界框(任务 1)+ JPG 像素级掩码(任务 2,阈值 128 二值化) |
| 许可证 | DATABASE USE AGREEMENT(官网签署后获取,非标准开源许可证) |
| 访问级别 | 申请审核(官网签署数据库使用协议后免费下载) |
| DUO 标签 | 官方未发布 DUO 标签;使用范围以签署的 DATABASE USE AGREEMENT 条款为准 |
| 语言 | 英文(官网文档与标注文件) |
| 首发日期 | 2019-06-14(训练数据发布) |
| 最后更新 | 2019-12-26(公开提交通道重启);基准论文 2022-05 发表 |
| 发布机构 | 商汤科技、衡道病理、上海交通大学医学院附属瑞金医院、西京医院、上海市松江区中心医院 |
| 官方主页 | https://digestpath2019.grand-challenge.org |
| 下载地址 | https://digestpath2019.grand-challenge.org/Download/ |
| DOI | 10.1016/j.media.2022.102485(基准论文,Medical Image Analysis) |
| 引用次数 | 约 70(Scopus/CrossRef 各 69,PlumX 汇总;截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 有官方训练/测试划分与两种清晰标注,但需自行实现预处理:需签协议获取、无官方脚本、掩码为有损 JPG、阳性图存在漏标 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部] 交叉审核:§2 医学背景(消化系统恶性肿瘤 ICD-11 分类、印戒细胞癌形态学与流行病学)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。DigestPath 要求数据使用者在官方主页签署 DATABASE USE AGREEMENT(数据库使用协议)后方可下载数据。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? DigestPath 2019 是首个面向消化系统病理的公开基准数据集与算法挑战赛,由商汤科技联合衡道病理、瑞金医院、西京医院与上海市松江区中心医院在 MICCAI 2019 会议期间推出。它包含两个子任务的数据:一是从胃黏膜与肠黏膜 H&E 病理图中检测印戒细胞(一种恶性程度高、预后差的腺癌细胞),二是对结肠镜活检组织切片做恶性区域的像素级分割与整图良恶性分类。全部 1,559 张图像均来自真实临床诊断标本,由资深病理医师人工标注。
为什么重要? 在它出现之前,消化系统病理的 AI 研究长期缺乏公开数据——病理图像分析的主流公开数据集集中在乳腺癌、前列腺癌等部位,胃与肠的标注数据几乎空白。DigestPath 官方明确将其定位为「第一个公开的消化系统病理图像数据集与对应挑战赛」。它还带来一个更普遍的研究难题:由于印戒细胞形态多变、标注成本高昂,阳性图像存在真实的漏标(官方称为噪声数据集),这使它成为「部分标注目标检测」这一弱监督学习方向的标志性基准。
我能用它做什么? 你可以用它训练和评测病理细胞检测模型(任务 1)、组织分割与筛查模型(任务 2),研究漏标噪声下的检测器训练(参赛顶队的自训练与损失函数方案均有公开代码),以及做染色差异、跨倍率的鲁棒性研究。注意:数据需在官网签署 DATABASE USE AGREEMENT 后免费申请下载,不可直接公开传播,也不能替代临床验证。
§1.1 摘要
DigestPath 2019 由两个独立子集构成。任务 1(印戒细胞检测)覆盖 155 名患者的 687 张 2000×2000 图像,全部为 H&E 染色、X40 扫描,来源器官为胃黏膜与肠;训练集 460 张中 77 张(来自 20 张全切片)带病理医师逐细胞标注的 XML 矩形框,其余为阴性图像,评测集 227 张中 27 张带标注。任务 2(结肠镜组织分割与筛查)覆盖 476 名患者的 872 张图像,X20 扫描、平均尺寸 5000×5000 像素,来自 4 家医学中心;训练集 660 张中 250 张(来自 93 张全切片)带 0/255 的 JPG 像素掩码,阴性 410 张无掩码,测试集 212 张中 90 张含恶性病灶。恶性判定遵循 WHO 消化系统肿瘤分类(高级别上皮内瘤变与腺癌,含乳头状腺癌、黏液腺癌、低黏附性癌与印戒细胞癌)。挑战赛共收到 32 支队伍的 234 次有效提交;官方论文整理了数据构建、标注协议与顶队方法,发表于 Medical Image Analysis(2022,卷 80,文章号 102485)。
§1.2 战略价值分析
维度一:填补消化病理公开数据的空白。 深度学习驱动的计算病理学在乳腺癌(如淋巴结转移检测)领域进展最快,公开基准也最密集;而胃癌与结直肠癌虽在全球癌症负担中位居前列,公开可用的标注数据却长期稀缺。DigestPath 是官方口径下「首批公开发布的消化系统病理检测与分割数据集」,其两个任务分别对应病理科的两类高频日常工作——细胞水平的精细检读与组织水平的筛查分诊——因此成为该领域方法论文中事实上的标准比较对象(截至 2026-09,基准论文被 Scopus/CrossRef 收录引用约 70 次)。
维度二:部分标注问题的真实试验场。 印戒细胞体积小、形态多变、与炎症细胞易混淆,病理医师在高密度区域漏标在所难免。DigestPath 官方坦承「阳性图像未被完全标注,是噪声数据集」,并给出了半监督修正基线;参赛队伍进一步发展出伪标签自训练(冠军方案)与解耦梯度均衡损失 DGHM(亚军方案)两条技术路线。对任何需要在不完美标注上训练检测器的团队(医疗 AI 的常态),这里的失败模式与解决方案都高度可迁移。
§1.3 横向对比
| 数据集 | 部位/任务 | 规模 | 标注形式 | 与 DigestPath 的差异 |
|---|---|---|---|---|
| DigestPath 2019 | 胃/肠病理;细胞检测 + 组织分割分类 | 1,559 张图 / 631 名患者 | XML 边界框 + JPG 像素掩码 | 唯一聚焦消化系统;含真实漏标噪声;两任务倍率不同(X40/X20) |
| GlaS(MICCAI 2015) | 前列腺/乳腺腺体分割 | 165 张图 | 像素级掩码 | 规模小,任务单一,无细胞级检测 |
| MoNuSeg(2018) | 多器官细胞核分割 | 约 29,000 个细胞核标注 | 核级轮廓 | 面向细胞核而非印戒细胞整体;无阴性未标注样本设计 |
| Lizard(2021) | 结肠等 6 器官核实例分类 | 约 495,179 个核标注 | 核实例 + 类别 | 标注密度高但为核分类,不含整图良恶性筛查任务 |
规模数字来源:GlaS/MoNuSeg/Lizard 取自公开病理数据集汇总清单;DigestPath 取自官方 Dataset 页与基准论文。
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2019-06-14 | 挑战赛训练数据正式发布(两个任务) |
| 2019-09-26 | 挑战赛提交截止 |
| 2019-10-01 | 挑战赛结果公布 |
| 2019-10-13 至 10-17 | MICCAI 2019(深圳)颁奖;挑战赛系 MICCAI 2019 Grand Pathology Challenge 系列之一 |
| 2019-12-26 | 公开提交通道重启( leaderboard 开放持续评测) |
| 2022-05-24 | 基准论文在 Medical Image Analysis 上线(卷 80,文章号 102485) |
§1.5 典型 AI 应用场景
- 印戒细胞自动检测:在胃/肠 H&E 图像中逐细胞定位印戒细胞,辅助病理医师缩短阅片时间;冠军方案在官方 FP 约束下有效召回率达 0.8774。
- 活检组织恶性筛查分诊:对结肠镜活检组织整图判读良恶性并勾画恶性区域,用于病理工作流的优先级排序。
- 部分标注/噪声标签方法研究:以官方漏标特性为受控实验场,开发自训练、损失校正(如 DGHM)等弱监督算法。
- 染色与倍率鲁棒性研究:利用 4 家中心的染色差异与 X40/X20 两种倍率,评测模型的跨域稳定性。
- 教学与算法竞赛:公开提交通道重启后仍可作持续评测基准,适合课程实验与新人训练。
§2 医学背景
§2.1 ICD-11 疾病分类锚定
| 标签/术语 | ICD-11 编码 | ICD-11 名称 | 与数据集的关系 |
|---|---|---|---|
| 胃恶性肿瘤 | 2B72 | Malignant neoplasms of stomach | 印戒细胞检测子集的器官来源之一(胃黏膜) |
| 胃腺癌 | 2B72.0 | Gastric adenocarcinoma | 印戒细胞癌所属的胃恶性肿瘤大类 |
| 结肠恶性肿瘤 | 2B90 | Malignant neoplasms of colon | 结肠镜组织子集的主要判定对象 |
| 直肠恶性肿瘤 | 2B92 | Malignant neoplasms of rectum | 结肠镜组织子集的主要判定对象 |
| 印戒细胞癌(形态学) | XH4546 | Signet ring cell carcinoma | 任务 1 的直接检测目标;ICD-O-3 形态学码 8490/3 |
编码来源:ICD-11 消化器官恶性肿瘤块(2B70-2C1Z)与形态学码表。其中 2B72/2B72.0/XH4546 的对应关系与 2B90/2B92 的结直肠归属均经 ICD-11 分类检索与 KEGG ICD-11 映射表核实。
§2.2 SNOMED CT 映射
| 术语 | SNOMED CT | ICD-11 | ICD-O-3 | 说明 |
|---|---|---|---|---|
| 胃恶性肿瘤 | 126824007 Malignant tumor of stomach | 2B72 | — | 印戒细胞子集器官之一 |
| 结肠恶性肿瘤 | —(本页未收录经核实的编码) | 2B90 | — | 建议使用方以 SNOMED CT 官方浏览器核实 |
| 直肠恶性肿瘤 | —(本页未收录经核实的编码) | 2B92 | — | 同上 |
| 印戒细胞癌 | —(本页未收录经核实的编码) | XH4546 | 8490/3 | 形态学编码,跨部位通用 |
「—」表示本页未收录经核实的编码,不做臆测;使用者应通过 SNOMED CT 官方浏览器以术语检索核实后再入库。
§2.3 疾病简介
印戒细胞癌(signet ring cell carcinoma, SRCC) 是一种高度恶性的腺癌亚型:细胞内大量黏液将细胞核挤向一侧,镜下形似戒指而得名。它多见于胃,也可发生于结直肠、乳腺等器官;因常呈弥漫性浸润生长、早期诊断困难,预后通常差于普通腺癌,早期检出可显著改善患者生存。任务 1 的数据即来自胃黏膜与肠黏膜的 H&E 切片,目标是在细胞层面发现这类细胞。
结直肠癌与胃癌的全球负担(GLOBOCAN 2022):2022 年全球结直肠癌新发 1,926,118 例(占全部新发癌症 9.6%,居第 3 位)、死亡 903,859 例(占 9.3%,居第 2 位);胃癌新发 968,350 例(居第 5 位)、死亡 659,853 例(居第 5 位)。两类癌症的确诊均以病理检查为金标准——病理医师需在显微镜下逐张检读活检切片,工作量大且易疲劳,这正是 DigestPath 两个任务对应的临床痛点。
恶性判定标准(任务 2):按 WHO 消化系统肿瘤分类,阳性定义为高级别上皮内瘤变与腺癌(包括乳头状腺癌、黏液腺癌、低黏附性癌与印戒细胞癌);低级别上皮内瘤变与重度炎症被明确排除在恶性之外,构成阴性样本的一部分。
§2.4 临床任务定义
| 临床任务 | 对应子任务 | 输入 | 输出 | 临床用途 |
|---|---|---|---|---|
| 细胞级筛查(检测) | 任务 1:印戒细胞检测 | 2000×2000 H&E 图(X40) | 每个印戒细胞的矩形边界框 | 辅助检出易漏的恶性细胞,提高早诊率 |
| 组织级筛查(分割 + 分类) | 任务 2:结肠镜组织分割与筛查 | 平均 5000×5000 H&E 图(X20) | 恶性区域像素掩码 + 整图良恶性 | 对每日数百张活检切片做恶性优先分诊 |
| 弱监督学习研究 | 两个任务共通 | 部分标注的训练图像 | 更鲁棒的检测/分割模型 | 应对真实标注不完整的落地场景 |
§2.5 患者人群特征
| 维度 | 任务 1(印戒细胞检测) | 任务 2(结肠镜组织分割) | 说明 |
|---|---|---|---|
| 来源机构 | 主办方 4 家医学中心 | 4 家医学中心 | 商汤/衡道病理组织,医院提供数据 |
| 器官 | 胃黏膜、肠(2 种) | 结肠镜活检组织 | 官方 Dataset 页明确 |
| 患者数 | 155 名(训练 99 + 评测 56) | 476 名(训练 324 + 测试 152) | 基准论文口径 |
| 年龄/性别分布 | 官方未公布 | 官方未公布 | 数据集不含人口学元数据 |
| 种族/地域 | 中国患者,具体分布未公布 | 中国患者,具体分布未公布 | 地理覆盖见 §3.8 |
| 就医类型 | 临床诊断标本(活检/手术病理) | 临床诊断标本(结肠镜活检) | 数据来自诊断用途的真实标本 |
§2.6 金标准/参考标准
| 维度 | 内容 |
|---|---|
| 金标准划分 | 病理组织学检查:H&E 染色切片由资深病理医师镜检判读(论文摘要原文称病理图像检查是多种癌症诊断与筛查的金标准) |
| 标注方式 | 任务 1:逐细胞矩形边界框(XML);任务 2:恶性区域像素级掩码(JPG,0 背景 / 255 恶性) |
| 标注者 | 经验丰富的病理医师(experienced pathologists) |
| 标注性质 | 人工标注、真实临床诊断标本;任务 1 阳性图承认存在漏标(部分标注) |
| 一致性说明 | 官方未公布标注者间一致性系数(如 Kappa);本页不做推测 |
§3 数据集规格
§3.0 子集与版本抉择矩阵
DigestPath 发布后未再推出修订版本(组织阳性训练子集在下载包中标记为 v1),选择问题主要是「用哪个子集」而非「用哪个版本」:
| 你的需求 | 推荐子集 | 关键规格 | 理由 |
|---|---|---|---|
| 细胞检测/弱监督检测研究 | 任务 1:印戒细胞检测 | 687 图,2000×2000,X40 | 首个印戒细胞公开基准,含受控漏标噪声 |
| 组织分割/筛查分诊 | 任务 2:结肠镜组织分割 | 872 图,平均 5000×5000,X20 | 像素级掩码 + 整图良恶性双监督 |
| 跨机构染色鲁棒性 | 任务 2 为主 | 4 家医学中心 | 中心间染色差异明显,适合做域自适应 |
| 快速原型/课程实验 | 任务 1 训练集 | 单图 4 MB 量级 | 图幅小、加载快、任务直观 |
§3.1 模态详细说明
数据为单一模态:数字病理 H&E 染色图像。全部图像取自常规诊断流程的石蜡切片,经全切片扫描仪数字化后导出为固定尺寸的图像块。
| 属性 | 任务 1(印戒细胞检测) | 任务 2(结肠镜组织分割) |
|---|---|---|
| 染色 | H&E | H&E |
| 物镜倍率 | X40 | X20 |
| 图像尺寸 | 统一 2000×2000 | 平均 5000×5000,部分极大 |
| 器官 | 胃黏膜、肠(2 种) | 结肠镜活检组织 |
| 阴性样本定义 | 无印戒细胞,但可能含其他肿瘤细胞 | 无恶性病灶(可含低级别病变/炎症) |
注意:官方首页一处描述图像平均约 3000×3000,而 Dataset 页写明组织子集平均 5000×5000 且「部分图像极其巨大」;本页以 Dataset 页为准。
§3.2 样本量拆分
| 子任务 | 划分 | 图像数 | 患者数 | 带标注 | 标注形式 |
|---|---|---|---|---|---|
| 任务 1 | 训练(阳性) | 77 | 20(WSI) | 是 | XML 边界框 |
| 任务 1 | 训练(阴性) | 378 | 79(WSI) | 否 | — |
| 任务 1 | 训练合计(论文口径) | 460 | 99 | 77 | — |
| 任务 1 | 评测 | 227 | 56 | 27 | XML 边界框 |
| 任务 1 | 总计 | 687 | 155 | 104 | — |
| 任务 2 | 训练(阳性) | 250 | 93(WSI) | 是 | JPG 像素掩码 |
| 任务 2 | 训练(阴性) | 410 | 231(WSI) | 否 | — |
| 任务 2 | 训练合计 | 660 | 324 | 250 | — |
| 任务 2 | 测试 | 212 | 152 | 90 含病灶 | JPG 像素掩码 |
| 任务 2 | 总计 | 872 | 476 | 340 | — |
两点口径说明:其一,任务 1 训练集图片数存在论文口径(460)与官网明细之和(77 + 378 = 455)相差 5 张的出入,本页以论文为准、明细供参考,建议以到手数据包实测为准;其二,任务 2 测试集中「带标注」仅指含恶性病灶的 90 张(65 名患者),其余 122 张为无病灶组织。
§3.3 数据格式详情
| 数据项 | 格式 | 说明 |
|---|---|---|
| 病理图像 | 栅格图像文件 | 两个任务分别按子集目录组织(见 §4.0) |
| 细胞标注(任务 1) | XML | 每个印戒细胞一个紧贴的矩形边界框,由病理医师逐个标注 |
| 病灶掩码(任务 2) | JPG(灰度) | 0 = 背景、255 = 恶性前景;因 JPG 有损压缩,须以阈值 128 二值化后使用 |
| 划分标识 | 目录名 | 官方以目录区分训练/评测与阳性/阴性(如 tissue-train-neg、tissue-train-pos-v1) |
官方未提供 CSV/JSON 一类的元数据表;患者与 WSI 的归属关系需按目录/文件名约定自行整理,这也是官方评分表中「数据字典」一项失分的原因(见 §7.7)。
§3.4 存储大小
官方未公布数据包总体积。按未压缩 RGB 位图可做如下量级估算(仅供容量规划,实际以压缩包为准):
| 子集 | 单图尺寸 | 单图未压缩 | 图像数 | 小计 |
|---|---|---|---|---|
| 任务 1 | 2000×2000×3 字节 | 约 12 MB | 687 | 约 8 GB |
| 任务 2 | 5000×5000×3 字节 | 约 75 MB | 872 | 约 65 GB |
说明:任务 2 存在显著大于均值的图像,实际加载峰值内存应按最大单图预留;建议准备 128 GB 以上磁盘与 32 GB 以上内存的工作站。
§3.5 标注方式
- 任务 1:人工逐细胞标注。每枚印戒细胞由病理医师以紧贴细胞轮廓的矩形框标出;官方明确说明由于手工标注困难,存在医师漏标的印戒细胞,即阳性图像未被完全标注(噪声数据集)。
- 任务 2:人工像素级标注。恶性区域描为 255、背景为 0,以 JPG 保存;阴性图像(无恶性病灶)不提供掩码。
- 判定协议:恶性 = 高级别上皮内瘤变与腺癌(乳头状腺癌、黏液腺癌、低黏附性癌、印戒细胞癌);低级别上皮内瘤变与重度炎症不计为恶性。
§3.6 标注者资质
标注由主办方合作医院的病理医师完成,论文与官网表述为「经验丰富的病理医师(experienced pathologists)」。未公布标注人数、年资分布与一致性系数(如 Kappa、IoU 一致性);使用者在论文中应避免声称「完全一致的金标注」。
§3.7 数据采集时间范围
官方未公布具体采集起止年份。可确认的时间锚点:训练数据于 2019-06-14 发布,提交截止 2019-09-26,结果公布 2019-10-01,基准论文于 2022-05 上线。据此可推断图像采集完成于 2019 年上半年之前。
§3.8 地理覆盖
数据来自中国的 4 家医学中心(主办方中的三家医院及其合作机构,含上海交通大学医学院附属瑞金医院、西京医院、上海市松江区中心医院,数据由衡道病理及合作医院提供)。未公布各中心样本占比、医院级别与地域分布图。
§3.9 采集设备规格
- 扫描方式:全切片扫描仪数字化,输出 H&E 彩色图像。
- 物镜倍率:任务 1 为 X40(细胞级分辨率,2000×2000);任务 2 为 X20(组织级视野,平均 5000×5000)。
- 扫描仪厂商/型号、色域配置文件:官方未公布。跨中心扫描仪差异是真实存在的域偏移来源(见 §7.1)。
§3.10 深度溯源链
| 层级 | 主体 | 说明 |
|---|---|---|
| 患者 | 临床就诊人群 | 诊断标本采集自 4 家医学中心,身份信息脱敏 |
| 切片 | 石蜡 H&E 切片 | 常规病理诊断流程产物 |
| 数字化 | 全切片扫描(X40 / X20) | 输出 WSI 后导出固定尺寸图像块 |
| 标注 | 病理医师人工标注 | XML 边界框 / JPG 像素掩码 |
| 质控 | 主办方(商汤 + 衡道病理) | 组织挑战赛与评测集构建 |
| 发布 | grand-challenge.org 官方主页 | 签署 DATABASE USE AGREEMENT 后下载 |
| 引用锚点 | Medical Image Analysis 2022 论文 | DOI 10.1016/j.media.2022.102485 |
§4 数据结构详解
§4.0 目录结构预览
以下为数据解包后的典型目录树。tissue-train-neg 与 tissue-train-pos-v1 为社区代码(CAC-UNet 仓库)确认的官方目录名;其余目录名可能随下载包版本略有差异,以官网下载数据为准:
digestpath2019/
├── signet_ring_cell/ # 任务 1:印戒细胞检测
│ ├── train/
│ │ ├── positive/ # 77 张阳性图 + 同名 XML 边界框
│ │ └── negative/ # 378 张阴性图(无标注)
│ └── test/ # 227 张(27 张附标注)
└── colonoscopy_tissue/ # 任务 2:结肠镜组织分割
├── tissue-train-neg/ # 410 张阴性(无掩码)
├── tissue-train-pos-v1/ # 250 张阳性 + JPG 像素掩码
└── test/ # 212 张(90 张含病灶)
§4.1 DAIMS 标准化字段描述表
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image_id | 文本 | 图像文件标识(文件名) | tissue-train-pos-v1/001.png |
主键、去重 | 无 | 无 | 目录内唯一 |
| image | 像素阵列 | H&E 病理图(RGB) | 2000×2000 数组 | 模型输入 | 扫描/染色批次差异 | 无 | 0-255 × 3 通道 |
| patient_id | 文本 | 患者/WSI 归属标识(按目录与文件名整理) | WSI_07 |
患者级划分防泄漏 | 官方未直接提供映射表 | 无 | 数据包内约定 |
| organ | 枚举 | 器官来源(任务 1) | 胃黏膜 / 肠 | 分器官评估 | 未提供逐图标签 | 未标注 | 2 类 |
| magnification | 枚举 | 物镜倍率 | X40 / X20 | 分辨率对齐 | — | — | 2 类 |
| bbox_xml | XML | 印戒细胞矩形框集合(任务 1 阳性) | <object><bndbox>… |
检测监督信号 | 存在漏标(部分标注) | 无框 = 该图无标注 | ≥0 个/图 |
| mask_jpg | 像素阵列 | 恶性区域掩码(任务 2 阳性) | 0/255 灰度 JPG | 分割监督信号 | JPG 有损压缩边缘伪影 | 无掩码文件 = 阴性 | {0, 255}(阈值 128 后) |
| lesion_label | 二值 | 整图良恶性(任务 2,由掩码/官方定义派生) | 0 = 良性,1 = 恶性 | 分类头标签 | 依赖 WHO 判定协议 | 阴性图无掩码文件 | |
| split | 枚举 | 官方划分 | train / test | 复现官方基准 | — | — | 2 类 |
§4.2 标签分布统计
| 任务 | 子集 | 阳性(带标注) | 阴性(无标注) | 阳性占比 |
|---|---|---|---|---|
| 任务 1 | 训练 | 77 | 378 | 16.9% |
| 任务 1 | 评测 | 27(带标注) | 200 | 11.9% |
| 任务 2 | 训练 | 250 | 410 | 37.9% |
| 任务 2 | 测试 | 90 | 122 | 42.5% |
解读:两个任务的训练阳性占比都不足四成;更关键的是细胞层面——印戒细胞只出现在阳性图的部分区域,其余区域均为背景,前景/背景极度不平衡是官方论文点名的问题。
§4.3 关键字段描述性统计
| 统计项 | 数值 | 说明 |
|---|---|---|
| 总图像数 | 1,559 | 687(任务 1)+ 872(任务 2) |
| 总患者数 | 631 | 155 + 476(两任务间重叠情况官方未公布) |
| 任务 1 图幅 | 2000×2000 | 统一尺寸 |
| 任务 2 平均图幅 | 5000×5000 | 部分图像远大于均值 |
| 挑战赛规模 | 32 队 / 234 次有效提交 | 基准论文口径 |
§4.4 数据层级关系
患者(631 名)
└── 全切片 WSI(如任务 2 训练阳性:93 张 WSI → 250 张图块)
└── 图像块(1,559 张,建模基本单元)
└── 标注(XML 边界框 / JPG 掩码,仅部分图块携带)
层级要点:多张图块可来自同一张 WSI,同一患者的图块在染色、扫描条件与病灶形态上高度相关——这决定了 §5.3 的患者级划分要求。
§4.5 缺失值情况与信息性缺失编码
| 缺失情形 | 性质 | 正确处理 |
|---|---|---|
| 任务 1 阴性图无 XML | 信息性缺失:该图无印戒细胞(但可能含其他肿瘤细胞) | 空标签 = 全背景监督,不应剔除 |
| 任务 1 阳性图内部漏标 | 噪声标签:区域真实存在细胞但未标注 | 见坑点 1(部分标注训练策略) |
| 任务 2 阴性图无掩码 JPG | 信息性缺失:无恶性病灶 | 掩码全 0 处理,不应当作加载错误 |
| 任务 2 掩码 JPG 边缘灰度值 | 格式性缺失:有损压缩产生的中间灰度 | 阈值 128 二值化(见坑点 2) |
| 人口学元数据(年龄/性别/种族) | 整体缺失 | 官方未采集发布,无法插补 |
§5 数据划分与使用建议
§5.1 官方数据划分
官方以目录提供训练/评测(任务 1)与训练/测试(任务 2)两套划分,规模见 §3.2。挑战赛期间评测/测试集标签不公开,队伍通过挑战赛平台提交结果获取官方评分;公开提交重启后评测入口见官方主页。复现论文基准时应严格使用官方划分,不要重新随机划分后再与挑战赛成绩比较。
§5.2 社区惯例划分
社区复现代码(如 CAC-UNet、ooooverflow 的冠军代码)均在官方训练集内部再做验证切分:常见做法是从 250 张带掩码图块中按 WSI 分组留出 10%-20% 做验证,任务 1 则在 77 张阳性图内按 WSI 分组切分。因社区切分互不相同,其报告的验证指标之间不可直接比较。
§5.3 数据泄漏风险防御
DigestPath 的首要泄漏源是图块层面而非字段层面:
- 同 WSI 相邻图块:来自同一张全切片的图块可能共享同一病灶的连续视野,随机按图块划分会让「几乎相同的区域」同时出现在训练与验证中,指标虚高可达数十个百分点。
- 同患者跨 WSI:同一患者多次取材的切片染色与病灶类型高度一致,患者级重复同样导致泄漏。
- 防御措施:一律以 patient_id/WSI 为分组键做 GroupShuffleSplit 或按患者留出;报告划分键与图块数;跨任务合并训练时防止同一患者同时进入两任务训练与测试。
- 错误信号:验证 DSC/F1 接近 0.99 而测试骤降,或小幅度改动数据导致指标剧烈波动时,应首先排查泄漏(详见坑点 4)。
§5.4 交叉验证建议
样本量下建议采用 5 折按患者分组的交叉验证(GroupKFold,键 = patient_id),并保持每折阳性图占比接近(分层 + 分组)。折间指标差异应随结果一并报告——4 家中心的批次效应会放大折间方差,这本身是有价值的域偏移信号。
§5.5 外部验证建议
在 DigestPath 上训练的模型建议至少接入一类外部数据做泛化检验:同部位不同中心(如自有胃肠病理数据)、同任务不同数据集(如公开的胃肠核分割数据)或不同染色/扫描协议数据。报告内部 → 外部的指标衰减幅度(示例格式见 §7.8)。
§6 AI 就绪指南
§6.0 环境准备
本页代码基于 Python 3.10+ 与 PyTorch 2.x,依赖 OpenCV 处理大图与掩码。执行:
pip install torch torchvision opencv-python numpy matplotlib scikit-learn
大图(任务 2 部分图像远大于 5000×5000)加载建议预留 32 GB 内存;如需读取原始全切片可另装 OpenSlide,但 DigestPath 直接提供图块,通常无需读取 WSI。
§6.1 快速上手
下述代码假设数据按 §4.0 的目录树解包,data_root 指向 digestpath2019/ 一级目录;最小可用子集是任务 2 的 tissue-train-pos-v1(250 张带掩码图,单任务即可跑通训练闭环)。
import os, glob, cv2
import numpy as np
data_root = "digestpath2019" # 与目录树一级目录对应
# 最小可用子集:任务 2 阳性训练图 + 掩码
img_dir = os.path.join(data_root, "colonoscopy_tissue", "tissue-train-pos-v1")
masks = sorted(glob.glob(os.path.join(img_dir, "*mask*"))) # 掩码与图像成对出现
images = sorted(glob.glob(os.path.join(img_dir, "*")))
img = cv2.cvtColor(cv2.imread(images[0]), cv2.COLOR_BGR2RGB) # 大图加载
mask = cv2.imread(masks[0], cv2.IMREAD_GRAYSCALE)
mask_bin = (mask > 128).astype(np.uint8) # 关键:阈值 128 二值化
print(img.shape, mask_bin.shape, mask_bin.mean()) # 检查前景占比
任务 1 的最小可用路径是训练阳性目录中 77 张图 + 同名 XML,解析出边界框后即可训练首个检测器。
§6.2 数据获取
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 访问官方主页 | https://digestpath2019.grand-challenge.org ,了解两任务说明 |
| 2 | 阅读 Dataset 页 | 数据规模、标注格式与恶性判定协议 |
| 3 | 进入 Download 页 | https://digestpath2019.grand-challenge.org/Download/ |
| 4 | 签署 DATABASE USE AGREEMENT | 按页面指引填写并提交签署文件 |
| 5 | 获取下载数据 | 官方主页提供下载入口;遇问题联系 Prof. Hongsheng Li(hsli@ee.cuhk.edu.hk) |
获取要点:免费但需签署协议;协议限制再分发与商业用途,引用时须附官方论文(BibTeX 见 §9);下载前确认磁盘 ≥128 GB、内存 ≥32 GB(任务 2 大图所需)。
§6.3 预处理全流程
流水线:读取 → 掩码二值化 → 大图分块(tiling)→ 标准化 → 训练集增强。以下为可运行的预处理代码(含大图分块与掩码对齐):
<details>
<summary>预处理完整代码(掩码二值化 + 大图分块)</summary>
import os, glob, json
import cv2
import numpy as np
def binarize_mask(mask_path: str) -> np.ndarray:
"""任务 2 掩码:JPG 有损压缩 -> 必须阈值 128 二值化。"""
mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE)
if mask is None:
return np.zeros((1, 1), np.uint8) # 阴性图无掩码文件时按需传入全零
return (mask > 128).astype(np.uint8)
def tile_large_image(img: np.ndarray, mask: np.ndarray,
tile: int = 1024, stride: int = 1024,
fg_thresh: float = 0.02):
"""大图滑窗切块;仅保留前景占比 >= fg_thresh 的块(可按需放宽)。"""
H, W = img.shape[:2]
for y in range(0, H, stride):
for x in range(0, W, stride):
im = img[y:y+tile, x:x+tile]
mk = mask[y:y+tile, x:x+tile]
if im.shape[0] < tile or im.shape[1] < tile: # 边缘补齐
pad_h, pad_w = tile - im.shape[0], tile - im.shape[1]
im = np.pad(im, ((0, pad_h), (0, pad_w), (0, 0)))
mk = np.pad(mk, ((0, pad_h), (0, pad_w)))
if mk.mean() >= fg_thresh:
yield im, mk
def parse_signet_xml(xml_path: str):
"""任务 1 XML 边界框 -> [(xmin, ymin, xmax, ymax), ...](示例框架)。"""
import xml.etree.ElementTree as ET
boxes = []
root = ET.parse(xml_path).getroot()
for obj in root.iter("object"):
bb = obj.find("bndbox")
boxes.append((int(float(bb.find("xmin").text)), int(float(bb.find("ymin").text)),
int(float(bb.find("xmax").text)), int(float(bb.find("ymax").text))))
return boxes
if __name__ == "__main__":
out = {"tiles": 0}
for mp in glob.glob("digestpath2019/colonoscopy_tissue/tissue-train-pos-v1/*mask*"):
ip = mp.replace("_mask", "") # 按实际命名规则调整
img = cv2.cvtColor(cv2.imread(ip), cv2.COLOR_BGR2RGB)
msk = binarize_mask(mp)
if img.shape[:2] != msk.shape[:2]:
msk = cv2.resize(msk, (img.shape[1], img.shape[0]), interpolation=cv2.INTER_NEAREST)
for im, mk in tile_large_image(img, msk):
out["tiles"] += 1 # 此处写入落盘逻辑
print(json.dumps(out))
</details>
要点回顾:任务 2 掩码务必 > 128 二值化;任务 2 图像巨大,先分块再训练;任务 1 阳性图与 XML 同名成对,解析后转绝对坐标再喂检测器。
§6.4 PyTorch DataLoader
完整可运行的 Dataset + DataLoader 示例(任务 2 分割,含阴性图全零掩码处理与患者级分组):
<details>
<summary>任务 2 分割 Dataset/DataLoader 完整代码</summary>
import os, glob, random
import cv2
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
class ColonTissueSegDataset(Dataset):
"""
目录结构预期:
data_root/
tissue-train-pos-v1/ # 阳性图 + 掩码(文件名成对)
tissue-train-neg/ # 阴性图(无掩码 -> 全零掩码)
data_root 拼接关系:图路径 = os.path.join(data_root, 子目录, 文件名)
"""
def __init__(self, data_root: str, tile: int = 1024, train: bool = True):
self.pairs, self.negs = [], []
pos_dir = os.path.join(data_root, "tissue-train-pos-v1")
neg_dir = os.path.join(data_root, "tissue-train-neg")
for mp in sorted(glob.glob(os.path.join(pos_dir, "*mask*"))):
ip = mp.replace("_mask", "")
if os.path.exists(ip):
self.pairs.append((ip, mp))
self.negs = sorted(glob.glob(os.path.join(neg_dir, "*")))
self.tile, self.train = tile, train
def __len__(self):
return len(self.pairs) + len(self.negs)
def _augment(self, img, msk):
if self.train and random.random() < 0.5: # 水平翻转(安全增强)
img, msk = img[:, ::-1], msk[:, ::-1]
if self.train and random.random() < 0.5: # 垂直翻转
img, msk = img[::-1], msk[::-1]
return np.ascontiguousarray(img), np.ascontiguousarray(msk)
def __getitem__(self, idx):
tile = self.tile
if idx < len(self.pairs): # 阳性:随机取一块前景块
ip, mp = self.pairs[idx]
img = cv2.cvtColor(cv2.imread(ip), cv2.COLOR_BGR2RGB)
msk = (cv2.imread(mp, cv2.IMREAD_GRAYSCALE) > 128).astype(np.uint8)
if img.shape[:2] != msk.shape[:2]:
msk = cv2.resize(msk, img.shape[1::-1], interpolation=cv2.INTER_NEAREST)
ys, xs = np.nonzero(msk)
if len(ys) > 0 and self.train:
cy, cx = random.choice(ys), random.choice(xs)
else:
cy, cx = img.shape[0] // 2, img.shape[1] // 2
y0 = int(np.clip(cy - tile // 2, 0, max(img.shape[0] - tile, 0)))
x0 = int(np.clip(cx - tile // 2, 0, max(img.shape[1] - tile, 0)))
im, mk = img[y0:y0+tile, x0:x0+tile], msk[y0:y0+tile, x0:x0+tile]
else: # 阴性:随机块 + 全零掩码
ip = self.negs[idx - len(self.pairs)]
img = cv2.cvtColor(cv2.imread(ip), cv2.COLOR_BGR2RGB)
y0 = random.randint(0, max(img.shape[0] - tile, 0)) if self.train else 0
x0 = random.randint(0, max(img.shape[1] - tile, 0)) if self.train else 0
im, mk = img[y0:y0+tile, x0:x0+tile], np.zeros((tile, tile), np.uint8)
im, mk = self._augment(im, mk)
if im.shape[0] < tile or im.shape[1] < tile: # 小图边缘补零
ph, pw = tile - im.shape[0], tile - im.shape[1]
im = np.pad(im, ((0, ph), (0, pw), (0, 0)))
mk = np.pad(mk, ((0, ph), (0, pw)))
im = (im.astype(np.float32) / 255.0 - 0.5) / 0.5 # 标准化到 [-1, 1]
return torch.from_numpy(im.transpose(2, 0, 1)), torch.from_numpy(mk[None].astype(np.float32))
if __name__ == "__main__":
ds = ColonTissueSegDataset("digestpath2019/colonoscopy_tissue", train=True)
dl = DataLoader(ds, batch_size=8, num_workers=4, pin_memory=True)
for x, y in dl: # x: (8,3,1024,1024) y: (8,1,1024,1024)
break
print(x.shape, y.shape)
</details>
任务 1 的检测训练可直接复用 MMDetection 等框架,第一步是把官方 XML 批量转为 COCO 格式。转换脚本如下(阳性图 + 同名 XML → instances.json,阴性图以空 annotations 注册即可让检测器学习全背景):
<details>
<summary>任务 1 XML 转 COCO 格式脚本</summary>
import os, glob, json
import xml.etree.ElementTree as ET
def xml_to_coco(xml_dir: str, out_json: str):
"""把印戒细胞检测的 XML 标注目录转成 COCO instances 格式。"""
coco = {"images": [], "annotations": [],
"categories": [{"id": 1, "name": "signet_ring_cell"}]}
ann_id = 1
for img_id, xp in enumerate(sorted(glob.glob(os.path.join(xml_dir, "*.xml"))), start=1):
root = ET.parse(xp).getroot()
size = root.find("size") # 官方 XML 含 size 节点
w = int(size.find("width").text)
h = int(size.find("height").text)
file_name = os.path.basename(xp).replace(".xml", "")
coco["images"].append({"id": img_id, "file_name": file_name,
"width": w, "height": h})
for obj in root.iter("object"): # 每个印戒细胞一个 object
bb = obj.find("bndbox")
x1 = float(bb.find("xmin").text)
y1 = float(bb.find("ymin").text)
x2 = float(bb.find("xmax").text)
y2 = float(bb.find("ymax").text)
coco["annotations"].append({
"id": ann_id, "image_id": img_id, "category_id": 1,
"bbox": [x1, y1, x2 - x1, y2 - y1], # COCO 用 [x, y, w, h]
"area": (x2 - x1) * (y2 - y1), "iscrowd": 0,
})
ann_id += 1
with open(out_json, "w") as f:
json.dump(coco, f)
return len(coco["images"]), ann_id - 1
if __name__ == "__main__":
n_img, n_ann = xml_to_coco(
"digestpath2019/signet_ring_cell/train/positive", "signet_train_coco.json")
print(n_img, n_ann) # 预期:图像 77(阳性),框数以实际 XML 为准
</details>
注意:阴性图(378 张)没有 XML,注册进 COCO 时直接不写 annotations 即可;切勿为阴性图伪造空框或跳过注册。转换后先用 pycocotools 的 COCO() 加载一遍验证合法性。
§6.5 坑点清单(实战失败模式)
⚠️ 坑点 1:阳性图漏标——部分标注会让模型「学会漏检」(分类:标签理解)
问题:官方明确印戒细胞数据是噪声数据集——阳性图中存在病理医师漏标的细胞。直接训练时,漏标细胞被当作背景负样本,惩罚器对「真阳性形态」持续降权,召回率被系统性压低。
症状:训练损失正常下降、验证集上高置信框很少;可视化发现明显印戒细胞无预测框;提高召回的阈值调整收效甚微。
解决:
- 简单方法:只用标注置信度高的完整标注子集训练第一阶段;对未标注区域用「忽略区域」mask,不计算分类损失。
- 进阶方法:自训练(self-training)——用初版模型对无标注区域做 TTA + 改进 NMS 生成伪框,筛出高置信伪标签重训检测器。
- SOTA 方法:解耦梯度均衡机制 DGHM-C——把噪声样本与干净样本在分类损失中解耦、分别均衡梯度分布,专治部分标注下的过拟合与欠学习。
参考:挑战赛冠军方案(自训练)Ying et al., 2021, Neurocomputing 453: 347-356. DOI 10.1016/j.neucom.2020.05.119,代码 https://github.com/ooooverflow/DigestPath2019 ;亚军方案 DGHM:Lin et al., 2020, arXiv 2004.04455。
⚠️ 坑点 2:JPG 掩码的有损压缩——灰度不是标签(分类:预处理陷阱)
问题:任务 2 的像素掩码以 JPG 存储(0 背景 / 255 前景),有损压缩会在病灶边缘产生大量中间灰度值,直接用
mask == 255或按灰度回归训练都会引入错误监督。
症状:前景占比统计忽大忽小;病灶边缘出现细碎假阳性;同一图两次读取的损失值不一致(JPG 解码确定性无碍,但阈值不同结果不同)。
解决:
- 简单方法:统一
(mask > 128).astype(np.uint8)官方推荐阈值二值化,全项目复用同一函数。- 进阶方法:二值化后做形态学开闭运算清理孤点;掩码与图像尺寸不一致时用最近邻插值重采样,禁止双线性。
- SOTA 方法:训练时把边缘 1-2 像素带标记为边界不确定区域(如边界损失 Boundary Loss 或加权交叉熵降权),抵消压缩伪影。
参考:官方 Dataset 页「You could simply get binary mask by a threshold 128」;https://digestpath2019.grand-challenge.org/Dataset/
⚠️ 坑点 3:超大图 OOM 与倍率混淆(分类:工程陷阱)
问题:任务 2 图像平均 5000×5000 且「部分极其巨大」(未压缩 RGB 单图约 75 MB 量级),直接整图进网络必然 OOM;同时两任务倍率不同(X40 vs X20),混用会破坏尺度一致性。
症状:CUDA out of memory出现在第 1 个 batch; DataLoader worker 内存耗尽被系统杀掉;跨任务预训练时收敛异常。
解决:
- 简单方法:滑窗分块(如 1024×1024)训练与推理,推理时重叠滑窗 + 拼接概率图(见 §6.3 代码)。
- 进阶方法:
cv2.imread后立刻按需分块并释放原图;DataLoadernum_workers与内存按 75 MB/图预留;用内存映射或流式读取避免整包加载。- SOTA 方法:金字塔多尺度推理(低分辨率定位 + 高分辨率细化),或把任务 1 图上/下采样到目标倍率前先统一用 20×/40× 换算像素物理尺寸(µm/px)再建模。
参考:官方 Dataset 页尺寸说明;CAC-UNet 预处理实践 https://github.com/bupt-ai-cz/CAC-UNet-DigestPath2019 。
⚠️ 坑点 4:同 WSI/同患者图块泄漏——验证分数虚高(分类:数据泄漏)
问题:多张图块来自同一 WSI 甚至同一患者(任务 2 训练阳性 250 图仅来自 93 张 WSI)。按图块随机划分会让相邻视野同时进入训练与验证集。
症状:验证 DSC/F1 高达 0.97-0.99,提交官方测试骤降;删除「几乎相同」的验证块后指标大幅回落。
解决:
- 简单方法:按 WSI/患者目录分组切分(
GroupShuffleSplit,组键 = WSI 编号)。- 进阶方法:5 折按患者
GroupKFold+ 阳性占比分层,报告折间均值 ± 标准差。- SOTA 方法:留一中心交叉验证(按 4 家医学中心分组)同时给出域偏移下界——官方未公布逐图中心标签,可联系主办方或按染色风格聚类近似。
参考:官方数据组织方式(图块出自 WSI)见 Dataset 页;泄漏防御通用范式见 §5.3。
⚠️ 坑点 5:阴性样本的「无标注」≠「无细胞/无异常」(分类:标签理解)
问题:任务 1 阴性图「无印戒细胞,但可能含其他类型肿瘤细胞」;任务 2 阴性图「无恶性病灶」但可含低级别上皮内瘤变与重度炎症。把阴性当成「完全正常」会造成语义污染。
症状:模型把炎症细胞、低级别病变判为印戒细胞/恶性而「冤案」频发;用阴性图做异常检测基准时结论失真。
解决:
- 简单方法:严格按任务定义使用阴性集——任务 1 阴性只监督「无印戒细胞」,任务 2 阴性只监督「无恶性区域」。
- 进阶方法:多类头建模(印戒细胞 / 其他肿瘤 / 炎症 / 背景),从标签语义上分离「非目标」与「正常」。
- SOTA 方法:把阴性图用于对比学习或辅助分类分支,仅在目标类别上施加监督,缓解负样本语义噪声。
参考:官方 Dataset 页阴性样本定义;https://paperswithcode2.com/dataset/7631 (官网 Dataset 页镜像)。
⚠️ 坑点 6:与官方成绩不可比的评估方式(分类:评估误用)
问题:挑战赛对任务 1 采用 FP 预算约束下的有效召回(Valid Recall)而非通用 mAP;任务 2 强调整图分类与分割联合表现。社区普遍用 mAP/Dice 直接报告,数值口径不同。
症状:论文里 0.85 的 mAP 看似超过冠军 0.8774 的召回,实际不可比;复现成绩时被审稿人质疑。
解决:
- 简单方法:复现官方指标——先按 IoU 匹配预测与真值框,再在每图 FP 预算内统计有效召回(任务 2 报告 DSC 与分类指标并重)。
- 进阶方法:同时报告 mAP 与 Valid Recall 两套口径,并注明 FP 预算设置。
- SOTA 方法:接入官方 grand-challenge 平台公开提交通道,用官方评估器拿可比成绩。
参考:冠军论文报告 Valid Recall 0.8774 / FPs 100.00(Ying et al., 2021, Neurocomputing);官方评估说明 https://digestpath2019.grand-challenge.org 。
⚠️ 坑点 7:跨中心染色与批次效应(分类:偏倚陷阱)
问题:数据来自 4 家医学中心,H&E 染色的试剂批次、扫描仪色彩响应存在系统性差异;训练集中心分布未知,模型可能绑定「染色风格」而非法学特征。
症状:对外部数据(他院/其他扫描仪)性能骤降;对亮度/饱和度敏感;t-SNE 上图像按染色风格而非病灶聚簇。
解决:
- 简单方法:训练时加温和的颜色抖动(HSV/HED 空间小幅扰动,见 §6.6)。
- 进阶方法:Macenko/Reinhard 染色归一化(以参考切片校准),注意保留诊断相关色差。
- SOTA 方法:对抗式染色自适应——CAC-UNet 团队在同一技术线上验证了多级对抗学习跨染色分割的有效性(Mei et al., 2020, ICASSP: 1424-1428)。
参考:Zhu et al., 2021, Neurocomputing 438: 165-183;Mei et al., 2020, ICASSP。
⚠️ 坑点 8:前景/背景极度不平衡 + 稀有小目标(分类:偏倚陷阱)
问题:印戒细胞只占图面极小比例,且任务 1 训练阳性图仅 77 张;分割任务中恶性区域占比亦低。默认损失会被海量易分背景主导,小目标召回崩塌。
症状:损失快速下降但召回停滞在低位;预测框/掩码偏向大片背景;小细胞被 NMS 误删。
解决:
- 简单方法:前景感知采样——检测任务以含框区域为中心裁剪训练块,分割任务按前景占比筛块(§6.4 已实现)。
- 进阶方法:Focal Loss 或 GHM 类梯度均衡损失;NMS 阈值放宽并配合软 NMS 保住密集小目标。
- SOTA 方法:DGHM-C 在梯度均衡基础上进一步解耦噪声样本,同时处理不平衡与漏标(坑点 1),官方挑战赛验证有效。
参考:DGHM:Lin et al., 2020, arXiv 2004.04455;不平衡问题官方论文亦有讨论(Da et al., 2022, Medical Image Analysis 80: 102485)。
§6.6 数据增强建议
| 类别 | 操作 | 说明 |
|---|---|---|
| ✅ 安全 | 水平/垂直翻转、90° 旋转 | 病理形态学无方向先验 |
| ✅ 安全 | 小幅随机裁剪、0.9-1.1 倍缩放 | 保持细胞尺度基本不变 |
| ✅ 安全 | 轻度 HED 空间染色扰动 | 模拟跨中心染色差异 |
| ❌ 危险 | 大幅 HSV 扭曲、灰度反转 | 破坏 H&E 诊断特征(核紫/胞质红的相对关系) |
| ❌ 危险 | 大比例缩放(>1.3×) | X40/X20 倍率语义被破坏,物理尺度失真 |
| ❌ 危险 | 弹性形变、随机擦除 | 可能造出病理学上不存在的形态 |
针对坑点 7 的跨中心染色差异,可在预处理阶段加入染色归一化。以下为 Macenko 算法的简化教学实现(生产环境建议使用 staintools 等成熟库):
<details>
<summary>Macenko 染色归一化简化实现</summary>
import numpy as np
def macenko_fit(img: np.ndarray, beta: float = 0.15, percentile: float = 99.0):
"""从参考切片拟合 H&E 染色基向量 (2,3) 与浓度上限 (2,)。img: RGB uint8。"""
od = -np.log((img.astype(np.float32) + 1.0) / 240.0).reshape(-1, 3)
od = od[od.min(axis=1) > beta] # 剔除近白背景像素
_, _, vh = np.linalg.svd(od, full_matrices=False)
plane = vh[:2] # OD 平面的两个主方向
proj = od @ plane.T
phi = np.arctan2(proj[:, 1], proj[:, 0])
p_hi = np.percentile(phi, percentile)
p_lo = np.percentile(phi, 100.0 - percentile)
s_min = plane @ np.array([np.cos(p_lo), np.sin(p_lo)])
s_max = plane @ np.array([np.cos(p_hi), np.sin(p_hi)])
stains = np.stack([s_min, s_max])
if stains[0].sum() < stains[1].sum(): # 第一列固定为 H(更暗)
stains = stains[::-1]
conc = np.linalg.lstsq(stains.T, od.T, rcond=None)[0]
return stains, np.percentile(conc, percentile, axis=1)
def macenko_apply(img: np.ndarray, ref_stains: np.ndarray, ref_max: np.ndarray) -> np.ndarray:
"""把 img 的染色浓度重投影到参考切片的染色基上。"""
od = -np.log((img.astype(np.float32) + 1.0) / 240.0).reshape(-1, 3)
conc = np.linalg.lstsq(ref_stains.T, od.T, rcond=None)[0]
conc = conc / np.percentile(conc, 99.0, axis=1, keepdims=True) * ref_max[:, None]
out = np.exp(-(ref_stains.T @ conc)).T.reshape(img.shape[0], img.shape[1], 3)
return np.clip(out * 255.0, 0, 255).astype(np.uint8)
if __name__ == "__main__":
import cv2
ref = cv2.cvtColor(cv2.imread("ref_center.png"), cv2.COLOR_BGR2RGB) # 固定的参考切片
src = cv2.cvtColor(cv2.imread("other_center.png"), cv2.COLOR_BGR2RGB)
stains, ref_max = macenko_fit(ref) # 参考染色基只需拟合一次并存档
print(macenko_apply(src, stains, ref_max).shape)
</details>
使用约束:参考切片一经选定必须固定并存档(见 §6.10);归一化只用于训练/推理输入,评估与可视化读取原图;先在小样本上目检染色映射是否保留了核/基质对比度,避免把诊断相关色差一并「归一」掉。
§6.7 模型推荐
| 任务 | 推荐模型 | 起点 | 理由 |
|---|---|---|---|
| 印戒细胞检测 | Faster R-CNN / RetinaNet(ResNet-50 + FPN)+ DGHM-C 损失 | MMDetection 配置 | 挑战赛亚军方案,直接兼容部分标注 |
| 印戒细胞检测(自训练) | 检测器 + TTA/伪标签自训练 | ooooverflow 代码 | 挑战赛冠军方案,代码公开 |
| 组织分割 | U-Net / DeepLabV3+(ResNet-50 主干) | segmentation_models.pytorch | 小数据下稳定、易分块训练 |
| 组织分割(冲榜) | CAC-UNet(多级对抗 + 分类分支) | bupt-ai-cz 代码 | 挑战赛分割任务第一名方案 |
| 弱监督/半监督基线 | 组织方半监督框架(全监督 → 自训练 → 协同训练) | Li et al., IPMI 2019 | 官方基线,思路清晰易复现 |
§6.8 硬件需求
| 场景 | GPU 显存 | 内存 | 磁盘 | 说明 |
|---|---|---|---|---|
| 最小可用(任务 1,1024 块) | 8 GB | 16 GB | 32 GB | 2000×2000 图直接训练 |
| 推荐(任务 2,1024 块 + 分块缓存) | 24 GB | 32 GB | 128 GB | 大图滑窗与批量训练 |
| 大规模(金字塔推理 / 多任务) | 40 GB(A100 级) | 64 GB | 256 GB | 整图高分辨率推理 |
§6.9 评估指标代码
官方两套核心口径的可运行实现:任务 1 的 FP 预算约束有效召回 + 任务 2 的 Dice 系数。
<details>
<summary>有效召回与 DSC 计算代码</summary>
import numpy as np
def iou_matrix(pred_boxes, gt_boxes):
"""pred/gt: [(xmin, ymin, xmax, ymax), ...] -> IoU 矩阵 (P x G)。"""
if len(pred_boxes) == 0 or len(gt_boxes) == 0:
return np.zeros((len(pred_boxes), len(gt_boxes)))
p = np.array(pred_boxes, dtype=np.float32)[:, None, :] # (P,1,4)
g = np.array(gt_boxes, dtype=np.float32)[None, :, :] # (1,G,4)
ix1, iy1 = np.maximum(p[..., 0], g[..., 0]), np.maximum(p[..., 1], g[..., 1])
ix2, iy2 = np.minimum(p[..., 2], g[..., 2]), np.minimum(p[..., 3], g[..., 3])
inter = np.clip(ix2 - ix1, 0, None) * np.clip(iy2 - iy1, 0, None)
area_p = (p[..., 2] - p[..., 0]) * (p[..., 3] - p[..., 1])
area_g = (g[..., 2] - g[..., 0]) * (g[..., 3] - g[..., 1])
return inter / (area_p + area_g - inter + 1e-9)
def valid_recall(pred_boxes, gt_boxes, fp_budget: int = 100, iou_thr: float = 0.5):
"""FP 预算约束下的有效召回(挑战赛任务 1 口径的简化实现)。"""
m = iou_matrix(pred_boxes, gt_boxes)
matched = (m.max(axis=0) >= iou_thr).sum() if m.size else 0
fp = max(len(pred_boxes) - int((m.max(axis=1) >= iou_thr).sum()), 0)
return matched / (matched + min(fp, fp_budget)) if (matched + min(fp, fp_budget)) else 0.0
def dice_score(pred_mask: np.ndarray, gt_mask: np.ndarray) -> float:
"""二值掩码 DSC;输入均为 {0,1} uint8。"""
inter = np.logical_and(pred_mask, gt_mask).sum()
return 2.0 * inter / (pred_mask.sum() + gt_mask.sum() + 1e-9)
if __name__ == "__main__":
gt = [(10, 10, 30, 30), (50, 50, 70, 70)]
pred = [(12, 9, 31, 29), (100, 100, 120, 120)]
print(valid_recall(pred, gt, fp_budget=1)) # 预算 1 时 FP 被截断
print(dice_score(np.eye(4, dtype=np.uint8), np.eye(4, dtype=np.uint8)))
</details>
注意:valid_recall 为教学简化版(贪心匹配、无置信度排序细节),发表对比请以官方评估器或冠军代码的实现为准。
§6.10 MLOps 笔记
- 数据版本化:签署协议获得的原始包入 DVC/git-lfs 登记 hash;预处理产物(分块、二值掩码)与原始数据分开版本化。
- 划分留痕:患者/WSI 分组切分的组键清单随实验配置存档(坑点 4 的复现前提)。
- 阈值即配置:掩码二值化阈值 128、NMS/IoU 阈值、FP 预算全部进配置文件,禁止散落硬编码。
- 增强与归一化对齐:训练用染色扰动时,验证/测试管线不得带增强;Macenko 归一化的参考图要固定并存档。
- 可复现性:固定
torch/numpy/random种子;记录 GPU 型号与 PyTorch 版本;挑战赛成绩复现实验注明评估器来源。 - 合规留痕:DATABASE USE AGREEMENT 签署记录与数据使用范围说明随项目文档归档,输出物(论文/模型卡)附官方论文引用。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解建议 |
|---|---|---|---|
| 机构偏倚 | 全部数据来自 4 家中国医学中心,染色与扫描批次集中 | 高 | 染色归一化/对抗自适应;外部数据验证 |
| 部分标注噪声 | 任务 1 阳性图存在漏标(官方承认) | 高 | DGHM 类损失或自训练(坑点 1) |
| 器官覆盖窄 | 任务 1 仅胃黏膜与肠;任务 2 限于结肠镜活检 | 中 | 明确声明适用范围,不外推到其他器官 |
| 倍率不统一 | 两任务 X40/X20 不同,跨任务迁移需尺度换算 | 中 | 以 µm/px 统一物理尺度后再建模 |
| 人口学盲区 | 年龄/性别/种族元数据未发布 | 中 | 公平性分析受限,报告时注明 |
| 年代偏倚 | 数据采集于 2019 年之前,扫描设备相对当时水平 | 低 | 用近年数据做时间漂移检验 |
§7.2 标注质量
标注由经验丰富的病理医师完成:任务 1 逐细胞矩形框「紧贴细胞」,官方同时坦承存在漏标;任务 2 像素掩码经挑战赛 32 支队伍 234 次提交的评测检验,被社区大规模复用,未出现系统性标签错位报告。整体判断:分割掩码质量可靠(注意 JPG 阈值化),检测标签存在结构性漏标、必须按部分标注问题对待。标注者人数与一致性系数未公布,无法进一步定量。
| 质量维度 | 任务 1(印戒细胞检测) | 任务 2(结肠镜组织分割) |
|---|---|---|
| 标注粒度 | 细胞级矩形边界框 | 像素级区域掩码 |
| 已知缺陷 | 阳性图漏标(官方明示) | JPG 有损压缩边缘伪影 |
| 阴性语义 | 无印戒细胞(可能含其他肿瘤细胞) | 无恶性病灶(可含低级别病变/炎症) |
| 社区检验强度 | 冠军/亚军方案均以其为基准 | 32 队 234 次官方提交检验 |
| 一致性数据 | 未公布 | 未公布 |
§7.3 泛化性评估
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 跨医院/跨扫描仪 | 高:染色与色彩响应差异 | 4 中心批次效应;CAC-UNet 团队专门发展跨染色对抗方法(Mei et al., 2020, ICASSP) |
| 跨器官(胃/肠之外) | 高:数据未覆盖 | 任务 1 仅 2 种器官(官方 Dataset 页) |
| 低质量扫描/低分辨率输入 | 高:X40 细胞形态细节丢失 | 挑战赛数据为高质量扫描(相关讨论见 SLIC RoI 检测论文,2022, Neural Computing and Applications) |
| 同域(同类医院 H&E) | 中低:任务定义一致时表现稳定 | 冠军方案在官方测试集召回 0.8774 |
| 真实 WSI 全片 | 中:数据为固定尺寸图块,非全片 | 官方以图块发布,全片拼接策略需自行验证 |
§7.4 伦理考量
数据来自临床诊断标本,患者身份经脱敏处理(数据仅含匿名患者/WSI 索引)。使用前提是签署 DATABASE USE AGREEMENT,其中约束再分发与用途;发布基于该数据的模型或论文时应附官方论文引用。胃癌/结直肠癌病理 AI 若进入临床,须经独立的临床验证与监管审批(见 §0 医疗免责声明)。
§7.5 公平性评估
数据集未发布年龄、性别、种族等人口学元数据,无法开展亚组性能分析;患者全部来自中国 4 家医学中心,模型在其他人种与医疗体系下的表现未知。建议下游使用者在自己的部署人群中补充公平性审计,而不是默认本数据集训练的模型「人群无偏」。
§7.6 数据漂移
- 染色批次漂移:不同中心/批次的 H&E 色彩分布差异,是最直接的漂移源;建议以染色风格聚类监控输入分布。
- 设备演进漂移:2019 年后的扫描仪(更高分辨率、荧光校准)输出分布可能偏离训练分布。
- 人群与流程漂移:目标部署医院的取材固定流程、染色协议若与数据来源不同,应做小样本校准后再上线。
§7.7 DAIMS 数据质量评估(24 项)
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 每图一条记录,标注随图组织,无交叉表 |
| 2 | 唯一标识 | ✅ | 文件名/目录路径唯一,可作主键 |
| 3 | 特殊字符 | ✅ | 文件名与路径规范,无特殊字符风险 |
| 4 | 重复行 | ✅ | 未发现官方重复图像声明;建议到手后按 hash 去重 |
| 5 | 缺失编码 | ⚠️ | 阴性「无标注」需自行约定全零/空框语义 |
| 6 | 标签标识 | ⚠️ | 阳性/阴性靠目录与掩码文件有无推断,无显式标签列 |
| 7 | 罕见类分组 | ⚠️ | 器官/肿瘤亚型逐图标签未提供,稀有类分析受限 |
| 8 | 偏倚评估 | ⚠️ | 论文有定性讨论,无逐图中心/批次元数据 |
| 9 | 数据字典 | ⚠️ | 无正式字段字典文档,格式信息散布官网各页 |
| 10 | 信息性缺失解释 | ✅ | 官方明确解释阴性定义与阳性漏标现象 |
| 11 | 设备记录 | ❌ | 扫描仪厂商/型号未公布 |
| 12 | 共线性 | ✅ | 图像型数据,不存在表格共线性问题 |
| 13 | 编码映射 | ✅ | 掩码 0/255 与阈值 128 二值化规则明确 |
| 14 | 时间戳处理 | ❌ | 图像与患者时间信息完全缺失 |
| 15 | 划分建议 | ✅ | 官方 train/test 划分清晰且可复现 |
| 16 | 泄漏讨论 | ⚠️ | WSI/患者层级关系可推知,但官方未专项讨论泄漏 |
| 17 | 标签分布 | ✅ | 各子集阳性/阴性数量明确(§4.2) |
| 18 | 测量偏倚 | ⚠️ | 检测标签漏标属于测量过程偏倚,需按噪声学习处理 |
| 19 | 外部验证建议 | ✅ | 论文与挑战赛体系鼓励持续评测与外部应用 |
| 20 | 版本记录 | ⚠️ | 无正式版本号,仅子集目录 v1 标记 |
| 21 | 预处理脚本 | ❌ | 官方未提供;社区代码可部分替代(§6.3/§6.4) |
| 22 | 合规要求 | ✅ | DATABASE USE AGREEMENT 流程明确 |
| 23 | 多模态对齐 | ✅ | 单一模态,不存在跨模态对齐问题 |
| 24 | 去标识化 | ✅ | 脱敏标本 + 匿名索引,协议约束再识别 |
DAIMS 评分:17.5 / 24(✅ 计 1 分 × 13 项、⚠️ 计 0.5 分 × 8 项、❌ 计 0 分 × 3 项)
评分解读:17.5/24 属于「任务定义与划分可靠、元数据与工具链薄弱」的典型竞赛型数据集画像。它的标注协议、划分与合规路径是干净的;失分集中在工程侧——无字典、无脚本、无设备与时间元数据——这些不影响科研验证,但会拖慢工程化落地。
对你意味着什么:
- 如果做论文/算法验证:可直接使用官方划分 + DSC/有效召回口径,重点是处理漏标(坑点 1)与患者级划分(坑点 4)。
- 如果做产品原型:先补齐元数据层——建立图像 → WSI → 患者的映射表与自建数据字典,再谈流水线。
- 如果做长期平台:把预处理脚本(§6.3/§6.4)纳入版本管理并补时间/批次登记,以填补 ❌ 项留下的缺口。
- 无论哪种用途:合规动作(签署 DUA + 引用论文)必须在立项文档中留痕。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 跨染色肾活检分割(对抗迁移方法验证) | 北邮/合作团队(ICASSP 2020) | 跨染色域分割 | 见原论文(Mei et al., 2020, ICASSP: 1424-1428) | — | 多级对抗学习可有效弥散跨染色域差,为 DigestPath 染色偏倚提供可迁移方案 |
| 通用部分标注目标检测消融 | 上海交大(arXiv 2004.04455) | 受控标签缺失率下的检测 | 见原论文消融表 | — | DGHM-C 在不同漏标率下稳定优于普通损失,验证坑点 1 方案的普适性 |
说明:截至 2026-09,尚无针对 DigestPath 本身的、覆盖更大外部人群的大规模同行评审外部验证报告;上表收录的是与该数据集方法直接相关的跨域证据。矩阵中「—」表示原论文未给出与 DigestPath 内部成绩可直接换算的指标。
§8 基准性能与生态
§8.1 挑战赛排行榜(顶队完整引用)
| 排名 | 任务 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | 印戒细胞检测 | 半监督自训练检测框架 | Valid Recall 0.8774(FPs 100.00) | 2021 | TTA + 改进 NMS 生成伪框重训 | Ying H, Song Q, Chen J, et al., 2021, Neurocomputing 453: 347-356. DOI 10.1016/j.neucom.2020.05.119 | https://github.com/ooooverflow/DigestPath2019 |
| 2 | 印戒细胞检测 | DGHM 解耦梯度均衡检测器 | Recall 0.7424 | 2020 | 解耦噪声/干净样本的梯度均衡分类损失 | Lin T, Guo Y, Yang C, et al., 2020, arXiv 2004.04455 | —(论文含消融) |
| 1 | 结肠镜组织分割 | CAC-UNet | 分割任务第一名(官方挑战赛) | 2021 | 多级对抗训练 + 分类增强分支 | Zhu C, Mei K, Peng T, et al., 2021, Neurocomputing 438: 165-183. | https://github.com/bupt-ai-cz/CAC-UNet-DigestPath2019 |
| 4 | 结肠镜组织分割 | 上海交大徐奕团队方案 | 挑战赛第四名 | 2019 | 染色域鲁棒分割 | 上海交通大学新闻,2019-10-22,https://news.sjtu.edu.cn/zhxw/20191022/113371.html | — |
数值不可直接比较的原因:任务 1 的官方口径是 FP 预算约束下的有效召回,与 mAP/IoU 口径不同;任务 1 与任务 2 之间指标完全不同;表内两名次对应不同评测轮次与协议细节,仅作方法学参考。完整官方榜单见 Medical Image Analysis 2022 基准论文(32 队 / 234 次有效提交的完整结果)。
§8.2 SOTA 总结与选型建议
- 检测任务:冠军路线(自训练 + 伪标签)与亚军路线(DGHM 损失)分别代表「数据层面修标签」与「损失层面抗噪声」两大流派;前者代码可直接复用,后者理论清晰、易于嫁接到任意检测器。
- 分割任务:CAC-UNet 证明分类分支与对抗训练能同时提升分割与整图判别;普通 U-Net 家族仍是稳妥基线。
- 选型建议:先复现官方划分 + 通用基线(Faster R-CNN / U-Net)拿到内部基准,再按坑点 1/7/8 逐项引入冠军与亚军技术,避免一开始就叠加全部技巧导致归因困难。
| 阶段 | 目标 | 推荐动作 | 对应坑点 |
|---|---|---|---|
| 基线 | 拿到可信的内部成绩 | 官方划分 + Faster R-CNN / U-Net + 患者级 5 折 | 坑点 4、坑点 6 |
| 抗噪声 | 解决漏标召回损失 | 完整标注子集热身 → 自训练伪标签 → DGHM-C | 坑点 1、坑点 8 |
| 抗染色 | 跨中心部署鲁棒 | HED 扰动增强 → Macenko 归一化 → 对抗自适应 | 坑点 7 |
| 冲榜 | 对齐官方口径成绩 | 复用冠军代码 + 官方平台提交验证 | 坑点 6 |
§8.3 评测协议
- 任务 1:按预测框与真值框的 IoU 匹配统计召回,FP 受每图预算约束(冠军论文报告 Valid Recall 0.8774 与 FPs 100.00);挑战赛期间经官方平台统一评估。
- 任务 2:恶性区域分割质量(社区通用 DSC/Dice)与整图良恶性判别联合考核(第三方基准站以 DSC 收录该任务)。
- 持续评测:2019-12-26 起公开提交通道重启,可在官方主页提交获得官方口径成绩。
| 口径 | 任务 1 指标 | 任务 2 指标 | 适用场景 |
|---|---|---|---|
| 官方挑战赛口径 | FP 预算约束下的有效召回(Valid Recall) | 分割质量 + 整图判别联合考核 | 与榜单/顶队比较 |
| 社区通用口径 | mAP@0.5(IoU 匹配) | DSC/Dice | 论文间通用比较 |
| 本页口径 | §6.9 教学版 valid_recall(简化实现) | §6.9 dice_score | 快速调试,发表需换官方实现 |
§8.4 相关数据集
| 数据集 | 任务 | 规模 | 部位 | 与 DigestPath 关系 |
|---|---|---|---|---|
| GlaS(MICCAI 2015) | 腺体分割 | 165 图 | 前列腺/乳腺 | 同为 MICCAI 挑战赛体系,任务不同 |
| MoNuSeg(2018) | 细胞核分割 | 约 29,000 核 | 多器官 | 细胞级标注范式相近,器官更广 |
| Lizard(2021) | 核实例分类 | 约 495,179 核 | 含结肠等 6 器官 | 结肠部位重叠,可作外部验证/补充 |
| CAMELYON16/17 | 淋巴结转移检测 | 数百张 WSI | 乳腺 | 病理检测挑战赛的方法学参照系 |
§8.5 关键论文 Top 6
- Da Q, Huang X, Li Z, et al. DigestPath: A benchmark dataset with challenge review for the pathological detection and segmentation of digestive-system. Medical Image Analysis, 2022, 80: 102485. DOI 10.1016/j.media.2022.102485 —— 数据集与挑战赛官方论文,含数据构建、协议与完整榜单。
- Li J, Yang S, Huang X, et al. Signet ring cell detection with a semi-supervised learning framework. IPMI 2019: 842-854 —— 组织方官方基线:全监督 → 自训练 → 协同训练的标签修正框架。
- Ying H, Song Q, Chen J, et al. A semi-supervised deep convolutional framework for signet ring cell detection. Neurocomputing, 2021, 453: 347-356. DOI 10.1016/j.neucom.2020.05.119 —— 检测任务冠军方案。
- Lin T, Guo Y, Yang C, et al. Decoupled Gradient Harmonized Detector for Partial Annotation: Application to Signet Ring Cell Detection. arXiv 2004.04455 —— 检测任务亚军方案 DGHM,部分标注损失校正代表作。
- Zhu C, Mei K, Peng T, et al. Multi-level colonoscopy malignant tissue detection with adversarial CAC-UNet. Neurocomputing, 2021, 438: 165-183 —— 分割任务冠军方案。
- Mei K, Zhu C, Jiang L, et al. Cross-stained segmentation from renal biopsy images using multi-level adversarial learning. ICASSP 2020: 1424-1428 —— 冠军团队的跨染色方法论,对应坑点 7 的 SOTA 缓解。
§8.6 社区活跃度
- 冠军/冠军团队代码仓库开源并持续可访问(ooooverflow/DigestPath2019、bupt-ai-cz/CAC-UNet-DigestPath2019,后者 100 stars,截至 2026-09)。
- 基准论文被 Scopus/CrossRef 收录引用约 70 次(截至 2026-09),第三方基准站与多个病理数据集汇总清单收录 DigestPath 条目。
- 官方公开提交通道自 2019-12-26 重启后保持开放,可提交获取官方口径成绩。
- 常见社区问题集中在:数据获取流程(需签署协议)、XML 解析、大图内存、验证划分——均与本页坑点清单对应。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| 官方主页/Dataset/Download | 官方 | https://digestpath2019.grand-challenge.org | — | 数据、协议与评测的唯一权威入口 |
| 印戒检测冠军代码 | 开源代码 | https://github.com/ooooverflow/DigestPath2019 | — | 自训练伪标签完整实现 |
| CAC-UNet | 开源代码 | https://github.com/bupt-ai-cz/CAC-UNet-DigestPath2019 | 100 | 分割第一名方案 + 预处理细节 |
| DGHM 论文 | 预印本 | https://arxiv.org/abs/2004.04455 | — | 部分标注损失的理论与消融 |
| 基准论文 | 期刊 | https://doi.org/10.1016/j.media.2022.102485 | — | 完整榜单与数据构建协议 |
| SJTU 新闻 | 报道 | https://news.sjtu.edu.cn/zhxw/20191022/113371.html | — | 挑战赛背景与主办方信息 |
§9 相关资源与引用
§9.1 官方与社区资源清单
- 官方主页(挑战赛介绍与持续评测入口):https://digestpath2019.grand-challenge.org
- Dataset 页(两任务数据说明与恶性判定协议):https://digestpath2019.grand-challenge.org/Dataset/
- Download 页(DATABASE USE AGREEMENT 与下载指引):https://digestpath2019.grand-challenge.org/Download/
- 基准论文(Medical Image Analysis 2022):https://doi.org/10.1016/j.media.2022.102485
- PubMed 条目(PMID 35679692):https://pubmed.ncbi.nlm.nih.gov/35679692
- 印戒检测冠军代码:https://github.com/ooooverflow/DigestPath2019
- 组织分割冠军代码(CAC-UNet):https://github.com/bupt-ai-cz/CAC-UNet-DigestPath2019
- DGHM 预印本:https://arxiv.org/abs/2004.04455
- 上海交大获奖新闻(挑战赛背景):https://news.sjtu.edu.cn/zhxw/20191022/113371.html
- MICCAI 2019 会议(挑战赛颁奖所在会议):https://miccai2019.org
数据获取遇到问题的官方联系方式:Prof. Hongsheng Li(hsli@ee.cuhk.edu.hk,见 Download 页指引)。
§9.2 BibTeX 引用
@article{da2022digestpath,
title = {DigestPath: A benchmark dataset with challenge review for the pathological
detection and segmentation of digestive-system},
author = {Da, Qian and Huang, Xiaodi and Li, Zhongyu and Zuo, Yanfei and
Zhang, Chenbin and Liu, Jingxin and Chen, Wen and Li, Jiahui and
Xu, Dou and Hu, Zhiqiang and others},
journal = {Medical Image Analysis},
volume = {80},
pages = {102485},
year = {2022},
publisher = {Elsevier},
doi = {10.1016/j.media.2022.102485}
}
@article{ying2021semi,
title = {A semi-supervised deep convolutional framework for signet ring cell detection},
author = {Ying, Haozhe and Song, Qingyu and Chen, Jia and Liang, Tiancheng and
Gu, Jiaxin and Zhuang, Fuzhen and others},
journal = {Neurocomputing},
volume = {453},
pages = {347--356},
year = {2021},
doi = {10.1016/j.neucom.2020.05.119}
}
@article{zhu2021multi,
title = {Multi-level colonoscopy malignant tissue detection with adversarial CAC-UNet},
author = {Zhu, Chuang and Mei, Ke and Peng, Ting and Luo, Yihao and
Liu, Jun and Wang, Ying and Jin, Mulan},
journal = {Neurocomputing},
volume = {438},
pages = {165--183},
year = {2021},
publisher = {Elsevier}
}
@inproceedings{li2019signet,
title = {Signet ring cell detection with a semi-supervised learning framework},
author = {Li, Jiahui and Yang, Shuang and Huang, Xiaodi and Da, Qian and
Yang, Xiaoqun and Hu, Zhiqiang and Duan, Qi and Wang, Chaofu and
Li, Hongsheng},
booktitle = {Information Processing in Medical Imaging (IPMI)},
pages = {842--854},
year = {2019},
organization = {Springer}
}
@article{lin2020dghm,
title = {Decoupled Gradient Harmonized Detector for Partial Annotation:
Application to Signet Ring Cell Detection},
author = {Lin, Tiancheng and Guo, Yuanfan and Yang, Canqian and
Yang, Jiancheng and Xu, Yi},
journal = {arXiv preprint arXiv:2004.04455},
year = {2020}
}
§9.3 引用指南
- 使用数据本身:引用
da2022digestpath(官方要求与学术惯例一致)。 - 使用冠军/亚军方法:同时引用对应方法论文(
ying2021semi、lin2020dghm、zhu2021multi)。 - 论文发表:在数据可用性声明中注明「数据在签署 DATABASE USE AGREEMENT 后于官方网站获取」。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 版本 | 用途 |
|---|---|---|
| 大语言模型(起草助手) | 商汤/第三方大模型(千方病案医数集生产管线) | 章节起草、表格组织、代码示例生成 |
§10.2 AI 参与范围
AI 参与本页面的资料汇总、初稿撰写、代码示例与表格格式化;事实核查、医学与技术审校、数字溯源与结论把关由人工完成(见 §0 审核声明与 §10.4)。所有关键数字均要求检索来源支撑,未核实的字段一律省略。
§10.3 输入来源列表
- Da Q, Huang X, Li Z, et al. DigestPath: A benchmark dataset with challenge review for the pathological detection and segmentation of digestive-system. Medical Image Analysis, 2022, 80: 102485. DOI 10.1016/j.media.2022.102485(PubMed PMID 35679692)
- DigestPath 2019 官方主页:https://digestpath2019.grand-challenge.org
- DigestPath 2019 Dataset 页(数据规模与标注协议):https://digestpath2019.grand-challenge.org/Dataset/
- DigestPath 2019 Download 页(协议与下载):https://digestpath2019.grand-challenge.org/Download/
- Ying H, Song Q, Chen J, et al. A semi-supervised deep convolutional framework for signet ring cell detection. Neurocomputing, 2021, 453: 347-356. DOI 10.1016/j.neucom.2020.05.119(北航科研处条目)
- Lin T, Guo Y, Yang C, et al. Decoupled Gradient Harmonized Detector for Partial Annotation. arXiv 2004.04455
- Zhu C, Mei K, Peng T, et al. Multi-level colonoscopy malignant tissue detection with adversarial CAC-UNet. Neurocomputing, 2021, 438: 165-183(CAC-UNet GitHub README)
- bupt-ai-cz/CAC-UNet-DigestPath2019 代码仓库:https://github.com/bupt-ai-cz/CAC-UNet-DigestPath2019
- ooooverflow/DigestPath2019 代码仓库(印戒检测冠军代码):https://github.com/ooooverflow/DigestPath2019
- 上海交通大学新闻学术网:电院徐奕副教授团队在 MICCAI 2019 挑战赛中获佳绩,2019-10-22,https://news.sjtu.edu.cn/zhxw/20191022/113371.html
- SJTU 317 实验室项目页(DGHM 介绍):https://317lab.sjtu.edu.cn/projects/MICCAI2019.html
- Li J, Yang S, Huang X, et al. Signet ring cell detection with a semi-supervised learning framework. IPMI 2019: 842-854
- PlumX Metrics(DOI 10.1016/j.media.2022.102485 引用指标):https://plu.mx/plum/a/?doi=10.1016/j.media.2022.102485
- OUCI 收录页(引用与参考文献记录):https://ouci.dntb.gov.ua/works/leDJnjO4/
- Warwick Research Archive Portal 收录条目(WRAP 166675):https://wrap.warwick.ac.uk/id/eprint/166675/
- Histopathology-Datasets-for-AI 汇总清单(获取方式 access upon request):https://github.com/AwadhChaurasia/Histopathology-Datasets-for-AI
- WHO/IARC 新闻:Global cancer burden growing(GLOBOCAN 2022 发布),2024-02-01,https://www.who.int/news/item/01-02-2024-global-cancer-burden-growing--amidst-mounting-need-for-services
- Bray F, et al. Global cancer statistics 2022: GLOBOCAN estimates. CA Cancer J Clin. DOI 10.3322/caac.21834
- KEGG ICD-11 分类映射表(H00020 消化器官恶性肿瘤块):https://www.kegg.jp/kegg-bin/get_htext?br08403+H00020
- ICD-11 恶性肿瘤分类检索(findacode 2B70-2C1Z 块):https://findacode.com/icd-11/block-911859018.html
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §0-§1(概览与价值定位) | 千方病案医学编辑部 | 逐段事实核对(官方主页/论文摘要) | ✅ 已通过 |
| §2 医学背景与 ICD-11/SNOMED 映射 | 千方病案医学编辑部 | 编码表交叉核对(KEGG/ICD-11 检索) | ✅ 已通过 |
| §3-§5 数据规格、结构与划分 | 千方病案数据工程师 | 对照 Dataset 页与基准论文逐项核对 | ✅ 已通过 |
| §6 代码与坑点 | 千方病案数据工程师 | 代码走查 + 官方文档/顶队代码比对 | ✅ 已通过 |
| §7 DAIMS 与质量评估 | 千方病案医学编辑部 + 数据工程师 | 24 项逐项评定复算 | ✅ 已通过 |
| §8-§9 基准、生态与引用 | 千方病案医学编辑部 | 榜单数字与论文原文比对 | ✅ 已通过 |
§10.5 AI 生成章节标注
本页全部章节由 AI 起草(§10.1 模型),其中 §2.1/§2.2 的编码映射、§3.2/§4.2 的规模数字、§8.1 的榜单成绩经过人工逐项溯源校正;章节内的分析与建议(如 §1.2、§5.2、§6.10、§8.2)为 AI 基于公开文献的整理与归纳,已经人工审校确认无事实性冲突。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- pannuke — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- lizard — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- midog — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
- peso — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- glas — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- crag — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- heart-lung-segmentations-data — 共享标签:医学影像 / 医学图像分割 / 目标检测
- bcss — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- owl — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
- lysto — 共享标签:医学影像 / 医学图像分割 / 病理图像 / 肿瘤学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
