信息速览

ChestX-Det10 — 胸部 X 光异常检测基准数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | ChestX-Det10 |
| 英文全称 | ChestX-Det10: Chest X-ray Dataset on Detection of Thoracic Abnormalities |
| 别名/简称 | ChestX-Det10、Det10、Deepwise ChestX-Det(注意与 13 类后继版 ChestX-Det 区分,见 §3.0) |
| 疾病分类 | 10 类胸部异常/疾病影像学发现:肺不张、钙化、实变、(胸腔)积液、肺气肿、(肺)纤维化、骨折、肿块、结节、气胸。核心映射:CA40–CA4Z 呼吸系统疾病(实变临床语境)/ DB98.Z 胸腔积液 / 第 12 章呼吸系统其他疾病(详见 §2.1) |
| SNOMED CT | 111895007 Atelectasis / 60046008 Pleural effusion / 87433001 Pulmonary emphysema / 36118001 Pneumothorax / 51615001 Fibrosis of lung / 125605004 Fracture of bone(其余 4 类为形态学发现层级映射,详见 §2.2) |
| 数据模态 | 影像(胸部 X 光正位片,1024×1024 PNG) |
| AI 任务类型 | 目标检测(实例级边界框)、小病灶检测、弱监督定位评估、少样本检测 |
| 样本总数 | 3,543 张图像 / 8,339 个标注框(train 3,001 张 6,863 框;test 542 张 1,476 框) |
| 数据大小 | 约 1.4 GB(3,543 张 PNG)+ 2 个 JSON 标注文件 |
| 数据格式 | PNG(1024×1024 灰度)+ JSON({file_name, syms[], boxes[[x1,y1,x2,y2]]})+ eval.py 评测脚本 |
| 许可证 | 图像层:NIH CC0 1.0 公有领域(须署名并引用 Wang et al. CVPR 2017);标注层:GitHub 公开分发、无显式许可文件,按研究用途惯例使用并强制引用 Liu et al. 2020 |
| 访问级别 | 开放(GitHub 下载标注,NIH Box 或镜像下载图像) |
| DUO 标签 | NRES(图像层);标注层未附机器可读许可 |
| 语言 | 英文 |
| 首发日期 | 2020-06-17(arXiv:2006.10550 v1) |
| 最后更新 | 2020-10-19(arXiv v3;2020-10 配套 Challenge 报告 arXiv:2010.10298;此后由 13 类后继版 ChestX-Det 接棒) |
| 发布机构 | Deepwise AI Lab(深睿医疗 AI 实验室);图像来源:美国 NIH Clinical Center |
| 官方主页 | https://github.com/Deepwise-AILab/ChestX-Det10-Dataset |
| 下载地址 | 标注:GitHub 仓库 train.json / test.json;图像:https://nihcc.app.box.com/v/ChestXray-NIHCC(按 file_name 匹配)或社区镜像 |
| DOI | 10.48550/arXiv.2006.10550(arXiv DOI) |
| 引用次数 | 47+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 放射科医生金标准 + 官方划分 + eval.py;扣分项:标注无显式许可、随机图像级划分存在患者泄漏风险、稀有类测试实例极少、官方 CDN 链接不稳 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(10 类异常的影像学定义、ICD-10/ICD-11/SNOMED CT 映射、金标准标注协议描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(JSON 标注结构、坐标系定义)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与 Deepwise AI Lab(深睿医疗)、美国 NIH Clinical Center 无任何商业利益关联。本页面不销售 ChestX-Det10 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受 Deepwise 或 NIH 的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。ChestX-Det10 的图像层沿用 NIH ChestX-ray14 的 CC0 公有领域条款(须署名 NIH Clinical Center 并引用 Wang et al. 2017),标注层在 GitHub 公开分发但未附显式许可文件,官方要求引用 Liu et al. 2020 与 Wang et al. 2017 两篇论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
ChestX-Det10 是深睿医疗(Deepwise)AI 实验室于 2020 年发布的胸部 X 光异常检测数据集:从著名的 NIH ChestX-ray14(11.2 万张胸片)中精选 3,543 张,邀请 3 名认证放射科医生逐张勾画 10 类常见胸部异常的边界框,共 8,339 个标注框,按 3,001/542 划分训练与测试集。
它的历史定位是"第一个带实例级标注的胸片检测公开基准"。在它之前,胸片 AI 的主流任务是多标签分类,定位只能靠弱监督热力图"猜"——ChestX-ray14 自带的框标注只有 983 张、单人标注、且每类固定 200 例,根本不够训练检测器。ChestX-Det10 首次让 Faster R-CNN 这类标准检测框架在胸片上有了像样的训练场,并配套了一场 100 多支队伍参加的公开挑战赛。
你可以用它来:训练一个胸片异常检测模型(结节、气胸、积液等 10 类)、评测基础模型/自监督预训练在小病灶定位上的能力、或者作为弱监督定位方法的真值评估集。需要分割掩码或更多类别时,请转向它的 13 类后继版 ChestX-Det。
§1.1 摘要
ChestX-Det10 由 Deepwise AI Lab 的 Jingyu Liu、Jie Lian、Yizhou Yu 于 2020 年 6 月发布(arXiv:2006.10550,v3 于 2020-10-19)。数据集从 NIH ChestX-ray14 中"以覆盖尽可能宽的表观范围"为准则精选 3,543 张正位胸片(1024×1024 PNG),由 3 名 board-certified 放射科医生按"两人独立标注 + 资深者裁决"的双角色协议标注 10 类异常:Atelectasis(肺不张)、Calcification(钙化)、Consolidation(实变)、Effusion(胸腔积液)、Emphysema(肺气肿)、Fibrosis(纤维化)、Fracture(骨折)、Mass(肿块)、Nodule(结节)、Pneumothorax(气胸),共 8,339 个实例框。标注完全重新勾画(de novo),独立于 ChestX-ray14 原有的 NLP 图像级标签。官方提供 train.json / test.json 两个标注文件、一个 eval.py 评测脚本(recall@固定 FP/image),原论文给出 Faster R-CNN+FPN 基线(平均 AP50 = 45.0),并主办了 ChestX-Det10 Challenge(两轮制,>100 支队伍,冠军平均召回 0.5095)。2021 年团队发布了 13 类 + 分割掩码的后继版 ChestX-Det 及 SAR-Net 论文(IEEE TMI)。
§1.2 战略价值分析
任务范式维度:2017 年 ChestX-ray8 发布时,作者 Wang 等人就明确指出"疾病区域的边界框数量非常有限"是整个数据集的硬伤——其 BBox_List_2016 只有 983 张图、1,600 个框,且每类恰好 200 例、由单人标注,只能用于弱监督定位的定性评估。此后三年,胸片 AI 被锁死在"分类 + CAM 热力图"范式里,检测论文只能拿这 983 张图做评测。ChestX-Det10 是第一个把实例级检测(instance-level detection)变成可训练任务的公开胸片数据集:3,543 张训练可用图像、10 类并行标注、标准 [x1,y1,x2,y2] 格式,直接把胸片检测接入 COCO/VOC 式的目标检测工程体系。
标注质量维度:与 ChestX-ray14 主标签(NLP 从报告挖掘,估计准确率 >90%)不同,ChestX-Det10 的框是放射科医生完全重新勾画的,采用"委员会双盲标注 + 资深裁决者定稿"的三人协议——这是医学影像标注的经典金标准流程。虽然论文坦承存在主观变异且未发布一致性统计,但相比同时代的弱监督定位真值(单人标注、每类定额),其标注体系已属当时最严格的一档,这也是它被后续基础模型研究(如小病灶探针研究 arXiv:2606.11606)选作空间定位真值集的原因。
生态推动维度:ChestX-Det10 Challenge(2020,两轮制、>100 支队伍、6 支决赛)为胸片检测留下了第一份公开排行榜与统一评测脚本(recall@0.05/0.1/0.2 FP/image)。冠军方案(TSD + ResNeXt101,平均召回 0.5095)所揭示的"框嵌套""小目标密集"等工程难点,直接启发了后继的 ChestX-Det(13 类 + 分割)与 SAR-Net(IEEE TMI 2021)。在 VinDr-CXR(18,000 张,2022 年发布)出现之前,它几乎是胸片检测研究的唯一公开选项。
§1.3 横向对比
| 数据集 | 图像数 | 标注类型 | 标注者 | 类别数 | 核心差异化 |
|---|---|---|---|---|---|
| ChestX-Det10 | 3,543 | 实例级边界框 | 3 名认证放射科医生(双盲+裁决) | 10 | 首个胸片实例级检测基准;CC0 图像;配套 Challenge |
| ChestX-ray14 BBox 子集 | 983(1,600 框) | 边界框 | 1 名放射科医生,每类定额 200 例 | 8 | 仅供弱监督定位评估,不足以训练 |
| ChestX-Det(后继版) | 3,578 | 边界框 + 分割 polygons | 3 名认证放射科医生 | 13 | 新增 Cardiomegaly/Diffuse Nodule/Pleural Thickening + 分割掩码,SAR-Net 配套 |
| VinDr-CXR | 18,000 | 边界框 + 图像级标签 | 3 名放射科医生(test 5 人共识) | 22 局部 + 6 全局 | 规模最大、PhysioNet 托管、患者级划分 |
| RSNA Pneumonia Detection | 约 30,000 | 边界框(单病) | 放射科医生复审 | 1(肺炎) | Kaggle 2018 竞赛集,单病大规模 |
| TBX11K | 11,200 | 边界框 | 放射科医生 | 结核相关 4 类 | 结核病专病检测 |
ChestX-Det10 的不可替代性在于三点:历史首发(2020 年的唯一选项)、图像层 CC0 公有领域(VinDr-CXR 为 PhysioNet 受限条款、ChestX-Det 镜像为 CC BY-NC-SA)、以及与 ChestX-ray14 共享 file_name 主键——可以无缝拼接 11.2 万张图像的 NLP 标签做"检测 + 分类"多任务或预训练研究。
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2017-05 | ChestX-ray8 发布(Wang et al., CVPR 2017;arXiv:1705.02315),8 类 + BBox_List_2016(983 张/1,600 框) |
| 2017-11 | ChestX-ray8 扩展为 ChestX-ray14:112,120 张、30,805 名患者、14 类 NLP 标签 |
| 2020-06-17 | ChestX-Det10 arXiv v1 发布(arXiv:2006.10550),GitHub 仓库上线 train.json / test.json / eval.py |
| 2020-06-19 | arXiv v2 修订 |
| 2020-07 | GitHub 标注文件更新(train.json / test.json 最终版) |
| 2020-10-19 | arXiv v3;ChestX-Det10 Challenge 结果报告发布(arXiv:2010.10298):两轮制、>100 支队伍、6 支决赛 |
| 2020-10-22 | GitHub README 最终更新(下载地址改为 Deepwise CDN) |
| 2021 | 后继版 ChestX-Det 发布:3,578 张、13 类、新增分割 polygons;SAR-Net 论文(Lian et al., IEEE TMI 2021) |
| 2022-02 | VinDr-CXR 正式版发布(Scientific Data),胸片检测基准主战场逐渐转移 |
| 2024-2026 | ChestX-Det10 被基础模型/自监督研究广泛用作小病灶定位评测集(如 arXiv:2606.11606 的 small-lesion bbox cohort) |
§1.5 典型 AI 应用场景
- 胸片异常检测模型训练:Faster R-CNN / RetinaNet / DETR 系列在 10 类异常上的端到端训练,3,001 张训练集是入门医疗检测的最小可行规模。
- 基础模型空间定位评测:视觉基础模型(自监督预训练、视觉-语言模型)在真实病灶框上的定位探针评估——2026 年的小病灶研究即选用其 Calcification/Nodule/Mass 三类做空间频带分析。
- 弱监督定位真值集:用 ChestX-ray14 的 11.2 万张 NLP 标签训练分类模型,用 ChestX-Det10 的医生框评估 CAM/Grad-CAM 定位质量。
- 少样本与小目标检测研究:Mass(160 框)、Pneumothorax(211 框)、Emphysema(298 框)等长尾类别天然构成 few-shot 与小目标场景。
- 检测指标方法学:其 recall@固定 FP/image 评测体系(沿自 LUNA/FROC 传统)是研究医学检测指标设计的现成案例。
§2 医学背景
§2.1 ICD-11 疾病分类锚定
必须先建立一个关键认知:ChestX-Det10 的 10 个类别是影像学发现(radiological findings),不是计费诊断编码。Consolidation(实变)是肺炎的影像征象而非疾病本身;Calcification(钙化)可见于结核愈合期、错构瘤等多种情境。因此下表给出的是"影像发现 → 临床语境 → 编码体系"的三层映射,供下游与 EHR/流行病学数据对接时参考(ICD-10-CM 为主要锚点,ICD-11 给块级定位):
| 数据集标签 | 中文 | 影像学定义 | ICD-10-CM(临床语境) | ICD-11 块级映射 |
|---|---|---|---|---|
| Atelectasis | 肺不张 | 肺容积减少伴密度增高 | J98.1 | CB 块 呼吸系统疾病 |
| Calcification | 钙化 | 肺实质/淋巴结内高密度钙化灶 | J98.4(肺其他疾患) | CB 块 呼吸系统疾病 |
| Consolidation | 实变 | 肺泡腔被渗出填充的均匀致密影 | J18.x(肺炎临床语境) | CA40–CA4Z 下呼吸道感染 |
| Effusion | 胸腔积液 | 肋膈角变钝/胸腔内液体影 | J90 / J91.8 | DB98.Z 胸腔积液 |
| Emphysema | 肺气肿 | 肺过度充气、低衰减区 | J43.9 | CA22 肺气肿块 |
| Fibrosis | 肺纤维化 | 网格/条索状间质改变 | J84.10 / J84.9 | CB03 间质性肺疾病块 |
| Fracture | 骨折 | 肋骨/锁骨等骨性结构皮质中断 | S22.3–S22.4(肋骨骨折) | NC 块 损伤 |
| Mass | 肿块 | >3 cm 局灶性占位影 | R91.8(肺野异常阴影) | CA 块 / 2E 块(肿瘤语境) |
| Nodule | 结节 | ≤3 cm 类圆形局灶影 | R91.1(孤立性肺结节) | CA 块 呼吸系统疾病 |
| Pneumothorax | 气胸 | 脏层胸膜线外无肺纹理区 | J93.9 | CB21 气胸块 |
为什么类别集合与 ChestX-ray14 的 14 类不同:Det10 的选类标准是"可勾画边界框的局灶性/区域性发现"。Cardiomegaly(心脏肥大)是全局心胸比判断、Edema(水肿)边界模糊、Pneumonia 与 Infiltration 是 NLP 文本概念而非精确影像征象——这些类别不适合框标注而被舍弃;Calcification 与 Fracture 则是 Det10 新增的两类(14 类标签体系中没有),因为它们是边界清晰、标注价值高的局灶发现。切勿把 ChestX-ray14 的 14 类图像级标签直接拼接到框上(见 §6.5 坑点 5)。
§2.2 SNOMED CT 映射
| 数据集标签 | ICD-10-CM | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|
| Atelectasis | J98.1 | 111895007 | Atelectasis (disorder) |
| Effusion | J90 / J91.8 | 60046008 | Pleural effusion (disorder) |
| Emphysema | J43.9 | 87433001 | Pulmonary emphysema (disorder) |
| Pneumothorax | J93.9 | 36118001 | Pneumothorax (disorder) |
| Fibrosis | J84.10 | 51615001 | Fibrosis of lung (disorder) |
| Fracture | S22.3–S22.4 | 125605004 | Fracture of bone (disorder) |
| Calcification | J98.4 | —(形态学发现层级) | Calcification(morphologic abnormality 层级,各版本码表存在差异) |
| Consolidation | J18.x 语境 | —(影像学发现层级) | Pulmonary consolidation(finding 层级) |
| Mass | R91.8 | —(影像学发现层级) | Mass of lung(finding 层级) |
| Nodule | R91.1 | —(影像学发现层级) | Pulmonary nodule(finding 层级) |
说明:后四类在 SNOMED CT 中以"形态学异常/检查发现"层级建模,不同发布版本与扩展包的概念码不完全一致,本页不强行给定单一概念码;临床产品注册对接时建议在 UMLS 中按 CUI 反查最新映射。
§2.3 疾病简介
胸部 X 光片(CXR)是全球年检查量最大的医学影像项目——仅美国每年即超过 2,000 万人次,是肺炎、气胸、心衰、肺癌筛查的第一道影像关口。本数据集覆盖的 10 类异常横跨三大临床情境:急性危重症(气胸——张力性气胸可数分钟内致命;胸腔积液;实变/肺炎)、慢性结构改变(肺气肿、纤维化、肺不张、钙化)与肿瘤筛查(结节、肿块——早期肺癌的主要影像形态)。放射科医生阅片的核心动作正是"发现局灶异常并定位",这正是实例级检测任务要自动化的临床行为。值得注意的是数据集中最稀有的 Mass(160 框)与 Pneumothorax(211 框)恰是临床权重最高的两类——稀有性与重要性的错配是理解本数据集标签分布的关键。
§2.4 临床任务定义
| AI 任务 | 临床定义 | 操作化(本数据集) | 评估指标 |
|---|---|---|---|
| 异常定位检测 | 在正位胸片上找出局灶性异常并给出位置与类别 | 预测 [x1,y1,x2,y2] 框 + 10 类标签 + 置信度,与医生金标准框匹配 | IoU=0.5 下的 AP50;recall@0.05/0.1/0.2 FP/image(FROC 传统) |
| 小病灶检出 | 检出占图像面积极小比例的病灶(钙化中位框 ≈28×28 px,仅占 1024² 画面的 0.07%) | 小目标 anchor 设计、高分辨率输入策略 | per-class recall@固定 FP |
| 筛查敏感性评估 | 临床可接受的低假阳性率下的检出率 | 每张图 0.05-0.2 个假阳性工作点 | avgrecall(三个 FP 工作点召回均值) |
| 弱监督定位评估 | 仅用图像级标签训练的模型的定位能力真值评估 | CAM/Grad-CAM 框与 Det10 金标准框的 IoU | 定位准确率@IoU 阈值 |
§2.5 患者人群特征
| 维度 | 特征 |
|---|---|
| 数据来源 | 单中心:美国国立卫生研究院临床中心(NIH Clinical Center),马里兰州贝塞斯达,美国联邦研究型医院;图像继承自 ChestX-ray14(112,120 张、30,805 名患者) |
| 采集时间 | 与 ChestX-ray14 相同(1990 年代至 2015 年前后;NIH 未公开精确检查日期) |
| 选样方式 | 从 112,120 张中人工精选 3,543 张,准则是"覆盖尽可能宽的表观范围"(不同投照角度、亮度、扫描条件)——非随机抽样 |
| 阳性构成 | train 2,320 阳性(77.3%)/ 681 阴性;test 459 阳性(84.7%)/ 83 阴性——阳性率远高于自然人群,是检测训练导向的富集设计 |
| 年龄/性别 | 论文未发布子集级人口学统计;可经 file_name 关联 ChestX-ray14 的 Data_Entry_2016.csv 获得 Patient ID / Patient Age / Patient Gender |
| 患者级信息 | 官方未声明 train/test 为患者级划分(Challenge 报告原文为 “randomly split”)——同一患者的多张胸片可能分跨训练与测试两侧(见 §6.5 坑点 2) |
§2.6 金标准/参考标准
| 数据划分 | 标注方式 | 标注者 | 金标准性质 |
|---|---|---|---|
| Train(3,001 张) | 委员会制双盲独立标注 + 资深裁决 | 2 名 board-certified 放射科医生互盲标注;1 名最资深放射科医生裁决定稿 | 专家共识金标准;作者坦承存在主观变异但未发布一致性统计 |
| Test(542 张) | 同 Train(同一协议) | 同 Train | 同 Train;Challenge 决赛即在此 542 张上评测 |
| 关联参照 | ChestX-ray14 图像级 NLP 标签(估计准确率 >90%) | NLP 自动挖掘 | 与框标注相互独立,不可混用为框级真值 |
标注协议细节(原论文 §2):3 名认证放射科医生分两个角色——Committee(2 人):每张图像由两人分别独立标注,互相不可见对方结果;Judge(1 人,最资深):从两份标注中选择采用,并可补充遗漏标注,最终定稿即为训练与测试共用的 gold standard。论文特别注明:“我们称之为金标准,但须意识到标注中存在潜在的主观变异”(potential subjective variants within the annotation)。标注内容包括类别(syms)与边界框(boxes),且允许多个疾病标签共享同一框区域——这是与 COCO 等自然图像数据集的重要差异。
§3 数据集规格
§3.0 版本抉择矩阵
ChestX-Det10 处在一个"祖孙三代 + 外部竞品"的选型空间中。30 秒选型:
| 你的需求 | 推荐数据集 | 规模 | 理由 |
|---|---|---|---|
| 复现 2020-2022 年胸片检测论文;需要 CC0 自由图像层;与 ChestX-ray14 标签生态联动 | ChestX-Det10 | 3,543 张 / 8,339 框 | 唯一 CC0 图像层的医生框检测集;file_name 可直接 join ChestX-ray14 全部元数据与 NLP 标签 |
| 需要分割掩码、更多类别(含心脏肥大)、做检测+分割多任务 | ChestX-Det(13 类后继版) | 3,578 张 / 13 类 / polygons | Det10 超集:+35 张图、+3 类、逐实例分割掩码;SAR-Net(TMI 2021)配套 |
| 大规模检测训练、患者级划分、PhysioNet 规范化托管 | VinDr-CXR | 18,000 张 / 22 局部 + 6 全局标签 | 规模 5 倍于 Det10,test 集 5 医生共识,患者级划分更严谨 |
| 11 万级图像级分类/预训练 | ChestX-ray14 全量 | 112,120 张 | 检测框标注极少(983 张),但分类标签与图像规模无可替代 |
| 单病种大规模检测(肺炎) | RSNA Pneumonia Detection | 约 30,000 张 | Kaggle 竞赛集,单病深度足够 |
一句话结论:做 10 类通用胸片异常检测且要 CC0 图像 → ChestX-Det10;要分割或 13 类 → ChestX-Det;要规模与严格患者级划分 → VinDr-CXR。
ChestX-Det10 vs ChestX-Det(13 类)关键差异速查:
| 维度 | ChestX-Det10 | ChestX-Det(后继版) |
|---|---|---|
| 图像数 | 3,543 | 3,578(+35) |
| 类别数 | 10 | 13(+Cardiomegaly / Diffuse Nodule / Pleural Thickening) |
| 标注文件 | train.json / test.json | ChestX_Det_train.json / ChestX_Det_test.json |
| 分割掩码 | ❌ 仅边界框 | ✅ polygons 逐实例轮廓 |
| 配套论文 | Liu et al. 2020(arXiv:2006.10550) | Lian et al. 2021 SAR-Net(IEEE TMI) |
| 镜像许可 | 图像 CC0;标注无显式许可 | Kaggle 镜像标注 CC BY-NC-SA 4.0(非商业) |
| 评测脚本 | eval.py(recall@FP/image) | 兼容 + 分割指标 |
§3.1 模态详细说明
单一模态:数字 X 线摄影(DR)正位胸片。图像继承自 ChestX-ray14 的处理管线——由 PACS 中的 DICOM 直接提取,重采样为 1024×1024 位图,灰度范围按 DICOM 头中默认窗宽窗位设置 rescale 后以 8-bit PNG 发布。无侧位片、无 DICOM 原始文件(Google Cloud 托管的 DICOM 版本为第三方转换)、无放射学报告文本(NIH 明确不公开报告)。标注层为 JSON 文本文件,逐图像给出类别列表与边界框坐标。
§3.2 样本量拆分
| 划分 | 图像数 | 阳性图像 | 阴性图像 | 标注框总数 |
|---|---|---|---|---|
| Train | 3,001 | 2,320(77.3%) | 681(22.7%) | 6,863 |
| Test | 542 | 459(84.7%) | 83(15.3%) | 1,476 |
| 合计 | 3,543 | 2,779(78.4%) | 764(21.6%) | 8,339 |
逐类实例统计(原论文 Table 2;同一框区域可被多个类别共享,故各类之和 8,339 ≥ 唯一框数):
| 类别 | 中文 | Train | Test | 合计 | 占比 |
|---|---|---|---|---|---|
| Consolidation | 实变 | 2,091 | 446 | 2,537 | 30.4% |
| Effusion | 胸腔积液 | 1,720 | 372 | 2,092 | 25.1% |
| Nodule | 结节 | 789 | 166 | 955 | 11.5% |
| Fibrosis | 纤维化 | 618 | 120 | 738 | 8.9% |
| Fracture | 骨折 | 546 | 115 | 661 | 7.9% |
| Calcification | 钙化 | 280 | 67 | 347 | 4.2% |
| Atelectasis | 肺不张 | 289 | 51 | 340 | 4.1% |
| Emphysema | 肺气肿 | 232 | 66 | 298 | 3.6% |
| Pneumothorax | 气胸 | 169 | 42 | 211 | 2.5% |
| Mass | 肿块 | 129 | 31 | 160 | 1.9% |
长尾警示:Consolidation(2,537)与 Mass(160)相差 15.9 倍;Mass 测试集仅 31 个实例——单次评测的 per-class AP 在 95% 置信区间下波动可达 ±15 个百分点(见 §6.5 坑点 6)。
§3.3 数据格式详情
| 文件 | 格式 | 说明 |
|---|---|---|
| 图像 | PNG,1024×1024,8-bit 灰度 | 文件名即 ChestX-ray14 原名(如 00000042_006.png),可与 Data_Entry_2016.csv 关联 |
| train.json | JSON 数组 | 3,001 条记录:{“file_name”: str, “syms”: [str,…], “boxes”: [[x1,y1,x2,y2],…]} |
| test.json | JSON 数组 | 542 条记录,结构同上 |
| eval.py | Python 2 时代脚本 | 官方评测:recall@0.05/0.1/0.2 FP/image,IoU=0.5;输入为逐图 JSON 预测文件目录 |
标注示例(官方 README 原文):
{"file_name": "00000042_006.png",
"syms": ["Fibrosis", "Fibrosis"],
"boxes": [[632, 721, 909, 969], [129, 611, 474, 909]]}
坐标约定(最易踩坑处):boxes 为 [x1, y1, x2, y2](左上、右下两个角点,像素坐标,基于 1024×1024)。这与 ChestX-ray8 自带 BBox_List_2016.csv 的 [x, y, w, h](左上点 + 宽高)完全不同(见 §6.5 坑点 3)。
§3.4 存储大小
| 形态 | 大小 | 备注 |
|---|---|---|
| 图像(3,543 张 PNG) | 约 1.4 GB | 单张约 300-500 KB;参照 Kaggle 上 3,578 张的后继版镜像为 1.44 GB |
| 标注(train.json + test.json) | < 5 MB | 纯文本 |
| 全量 ChestX-ray14(如需母集) | 约 42 GB(12 个 tar.gz 分卷) | 若按 file_name 从 NIH Box 匹配下载则需先下全量 |
§3.5 标注方式
人工专家标注,流程为经典三段式:
3,543 张精选胸片
│
├─→ Committee 放射科医生 A(独立标注,互盲)──┐
│ ├─→ Judge(最资深放射科医生)
└─→ Committee 放射科医生 B(独立标注,互盲)──┘ 选择采用 + 补充遗漏
│
▼
Gold Standard(train/test 共用)
选图准则为"覆盖尽可能宽的表观范围"(不同投照角度、亮度、扫描条件),非随机抽样。标注在 Deepwise AI Lab 内部完成,标注工具未公开。
§3.6 标注者资质
| 项目 | 信息 |
|---|---|
| 人数 | 3 名 |
| 资质 | board-certified 放射科医生(认证放射科医师) |
| 角色结构 | 2 人委员会(互盲独立标注)+ 1 人资深裁决(judge) |
| 一致性检验 | 未发布(无 kappa、无 IoU 一致性统计);论文仅声明 judge 定稿为金标准并承认主观变异 |
| 机构 | Deepwise AI Lab(深睿医疗)组织 |
§3.7 数据采集时间范围
图像采集时间与 ChestX-ray14 一致(NIH Clinical Center 常规临床检查积累至 2015 年前后,精确日期未公开)。标注工作于 2019-2020 年完成,2020-06-17 随 arXiv v1 公开发布。
§3.8 地理覆盖
单中心:美国马里兰州贝塞斯达 NIH Clinical Center。单中心来源是泛化性的核心限制——设备型号、投照协议、患者构成均带 NIH 转诊人群特征(详见 §7.3)。标注团队位于中国(Deepwise AI Lab,北京),形成"美国数据 + 中国标注"的跨地域构成。
§3.9 采集设备规格
| 项目 | 信息 |
|---|---|
| 原始采集 | NIH Clinical Center 放射科 PACS 中多家厂商 DR 设备(具体型号未公开) |
| 发布处理 | DICOM → 1024×1024 PNG 重采样;按 DICOM 默认窗宽窗位 rescale 至 8-bit(Wang et al. 2017 §2.3) |
| 投照体位 | 正位(PA 为主,含部分 AP;Data_Entry_2016.csv 的 View Position 字段可查) |
| 去标识 | DICOM 头信息移除、面部区域处理(NIH 标准去标识流程) |
§3.10 深度溯源链
| 环节 | 系统/方法 | 关键转换 |
|---|---|---|
| 1. 临床采集 | NIH Clinical Center 放射科 DR 设备 | 常规诊疗产生的正位胸片,进入 PACS |
| 2. 母集构建 | NIH(Wang et al. 2017) | DICOM → 1024×1024 PNG;NLP 从报告挖掘 14 类图像级标签;去标识;112,120 张 / 30,805 患者 |
| 3. 子集精选 | Deepwise AI Lab | 以"覆盖尽可能宽的表观范围"为准则人工精选 3,543 张(含不同角度/亮度/扫描条件) |
| 4. 实例级标注 | 3 名认证放射科医生(2 委员会 + 1 裁决) | 逐张勾画 10 类异常框,de novo 重标,与 NLP 标签完全独立 |
| 5. 划分与发布 | Deepwise AI Lab | 随机划分为 train 3,001 / test 542;train.json + test.json + eval.py 经 GitHub 发布 |
| 6. 赛事与扩展 | ChestX-Det10 Challenge(2020)→ ChestX-Det 13 类(2021) | >100 支队伍参赛;后继版 +35 张图、+3 类、+分割掩码 |
§4 数据结构详解
§4.0 目录结构预览
GitHub 仓库与下载解压后的期望结构:
ChestX-Det10-Dataset/ # git clone Deepwise-AILab/ChestX-Det10-Dataset
├── README.md # 官方说明(含标注格式与评测协议)
├── train.json # 训练集标注(3,001 张,6,863 框)
├── test.json # 测试集标注(542 张,1,476 框)
└── eval.py # 官方评测脚本(recall@FP/image)
data/ # 自建图像目录(推荐结构)
├── train/ # 3,001 张训练 PNG(1024×1024)
│ ├── 00000001_000.png
│ ├── 00000042_006.png
│ └── ...
├── test/ # 542 张测试 PNG
│ └── ...
└── Data_Entry_2016.csv # (可选)ChestX-ray14 元数据,按 file_name 关联
# 患者 ID、年龄、性别、体位、14 类 NLP 标签
predictions/ # 评测时的预测输出目录(eval.py 输入)
├── 00000042_006.json # 与测试图像同名,逐图一个 JSON
│ # 内容格式:[{"nodule": [x1,y1,x2,y2,score]}, {"mass": [...]}, ...]
└── ...
图像获取的两条路径:(1) 从 NIH Box 下载 ChestX-ray14 全量 12 个分卷后按 train.json/test.json 中的 file_name 筛出 3,543 张;(2) 使用社区镜像(Kaggle 等)中已筛好的子集。GitHub 仓库只含标注与评测脚本,不含图像——这是新手最常见的第一个障碍。
§4.1 DAIMS 标准化字段描述表
核心表:train.json / test.json(逐图像记录)
| 字段名 | 数据类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| file_name | string | 图像文件名,与 ChestX-ray14 同名 | “00000042_006.png” | 主键;关联 Data_Entry_2016.csv 取患者级元数据 | 无 | 不允许缺失 | ChestX-ray14 命名空间 |
| syms | string[] | 异常类别列表,长度与 boxes 一一对应 | [“Fibrosis”, “Fibrosis”] | 框级分类标签 | 医生主观判读 | 阴性图像为空列表 [] | 10 类枚举(见 §3.2) |
| boxes | float[][] | 边界框 [x1, y1, x2, y2](左上-右下) | [[632, 721, 909, 969]] | 检测真值 | 医生勾画变异;多类别可共享同一框 | 阴性图像为空列表 [] | 0-1024 像素坐标 |
| (隐式)split | — | 由所属文件决定 train/test | — | 划分标记 | 随机图像级划分(非患者级) | — | train / test |
关联表:Data_Entry_2016.csv(ChestX-ray14 元数据,按 file_name join)
| 字段名 | 数据类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| Image Index | string | 图像文件名 | “00000042_006.png” | 与 Det10 标注的 join 键 | 无 | 不允许缺失 | — |
| Finding Labels | string | 14 类 NLP 图像级标签(竖线分隔) | "Fibrosis\ | Emphysema" | 弱监督预训练标签 | NLP 挖掘,估计准确率 >90%;与框标注独立 | “No Finding” 即阴性编码 |
| Patient ID | int | 患者标识 | 42 | 患者级划分/泄漏检查的唯一手段 | 无 | 不允许缺失 | 1-30,805 |
| Patient Age | int | 检查年龄 | 57 | 人口学协变量 | 记录误差 | 部分缺失 | 1-95 区间 |
| Patient Gender | char | 性别 | “M” | 公平性分析 | 记录误差 | 部分缺失 | M / F |
| View Position | string | 投照体位 | “PA” | 体位分层(PA/AP 分布偏移控制) | 记录误差 | 部分缺失 | PA / AP |
§4.2 标签分布统计
- 类别极不平衡:头部两类(Consolidation 30.4% + Effusion 25.1%)占全部框的 55.5%;尾部三类(Emphysema + Pneumothorax + Mass)合计仅 8.0%。
- 每图平均框数:8,339 / 3,543 ≈ 2.35 框/图(阳性图口径约 3.0 框/图)。
- 阴性图像:train 681 张(22.7%)、test 83 张(15.3%),syms/boxes 为空列表——检测训练时作为 hard negative 背景使用。
- 框尺寸量级(据 arXiv:2606.11606 统计):Calcification 中位约 28×28 px(占画面 0.07%)、Nodule 约 45×45(0.19%)、Mass 约 147×147(2.1%)——小目标密集是本数据集的核心检测难点,原论文冠军队伍为此专门设计了细粒度 anchor 尺度 [2,4,8,12]。
- “一框多标签”:原论文明确注明 multiple diseases might share the same region of box——例如同一致密影区域同时标注 Consolidation 与 Effusion。转 COCO 格式时若按框坐标去重会静默丢标签(见 §6.5 坑点 4)。
§4.3 关键字段描述性统计
- 唯一框区域数 < 8,339(因一框多标签机制),精确唯一框数论文未公布,需自行按 (file_name, box) 去重统计。
- 训练集 3,001 张中含 681 张完全阴性(无任何框),占 22.7%——远高于自然人群异常率,属于训练导向设计。
- 与 ChestX-ray14 的重叠关系:3,543 张全部来自 112,120 张母集;其中必然有部分图像落在 ChestX-ray14 官方 test_list.txt(25,596 张)中,做跨基准对比时务必核对两侧 file_name(见 §6.5 坑点 2)。
- 测试集 542 张中阳性 459 张(84.7%),高于训练集阳性率——评测时每类有效分母极小(Mass 仅 31 实例)。
框尺寸与检测难度画像(第三方实测统计,arXiv:2606.11606 §2.2.4):
| 类别 | 框数 / 阳性图数 | 中位框尺寸 | 占 1024² 画面比例 | 检测难度解读 |
|---|---|---|---|---|
| Calcification | 347 框 / 201 图 | ≈ 28 × 28 px | ≈ 0.07% | 极小目标,空间高频信号,对下采样最敏感 |
| Nodule | 955 框 / 384 图 | ≈ 45 × 45 px | ≈ 0.19% | 小目标主力类,FPN P2 层与细粒度 anchor 的直接受益类 |
| Mass | 160 框 / 142 图 | ≈ 147 × 147 px | ≈ 2.1% | 尺寸不小但实例最少,瓶颈在样本量而非分辨率 |
上表解释了官方基线的一个反直觉现象:Nodule 的 AP50(24.8)是全 10 类最低,甚至低于实例更少的 Mass(41.0)——决定检测难度的是目标尺度 × 对比度,而不只是实例数量。Challenge 冠军队伍正是针对这一点设计了 6 档纵横比 + 4 档小尺度 anchor。其余 7 类的官方框尺寸统计未发布,可在加载后按 §6.1 代码自行计算 w×h 分布。
类别共现提示:Consolidation 与 Effusion 是"一框多标签"机制下最高频的共现对(同一下肺野致密影的双重解读),Atelectasis 与 Effusion 次之。做 per-class AP 分析时,若发现 Consolidation 与 Effusion 的混淆矩阵异常对称,多半不是模型问题而是标注语义本身的重叠——建议将两者做合并口径的辅助评估并在论文中说明。
§4.4 数据层级关系
NIH ChestX-ray14(112,120 张 / 30,805 患者 / 14 类 NLP 图像级标签)
└─ ChestX-Det10 子集(3,543 张;file_name 一对一映射)
│ ├─ train.json(3,001 条图像记录 → 6,863 条实例标注)
│ └─ test.json(542 条图像记录 → 1,476 条实例标注)
│ 每条实例标注 = (类别 sym, 框 box),多实例共享同一图像
│ 特殊规则:多个 sym 可指向同一 box 区域
├─ 可 join:Data_Entry_2016.csv(Patient ID / Age / Gender / View Position / 14 类 NLP 标签)
└─ 后继扩展:ChestX-Det(13 类,+35 张,+polygons 分割)
- 主键:file_name(图像级);实例级无独立 ID,需以 (file_name, box 序号) 定位。
- 患者级信息不在标注文件中,必须经 Data_Entry_2016.csv 二次关联——患者级划分、年龄性别公平性分析、泄漏检查都依赖这一步。
§4.5 缺失值情况与信息性缺失编码
| 缺失类型 | 位置 | 缺失原因 | 信息性缺失编码 | 对 AI 的影响 |
|---|---|---|---|---|
| 结构性阴性 | syms/boxes 空列表(train 681 / test 83 张) | 图像无 10 类中任何异常 | 空列表即"阴性"显式编码 | 可直接作 hard negative;勿误当标注缺失 |
| 范围外异常 | 14 类中的 Cardiomegaly/Pneumonia 等无框 | Det10 只标 10 类,其余异常不在标注范围内 | 未编码——“无框"不等于"无其他疾病” | 把无框图当"完全正常"会引入标签噪声 |
| 患者元数据 | Det10 标注文件无 Patient ID/Age/Gender | 标注层只保留 file_name | 需 join Data_Entry_2016.csv 恢复 | 不做 join 则无法患者级划分 |
| 框级不确定性 | 无难度标记/无边框置信度 | 官方未提供 instance-level difficulty 或 ignore 标记 | 无 | 自定义 ignore 区域需自行设计 |
| 标注者间差异 | 无双人原始标注留存 | 仅发布 judge 裁决后的终稿 | 无 | 无法研究标注者间变异或做多标签软真值 |
§5 数据划分与使用建议
§5.1 官方数据划分
官方划分即 train.json(3,001 张)与 test.json(542 张)两个文件本身——这是唯一的事实标准划分,原论文基线与 ChestX-Det10 Challenge 均在此上评测。Challenge 报告明确写道 “we randomly split all data into 3001 images for training and 542 images for testing”,即随机图像级划分,未声明患者级分离。与文献比较结果时必须使用官方 test.json 的 542 张,不可自行重划。
§5.2 推荐划分策略
- 标准做法(与文献可比):直接用官方 train/test;从 train 中再切 10-15% 作验证集(按 Patient ID 分组切,见下)。
- 严谨做法(论文级):join Data_Entry_2016.csv 获取 Patient ID,检查官方 train/test 的患者重叠(社区检查已发现存在同一患者跨两侧的情况);新划分用
GroupShuffleSplit(groups=patient_id)。 - 验证集设计:从 3,001 张 train 中按患者分层切 300-450 张作 val,保证 10 类至少每类 20+ 实例落在 val 中(Mass/Pneumothorax 需特别检查)。
- 跨基准去重:若同时在 ChestX-ray14 官方 train_val_list 上预训练、在 Det10 test 上评测,先按 file_name 剔除预训练集中的 542 张 Det10 测试图——母集官方划分与本子集随机划分互不感知。
import json, pandas as pd
from sklearn.model_selection import GroupShuffleSplit
ann = json.load(open("train.json"))
meta = pd.read_csv("Data_Entry_2016.csv")
meta = meta.rename(columns={"Image Index": "file_name", "Patient ID": "patient_id"})
df = pd.DataFrame(ann).merge(meta[["file_name", "patient_id"]], on="file_name")
gss = GroupShuffleSplit(n_splits=1, test_size=0.12, random_state=42)
tr_idx, val_idx = next(gss.split(df, groups=df["patient_id"]))
train_df, val_df = df.iloc[tr_idx], df.iloc[val_idx]
assert set(train_df.patient_id) & set(val_df.patient_id) == set()
§5.3 数据泄漏风险防御
| # | 泄漏模式 | 严重程度 | 防御措施 |
|---|---|---|---|
| 1 | 官方随机划分致同一患者跨 train/test | 高 | join Patient ID 核查重叠;严谨研究改用患者级重划分并在论文中声明 |
| 2 | 用 ChestX-ray14 全量(含 Det10 测试图)做预训练/分类训练 | 高 | 按 file_name 从预训练集剔除 542 张 Det10 test |
| 3 | 把 ChestX-ray14 NLP 图像级标签当框级真值 join 到实例上 | 高 | 两套标注体系独立(§2.6);框级真值只用 Det10 医生标注 |
| 4 | 同一图像的多实例框在数据增强时被独立裁剪,使同一病灶的不同视图同时进入 train/val | 中 | 增强在图像级打包进行,不拆实例 |
| 5 | 调参反复使用 test 542 张(尤其稀有类仅 31 实例) | 中 | 超参搜索只用 train 内 val;test 仅最终评测一次 |
§5.4 交叉验证建议
数据集规模小(3,543 张),5 折患者级分组交叉验证是稳健做法:GroupKFold(n_splits=5, groups=patient_id),报告均值 ± 标准差。注意稀有类(Mass 全库仅 160 实例)在每折中可能不足 30 实例,分层时按"是否含稀有类实例"做分层轴。
§5.5 外部验证
经典外部验证路径:VinDr-CXR(18,000 张、14 个可定位 finding 与 Det10 有 8 类语义重叠)、ChestX-ray14 BBox 子集(983 张、8 类,类别完全覆盖 Det10 中的 8 类)、TBX11K(结核专病)。跨集评测需先做类别映射表(如 VinDr-CXR 的 “Lung tumor” ↔ Det10 的 Mass/Nodule 合并语义),并使用同一指标(建议统一换算为 recall@0.1FP/image 或 AP50)。
§6 AI 就绪指南
§6.0 云端快速启动
Kaggle 零下载起步:Kaggle 上的社区镜像(检索 “ChestX-Det”)内置 3,578 张图像与标注(注意:该镜像为 13 类后继版 ChestX-Det,含分割掩码;如需严格 10 类 Det10 标注,请从其 ChestX_Det_train.json 过滤原 10 类并以 GitHub 官方 train.json/test.json 为准)。Kaggle 免费 GPU(T4 × 2)足够复现 Faster R-CNN 基线。
Colab 路线:
git clone https://github.com/Deepwise-AILab/ChestX-Det10-Dataset获取标注(< 5 MB),图像经 Kaggle API 或 NIH Box 下载后挂载 Google Drive。3,543 张 PNG 约 1.4 GB,Colab 免费版磁盘可承载。首个可跑通的实验:用 §6.4 的 torchvision Faster R-CNN 在 train 的 500 张子集上训练 10 个 epoch,test 上跑 recall@0.1FP——单卡 T4 约 40 分钟。
§6.1 快速上手
# ========================================
# ChestX-Det10 快速上手 — 标注加载与可视化
# 环境要求: python>=3.9, numpy, pillow, matplotlib
#
# 目录结构预期:
# ./ChestX-Det10-Dataset/train.json # 官方训练标注(GitHub 仓库内)
# ./ChestX-Det10-Dataset/test.json # 官方测试标注
# ./data/train/*.png # 3,001 张训练图像(自行下载匹配)
# ./data/test/*.png # 542 张测试图像
#
# ⚠️ 坐标约定:boxes = [x1, y1, x2, y2](左上-右下角点,1024×1024 像素)
# 与 ChestX-ray8 BBox_List_2016.csv 的 [x, y, w, h] 完全不同!
# ========================================
import json
from pathlib import Path
from PIL import Image
import matplotlib.pyplot as plt
import matplotlib.patches as patches
DATA_ROOT = Path("./data")
ANN_ROOT = Path("./ChestX-Det10-Dataset")
CLASSES = ["Atelectasis", "Calcification", "Consolidation", "Effusion",
"Emphysema", "Fibrosis", "Fracture", "Mass", "Nodule", "Pneumothorax"]
# 1) 加载标注:每条记录 = {file_name, syms[], boxes[]}
records = json.load(open(ANN_ROOT / "train.json"))
print(f"训练图像: {len(records)}") # 3001
n_boxes = sum(len(r["syms"]) for r in records)
print(f"训练实例框: {n_boxes}") # 6863
# 2) 单张可视化
rec = records[0]
img = Image.open(DATA_ROOT / "train" / rec["file_name"]).convert("L")
fig, ax = plt.subplots(figsize=(8, 8))
ax.imshow(img, cmap="gray")
for sym, (x1, y1, x2, y2) in zip(rec["syms"], rec["boxes"]):
ax.add_patch(patches.Rectangle((x1, y1), x2 - x1, y2 - y1,
fill=False, edgecolor="red", linewidth=2))
ax.text(x1, y1 - 4, sym, color="yellow", fontsize=9)
plt.show()
§6.2 数据获取流程
| 获取内容 | 位置 | 大小 | 流程 |
|---|---|---|---|
| 标注 + 评测脚本 | https://github.com/Deepwise-AILab/ChestX-Det10-Dataset | < 5 MB | git clone 即可,无需注册 |
| 图像(官方源) | https://nihcc.app.box.com/v/ChestXray-NIHCC | 全量约 42 GB | 下载 ChestX-ray14 的 12 个 tar.gz 分卷,解压后按 train.json/test.json 的 file_name 筛出 3,543 张 |
| 图像(社区镜像) | Kaggle 检索 “ChestX-Det” | 约 1.4 GB | 已筛好的子集,注意镜像为 13 类后继版,标注以官方 GitHub 为准 |
| 图像(历史 CDN) | http://resource.deepwise.com/xraychallenge/train_data.zip | — | README 记载的官方直链,可用性不稳定,失败时回退上两条路径 |
| 元数据 | ChestX-ray14 的 Data_Entry_2016.csv(随 Box 分卷) | 小 | 患者级划分与泄漏检查必需 |
引用义务(官方硬性要求):使用本数据集发表论文时须同时引用两篇——Liu et al. 2020(arXiv:2006.10550)与 Wang et al. 2017(ChestX-ray8, CVPR)。完整 BibTeX 见 §9。
§6.3 预处理 Pipeline
核心工作是把官方 JSON 转成检测框架通用的 COCO 格式。关键点:保留"一框多标签"(同一框坐标可被多个类别各注册一次);阴性图像注册为空 annotations 的 image 条目。
<details>
<summary><b>点击展开完整的 JSON → COCO 转换代码</b></summary>
# ========================================
# ChestX-Det10 → COCO 格式转换
# 输入: ./ChestX-Det10-Dataset/{train,test}.json
# 输出: ./annotations/{train,test}_coco.json
# ========================================
import json
from pathlib import Path
CLASSES = ["Atelectasis", "Calcification", "Consolidation", "Effusion",
"Emphysema", "Fibrosis", "Fracture", "Mass", "Nodule", "Pneumothorax"]
IMG_W = IMG_H = 1024
def convert(split: str):
records = json.load(open(f"./ChestX-Det10-Dataset/{split}.json"))
coco = {
"images": [], "annotations": [],
"categories": [{"id": i + 1, "name": c} for i, c in enumerate(CLASSES)],
}
ann_id = 0
for img_id, rec in enumerate(records):
coco["images"].append({
"id": img_id, "file_name": rec["file_name"],
"width": IMG_W, "height": IMG_H,
})
for sym, (x1, y1, x2, y2) in zip(rec["syms"], rec["boxes"]):
assert sym in CLASSES, f"未知类别: {sym}"
x1, y1 = max(0, x1), max(0, y1)
x2, y2 = min(IMG_W, x2), min(IMG_H, y2)
w, h = x2 - x1, y2 - y1
if w <= 1 or h <= 1: # 过滤退化框
continue
coco["annotations"].append({
"id": ann_id, "image_id": img_id,
"category_id": CLASSES.index(sym) + 1,
"bbox": [x1, y1, w, h], # COCO 用 [x, y, w, h]
"area": w * h, "iscrowd": 0,
})
ann_id += 1
out = Path("./annotations")
out.mkdir(exist_ok=True)
json.dump(coco, open(out / f"{split}_coco.json", "w"))
print(f"{split}: {len(coco['images'])} images, {len(coco['annotations'])} instances")
convert("train") # train: 3001 images, 6863 instances
convert("test") # test: 542 images, 1476 instances
</details>
图像预处理:原图已是 1024×1024 / 8-bit,无需 resize 即可直接训练;直方图均衡化(CLAHE)对小病灶检测有轻微增益但会改变跨数据集可比性,使用需在论文中声明;归一化建议用 ChestX-ray14 全量统计或 ImageNet 均值方差(复现官方基线时 backbone 为 ImageNet 预训练 ResNet-50,直接用 ImageNet 统计即可)。
§6.4 框架加载
PyTorch / torchvision(最小依赖路线):
# ========================================
# ChestX-Det10 PyTorch Dataset(COCO 格式输入)
# 环境要求: torch>=2.0, torchvision, pycocotools
# ========================================
import torch
from torch.utils.data import DataLoader
from torchvision.datasets import CocoDetection
from torchvision.models.detection import fasterrcnn_resnet50_fpn
from torchvision.models.detection import FasterRCNN_ResNet50_FPN_Weights
class Det10(CocoDetection):
def __getitem__(self, idx):
img, anns = super().__getitem__(idx)
boxes, labels = [], []
for a in anns:
x, y, w, h = a["bbox"]
boxes.append([x, y, x + w, y + h]) # 转回 [x1,y1,x2,y2]
labels.append(a["category_id"])
target = {
"boxes": torch.tensor(boxes, dtype=torch.float32).reshape(-1, 4),
"labels": torch.tensor(labels, dtype=torch.int64),
}
from torchvision.transforms.functional import to_tensor
return to_tensor(img.convert("RGB")), target
train_ds = Det10(root="./data/train", annFile="./annotations/train_coco.json")
loader = DataLoader(train_ds, batch_size=4, shuffle=True, num_workers=4,
collate_fn=lambda b: tuple(zip(*b)))
model = fasterrcnn_resnet50_fpn(weights=FasterRCNN_ResNet50_FPN_Weights.DEFAULT)
in_feat = model.roi_heads.box_predictor.cls_score.in_features
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
model.roi_heads.box_predictor = FastRCNNPredictor(in_feat, num_classes=11) # 10 类 + 背景
MMDetection / Detectron2(复现官方口径路线):将 §6.3 生成的 COCO JSON 直接注册为标准数据集,选 faster_rcnn_r50_fpn_1x_coco config 改 num_classes=10;官方基线的训练细节(SGD lr=0.01、50 epoch、多尺度训练短边 800-1400、测试同策略多尺度)见 §8.1。
§6.5 常见坑点
⚠️ 坑点 1:标注层无显式 license——合规盲区(分类:合规陷阱)
问题:GitHub 仓库没有 LICENSE 文件。图像层虽为 NIH CC0 公有领域,但"图像 CC0"不等于"标注 CC0"——3 名放射科医生的标注成果的权利归属与再分发条款从未明示。
症状:商业产品管线引入标注后被法务拦截;Kaggle 等平台的镜像各自标注了不同许可(后继版 ChestX-Det 镜像标 CC BY-NC-SA 4.0),与 GitHub 原版关系模糊。
解决:学术研究与竞赛按官方引用要求使用(引用 Liu 2020 + Wang 2017);商业用途前邮件联系官方(README 留有联系邮箱)取得书面确认;在产品文档中区分"图像层 CC0 / 标注层未明示"两层来源。
参考:https://github.com/Deepwise-AILab/ChestX-Det10-Dataset (无 LICENSE 文件,截至 2026-09);Google Cloud NIH 数据集页(CC0 与署名要求)。
⚠️ 坑点 2:随机图像级划分——同一患者横跨 train/test(分类:数据泄漏)
问题:Challenge 报告明确记载划分方式为 “randomly split”(图像级随机),未按患者分离。ChestX-ray14 中平均每名患者有 3.6 张胸片(112,120 / 30,805),同一患者的多张图像可能分落训练与测试两侧,模型可"认出"患者而非病灶。
症状:测试集召回/AP 系统性偏乐观;与自行患者级划分的实验结果差 2-5 个百分点;复现别人结果时数值对不上。
解决:(1) 与文献比较时仍用官方划分(保证可比),但在论文局限性中声明;(2) 方法学研究用 §5.2 代码 join Patient ID 后自行患者级重划分;(3) 预训练集与 Det10 test 按 file_name 去重。
参考:Challenge 报告 arXiv:2010.10298 §1(“we randomly split”);ChestX-ray8 论文(官方 train_val/test 为患者级划分,形成对照)。
⚠️ 坑点 3:坐标格式张冠李戴——[x1,y1,x2,y2] vs [x,y,w,h](分类:工程陷阱)
问题:Det10 的 boxes 是 [x1, y1, x2, y2](左上-右下角点),而 ChestX-ray8 自带 BBox_List_2016.csv 是 [x, y, w, h](左上点 + 宽高),COCO 也是 [x, y, w, h]。混用两种约定是新手最高频 bug。
症状:框可视化时位置偏移/尺寸爆炸(把 x2 当 w 画出界);训练 loss 异常高;评估 IoU 全部 ≈0。
解决:入口先做断言检查:
assert (boxes[:, 2] > boxes[:, 0]).all() and (boxes[:, 3] > boxes[:, 1]).all();Det10→COCO 转换时w = x2 - x1, h = y2 - y1(§6.3 已处理);与 BBox_List_2016 混用时先统一约定。参考:官方 README 标注格式段;ChestX-ray8 论文 §2.4(BBox 格式说明)。
⚠️ 坑点 4:一框多标签——同一框区域可承载多个疾病(分类:标签理解)
问题:原论文明确注明 “multiple diseases might share the same region of box”:例如同一致密影既可标 Consolidation 又可标 Effusion,两个类别共享同一组框坐标。
症状:转 COCO 后按框坐标去重导致实例数从 8,339 缩水;类别共现统计(Consolidation∩Effusion)异常偏低;anchor 匹配阶段同类冲突。
解决:转换时按 (类别, 框) 对注册实例而非按框去重(§6.3 代码即此逻辑);分析报告实例数时区分"实例标注数 8,339"与"唯一框区域数";评测时同一框预测对多个类别各计一次命中(eval.py 行为)。
参考:原论文 arXiv:2006.10550 §2 Table 2 脚注。
⚠️ 坑点 5:类别体系与 ChestX-ray14 的 14 类不一致——标签错配(分类:标签理解)
问题:Det10 的 10 类 ≠ ChestX-ray14 的 14 类子集:Calcification、Fracture 是新增(14 类没有);Cardiomegaly、Infiltration、Pneumonia、Edema、Pleural Thickening、Hernia 不在 Det10 标注范围内。且框标注是 de novo 重标,与 NLP 标签完全独立。
症状:把 NLP 标签 join 到框上训练分类头,出现"图像有 Pneumonia 标签但无框"的幽灵监督;类别映射表错位(如把 Det10 的 Consolidation 映射成 14 类的 Pneumonia)。
解决:框级任务只用 Det10 标注;图像级任务用 NLP 标签;两者联用(如多任务学习)时把 NLP 标签仅作图像级监督,类别空间分开建模。
参考:§2.1 类别对照表;arXiv:2606.11606 §2.2.4(“bboxes were drawn de novo and are independent of the original NIH-CXR14 image-level pathology labels”)。
⚠️ 坑点 6:稀有类测试实例过少——单次评测不可信(分类:评估误用)
问题:Mass 测试集仅 31 个实例、Pneumothorax 42 个、Atelectasis 51 个。30 来个分母上,1-2 个框的判定差异就能造成 ±3-5 个百分点的 per-class 指标波动。
症状:同一模型两次评测(轻微改动 NMS 阈值)Mass AP50 跳动超过 5 点;不同论文报告的 per-class 数字无法复现。
解决:以 mean 指标(mAP / avgrecall)为主要对比口径;per-class 结果报告时附实例数(如 “Mass AP50 41.0 (n=31)”);严谨工作用 bootstrap 重采样估计置信区间,或改用患者级 5 折交叉验证报告均值±标准差。
参考:§3.2 逐类统计;Challenge 报告仅发布 mean 排名的设计逻辑。
⚠️ 坑点 7:官方 CDN 与下载链路不稳定(分类:工程陷阱)
问题:README 记载的官方图像直链(resource.deepwise.com)为企业自有 CDN,多年未维护,可用性不稳定;GitHub 仓库本身不含图像;NIH Box 全量下载 42 GB 对网络要求高。
症状:直链超时/404;Box 分卷下载中断;误以为 GitHub clone 完就能训练。
解决:优先级——(1) Kaggle 镜像(已筛好子集,注意其为 13 类版,标注以 GitHub 官方为准);(2) NIH Box 全量 + file_name 筛选(最权威);(3) 历史 CDN 仅作备选。下载后用
len(os.listdir("data/train")) == 3001与文件名校验做完整性检查。参考:README Download 段;§6.2 获取流程表。
⚠️ 坑点 8:avgrecall 与 COCO mAP 是两套指标体系——跨论文比较翻车(分类:评估误用)
问题:官方 eval.py 沿用 FROC 传统:IoU=0.5 下取 recall@0.05、0.1、0.2 FP/image 三者的平均(avgrecall)。这与原论文 Table 3 的 AP50、COCO 的 mAP@[.5:.95] 是三个不同数字,量级完全不同(avgrecall ≈ 0.47-0.51 vs AP50 ≈ 0.45 vs mAP 更低)。
症状:把自己 0.50 的 avgrecall 与别人 0.45 的 AP50 直接比较得出"SOTA"结论;审稿人被指出指标混淆。
解决:论文中显式写出指标全称与定义(“recall@0.1FP/image, IoU=0.5”);跨论文比较只同口径对比;建议同时报告 AP50(pycocotools)与 avgrecall(eval.py)两套,前者对齐通用检测文献、后者对齐官方 Challenge。
参考:官方 eval.py 注释;Challenge 报告 arXiv:2010.10298 §2。
版本提示:原始论文 v1(2020-06)与 v3(2020-10)之间标注文件无实质变更(v2/v3 为文本修订);GitHub 上 train.json/test.json 于 2020-07 最终定型。引用时请标注 arXiv 版本(v3)与文件下载日期。
§6.6 数据增强
| ✅ 安全增强 | ❌ 危险增强(禁止) |
|---|---|
| 水平翻转(胸片左右近似对称,Challenge 各队普遍使用) | 垂直翻转(破坏解剖结构语义) |
| 小角度旋转(±10-15°,官方基线采用 random rotation) | 弹性形变(改变病灶形态学特征,钙化/结节的边缘纹理是诊断依据) |
| 多尺度训练(短边 800-1400 随机采样,官方基线采用) | 随机裁剪时不检查框截断(小病灶被裁掉后框变为 0 面积,标签即噪声) |
| 亮度/对比度抖动(±10%,模拟不同投照条件) | MixUp/CutMix 直接叠加(病灶透明度语义被破坏,医学检测中证据不足) |
| Challenge 冠军的 crop-around-GT 增强:按随机比例围绕真值框裁 patch(针对性提升小目标) | 对含框图做强噪声注入(小病灶本来只占 0.07% 画面) |
§6.7 模型推荐
| 任务 | 推荐方案 | 预期性能(官方 test 542 张口径) |
|---|---|---|
| 快速复现基线 | Faster R-CNN + FPN,ResNet-50(ImageNet 预训练),SGD 50 epoch | mean AP50 ≈ 45;avgrecall ≈ 0.467(官方口径) |
| 追求 Challenge 榜首 | TSD(Task-aligned Spatial-disentanglement Detection)+ ResNeXt101-64×4d + 细粒度 anchor + crop-around-GT 增强 | avgrecall ≈ 0.51(2020 冠军口径) |
| 小目标优先(钙化/结节) | 高分辨率输入(1024 不缩)+ 小尺度 anchor + FPN P2 层强化 | 钙化/结节 per-class recall 提升明显 |
| 少样本/长尾研究 | 以 Mass/Pneumothorax/Emphysema 为 few-shot 类的标准设定 | 作为研究基准而非性能目标 |
| 检测+分割多任务 | 改用后继版 ChestX-Det(13 类 + polygons)+ SAR-Net 思路 | 见 SAR-Net(TMI 2021) |
§6.8 计算资源需求
| 硬件 | 最小配置 | 推荐配置 |
|---|---|---|
| GPU | 1 × 11 GB(GTX 1080 Ti,即 Challenge 评测环境) | 4 × 16-32 GB(官方基线为 4 × TITAN V,batch 2/GPU) |
| 内存 | 16 GB | 32 GB |
| 磁盘 | 5 GB(图像 + 标注 + 代码) | 50 GB(含 ChestX-ray14 全量做预训练) |
| 训练时间 | Faster R-CNN 50 epoch:单卡约 6-10 小时 | 4 卡约 2-3 小时 |
| 推理 | 约 0.8 s/图(GTX 1080 Ti,Challenge 实测 0.81-0.96 s) | 实时性研究可换单阶段检测器 |
§6.9 评估指标
官方口径(FROC 传统,eval.py):IoU=0.5 判定命中;在实例级 FP/image = 0.05 / 0.1 / 0.2 三个工作点上取召回率,三者平均为 avgrecall。预测提交格式为逐图 JSON:[{"nodule": [x1,y1,x2,y2,score]}, ...],文件名与图像同名。
通用口径(pycocotools):
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
gt = COCO("./annotations/test_coco.json")
dt = gt.loadRes("./predictions_coco.json") # 模型输出转 COCO 检测结果格式
ev = COCOeval(gt, dt, iouType="bbox")
ev.params.iouThrs = [0.5] # 与官方 IoU 口径对齐
ev.evaluate(); ev.accumulate(); ev.summarize() # AP50
社区共识:与官方基线/Challenge 比较 → 报 avgrecall(三工作点);与通用检测文献比较 → 报 AP50 与 mAP@[.5:.95];两类数字绝不可混排(见 §6.5 坑点 8)。
§6.10 MLOps 笔记
- 版本锁定:方法部分注明 “ChestX-Det10 (arXiv:2006.10550v3),train.json/test.json 下载于 YYYY-MM”;标注文件自 2020-07 后未再变更,但无版本号机制,建议对 JSON 做 md5 记录。
- 引用双件套:Liu et al. 2020 + Wang et al. 2017 缺一不合规(见 §9)。
- 镜像治理:Kaggle 等镜像为 13 类后继版 ChestX-Det,类别数、图像数(3,578 vs 3,543)、标注文件名均不同——pipeline 入口务必校验类别集合,防止静默切换数据版本。
- 结果可复现锚点:官方基线 mean AP50 = 45.0 / mean recall@0.1FP = 0.467;Challenge 榜首 avgrecall = 0.5095——新实现的 pipeline 先对齐这两个锚点再做创新。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 全部图像来自 NIH Clinical Center 单中心,设备与投照协议单一 | 高 | 用 VinDr-CXR(越南)、TBX11K、ChestX-ray14 BBox 子集做外部验证 |
| 选择偏倚 | 3,543 张为人工精选(“覆盖尽可能宽表观范围”),非随机抽样;阳性率 78.4% 远高于自然人群 | 高 | 不用于流行病学推断;筛查场景研究需声明富集设计 |
| 患者泄漏偏倚 | 随机图像级划分,未按患者分离 | 高 | §5.2 患者级重划分 + 论文声明 |
| 标注者偏倚 | judge 裁决制使金标准偏向单一资深医生的判读偏好;无双人原始标注留存 | 中 | 论文已承认主观变异;结果解读保留不确定性 |
| 类别分布偏斜 | Consolidation+Effusion 占 55.5%,Mass 仅 1.9% | 中高 | 长尾策略(重采样/类别均衡损失);per-class 报告附实例数 |
| 转诊人群偏倚 | NIH 为联邦研究型转诊中心,患者病情复杂度高于社区 | 中 | 明确研究适用人群为转诊中心人群 |
| 体位构成偏倚 | PA/AP 混合(继承母集),AP 床旁片图像质量较低 | 低中 | 按 View Position 分层评估 |
§7.2 标注质量评估
| 标注类型 | 可靠性 | 一致性 | 局限性 |
|---|---|---|---|
| 委员会双盲标注(2 名认证放射科医生) | 高(专家级、互盲独立) | 未发布一致性统计 | 原始双人标注未公开,无法量化 |
| 资深裁决(1 名最资深放射科医生) | 高(终稿权威) | 单人偏好 | 金标准嵌含 judge 主观偏好,论文明示"potential subjective variants" |
| 一框多标签机制 | 设计合理(符合影像共现现实) | — | 增加工程复杂度,评测口径需理解 |
| 阴性图像(空列表) | 由同一协议确认无 10 类异常 | 高 | 仅覆盖 10 类范围,不排除其他异常 |
整体评价:在 2020 年发布的胸片检测数据集中属标注最严格的一档(对照:ChestX-ray14 BBox 子集为单人标注;RSNA Pneumonia 为复审制)。主要失分项是一致性统计缺失与 judge 单点偏好。
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 跨机构(NIH → 其他医院) | 高 | 单中心数据 + 人工精选;胸片检测跨机构泛化损失在 VinDr-CXR 文献中被反复验证 |
| 跨地域(美国 → 亚洲/欧洲) | 中高 | 疾病谱与投照协议差异;VinDr-CXR(越南)为主要对照 |
| 跨设备/投照条件 | 中 | 选图时刻意覆盖了不同角度/亮度/扫描条件,有一定内建鲁棒性,但未量化 |
| 小病灶特征保留 | 中高 | 2026 年研究(arXiv:2606.11606)发现冻结的基础模型嵌入会丢弃小病灶信号——在 Det10 的 Calcification/Nodule/Mass 上尤为明显 |
| 跨类别(10 类 → 14 类其他异常) | 高 | 未标注类别(如 Pneumonia)不可从本集推断 |
§7.4 伦理考量
- 图像为 NIH Clinical Center 真实患者检查数据,经标准去标识处理;使用者不得尝试重识别或与外部数据关联以恢复身份。
- 图像层 CC0 不等于免除引用义务——NIH 要求署名数据提供方并引用 Wang et al. 2017;这是对数据贡献者的基本学术尊重。
- 标注层许可不明示,将其用于商业产品前应取得权利方书面确认(§6.5 坑点 1)。
- 数据集阳性率被人为富集,基于其训练的模型直接部署于筛查场景会因先验差异产生系统性校准偏差。
- 数据集未发布子集级人口学构成,公平性审计需自行 join 元数据后补做(§7.5)。
§7.5 公平性评估
# 先 join 元数据,再按性别/年龄/体位分组评估 per-class recall
import json, pandas as pd
ann = pd.DataFrame(json.load(open("test.json")))
meta = pd.read_csv("Data_Entry_2016.csv").rename(
columns={"Image Index": "file_name", "Patient Gender": "sex",
"Patient Age": "age", "View Position": "view"})
df = ann.merge(meta[["file_name", "sex", "age", "view"]], on="file_name")
print(df.groupby(["sex", "view"]).size()) # 先检查组间样本量,<30 的组不下结论
已知问题:论文未发布任何子集级公平性分析;ChestX-ray14 母集存在已知的性别/年龄分布不均(文献广泛讨论),子集是否继承未经验证——任何涉及人群的结论都必须先自行完成上表统计。
§7.6 数据漂移提示
- 图像采集止于 2015 年前后,DR 设备与图像后处理协议已迭代多轮;当代部署须以本机构新数据做校准集。
- 2020 年后胸片 AI 生态的"预训练范式"已换代(自监督/基础模型),直接在 Det10 上从零训练的结论不可外推到基础模型时代。
- 数据无更新机制:标注冻结于 2020-07,后续维护实际由社区镜像与后继版 ChestX-Det 承接。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据为宽格式(每行一个样本/事件) | ✅ | 每 JSON 记录一张图像,syms/boxes 平行数组 |
| 2 | 有唯一标识符列 | ✅ | file_name 全局唯一,且与 ChestX-ray14 主键兼容 |
| 3 | 无 Unicode 或特殊字符问题 | ✅ | 类别为标准英文枚举,文件名为 ASCII |
| 4 | 无重复行 | ⚠️ | 一框多标签为刻意设计而非重复,但无唯一框 ID 与去重说明 |
| 5 | 缺失值已识别并编码 | ⚠️ | 阴性图像以空列表显式编码;"范围外异常"无编码(§4.5) |
| 6 | 标签列被明确标识 | ✅ | syms/boxes 语义在 README 与论文中定义清晰 |
| 7 | 已对罕见类别(<3%)进行分组 | ❌ | Mass(1.9%)/ Pneumothorax(2.5%)未分组,测试实例仅 31/42 |
| 8 | 偏倚评估已完成 | ⚠️ | 论文未做;本页 §7.1 基于母集文献补全 |
| 9 | 有完整的数据字典 | ⚠️ | README 给格式示例;无逐字段字典(本页 §4.1 补全) |
| 10 | 对"信息性缺失"有明确编码解释 | ❌ | 无缺失机制讨论 |
| 11 | 数据采集设备和设置已记录 | ⚠️ | 仅知 DR 正位 + 重采样流程,设备型号未公开(继承母集) |
| 12 | 已移除完全共线性变量 | ⚠️ | 检测任务无此概念;框与类别无共线性检查说明 |
| 13 | 对编码的映射标准已说明 | ❌ | 无 ICD/SNOMED 映射(本页 §2.1/§2.2 补全) |
| 14 | 对时间戳的处理已明确说明 | ⚠️ | 无检查日期字段;采集年代经母集文献可知 |
| 15 | 训练/验证/测试划分建议已给出 | ✅ | 官方 train/test 文件即划分;Challenge 统一使用 |
| 16 | 数据泄漏风险已被讨论 | ❌ | 官方未讨论患者级泄漏(本页 §5.3 补全) |
| 17 | 标签分布已被分析 | ✅ | 原论文 Table 1/2 完整发布逐类统计 |
| 18 | 选择性测量偏倚已被讨论 | ❌ | 人工精选子集的选择机制无正式偏倚分析 |
| 19 | 外部验证建议已给出 | ❌ | 论文未给(本页 §5.5/§7.8 补全) |
| 20 | 数据更新和版本信息已记录 | ⚠️ | arXiv v1-v3 有记录;数据文件无版本号,后继版关系需自行梳理 |
| 21 | 最小必要预处理脚本已提供 | ⚠️ | 仅 eval.py;无加载/转换脚本(本页 §6.3/§6.4 补全) |
| 22 | 合规使用要求已明确 | ⚠️ | 引用双论文要求明确;标注层无显式许可 |
| 23 | 多模态对齐方法已说明 | ❌ | 单模态;与元数据的 join 方法官方未说明(本页 §4.1 补全) |
| 24 | 去标识化方法已被记录 | ⚠️ | 继承 NIH 标准去标识(DICOM 头移除等),子集论文未复述 |
DAIMS 评分:11.5 / 24
评分解读:中等——核心检测任务所需的骨架完整(金标准标注、官方划分、逐类统计、评测脚本),但数据治理层的文档化几乎缺席。
对你意味着什么:6 个 ✅ 项集中在"拿来就能训"的工程面:格式干净、主键唯一、划分官方、分布公开、类别定义清晰。7 个 ❌ 项则全部是文档化缺口:罕见类未分组、无标准术语映射、无泄漏讨论、无外部验证建议、无多模态说明、无信息性缺失编码、无选择偏倚分析——这些缺口本页已在对应章节逐一补全(§2.1/§2.2 术语映射、§5.3 泄漏防御、§7.8 外部验证、§4.5 缺失编码)。使用建议:(1) 按 §5.2 补做患者级核查;(2) 报告 per-class 指标时附实例数与置信区间;(3) 商用前解决标注许可问题。与同族参照相比:其治理文档弱于 VinDr-CXR(PhysioNet 规范化),强于同时代多数竞赛型小数据集——它本质上是一个"赛事级"而非"基础设施级"的数据集。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部测试集变化 | 关键发现 |
|---|---|---|---|---|---|
| VinDr-CXR(作为训练集 → Det10 评测) | VinBigData(越南) | 跨域异常检测迁移 | mAP50 提升约 3%(NIH 自监督预训练 + VinDr 微调口径) | 跨域正迁移 | BarlowTwins-CXR(BMC Med Inform Decis Mak 2024):NIH 域自监督预训练可缓解跨域不一致 |
| ChestX-ray14 BBox 子集(983 张) | NIH(美国,同源) | 弱监督定位真值评估 | 定位准确率 | 同源无域差 | 类别完全覆盖 Det10 中 8 类,常用于对照 |
| 基础模型嵌入小病灶探针 | 多机构(arXiv:2606.11606) | 冻结嵌入的小病灶可分性 | Calcification/Nodule/Mass 三类探针 | 显著下降 | 冻结基础模型嵌入系统性丢弃小病灶信号,部署前须做病灶尺度评估 |
| RSNA Pneumonia / TBX11K(专病对照) | RSNA / 多机构 | 单病检测 | 各集自报 | 不可直接比 | 类别体系与指标口径不同,仅作定性参照 |
使用建议:在 Det10 上取得内部结果后,最低成本的泛化性检查是在 VinDr-CXR 上做 zero-shot 评测(8 类语义可映射);若掉点超过 10%,说明模型记住的是 NIH 的图像风格而非病灶本身。
§8 基准性能与生态
§8.1 排行榜
口径 A:官方基线(Liu et al. 2020,原论文 Table 3/4,test 542 张)
Faster R-CNN + FPN,ResNet-50(ImageNet 预训练),PyTorch,4×TITAN V;SGD(momentum 0.9,weight decay 1e-4),lr=0.01 起、20/40 epoch 各降 10 倍,50 epoch,batch 2/GPU;训练与测试均用随机旋转 + 多尺度采样(短边 800-1400)。
| 类别 | AP50 (%) | recall@0.1FP | 类别 | AP50 (%) | recall@0.1FP |
|---|---|---|---|---|---|
| Atelectasis | 36.4 | 0.549 | Fibrosis | 43.9 | 0.467 |
| Calcification | 51.6 | 0.597 | Fracture | 41.9 | 0.444 |
| Consolidation | 59.9 | 0.428 | Mass | 41.0 | 0.516 |
| Effusion | 50.2 | 0.298 | Nodule | 24.8 | 0.301 |
| Emphysema | 66.6 | 0.712 | Pneumothorax | 33.5 | 0.357 |
| Mean | 45.0 | — | Mean | — | 0.467 |
完整引用:Liu J, Lian J, Yu Y. “ChestX-Det10: Chest X-ray Dataset on Detection of Thoracic Abnormalities.” arXiv:2006.10550 (2020). 代码:https://github.com/Deepwise-AILab/ChestX-Det10-Dataset (含 eval.py)。
口径 B:ChestX-Det10 Challenge 决赛排行榜(arXiv:2010.10298,同一 test 集,GTX 1080 Ti 统一推理计时)
| 排名 | 队伍/方法 | recall@0.05FP | recall@0.1FP | recall@0.2FP | avgrecall | 推理时间 (s/图) | 关键技术 |
|---|---|---|---|---|---|---|---|
| 1 | Mengyuan Ding, Yaoci Lu | 0.4405 | 0.5108 | 0.5772 | 0.5095 | 0.8173 | TSD + ResNeXt101-64×4d;细粒度 anchor(scales [2,4,8,12],ratios 6 档)应对框嵌套;crop-around-GT 增强 |
| 2 | Yi Lu, Jie Cai 等(浙大) | 0.4303 | 0.5051 | 0.5666 | 0.5007 | 0.8432 | — |
| 3 | — | 0.4152 | 0.4869 | 0.5675 | 0.4899 | 0.9613 | — |
| 4 | — | 0.4213 | 0.4918 | 0.5542 | 0.4891 | 0.9576 | — |
| 5 | — | 0.4144 | 0.4814 | 0.5516 | 0.4824 | 0.9613 | — |
| 6 | — | 0.4007 | 0.4752 | 0.5358 | 0.4706 | 0.8063 | — |
完整引用:Lian J, Liu J, Yu Y, et al. “The Detection of Thoracic Abnormalities ChestX-Det10 Challenge Results.” arXiv:2010.10298 (2020).
数值不可跨口径比较:口径 A(AP50/recall@0.1FP)与口径 B(avgrecall 三工作点均值)分母与工作点不同;口径 B 各队之间可直接比较(同一 test、同一指标、统一硬件计时)。2021 年后的论文多改用 COCO mAP 或在 VinDr-CXR 上报告,引用时请核对指标定义(§6.5 坑点 8)。
§8.2 SOTA 总结与选型建议
| 如果你… | 推荐方案 | 为什么 |
|---|---|---|
| 复现官方结果 | Faster R-CNN+FPN 配置照抄 §8.1 口径 A | 锚定 mean AP50 45.0 / recall@0.1FP 0.467 |
| 冲击性能上限 | TSD + 大 backbone + 细粒度 anchor + crop-around-GT | Challenge 冠军配方(avgrecall 0.5095),针对框嵌套与小目标 |
| 快速验证想法 | torchvision Faster R-CNN(§6.4)+ train 子集 | 单卡 1 小时内出第一组数字 |
| 基础模型评测 | 冻结嵌入 + 轻量检测头,报 Calcification/Nodule/Mass 三类 | 对齐 2026 年小病灶探针研究范式 |
| 需要分割真值 | 改用 ChestX-Det 13 类版 + SAR-Net | Det10 无 polygons,不要强行用框当掩码 |
§8.3 官方评测协议
唯一官方协议(eval.py 实现):预测输出为逐图 JSON(与图像同名),内容 [{"类别": [x1,y1,x2,y2,score]}, ...];IoU=0.5 判定命中;主指标为 recall@0.05/0.1/0.2 FP/image 及其均值 avgrecall;原论文另报 AP50 作辅助。Challenge 额外统一硬件(GTX 1080 Ti,batch 1)测平均推理时间。
§8.4 相关数据集
| 数据集 | 关系 | 说明 |
|---|---|---|
| ChestX-ray14(NIH) | 母集 | 112,120 张、14 类 NLP 标签;Det10 的 3,543 张为其子集 |
| ChestX-ray8 BBox 子集 | 姊妹标注 | 983 张、1,600 框、8 类、单人标注;仅作定位评估 |
| ChestX-Det(13 类) | 后继版 | 3,578 张、+3 类、+分割 polygons;SAR-Net 配套 |
| VinDr-CXR | 竞品/外部验证 | 18,000 张、22 局部标签、PhysioNet 托管 |
| RSNA Pneumonia Detection | 同类竞品 | 约 30,000 张单病(肺炎)Kaggle 竞赛集 |
| TBX11K | 同类竞品 | 11,200 张结核病检测集 |
§8.5 关键论文 Top 8
- Liu J, Lian J, Yu Y (2020). “ChestX-Det10: Chest X-ray Dataset on Detection of Thoracic Abnormalities.” arXiv:2006.10550. — 数据集本体,标注协议与基线唯一权威来源。
- Lian J, Liu J, Yu Y, et al. (2020). “The Detection of Thoracic Abnormalities ChestX-Det10 Challenge Results.” arXiv:2010.10298. — 官方排行榜与冠军方案详解。
- Wang X, Peng Y, Lu L, Lu Z, Bagheri M, Summers RM (2017). “ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases.” CVPR 2017: 3462-3471. — 母集论文,官方要求必引。
- Lian J, Liu J, et al. (2021). “A Structure-Aware Relation Network for Thoracic Diseases Detection and Segmentation.” IEEE Transactions on Medical Imaging. — SAR-Net:利用解剖结构先验的检测+分割联合网络,ChestX-Det 13 类版配套论文。
- Nguyen HQ, et al. (2022). “VinDr-CXR: An open dataset of chest X-rays with radiologist’s annotations.” Scientific Data 9:429. — 最大竞品基准,外部验证首选。
- Ren S, He K, Girshick R, Sun J (2015). “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.” NeurIPS 2015. — 官方基线检测框架。
- Lin TY, et al. (2017). “Feature Pyramid Networks for Object Detection.” CVPR 2017. — 官方基线的 FPN 组件。
- Song G, Liu Y, Wang X (2020). “Revisiting the Sibling Head in Object Detector.”(TSD)CVPR 2020. — Challenge 冠军方案的基础检测器。
§8.6 社区活跃度
| 维度 | 数据 |
|---|---|
| Google Scholar 引用(数据集论文) | 47+(截至 2026-09) |
| GitHub 仓库 | Deepwise-AILab/ChestX-Det10-Dataset(含多个社区 fork,如 jeline0110、RunwenHu 等镜像) |
| Kaggle 镜像 | ChestX-Det-Dataset(13 类版):7,300+ 浏览 / 690+ 下载(截至 2026-09) |
| 竞赛规模 | ChestX-Det10 Challenge:>100 支队伍参赛,6 支进入决赛(2020) |
| 母集影响力 | ChestX-ray8 论文引用 6,000+(胸片 AI 引用量第一梯队) |
| 当代使用形态 | 多作为基础模型/自监督研究的定位评测集(2023-2026 年论文持续引用) |
§8.7 生态快照
| 资源 | 类型 | 链接 | 规模(截至 2026-09) | 为什么值得关注 |
|---|---|---|---|---|
| Deepwise-AILab/ChestX-Det10-Dataset | 官方仓库 | https://github.com/Deepwise-AILab/ChestX-Det10-Dataset | 标注 + eval.py | 唯一权威标注源,含官方评测脚本 |
| ChestX-Det 13 类版(GitHub 同名组织) | 后继版 | https://github.com/Deepwise-AILab/ChestX-Det-Dataset | 3,578 张 + polygons | 分割任务升级路径 |
| Kaggle ChestX-Det-Dataset 镜像 | 数据镜像 | https://www.kaggle.com/datasets/mathurinache/chestxdetdataset | 1.44 GB / 690+ 下载 | 免配环境起步,注意为 13 类版 |
| NIH Box 官方分发 | 图像源 | https://nihcc.app.box.com/v/ChestXray-NIHCC | 42 GB / 12 分卷 | 图像的权威来源,可回溯 DICOM 处理链 |
| eval.py(仓库内) | 评测工具 | 同官方仓库 | 单文件 | FROC 口径唯一实现,跨论文对齐必备 |
| SAR-Net 预训练 PSPNet | 预训练模型 | 见 ChestX-Det 仓库 README | pkl 权重 | 解剖结构先验复用,TMI 2021 配套 |
§9 相关资源与引用
官方资源
- 数据集仓库(标注 + eval.py):https://github.com/Deepwise-AILab/ChestX-Det10-Dataset
- 数据集论文:https://arxiv.org/abs/2006.10550
- Challenge 报告:https://arxiv.org/abs/2010.10298
- 图像官方源(NIH Box):https://nihcc.app.box.com/v/ChestXray-NIHCC
- Google Cloud 托管版(PNG/DICOM + BigQuery):https://cloud.google.com/healthcare-api/docs/resources/public-datasets/nih-chest
- 后继版 ChestX-Det(13 类 + 分割):https://github.com/Deepwise-AILab/ChestX-Det-Dataset
- Kaggle 镜像:https://www.kaggle.com/datasets/mathurinache/chestxdetdataset
BibTeX 引用(双件套,官方硬性要求)
% 1) ChestX-Det10 数据集论文(必引)
@misc{liu2020chestxdet10,
title={ChestX-Det10: Chest X-ray Dataset on Detection of Thoracic Abnormalities},
author={Jingyu Liu and Jie Lian and Yizhou Yu},
year={2020},
eprint={2006.10550},
archivePrefix={arXiv},
primaryClass={eess.IV}
}
% 2) ChestX-ray8 母集论文(官方要求同引)
@inproceedings{wang2017chestxray8,
title={ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks
on Weakly-Supervised Classification and Localization of Common Thorax Diseases},
author={Wang, Xiaosong and Peng, Yifan and Lu, Le and Lu, Zhiyong
and Bagheri, Mohammadhadi and Summers, Ronald M.},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
pages={3462--3471},
year={2017}
}
% 3) 如使用 Challenge 排行榜/协议
@misc{lian2020chestxdet10challenge,
title={The Detection of Thoracic Abnormalities ChestX-Det10 Challenge Results},
author={Jie Lian and Jingyu Liu and Yizhou Yu and others},
year={2020},
eprint={2010.10298},
archivePrefix={arXiv}
}
% 4) 如使用后继版 ChestX-Det / SAR-Net
@article{lian2021sarnet,
title={A Structure-Aware Relation Network for Thoracic Diseases Detection and Segmentation},
author={Lian, Jie and Liu, Jingyu and others},
journal={IEEE Transactions on Medical Imaging},
year={2021}
}
教程与学习资源
- 官方 README(标注格式 + 评测说明最简文档):https://github.com/Deepwise-AILab/ChestX-Det10-Dataset
- MMDetection 自定义 COCO 数据集教程(与本页 §6.3 输出直接兼容):mmdetection 官方文档
- ChestX-ray8 原论文(理解母集构建与 BBox 子集历史):https://arxiv.org/abs/1705.02315
- 本页 §6.0-§6.4 提供从零到训练的完整代码链
原始论文
- Liu J, Lian J, Yu Y (2020). “ChestX-Det10: Chest X-ray Dataset on Detection of Thoracic Abnormalities.” arXiv:2006.10550v3. DOI: 10.48550/arXiv.2006.10550.
- Lian J, Liu J, Yu Y, et al. (2020). “The Detection of Thoracic Abnormalities ChestX-Det10 Challenge Results.” arXiv:2010.10298v2.
- Wang X, Peng Y, Lu L, Lu Z, Bagheri M, Summers RM (2017). “ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases.” CVPR 2017: 3462-3471. DOI: 10.1109/CVPR.2017.369.
- Lian J, Liu J, et al. (2021). “A Structure-Aware Relation Network for Thoracic Diseases Detection and Segmentation.” IEEE Transactions on Medical Imaging.
§10 AI 使用声明卡
§10.1 AI 模型使用
| AI 模型 | 版本 | 用途 |
|---|---|---|
| deep-model(WorkBuddy) | 2026-09 | 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建 |
| WebSearch / WebFetch(多源检索) | 2026-09-05 | 6 组检索 + 2 次原文抓取:GitHub 仓库、arXiv 原文 v1 全文抽取、Challenge 报告、Kaggle 镜像、引用数快照、SNOMED 编码交叉验证 |
§10.2 AI 参与范围
AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。
AI 在本页面的工作中负责:(1) 从 GitHub 官方仓库、arXiv 原文(v1 全文抽取)、Challenge 报告、NIH/Google Cloud 文档与 Kaggle 镜像中整理结构化信息;(2) 生成 §6 的 JSON→COCO 转换与 PyTorch 加载代码;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。
§10.3 输入来源
- Liu J, Lian J, Yu Y (2020), arXiv:2006.10550v1/v3 — 数据集原论文(标注协议、Table 1/2 统计、Table 3/4 基线,经 v1 全文抽取核实)
- Deepwise-AILab/ChestX-Det10-Dataset GitHub 仓库(README 全文、标注格式、eval.py 协议、下载地址沿革)
- Lian J, et al. (2020), arXiv:2010.10298v2 — Challenge 结果报告(6 队成绩表、冠军方案细节)
- Wang X, et al. (2017), arXiv:1705.02315 — ChestX-ray8 论文(BBox_List_2016 构建:983 张/1,600 框/8 类/单人标注、图像处理管线)
- NIH Clinical Center 官方发布说明(ChestX-ray 数据集新闻稿)
- Google Cloud Healthcare 公开数据集文档(NIH chest:CC0 条款、署名要求、BigQuery/DICOM 托管)
- Kaggle ChestX-Det-Dataset 镜像页(13 类后继版规模、CC BY-NC-SA 4.0 标注、浏览/下载量)
- arXiv:2606.11606(小病灶探针研究:Calcification/Nodule/Mass 框尺寸统计、de novo 标注独立性确认)
- arXiv:2502.10296(SegX:逐类实例统计第三方复核——并发现其误写总数为 3,583,本页以原论文 3,543 为准)
- BarlowTwins-CXR(BMC Medical Informatics and Decision Making 2024, PMC11097466)— 跨域迁移外部验证证据
- Google Scholar 引用快照(47 次,截至 2026-09)
- VinDr-CXR(Nguyen et al., Scientific Data 2022)— 竞品对比参数
- Deepwise 公司官网(机构背景核实)
- SNOMED CT 编码公开码表(OpenCodelists / NCBI MedGen:Fibrosis of lung 51615001 等交叉验证)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(10 类定义、编码映射、金标准协议) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据集规格(3,543/8,339 规模、逐类统计、版本矩阵) | 千方病案医学编辑部 | 与原论文 Table 1/2 及 GitHub 仓库交叉比对 | ✅ 已验证 |
| §4 数据结构(JSON 字段、坐标系、缺失编码) | 千方病案医学编辑部 | 与官方 README 及标注示例交叉比对 | ✅ 已验证 |
| §5 数据划分策略 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §6 代码示例与坑点 | 千方病案医学编辑部 | 逻辑审查 + 与 eval.py 协议比对 | ✅ 已通过 |
| §7 质量评估与 DAIMS 评分 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 排行榜与引用数表述 | 千方病案医学编辑部 | 与 arXiv 原文表格及 Scholar 快照交叉比对 | ✅ 已验证 |
| §C JSON-LD @graph | 千方病案医学编辑部 | Schema v3.9 字段逐项校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.5 公平性评估代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。
§10.6 最后审核
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
