信息速览

Munich Bone Marrow Cytology — 最大公开骨髓细胞形态图谱 AI-Ready Wikipedia
INFOBOX
| 字段 | 值 |
|---|---|
| 数据集名称 | 慕尼黑骨髓细胞分类数据集(Munich Bone Marrow Cytology) |
| 英文全称 | An Expert-Annotated Dataset of Bone Marrow Cytology in Hematologic Malignancies |
| 别名/简称 | Bone-Marrow-Cytomorphology_MLL_Helmholtz_Fraunhofer;Munich BMC;Matek BM Dataset |
| 疾病分类(ICD-11 编码+中文名) | 2B33 急性髓系白血病;2A60 骨髓增殖性肿瘤;2A30-2A3Z 骨髓增生异常综合征;2B30-2B3Z 淋巴系肿瘤 |
| SNOMED CT | 414253001 Bone marrow cytology;127034005 Bone marrow smear;56604005 Bone marrow aspiration |
| 数据模态 | 骨髓涂片单细胞明场显微图像(JPG,250×250 像素) |
| AI 任务类型 | 单细胞形态学多分类;长尾与细粒度图像分类;自监督预训练;模型可解释性分析 |
| 样本总数 | 171,374 张单细胞图像(TCIA 元数据记录 171,375) |
| 数据大小 | 6.8 GB(官方 TCIA 发布;Kaggle 镜像 6.94 GB) |
| 数据格式 | JPG(图像)+ CSV/TXT(类别缩写表)+ DAT(标注文件) |
| 许可证 | Creative Commons Attribution 4.0 International(CC BY 4.0) |
| 访问级别 | 开放(TCIA 公开下载,需 IBM Aspera Connect 插件;须遵守 TCIA 数据使用政策并引用 DOI) |
| DUO 标签 | GRU(通用研究)+ PUB(须公开发表)+ NPUNCU(非商业非营利参考) |
| 语言 | 英语(类别缩写与文档);图像本身无语言属性 |
| 首发日期 | 2021-11-08(论文在线发表) |
| 最后更新 | 2021-11-12(TCIA Version 1) |
| 发布机构 | Helmholtz Munich + LMU University Hospital Munich + MLL Munich Leukemia Laboratory + Fraunhofer IIS |
| 官方主页 | https://www.cancerimagingarchive.net/collection/bone-marrow-cytomorphology_mll_helmholtz_fraunhofer/ |
| 下载地址 | https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId=101941770 |
| DOI | 10.7937/TCIA.AXH3-T579(数据集);10.1182/blood.2020010568(论文) |
| 引用次数 | 11+(TCIA 合集页统计);论文被引逾 300 次(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方文件命名规范齐备,类别字典完整且可直接按目录加载;扣分项为无官方预处理脚本、无患者级划分、下载需 Aspera 且类别极端长尾 |
| 页面状态 | published |
§0 E-E-A-T 与审核声明
§0.1 医学审核
[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 双映射、血液系统恶性肿瘤流行病学、骨髓细胞形态学诊断任务定义)、§7.1 已知偏倚表、§7.4 伦理与 §7.5 公平性分析。审核范围覆盖造血谱系分类的医学正确性、原始细胞与早幼粒细胞鉴别这一临床关键点的表述、以及非细胞类别(伪影、不可识别、涂抹细胞)在临床语义上的恰当定位。
§0.2 数据工程审核
[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略与泄漏风险分析、§6 预处理 Pipeline 与 8 个坑点、§7.7 DAIMS 24 项检查表、§8 基准性能可比性说明。
§0.3 审核日期
2026-09-05
§0.4 免责声明
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Munich Bone Marrow Cytology 采用 CC BY 4.0 许可,托管于 The Cancer Imaging Archive(TCIA),用户须遵守 TCIA Data Usage Policy and Restrictions,并在任何使用该数据的发表物中引用数据 DOI(10.7937/TCIA.AXH3-T579)与论文(10.1182/blood.2020010568)。DUO 标签仅供参考,具体限制以官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? 这是一个把显微镜下的骨髓涂片拆开成一个一个细胞的图像集合。医生做骨髓穿刺后,会把抽出的细胞涂在玻璃片上染色,然后在显微镜下逐个辨认细胞类型——这个过程叫骨髓细胞形态学分类。慕尼黑的研究团队把 945 位血液病患者的涂片扫描成数字图像,再由经验丰富的细胞形态学检验师一个一个地框出单个细胞、标注它属于哪一类,最终积累了 171,374 张单细胞图像,覆盖 21 个形态学类别。它是目前公开文献中规模最大、类别最丰富的专家标注骨髓细胞图像库。
为什么重要? 血液肿瘤诊断高度依赖医生肉眼辨认细胞。骨髓涂片里既有成熟的中性粒细胞,也有只在白血病时才会大量出现的原始细胞,两者区分直接决定诊断方向。但人工判读耗时长、依赖经验,不同专家之间还会有分歧。训练 AI 辅助判读必须有大批带权威标注的图像,而这正是过去几十年最缺的资源。该数据集首次同时满足专家标注与十万量级两个条件,因此成为骨髓细胞 AI 的分类基准。
我能用它做什么? 可训练单细胞形态学分类器、做长尾分布下的不平衡学习研究、用自监督学习预训练血液图像编码器,或用可解释性方法(Grad-CAM、SmoothGrad)分析模型关注细胞的哪个部位;它也广泛用作教学图谱。需注意它是研究资源而非诊断工具,直接用于临床还需多中心外部验证。
§1.1 摘要
Munich Bone Marrow Cytology 由 Helmholtz Munich 计算生物学研究所、LMU 慕尼黑大学医院、MLL 慕尼黑白血病实验室与 Fraunhofer IIS 联合构建,于 2021 年 11 月随论文发表于血液学顶刊《Blood》,数据集本身以 CC BY 4.0 许可托管于 The Cancer Imaging Archive(TCIA)。
数据来自 945 例血液系统疾病患者的骨髓穿刺涂片,全部采用 May-Grünwald-Giemsa/Pappenheim 染色,以明场显微镜 40× 油镜成像,数字化后由具备常规细胞形态学诊断经验的检验者在单细胞层面逐一标注。每个标注细胞切出 250×250 像素方形 patch,不额外裁剪或过滤,因此边缘常残留邻近细胞、红细胞、血小板与细胞碎片。 数据集共 171,374 张图像,覆盖 21 个形态学类别:粒系(早幼粒细胞、中幼粒细胞、晚幼粒细胞、杆状核与分叶核中性粒细胞、嗜酸性粒细胞、嗜碱性粒细胞、异常嗜酸性粒细胞)、红系(原红细胞、有核红细胞)、淋巴系(淋巴细胞、未成熟淋巴细胞、浆细胞、毛细胞)、单核系(单核细胞)、原始与异常类(原始细胞、Faggot 细胞),以及作为质量控制类目的伪影、不可识别、其他细胞与涂抹细胞。
原始论文以 ResNeXt-50 在严格口径下取得五折交叉验证平均准确率 0.86,显著超越传统手工特征方法,首次系统展示深度网络在骨髓单细胞分类上的可行性。该数据集此后成为长尾细粒度分类、自监督迁移与可解释性研究的标准试验台。
§1.2 战略价值
作为血液肿瘤 AI 的规模化基准。 在血液系统恶性肿瘤诊断路径中,骨髓细胞形态学检查仍是第一道关卡,其结论直接决定是否进一步做流式免疫分型、细胞遗传学或分子检测,但该环节长期缺乏大规模公开基准,导致不同研究的方法无法公平比较。Munich BMC 以 945 例患者的规模、21 个类别的细粒度标签,第一次让骨髓单细胞分类成为可复现、可对比的机器学习任务。原论文的 ResNeXt-50 成绩很快成为后续基线,Siamese 网络、DAGDNet、CoAtNet、集成学习等改进方法均以它为参照点。
作为长尾与细粒度学习的天然压力测试。 类别分布极其陡峭:最大的分叶核中性粒细胞 29,424 张,最小的异常嗜酸性粒细胞仅 8 张,相差 3,600 倍以上。这种长尾结构在真实医学数据中很典型,却被多数基准数据集用均衡采样掩盖。Munich BMC 保留原始分布,使研究者能在真实不平衡条件下评估重采样、类别加权、Focal Loss、度量学习与生成式增广的收益。研究显示,只看总体准确率时一个普通 CNN 可报告 74%,但其平衡准确率只有 44%——这个落差正是该数据集最重要的教学价值之一。
作为跨域迁移与自监督预训练的起点。 骨髓图像标注成本极高,外周血涂片数据则相对易得。研究表明,在 Munich BMC 上自监督预训练的图像编码器,其特征可跨染色条件、跨扫描设备迁移到外周血数据集并取得当时最佳成绩,且每类仅需约 50 个标注样本即可训练出可用分类器。该数据集的价值因此不止于自身任务,更在于为整个血液图像领域提供通用特征底座。
§1.3 同类数据集横向对比
| 数据集 | 机构/年份 | 图像数 | 类别数 | 模态与来源 | 标注 | 差异化定位 |
|---|---|---|---|---|---|---|
| Munich BMC(本词条) | Helmholtz Munich / LMU / MLL / Fraunhofer IIS,2021 | 171,374 | 21 | 骨髓涂片,40× 油镜,250×250 | 单细胞专家标注 | 规模最大、类别最全的骨髓单细胞图谱,含伪影与不可识别类目 |
| Matek AML 外周血数据集 | LMU 慕尼黑大学医院 / MLL,2019 | 18,365 | 15 | 外周血涂片,100× 油镜,400×400 | 单细胞专家标注 + 双重复标 | 同实验室的外周血姊妹数据集,用于跨域迁移研究 |
| Acevedo 外周血数据集 | 巴塞罗那 Hospital Clínic,2019 | 17,092 | 8 | 外周血涂片,May-Grünwald-Giemsa | 单细胞专家标注 | 类别均衡,适合作为预训练后的下游评测集 |
| Raabin-WBC | 伊朗 Kerman 医科大学等,2022 | 17,965 | 5 | 外周血涂片,Giemsa,512×512 | 标注 + 细胞核与胞质分割掩膜 | 提供分割标注,适合检测与分割任务 |
| DeepHeme(Sun 等) | 多中心,2025 | 41,595 | 23 | 骨髓涂片,多机构 | 共识标注 | 多中心前瞻性外部验证,临床部署导向 |
对比要点:Munich BMC 的独特性在于骨髓与规模两个维度同时领先,且保留原始的极端长尾分布。若目标是外周血细胞分类或需要细胞分割掩膜,Acevedo 与 Raabin-WBC 更合适;若目标是多中心泛化与临床落地验证,DeepHeme 的验证设计更具参考价值。
§1.4 版本时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2014-2017 | 样本采集窗口 | 涂片采集与扫描;论文诊断分布源自该期间送检样本 |
| 2019-08 | 姊妹数据集发布 | 外周血 AML 数据集(18,365 图 / 15 类)随 Nature Machine Intelligence 论文发布 |
| 2021-11-08 | 论文在线发表 | Matek et al., Blood 138(20):1917-1927 |
| 2021-11-12 | 数据集上线 TCIA | Version 1,6.8 GB,状态 Complete |
| 2022 起 | 社区方法爆发 | Siamese 网络、DAGDNet、CoAtNet、集成学习等相继以该数据集为基准 |
| 2025 | 自监督迁移研究 | SSL 预训练特征跨骨髓与外周血域迁移达到当时最佳成绩 |
| 截至 2026-09 | 持续被引用 | TCIA 合集页统计 11 次直接引用,论文层面引用数百次 |
§1.5 典型应用场景
- 单细胞形态学多分类模型开发:训练 21 类分类器,评估不同骨干网络(ResNeXt、EfficientNet、RegNet、ViT、CoAtNet)在细粒度细胞图像上的表现。
- 长尾分布不平衡学习研究:利用类别样本量相差数千倍的天然结构,验证重采样、代价敏感损失、度量学习与生成式增广效果。
- 自监督预训练与跨域迁移:在无标签条件下预训练编码器,再以小样本微调方式迁移到外周血数据集或院内私有数据。
- 模型可解释性与安全审计:用 Grad-CAM、SmoothGrad、注意力可视化检查模型是否关注细胞核形态而非背景伪影,识别捷径学习。
- 医学教育与形态学图谱:作为住院医师与检验技师的形态学教学素材,按类别浏览各阶段造血细胞的真实形态。
§2 医学背景
§2.1 疾病分类与编码映射
该数据集覆盖的疾病谱并非单一诊断,而是反映一家大型白血病诊断实验室的送检构成,涵盖白血病、淋巴瘤及其他血液系统疾病。下表列出数据集语境中具代表性的诊断实体及其编码映射。
| 标签 | ICD-11 编码 | ICD-11 中文名 | SNOMED CT 概念 |
|---|---|---|---|
| 急性髓系白血病 | 2B33 | 急性髓系白血病 | 91861009 Acute myeloid leukemia |
| 骨髓增生异常综合征 | 2A30-2A3Z | 骨髓增生异常综合征 | 109992005 Myelodysplastic syndrome |
| 骨髓增殖性肿瘤 | 2A60 | 骨髓增殖性肿瘤 | 414253001 Myeloproliferative disorder |
| 淋巴系肿瘤 | 2B30-2B3Z | 淋巴瘤与淋巴系白血病 | 118599009 Malignant lymphoma |
| 多发性骨髓瘤 | 2A83 | 浆细胞骨髓瘤 | 109965004 Multiple myeloma |
| 反应性骨髓改变 | 4B00-4B4Z | 骨髓反应性改变 | 128929007 Reactive bone marrow change |
§2.1b SNOMED CT 映射表
| 标签 | ICD-11 | SNOMED CT 码 | SNOMED CT 术语 |
|---|---|---|---|
| 骨髓细胞学检查 | 不适用 | 414253001 | Bone marrow cytology |
| 骨髓涂片检查 | 不适用 | 127034005 | Bone marrow smear |
| 骨髓穿刺 | 不适用 | 56604005 | Bone marrow aspiration |
| 髓系细胞 | 不适用 | 125049000 | Myeloid cell |
| 原始细胞 | 不适用 | 15246007 | Blast cell |
| 中性粒细胞(分叶核) | 不适用 | 7695005 | Segmented neutrophil |
| 中性粒细胞(杆状核) | 不适用 | 118605007 | Band neutrophil |
| 嗜酸性粒细胞 | 不适用 | 7196007 | Eosinophil |
| 嗜碱性粒细胞 | 不适用 | 6987004 | Basophil |
| 有核红细胞 | 不适用 | 55916006 | Erythroblast |
| 淋巴细胞 | 不适用 | 9375006 | Lymphocyte |
| 浆细胞 | 不适用 | 6646005 | Plasma cell |
说明:SNOMED CT 编码用于概念层面的语义互操作。数据集本身只提供形态学类别缩写(如 NGS、BLA、EBO),不提供 ICD-11 或 SNOMED 编码。上表为基于形态学类别语义的映射,供跨数据库联查参考,不应视为数据集自带编码字段。
§2.2 疾病简介与流行病学
造血系统恶性肿瘤是起源于骨髓与淋巴组织的克隆性疾病。急性髓系白血病在成人急性白血病中占比最高,诊断核心依据是骨髓或外周血原始细胞比例达到既定阈值;骨髓增生异常综合征以无效造血与形态学病态发育为特征,诊断同样依赖有核细胞分类计数与形态学评估。淋巴系肿瘤、浆细胞肿瘤(多发性骨髓瘤)与骨髓增殖性肿瘤各有独立的形态学线索。流行病学上,血液系统恶性肿瘤在全部恶性肿瘤中占比虽不最高,但因诊断高度依赖形态学检查,单位病例消耗的检验工作量不成比例地大。文献指出,骨髓涂片的显微镜下分类在全球每天仍被人工执行数千次。随着靶向治疗与分子分型发展,形态学检查的定位从未被取代,而是作为快速、广覆盖、低成本的第一线手段,为后续流式、遗传学与分子检测提供方向。
§2.3 临床任务定义
| 任务层次 | 定义 | 本数据集的支持程度 |
|---|---|---|
| 筛查 | 在涂片中识别是否存在异常细胞群(如原始细胞增多) | 间接支持:提供原始细胞类别,但无患者级筛查标签 |
| 诊断 | 依据细胞分类计数与形态学作出疾病诊断 | 部分支持:提供单细胞标签,可重建分类计数,但无诊断金标准 |
| 分型 | 区分白血病亚型(如 FAB 与 WHO 分型) | 弱支持:原始细胞与 Faggot 细胞等类别提供线索,无分子分型 |
| 分级与病态发育评估 | 评估红系、粒系病态发育程度 | 有限支持:类别粒度未细化到病态发育亚型 |
| 预后 | 预测治疗反应与生存 | 不支持:数据集无随访与结局字段 |
本数据集的核心临床任务是单细胞形态学分类本身——这是上述所有任务的共同前置步骤,也最适合机器学习介入。
§2.4 患者人群
| 维度 | 内容 | 来源 |
|---|---|---|
| 来源机构 | MLL 慕尼黑白血病实验室(样本处理与涂片制备);LMU 慕尼黑大学医院(医学背景) | TCIA 官方描述 |
| 采集时间 | 2014-2017(论文记录的样本采集窗口) | 论文与 TCIA |
| 样本量 | 945 例患者 | TCIA 官方描述 |
| 年龄与性别 | 官方未披露年龄分布与性别构成 | 官方未披露 |
| 种族与族裔 | 官方未披露 | 官方未披露 |
| 就医类型 | 三级血液病参考实验室送检样本,含恶性与反应性病例 | TCIA 官方描述 |
| 疾病构成 | 反映大型白血病诊断实验室的送检构成,涵盖多种血液系统疾病 | TCIA 官方描述 |
需要特别指出:该数据集不提供患者级人口学字段或诊断标签,仅提供单细胞图像与形态学类别,任何以患者为单位统计分析的应用都无法直接使用。
§2.5 临床价值
骨髓细胞形态学分类是血液病诊断流程中不可替代的一环,其质量受限于两方面:熟练检验者的数量与经验,以及人工判读固有的观察者间与观察者内变异。文献报道,形态学难以区分的细胞类型之间专家间一致性约 85% 至 91%,而成熟阶段相邻的类别(早幼粒与中幼粒与晚幼粒、杆状核与分叶核中性粒细胞)正是分歧最集中处。
该数据集的临床价值在于为算法辅助判读提供可训练、可评测的资源,体现在三层面:其一,将判读结果从定性转为定量,使细胞分类计数可参与后续统计与联合建模;其二,为罕见异常细胞(如原始细胞、Faggot 细胞)提供第二意见,降低漏检风险;其三,通过可解释性分析暴露模型决策依据,便于临床医生判断是否信任输出。论文作者也明确,该工作定位为概念验证与教育资源,进入临床流程还需在真实诊断场景做前瞻性评估。
§2.6 金标准定义
| 维度 | 内容 |
|---|---|
| 划分方式 | 官方未提供患者级训练与验证与测试划分;论文使用五折交叉验证,并以一个 627 张图像的独立集做验证 |
| 标注方式 | 人工单细胞标注,在单细胞层面按分类树框架逐一指定形态学类别 |
| 标注者 | 慕尼黑大学医院具备常规细胞形态学诊断经验的检验者(训练有素的专家) |
| 一致性评估 | 图像子集由第二位独立标注者复标;同一标注者在 11 个月间隔后二次复标 |
| 标注性质 | 形态学主观判读基础上的专家共识型金标准,非分子或流式确认的金标准 |
| 类别数 | 21 个形态学类别(论文图 1 明确方案;期刊摘要提及 22 类为编辑口径差异) |
金标准的性质决定了其边界:标签反映专家对细胞形态的判断,而非独立的生物学确证。因此模型与标签不一致时不能简单判定模型错误,也可能是标签本身处于专家分歧区间。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 复现论文基线,需最权威的原始发布 | TCIA 官方合集(Version 1, 2021-11-12) | 6.8 GB | 唯一官方来源,含完整标注文件与类别缩写表,授权与引用链清晰 |
| 快速原型验证,免 Aspera 客户端 | 社区镜像(Kaggle 与 HuggingFace 搬运版) | 约 6.94 GB | 下载便捷、可直接读取;但属第三方再分发,应引用原始 DOI |
| 需要现成的训练与验证与测试划分 | HuggingFace 镜像(80/10/10 预划分) | 约 6.94 GB(parquet) | 已按 137k 与 17.1k 与 17.1k 划分;但为镜像作者随机划分,未按患者隔离,存在泄漏风险 |
| 只需少数类别做教学或小规模实验 | 自选子集(按类文件夹部分下载) | 视选取而定 | TCIA 支持按类、按千张区间子目录选择性下载,显著降低带宽与存储成本 |
| 做跨域迁移研究 | 官方 BM 数据集 + 姊妹外周血数据集 | 6.8 GB + 11 GB 量级 | 同实验室、同染色体系,域差异可控,外周血数据集带双重复标信息 |
§3.1 模态详情
| 属性 | 内容 |
|---|---|
| 成像模态 | 明场光学显微成像(brightfield photomicrograph) |
| 放大倍率 | 40× 油镜 |
| 染色方法 | May-Grünwald-Giemsa / Pappenheim |
| 图像尺寸 | 250 × 250 像素 |
| 色彩空间 | RGB 三通道彩色 |
| 图像内容 | 每个 patch 中心为一个骨髓细胞,周边常含邻近细胞部分、红细胞、血小板与细胞碎片 |
| 裁切方式 | 围绕标注细胞切出方形 patch,不做进一步裁剪或过滤 |
| 文件格式 | JPG |
| 原始扫描载体 | 全片数字扫描后切分为单细胞 patch |
§3.2 按类别样本数
| 缩写 | 类别中文名 | 所属谱系与性质 | 图像数 |
|---|---|---|---|
| NGS | 分叶核中性粒细胞 | 粒系成熟 | 29,424 |
| EBO | 有核红细胞 | 红系 | 27,395 |
| LYT | 淋巴细胞 | 淋巴系 | 26,242 |
| ART | 伪影 | 质量控制(非细胞) | 19,630 |
| BLA | 原始细胞 | 病理与未成熟 | 11,973 |
| PMO | 早幼粒细胞 | 粒系未成熟 | 11,994 |
| NGB | 杆状核中性粒细胞 | 粒系成熟 | 9,968 |
| PLM | 浆细胞 | 淋巴系与浆细胞 | 7,629 |
| MYB | 中幼粒细胞 | 粒系未成熟 | 6,557 |
| EOS | 嗜酸性粒细胞 | 粒系成熟 | 5,883 |
| MON | 单核细胞 | 单核系 | 4,040 |
| NIF | 不可识别 | 质量控制(非细胞) | 3,538 |
| MMZ | 晚幼粒细胞 | 粒系未成熟 | 3,055 |
| PEB | 原红细胞 | 红系未成熟 | 2,740 |
| BAS | 嗜碱性粒细胞 | 粒系成熟 | 441 |
| HAC | 毛细胞 | 淋巴系病理 | 409 |
| OTH | 其他细胞 | 质量控制 | 294 |
| LYI | 未成熟淋巴细胞 | 淋巴系未成熟 | 65 |
| FGC | Faggot 细胞 | 病理(异常中性粒细胞) | 47 |
| KSC | 涂抹细胞 | 伪影相关(非细胞) | 42 |
| ABE | 异常嗜酸性粒细胞 | 病理 | 8 |
| 合计 | — | — | 171,374 |
分布特征:最大类与最小类之比超过 3,600 比 1。前五类(NGS、EBO、LYT、ART、BLA)合计约 114,664 张,占全体 67%;样本量少于 100 的类别(LYI 65、FGC 47、KSC 42、ABE 8)合计仅 162 张,占比不足 0.1%。这是典型极端长尾分布。
§3.3 文件格式表
| 文件类型 | 格式 | 内容 | 大小 |
|---|---|---|---|
| 单细胞图像 | JPG | 250×250 像素 RGB 细胞 patch | 全量约 6.8 GB |
| 类别缩写表 | CSV 与 TXT | 21 个缩写与其英文全称的映射 | 约 0.4-0.5 kB |
| 标注文件 | DAT(制表符分隔文本) | 图像文件名 + 类别标签(+ 复标列) | 约 538 kB |
标注文件的列结构(依据官方旧版 wiki 页说明):第一列图像文件名,第二列金标准形态学类别;若该图像被复标,第三列为第二位独立标注者的首次复标结果,第四列为同一标注者 11 个月后的第二次复标结果;未复标的图像第三、四列填 nan。
§3.4 存储大小与目录组织
| 项目 | 数值 |
|---|---|
| 官方发布总大小 | 6.8 GB |
| 社区镜像大小 | 6.94 GB |
| 图像总数 | 171,374(TCIA 元数据 171,375) |
| 单张图像平均大小 | 约 40 KB(由总量与张数估算) |
| 下载方式 | TCIA 网页下载,需 IBM Aspera Connect 插件 |
目录组织按类别缩写到千张区间两级嵌套,每个区间子目录内为文件名形如 {缩写}_{5位序号}.jpg 的图像,例如早幼粒细胞类展开为 PMO/0001-1000/PMO_00001.jpg 直至 PMO/11001-11994/PMO_11994.jpg。这种固定命名规则使基于文件名的标签解析非常直接。
§3.5 标注方式
| 维度 | 内容 |
|---|---|
| 标注类型 | 人工全监督单细胞标注 |
| 标注主体 | 慕尼黑大学医院具备常规细胞形态学诊断经验的检验者 |
| 标注粒度 | 单细胞级别,每张图像对应一个细胞 |
| 标注框架 | 源自临床实践的形态学分类树,覆盖各造血谱系的主要生理类别、特征性病理类别,以及伪影与不明对象类别 |
| 是否复标 | 部分图像经第二位独立标注者复标,并在 11 个月后由同一标注者复标 |
| 是否含分割标注 | 不含;仅有分类标签 |
| 是否含患者级标签 | 不含 |
标注框架有一个值得注意的细节:研究者特意为伪影、不可识别、其他细胞设立独立类目,以避免在训练中强行给难以判读的对象指派形态学类别、污染模型学到的决策边界。从数据工程角度看,这既是优点(标签诚实)也是陷阱(这些类目不是临床意义上的细胞类型,直接当作分类目标会扭曲指标)。
§3.6 标注者资质与一致性
| 维度 | 内容 |
|---|---|
| 标注者身份 | 慕尼黑大学医院常规细胞形态学诊断经验丰富的检验者 |
| 标注者数量 | 主标注者 1 名;复标引入第二位独立标注者 |
| 培训与经验 | 具备常规细胞形态学诊断经验(官方表述为 trained examiner experienced in routine cytomorphological diagnostics) |
| 一致性评估设计 | 图像子集由第二位独立标注者复标一次;同一标注者间隔 11 个月后二次复标 |
| 一致性数值 | 官方未在数据集页面披露复合一致性统计量;论文正文报告了观察者间与观察者内变异分析结果 |
| 参考区间 | 文献报道形态学疑难细胞类型的专家间一致性约 85% 至 91% |
一致性评估设计值得肯定:同时覆盖观察者间(inter-rater)与观察者内(intra-rater)两个维度,观察者内复标刻意间隔 11 个月,比常见的同周复标更能暴露真实判读漂移。
§3.7 采集周期与版本记录
| 项目 | 内容 |
|---|---|
| 样本采集窗口 | 2014-2017 |
| 论文发表 | 2021-11-08 |
| 数据集上线 | 2021-11-12(TCIA Version 1) |
| 当前版本 | Version 1 |
| 更新状态 | Complete(TCIA 标注) |
| 后续版本 | 官方未发布 Version 2;作者表示计划扩展数据库以覆盖更广泛的发现 |
§3.8 地域覆盖
数据集为单中心来源,所有样本均在德国慕尼黑的 MLL 慕尼黑白血病实验室完成涂片制备与扫描,医学背景来自 LMU 慕尼黑大学医院,数据不含任何地理或族裔分层字段。单中心属性是最重要的外部有效性限制:染色批次、扫描设备校准、送检人群构成都带机构特异性,跨机构泛化能力无法从数据集内部验证。
§3.9 设备与成像规格
| 项目 | 内容 |
|---|---|
| 成像方式 | 明场显微镜 |
| 放大倍率 | 40× 油镜(oil immersion) |
| 扫描设备 | 由 Fraunhofer IIS 开发的扫描设备 |
| 后处理软件 | Helmholtz Munich 开发的软件 |
| 输出图像 | 250 × 250 像素 JPG 单细胞 patch |
| 染色 | May-Grünwald-Giemsa / Pappenheim |
| 像素分辨率 | 官方未在数据集页面披露微米与像素换算值(图像尺寸已固定为 250×250 像素) |
§3.10 深度溯源链
| 层级 | 内容 |
|---|---|
| 患者层 | 945 例血液系统疾病患者(2014-2017 于慕尼黑) |
| 样本层 | 骨髓穿刺抽吸物 |
| 涂片层 | 玻片涂片,May-Grünwald-Giemsa/Pappenheim 染色 |
| 扫描层 | 明场显微镜 40× 油镜数字扫描(Fraunhofer IIS 设备) |
| 后处理层 | Helmholtz Munich 软件切分单细胞 patch |
| 标注层 | 慕尼黑大学医院专家单细胞形态学标注 |
| 发布层 | TCIA 托管,CC BY 4.0 发布(2021-11-12) |
§4 数据结构
§4.0 目录树
数据解压后的组织方式如下(类别缩写为文件夹名,类内按千张区间二级分目录):
Bone-Marrow-Cytomorphology_MLL_Helmholtz_Fraunhofer/
├── abbreviations.csv # 类别缩写到英文全称映射表
├── annotations.dat # 图像文件名到类别标签(含复标列)
├── BM_cytomorphology_data/ # 主图像目录(21 个类别子目录)
│ ├── ABE/0001-0008/ABE_00001.jpg # 异常嗜酸性粒细胞(8 张)
│ ├── ART/0001-1000/ART_00001.jpg # 伪影(19,630 张),另有 1001-2000/ 等
│ ├── BAS/0001-0441/ # 嗜碱性粒细胞(441 张)
│ ├── BLA/0001-1000/ # 原始细胞(11,973 张)
│ ├── EBO/ # 有核红细胞(27,395 张)
│ ├── EOS/ # 嗜酸性粒细胞(5,883 张)
│ ├── FGC/ # Faggot 细胞(47 张)
│ ├── HAC/ # 毛细胞(409 张)
│ ├── KSC/ # 涂抹细胞(42 张)
│ ├── LYI/ # 未成熟淋巴细胞(65 张)
│ ├── LYT/ # 淋巴细胞(26,242 张)
│ ├── MMZ/ # 晚幼粒细胞(3,055 张)
│ ├── MON/ # 单核细胞(4,040 张)
│ ├── MYB/ # 中幼粒细胞(6,557 张)
│ ├── NGB/ # 杆状核中性粒细胞(9,968 张)
│ ├── NGS/ # 分叶核中性粒细胞(29,424 张)
│ ├── NIF/ # 不可识别(3,538 张)
│ ├── OTH/ # 其他细胞(294 张)
│ ├── PEB/ # 原红细胞(2,740 张)
│ ├── PLM/ # 浆细胞(7,629 张)
│ └── PMO/0001-1000/PMO_00001.jpg ... 11001-11994/ # 早幼粒细胞(11,994 张)
└── metadata/ # TCIA 元数据与许可说明
关键点:类别标签完全由目录路径与文件前缀编码,用 torchvision 的 ImageFolder 或 Keras 的 image_dataset_from_directory 即可在不解码标注文件的情况下直接加载。但任何文件重命名或目录扁平化操作都会破坏标签信息,务必谨慎。
§4.1 DAIMS 字段字典
核心表为图像记录表(每行一张单细胞图像)与类别字典表(每行一个形态学类别)。
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| filename | Text | 单细胞图像文件名,含类别前缀与 5 位序号 | PMO_00001.jpg | 主键,连接图像与标签 | 无 | 无缺失 | 21 个前缀 × 序号 |
| class_abbr | Text(Label) | 形态学类别缩写 | PMO | 分类目标标签 | 专家判读主观性;观察者间一致性约 85%-91% | nan 仅出现在复标列,不出现于主标签 | 21 个取值(ABE 至 PMO) |
| class_name | Text | 类别英文全称 | Promyelocyte | 报告与可视化 | 术语版本差异 | 无缺失 | 21 个类别名 |
| lineage | Text(Label) | 所属造血谱系或质控类别 | 粒系未成熟 | 层级分类、分组评测 | 类别边界处存在归属歧义 | 无缺失 | 粒系与红系与淋巴系与单核系与病理与质控 |
| image_width | Integer | 图像宽度(像素) | 250 | 统一预处理尺寸 | 无 | 无缺失 | 固定 250 |
| image_height | Integer | 图像高度(像素) | 250 | 统一预处理尺寸 | 无 | 无缺失 | 固定 250 |
| image_format | Text | 图像编码格式 | JPG | 解码器选择 | JPEG 有损压缩带来轻微伪影 | 无缺失 | JPG |
| stain | Text | 染色方法 | May-Grünwald-Giemsa/Pappenheim | 域偏移分析依据 | 染色批次差异 | 无缺失 | 固定单一方法 |
| magnification | Text | 光学放大倍率 | 40× 油镜 | 与外部数据集对齐 | 设备校准差异 | 无缺失 | 固定 40× |
| patient_id | 不适用 | 患者标识 | 官方未提供 | 患者级划分 | 官方未提供 | 不适用 | 官方未提供 |
| reannot_1 | Text(Label) | 第二位独立标注者的复标结果 | NGS | 一致性建模、标签噪声研究 | 观察者间差异 | nan(未复标) | 21 个取值 + nan |
| reannot_2 | Text(Label) | 同一标注者 11 个月后的复标结果 | NGS | 观察者内变异分析 | 时间导致的判读漂移 | nan(未复标) | 21 个取值 + nan |
字段字典说明:patient_id 一行明确标注为官方未提供,这是本数据集在患者级分析与划分上的根本限制,不可用其他字段替代或推断。
§4.2 标签分布与长尾特征
| 分组 | 类别 | 合计图像数 | 占比 |
|---|---|---|---|
| 头部(超过 20,000 张) | NGS、EBO、LYT | 83,061 | 48.5% |
| 肩部(5,000-20,000 张) | ART、PMO、BLA、NGB、PLM、MYB、EOS | 72,834 | 42.5% |
| 中部(1,000-5,000 张) | MON、NIF、MMZ、PEB | 13,373 | 7.8% |
| 尾部(100-1,000 张) | BAS、HAC、OTH | 1,144 | 0.7% |
| 极尾(少于 100 张) | LYI、FGC、KSC、ABE | 162 | 0.09% |
| 质控类目合计 | ART、NIF、OTH、KSC | 28,997 | 16.9% |
两个易被忽视的结构特征值得强调。第一,质控类目(伪影、不可识别、其他细胞、涂抹细胞)合计占 16.9%,是第四大类群,若不加区分地纳入多分类目标,模型会把大量容量用于学习这些更像垃圾而非临床细胞形态的对象。第二,极尾四类合计仅 162 张,五折交叉验证中每折测试集可能只分到个位数样本,单折指标波动极大,必须做折间聚合才能得到稳定结论。
§4.3 关键统计
| 统计量 | 数值 |
|---|---|
| 图像总数 | 171,374 |
| 患者总数 | 945 |
| 类别总数 | 21 |
| 平均每类图像数 | 约 8,161 |
| 中位类别样本数 | 5,883 |
| 最大类与最小类比值 | 约 3,678 比 1 |
| 单细胞图像尺寸 | 250 × 250 像素 |
| 图像平均文件大小 | 约 40 KB |
| 数据集总大小 | 6.8 GB |
| 标注方式 | 人工单细胞全监督标注 |
| 独立验证集规模 | 627 张(论文报告) |
数量级对照:945 例患者对应 171,374 张图像,平均每例约 181 张图像被标注。这说明标注是抽样式进行的——并非把每张涂片的所有细胞都标完,而只选取信息量较高的区域。因此数据集细胞比例不代表患者真实骨髓细胞分类计数比例,不能直接用于重建临床分类计数值。
§4.4 数据层级
| 层级 | 单位 | 数量 | 说明 |
|---|---|---|---|
| L1 患者 | 患者 | 945 | 无标识,官方未提供患者级键 |
| L2 样本 | 骨髓穿刺样本 | 官方未披露 | 每位患者通常一个样本,具体数量未公布 |
| L3 涂片 | 玻片 | 官方未披露 | 涂片数未公布 |
| L4 扫描区域 | 显微扫描视野 | 官方未披露 | 扫描与切分参数未逐层披露 |
| L5 单细胞图像 | 细胞 patch | 171,374 | 数据集的最小分析单位 |
| L6 标签 | 形态学类别 | 21 | 唯一的监督信号 |
层级链的关键断裂点在 L1 与 L5 之间:数据集公开形态只有图像与标签两层,中间的患者、样本、涂片、扫描视野四层没有对应分组键,直接导致无法实现患者级数据划分(详见 §5.3)。
§4.5 缺失值与信息性缺失编码
| 字段与维度 | 缺失情况 | 编码或说明 | 处理建议 |
|---|---|---|---|
| 复标列 reannot_1 | 部分图像未复标 | 官方编码为字符串 nan | 读取时显式声明 na_values 包含 nan,避免被解析为类别 |
| 复标列 reannot_2 | 部分图像未复标 | 官方编码为字符串 nan | 同上;注意 nan 作为字符串与 NaN 浮点值的区别 |
| patient_id | 全部缺失 | 官方未提供 | 不可推断;划分时只能退化为类别分层随机划分 |
| 年龄与性别与族裔 | 全部缺失 | 官方未提供 | 无法做公平性分组建模 |
| 诊断标签 | 全部缺失 | 官方未提供 | 无法做患者级疾病分类任务 |
| 随访与结局 | 全部缺失 | 官方未提供 | 无法做预后建模 |
| 采集时间戳 | 全部缺失 | 官方未提供 | 无法做时间维度的漂移分析 |
特别提醒 nan 的处理:许多读取器会自动把字符串 nan 转换为浮点 NaN,而另一些(如显式指定字符串类型的 pandas)会保留为字符串。若不做统一,同一份标注文件在不同环境下可能把字符串 nan 当作第 22 个类别,静默污染整个训练流程。
§5 数据划分与使用建议
§5.1 官方划分
| 项目 | 内容 |
|---|---|
| 官方训练与验证与测试划分 | 未提供 |
| 论文评估协议 | 五折交叉验证 + 一个 627 张图像的独立验证集 |
| 划分粒度 | 论文未明确说明是否按患者隔离 |
| 类别分层 | 论文提及使用数据增广与交叉验证应对类别不平衡 |
官方未发布固定划分文件,这既是灵活性来源也是复现困难的原因:不同论文的五折交叉验证可能对应完全不同的划分,数字不可直接比较。
§5.2 社区惯例划分
| 来源 | 划分方式 | 注意点 |
|---|---|---|
| HuggingFace 镜像(ekim15/bone_marrow_cell_dataset) | 80 与 10 与 10,train 137k 与 validation 17.1k 与 test 17.1k | 随机划分,未按患者隔离;便于快速上手,不适合作为正式论文评测划分 |
| 原论文协议 | 五折交叉验证 | 未公开折索引文件 |
| 多数复现仓库 | 自行按类目录随机划分或留出法 | 划分不可比,需在论文中声明 |
| 自监督迁移研究 | 无标签全量预训练,再以小样本(如每类 50 样本)微调 | 强调标签效率而非绝对精度 |
§5.3 泄漏风险(重点)
该数据集存在三类真实且容易被忽视的泄漏风险。
第一类:患者级泄漏。 由于官方不提供患者标识,任何随机划分都可能把同一患者的多张涂片细胞分到训练集与测试集中。同一患者的细胞在染色批次、扫描亮度、整体形态倾向上高度一致,模型可从中提取患者指纹而非细胞形态特征,从而在测试集上虚高。考虑到平均每例患者贡献约 181 张图像,这种泄漏影响非常显著。缓解方案:若能通过图像元数据或文件命名回溯患者,务必按患者分组划分;若无法回溯,应在论文中明确声明该限制,至少用类别分层随机划分降低类别分布偏移,并避免过度解读绝对性能。
第二类:近邻泄漏。 骨髓涂片中相邻细胞常出现在同一视野内,切出的 patch 边缘保留邻近细胞影像,同源 patch 之间可能在背景纹理上高度相似,形成弱近邻关系。若近邻被分到不同折,模型可能通过背景纹理认出院落。缓解方案:切分前对图像做背景相似度聚类并按聚类分组划分,或统一裁切图像边缘以削弱背景信息。
第三类:质控类目的定义泄漏。 伪影、不可识别、其他细胞本质上不是形态学类别,而是标注难度的代理。把它们当普通类别参与训练与评测,模型学到的判别边界部分反映标注流程的偶然性。更隐蔽的问题是伪影类图像携带大量非细胞信息,模型很容易通过图像是否包含完整细胞结构这一退化解法获得高准确率。缓解方案:报告指标时区分细胞类别与质控类别两组分别给出结果,或将质控类目排除在主要评测之外并单独报告。
§5.4 交叉验证建议
| 建议项 | 具体做法 |
|---|---|
| 折数 | 5 折,与原始论文保持一致以便对照 |
| 分层策略 | 按类别分层抽样,确保尾部类别在每折中至少有 1 个样本 |
| 尾部类别处理 | 极尾四类(LYI 65、FGC 47、KSC 42、ABE 8)建议合并为稀有类或单独报告,不参与宏平均稳定性判断 |
| 随机种子 | 至少重复 3 个种子,报告均值与标准差;单折结果不足以支撑结论 |
| 患者隔离 | 若可回溯患者,必须按患者分组;否则在论文局限性中明确披露 |
| 指标报告 | 同时报告总体准确率、平衡准确率、宏平均 F1 与逐类精确率与召回率 |
§5.5 外部验证建议
| 验证场景 | 推荐资源 | 验证目标 |
|---|---|---|
| 跨染色与跨设备泛化 | Matek AML 外周血数据集、Acevedo 外周血数据集 | 检验模型在染色与放大倍率变化下的稳定性 |
| 跨域迁移能力 | Raabin-WBC 数据集 | 检验在完全不同实验室与设备条件下的表现 |
| 多中心临床验证 | 院内私有骨髓涂片数据(需伦理批准) | 检验真实临床工作流中的可用性 |
| 临床对标 | 与多位血液病理学家头对头比较 | 建立人类性能基线,判断模型是否达到人级水平 |
| 前瞻性验证 | 前瞻性采集的新患者队列 | 排除回溯性设计与样本选择带来的乐观偏差 |
外部验证的核心价值在于回答一个数据集内部无法回答的问题:模型学到的是细胞形态学,还是慕尼黑的成像风格。
§6 AI 就绪指南
§6.0 云端快速启动
若不想本地下载 6.8 GB 数据,可优先使用社区镜像以 parquet 形式按需流式读取。以下流程假定使用带 GPU 的云端环境。
# 环境准备(Python 3.10 及以上)
pip install torch torchvision datasets pillow scikit-learn pandas matplotlib
# 验证 GPU 可用性
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'cpu')"
镜像版本用于快速验证流程,不是最终实验的数据源。流程跑通后应切换到 TCIA 官方版本,以保证引用合规与数据完整性。
§6.1 快速上手
以下脚本假定你已从 TCIA 下载并解压数据,目录结构预期与 data_root 拼接关系如下:
# 目录结构预期:
# {data_root}/BM_cytomorphology_data/{CLASS_ABBR}/{区间}/{CLASS_ABBR}_{序号}.jpg
# 例如:./data/BM_cytomorphology_data/PMO/0001-1000/PMO_00001.jpg
# ImageFolder 要求其下一级子目录即类别,故 data_root 指向 BM_cytomorphology_data。
# 快速验证建议只取 NGS / EBO / LYT / BLA / PMO 五个头部类别,
# 合计约 95,000 张,可在单卡上跑通完整流程。
from pathlib import Path
data_root = Path("./data/BM_cytomorphology_data")
assert data_root.exists(), f"未找到数据目录: {data_root}"
classes = sorted(d.name for d in data_root.iterdir() if d.is_dir())
print(f"检测到 {len(classes)} 个类别目录:{classes}")
# 逐类计数(不加载像素)
counts = {c: sum(1 for _ in (data_root / c).rglob("*.jpg")) for c in classes}
total = sum(counts.values())
print(f"图像总数: {total}")
for c, n in sorted(counts.items(), key=lambda kv: -kv[1]):
print(f" {c:>4}: {n:>7} ({n / total * 100:5.2f}%)")
§6.2 数据获取
| 获取途径 | 地址类型 | 大小 | 前置条件 | 适用场景 |
|---|---|---|---|---|
| TCIA 官方合集页 | 官方发布 | 6.8 GB | 浏览器 + IBM Aspera Connect 插件 | 正式研究与论文实验 |
| TCIA 旧版 wiki 下载页 | 官方发布 | 6.8 GB | 同上 | 直接定位下载包 |
| Kaggle 镜像 | 社区再分发 | 6.94 GB | Kaggle 账号 | 快速试用、免 Aspera |
| HuggingFace 镜像 | 社区再分发 | 约 6.94 GB(parquet) | 无 | 流式读取、免下载全量 |
官方下载流程要点:
# 1. 安装 IBM Aspera Connect(浏览器插件形式,用于加速大文件传输)
# 访问 TCIA 合集页,在 Data Access 区域点击 Download (6.8gb)
# 2. 若使用命令行工具,可借助 aspera 客户端:
# ascp -QT -l 100m -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \
# 你的ASPERA下载源路径 ./data/
# 3. 解压后应得到 BM_cytomorphology_data/ 类别目录树
# 4. 校验:图像数应为 171,374(或 TCIA 元数据记录的 171,375)
python - <<'PY'
from pathlib import Path
root = Path("./data/BM_cytomorphology_data")
n = sum(1 for _ in root.rglob("*.jpg"))
print("实际图像数:", n)
print("与官方数字差异:", n - 171374)
PY
许可与引用要求:该数据集采用 CC BY 4.0,允许使用、分发与改造,但必须署名。任何基于该数据集的发表物都应同时引用数据 DOI(10.7937/TCIA.AXH3-T579)与论文(10.1182/blood.2020010568),并遵守 TCIA Data Usage Policy and Restrictions。
§6.3 预处理全流程
预处理分四步:建索引、清洗、分层划分、统计标准化参数。
# 步骤 1-3:扫描元数据、清洗、构建划分索引(不加载像素,速度快)
from pathlib import Path
import pandas as pd
from PIL import Image
from sklearn.model_selection import train_test_split data_root = Path("./data/BM_cytomorphology_data")
df = pd.DataFrame([
{"path": str(p), "label": d.name}
for d in sorted(x for x in data_root.iterdir() if x.is_dir())
for p in d.rglob("*.jpg")
])
print("原始记录数:", len(df))
def is_valid(p):
"""校验文件完整性、尺寸与位深。"""
try:
with Image.open(p) as im:
im.verify()
with Image.open(p) as im:
return im.size == (250, 250) and im.mode in ("RGB", "L")
except Exception:
return False
# 全量校验较慢,先抽样验证流程是否跑通
bad = [p for p in df.sample(2000, random_state=42)["path"] if not is_valid(p)]
print(f"抽样 2000 张中异常 {len(bad)} 张")
df = df[df["path"].apply(is_valid)].reset_index(drop=True)
# 标签语义分层:区分 17 个细胞类别与 4 个质控类别
QC_CLASSES = {"ART", "NIF", "OTH", "KSC"}
df["is_qc"] = df["label"].isin(QC_CLASSES)
print(df.groupby("is_qc").size())
print(df["label"].value_counts().describe()) # 长尾分布统计
# 划分(患者标识不可得,至少按类别分层)
train_df, temp_df = train_test_split(df, test_size=0.30,
stratify=df["label"], random_state=42)
val_df, test_df = train_test_split(temp_df, test_size=0.50,
stratify=temp_df["label"], random_state=42)
for name, frame in [("train", train_df), ("val", val_df), ("test", test_df)]:
frame.to_csv(f"{name}.csv", index=False)
print(name, len(frame))
# 步骤 4:统计标准化参数(务必只用训练集,避免统计泄漏)
import torch
from torchvision import transforms
from torch.utils.data import DataLoader
_tf = transforms.Compose([transforms.Resize((224, 224)), transforms.ToTensor()])
loader = DataLoader(SimpleImageDataset(train_df, _tf),
batch_size=256, shuffle=False, num_workers=8)
mean, std, n = torch.zeros(3), torch.zeros(3), 0
for imgs, _ in loader:
b = imgs.size(0)
mean += imgs.view(b, 3, -1).mean(2).sum(0)
std += imgs.view(b, 3, -1).std(2).sum(0)
n += b
print("训练集均值:", (mean / n).tolist())
print("训练集标准差:", (std / n).tolist())
# 将结果填入 §6.4 的 Normalize,而非套用 ImageNet 默认值
关于标准化参数有一个实操判断:骨髓涂片染色图像的色彩分布与自然图像差异很大(整体偏紫蓝、背景偏浅),直接套用 ImageNet 均值方差会引入不必要的分布偏移,用训练集自身统计量归一化通常更稳。
§6.4 PyTorch DataLoader 完整实现
# 完整可运行的 Dataset + transform + DataLoader
# 采用 CSV 索引(train/val/test),便于在同一份图像上切换划分方案而不复制文件。
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader, WeightedRandomSampler
from torchvision import transforms
from PIL import Image
import pandas as pd
# ---------- 1. 标签映射 ----------
CLASSES = ["ABE", "ART", "BAS", "BLA", "EBO", "EOS", "FGC", "HAC", "KSC",
"LYI", "LYT", "MMZ", "MON", "MYB", "NGB", "NGS", "NIF", "OTH",
"PEB", "PLM", "PMO"]
assert len(CLASSES) == 21
class_to_idx = {c: i for i, c in enumerate(CLASSES)}
MEAN = [0.72, 0.66, 0.72] # 替换为 §6.3 步骤 4 实测值
STD = [0.20, 0.21, 0.19] # 替换为 §6.3 步骤 4 实测值
# ---------- 2. 训练与验证 transform ----------
train_tf = transforms.Compose([
transforms.Resize((224, 224)),
transforms.RandomHorizontalFlip(p=0.5),
transforms.RandomVerticalFlip(p=0.5),
transforms.RandomRotation(degrees=180), # 显微镜图像无固定方向
transforms.ColorJitter(brightness=0.15, contrast=0.15,
saturation=0.15, hue=0.03), # 模拟染色批次差异
transforms.ToTensor(),
transforms.Normalize(mean=MEAN, std=STD),
])
eval_tf = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=MEAN, std=STD),
])
# ---------- 3. Dataset ----------
class BMCellDataset(Dataset):
"""基于 CSV 索引的骨髓单细胞数据集。"""
def __init__(self, csv_path, transform, class_to_idx):
self.frame = pd.read_csv(csv_path)
self.transform = transform
self.class_to_idx = class_to_idx
unknown = set(self.frame["label"]) - set(class_to_idx)
if unknown: # 提前校验,避免训练中途才报错
raise ValueError(f"CSV 中存在未知类别: {unknown}")
def __len__(self):
return len(self.frame)
def __getitem__(self, idx):
row = self.frame.iloc[idx]
image = Image.open(row["path"]).convert("RGB")
if self.transform is not None:
image = self.transform(image)
return image, self.class_to_idx[row["label"]]
# ---------- 4. 类别加权采样器(对抗长尾) ----------
def build_sampler(csv_path, class_to_idx, num_samples=None):
"""按类别逆频率加权采样,等价于对尾部类别做温和过采样。"""
labels = pd.read_csv(csv_path)["label"].map(class_to_idx).to_numpy()
counts = np.maximum(np.bincount(labels, minlength=len(class_to_idx)), 1)
weights = torch.as_tensor((1.0 / counts)[labels], dtype=torch.double)
return WeightedRandomSampler(weights, num_samples or len(labels), True)
# ---------- 5. DataLoader 实例化 ----------
train_ds = BMCellDataset("train.csv", train_tf, class_to_idx)
val_ds = BMCellDataset("val.csv", eval_tf, class_to_idx)
test_ds = BMCellDataset("test.csv", eval_tf, class_to_idx)
train_loader = DataLoader(train_ds, batch_size=64, num_workers=8,
sampler=build_sampler("train.csv", class_to_idx),
pin_memory=True, drop_last=True)
val_loader = DataLoader(val_ds, batch_size=128, shuffle=False,
num_workers=8, pin_memory=True)
test_loader = DataLoader(test_ds, batch_size=128, shuffle=False,
num_workers=8, pin_memory=True)
# ---------- 6. 训练循环骨架 ----------
def run_epoch(model, loader, criterion, optimizer=None, device="cuda"):
is_train = optimizer is not None
model.train(is_train)
total, correct, loss_sum = 0, 0, 0.0
for images, labels in loader:
images = images.to(device, non_blocking=True)
labels = labels.to(device, non_blocking=True)
with torch.set_grad_enabled(is_train):
logits = model(images)
loss = criterion(logits, labels)
if is_train:
optimizer.zero_grad(set_to_none=True)
loss.backward()
optimizer.step()
loss_sum += loss.item() * images.size(0)
correct += (logits.argmax(1) == labels).sum().item()
total += images.size(0)
return loss_sum / total, correct / total
# 骨干可换为 resnext50_32x4d(weights="IMAGENET1K_V2"),
# 末层改为 nn.Linear(2048, 21),损失用类别加权的 CrossEntropyLoss。
§6.5 坑点与失败模式
⚠️ 坑点 1:把总体准确率当成模型能力(分类:评估误用)
问题:数据集极端长尾,头部三类占近半。若按自然分布训练并只报告总体准确率,模型只要学会往头部猜就能拿到不错的数字,而临床最关键的原始细胞识别可能极差。论文级别的复现显示,普通顺序 CNN 可报告精确率与召回率与 F1 均约 74%,但平衡准确率只有 44%。
症状:验证集准确率升至 70% 以上,但混淆矩阵显示少数类(LYI、FGC、KSC、ABE、HAC)几乎未被正确预测;宏平均 F1 远低于总体准确率;原始细胞类召回率存在大量漏检。
解决:
- 简单方法:报告时同时给出平衡准确率与逐类精确率与召回率,把总体准确率与平衡准确率的差值作为长尾受害程度的量化指标;差值超过 20 个百分点即说明模型严重偏向头部。
- 进阶方法:使用逆频率类别加权损失或 WeightedRandomSampler 采样,并在验证时固定原始分布以保持指标可解释。损失函数可写为按权重 w_c = (N / (C * n_c))^beta 对各类损失加权,beta 在 0 到 1 之间控制补偿强度:为 0 时退化为普通交叉熵,为 1 时为完全逆频率加权。
- SOTA 方法:两阶段训练(先自然分布预训练,再在均衡子集上微调分类头)、度量学习(如 SupCon)或解耦训练(decoupled training,分别处理表示学习与分类器再平衡),也可引入生成模型补充尾部类别样本。
参考:Matek et al., 2021, Blood, DOI 10.1182/blood.2020010568;以及长尾分类中 decoupled training 与 SupCon 相关文献。
⚠️ 坑点 2:把伪影和不可识别当成正常类别(分类:标签理解)
问题:21 个类别中有 4 个(ART 伪影 19,630 张、NIF 不可识别 3,538 张、OTH 其他细胞 294 张、KSC 涂抹细胞 42 张)并非临床意义上的细胞类型,而是研究者为难以归类对象设立的诚实标注出口。把它们当普通类目参与训练与评测会同时污染指标与模型行为:质控类合计占比达 16.9%,模型会把大量容量用于学习与临床无关的判别边界。
症状:模型在 ART 类上表现很好(伪影视觉特征明显),但真实细胞类别间的细粒度区分没有改善;部署到临床数据后大量真实细胞被预测为伪影或不可识别;宏平均指标被质控类目拉高或拉低,掩盖真正的细胞分类能力。
解决:
- 简单方法:计算指标时把 ART、NIF、OTH、KSC 归为非细胞与质控组,与 17 个细胞类别分开报告,主表只呈现细胞类别指标。
- 进阶方法:训练二分类门控网络先判断是否为可分类细胞对象,再把可分类对象送入 17 类细胞分类器;同时把质控类目降级为辅助任务(多任务学习的一支),而非主分类目标。
- SOTA 方法:采用可弃权分类(classification with abstention)框架,让模型输出弃权分数并对弃权样本设置合理的下游处理路径(人工复核),比强行预测一个伪影类更贴近临床工作流。
参考:TCIA 官方类别缩写说明(ART、NIF、OTH、KSC 的定义);以及可弃权分类相关文献。
⚠️ 坑点 3:患者级泄漏导致性能虚高(分类:数据泄漏)
问题:官方不提供患者标识,而 945 例患者平均每人贡献约 181 张标注图像。若按图像随机划分训练与测试集,同一患者的高度同质图像会同时出现在两侧。同一患者的细胞共享染色批次、扫描亮度与个体形态倾向,模型可据此做患者识别而非形态学分类,从而在测试集上得到虚高成绩。
症状:内部验证指标很高(如宏 F1 超过 0.9),但换一个机构的数据后性能断崖式下跌;错误分析发现模型对同一患者的样本预测高度一致,即使形态差异明显;t-SNE 可视化显示同一批次样本聚成紧密簇。
解决:
- 简单方法:接受该限制,明确在论文中声明数据集未提供患者标识、划分未按患者隔离,并把绝对指标表述为该划分条件下的上限估计而非可泛化性能。
- 进阶方法:从图像元数据、文件序号连续性或图像背景统计中溯源患者分组,实施分组划分(GroupKFold);即使只能恢复部分患者分组也能显著降低泄漏。
- SOTA 方法:引入域泛化训练(如跨伪域一致性正则、IRM 或 GroupDRO),让模型学习对批次与患者相关扰动不敏感的表征,再配合跨机构外部验证作为最终判据。
参考:TCIA 数据集页面未披露患者标识字段;医学图像患者级泄漏的通用讨论见相关方法论文献。
⚠️ 坑点 4:用最终形态精度评估成熟阶段相邻类(分类:标签理解)
问题:粒系成熟是连续过程,早幼粒细胞、中幼粒细胞、晚幼粒细胞之间的边界本带主观性,杆状核与分叶核中性粒细胞同样容易分歧。文献报道形态学疑难细胞类型的专家间一致性约 85% 至 91%,意味着人类专家在这些类上也会互相判错。若用严格的单标签精确匹配评估模型并与人类对标,会系统性低估模型的实际临床可用性。
症状:混淆矩阵中大量错误集中在对角线相邻的成熟阶段对(PMO 与 MYB、MYB 与 MMZ、NGB 与 NGS);论文报告分叶核中性粒细胞精确率约 92% 而晚幼粒细胞仅约 30%,看似矛盾;模型的实际错误中相当部分错到了相邻阶段而非完全无关的谱系。
解决:
- 简单方法:报告两套指标——严格口径(精确匹配)与宽松口径(允许相邻成熟阶段互换),两者差距即边界模糊导致的不可区分误差。
- 进阶方法:定义类别邻接图,引入层级或序数损失,使相邻阶段之间的错误惩罚低于跨谱系错误。序数损失可用累积链接模型形式,或对预测分布与标签在有序轴上的距离施加软惩罚。
- SOTA 方法:评估时引入人类参考带,用多位专家的共识分布代替单一标签,计算模型与共识分布的散度(如 KL 散度或 Earth Mover 距离),而非与单一标签硬匹配。
参考:Matek et al., 2021, Blood 中严格与宽松评估对比;以及粒细胞成熟阶段序数分类相关研究。
⚠️ 坑点 5:把细胞比例当作临床分类计数使用(分类:标签理解)
问题:数据集的 171,374 张图像不是涂片上所有细胞的完整枚举,而是按信息量选取的抽样标注(平均每例约 181 张)。类别间的图像数量比例反映标注采样策略,而非患者真实的骨髓细胞分类计数比例。若直接用数据集统计推断临床参考区间,会得到严重偏离的结论。
症状:基于数据集计算的原始细胞占比远高于临床实际阈值,导致模型学到的先验概率与真实患者群体不匹配;把模型输出的类别概率直接解释为临床细胞百分比后,与检验科报告严重不符。
解决:
- 简单方法:在文档与论文中明确声明本数据集的类别分布不代表临床细胞分类计数分布,禁止用其频次统计推断流行病学或参考区间。
- 进阶方法:若需患者级细胞分类计数,必须回到完整涂片层面做全视野细胞检测与计数,把本数据集仅用于训练单细胞分类器,再用分类器对整张涂片所有细胞应用并统计比例。
- SOTA 方法:构建检测与分类与计数的级联流水线,并在真实检验科报告上校准,检验模型输出比例能否复现临床分类计数结果。
参考:Matek et al., 2021, Blood(数据集定位为单细胞分类资源,而非患者级分类计数)。
⚠️ 坑点 6:背景捷径学习与可解释性审计缺失(分类:偏倚陷阱)
问题:图像 patch 从涂片中直接切出,未做裁剪或过滤,每个 patch 内除中央目标细胞外还保留邻近细胞、红细胞、血小板与细胞碎片。模型完全可能通过背景纹理、染色深浅甚至 JPEG 压缩痕迹区分类别,而非通过细胞核形态。研究已表明,监督训练的骨髓模型注意力会偏离细胞本身,自监督特征提取器则更聚焦于细胞。
症状:Grad-CAM 或注意力热图高亮区域落在细胞外背景而非细胞核;遮挡目标细胞区域后模型预测几乎不变(说明没在看细胞);模型在合成噪声背景的同类别图像上表现异常好;换扫描设备后性能骤降。
解决:
- 简单方法:对每个模型强制做可解释性审计,用 Grad-CAM 或 SmoothGrad 生成热力图并人工抽查,确认高亮区域与细胞结构重合。
- 进阶方法:做遮挡敏感性测试——系统性遮挡图像中央细胞区域与外围背景区域,比较两者对预测置信度的影响;若遮挡背景导致的置信度下降大于遮挡细胞,则存在背景捷径。同时可用中心裁剪或圆形掩膜抑制背景作为消融对照。
- SOTA 方法:训练时引入背景扰动增强(随机替换背景、颜色抖动、涂抹遮挡)迫使模型依赖细胞形态;或采用自监督预训练获得更聚焦的表征再以少量标签微调,已有研究表明这种方式得到的注意力更集中于细胞区域。
参考:自监督血液细胞分类研究(IPMI-ICNS-UKE 的 SSL 工作);以及遮挡敏感性分析通用方法论。
⚠️ 坑点 7:跨染色与跨设备的域偏移被低估(分类:偏倚陷阱)
问题:全部数据来自同一实验室、同一染色方案(May-Grünwald-Giemsa/Pappenheim)、同一套扫描设备与后处理软件。图像的颜色分布、背景亮度、细胞大小尺度都带强烈机构指纹,模型学到的色彩相关特征在其他机构会完全失效。文献明确指出,不同数据集的染色条件差异会导致细胞外观显著不同。
症状:模型在内部验证集上表现稳定,但应用到院内旧设备扫描的图像或公开外部数据集时准确率大幅下降;外部图像做简单直方图匹配后性能回升,说明颜色分布是主要失效因素;同一模型在不同扫描仪上的预测一致性很低。
解决:
- 简单方法:对外部数据做颜色标准化(Reinhard 染色归一化或 Macenko 方法),把目标域颜色统计对齐到本数据集训练集统计,作为零成本前置步骤。
- 进阶方法:训练时使用强颜色增广(色调、饱和度、亮度、对比度扰动)与灰度化对照实验,评估模型对颜色信息的依赖程度;若灰度化后性能下降有限,说明形态学特征已被学到。
- SOTA 方法:采用自监督预训练加小样本微调的迁移范式;已有研究显示在骨髓数据上预训练的特征提取器可跨域迁移到外周血数据集并达到当时最优,每类仅需约 50 个标注样本即可获得可用分类器。
参考:自监督跨域迁移研究(IPMI-ICNS-UKE,SSL 特征提取器公开于 Zenodo)。
⚠️ 坑点 8:下载与文件组织的工程陷阱(分类:工程陷阱)
问题:官方数据通过 TCIA 发布,需 IBM Aspera Connect 插件,且目录按类别与千张区间两级嵌套,一个类别动辄十几个子目录。社区复现者常逐类逐子目录手工下载以节省带宽,极易出现漏下、重复下载、目录层级错位等问题;由于文件数量巨大(17 万张),错误往往在训练结束后才通过异常指标暴露。
症状:图像总数校验通不过(不是 171,374);某几个类别的实际张数与官方公布样本数不符;ImageFolder 读到的类别数不是 21;训练的类别分布与文献报告差异很大。
解决:
- 简单方法:下载完成后立即做逐类计数校验,把实际张数与官方公布的 21 类样本数逐一比对,任何不匹配都要先修好再进入训练。
- 进阶方法:编写可复现的校验脚本,同时校验总数、逐类数量、文件命名规范(缩写加 5 位序号)与图像尺寸(250×250),并把结果落盘为清单文件,作为数据版本的一部分。
- SOTA 方法:为数据集建立内容哈希清单(manifest),记录每个文件的路径、大小与哈希值,使数据版本可追溯、可校验、可复现;配合 DVC 或类似工具管理数据版本,避免结果与他人不一致却不知差在哪。
参考:TCIA 官方下载说明;社区复现仓库中逐类下载与目录组织的实践记录。
§6.6 数据增强策略
| 增强操作 | 安全性 | 说明 |
|---|---|---|
| 随机旋转(0-360 度) | ✅ 安全 | 显微镜下细胞无固定朝向,任意角度旋转都符合物理现实 |
| 随机水平与垂直翻转 | ✅ 安全 | 无方向性语义,不改变形态学判读依据 |
| 亮度与对比度微调 | ✅ 安全 | 模拟染色深浅与曝光差异,幅度应控制在温和范围 |
| 轻微缩放与平移 | ✅ 安全 | 模拟细胞在视野中的位置变化 |
| 高斯噪声 | ✅ 安全 | 模拟相机噪声,适度使用有益 |
| 饱和度与色调微扰 | ⚠️ 谨慎 | 染色差异确实存在,但幅度过大会让嗜酸性与嗜碱性颗粒的着色失真,反而破坏判读依据 |
| Cutout 与随机遮挡 | ⚠️ 谨慎 | 可抑制背景捷径,但若遮挡到细胞核会破坏标签语义,建议只遮挡边缘区域 |
| 灰度化 | ⚠️ 谨慎 | 作为鲁棒性对照实验可以,作为常规增强会丢弃染色信息 |
| 弹性形变 | ❌ 危险 | 会改变细胞核轮廓与颗粒分布,直接破坏形态学特征 |
| 任意裁剪(切断细胞) | ❌ 危险 | 可能把目标细胞裁出画面,产生标签错误的样本 |
| 强透视变换 | ❌ 危险 | 显微镜视野无透视效应,引入后产生不属于该模态的伪影 |
| 用外周血图像做混合增强 | ❌ 危险 | 跨域混合会产生现实中不存在的染色与背景组合 |
| 过度欠采样头部类别 | ❌ 危险 | 与坑点 1 相关:简单丢弃头部样本会同时损失重要形态多样性 |
增强策略的核心判据只有一条:改动后一位血液形态学专家是否还能对该图像作出与标签一致的判读?若不能,该增强就在破坏标签语义。
§6.7 模型推荐
| 模型 | 参数量级 | 在本数据集上的定位 | 备注 |
|---|---|---|---|
| ResNeXt-50 (32×4d) | 约 25M | 原始论文基线,五折平均准确率 0.86 | 务必从该基线开始,作为一切改进的对照 |
| 顺序 CNN(论文的中等规模网络) | 较小 | 快速基线,便于验证流水线正确性 | 宏平均约 74%,但平衡准确率仅约 44%,是坑点 1 的直观教材 |
| EfficientNetV2 与 VGG-19 BN 与 ResNet-152 | 20M-140M | 效率与精度的权衡选择 | 文献报告部分架构在效率上优于 ResNeXt-50 |
| RegNet_Y_32gf(ImageNet 预训练) | 约 19M | 域外评测表现突出,精确率 0.787 与召回 0.755 与 F1 0.762 | 适合作为强预训练对照 |
| CoAtNet | 中等 | 卷积与注意力混合,配合类平衡增广 | 适合探索架构层面的改进 |
| DenseNet121 + 注意力机制 | 约 8M | 参数量小,适合资源受限场景 | 注意已有研究仅选 7 个类别且不含原始细胞,不可与全 21 类结果直接比较 |
| DAGDNet(双注意力门 DenseNet) | 中等 | 通过抑制背景信号提升细粒度表现 | 平均精确率 0.881,原始细胞精确率 0.852 与召回 0.834 |
| Siamese 网络 | 中等 | 关注样本间相似性与差异性,而非单图特征 | 原始细胞精确率与召回率均约 0.89,在原始细胞任务上优于原始基线 |
| Vision Transformer (ViT) | 86M 以上 | 在本数据集规模下通常不占优 | 文献指出 ViT 需要更大的数据规模才能体现优势 |
| 自监督编码器 + 线性分类器 | 视骨干而定 | 标签效率最优路线 | 每类约 50 个标注样本即可获得可用分类器,且注意力更聚焦细胞 |
选型建议:先跑通 ResNeXt-50 基线并复现论文数量级,再依次尝试类别加权与强增广、预训练骨干替换、自监督预训练加小样本微调。跳过基线直接上复杂架构,往往无法判断提升来自架构还是超参调优。
§6.8 硬件需求
| 场景 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| 流水线验证(1-2 个类别子集) | 单卡 8 GB 显存,16 GB 内存 | 单卡 16 GB | 用 224×224 输入、batch size 32 即可跑通 |
| 全量训练(ResNeXt-50,224×224) | 单卡 16 GB,64 GB 内存,500 GB 存储 | 单卡 24-40 GB | batch size 64-128,混合精度训练 |
| 全量训练(更强骨干或更高分辨率) | 单卡 24 GB | 多卡并行 | 高分辨率输入(320 或 384)对显存需求上升明显 |
| 自监督预训练 | 单卡 24 GB | 多卡 | 对比学习类方法对 batch size 敏感,显存需求更高 |
| 推理与可解释性分析 | 单卡 8 GB | 单卡 16 GB | Grad-CAM 等需要保存中间激活,显存占用高于普通推理 |
| 存储 | 20 GB(仅 6.8 GB 数据 + 代码) | 200 GB 以上 | 若做多次增广缓存或保存中间特征,需预留更大空间 |
数据加载侧提醒:17 万张小文件(平均约 40 KB)在机械硬盘上会成为明显 I/O 瓶颈。建议放在 SSD 上,num_workers 设为 CPU 核心数的 1-2 倍并开启 pin_memory;若 I/O 仍是瓶颈,可先把数据打包为 LMDB 或 WebDataset 分片格式。
§6.9 评估指标实现
# 同时报告总体准确率、平衡准确率、宏平均与微平均 F1 与逐类指标
import numpy as np
import torch from sklearn.metrics import (
accuracy_score, balanced_accuracy_score, f1_score, classification_report,
)
@torch.no_grad()
def collect_predictions(model, loader, device="cuda"):
model.eval()
all_preds, all_labels = [], []
for images, labels in loader:
logits = model(images.to(device, non_blocking=True))
all_preds.append(logits.argmax(1).cpu().numpy())
all_labels.append(labels.numpy())
return np.concatenate(all_preds), np.concatenate(all_labels)
def evaluate(y_true, y_pred, class_names):
metrics = {
"accuracy": accuracy_score(y_true, y_pred),
"balanced_accuracy": balanced_accuracy_score(y_true, y_pred),
"f1_macro": f1_score(y_true, y_pred, average="macro", zero_division=0),
"f1_weighted": f1_score(y_true, y_pred, average="weighted", zero_division=0),
}
metrics["acc_minus_balacc"] = metrics["accuracy"] - metrics["balanced_accuracy"]
for k, v in metrics.items():
print(f"{k:>20}: {v:.4f}")
print(classification_report(y_true, y_pred, labels=range(len(class_names)),
target_names=class_names, zero_division=0))
return metrics
def strict_vs_lenient(y_true, y_pred, adjacency):
"""严格口径(精确匹配)与宽松口径(允许相邻成熟阶段互换)对比。"""
strict = (y_true == y_pred).sum()
lenient = sum(1 for t, p in zip(y_true, y_pred)
if t == p or p in adjacency.get(t, set()))
n = len(y_true)
return {"strict_accuracy": strict / n, "lenient_accuracy": lenient / n}
# 成熟阶段与谱系邻接表(依据血液形态学常识构建,可按需扩展)
ADJACENCY = {
"PMO": {"MYB"}, "MYB": {"PMO", "MMZ"}, "MMZ": {"MYB", "NGB"},
"NGB": {"MMZ", "NGS"}, "NGS": {"NGB"},
"PEB": {"EBO"}, "EBO": {"PEB"},
}
preds, labels = collect_predictions(model, test_loader, device="cuda")
CLASSES = ["ABE", "ART", "BAS", "BLA", "EBO", "EOS", "FGC", "HAC", "KSC",
"LYI", "LYT", "MMZ", "MON", "MYB", "NGB", "NGS", "NIF", "OTH",
"PEB", "PLM", "PMO"]
metrics = evaluate(labels, preds, CLASSES)
print(strict_vs_lenient(labels, preds, ADJACENCY))
# 质控类目与细胞类目的分组报告
QC = [CLASSES.index(c) for c in ["ART", "NIF", "OTH", "KSC"]]
mask_cell = ~np.isin(labels, QC)
print("仅细胞类别子集的指标:")
evaluate(labels[mask_cell], preds[mask_cell],
[c for i, c in enumerate(CLASSES) if i not in QC])
指标报告的底线要求:任何声称在该数据集上取得 SOTA 的结果,都必须同时给出总体准确率、平衡准确率、宏平均 F1 与逐类指标,并明确说明严格口径还是宽松口径;缺任何一项,数字都无法与其他工作比较。
§6.10 MLOps 与实验管理
| 环节 | 建议做法 |
|---|---|
| 数据版本 | 为图像清单建立内容哈希(manifest),记录路径、大小与 SHA-256;用 DVC 或同类工具管理版本 |
| 划分固化 | 把 train 与 val 与 test 的 CSV 索引纳入版本控制,禁止每次运行时重新随机划分 |
| 配置管理 | 用 YAML 或 JSON 固化超参、骨干、增广强度、损失权重,与实验 ID 绑定 |
| 指标记录 | 同时记录总体准确率与平衡准确率,并持久化完整的混淆矩阵与逐类指标 |
| 检查点策略 | 以平衡准确率或宏平均 F1 作为选择依据,而非总体准确率(长尾数据的必要条件) |
| 可解释性归档 | 每个重要模型保存一组 Grad-CAM 热力图,作为是否存在背景捷径的证据 |
| 复现清单 | 记录随机种子、库版本、CUDA 版本、硬件型号;尽早在脚本中固定种子 |
| 数据校验 | 每次数据变更后运行逐类计数校验,与官方公布的 21 类样本数比对 |
一个易被忽略的 MLOps 要点:在长尾数据上,以总体准确率做检查点选择的模型几乎必然在少数类上失败。把模型选择指标改为平衡准确率或宏平均 F1,往往是投入产出比最高的一次改动。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心选择偏倚 | 全部样本来自慕尼黑一家大型白血病参考实验室,送检构成偏向疑难与恶性病例 | 高 | 与多中心数据联合验证;报告时说明人群定位 |
| 染色与设备批次偏倚 | 单一染色方案与单一扫描设备,图像带强机构指纹 | 高 | 染色归一化;跨设备外部验证;颜色增广 |
| 类别不平衡偏倚 | 最大类与最小类相差逾 3,600 倍,模型天然偏向头部 | 高 | 类别加权、重采样、解耦训练;报告平衡准确率 |
| 标注主观性偏倚 | 形态学判读本身带观察者间变异,疑难类别一致性约 85% 至 91% | 中 | 采用宽松评估口径;引入多专家共识分布作为参考带 |
| 抽样偏倚 | 每例患者仅标注约 181 张,非全涂片枚举 | 中 | 声明类别分布不代表临床分类计数分布 |
| 人口学信息缺失 | 无年龄、性别、族裔字段,无法审计亚组差异 | 中 | 无法在数据集内部缓解;需在外部验证中专门设计 |
| 背景捷径风险 | 图像未裁剪,周边含邻近细胞与碎片,可能被模型利用 | 中 | 可解释性审计;遮挡敏感性测试;背景扰动增广 |
§7.2 标注质量
标注质量是本数据集最强的资产,也是最需理解边界的部分。正面之处有三点:标注者具备常规细胞形态学诊断经验,标注框架源自临床实践并针对诊断相关亚类做了细化;设计了观察者间与观察者内双向复标机制,且观察者内复标刻意间隔 11 个月,能真实反映判读漂移;为伪影与不可识别对象设立独立类目,避免强行贴标签带来的标签噪声。
需要理解之处在于:该金标准是形态学专家共识,而非分子或流式确证的金标准。在疑难的成熟阶段边界处,标签本身处于专家分歧区间,此时模型与标签不一致不等于模型错误。文献报道的专家间一致性 85% 至 91% 应视为该数据集各项指标的天花板参考——超越它的模型未必更好,可能只是在拟合本数据集特定的标注习惯。数据集页面未公开复合一致性统计量(如 Cohen kappa),若需精确数值应查阅原始论文。
§7.3 泛化性风险
| 应用场景 | 失效风险 | 证据 |
|---|---|---|
| 直接部署到其他医院 | 高 | 单中心单染色单设备,跨机构域偏移未经验证 |
| 跨扫描设备使用 | 高 | 图像带设备色彩与尺度指纹;不同数据集染色条件差异显著 |
| 患者级诊断推断 | 高 | 无患者级标签,模型只做单细胞分类,无法直接输出诊断 |
| 重建细胞分类计数 | 中高 | 标注为抽样而非全枚举,比例不代表临床分布 |
| 用于外周血涂片 | 中 | 有小样本跨域迁移的成功记录,但需重新微调与验证 |
| 用于骨髓活检切片(组织学) | 高 | 模态完全不同,涂片细胞学与切片组织学不可互换 |
| 稀有病理细胞识别 | 中高 | 极尾类别样本极少(FGC 47、ABE 8),难以可靠评估 |
| 作为教学图谱 | 低 | 类别齐全、来源权威,教学用途成熟 |
§7.4 伦理与合规
| 维度 | 内容 |
|---|---|
| 伦理审查 | 样本采集经当地伦理委员会审查;同一研究团队的外周血数据集研究记录显示伦理编号为 17-349 |
| 知情同意 | 官方披露在伦理审查框架下获得同意 |
| 去标识化 | 仅发布单细胞图像 patch 与形态学类别标签;不含患者标识、面部特征、出生日期或自由文本 |
| 许可合规 | CC BY 4.0,允许使用与再分发,须署名;须遵守 TCIA 数据使用政策 |
| 引用义务 | 任何使用该数据的发表物必须引用数据 DOI 与原始论文 |
| 二次使用限制 | 不得用于直接临床诊断部署;不得从图像反推患者身份 |
§7.5 公平性考量
该数据集在公平性审计上存在结构性障碍:官方不提供年龄、性别、族裔、社会经济状况等任何人口学字段,因此无法评估模型在不同亚组上的表现差异,也无法判断数据是否在某些人群中代表性不足。
已知背景是:所有样本来自德国慕尼黑的一家参考实验室,人群构成具有明确的地域集中性。血液细胞形态在不同人群间的差异虽通常小于影像学模态,但遗传性血液病(如某些血红蛋白病导致的红细胞形态改变)具有明显族群分布差异,这类因素在缺乏族裔字段时无法被量化。使用者将模型推向临床时,应把人群代表性未知作为显式风险条目处理,并在目标人群中做前瞻性评测。
§7.6 数据漂移
| 漂移类型 | 机制 | 检测方式 | 缓解 |
|---|---|---|---|
| 染色批次漂移 | 试剂批号、染色时长变化导致颜色分布偏移 | 监控输入图像的色彩统计量随时间变化 | 染色归一化;颜色增广训练 |
| 设备漂移 | 光源老化、白平衡变化、扫描仪标定偏移 | 定期用标准玻片校准;监控背景亮度与对比度统计 | 设备端标准化;跨设备验证 |
| 人群漂移 | 送检人群构成随诊疗指南变化而改变 | 监控病例构成与细胞类别分布的长期变化 | 定期重训与回顾性验证 |
| 标签语义漂移 | WHO 分型修订导致形态学类别定义变化 | 跟踪分类标准更新 | 版本化标签定义;必要时重标 |
| 模型漂移 | 输入分布变化导致性能衰减 | 部署后持续监控预测分布与置信度分布 | 设定告警阈值与重训触发条件 |
该数据集本身是静态快照(Version 1,Complete 状态),不存在数据侧持续更新,因此所有漂移风险都发生在使用该数据集训练的模型部署到真实环境之后。
§7.7 DAIMS 24 项检查
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 图像为独立文件,标签可通过目录与标注文件双路径获取,结构清晰 |
| 2 | 唯一标识 | ⚠️ | 每张图像有唯一文件名,但无患者级唯一标识,无法做患者级关联 |
| 3 | 特殊字符 | ✅ | 类别缩写为纯 ASCII 大写字母,文件名规范统一,无编码风险 |
| 4 | 重复行 | ⚠️ | 官方未声明去重规则;同一患者的相似 patch 可能大量重复,需自行做近重复检测 |
| 5 | 缺失编码 | ✅ | 复标缺失显式为字符串 nan,编码规则在官方说明中有记录 |
| 6 | 标签标识 | ✅ | 21 个类别缩写均有英文全称映射,标签定义明确 |
| 7 | 罕见类分组 | ⚠️ | 官方保留极尾类别(ABE 8、KSC 42、FGC 47、LYI 65)未做分组,需使用者自行处理 |
| 8 | 偏倚评估 | ⚠️ | 论文讨论了类别不平衡与观察者变异,但无系统性的偏倚评估章节 |
| 9 | 数据字典 | ✅ | 官方提供类别缩写表;本词条 §4.1 进一步给出完整字段字典 |
| 10 | 信息性缺失解释 | ✅ | nan 的含义(未复标)在官方说明中有明确解释 |
| 11 | 设备记录 | ⚠️ | 披露了染色方法与 40× 油镜,但未披露具体型号与微米与像素换算 |
| 12 | 共线性 | ✅ | 各字段语义独立,无共线性问题;类别标签为单列互斥取值 |
| 13 | 编码映射 | ⚠️ | 数据集不提供 ICD 与 SNOMED 映射,需按 §2.1 自行建立语义对应 |
| 14 | 时间戳处理 | ❌ | 无任何时间戳字段,无法做时间维度的分析与漂移检测 |
| 15 | 划分建议 | ⚠️ | 论文使用五折交叉验证但未发布折索引;无官方划分文件 |
| 16 | 泄漏讨论 | ⚠️ | 官方未讨论患者级或近邻泄漏风险;本词条 §5.3 做了系统分析 |
| 17 | 标签分布 | ✅ | 21 类样本数完整公开,可逐类核对 |
| 18 | 测量偏倚 | ⚠️ | 观察者间与观察者内变异有专门分析,但图像采集侧的测量偏倚未量化 |
| 19 | 外部验证建议 | ❌ | 官方未提供外部验证建议或跨机构验证结果 |
| 20 | 版本记录 | ✅ | TCIA 记录 Version 1,更新日期 2021-11-12,状态 Complete |
| 21 | 预处理脚本 | ❌ | 官方未发布预处理或训练脚本,社区复现仓库均需自行实现 |
| 22 | 合规要求 | ✅ | CC BY 4.0 明确,TCIA 数据使用政策与引用义务清晰 |
| 23 | 多模态对齐 | ❌ | 纯图像模态,无配对的其他模态数据(无临床文本、无分子数据、无流式结果) |
| 24 | 去标识化 | ✅ | 仅发布单细胞图像 patch 与类别标签,不含任何患者标识信息 |
DAIMS 评分:12.5 / 24
评分解读:该数据集在数据本身的质量上得分很高——标签定义明确、样本数公开、编码规范、许可清晰、去标识化彻底(第 1、3、5、6、9、10、12、17、20、22、24 项共 11 项达标)。失分几乎全部集中在围绕数据的工程与治理配套:无时间戳、无外部验证建议、无官方预处理脚本、无多模态对齐(4 项完全缺失);唯一标识、重复行、罕见类分组、偏倚评估、设备记录、编码映射、划分建议、泄漏讨论、测量偏倚(9 项部分满足)则属官方给了基础但没做深。
换言之,这是高质量原始数据加薄治理层的典型数据集:价值主要在于数据本身而非配套工具链,使用者需自己补齐从划分策略到漂移监控的全部工程环节。
对你意味着什么:
- 不要指望开箱即用的实验脚手架——划分脚本、训练循环、指标报告与版本管理都需自己实现,官方不提供。
- 把泄漏防护当成第一优先级——第 2、4、16 项同时亮黄灯意味着患者级泄漏与近重复是真实风险;跑正式实验前先想清楚划分是否会跨患者边界。
- 自己补齐时间与来源信息——第 11、14 项缺失意味着无法从数据内部判断时间漂移或设备漂移,只能通过主动设计的外部验证弥补。
- 标签映射要自己建立——第 13 项意味着若下游系统使用 ICD 或 SNOMED,需在应用层自行做语义映射(可参考本词条 §2.1 与 §2.1b)。
- 极尾类别必须显式处理——第 7 项的黄灯配合样本数表说明,ABE(8 张)与 KSC(42 张)在五折中每折测试集可能只有个位数样本,任何基于单折的结论都不可信。
- 合规最简单,但也别忘引用——第 22 项绿灯意味着采用门槛低,但署名与引用是硬性义务,务必在发表物中同时给出数据 DOI 与论文 DOI。
§7.8 外部验证矩阵
| 外部数据集与场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| Matek AML 外周血数据集 | LMU 慕尼黑大学医院 / MLL | 跨域迁移(BM 预训练特征到外周血分类) | 达到当时最优的平衡准确率 | 在极小标注预算下仍可用 | 骨髓数据上自监督学到的特征可跨染色与设备条件迁移到外周血域;每类约 50 个标注样本即可获得可靠分类器 |
| Acevedo 外周血数据集 | 巴塞罗那 Hospital Clínic | 跨域分类 | UMAP 嵌入显示 8 个类别清晰聚类 | 域差异可控 | 跨域特征类别可分性良好,说明学到的表征不局限于单一机构风格 |
| Raabin-WBC 数据集 | 伊朗 Kerman 医科大学等 | 跨域分类 | 以远少于原论文的标注量取得最优成绩 | 显著降低标签需求 | 完全不同的实验室与设备条件下迁移仍然可行 |
| 域外(out-of-domain)评测 | 独立研究 | 预训练骨干的域外泛化 | 精确率 0.787 与召回 0.755 与 F1 0.762 | 相对域内训练有下降 | ImageNet 预训练的 RegNet_Y_32gf 相比从零训练 ResNeXt-50 大幅提升;激活图可识别 Auer 小体等诊断性结构 |
| 临床专家对标 | LMU 慕尼黑大学医院 | 原始细胞识别,与 5 位血液病理学家比较 | 达到人级水平 | 不适用 | 该结果来自外周血 AML 姊妹数据集的前瞻性对比,为模型在原始细胞任务上的临床相关性提供人类基线 |
| 多中心前瞻性验证(外部系统) | 5 家学术医学中心 | 23 类骨髓细胞分类,对标 40 位血液病理学家 | 多数类别上与专家中位数无统计学差异 | 不适用 | 由另一系统(DeepHeme)完成,说明该领域临床准入标准正从技术指标转向与专家的一致性 |
说明:上表只收录有同行评审支撑或官方仓库记录的结果。不同研究使用了不同划分方式、评估口径(严格与宽松)与类别子集,跨行数字不可直接比较。特别需要注意的是,部分研究的高准确率来自仅选取少数类别(且不含原始细胞),这类结果不能与全 21 类结果并列。
§8 基准性能与生态
§8.1 基准排行榜
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 代码 |
|---|---|---|---|---|---|
| 1 | 集成学习(Boosting Ensemble) | 宏 F1 0.96(21 类) | 2026 | 多模型集成 + 类别不平衡处理 | 未公开 |
| 2 | CoAtNet 流水线 | 部分类别表现优异,部分较差 | 2022-2023 | 卷积与注意力混合 + 类平衡增广 + 可解释性 | 论文附代码 |
| 3 | Siamese 分类网络 | 原始细胞精确率与召回率均约 0.89 | 2022 | 样本间相似性与差异性建模 | 论文附代码 |
| 4 | DAGDNet(双注意力门 DenseNet) | 平均精确率 0.881;原始细胞精确率 0.852 与召回 0.834 | 2022-2024 | 双注意力门抑制背景信号 | 论文附代码 |
| 5 | RegNet_Y_32gf(域外评测) | 精确率 0.787 与召回 0.755 与 F1 0.762 | 2024 | ImageNet 预训练 + 域外评估 | 论文附代码 |
| 6 | ResNeXt-50(原论文基线,Matek et al., 2021, Blood) | 严格口径五折平均准确率 0.86 | 2021 | 32×4d 基数卷积 + 增广 + 五折交叉验证 | 官方未公开;社区多份复现 |
| 7 | 顺序 CNN(原论文对照,同上) | 宏平均精确率与召回率与 F1 约 74%;平衡准确率约 44% | 2021 | 常规卷积堆叠 | 社区复现仓库 |
| 8 | 自监督编码器 + 线性分类器 | 每类约 50 标签达可用水平;跨域迁移达最优 | 2024-2025 | 自监督对比学习 + 轻量分类器 | GitHub 与 Zenodo 特征提取器 |
数值不可直接比较的原因:
- 评估口径不同:原论文区分严格口径(仅精确匹配算对)与宽松口径(允许相邻类别),同一模型在两套口径下差异极大——例如原始细胞精确率在严格口径下为 0.75,宽松口径下升至 0.95。
- 类别子集不同:部分研究只选 7 个或 15 个类别,且刻意排除原始细胞等困难类别,其高准确率与全 21 类结果不具可比性。
- 划分方式不同:官方未发布折索引,各研究的五折交叉验证划分可能完全不同;若划分粒度为图像级随机而非患者级,泄漏程度也不同。
- 指标定义不同:部分工作报总体准确率,部分报宏平均 F1,部分报平衡准确率;在长尾数据上三者可相差 30 个百分点以上。
- 是否使用外部数据:使用额外预训练数据、合成数据或外部数据集的研究,与仅使用本数据集的研究不可直接比较。
§8.2 SOTA 总结与选型建议
当前格局可概括为三条结论。
架构层面:从 ResNeXt-50 出发的渐进改进收益有限;真正的跃升来自预训练(ImageNet 预训练的 RegNet 相比从零训练大幅提升)与表征学习范式的更换(自监督预训练使注意力更聚焦细胞本身,标签效率极高)。这提示在该数据集规模下,数据效率与训练策略比架构复杂度更重要。
不平衡处理层面:集成学习与类平衡增广的组合目前报告了最好的宏平均指标。但需注意,宏平均 F1 达 0.96 的结论若来自与文献不同的划分或口径,可比性存疑,不应直接解读为该任务已接近解决。
临床可用性层面:该领域评价标准正从技术指标转向与专家的一致性。多中心前瞻性研究显示,先进系统的中位表现在多数类别上与专家无统计学差异,这定义了临床准入的新基线。任何基于本数据集的工作若要论证临床价值,都应以与多位专家的一致性而非内部测试集准确率作为核心证据。
选型建议:若目标是方法研究,优先选自监督预训练加小样本微调路线,兼顾性能与标签效率;若目标是复现与教学,从 ResNeXt-50 基线出发并完整报告严格与宽松双口径指标;若目标是临床转化,必须规划多中心外部验证与专家对标实验。
§8.3 评测协议
| 协议要素 | 推荐做法 | 理由 |
|---|---|---|
| 划分 | 5 折交叉验证 + 固定折索引(公开索引文件) | 与原始论文一致;公开索引才能可比 |
| 分层 | 按类别分层,保证尾部类别每折至少 1 个样本 | 避免尾部类别整折缺失 |
| 隔离 | 尽可能按患者隔离;无法隔离时明确声明 | 防止患者级泄漏 |
| 输入尺寸 | 224×224 或 320×320,全流程统一 | 不同尺寸结果不可比 |
| 标准化 | 使用训练集实测均值方差,而非 ImageNet 默认值 | 减少不必要的分布偏移 |
| 增广 | 旋转、翻转、温和颜色抖动;验证集不做增广 | 保证验证可重复 |
| 指标 | 总体准确率 + 平衡准确率 + 宏平均 F1 + 逐类精确率与召回率 | 长尾数据的必要组合 |
| 口径 | 同时报告严格与宽松口径 | 揭示边界模糊带来的误差成分 |
| 分组 | 细胞类别与质控类别分别报告 | 避免质控类目扭曲结论 |
| 重复 | 至少 3 个随机种子,报告均值与标准差 | 单次结果不足以支撑结论 |
| 报告 | 公开混淆矩阵、折间方差与超参配置 | 提高可复现性 |
§8.4 相关数据集
| 数据集 | 规模 | 模态 | 与本数据集的关系 |
|---|---|---|---|
| Matek AML 外周血数据集 | 18,365 图 / 200 例 / 15 类 | 外周血涂片 100× 油镜 | 同实验室姊妹数据集,是本数据集最常用的跨域迁移评测目标 |
| Acevedo 外周血数据集 | 17,092 图 / 8 类 | 外周血涂片 May-Grünwald-Giemsa | 类别均衡,适合作为迁移后的下游评测集 |
| Raabin-WBC | 17,965 图 / 5 类 / 72 涂片 | 外周血涂片 Giemsa 512×512 | 提供细胞核与胞质分割掩膜,模态不同但任务相关 |
| DeepHeme 相关资源 | 41,595 图 / 23 类 | 骨髓涂片,多中心 | 规模相近、定位相近,以多中心前瞻性验证见长;可作为外部验证的对照参照 |
| 骨髓增生异常综合征骨髓细胞资源 | 官方未在本次检索中确认具体规模 | 骨髓涂片 | 专注骨髓增生异常综合征,是本数据集疾病谱的细分补充 |
§8.5 关键论文
-
Matek, C., Krappe, S., Münzenmayer, C., Haferlach, T., & Marr, C. (2021). Highly accurate differentiation of bone marrow cell morphologies using deep neural networks on a large image data set. Blood, 138(20), 1917-1927. DOI: 10.1182/blood.2020010568 —— 本数据集的原始论文,首次发布 171,374 张专家标注骨髓单细胞图像与 21 类分类体系,报告 ResNeXt-50 在严格口径下五折平均准确率 0.86,并系统分析了观察者间与观察者内变异。
-
Matek, C., Schwarz, S., Spiekermann, K., & Marr, C. (2019). Human-level recognition of blast cells in acute myeloid leukaemia with convolutional neural networks. Nature Machine Intelligence, 1, 538-544. DOI: 10.1038/s42256-019-0101-9 —— 姊妹数据集(外周血)原始论文,18,365 张图像与 15 类,展示了 CNN 在原始细胞识别上达到人级水平,是本数据集跨域迁移研究的主要对照。
-
Matek, C., Schwarz, S., Marr, C., & Spiekermann, K. (2019). A Single-cell Morphological Dataset of Leukocytes from AML Patients and Non-malignant Controls. TCIA. DOI: 10.7937/tcia.2019.36f5o9ld —— 外周血数据集的 TCIA 数据引文,含 11 GB TIFF 全片图像与 538 kB 标注文件(含双重复标列)。
-
Boada 等 (2025). CytoDiff: AI-Driven Cytomorphology Image Synthesis for Medical Diagnostics. ICCV 2025 Workshop (CVAMD) —— 在 Munich BMC 上验证生成式增广对少数类的作用。
-
Sun 等 (2025). DeepHeme 相关研究 —— 在 41,595 张共识标注图像、23 个类别上训练并做多机构外部验证,与 40 位血液病理学家对比,定义临床对标基线。
-
Glüge 等 (2024). 预训练骨干在骨髓细胞分类上的域内与域外评估 —— 报告预训练 RegNet_Y_32gf 的域外精确率 0.787 与召回 0.755 与 F1 0.762。
-
IPMI-ICNS-UKE 团队 (2024-2025). Transferable automatic haematological cell classification: Overcoming data limitations with self-supervised learning —— 在 Munich BMC 上做自监督预训练,跨域迁移在 Matek 外周血数据集上达到当时最优,特征提取器公开于 Zenodo。
-
Peng 等. DAGDNet 相关研究 —— 提出双注意力门 DenseNet,通过抑制背景信号提升细粒度表现,报告平均精确率 0.881。
§8.6 社区活跃度
| 指标 | 数值与状态 | 来源 |
|---|---|---|
| TCIA 合集页浏览量 | 5.7k | TCIA 官方页面 |
| TCIA 直接引用次数 | 11 | TCIA 官方页面 |
| Kaggle 镜像下载量 | 约 5,953(另有约 159 的月增长) | Kaggle 数据集页 |
| Kaggle 镜像浏览量 | 约 37.3K | Kaggle 数据集页 |
| HuggingFace 镜像规模 | 171k 行,parquet 格式,含预划分 | HuggingFace 数据集页 |
| 复现仓库数量 | 多份公开仓库覆盖 TensorFlow、PyTorch 与自监督路线 | GitHub |
| 活跃度评价 | 高——作为骨髓细胞分类的事实基准,持续被新方法用作评测平台 | 综合 |
引用形式提醒:该数据集有两个引用对象(数据集 DOI 与论文 DOI),社区实践中常只引论文而遗漏数据集 DOI。TCIA 明确要求数据引用,规范做法是两者同时引用。
§8.7 生态快照
§9 相关资源与引用
§9.1 官方资源
| 资源 | 说明 | 链接 |
|---|---|---|
| TCIA 数据集合集页 | 官方发布页,含许可、版本、类别缩写与引用要求 | https://www.cancerimagingarchive.net/collection/bone-marrow-cytomorphology_mll_helmholtz_fraunhofer/ |
| TCIA 下载入口(旧版 wiki) | 下载包与 Aspera 插件说明 | https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId=101941770 |
| 原始论文(PMC 全文) | 数据描述、标注协议与基准结果 | https://pmc.ncbi.nlm.nih.gov/articles/PMC8602932/ |
| 原始论文(出版商) | 正式版本记录 | https://ashpublications.org/blood/article/138/20/1917/477932/ |
| 论文 PubMed 记录 | PMID 34792573 | https://www.pubmed.ncbi.nlm.nih.gov/34792573/ |
| 数据集 DOI 解析 | 10.7937/TCIA.AXH3-T579 | https://doi.org/10.7937/TCIA.AXH3-T579 |
§9.2 社区与教程资源
| 资源 | 类型 | 说明 |
|---|---|---|
| IPMI-ICNS-UKE SSL 仓库(MIT 许可) | 代码与预训练特征 | 自监督预训练、跨域迁移与少量标签微调的完整实现 |
| SaraPandolfi/BM_cell_classification | 代码 | 四类子集的分类流水线,含详细的逐类下载与目录组织指引 |
| ejml1/Deep-Learning-for-Cancer-Detection | 代码与报告 | 含基线复现、增广对比与 LIME 可解释性分析,对长尾失效有直观展示 |
| Awesome-Medical-Dataset 的 BoneMarrowCytomorphology 条目 | 索引 | 汇总官方链接、作者机构与目录树示例 |
| Kaggle 与 HuggingFace 镜像 | 数据镜像 | 免 Aspera 的快速获取途径,附类别缩写表与预览 |
§9.3 BibTeX 引用
数据集引用(必需):
@misc{matek2021dataset,
title = {An Expert-Annotated Dataset of Bone Marrow Cytology in Hematologic Malignancies},
author = {Matek, Christian and Krappe, Sebastian and M{\"u}nzenmayer, Christian and Haferlach, Torsten and Marr, Carsten},
year = {2021}, publisher = {The Cancer Imaging Archive},
doi = {10.7937/TCIA.AXH3-T579}, url = {https://doi.org/10.7937/TCIA.AXH3-T579},
note = {Data set, Version 1, updated 2021-11-12}
}
论文引用(必需):
@article{matek2021highly,
title = {Highly accurate differentiation of bone marrow cell morphologies using deep neural networks on a large image data set},
author = {Matek, Christian and Krappe, Sebastian and M{\"u}nzenmayer, Christian and Haferlach, Torsten and Marr, Carsten},
journal = {Blood, The Journal of the American Society of Hematology},
volume = {138}, number = {20}, pages = {1917--1927}, year = {2021},
publisher = {American Society of Hematology},
doi = {10.1182/blood.2020010568}, pmid = {34792573}
}
姊妹数据集引用(做跨域研究时):
@misc{matek2019dataset,
title = {A Single-cell Morphological Dataset of Leukocytes from AML Patients and Non-malignant Controls},
author = {Matek, Christian and Schwarz, Stephan and Marr, Carsten and Spiekermann, Karsten},
year = {2019}, publisher = {The Cancer Imaging Archive},
doi = {10.7937/tcia.2019.36f5o9ld}
}
§9.4 引用指南
| 场景 | 应引用 | 说明 |
|---|---|---|
| 使用数据训练模型 | 数据集 DOI + 论文 DOI | TCIA 明确要求数据引用 |
| 仅讨论数据集本身 | 论文 DOI | 建议同时给出数据集 DOI |
| 与姊妹外周血数据集对比 | 额外引用 2019 年数据集与论文 | 便于读者追溯跨域实验数据来源 |
| 复现或引用社区代码 | 引用对应仓库与方法论文 | 尊重社区工作 |
| 报告基准成绩 | 引用原论文 + 说明本次使用的划分与口径 | 避免数字被误读为可跨研究直接比较 |
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型与工具 | 版本与说明 | 参与环节 |
|---|---|---|
| 大语言模型(文本生成) | 千方病案医学编辑部配置的生成式模型 | 结构编排、章节撰写、代码示例编写、表格整理 |
| 网络检索工具 | 通用网页检索与页面抓取 | 官方页面、论文、综述与社区仓库的信息核实 |
| 校验脚本 | check_md.py(编辑部内部规范校验器) | 行数、章节完整性、纯净度、代码围栏配对检查 |
§10.2 AI 参与范围
AI 参与的部分:章节结构编排与文字起草;将检索到的官方信息整理为表格与字段字典;示例代码(预处理、DataLoader、评估指标)编写;坑点条目的归纳组织;DAIMS 检查表逐项评估;BibTeX 与引用条目格式化。
人类负责的部分:医学表述的准确性判断(尤其造血谱系分类与原始细胞临床意义的表述);纠错判断(如队列条目所称发布机构与论文年份的核实与修正);所有数字与引用条目的终审与逐条溯源核对;AI 生成内容的删改与结构定稿。
AI 未参与的部分:未原创任何未经检索支撑的数字;未对图像数据本身做分析或重标注;未替代医学专业判断对临床适应证作出结论。
§10.3 输入来源列表
| # | 来源 | 类型 | 用途 |
|---|---|---|---|
| 1 | Matek, C., Krappe, S., Münzenmayer, C., Haferlach, T., & Marr, C. (2021). Highly accurate differentiation of bone marrow cell morphologies using deep neural networks on a large image data set. Blood, 138(20), 1917-1927. DOI: 10.1182/blood.2020010568 | 同行评审论文 | 数据集规模、类别方案、标注协议、基准成绩 |
| 2 | Matek, C., Krappe, S., Münzenmayer, C., Haferlach, T., & Marr, C. (2021). An Expert-Annotated Dataset of Bone Marrow Cytology in Hematologic Malignancies. The Cancer Imaging Archive. DOI: 10.7937/TCIA.AXH3-T579 | 数据集官方发布 | 官方名称、许可、版本、大小、类别缩写清单、引用要求 |
| 3 | The Cancer Imaging Archive 合集页与旧版 wiki 数据页(bone-marrow-cytomorphology_mll_helmholtz_fraunhofer;pageId=101941770、61080958) | 官方数据页 | 患者数、图像数、采集参数、许可与下载方式、标注文件列结构与复标说明 |
| 4 | Matek, C., Schwarz, S., Spiekermann, K., & Marr, C. (2019). Human-level recognition of blast cells in acute myeloid leukaemia with convolutional neural networks. Nature Machine Intelligence, 1, 538-544. DOI: 10.1038/s42256-019-0101-9 | 同行评审论文 | 姊妹外周血数据集的采集流程、伦理编号、类别合并规则 |
| 5 | Matek, C., Schwarz, S., Marr, C., & Spiekermann, K. (2019). A Single-cell Morphological Dataset of Leukocytes from AML Patients and Non-malignant Controls. TCIA. DOI: 10.7937/tcia.2019.36f5o9ld | 数据集官方发布 | 外周血数据集规模、扫描设备与标注协议 |
| 6 | Transferable automatic hematological cell classification: Overcoming data limitations with self-supervised learning(ScienceDirect S0169260724005534) | 同行评审论文 | 四个血液图像数据集对比表、跨域迁移结论、类别样本数 |
| 7 | IPMI-ICNS-UKE / Haematological-Single-Cell-Image-Classification(GitHub,MIT 许可) | 官方代码仓库 | 自监督预训练流程、跨域迁移结果、注意力对比发现、特征提取器发布信息 |
| 8 | Beyond Labels: Visual Representations for Bone Marrow Cell Morphology Recognition(arXiv 2205.09880) | 预印本 | 21 类完整样本数表、逐类 F1 参考值、图像尺寸与 patch 内容说明 |
| 9 | CytoDiff: AI-Driven Cytomorphology Image Synthesis for Medical Diagnostics(ICCV 2025 Workshop CVAMD) | 同行评审论文 | 逐类样本分布、五折划分协议、生成式增广实验设计 |
| 10 | Models for the marrow: A comprehensive review of AI-based cell classification methods and malignancy detection in bone marrow aspirate smears(PMC11612571) | 同行评审综述 | 原始细胞精确率与召回率、DAGDNet 与 Siamese 网络成绩、专家一致性参考区间 |
| 11 | Improved leukocyte classification in bone marrow cytology using convolutional neural network with contrast enhancement(Nature Scientific Reports, s41598-025-12207-z) | 同行评审论文 | ResNeXt-50 与顺序网络的准确率对比、Siamese 网络成绩 |
| 12 | A unified biologically informed framework for bone marrow cell classification under ambiguity and imbalance(Springer) | 同行评审论文 | 0.86 五折平均准确率的确认、DeepHeme 规模与外部验证结果 |
| 13 | Automated bone marrow cell classification using ensemble learning(Frontiers in Medicine);Hematology and Machine Learning(Journal of Applied Laboratory Medicine, Oxford Academic) | 同行评审论文与综述 | 集成学习宏 F1 0.96、RegNet 域外指标、九类严格口径下的精确率与召回率数值 |
| 14 | Kaggle 数据集页(andrewmvd/bone-marrow-cell-classification)与 HuggingFace 数据集页(ekim15/bone_marrow_cell_dataset) | 社区镜像 | 镜像大小、下载与浏览量、类别缩写表、许可、parquet 格式与 80/10/10 预划分 |
| 15 | SaraPandolfi/BM_cell_classification 与 ejml1/Deep-Learning-for-Cancer-Detection(GitHub);Awesome-Medical-Dataset 的 BoneMarrowCytomorphology 条目 | 社区代码仓库与索引 | 逐类下载与目录组织、顺序 CNN 平衡准确率 44% 的复现数据、LIME 分析、机构归属与目录树示例 |
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1.1 摘要、§1.3 横向对比表与 INFOBOX | 千方病案医学编辑部 | 与 TCIA 官方描述及原始论文逐项比对规模、类别数与机构归属 | ✅ 已通过 |
| §2.1 ICD-11 编码、§2.1b SNOMED CT 映射与 §2.6 金标准定义 | 千方病案医学编辑部 | 核对编码与术语语义对应、标注协议与复标机制的官方表述 | ✅ 已通过 |
| §3.2 类别样本数表(21 类)与 §3.6 标注者一致性 | 千方病案医学编辑部 | 与论文数据表逐类核对,验证合计值等于 171,374 | ✅ 已通过 |
| §4.0 目录树与 §4.1 DAIMS 字段字典 | 千方病案医学编辑部 | 对照官方目录组织说明与标注文件列结构,标注官方未提供字段 | ✅ 已通过 |
| §5.3 泄漏风险分析 | 千方病案医学编辑部 | 复核患者级、近邻与质控类目三类泄漏的推理链条与缓解方案可行性 | ✅ 已通过 |
| §6 全部代码示例与 §6.5 八个坑点 | 千方病案医学编辑部 | 语法与路径一致性检查、围栏配对检查;逐条核对失败模式的文献支撑 | ✅ 已通过 |
| §7.7 DAIMS 24 项检查与 §7.8 外部验证矩阵 | 千方病案医学编辑部 | 逐项复核状态判定依据;只保留有同行评审或官方仓库支撑的结果 | ✅ 已通过 |
| §8.1 排行榜与 §8.5 关键论文 | 千方病案医学编辑部 | 核对引用格式、DOI、卷期页码与作者顺序,加注不可直接比较说明 | ✅ 已通过 |
| §9.3 BibTeX、§10.3 输入来源与全文数字合规检查 | 千方病案医学编辑部 | 逐条核对 DOI 与卷期页码;核对千分位、截至日期、许可与引用义务表述;确认无链接指向站内其他词条 | ✅ 已通过 |
§10.5 AI 生成章节标注
本文全部章节均由 AI 起草、经编辑部人工核校后发布。核校重点为:frontmatter 与 INFOBOX 的字段值全部来自官方来源,无可推断项;§0 的三段免责声明沿用编辑部固定文本;§2 的编码映射与 §3 的类别样本数表为医学重点复核对象;§6 的代码示例统一做语法与路径一致性检查;§7.7 的 DAIMS 判定与评分经逐项复核;§8 的排行榜与外部验证矩阵仅收录有出处的结果;§9.3 的 BibTeX 经逐条字段核对;§C 的 JSON-LD 与 frontmatter 的 schema_org 保持一致。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ocelot — 共享标签:医学影像 / 病理图像 / 肿瘤学
- sicapv2 — 共享标签:医学影像 / 病理图像 / 肿瘤学
- msk-impact — 共享标签:医学影像 / 病理图像 / 肿瘤学
- cima — 共享标签:医学影像 / 病理图像 / 肿瘤学
- icgc — 共享标签:医学影像 / 病理图像 / 肿瘤学
- osteosarcoma — 共享标签:医学影像 / 病理图像 / 肿瘤学
- midog — 共享标签:医学影像 / 病理图像 / 肿瘤学
- hest-1k — 共享标签:医学影像 / 病理图像 / 肿瘤学
- panda — 共享标签:医学影像 / 病理图像 / 肿瘤学
- leopard — 共享标签:医学影像 / 病理图像 / 肿瘤学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

