INFOBOX
| 数据集名称 | NIH ChestX-ray14 |
| 英文全称 | NIH ChestX-ray14: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases |
| 别名 / 简称 | ChestX-ray14、ChestX-ray8(初版)、NIH-CXR14、NIH Chest X-ray Dataset |
| 疾病分类 | 多疾病覆盖。核心映射:CA40 呼吸系统疾病 / CB24 心脏肥大 / CA40.1 肺实变 / MG30 胸腔积液 / CA40.2 肺气肿 / DB90 胸膜增厚 |
| SNOMED CT | 111895007 Atelectasis / 8186001 Cardiomegaly / 233604007 Pneumonia / 60046008 Pleural Effusion / 45816000 Pneumothorax 等 14 类映射(详见 §2.2) |
| 数据模态 | 影像(胸部 X 光片,正位 PA/AP 视图,8-bit 灰度 PNG) |
| AI 任务类型 | 图像多标签分类、弱监督病灶定位、迁移学习、类别不平衡学习 |
| 样本总数 | 112,120 张胸部 X 光片(来自 30,805 名患者) |
| 数据大小 | ~45 GB(PNG 压缩包)/ ~42 GB(DICOM 版本) |
| 数据格式 | PNG(8-bit 灰度,1024×1024 px)+ DICOM(Google Cloud 提供)+ CSV(标签元数据) |
| 许可证 | No Restrictions——无使用限制,仅要求标注来源和引用原论文 |
| 访问级别 | 完全开放,无需注册或签署协议,直接下载 |
| DUO 标签 | NRES(No restrictions on use) |
| 语言 | 英文(标签为英文,原始放射学报告不对外公开) |
| 首发日期 | 2017-05(arXiv 预印本)/ 2017-07(CVPR 2017 Spotlight) |
| 最后更新 | 2017-12(v5 版本,新增 ChestX-ray14 14 类标签基准结果) |
| 发布机构 | NIH Clinical Center(美国国立卫生研究院临床中心),放射与影像科学部 & 国家生物技术信息中心(NCBI/NLM) |
| 官方主页 | https://nihcc.app.box.com/v/ChestXray-NIHCC |
| 下载地址 | NIH Box 链接(上方)/ Kaggle: https://www.kaggle.com/datasets/nih-chest-xrays/data / Google Cloud: gs://gcs-public-datahealthcare-nih-chest-xray |
| DOI | 10.1109/CVPR.2017.369 |
| 引用次数 | Wang et al. CVPR 2017: 3,300+ / CheXNet (Rajpurkar et al., 2017): 4,600+(Google Scholar,截至 2026-07) |
| AI 就绪度评分 | ⭐⭐⭐½(3.5/5)— 免费获取 + 大规模 + 多标签;扣分项:NLP 标注噪声 5-10%、无放射科医生金标准验证集、仅正位视图、单中心来源 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
权威来源:本条目所有医学事实、统计数字与标签定义均直接溯源至以下一手权威来源:
- 原始论文:Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald M. Summers. ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 2097-2106, 2017. DOI: 10.1109/CVPR.2017.369(CVPR 2017 Spotlight)。
- CheXNet 论文:Pranav Rajpurkar, Jeremy Irvin, Kaylie Zhu, Brandon Yang, Hershel Mehta, Tony Duan, Daisy Ding, Aarti Bagul, Curtis Langlotz, Katie Shpanskaya, Matthew P. Lungren, Andrew Y. Ng. CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning. arXiv:1711.05225, 2017。该论文首次以 ChestX-ray14 为训练集验证 DenseNet-121 的胸片诊断能力,被引 4,600+。
- Google Cloud 专家标签:Anna Majkowska, Sid Mittal, David F. Steiner, Joshua J. Reicher, Scott Mayer McKinney, Gavin E. Duggan, Krish Eswaran, Po-Hsuan Cameron Chen, Yun Liu, Sreenivasa Raju Kalidindi, Alexander Ding, Greg S. Corrado, Daniel Tse, Shravya Shetty. Chest Radiograph Interpretation with Deep Learning Models: Assessment with Radiologist-Adjudicated Reference Standards and Population-Adjusted Evaluation. Radiology, 2019。在 ChestX-ray14 子集上提供放射科医生共识标签。
- 官方发布与许可:NIH Clinical Center Box 下载页面与 Google Cloud Healthcare API 公共数据集文档。
作者团队核心成员来自 NIH 临床中心放射与影像科学部(Ronald M. Summers——主任,放射学教授)和国家医学图书馆(NCBI,Zhiyong Lu——生物医学文本挖掘权威),学术背景在胸片影像与生物医学 NLP 两个领域均具有顶尖权威性。
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 映射、临床任务定义、疾病标签描述)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-07-29
利益冲突声明:千方病案医数集与 NIH Clinical Center 或原始论文作者无商业利益关联。本页面不销售 ChestX-ray14 数据集本身,仅提供 AI 就绪指南与学术信息服务。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。NLP 自动标注的疾病标签存在 5-10% 的噪声率,不应直接用于临床决策。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:ChestX-ray14 无使用限制(No Restrictions),但原始论文要求使用者标注数据来源、引用 CVPR 2017 论文并承认 NIH Clinical Center 为数据提供者。请遵守这些最基本的学术诚信要求。
§1 数据集概览
§1.0 30 秒速览
NIH ChestX-ray14 是美国国立卫生研究院(NIH)临床中心于 2017 年 CVPR 发布的首个十万级别公开胸部 X 光数据集。它包含 112,120 张正位胸片,来自 30,805 名唯一患者(1992-2015),覆盖 14 种常见胸腔疾病的多标签 NLP 自动标注。
它的历史地位无可替代——在 2017 年之前,公开胸片数据集规模顶多几千张,深度学习模型在胸片上的可行性尚属未知。ChestX-ray14 的出现直接催生了 CheXNet(Rajpurkar et al., 2017,4,600+ 引用)这一里程碑研究——首次以 DenseNet-121 在胸片上实现"超越放射科医生水平"的肺炎检测(F1 0.435 vs 放射科平均 0.387)。该数据集至今仍是胸片 AI 领域被引用最广泛的基准之一,原论文 3,300+ 引用,CheXNet 论文 4,600+ 引用。
目前 SOTA 达到平均 AUROC 85.80%(TorchXRayVision, 2025),但少数类(如 Hernia 仅 227 张)仍然是巨大挑战。较之 CheXpert 和 MIMIC-CXR,ChestX-ray14 独有的优势是完全免费、无需注册、无 DUA 限制——任何人在任何时候都能直接下载并开始实验。
你可以用它来:训练和验证胸片多标签分类 CNN/ViT 模型、研究弱监督标签下的噪声鲁棒学习、利用附带边界框(~880 张)做弱监督病灶定位评估、测试类别不平衡缓解策略(Focal Loss / 重采样 / 代价敏感学习)的效果。
§1.1 摘要
NIH ChestX-ray14 由 NIH 临床中心放射与影像科学部(Ronald M. Summers 团队)与国家医学图书馆 NCBI(Zhiyong Lu 团队)联合创建。最初以 ChestX-ray8 命名(8 类疾病标签),后扩展为 14 类(ChestX-ray14)。疾病标签通过一个组合 NLP 管道自动从放射学报告中挖掘:先使用 DNorm(疾病标准化)和 MetaMap 检测报告中提到的医学概念(仅保留"dsyn"和"fndg"语义类型),再使用 NegBio 进行否定和不确定性检测,最终为每张影像生成最多 14 个二元标签 + 一个"No Finding"标签。
数据集发布时附带 ~880 张影像的病灶级边界框标注(Bounding Box,覆盖 8 种疾病),由 NIH 临床中心的放射科住院医标注,专门用于弱监督定位的评估。2019 年起,Google Cloud 在 ChestX-ray14 上提供了额外的放射科医生共识标签(Majkowska et al., Radiology 2019),涵盖 4 种关键发现(肺实变、气胸、结节/肿块、骨折)和全 14 类标签,为原始 NLP 标签提供了重要的金标准参考。
§1.2 为什么重要
历史转折维度:在 ChestX-ray14 发布前,公开胸片数据集(如 JSRT 247 张、Shenzhen 662 张、Indiana 7,470 张)的规模根本不足以训练现代 CNN。ChestX-ray14 将公开胸片数据集的规模提升了一个数量级(从千级到十万级),使 ImageNet 预训练 + 微调的范式首次在胸片领域得到大规模验证。
学术催化维度:ChestX-ray14 直接催生了深度胸片分析的三大研究方向:(1) 胸片多标签分类——如何同时预测 14 种可能共现的疾病,推动加权 BCE Loss、Focal Loss、多标签 Softmax Loss 等损失函数创新;(2) 弱监督病灶定位——仅凭图像级标签就能生成病灶热力图(Class Activation Mapping / Grad-CAM),被数百篇后续论文沿用;(3) 类别不平衡学习——Hernia(0.2%)和 Infiltration(~35%)之间的 175 倍类别比使其成为不平衡多标签分类的终极试验场。
生态基石维度:Kaggle 上 ChestX-ray14 数据集页面已被下载数十万次。它还是 TorchXRayVision(胸片预训练模型库)的默认支持数据集之一,并与 CheXpert、MIMIC-CXR、PadChest 并列为胸片 AI 的"四大基准"。
§1.3 横向对比
| 数据集 | 影像数 / 患者数 | 标签方式 | 金标准验证集 | 不确定性编码 | 视图 | 访问门槛 |
|---|---|---|---|---|---|---|
| NIH ChestX-ray14 | 112,120 / 30,805 | NLP 自动标注 | ❌ 无(Google Cloud 提供补充专家标签) | ❌ 无 | 仅正位 | 无门槛(免费下载,无需注册) |
| CheXpert | 224,316 / 65,240 | NLP + 放射科医生验证 | ✅ 500 例 5 位放射科医生共识 | ✅ -1 显式编码 | 正位+侧位 | 需签署 RUA |
| MIMIC-CXR | 377,110 / 65,379 | NLP + 放射科医生 | 部分放射科医生标注 | 报告文本中隐式 | 正位+侧位 | 需完成 CITI 培训 + 签署 DUA |
| PadChest | 160,868 / 67,625 | 放射科医生标注(部分 NLP 辅助) | ✅ 放射科医生标注 | ❌ 无 | 正位+侧位 | 需签署 DUA |
| VinDr-CXR | 18,000 / 18,000 | 17 位放射科医生独立标注 | ✅ 17 位放射科医生 | ❌ 无 | 正位+侧位 | 需注册 |
ChestX-ray14 的独特壁垒在于零门槛访问 + 十万级规模 + 长历史累积引用的三重组合——没有任何其他胸片数据集能同时做到这三点。它的劣势也很明确:没有官方放射科医生金标准验证集,研究者在使用原始 NLP 标签训练模型时无法知道"真实性能"是多少。
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2017-05 | Wang et al. 在 arXiv 发布 ChestX-ray8 预印本(arXiv:1705.02315v1),含 108,948 张影像、8 类疾病标签 |
| 2017-07 | CVPR 2017 Spotlight 正式发表(Wang et al.),数据下载链接公��开放 |
| 2017-09 | 数据集扩展为 14 类疾病标签(ChestX-ray14),官方图片总数更新为 112,120 张 |
| 2017-11 | CheXNet 论文发布(Rajpurkar et al., arXiv:1711.05225),以 DenseNet-121 在 ChestX-ray14 上首次实现"超越放射科医生"的肺炎检测,引发全球关注 |
| 2017-12 | arXiv v5 更新:新增 ChestX-ray14 全 14 类基准结果 |
| 2018-2019 | Google Cloud 将 ChestX-ray14 纳入公共数据集项目,提供 DICOM 版本和 BigQuery 接口;Kaggle 上线镜像版 |
| 2019 | Majkowska et al.(Radiology)与 Tang et al.(Scientific Reports)分别发布 ChestX-ray14 子集的放射科医生共识标签 |
| 2020-2025 | ChesX-ray14 成为胸片 AI 基准标准,被数千篇论文引用 |
§1.5 典型应用场景
- 胸片多标签分类:输入一张正位胸片,同时预测 14 种疾病的存在与否——这是 ChestX-ray14 上最经典的任务。DenseNet-121 是最常用的骨干网络。
- 弱监督病灶定位:利用 CAM / Grad-CAM / Grad-CAM++ 等技术,仅凭图像级标签就生成病灶位置热力图,在 ~880 张边界框标注子集上评估 IoU 或 T(IoU) 指标。
- 迁移学习与预训练策略研究:验证 ImageNet 预训练权重在医学影像上的迁移效果——Baltruschat et al. (2018) 是这一方向的标准参考。
- 类别不平衡学习:Hernia 仅 227 张(0.2%),Atelectasis 11,559 张(10.3%),研究 Focal Loss、重采样、代价敏感学习、合成少数类过采样(SMOTE)等方法的有效性。
- 架构比较基准:从 ResNet-50 到 DenseNet-121 到 Vision Transformer 到 CoAtNet 到 SynthEnsemble——评测新架构在医学影像上的表现首选 ChestX-ray14。
§2 医学背景
§2.1 ICD-11 编码
ChestX-ray14 的 14 类疾病覆盖了胸部 X 光最常见的关键发现。下表给出与 ICD-11 的映射:
| ChestX-ray14 疾病标签 | 中文名称 | ICD-11 编码 | ICD-11 术语 |
|---|---|---|---|
| Atelectasis | 肺不张 | CA40.0 | Atelectasis |
| Cardiomegaly | 心脏肥大 | CB24 | Cardiomegaly |
| Consolidation | 肺实变 | CA40.1 | Pulmonary consolidation |
| Edema | 肺水肿 | CB01.1 | Pulmonary oedema |
| Effusion | 胸腔积液 | MG30 | Pleural effusion |
| Emphysema | 肺气肿 | CA40.2 | Emphysema |
| Fibrosis | 肺纤维化 | CB03.4 | Pulmonary fibrosis |
| Hernia | 膈疝 | DD50.0 | Diaphragmatic hernia |
| Infiltration | 肺浸润 | CA40.Y | Other specified respiratory diseases (imaging descriptor) |
| Mass | 肺肿块 | 2C25 (按部位) | Malignant neoplasm of bronchus or lung (suspected) |
| Nodule | 肺结节 | 2C25 (按部位) | Solitary pulmonary nodule |
| Pleural Thickening | 胸膜增厚 | DB90 | Pleural thickening |
| Pneumonia | 肺炎 | CA40.10 | Lobar pneumonia (unspecified) |
| Pneumothorax | 气胸 | CB21 | Pneumothorax |
| No Finding | 无异常发现 | — | No radiological abnormality detected |
重要提示:ChestX-ray14 的疾病标签来自 NLP 自动挖掘放射学报告,不是放射科医生的诊断金标准。“Infiltration”(肺浸润)和"Consolidation"(肺实变)在临床上是不同等级的概念(浸润通常是间质性的,实变是肺泡充满液体的更严重表现),但 NLP 标签可能混淆两者。同样,“Mass"和"Nodule"的区分(>3 cm vs <3 cm)在 NLP 标签中不可靠。研究者在解读分类结果时应明确这些标签是"放射学报告的影像描述"而非"病理确诊”。
§2.2 SNOMED CT 映射
| ChestX-ray14 标签 | SNOMED CT 概念 ID | SNOMED CT 首选术语 |
|---|---|---|
| Atelectasis | 111895007 | Atelectasis |
| Cardiomegaly | 8186001 | Cardiomegaly |
| Consolidation | 49736007 | Consolidation of lung |
| Edema | 19242006 | Pulmonary edema |
| Effusion | 60046008 | Pleural effusion |
| Emphysema | 87433001 | Pulmonary emphysema |
| Fibrosis | 196125002 | Fibrosis of lung |
| Hernia | 428179005 | Diaphragmatic hernia |
| Infiltration | 678841000000107 | Infiltration of lung |
| Mass | 4147007 | Mass of thorax |
| Nodule | 427359005 | Nodule of lung |
| Pleural Thickening | 233708008 | Pleural thickening |
| Pneumonia | 233604007 | Pneumonia |
| Pneumothorax | 45816000 | Pneumothorax |
§2.3 临床任务定义
ChestX-ray14 定义的核心临床 AI 任务是多标签胸部 X 光疾病分类:
- 输入:一张正位(PA 或 AP)胸部 X 光 8-bit 灰度图像,1024×1024 像素
- 输出:一个 14 元素的概率向量,每个元素对应一种疾病的存在概率
- 评估指标:AUROC(Area Under the ROC Curve)——逐疾病计算后取宏平均(macro-average)。文献中常见的附加指标包括逐疾病 F1 分数、平均准确率(mAP)、以及定位 T(IoU) 分数。
与 CheXpert 和 MIMIC-CXR 不同:ChestX-ray14 没有附带放射学报告文本,因此不支持视觉-语言跨模态训练。也不提供侧位(lateral)视图,仅限正位(PA/AP)胸片。
§2.4 患者人群特征
| 特征 | 数据 |
|---|---|
| 年龄范围 | 1-100+ 岁(中位数 ~49 岁) |
| 性别分布 | 男性约 56%(63,340 张)/ 女性约 44%(48,780 张) |
| 来源机构 | NIH 临床中心(Bethesda, MD) |
| 数据采集期 | 1992 年至 2015 年 |
| 患者类型 | NIH 临床中心的临床研究和常规诊疗患者(研究志愿者比例可能高于一般社区医院) |
| 种族/族裔信息 | 未提供——这是 ChestX-ray14 公平性评估的核心限制 |
§2.5 金标准 / 参考标准
ChestX-ray14 没有随数据集一起发布的金标准验证集——这是它相对于 CheXpert 和 MIMIC-CXR 最大的劣势。
但社区已经弥补了这个缺陷:(1) CheXNet 论文(Rajpurkar et al., 2017)从 ChestX-ray14 中随机抽取 420 张胸片,由 4 位斯坦福学术放射科医生独立标注肺炎,构成了非官方的金标准子集;(2) Google Cloud 通过 Majkowska et al.(Radiology, 2019)和 Tang et al.(Scientific Reports, 2020)两个独立研究,提供了更大规模的放射科医生共识标签——前者覆盖 4 种关键发现(肺实变、气胸、结节/肿块、骨折),后者覆盖全 14 类 + Normal/Abnormal 标签。获取方式为通过 Google Form 申请。
对于需要金标准评估的研究者,强烈建议使用 Google Cloud 的放射科医生共识标签而非原始 NLP 标签作为测试集参考。
§3 数据集规格
§3.0 版本抉择矩阵
| 版本 | 发布年份 | 影像数 | 患者数 | 标签数 | 推荐场景 |
|---|---|---|---|---|---|
| ChestX-ray8 | 2017-05 | 108,948 | 32,717 | 8 类 | 历史对照——如果需要引用原始 CVPR 2017 论文中的 8 类基准结果 |
| ChestX-ray14 | 2017-09 | 112,120 | 30,805 | 14 类 + No Finding | 推荐使用——全量标签,所有现代基准均基于此版本 |
| ChestX-ray14 + Google Expert Labels | 2019 | 同 ChestX-ray14 | 同 | 4 类或全 14 类(放射科医生共识) | 需要金标准验证时使用——通过 Google Form 申请额外标签文件 |
推荐:对绝大多数研究者,使用 ChestX-ray14 标准版训练,用 Google Cloud 放射科医生共识标签作为测试集金标准——这是目前最受认可的实践方案。
§3.1 模态详细说明
| 属性 | 说明 |
|---|---|
| 影像类型 | 数字胸部 X 光摄影(Digital Chest Radiography) |
| 视图方向 | 仅正位(Frontal View)——包括 PA(Posteroanterior)和 AP(Anteroposterior)两种投照方式 |
| 图像格式 | PNG(8-bit 灰度,1024×1024 像素标准版);Google Cloud 另提供 DICOM 版本 |
| 原始分辨率 | 各影像不统一,原始采集分辨率范围约 1,000×1,000 至 3,000×3,000 像素;发布版统一到 1024×1024 |
| 通道数 | 1(单通道灰度) |
| 位深度 | 8-bit(256 级灰度) |
| 包含的解剖结构 | 双肺野、心脏纵隔轮廓、胸廓骨骼(肋骨/锁骨/肩胛骨/胸椎)、横膈、气管、胸膜腔 |
§3.2 标签分布统计
| 疾病标签 | 英文名称 | 阳性影像数 | 占比 | 严重程度 |
|---|---|---|---|---|
| No Finding | — | 60,361 | 53.8% | — |
| Infiltration | 肺浸润 | 19,894 | 17.7% | 高频 |
| Effusion | 胸腔积液 | 13,317 | 11.9% | 高频 |
| Atelectasis | 肺不张 | 11,559 | 10.3% | 高频 |
| Nodule | 肺结节 | 6,331 | 5.6% | 中频 |
| Mass | 肺肿块 | 5,782 | 5.2% | 中频 |
| Pneumothorax | 气胸 | 5,302 | 4.7% | 中频 |
| Consolidation | 肺实变 | 4,667 | 4.2% | 中频 |
| Pleural Thickening | 胸膜增厚 | 3,385 | 3.0% | 中低频 |
| Cardiomegaly | 心脏肥大 | 2,776 | 2.5% | 低频 |
| Emphysema | 肺气肿 | 2,516 | 2.2% | 低频 |
| Edema | 肺水肿 | 2,303 | 2.1% | 低频 |
| Fibrosis | 肺纤维化 | 1,686 | 1.5% | 低频 |
| Pneumonia | 肺炎 | 1,431 | 1.3% | 低频 |
| Hernia | 膈疝 | 227 | 0.2% | 极低频 |
类别不平衡比:Infiltration(19,894)vs Hernia(227)= 87.6:1。这是医疗影像中已知最严重的类别不平衡之一。
§3.3 数据格式详细说明
图像文件:
images_001/00000001_000.png ← 1024×1024, 8-bit 灰度 PNG
images_001/00000001_001.png
...
images_012/00030805_000.png
共 12 个子目录(images_001 至 images_012),每个子目录约含 9,300-9,400 张影像。
标签文件(Data_Entry_2017.csv):
| 列名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| Image Index | string | 影像文件名 | 00000001_001.png |
| Finding Labels | string | 疾病标签,管道符分隔 | "Cardiomegaly\ |
| Follow-up # | int | 随访序号 | 0, 1, 2, … |
| Patient ID | int | 患者标识符(去标识化) | 1 |
| Patient Age | int | 患者年龄 | 58 |
| Patient Gender | char | 患者性别 | M |
| View Position | string | 投照体位 | PA 或 AP |
| OriginalImage[Width/Height] | int | 原始图像宽高 | 2500 |
| OriginalImagePixelSpacing[x/y] | float | 像素间距 | 0.168 |
边界框标注文件(BBox_List_2017.csv):
| 列名 | 说明 |
|---|---|
| Image Index | 对应的影像文件名 |
| Finding Label | 疾病名称(8 种之一) |
| Bbox [x, y, w, h] | 边界框坐标(左上角 x, 左上角 y, 宽度, 高度) |
§3.4 存储大小
| 组件 | 格式 | 大小 |
|---|---|---|
| 全量影像(PNG) | 12 个 ZIP 文件(images_001.zip 至 images_012.zip) | ~45 GB(压缩)/ ~42 GB(解压) |
| 全量影像(DICOM,Google Cloud) | gs://gcs-public-datahealthcare-nih-chest-xray/dicom/ | ~42 GB |
| 标签文件 | Data_Entry_2017.csv | ~6 MB |
| 边界框文件 | BBox_List_2017.csv | ~36 KB |
| 训练集/测试集划分 | train_val_list.txt + test_list.txt | ~1 MB each |
| Kaggle 镜像版 | JPEG(降采样) | ~5-10 GB(取决于版本) |
§3.5 标注方式
ChestX-ray14 的疾病标签通过以下 NLP 管道自动生成(详见 Wang et al., CVPR 2017 §2):
- 概念检测:使用 DNorm(疾病名称标准化)和 MetaMap(UMLS 概念映射)两个工具并行检测放射学报告中提到的医学概念,仅保留语义类型为"疾病或综合征(dsyn)"和"发现(fndg)"的概念,合并两个工具的结果以最大化召回率。
- 否定与不确定性检测:使用 NegBio 对每个检测到的概念进行否定和不确定性判断——基于句法依存分析(dependency parsing)而非简单的正则匹配。例如"clear of focal airspace disease, pneumothorax, or pleural effusion"中的 pneumothorax 和 pleural effusion 被正确识别为否定提及。
- 标签聚合:对同一影像的多条放射学报告(如有随访影像配对的报告),将阳性提及优先于阴性提及聚合为最终标签。
标注准确性:Wang et al. 估计 NLP 标签准确率 >90%(与放射科医生手动审核子集对比)。但后续独立研究(如 Ge et al., 2018)发现噪声率可能达到 5-10%,尤其对于罕见标签(Hernia、Fibrosis)。
§3.6 标注者信息
| 角色 | 说明 |
|---|---|
| NLP 标注管道 | 自动,无人工介入。DNorm(NCBI 开发)+ MetaMap(NLM 开发)+ NegBio(NCB 开发) |
| 边界框标注者 | NIH 临床中心放射科住院医(resident radiologist)——标注约 880 张影像上 8 类疾病的病灶边界框 |
| Google Cloud 放射科医生标签 | 两个独立研究:Majkowska et al.(4 种发现,3 位放射科医生共识审核)和 Tang et al.(全 14 类,2 位放射科医生独立标注) |
§3.7 数据采集时间
1992 年至 2015 年,跨越 23 年的临床影像。需要注意:早期影像(1990 年代)的成像设备、剂量参数和图像质量与后期(2010 年代)存在显著差异——这是一个重要的数据漂移因素。
§3.8 地域覆盖
单一机构——美国马里兰州贝塞斯达 NIH 临床中心。NIH 临床中心是美国最大的全科研型医院,但患者群体以研究方案参与者为主(可能比一般社区医院更健康或更特定于某些疾病)。未提供患者的地域、种族/族裔分布信息。
§3.10 深度溯源链
原始数据采集(1992-2015)
└─ NIH Clinical Center PACS 系统
└─ 去标识化(移除 DICOM 头中的 PHI 字段)
└─ 转换为 1024×1024 8-bit PNG
└─ NLP 标注管道(DNorm + MetaMap + NegBio)
└─ 边界框标注(放射科住院医,~880 张)
└─ 发布为 ChestX-ray8(2017-05,108,948 张,8 类)
└─ 扩展为 ChestX-ray14(2017-09,112,120 张,14 类)
└─ Google Cloud 公共数据集(2018,DICOM 版本 + BigQuery)
└─ Google 放射科医生共识标签(2019-2020)
└─ Kaggle 镜像版(community maintained)
§4 数据结构详解
§4.0 目录树预览
ChestX-ray14/
├── images_001/
│ ├── 00000001_000.png
│ ├── 00000001_001.png
│ └── ...
├── images_002/
│ └── ...
├── ... (images_001 至 images_012,共 12 个子目录)
├── images_012/
│ └── 00030805_000.png
├── Data_Entry_2017.csv ← 标签元数据(112,120 行)
├── BBox_List_2017.csv ← 病灶边界框标注(~984 行)
├── train_val_list.txt ← 训练+验证集影像文件名列表(86,524 行)
└── test_list.txt ← 测试集影像文件名列表(25,596 行)
§4.1 标准化字段描述表
| 字段路径 | 数据类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
Image Index |
String | ✅ | 影像唯一标识符(文件名) | 00000001_001.png |
Finding Labels |
String(管道符分隔) | ✅ | 多标签疾病标注,可为空串或 “No Finding” | `"Cardiomegaly\ |
Follow-up # |
Integer | ✅ | 患者随访序号(0 为首次检查) | 0 |
Patient ID |
Integer | ✅ | 去标识化患者 ID | 1 |
Patient Age |
Integer | ✅ | 采集时的患者年龄 | 58 |
Patient Gender |
String (1) | ✅ | 患者性别 | M 或 F |
View Position |
String (2) | ✅ | 投照体位 | PA 或 AP |
OriginalImage[Width] |
Integer | ✅ | 原始影像宽度(像素) | 2500 |
OriginalImage[Height] |
Integer | ✅ | 原始影像高度(像素) | 2048 |
OriginalImagePixelSpacing[x] |
Float | ✅ | X 方向像素间距(mm/pixel) | 0.168 |
OriginalImagePixelSpacing[y] |
Float | ✅ | Y 方向像素间距(mm/pixel) | 0.168 |
Bbox [x, y, w, h](BBox_List_2017.csv) |
Float × 4 | ⚠️(仅 ~984 行有边界框) | 病灶边界框坐标 | "152.0, 112.0, 45.0, 38.0" |
§4.2 标签分布统计
ChestX-ray14 是多标签数据集——一张影像可以同时有 0 到多个疾病标签。标签共现统计如下:
- 仅含"No Finding":~60,361 张(53.8%)——即仅"健康"标签
- 含 1 种疾病:~35,000 张(31.2%)
- 含 2 种疾病:~11,000 张(9.8%)
- 含 3 种及以上疾病:~5,759 张(5.1%)
常见共现对:Pneumonia + Consolidation、Effusion + Atelectasis、Infiltration + Atelectasis、Cardiomegaly + Edema。
§4.5 缺失值情况
| 缺失项 | 程度 | 说明 |
|---|---|---|
| 种族/族裔信息 | 完全缺失 | 数据集中不包含任何种族或族裔信息 |
| 保险类型 | 完全缺失 | 无社会经济地位代理变量 |
| 放射学报告全文 | 完全缺失 | 数据集仅发布影像和标签,不包含原始报告文本 |
| 疾病严重程度 | 完全缺失 | 标签仅为二元(有/无),无法区分轻度和重度 |
| 侧位视图 | 完全缺失 | 仅有正位(PA/AP),无侧位视图 |
| 影像采集设备信息 | 部分缺失 | 无 DICOM 头中的设备型号、曝光参数等元数据 |
§5 数据划分与使用建议
§5.1 官方划分
| 划分 | 影像数 | 比例 | 说明 |
|---|---|---|---|
| 训练集 | 78,459 | ~70% | 从 train_val_list.txt 中选取(不含验证集部分) |
| 验证集 | 8,065 | ~7% | 从 train_val_list.txt 末尾划出 |
| 测试集 | 25,596 | ~23% | test_list.txt(独立于 train_val_list) |
| 总计 | 112,120 | 100% |
官方仅提供 train_val_list.txt(86,524 张)和 test_list.txt(25,596 张)两个文本文件。train_val_list.txt 需要用户自行从中切分出验证集。官方未执行严格的患者级划分(patient-level split)——同一患者的多次随访影像可能同时出现在训练集和测试集中。
§5.2 划分策略说明
关键警告:官方 train_val_list.txt 和 test_list.txt 的划分不是患者级的(not patient-level)。同一患者的多次影像可能跨越训练集和测试集。这在胸片 AI 文献中已被广泛批评为数据泄漏(data leakage)——因为模型可能通过记忆同一患者的解剖特征(肋骨形态、纵隔轮廓等)而非学习疾病本身来获得虚假的高性能。
社区标准实践(自 Guendel et al., 2018 起):
- 按 Patient ID 分组
- 以患者为粒度进行 train/val/test 划分(推荐 70/10/20)
- 确保同一患者的所有影像完全属于同一子集
- 记录划分的随机种子以供复现
§5.3 数据泄漏风险
| 风险类型 | 严重程度 | 说明 | 缓解措施 |
|---|---|---|---|
| 跨划分患者重复 | 高 | 官方 train/test 划分未按患者级隔离 | 始终使用患者级划分,忽略官方 train_val_list.txt 和 test_list.txt |
| 同一患者多次随访 | 中 | 同一患者的多张影像高度相关(同一解剖结构) | 患者级划分自动解决此问题 |
| 信息泄漏(标签伪造) | 低 | NLP 标签本身 5-10% 噪声 | 使用 Google Cloud 放射科医生共识标签作为金标准验证集 |
§5.4 交叉验证建议
对于 ChestX-ray14 上的研究,推荐以下实验设计:
- 使用患者级随机划分(Patient-level random split),推荐 5 折交叉验证
- 固定随机种子(如
random_state=42),将划分策略记录在论文中 - 训练集使用原始 NLP 标签,验证/测试集优先使用 Google Cloud 放射科医生共识标签(如果申请到了)或 CheXNet 论文的 420 张放射科医生标注子集
- 报告的 AUROC 应为逐疾病计算的宏平均,并附 95% 置信区间(bootstrap)
§6 AI 就绪指南
§6.1 快速上手
# ========================================
# NIH ChestX-ray14 快速上手 — PyTorch + DenseNet-121
# ========================================
# 前提:已从 https://nihcc.app.box.com/v/ChestXray-NIHCC 下载数据
# 并解压全部 12 个 ZIP 文件到 ./images/ 目录下
# ========================================
import os
import numpy as np
import pandas as pd
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms, models
import torch.nn as nn
import torch.optim as optim
from sklearn.metrics import roc_auc_score
# Step 1: 解析标签文件
LABEL_CSV = "Data_Entry_2017.csv"
df = pd.read_csv(LABEL_CSV)
print(f"Total images: {len(df)}")
print(f"Unique patients: {df[''''''''''''''''Patient ID''''''''''''''''].nunique()}")
# 14 类疾病标签名称
DISEASE_LABELS = [
''''''''''''''''Atelectasis'''''''''''''''', ''''''''''''''''Cardiomegaly'''''''''''''''', ''''''''''''''''Consolidation'''''''''''''''', ''''''''''''''''Edema'''''''''''''''',
''''''''''''''''Effusion'''''''''''''''', ''''''''''''''''Emphysema'''''''''''''''', ''''''''''''''''Fibrosis'''''''''''''''', ''''''''''''''''Hernia'''''''''''''''',
''''''''''''''''Infiltration'''''''''''''''', ''''''''''''''''Mass'''''''''''''''', ''''''''''''''''Nodule'''''''''''''''', ''''''''''''''''Pleural_Thickening'''''''''''''''',
''''''''''''''''Pneumonia'''''''''''''''', ''''''''''''''''Pneumothorax''''''''''''''''
]
# Step 2: 将 "Finding Labels" 转换为多标签二进制向量
def parse_labels(label_str):
"""将管道符分隔的标签字符串转为 14 元素二进制向量"""
vec = np.zeros(14, dtype=np.float32)
if label_str == ''''''''''''''''No Finding'''''''''''''''' or pd.isna(label_str):
return vec
for label in label_str.split(''''''''''''''''|''''''''''''''''):
label = label.strip()
if label in DISEASE_LABELS:
vec[DISEASE_LABELS.index(label)] = 1.0
return vec
df[''''''''''''''''label_vector''''''''''''''''] = df[''''''''''''''''Finding Labels''''''''''''''''].apply(parse_labels)
# Step 3: 患者级 train / val / test 划分
from sklearn.model_selection import train_test_split
patients = df[''''''''''''''''Patient ID''''''''''''''''].unique()
train_patients, test_patients = train_test_split(
patients, test_size=0.2, random_state=42
)
train_patients, val_patients = train_test_split(
train_patients, test_size=0.125, random_state=42
)
train_df = df[df[''''''''''''''''Patient ID''''''''''''''''].isin(train_patients)]
val_df = df[df[''''''''''''''''Patient ID''''''''''''''''].isin(val_patients)]
test_df = df[df[''''''''''''''''Patient ID''''''''''''''''].isin(test_patients)]
print(f"Train: {len(train_df)} | Val: {len(val_df)} | Test: {len(test_df)}")
# Step 4: PyTorch Dataset
IMAGE_DIR = "./images"
class ChestXrayDataset(Dataset):
def __init__(self, dataframe, image_dir, transform=None):
self.dataframe = dataframe.reset_index(drop=True)
self.image_dir = image_dir
self.transform = transform
def __len__(self):
return len(self.dataframe)
def __getitem__(self, idx):
row = self.dataframe.iloc[idx]
img_name = row[''''''''''''''''Image Index'''''''''''''''']
# 影像文件分布在 images_001 至 images_012 子目录中
# 需要根据文件名匹配正确的子目录
for i in range(1, 13):
subdir = f"images_{i:03d}"
img_path = os.path.join(self.image_dir, subdir, img_name)
if os.path.exists(img_path):
break
image = Image.open(img_path).convert(''''''''''''''''RGB'''''''''''''''')
if self.transform:
image = self.transform(image)
label = torch.FloatTensor(row[''''''''''''''''label_vector''''''''''''''''])
return image, label
# Step 5: 数据增强与预处理
train_transform = transforms.Compose([
transforms.Resize(256),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ColorJitter(brightness=0.2, conevent-blocked=0.2),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
val_transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
train_dataset = ChestXrayDataset(train_df, IMAGE_DIR, train_transform)
val_dataset = ChestXrayDataset(val_df, IMAGE_DIR, val_transform)
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False, num_workers=4)
# Step 6: 构建 DenseNet-121 多标签分类模型
model = models.densenet121(weights=''''''''''''''''IMAGENET1K_V1'''''''''''''''')
model.classifier = nn.Linear(1024, 14)
device = torch.device(''''''''''''''''cuda'''''''''''''''' if torch.cuda.is_available() else ''''''''''''''''cpu'''''''''''''''')
model = model.to(device)
criterion = nn.BCEWithLogitsLoss()
optimizer = optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-4)
# Step 7: 训练循环
num_epochs = 10
for epoch in range(num_epochs):
model.train()
for images, labels in train_loader:
images, labels = images.to(device), labels.to(device)
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# 验证
model.eval()
all_preds, all_labels = [], []
with torch.no_grad():
for images, labels in val_loader:
images = images.to(device)
outputs = torch.sigmoid(model(images))
all_preds.append(outputs.cpu().numpy())
all_labels.append(labels.numpy())
all_preds = np.vstack(all_preds)
all_labels = np.vstack(all_labels)
per_class_auc = [roc_auc_score(all_labels[:, i], all_preds[:, i])
for i in range(14)]
avg_auc = np.mean(per_class_auc)
print(f"Epoch {epoch+1}/{num_epochs} | Avg AUROC: {avg_auc:.4f}")
print("Training complete!")
§6.2 数据获取
| 获取方式 | 链接 | 大小 | 说明 |
|---|---|---|---|
| NIH Box(官方推荐) | https://nihcc.app.box.com/v/ChestXray-NIHCC | ~45 GB | 12 个 ZIP 文件(images_001.zip 至 images_012.zip)+ 标签文件 |
| Google Cloud Storage | gs://gcs-public-datahealthcare-nih-chest-xray | ~42 GB | DICOM 版本 + PNG 版本 + BigQuery 接口(Requester Pays 计费) |
| Kaggle 镜像 | https://www.kaggle.com/datasets/nih-chest-xrays/data | ~5-10 GB | JPEG 降采样版,适合快速原型验证 |
| Google Form(专家标签) | Google Form 链接(需申请) | <100 MB | 放射科医生共识标签文件(4 类或全 14 类) |
下载流程(NIH Box 方式):
- 访问 https://nihcc.app.box.com/v/ChestXray-NIHCC
- 下载
Data_Entry_2017.csv、BBox_List_2017.csv、train_val_list.txt、test_list.txt - 依次下载 12 个 images_XXX.zip 文件(每个 ~3.5 GB)
- 解压所有 ZIP 文件到同一
./images/目录 - 无需注册、无需签署协议、无需等待审批——数据立即可用
§6.3 预处理 Pipeline
Step 1: 影像加载
原始 PNG(1024×1024, 单通道灰度)-> 重采样到 224×224 或 256×256
-> 转换为 3 通道 RGB(ImageNet 预训练模型要求)
Step 2: 图像增强(仅训练时)
-> RandomResizedCrop(224) — 随机裁剪增加多样性
-> RandomHorizontalFlip(p=0.5) — 左右翻转(胸片可安全翻转)
-> ColorJitter(brightness=0.2, conevent-blocked=0.2) — 亮度和对比度抖动
-> 可选:CLAHE 增强(对比度受限自适应直方图均衡化)
Step 3: 归一化
-> ToTensor() — [0, 255] -> [0.0, 1.0]
-> Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
— 使用 ImageNet 统计数据(DenseNet-121 预训练权重要求)
Step 4: 标签解析
-> "Finding Labels" 字符串 -> 14 元素二进制多标签向量
-> "No Finding" -> 全零向量
Step 5: 患者级划分(关键!)
-> 按 Patient ID 分组 -> sklearn train_test_split -> 确保无跨划分泄漏
§6.4 框架加载
# 使用 TorchXRayVision 加载 ChestX-ray14(推荐方式)
# pip install torchxrayvision
import torchxrayvision as xrv
# 加载在 ChestX-ray14 上预训练的 DenseNet-121 模型
model = xrv.models.DenseNet(weights="densenet121-res224-nih")
# 可用的 ChestX-ray14 预训练权重:
# - "densenet121-res224-nih" (224×224 input)
# - "densenet121-res224-all" (all datasets combined)
# 直接预测
import skimage.io
img = skimage.io.imread("chest_xray.png")
img = xrv.datasets.normalize(img, 255)
img = img.mean(axis=2)[None, ...] # 转为单通道
output = model(torch.from_numpy(img).unsqueeze(0))
preds = dict(zip(xrv.datasets.default_pathologies, output[0].detach().numpy()))
# HuggingFace Datasets 加载方式
# pip install datasets
from datasets import load_dataset
# ChestX-ray14 在 HuggingFace 上以多种预分割版本存在
# 注意:需要手动下载数据到本地后指定 data_dir
# ds = load_dataset("alkzar90/NIH-Chest-X-ray-dataset",
# data_dir="/path/to/images")
§6.5 常见坑点
⚠️ 坑点 1:官方划分会导致数据泄漏(分类:评估陷阱)
问题:ChestX-ray14 官方的
train_val_list.txt和test_list.txt不是患者级划分。同一患者的多次随访影像可能同时出现在训练集和测试集中。模型可以通过记忆同一患者的解剖特征(肋骨、心脏轮廓)而非学习疾病来获得虚高的 AUROC。症状:论文报告的 AUROC 明显高于同类研究(例如 0.87+ 而非 0.82-0.85),但在独立外部数据集上性能大幅下降。
解决:(1) 始终自己做患者级划分(按 Patient ID 分组后随机划分);(2) 在论文中明确报告使用了患者级划分并附随机种子;(3) 不要引用基于官方非患者级划分的文献作为 “SOTA 对比基线”。
参考:Guendel et al., 2018, “On the Pitfalls of Patient-wise Splitting” — 胸片 AI 数据划分的标准文献。
⚠️ 坑点 2:NLP 标签 5-10% 噪声在低频类中效应放大(分类:标签理解)
问题:ChestX-ray14 的标签来自 NLP 自动标注而非放射科医生。整体噪声率约 5-10%,但对于仅 227 张的 Hernia 类别——如果 5% 是假阳性(约 11 张)或假阴性——模型可能根本无法学到任何有用信号。同一影像上 Infiltration + Atelectasis + Effusion 的多标签共存也常被 NLP 混淆。
症状:Hernia 的 AUROC 始终在 0.5-0.6 徘徊,远低于其他类别。Emphysema 和 Fibrosis 也存在类似问题。
解决:(1) 对 Hernia/Emphysema/Fibrosis 三个类别的结果保持怀疑态度——也许模型只是学会了 NLP 标注器的偏见而非疾病本身;(2) 如果条件允许,使用 Google Cloud 的放射科医生共识标签作为验证;(3) 使用 Focal Loss (gamma=2) 提升低频类的权重;(4) 考虑 Label Smoothing 缓解噪声标签的影响。
⚠️ 坑点 3:仅正位视图限制模型临床适用性(分类:数据限制)
问题:ChestX-ray14 只含正位(PA/AP)胸片。在临床实践中,放射科医生经常依赖侧位(lateral)视图确认正位中的可疑发现——例如通过侧位片区分真正的肺结节和乳头阴影、确认肺不张的后基底段位置等。仅正位训练的模型无法利用这种双视图信息。
症状:模型在 ChestX-ray14 测试集上表现良好,但在包含侧位片的真实临床环境中性能下降。
解决:(1) 如果目标是临床部署,使用 MIMIC-CXR 或 CheXpert(均含侧位)作为补充训练数据;(2) 在研究论文中明确说明"本模型仅限于正位胸片";(3) 不要将 ChestX-ray14-only 模型的结果外推至临床决策环境。
⚠️ 坑点 4:原始影像文件匹配需遍历子目录(分类:工程陷阱)
问题:ChestX-ray14 的 112,120 张影像分布 12 个子目录(images_001 至 images_012)中,子目录的分配方式没有公开文档说明。加载一张特定影像时,需要遍历 12 个子目录查找匹配的文件名。如果每次用
os.path.exists()逐个检查,I/O 开销非常高。症状:DataLoader 的
__getitem__每次访问都卡在文件查找上,训练速度极慢。解决:(1) 在数据集初始化时预先构建一个文件名到子目录的映射字典——一次遍历 12 个子目录,将每个文件名映射到正确的子目录路径;(2) 或者将所有影像移动到同一个扁平目录下(但会占用额外 42 GB 磁盘空间);(3) 代码示例见 §6.1 中的
for i in range(1, 13)遍历逻辑。
⚠️ 坑点 5:Infiltration 标签的模糊性是所有类别中最严重的(分类:标签理解)
问题:“Infiltration”(肺浸润)在放射学中是一个描述性而非诊断性术语——它可以表示感染性浸润、肿瘤浸润、过敏性浸润等完全不同的病理实体。NLP 标注器在抽取"infiltration"这个词时无法区分其临床含义,导致 Infiltration 标签在各类别中噪声最大。验证研究显示,Infiltration 的 NLP-Radiologist 标签一致性在各 14 类中排名倒数。
症状:Infiltration 的 AUROC 虽然因为样本量大(19,894 张)而看起来尚可,但人类审查会发现大量的假阳性——模型标注为"Infiltration"的区域可能是正常血管纹理或陈旧疤痕。
解决:(1) 不要期望在 Infiltration 上获得临床意义的阳性预测值(PPV);(2) 如果目标是特定感染性疾病的检测(如 COVID-19 浸润),请使用专为该疾病标注的数据集;(3) 在论文中说明 Infiltration 是 NLP 噪声最大的标签类别。
§6.9 评估指标
from sklearn.metrics import roc_auc_score, f1_score, average_precision_score
import numpy as np
# ChestX-ray14 标准评估协议:
# 1. 逐疾病计算 AUROC,取宏平均(macro-average)
# 2. 逐疾病计算 F1 分数,取宏平均
# 3. 可选:平均精确率均值(mAP, mean Average Precision)
def evaluate_chestxray14(y_true, y_pred_proba):
"""
y_true: numpy array of shape (N, 14) — binary ground-truth labels
y_pred_proba: numpy array of shape (N, 14) — predicted probabilities
"""
# 逐疾病 AUROC
per_class_auc = []
for i in range(14):
# 仅评估有至少一个阳性样本的类别
if y_true[:, i].sum() > 0 and (1 - y_true[:, i]).sum() > 0:
auc = roc_auc_score(y_true[:, i], y_pred_proba[:, i])
per_class_auc.append(auc)
avg_auc = np.mean(per_class_auc)
# 逐疾病 F1(使用 0.5 阈值)
per_class_f1 = []
for i in range(14):
if y_true[:, i].sum() > 0:
y_pred_binary = (y_pred_proba[:, i] >= 0.5).astype(int)
f1 = f1_score(y_true[:, i], y_pred_binary, zero_division=0)
per_class_f1.append(f1)
avg_f1 = np.mean(per_class_f1)
print(f"Average AUROC (macro): {avg_auc:.4f}")
print(f"Average F1 (macro): {avg_f1:.4f}")
return avg_auc, avg_f1, per_class_auc, per_class_f1
各疾病当前 SOTA 表现参考(TorchXRayVision / SynthEnsemble, 2023-2025):
| 疾病 | 典型 AUROC | 难度 |
|---|---|---|
| Cardiomegaly | 0.92-0.94 | 容易 |
| Effusion | 0.88-0.91 | 容易 |
| Pneumothorax | 0.87-0.90 | 中等 |
| Atelectasis | 0.80-0.83 | 中等 |
| Consolidation | 0.82-0.85 | 中等 |
| Edema | 0.88-0.91 | 中等 |
| Mass | 0.84-0.87 | 中等 |
| Nodule | 0.79-0.83 | 中等 |
| Pneumonia | 0.78-0.82 | 中等 |
| Emphysema | 0.92-0.94 | 中等 |
| Infiltration | 0.72-0.75 | 困难 |
| Pleural Thickening | 0.78-0.82 | 困难 |
| Fibrosis | 0.81-0.84 | 困难 |
| Hernia | 0.70-0.83 | 极困难 |
| 宏平均 | 0.84-0.86 | — |
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 仅来自 NIH 临床中心,患者群体为研究方案参与者,不代表一般社区医院人群 | 高 | 在论文中明确标注机构来源;结合 CheXpert/MIMIC-CXR 做跨机构验证 |
| NLP 标签噪声 | 无放射科医生验证,噪声率 5-10%,在低频类别中效应放大 | 高 | 使用 Google Cloud 放射科医生共识标签作为金标准测试集 |
| 类别不平衡 | Hernia 仅 227 张 vs Infiltration 19,894 张(87:1) | 高 | Focal Loss、重采样、代价敏感学习;低频类结果需谨慎解读 |
| 视图限制 | 仅正位(PA/AP),无侧位视图 | 中 | 结合 MIMIC-CXR 或 CheXpert 做多视图补充 |
| 时间跨度 | 1992-2015 共 23 年,早期影像设备与现代数字 DR 存在显著差异 | 中 | 分析时考虑采集年份作为协变量 |
| 性别分布 | 男性 ~56% vs 女性 ~44%,轻微不均衡 | 低 | 按性别分层报告性能 |
| 种族/族裔缺失 | 数据集中完全不包含种族或族裔信息,无法做公平性审计 | 高 | 这是一个根本性限制——无法评估模型在不同种族间的性能差异 |
§7.2 标签质量
| 标签类型 | 标注方式 | 准确率估计 | 一致性检验 | 局限性 |
|---|---|---|---|---|
| NLP 自动标签(14 类) | DNorm + MetaMap + NegBio NLP 管道 | ~90-95%(Wang et al. 估计) | 无正式 IAA 检验 | 噪声率 5-10%,Hernia/Infiltration 等标签尤其不可靠 |
| CheXNet 放射科医生标签(肺炎,420 张) | 4 位斯坦福学术放射科医生独立标注 | N/A(用作金标准) | F1 0.387 平均(放射科医生之间也存变异) | 仅 420 张,仅肺炎 |
| Google Cloud 专家标签(4 类发现) | 3 位放射科医生共识审核 | 金标准 | 多轮审核直至共识 | 仅覆盖 4 种发现,未覆盖全 14 类 |
| Google Cloud 专家标签(全 14 类 + Normal/Abnormal) | 2 位放射科医生独立标注 | 金标准 | 论文报告 | 通过 Google Form 申请,非即时可获取 |
| 边界框标注(~880 张) | 1 位 NIH 放射科住院医 | 未正式评估 | 无多标注者 IAA | 单标注者,可能漏标小病灶 |
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 社区医院/非学术中心 | 高 — NIH 患者为研究方案参与者,疾病谱和人口统计与社区医院不同 | CheXclusion 研究(Seyyed-Kalantari et al., 2020)发现 CheXpert 模型在少数群体上的性能下降,ChestX-ray14 的趋势类似但缺乏种族数据无法验证 |
| 非美国医疗系统 | 高 — 胸片采集标准、放射学报告语言、疾病流行病学均不同 | 跨国的系统性验证研究极少 |
| 儿科人群 | 中 — 数据集含部分儿科影像但未单独评估 | 儿童胸片的解剖比例和正常变异与成人不同 |
| 仅侧位视图 | 不适用 — 数据集不含侧位片 | N/A |
| 新设备/DR 系统 | 中 — 1992-2015 年的设备与现代全数字化 DR 有差异 | 影像对比度和噪水平不同 |
| Vision Transformer 架构 | 中低 — ViT 在 ChestX-ray14 上表现不如 CNN(Strick et al., 2025) | ViT 平均 AUROC 0.794 vs DenseNet-121 0.85 |
§7.4 伦理考量
- 数据隐私:所有影像已做去标识化处理——DICOM 头中的 PHI 字段已移除,患者标识符替换为数字 ID。但 ChestX-ray14 仅发布了 1024×1024 的降采样 PNG,原始 DICOM 不可获取,这降低了通过面部重建等高级攻击手段重新识别患者的风险。
- 知情同意:原始影像采集自 NIH 临床中心的常规临床诊疗和研究方案。NIH 作为联邦机构,其数据二次使用政策受《健康保险携带与责任法案》(HIPAA)和 NIH 数据共享政策的约束。
- 公平性风险:数据集不含种族/族裔信息——这意味着无法开展系统性的公平性审计。考虑到 ChestX-ray14 是胸片 AI 训练最广泛使用的基准之一,它的"种族盲区"是不容忽视的伦理缺陷。使用 ChestX-ray14 训练的模型可能在某些族裔亚组上表现更好或更差——但我们不知道是哪些。
- 误用风险:ChestX-ray14 是通用基准数据集,不是已获批准的 AI 医疗器械。严禁将基于 ChestX-ray14 训练的模型直接用于临床决策,尤其在没有经过前瞻性临床试验和 FDA 510(k) 认证的情况下。
- 学术诚信:虽然数据集使用无限制,但学术诚信要求使用者标注数据来源、引用 CVPR 2017 原论文、并承认 NIH 临床中心为数据提供者。
§7.5 公平性评估
ChestX-ray14 的公平性评估面临核心障碍:种族/族裔信息完全缺失。与 CheXpert Plus(含种族、保险类型)和 MIMIC-CXR(可通过 MIMIC-IV 关联获取种族)不同,ChestX-ray14 未提供任何可用于子群体性能差异分析的社会人口学变量。
已知的公平性相关发现:
- 性别分层性能:Male vs Female 是唯一可分层的维度。Baltruschat et al. (2019) 报告的性别差异不显著,但研究未对低频类别(Hernia、Fibrosis)做分层分析。
- 投照体位差异:PA(后前位)和 AP(前后位)影像在对比度、心脏大小投影和肺野范围上存在显著差异。AP 通常用于无法站立的重症患者——这些患者通常病情更重。基于 PA 训练的模型在重症 AP 影像上可能性能下降。
- 年龄差异:年龄是连续变量(1-100+ 岁),不同年龄组的胸片正常解剖变异差异大(如儿童胸腺、老年骨质疏松导致的肋骨改变)。
# 性别分层公平性分析示例(基于可用元数据)
import pandas as pd
from sklearn.metrics import roc_auc_score
df_test[''''''''''''''''preds''''''''''''''''] = model_predictions # 在测试集上的预测概率
for gender in [''''''''''''''''M'''''''''''''''', ''''''''''''''''F'''''''''''''''']:
subgroup = df_test[df_test[''''''''''''''''Patient Gender''''''''''''''''] == gender]
y_true = np.vstack(subgroup[''''''''''''''''label_vector''''''''''''''''].values)
y_pred = np.vstack(subgroup[''''''''''''''''preds''''''''''''''''].values)
per_class_auc = []
for i in range(14):
if y_true[:, i].sum() > 0:
auc = roc_auc_score(y_true[:, i], y_pred[:, i])
per_class_auc.append(auc)
print(f"Gender {gender}: Avg AUROC = {np.mean(per_class_auc):.4f}")
§7.6 数据漂移提示
| 漂移维度 | 漂移程度 | 说明 | 影响 |
|---|---|---|---|
| 影像采集技术 | 中高 | 1992-2015 年跨度 23 年:从胶片-增感屏系统 → 计算机放射摄影(CR)→ 直接数字放射摄影(DR)/ 平板探测器 | 早期影像的噪水平更高、动态范围更窄;模型在早期影像上训练的权重可能不适用于最新 DR 系统 |
| 影像分辨率 | 中 | 原始影像分辨率 1,000×1,000 至 3,000×3,000 不等,发布版统一到 1024×1024 | 统一降采样掩盖了原始分辨率的差异——可能在微小结节(<5 mm)检测上损失信息 |
| 放射学报告风格 | 中 | 报告风格从 1990 年代的自由叙事向 2010 年代的模板化结构化报告演变 | NLP 标注器的否定/不确定性检测在模板化报告上可能更准确 |
| 疾病流行病学 | 低中 | 1992-2015 年美国胸部疾病的整体流行病学变化 | 肺炎的病原学和影像学表现可能随抗生素使用和疫苗接种政策变化而演变 |
| COVID-19 后 | N/A | 数据集止于 2015 年,不含任何 COVID-19 相关影像 | 基于 ChestX-ray14 训练的模型可能无法识别 COVID-19 肺炎特征——COVID-19 相关的胸片表现需要专门的 COVID-19 数据集 |
对策:(1) 如果在 ChestX-ray14 上训练模型后部署到现代 DR 系统,预期会有性能退化——建议在新的目标数据上进行微调;(2) 预处理时考虑对不同年代影像做 Histogram Matching 或 CLAHE 归一化;(3) ChestX-ray14 不适合用于 COVID-19 检测——请参考 COVIDx、BIMCV-COVID19+ 或专门的 COVID-19 胸片数据集。
§7.7 DAIMS 24 项数据就绪度评估表
| # | 评估项 | 得分 | 说明 |
|---|---|---|---|
| 1 | 数据集标识 | ✅ 1 | 名称、版本、发布日期、作者、DOI 完整 |
| 2 | 数据采集过程 | ✅ 1 | 全面描述了 1992-2015 年间 NIH 临床中心的影像采集和去标识化流程 |
| 3 | 数据预处理 | ✅ 1 | NLP 标注管道(DNorm + MetaMap + NegBio)完整开源文档化 |
| 4 | 数据标注方法 | ✅ 1 | NLP 标注三阶段流程(概念检测→否定检测→标签聚合)在 CVPR 论文中详细描述 |
| 5 | 数据划分 | ⚠️ 0.5 | 官方提供了 train/val/test 划分,但不是患者级的——存在跨划分数据泄漏 |
| 6 | 数据分布 | ✅ 1 | 完整的逐标签统计(Data_Entry_2017.csv 可直接生成) |
| 7 | 数据格式 | ✅ 1 | PNG + CSV 格式简单明确,附带详细的字段说明 |
| 8 | 数据可及性 | ✅ 1 | 完全开放、无需注册、无需签署协议、多平台分发(Box/Kaggle/Google Cloud) |
| 9 | 数据许可 | ✅ 1 | 无使用限制(No Restrictions),仅要求学术引用 |
| 10 | 伦理审查 | ⚠️ 0.5 | 数据集由联邦机构(NIH)发布符合 HIPAA 和数据共享政策,但未提供独立的 IRB 审批号 |
| 11 | 隐私保护 | ✅ 1 | 去标识化处理,仅发布降采样 PNG 而非原始 DICOM |
| 12 | 人口学信息 | ⚠️ 0.5 | 仅含年龄和性别;种族/族裔完全缺失 |
| 13 | 缺失数据处理 | ⚠️ 0.5 | NLP 标签无缺失值(每个影像都有标签),但标签噪声(5-10%)本身就是一种"信息缺失" |
| 14 | 数据质量 | ⚠️ 0.5 | 无正式的数据质量验证报告;NLP 标签无放射科医生验证 |
| 15 | 已知局限性 | ✅ 1 | CVPR 论文和后续文献详尽列出 NLP 标签噪声、单中心、仅正位等局限性 |
| 16 | 偏倚评估 | ❌ 0 | 原始论文未进行系统性偏倚评估;单中心偏倚和 NLP 偏倚在后续文献中讨论但非结构化 |
| 17 | 泛化性分析 | ❌ 0 | 未进行跨机构泛化性分析 |
| 18 | 可复现性 | ⚠️ 0.5 | 数据可自由下载;NLP 标注工具开源;但无官方基准代码仓库 |
| 19 | 预训练模型发布 | ❌ 0 | 原始数据集发布方(NIH)不发布预训练模型权重 |
| 20 | 评估指标标准化 | ✅ 1 | AUROC 宏平均为社区共识标准;CheXNet 和后续文献已形成事实规范 |
| 21 | 基准任务多样性 | ✅ 1 | 多标签分类 + 弱监督定位 + 类别不平衡的三重任务组合 |
| 22 | 外部验证 | ⚠️ 0.5 | Google Cloud 提供了附加的放射科医生金标准标签,但并非正式的外部验证研究 |
| 23 | 数据集维护 | ⚠️ 0.5 | 数据集内容自 2017 年 12 月起不再更新(静态发布),但 Google Cloud 平台上的 DICOM 版本和 BigQuery 接口持续维护 |
| 24 | 文档完整性 | ✅ 1 | CVPR 论文 + arXiv v5 + Box 页面 README + Google Cloud 文档四重文档 |
| 合计 | 15.5 / 24 |
DAIMS 评分:15.5 / 24
评分解读:良好(偏入门) — ChestX-ray14 在数据可及性(零门槛免费下载)、任务多样性和社区采纳度上几乎满分。DAIMS 评分的"扣分项"主要集中在三个方面:(1) 无金标准验证集——NLP 标签 5-10% 噪声,没有官方放射科医生验证(虽然有 Google Cloud 补充标签,但需额外申请);(2) 非患者级官方划分——这是 ChestX-ray14 最知名的技术债,任何使用它的人都应该知道这个陷阱;(3) 种族信息缺失——250+ 亿参数的基础模型可能放大隐性偏见,但我们无法在 ChestX-ray14 上检验这一点。对你意味着什么:(1) 立即抛弃官方划分——始终使用患者级划分(按 Patient ID 分组后随机 split),否则你的实验结果无法与其他严谨研究对标;(2) NLP 标签不是金标准——如果你在 Hernia、Infiltration 这些低频高噪类别上得到了异常好的 AUROC,先检查你的模型是否学会了 NLP 标注器的偏见而非疾病本身;(3) 种族盲区是不可忽视的限制——不要在论文中做出 “我们的模型对所有人公平” 的声明——因为我们根本不知道;(4) 利用 Google Cloud 专家标签——如果你需要一个真正靠谱的验证集,花 5 分钟填表申请 Google Cloud 的放射科医生共识标签,这是目前 ChestX-ray14 上最有公信力的金标准。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源 | 样本量 | 评估任务 | 性能指标 | 相对内部测试集变化 | 关键发现 |
|---|---|---|---|---|---|---|
| CheXpert | Stanford Hospital(美国) | 500 例测试集 | 5 种竞争病种分类 | AUROC 0.889(从 ChestX-ray14 迁移) | N/A(不同数据集) | 在 ChestX-ray14 上预训练后再在 CheXpert 上微调的模型优于仅在 CheXpert 上训练的模型——跨数据集迁移有效 |
| MIMIC-CXR | BIDMC(美国) | ~2,000 例 | 14 类分类 | AUROC 下降 3-5% | 下降 | ChestX-ray14 → MIMIC-CXR 迁移时性能下降,可能因为 MIMIC-CXR 的急诊科/ICU 患者群体的影像异常率更高 |
| PadChest | Hospital San Juan(西班牙) | 27,593 例测试 | 胸部发现检测 | AUROC 下降 5-8% | 显著下降 | 西班牙语报告和不同的临床文档风格导致跨语言/跨系统 NLP 标签不一致 |
| 中国人民解放军总医院(PLAGH) | 中国北京 | ~3,000 例 | 肺结核检测 | AUROC ~0.85 | N/A | 在 ChestX-ray14 预训练的 DenseNet-121 在独立中国人口上检测 TB 表现尚可——但样本量有限 |
| COVID-19 (COVIDx CXR-3) | 多机构汇总 | 16,000+ 例 | COVID-19 vs 正常 vs 非 COVID 肺炎 | Acc 0.90+ | N/A | ChestX-ray14 是 COVID-Net 等 COVID-19 检测模型的常用非 COVID 类别训练源——因为它与 COVID 影像的采集条件(AP 便携式)相近 |
§8 基准性能与生态
§8.1 排行榜
注意:ChestX-ray14 的"排行榜"并非官方维护,结果来自各独立论文的公开报告。由于不同论文在患者级划分策略、影像预处理和数据增强上存在差异,绝对数值不可直接比较——以下数据仅供参考整体趋势。
| 方法 | 模型类型 | 宏平均 AUROC | 关键优势 | 年份 | 引用 | 代码 |
|---|---|---|---|---|---|---|
| CheXNet (Rajpurkar et al.) | DenseNet-121 | 0.841 | 开创性工作,首次在胸片上实现"超越放射科医生" | 2017 | arXiv:1711.05225 | GitHub |
| Baltruschat et al. | ResNet-50 | 0.822 | 系统性对比多种 CNN 架构在胸片上的表现 | 2019 | JMI 2019 | GitHub |
| Ge et al. | DenseNet-121 + MSML | 0.848 | 多标签 Softmax Loss 捕捉标签共现 | 2018 | — | — |
| DenseNet-121 (TorchXRay) | DenseNet-121 | 0.826 | 社区标准基线(224 input) | 2020 | JOSS 2020 | GitHub |
| SynthEnsemble (Ashraf et al.) | CNN+ViT+CoAtNet 集成 | 0.854 | 集成三种架构的预测 | 2023 | — | GitHub |
| DannyNet (Strick et al., 2025) | DenseNet-121 + Focal Loss + AdamW | 0.853 | 独立复现 CheXNet + 显著改进 | 2025 | arXiv:2505.06646 | GitHub |
| TorchXRayVision (Cohen Lab, 2025) | DenseNet-121(多数据集预训练) | 0.858 | 在多个胸片数据集上预训练后微调 | 2025 | — | GitHub |
§8.2 SOTA 总结与选型建议
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 快速基线 | TorchXRayVision DenseNet-121 (densenet121-res224-nih) | 开箱即用的预训练权重,2 行代码出预测结果 |
| 追求最高 AUROC | TorchXRayVision(多数据集预训练版本)或 SynthEnsemble | 85.8% 为当前已知最高公开报告结果 |
| 低频类别优化 (Hernia/Fibrosis) | DenseNet-121 + Focal Loss (gamma=2) | 显著提升低频类别的 F1 而不过度牺牲高频类别(Strick et al., 2025) |
| 弱监督病灶定位 | DenseNet-121 + Grad-CAM/Grad-CAM++ | 经典方法,在 ~880 张边界框子集上验证 IoU |
| Vision Transformer | 暂不推荐 | ViT 在 ChestX-ray14 上未证明优于 CNN(Strick et al., 2025: ViT AUROC 0.794 vs DenseNet 0.85) |
| 跨数据集研究 | TorchXRayVision(all 版预训练权重) | 在 ChestX-ray14 + CheXpert + MIMIC-CXR + PadChest 等联合预训练,泛化性最好 |
§8.3 官方评测协议
ChestX-ray14 没有"官方"评测协议(不同于 Kaggle 竞赛或 CheXpert 的隐藏测试集评估)。但社区已形成事实标准:
- 使用患者级 train/val/test 划分(推荐 70/10/20 或 80/20)
- 训练集使用原始 NLP 标签(全部 14 类)
- 验证集用于超参调优,测试集仅使用一次
- 报告宏平均 AUROC(14 类平均),附逐类 AUROC
- 可选:报告宏平均 F1(阈值 0.5)
- 定位任务:在 ~880 张边界框子集上报告 T(IoU) 分数(IoU 阈值 >= 0.1 视为命中)
- 建议使用 bootstrap(n=1000)报告 95% 置信区间
§8.4 相关数据集
| 数据集 | 关系 | 关键差异 |
|---|---|---|
| CheXpert | 互补 — 不确定性标签体系 | 224K 影像,Stanford,不确定性 -1 标签,含侧位片,需签 RUA |
| MIMIC-CXR | 互补 — 附带放射学报告 | 377K 影像,BIDMC,含放射学报告全文,可关联 ICU 病历(MIMIC-IV) |
| PadChest | 互补 — 细粒度标签 | 161K 影像 + 西班牙语报告,192 类细粒度标签,含放射科医生标注 |
| VinDr-CXR | 替代 — 胸部异常检测 | 18K 影像,越南,17 位放射科医生的 22 类病灶级边界框 |
| CheXpert Plus | 升级 — 报告 + 人口统计 | 在 CheXpert 基础上补充 187K 报告全文 + 64K 患者人口学属性 |
| COVIDx CXR-3 | 衍生 — COVID-19 专用 | 16K+ COVID-19 胸片,常以 ChestX-ray14 作为非 COVID 训练类别来源 |
§8.5 关键论文
- Wang, X., Peng, Y., Lu, L., Lu, Z., Bagheri, M., & Summers, R. M. (2017). ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 2097-2106. — ChestX-ray14 原始论文,CVPR 2017 Spotlight。被引 3,300+。
- Rajpurkar, P., Irvin, J., Zhu, K., Yang, B., Mehta, H., Duan, T., … & Ng, A. Y. (2017). CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning. arXiv:1711.05225。— 以 DenseNet-121 在 ChestX-ray14 上首次实现超越放射科医生的肺炎检测。被引 4,600+。
- Rajpurkar, P., Irvin, J., Ball, R. L., Zhu, K., Yang, B., Mehta, H., … & Lungren, M. P. (2018). Deep Learning for Chest Radiograph Diagnosis: A Retrospective Comparison of the CheXNeXt Algorithm to Practicing Radiologists. PLOS Medicine, 15(11), e1002686. — CheXNet 的临床级扩展验证,在 ChestX-ray14 之外的数据集上对比放射科医生。
- Baltruschat, I. M., Nickisch, H., Grass, M., Knopp, T., & Saalbach, A. (2019). Comparison of Deep Learning Approaches for Multi-Label Chest X-Ray Classification. Scientific Reports, 9, 6381. — 在 ChestX-ray14 上系统性对比 ResNet/DenseNet/Inception 等多架构。被引 700+。
- Majkowska, A., Mittal, S., Steiner, D. F., Reicher, J. J., McKinney, S. M., Duggan, G. E., … & Shetty, S. (2019). Chest Radiograph Interpretation with Deep Learning Models: Assessment with Radiologist-Adjudicated Reference Standards and Population-Adjusted Evaluation. Radiology, 290(2), 290-297. — 为 ChestX-ray14 提供放射科医生共识标签。Google Cloud 公共数据集项目的关键补充。
- Guendel, S., Grbic, S., Georgescu, B., Liu, S., Maier, A., & Comaniciu, D. (2018). Learning to Recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks. Iberoamerican Congress on Pattern Recognition (CIARP)。— 标准化的患者级划分策略文献。
- Cohen, J. P., Hashir, M., Brooks, R., & Bertrand, H. (2020). On the Limits of Cross-Domain Generalization in Automated X-Ray Prediction. Medical Imaging with Deep Learning (MIDL)。— TorchXRayVision 基准库的奠基论文,含 ChestX-ray14 上跨数据集泛化性的系统评估。
- Strick, D., Garcia, C., & Huang, A. (2025). Reproducing and Improving CheXNet: Deep Learning for Chest X-ray Disease Classification. arXiv:2505.06646。— CheXNet 的独立复现 + Focal Loss / AdamW / ViT 的现代增强研究。
§8.6 社区活跃度
| 指标 | 数据 | 来源 |
|---|---|---|
| Wang et al. CVPR 2017 被引 | 3,300+ | Google Scholar |
| CheXNet 论文被引 | 4,600+ | Google Scholar |
| Kaggle 镜像页面下载量 | 数十万次(estimated) | Kaggle 数据集页面 |
| HuggingFace 加载脚本下载量 | 数万次/月 | HuggingFace Datasets 统计 |
| GitHub 上 “ChestX-ray14” 搜索 | 1,000+ 仓库 | GitHub 搜索 |
| arXiv 上引用 ChestX-ray14 的论文 | 2,000+ | Semantic Scholar / Connected Papers |
| TorchXRayVision Star/Fork | 800+ / 200+ | GitHub(截至 2026-07) |
§8.7 生态快照
| 资源 | 类型 | 链接 | 为什么值得关注 |
|---|---|---|---|
| NIH Box 下载页 | 官方数据源 | Box | 原始 PNG 影像 + 标签 + BBox 的直接下载 |
| Google Cloud Public Dataset | 云数据平台 | GCP Healthcare API | DICOM 版本 + BigQuery 分析 + DICOMweb 接口 |
| Kaggle 镜像 | 社区数据源 | Kaggle NIH Chest X-rays | 降采样 JPEG 版,快速原型验证首选 |
| TorchXRayVision | 预训练模型库 | GitHub | 胸片 CNN 预训练权重 + 标准化 DataLoader,开箱即用 |
| CheXNet 社区实现 | 参考代码 | GitHub (arnoweng) | CheXNet 论文的最佳社区复现(PyTorch) |
| Grad-CAM Demo | 可视化工具 | GitHub | 在 ChestX-ray14 上可视化的标准 Grad-CAM 实现 |
| HuggingFace Datasets | 数据加载器 | HuggingFace | 标准化 HuggingFace Dataset 格式,方便集成 |
| MONAI (Medical Open Network for AI) | 训练框架 | GitHub | 医疗影像深度学习框架,支持 ChestX-ray14 格式 |
§9 相关资源与引用
§9.1 BibTeX 引用
@inproceedings{wang2017chestxray8,
title={Chest{X}-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={20972106},
year={2017},
doi={10.1109/CVPR.2017.369}
}
如需同时引用 CheXNet 基准结果:
@article{rajpurkar2017chexnet,
title={Che{XN}et: Radiologist-Level Pneumonia Detection on Chest {X}-Rays with Deep Learning},
author={Rajpurkar, Pranav and Irvin, Jeremy and Zhu, Kaylie and Yang, Brandon and Mehta, Hershel and Duan, Tony and Ding, Daisy and Bagul, Aarti and Ball, Robyn L. and Langlotz, Curtis and Shpanskaya, Katie and Lungren, Matthew P. and Ng, Andrew Y.},
journal={arXiv preprint arXiv:1711.05225},
year={2017}
}
§9.2 官方资源
§9.3 教程与社区链接
| 资源 | 类型 | 链接 |
|---|---|---|
| TorchXRayVision 教程 | 官方文档 | https://mlmed.org/torchxrayvision/ |
| 胸片 AI 入门(Cohen et al.) | 综述 | https://mlmed.org/ |
| MONAI Chest X-ray 教程 | 教程 Notebook | https://github.com/Project-MONAI/tutorials |
| CS231n 医学影像专题 | 课程 | https://cs231n.stanford.edu/ |
| Papers with Code — ChestX-ray14 | 基准追踪 | https://paperswithcode.com/dataset/chestx-ray14 |
§10 AI 使用声明卡
§10.1 使用的 AI 模型
| 模型 | 版本 | 用途 |
|---|---|---|
| Claude(WorkBuddy) | 2026-07 | Wiki 初稿生成、信息检索与整合 |
| WebSearch / WebFetch | WorkBuddy 内置 | 数据集背景资料收集与交叉验证 |
§10.2 AI 参与范围
ai-assisted — AI 完成初稿生成和信息整合,人工(千方病案医学编辑部)完成医学准确性审核和规范性校验。
§10.3 AI 参考的输入来源
- Wang et al., “ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases,” CVPR 2017(arXiv:1705.02315)
- Rajpurkar et al., “CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning,” arXiv:1711.05225, 2017
- Majkowska et al., “Chest Radiograph Interpretation with Deep Learning Models,” Radiology, 2019
- Google Cloud Healthcare API — NIH Chest X-ray 公共数据集文档
- NIH Clinical Center Box 下载页面
- Kaggle NIH Chest X-rays 数据集页面
- Baltruschat et al., “Comparison of Deep Learning Approaches for Multi-Label Chest X-Ray Classification,” Scientific Reports, 2019
- Strick et al., “Reproducing and Improving CheXNet,” arXiv:2505.06646, 2025
- TorchXRayVision 项目文档(Cohen Lab)
- Papers with Code / Codesota — ChestX-ray14 排行榜汇总
§10.4 人工校验机制
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1 概览(30 秒速览、战略价值、横向对比) | 千方病案医学编辑部 | 与 CVPR 2017 原论文和 CheXNet 论文交叉比对 | ✅ 已通过 |
| §2 医学背景(ICD-11/SNOMED CT 映射、临床任务定义) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据规格(版本抉择矩阵、标签分布、标注方式) | 千方病案医学编辑部 | 与 CVPR 原论文和数据文件交叉比对 | ✅ 已验证 |
| §4 数据结构(目录树、字段表、标签分布) | 千方病案医学编辑部 | 与 Data_Entry_2017.csv 列定义交叉比对 | ✅ 已验证 |
| §5 数据划分(泄漏风险、患者级划分建议) | 千方病案医学编辑部 | 逻辑审查 + 与 Guendel et al. 2018 交叉比对 | ✅ 已通过 |
| §6 AI 就绪指南(代码示例、5 个坑点、评估指标) | 千方病案医学编辑部 | 逻辑审查 + 代码可运行性验证 | ✅ 已通过 |
| §7 质量评估(DAIMS、偏倚表、外部验证) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 基准性能(排行榜、SOTA、生态快照) | 千方病案医学编辑部 | 与各引用论文核实 | ✅ 已验证 |
§10.5 AI 生成的章节
全部章节均由 AI 完成初稿,经千方病案医学编辑部人工交叉审核后修改定稿。
§10.6 最后一次人工审核日期
2026-07-29
页面状态:published — 全部内容已完成审核并发布。
