信息速览
CHEXPERT PLUS — 胸部 X 光图文多模态数据集 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 全称 | CheXpert Plus: Augmenting a Large Chest X-ray Dataset with Text and Patient Metadata |
| 中文名 | CheXpert Plus 胸片图文数据集(暂译:切斯特加号) |
| 发布机构 | Stanford AIMI(斯坦福医学与影像人工智能中心)× VinBrain(越南) |
| 发布时间 | 2024 年 5 月 29 日(arXiv v1)/2024 年 6 月 3 日(v2) |
| 首发论文 | arXiv:2405.19538(DOI 10.48550/arXiv.2405.19538) |
| 数据模态 | 胸部 X 线摄影(正位 PA/AP)+ 自由文本放射报告 + 人口学属性 + DICOM 元数据 |
| 样本规模 | 223,462 张正位胸片(论文正文)/223,228 张(Table 1 口径) |
| 患者数 | 64,725 名 |
| 报告数 | 187,711 份放射报告(Findings / Impression 分段) |
| 图像格式 | DICOM(原始)+ PNG(8-bit,320×320 裁剪)+ JPG(原始分辨率) |
| 获取方式 | 签署 Stanford University Dataset Research Use Agreement 后经 Stanford AIMI 门户下载 |
| 许可 | 非商业研究用途,禁止再分发与再识别 |
| 官方代码 | github.com/Stanford-AIMI/chexpert-plus |
| 前身条目 | 经典 CheXpert(2019,库内 rid5) |
| 数据卡 | aimi.stanford.edu/datasets/chexpert-plus |
| 本页更新 | 2026-09-30 |
一句话定位:CheXpert Plus 不是一个新的图像数据集,而是给 2019 年那批经典 CheXpert 胸片补上了它们原本缺失的报告文本与患者元数据,从而把一个「图像 + 14 类标签」的资源,升级为可支撑图文对齐、报告生成与多模态预训练的图文语料。
§0 E-E-A-T 信任声明与免责声明
§0.1 本页的信息来源与证据等级
本页所有硬数字均来自一手来源,并按证据等级分层标注:
| 证据等级 | 来源 | 本页用途 |
|---|---|---|
| A 级(同行评议/预印本原文) | arXiv:2405.19538 v2 全文(13 页,含 Table 1–6) | 全部核心统计量、模型结果、局限性陈述 |
| A 级(官方仓库) | GitHub Stanford-AIMI/chexpert-plus README 与代码 |
数据加载方式、模型库构成、基准复现路径 |
| B 级(官方数据卡) | Stanford AIMI 数据集页、Redivis 数据集页 | 获取流程、DOI、许可条款 |
| C 级(二手转述) | 搜索引擎摘要、第三方镜像站 | 仅用于交叉印证,不作为唯一依据 |
双口径原则:凡论文内部存在数字冲突(如正文 223,228 与 Table 1 的 223,462),本页全文并存两套数字并显式标注出处,不做人为取舍。这一原则贯穿 §2、§3、§4 各节。
§0.2 与库内经典 CheXpert 条目的关系声明
千方病案医数集内已收录 经典 CheXpert(2019 年发布,库内 rid5,slug chexpert)。本条目 CheXpert Plus 是独立条目,不与 rid5 重复,理由如下:
- 同名但不同发布:CheXpert Plus 是 2024 年的第二代发布,有独立的论文、独立的 DOI、独立的获取入口、独立的版本号,属于「同一影像来源的两代发布」而非「同一数据集的两个别名」。
- 数据内容实质扩张:Plus 新增了报告文本、人口学属性、DICOM 元数据、CheXbert/RadGraph 标注与模型库 —— 这些在原版中完全不存在。
- 研究价值不重叠:原版支撑的是「胸片多标签分类」这条任务线;Plus 支撑的是「图文对齐 / 报告生成 / 多模态预训练」这条新任务线。两者的典型使用者、典型基准、典型坑点都不同。
- 非完全超集:Plus 并非原版的严格超集 —— 有 186 个原版 study 因报告无法找回而未进入 Plus(详见 §4.3)。因此不能简单用 Plus 取代原版条目。
互链义务:本条目在 §9 显式列出与 rid5 的对照表与互链建议;rid5 条目若未来更新,也应反向指向本条目。
§0.3 免责声明
- 本页不是临床决策工具。CheXpert Plus 为研究用途数据集,禁止用于任何直接临床诊断、治疗决策或患者管理。
- 本页涉及的基准数值均为论文报告值,未经本地复现;不同硬件、框架版本与随机种子下结果会有波动,比较时须核对口径。
- 本页所有下载链接均指向官方原始入口,千方病案医数集不托管、不分发、不镜像该数据集本体。
- 数据集许可为非商业研究用途协议,商业使用需另行取得 Stanford 授权。本页内容不构成任何法律意见。
- 涉及患者隐私:数据集虽已经过 PHI 脱敏(论文报告清除 853,878 处 PHI 片段),但自由文本报告天然存在再识别风险,使用者负有不再识别的合规义务。
§0.4 AI 参与声明
本页由 千方病案医数集 AI 写手代理 agent-d-chexpertpl 在人工设定的纪律包约束下撰写,全部硬数字经三源互证(论文原文 + 官方仓库 + 官方数据卡)。撰写过程与人工校验记录见 §10「AI 使用声明卡」。任何发现数字错误或有新版本发布的读者,请通过千方病案医数集站内渠道反馈。
§1 数据集速览:十问十答
§1.1 十问十答
Q1:CheXpert Plus 到底是什么?
一句话:经典 CheXpert 的「图文增强版」。它保留原版全部胸片,并为其中 187,711 份胸片配上了它们对应的放射科报告原文,同时补充了患者年龄、性别、种族等人口学字段与 DICOM 采集参数。原版只有「图 + 14 个病征标签」,Plus 变成「图 + 报告文本 + 元数据 + 结构化标签」。
Q2:它和经典 CheXpert(库内 rid5)是同一个东西吗?
不是。同一个影像来源,两代发布。原版 2019 年发布于 NeurIPS 相关会议语境,Plus 2024 年发布于 arXiv。两者有不同的论文、不同的 DOI、不同的下载入口、不同的数据内容。Plus 是本库中的一个独立条目。详见 §4 的完整划界讨论。
Q3:首发论文是哪篇?
Chambon P, Delbrouck J-B, Sounack T, Huang S-C, Chen Z, Varma M, Truong SQH, Chu K, Langlotz CP. CheXpert Plus: Augmenting a Large Chest X-ray Dataset with Text and Patient Metadata. arXiv:2405.19538。v1 提交于 2024-05-29,v2 修订于 2024-06-03。全文 13 页,分类号 cs.CL / cs.AI / cs.CV / cs.LG。
Q4:谁做的?
Stanford AIMI(斯坦福大学医学与影像人工智能中心)主导,VinBrain(越南河内的一家医疗 AI 公司,后被 NVIDIA 收购)参与。作者共 9 人,Pierre Chambon 与 Jean-Benoit Delbrouck 并列第一作者,Curtis P. Langlotz 为末位通讯作者。
Q5:有多少数据?
论文正文口径:223,228 张正位胸片、64,725 名患者、187,711 份报告。
论文 Table 1 口径:223,462 张、64,540 名患者。
两套数字并存,本页不做取舍。详见 §2.1。
Q6:图像本身有变化吗?
有。除了沿用原版 320×320 的 PNG 裁剪图,Plus 重新提供了 DICOM 原始格式(保留完整灰度位深与 47 项采集元数据)与原始分辨率的 JPG。这使得研究者首次可以在 CheXpert 上做需要原始动态范围或采集参数的实验(如窗宽窗位研究、设备偏差分析)。
Q7:所谓的「标注」有哪些?
四类:
- 原版 14 类病征标签(CheXpert labeler 产出的 0/1/空白/U 四值制);
- CheXbert 标签 —— 用 BERT 模型对报告文本重新抽取的 14 类标签;
- RadGraph 图标注 —— 把 Findings 与 Impression 解析成实体-关系图;
- 人口学属性 8 项 —— 年龄、性别、种族、民族、保险类型等。
Q8:能用来干什么?
三大应用场景:
- 放射报告生成(image → text);
- 图文对齐 / 多模态预训练(CLIP 式对比学习、视觉-语言基础模型);
- 结构化信息抽取研究(CheXbert / RadGraph 的评测与改进)。
Q9:最大的坑是什么?
报告文本是自由文本,不是标注。 很多新手直接把它当作 ground truth 训练生成模型,却忽略了:报告由不同放射科医师撰写、风格不一、含模板套话、且大量报告并未提及胸片上的所有病征(“no mention” 不等于 “negative”)。详见 §6.5 坑点清单。
Q10:怎么拿到?
在 Stanford AIMI 门户注册 → 签署 Stanford University Dataset Research Use Agreement → 下载。不提供公开直链,需人工审核。也可通过 Redivis 平台以云表形式访问(DOI 10.57761/fzna-pm76)。
§1.2 战略价值分析:为什么值得一个独立条目
在千方病案医数集已收录 rid5 经典 CheXpert 的前提下,再收录 Plus 的价值有三:
(一)它标志着胸部 X 光研究范式的切换。
2019 年的 CheXpert 代表的是「大规模弱监督分类」范式 —— 用自动标签器从报告里抽 14 个标签,然后训练分类器。2024 年的 Plus 代表的是「多模态生成与对齐」范式 —— 不再把报告压扁成标签,而是把报告原文直接作为监督信号。两种范式对应完全不同的模型架构(CNN 分类器 vs. 视觉-语言模型),对应完全不同的评测指标(AUC vs. BLEU/ROUGE/RadGraph-F1)。收录 Plus,就是收录这一次范式切换的基础设施。
(二)它补上了原版最被诟病的短板。
经典 CheXpert 长期被批评的一点是「有图无文」:它只给标签,不给报告,导致研究者无法做报告生成、无法做图文对比、无法审计标签器的抽取错误。Plus 直接补上了报告原文与两套结构化标注(CheXbert、RadGraph),使得对标签器本身的审计第一次成为可能 —— 你可以在原始报告、CheXbert 输出、RadGraph 图三者之间做交叉验证。
(三)它提供了罕见的「同源双代」对照样本。
两个数据集共用同一批影像、同一家医院、同一时间段。这意味着研究者可以做严格控制变量的对照实验:在完全相同的数据划分上,比较「用标签训练」与「用报告文本训练」的效果差异。这种「同源双代」结构在公开医学数据集中相当罕见,本身就是一个研究资产。
§1.3 同类数据集横向对比(摘要版)
下表为 CheXpert Plus 与主要同类胸部 X 光图文资源的概览对照。完整的 10 数据集详细对照见 §8.3。
| 数据集 | 年份 | 图像数 | 报告文本 | 人口学 | DICOM 原始 | 许可 |
|---|---|---|---|---|---|---|
| CheXpert Plus | 2024 | 223,462 | ✅ 187,711 份 | ✅ 8 项 | ✅ | 研究协议 |
| CheXpert(原版) | 2019 | 224,316 | ❌ | ❌ | ❌ | 研究协议 |
| MIMIC-CXR | 2019 | 377,110 | ✅ 227,835 份 | 部分 | ❌ | 物理学家认证 |
| NIH ChestX-ray14 | 2017 | 112,120 | ❌ | ❌ | ❌ | 公开 |
| PadChest | 2020 | 160,868 | ✅ 西语报告 | 部分 | ❌ | 公开 |
| OpenI | 2015 | 7,470 | ✅ | ❌ | ❌ | 公开 |
| VinDr-CXR | 2020 | 18,000 | ❌ | ❌ | ✅ | 公开 |
| BRAX | 2022 | 40,967 | ❌ | ❌ | ✅ | 公开 |
读数:CheXpert Plus 在「图像规模 + 报告文本 + 人口学 + DICOM 原始」这四个维度上同时齐备,这是它在同类中的独特卖点。MIMIC-CXR 图像更多、报告更多,但不提供 DICOM 原始格式的完整元数据与这 8 项人口学属性,且获取门槛更高(需 PhysioNet 认证培训)。
§1.4 版本演进时间轴
| 时间 | 事件 | 证据等级 |
|---|---|---|
| 2017 | NIH 发布 ChestX-ray14,开启胸部 X 光大规模公开数据集时代 | A |
| 2019-01 | 经典 CheXpert 发布(Irvin et al., AAAI 2019),224,316 张图 + 14 类标签 | A |
| 2019-01 | MIMIC-CXR 发布(Johnson et al.),377,110 张图 + 227,835 份报告 | A |
| 2021 | RadGraph 发布,提出实体-关系图标注体系 | A |
| 2024-05-29 | CheXpert Plus arXiv v1 提交 | A |
| 2024-06-03 | CheXpert Plus arXiv v2 修订(当前版本) | A |
| 2024 年内 | 官方 GitHub 仓库 Stanford-AIMI/chexpert-plus 上线,附带 Model Zoo |
A |
| 2024 年内 | Redivis 数据集页上线(DOI 10.57761/fzna-pm76) | B |
| 2026-09-30 | 本条目撰写(数据截至 arXiv v2) | — |
待核提示:Plus 的精确公开首发日存在双口径。arXiv v1 时间戳为 2024-05-29,但 Stanford AIMI 官方数据卡的「发布日期」字段在部分镜像中显示为 2024 年 5 月内更早的日期。本页采用 arXiv v1 时间戳作为可验证锚点,并在 §9 存照。
§1.5 典型 AI 应用场景
场景一:放射报告生成(Radiology Report Generation)
输入胸片,输出 Findings / Impression 文本。这是 Plus 最直接的应用。论文提供的 Model Zoo 中包含若干可复现的基线。评测通常用 BLEU-4、ROUGE-L、METEOR、CIDEr 以及更临床相关的 RadGraph-F1、CheXbert-F1。
场景二:多模态预训练与图文对齐
用对比学习(CLIP 式)或生成式预训练(如 VQ-GAN + 语言模型),在 223,462 张图与 187,711 份报告之间学习联合表示。Plus 论文的 Model Zoo 明确给出了 LLaMA、CLIP、VQ-GAN、DINOv2 四条技术路线。
场景三:结构化信息抽取与标签器审计
在报告原文之上评测 CheXbert、RadGraph 等抽取工具。由于 Plus 同时提供原始报告、CheXbert 输出与 RadGraph 图,研究者在同一份样本上可以得到三种表示,非常适合做抽取器的错误分析与改进。
场景四(次要):公平性审计
8 项人口学属性的存在,使得按年龄、性别、种族、保险类型分层评估模型性能成为可能。这在原版 CheXpert 上是做不了的(原版仅提供极有限的元数据)。
场景五(次要):采集参数研究
47 项 DICOM 元数据(含设备厂商、管电压、曝光参数、体位等)使「影像采集偏差对模型性能的影响」这类研究成为可能。
§2 数据构成与规格
§2.0 版本抉择矩阵
进入 CheXpert 生态前,首先要回答一个问题:我该用原版还是 Plus?
| 你的任务 | 推荐 | 理由 |
|---|---|---|
| 胸片 14 类多标签分类(延续 2019 基线) | 原版 | 原版样本更全(多 186 个 study),且社区基线全部基于原版划分 |
| 放射报告生成 | Plus | 原版无报告文本 |
| 图文对比预训练 | Plus | 原版无报告文本 |
| 标签器(CheXbert/RadGraph)评测 | Plus | 需要原始报告作为参照 |
| 采集参数 / 设备偏差分析 | Plus | 原版无 DICOM 元数据 |
| 人口学公平性分析 | Plus | 原版无人口学字段 |
| 需要严格复现某篇 2019–2023 年论文 | 原版 | 划分与样本清单须与原文一致 |
| 需要最大规模胸片分类预训练 | MIMIC-CXR 或 两库合并 | 注意许可与去重 |
关键提醒:原版与 Plus 共享同一批患者。若同时使用两个数据集,必须做患者级去重,否则会造成训练/测试泄漏。Plus 论文明确说明有 186 个原版 study 未进入 Plus(详见 §4.3)。
§2.1 数据规模:三组双口径存照
CheXpert Plus 论文内部存在多处数字不一致。按「双口径存照」原则,全部并列记录:
双口径 #1 —— 图像总数
| 口径 | 数值 | 出处 |
|---|---|---|
| 正文描述 | 223,228 | arXiv v2 正文 |
| Table 1 汇总 | 223,462 | arXiv v2 Table 1 |
差值 234 张。本页在正文叙述时优先采用正文口径 223,228,但在引用 Table 1 横向对照时使用 223,462。读者引用时必须标明来源。
双口径 #2 —— 患者数
| 口径 | 数值 | 出处 |
|---|---|---|
| 正文描述 | 64,725 | arXiv v2 正文 |
| Table 1 汇总 | 64,540 | arXiv v2 Table 1 |
差值 185 人。
双口径 #3 —— 原版 CheXpert 的规模
在 Plus 论文用于对照时,原版 CheXpert 的规模也出现了两套表述:
| 口径 | 图像数 | 患者数 | 出处 |
|---|---|---|---|
| Plus 论文正文转述 | 224,316 | 65,240 | arXiv v2 正文 |
| Plus 论文 Table 1 | 223,414 | 64,540 | arXiv v2 Table 1 |
而原版 CheXpert 论文(Irvin et al. 2019)自身报告的官方数字是 224,316 张图 / 65,240 名患者。因此「223,414 / 64,540」这一组更可能是 Plus 论文在构建 Table 1 时的重新统计口径(例如仅统计进入 Plus 流程的部分),而非原版官方数字。
存照结论:引用 CheXpert 相关数字时,必须注明三个要素 —— 数据来源(正文/Table 1/原版论文)、版本(v1/v2)、年份。仅写「CheXpert 有 22 万张图」是不合格的引用。
§2.2 报告文本规模:token 级硬数字
Plus 论文对报告文本做了详细的分段 token 统计(Table 2)。这是理解「报告文本有多长、Findings 与 Impression 的比例关系」的关键数据。
| 报告子段 | token 总数 | 说明 |
|---|---|---|
| 全部报告合计 | 36,469,132 | full-report token 总量 |
| Impression 合计 | 13,351,758 | 印象段 token 量 |
| 单个报告最多子段数 | 11 | 部分报告按模板拆成多达 11 个 section |
读数:
- 全量报告约 3,647 万 token,Impression 约占 36.6%(13,351,758 / 36,469,132)。这意味着 Findings 段承载了报告的大部分文字量。
- 若以 187,711 份报告平均,每份报告约 194 个 token。这一长度远短于通用 NLP 语料,说明放射报告是高度压缩、术语密集的文本类型,通用语言模型直接套用效果未必好。
- 「最多 11 个报告子段」提示:CheXpert 的报告结构不统一。有的报告只有 Findings + Impression 两段,有的有 11 个 section。预处理时必须做 section 归并,否则字段会稀疏化。
注意:论文未在摘要级位置复述这些 token 数字,它们出现在 Table 2。引用时应注明「Table 2」。
§2.3 模态详情
CheXpert Plus 是多模态资源,含四类模态:
(1)图像模态
| 属性 | 内容 |
|---|---|
| 摄影方式 | 胸部 X 线摄影,主要为正位(PA/AP) |
| 体位 | 大多数为 PA(后前位)或 AP(前后位);侧位片数量有限 |
| 原始格式 | DICOM(Plus 新增,保留完整位深与元数据) |
| 派生格式 1 | PNG 8-bit,320×320(沿用原版 CheXpert 的裁剪图) |
| 派生格式 2 | JPG 原始分辨率(Plus 新增) |
| 位深 | DICOM 原始为 8-bit / 16-bit 不等;PNG 为 8-bit 灰度 |
| 颜色空间 | 灰度 |
为什么 DICOM 很重要? 原版 CheXpert 长期只提供 320×320 的 8-bit PNG,这意味着:(a)原始动态范围被压缩,窗宽窗位信息丢失;(b)无法做需要原始灰度级的研究;(c)无法获取采集参数。Plus 补上 DICOM 后,这三类研究第一次成为可能。
(2)文本模态
- Findings 段:放射科医师对影像所见的事实性描述。
- Impression 段:对 Findings 的归纳与临床印象,通常更短、更结论化。
- 两段是分离存储的独立字段(
section_findings与section_impression),不是拼接的单一文本。 - 语言:英语。
- 撰写者:斯坦福的放射科医师群体(非单一标注者),风格不统一。
(3)结构化标签模态
- CheXpert 原始 14 类标签(0/1/空白/U 四值制)
- CheXbert 标签(BERT 模型从报告抽取的 14 类标签)
- RadGraph 图标注(实体 + 关系)
(4)元数据模态
- 人口学 8 项:年龄、性别、种族、民族、保险类型等
- DICOM 47 项:设备厂商、管电压、曝光参数、体位、像素间距等
§2.4 目录结构与文件组织
Plus 的数据包大致组织如下(实际结构以官方下载包为准,此处为逻辑结构):
chexpert_plus/
├── CheXpert_Plus_reports.csv # 主表:图文配对 + 报告文本 + 元数据
├── dicom_metadata.csv # 47 项 DICOM 采集参数
├── demographics.csv # 8 项人口学属性
├── chexbert_labels.csv # CheXbert 抽取的 14 类标签
├── radgraph_annotations/ # RadGraph 图标注(JSON)
│ ├── findings/
│ └── impression/
├── images/
│ ├── dicom/ # DICOM 原始格式
│ ├── png_320/ # 320×320 8-bit PNG(沿用原版)
│ └── jpg_original/ # 原始分辨率 JPG
└── splits/
├── train.csv
├── valid.csv
└── test.csv
重要:不同批次下载包的具体文件名可能不同。永远以官方 README 与实际下载内容为准,不要硬编码路径。详见 §6.5 坑点 2。
§2.5 数据划分
官方划分:CheXpert Plus 沿用原版 CheXpert 的患者级不重叠划分思路,并在此基础上做了文本侧的适配。
- 划分粒度:患者级(patient-level),同一患者的多次检查不会跨越 train/valid/test。
- 划分比例:大致沿用原版的 train / valid / test 三分,具体患者与图像数见官方
splits/目录。 - 为何必须患者级:胸部 X 光患者常有多次随访,若按图像随机划分,同一患者的相似影像会同时出现在训练与测试集,导致严重的乐观偏差。
社区惯例:多数 2019–2023 年的 CheXpert 基线使用原版的官方划分。使用 Plus 做报告生成时,社区通常复用同一批 test 患者以保证可比性。若你的目标是「与某篇原版论文可比」,请务必与原文的划分清单对齐。
泄漏风险清单:
- 跨数据集泄漏:原版与 Plus 共享患者。若混用必须患者级去重。
- 报告模板泄漏:同一医师的模板句式会重复出现在 train/test,生成模型可能「背模板」而非「看影像」。
- 同一 study 多图泄漏:一个 study 可能含多个体位图,须按 study 聚合划分。
- 标签器泄漏:CheXbert 标签由模型产出,若你的测试集报告也参与过 CheXbert 的训练语料评估,需核实。
§2.6 存储大小概要
| 内容 | 估计体积 | 备注 |
|---|---|---|
| DICOM 原始图像 | 数十 GB 量级 | 未压缩时显著更大 |
| PNG 320×320 | 数 GB | 沿用原版裁剪图 |
| JPG 原始分辨率 | 数十 GB 量级 | 有损压缩 |
| 报告文本 CSV | 数百 MB | 3,647 万 token 文本 |
| RadGraph 标注 JSON | 数 GB | 实体-关系图 |
硬件建议见 §6.8(按任务分级给出显存与存储需求)。
§3 注释与标注流水线
§3.1 四层标注体系总览
CheXpert Plus 的「标注」不是单一来源,而是四层叠加的结构。理解每一层的产出者、方法与局限,是正确使用该数据集的前提。
| 层级 | 标注内容 | 产出方式 | 覆盖范围 | 主要局限 |
|---|---|---|---|---|
| L1 原版标签 | 14 类胸片病征 | CheXpert labeler(规则 + 词典) | 原版全部图像 | 规则脆弱,对否定/不确定表达敏感 |
| L2 CheXbert 标签 | 14 类胸片病征 | BERT 多标签分类头 | 有报告文本的图像 | 继承 BERT 预训练偏差;512 token 截断 |
| L3 RadGraph 图标注 | 实体 + 关系 | 基于 RadGraph 的序列标注+关系抽取 | Findings / Impression 分段 | 图结构复杂;实体边界判定有噪声 |
| L4 元数据 | 人口学 8 项 + DICOM 47 项 | 电子病历字段 + DICOM 头解析 | 大部分图像 | 人口学依赖登记准确性;部分字段缺失 |
关键认知:L1 与 L2 是同一批 14 类标签的两种独立产出。这让你可以在同一图像上比较「规则标签器」与「模型标签器」的差异,这正是 Plus 对社区的独特贡献之一。
§3.2 L1:原版 CheXpert 标签器与四值制
原版 CheXpert 的标签器输出的不是二值标签,而是四值制:
| 取值 | 含义 | 典型触发词 |
|---|---|---|
| 1(阳性) | 报告中明确提及该病征存在 | “there is a large pleural effusion” |
| 0(阴性) | 报告中明确否认该病征 | “no pneumothorax” |
| 空白(未提及) | 报告未提及该病征 | 报告中无相关表述 |
| U(不确定) | 报告中表述含糊 | “possible”, “may represent”, “cannot exclude” |
14 类病征标签清单(含"其他"类):
- No Finding(无异常)
- Enlarged Cardiomediastinum(纵隔增宽)
- Cardiomegaly(心影增大)
- Lung Opacity(肺不透明影)
- Lung Lesion(肺病灶)
- Edema(肺水肿)
- Consolidation(实变)
- Pneumonia(肺炎)
- Atelectasis(肺不张)
- Pneumothorax(气胸)
- Pleural Effusion(胸腔积液)
- Pleural Other(其他胸膜病变)
- Fracture(骨折)
- Support Devices(支持装置,如导管、起搏器)
四值制的处理惯例(社区共识):
- U-Ones 策略:把 U 当作阳性(1)。适合敏感性优先的筛查场景。
- U-Zeros 策略:把 U 当作阴性(0)。适合特异性优先场景。
- U-Ignore 策略:把 U 标记为忽略,损失函数中屏蔽。
- 空白值处理:通常当作阴性或忽略,两种做法都有论文支持,必须与目标基线对齐。
坑点预警:“No Finding” 与其余 13 类不是互斥关系。一份报告可以同时标为 Pleural Effusion = 1 且 No Finding = 0。新手常误把 No Finding 当"多分类"的其中一类,导致标签张量维度错误。
§3.3 L2:CheXbert 与五种输入口径
CheXbert 是一个在 CheXpert 报告上微调的 BERT 模型,输出同样的 14 类标签。它的价值在于:它读原始报告文本,而不是读规则。
关键设计点 —— 五种输入口径:由于放射报告结构不统一,CheXbert 的原始实现提供了多种「喂什么给模型」的选择:
| 口径 | 输入内容 | 说明 |
|---|---|---|
| 1 | Findings 单段 | 只看所见段 |
| 2 | Impression 单段 | 只看印象段 |
| 3 | Findings + Impression 拼接 | 两段合并 |
| 4 | 全部 section 拼接 | 含其他子段 |
| 5 | 全报告 + 特殊处理 | 论文中报告的最优/推荐口径 |
为什么口径重要? 因为 Findings 与 Impression 的信息量不同。论文 Table 4 的人工评测显示,在图像测试集上,CheXbert 用 Findings 输入时 F1 达 0.44 为最优;而在文本测试集上,用 Impression 输入时 F1 达 0.93 为最优。这说明:没有一个口径在所有场景都是最优的,必须按任务选择。
512 token 上限:CheXbert 基于 BERT,输入上限 512 token。约 194 token 的典型报告远未触顶,但多子段拼接后可能超限,超限部分会被截断 —— 这是静默的错误源。必须在预处理时显式检查并记录截断率。
§3.4 L3:RadGraph 图标注的规模
RadGraph 把报告文本解析为 实体(Entities)+ 关系(Relations) 的图结构。Plus 论文报告了 Findings 与 Impression 两段的完整统计。
Entities(实体)统计:
| 报告段 | 实体数 |
|---|---|
| Findings | 1,581,863 |
| Impression | 3,999,559 |
| 合计 | 5,581,422 |
Relations(关系)统计:
| 报告段 | 关系数 |
|---|---|
| Findings | 1,106,659 |
| Impression | 2,772,337 |
| 合计 | 3,878,996 |
读数与反常:
反常点:Impression 的实体数(3,999,559)是 Findings(1,581,863)的 2.5 倍,关系数(2,772,337)是 Findings(1,106,659)的 2.5 倍。但从 token 量看,Impression 反而少于 Findings(13,351,758 < 36,469,132,约 1/3)。
如何解释? 两种可能:
- 统计口径不同:RadGraph 标注可能在 Impression 段做了更细的切分或重复计数(例如同一报告的不同 section 归入 Impression 类)。
- 文本密度差异:Impression 段更短更结论化,单位 token 内实体密度更高(“Moderate pleural effusion” 一句含 2 个实体 + 1 个关系,而 Findings 段常有大段描述性铺垫)。
存照:本页记录这一反常,但不强行归因。使用 RadGraph 标注做训练时,应自行核对 Impression 段的实体计数逻辑,避免因口径误解导致类别权重失衡。
§3.5 L4:人口学属性(8 项)
Plus 新增的人口学字段共 8 项,来自电子病历登记系统:
- 年龄(Age)
- 性别(Gender)
- 种族(Race)
- 民族(Ethnicity)
- 保险类型(Insurance Type)
- 及另外 3 项登记属性(以官方字段字典为准)
使用警告:
- 这些字段不是为公平性研究专门采集的,而是病历登记的副产品。用它们做偏差分析时,须注意登记质量与缺失模式本身可能带偏差。
- 保险类型在美国语境下与社会经济地位强相关,但不可直接当作收入代理变量使用。
- 种族/民族字段的类别定义随机构与年代变化,跨机构比较需谨慎。
§3.6 标注者资质与一致性
重要事实:CheXpert Plus 的报告文本不是「标注」,而是临床工作产物。
- 报告由斯坦福的执业放射科医师在日常临床工作中撰写,不是为数据集专门标注。
- 因此没有标注者间一致性(inter-rater agreement)指标 —— 因为本质上不存在「多个标注者对同一张图独立标注」的过程。
- 每份报告的作者(医师)身份未公开,无法按标注者做分层分析。
这一点的深远影响是:任何在 CheXpert 报告上训练的生成模型,学到的都是「斯坦福放射科医师群体在 2002–2017 年间的报告写作风格」,而不是一个客观的影像描述标准。跨机构迁移时性能下降是预期内的。
§3.7 Model Zoo:官方提供的模型库
Plus 论文与官方仓库提供了一套 Model Zoo,覆盖四条技术路线,这是它区别于普通数据集的关键:
| 路线 | 基础模型 | 用途 | 备注 |
|---|---|---|---|
| 生成式 | LLaMA | 报告生成 / 语言建模 | 用放射报告文本微调的语言模型 |
| 对比式 | CLIP | 图文对齐 | 图像编码器 + 文本编码器对比学习 |
| 离散表征 | VQ-GAN | 图像离散 token 化 | 为自回归生成提供视觉词表 |
| 自监督 | DINOv2 | 视觉特征提取 | 强视觉骨干,可作下游特征源 |
两个关键评测指标的缩写:
- RRG(RadGraph Reward / RadGraph-based Generation metric):基于 RadGraph 图结构的生成质量度量,比 n-gram 指标更贴近临床正确性。
- RRS(RadGraph Reward Score):与 RRG 配套的综合评分。
实用建议:如果你的目标是「报告生成」,不要只看 BLEU。BLEU 高的模型可能生成语法通顺但临床错误的报告。务必同时报告 RadGraph-F1 或 RRG。详见 §8.4 评测协议。
§3.8 PHI 脱敏流水线
论文报告的核心数字:全流程共检测并移除 853,878 处 PHI 片段(Protected Health Information spans)。
脱敏针对的对象:
- 报告文本中的姓名、日期、机构名、病历号等直接标识符;
- DICOM 头中的患者标识字段。
脱敏的局限(必须知晓):
- 自动化 PHI 清除不可能做到 100%。853,878 是「检测到并处理」的数量,无法证明「不存在漏检」。
- 自由文本的再识别风险本质存在:即使标出了直接标识符,罕见证型 + 年龄 + 性别的组合仍可能定位到个体。
- 使用时不得尝试再识别,这是研究用途协议的明文要求。
§3.9 标注流水线全景图
临床 PACS(2002–2017 斯坦福胸片)
├── 图像侧:正位片筛选 → DICOM 原始 | 裁剪缩放 → PNG 320×320
│ | 格式转换 → JPG 原始分辨率 | DICOM 头解析 → 47 项元数据
└── 报告侧:报告检索 → 187,711 份
├── section 切分 → Findings / Impression(最多 11 子段)
├── PHI 脱敏(853,878 处)→ 去标识文本
├── CheXpert labeler → L1 四值标签
├── CheXbert(5 种输入口径)→ L2 标签
└── RadGraph → L3 实体-关系图
电子病历登记 → 8 项人口学属性(L4)
图文配对(按 study / image 路径)→ CheXpert_Plus 主表
划分(患者级不重叠)→ train / valid / test
流水线中的三个静默失败点:
- 图文配对失败:部分图像找不到对应报告(186 个 study 的报告无法找回,见 §4.3),这些样本要么被剔除要么报告字段为空。
- section 切分失败:报告结构不统一,自动化切分可能把本属 Findings 的内容划入其他段,或因模板变体而丢段。
- PHI 脱敏过度/不足:过度脱敏会破坏临床语义(如把数值日期误删导致时间线断裂);不足则留下隐私风险。
§4 与原版 CheXpert 的划界:一份完整的比较
§4.1 核心差异一览表
这是本条目存在的最重要理由。下表逐字段对照两代发布:
| 维度 | 经典 CheXpert(2019,库内 rid5) | CheXpert Plus(2024,本条目) |
|---|---|---|
| 图像数 | 224,316(原版官方) | 223,462(Table 1)/223,228(正文) |
| 患者数 | 65,240(原版官方) | 64,725(正文)/64,540(Table 1) |
| 报告文本 | ❌ 完全缺失 | ✅ 187,711 份(Findings / Impression 分段) |
| 人口学属性 | ❌ 仅极有限 | ✅ 8 项(年龄、性别、种族、民族、保险等) |
| 图像格式 | 320×320 PNG(8-bit) | ✅ DICOM 原始 + PNG + JPG 原始分辨率 |
| DICOM 元数据 | ❌ | ✅ 47 项(设备、管电压、曝光、像素间距等) |
| L1 病征标签 | ✅ 14 类四值制(CheXpert labeler) | ✅ 继承同一套 |
| L2 结构化标签 | ❌ | ✅ CheXbert 标签(5 种输入口径) |
| L3 图结构标注 | ❌ | ✅ RadGraph(实体 558 万 / 关系 388 万) |
| 配套模型 | 无官方 Model Zoo | ✅ LLaMA / CLIP / VQ-GAN / DINOv2 四路线 |
| 任务定位 | 多标签图像分类 | 图文对齐 / 报告生成 / 多模态预训练 |
| 主指标 | AUC / F1(分类) | BLEU / ROUGE / RadGraph-F1(生成 + 图) |
| 论文 | Irvin et al., AAAI 2019 | Chambon et al., arXiv:2405.19538, 2024 |
| DOI | —(会议论文) | 10.48550/arXiv.2405.19538 |
| 样本完整性 | 全量 224,316 | 少 186 个 study(报告无法找回) |
§4.2 新增了什么:三句话概括
- 文本侧新增:187,711 份放射报告自由文本 + CheXbert 结构化标签 + RadGraph 图标注。
- 元数据侧新增:8 项人口学属性 + 47 项 DICOM 采集参数 + DICOM 原始格式图像。
- 工具侧新增:官方 Model Zoo(四条技术路线)+ 可复现基准代码。
§4.3 缺了什么:186 个 study 的缺口
这是 Plus 相对原版唯一的「减项」,也是本页反复强调的要点。
Plus 论文明确说明:有 186 个原版 CheXpert 的 study 未进入 Plus 版本,原因是这些 study 对应的放射报告已无法从临床系统中找回(either not available or not retrievable)。
为什么这很重要?
- Plus 不是原版的严格超集。 如果你需要「CheXpert 全量图像」,原版仍是唯一选择。
- 两个数据集的划分不可互换。 原版论文报告的 AUC 是在包含这 186 个 study 的测试集上算的;Plus 上重跑会得到不可比的数字。
- 患者级去重的必要性。 使用两库时,这 186 个 study 对应患者的其他 study 可能仍在 Plus 中,患者身份仍然重叠。
实务结论:任何声称「在 CheXpert 上得到 X 结果」的论文,都必须在方法节写清用的是原版还是 Plus、用哪一版的划分。含糊表述是不可复现的。
§4.4 为何值得独立条目:三点论证
论证一:数据资产不可互替。
Plus 的 187,711 份报告与 47 项 DICOM 元数据在原版中根本不存在,这是新增资产而非原版的重命名。收录 Plus 不等于重复收录原版。
论证二:研究任务不可互替。
原版支撑的任务是分类(图像 → 14 个标量);Plus 支撑的任务是生成与对齐(图像 ↔ 长文本)。两者的模型架构、训练目标、评测协议、典型失败模式全部不同。一个条目无法同时承载两套任务说明。
论证三:历史节点不同。
原版是 2019 年「大规模弱监督」范式的基础设施;Plus 是 2024 年「多模态生成」范式的基础设施。它们标记了 Chest X-ray AI 研究的两个不同阶段。 从百科的角度,二者应各有条目、互相链接,而不是合并。
§4.5 共享同一批患者的实证含义
两个数据集的患者高度重叠(Plus 是原版的子集性扩张,去掉 186 个 study)。三条必须遵守的实务规则:
- 禁止无去重混用:直接
concat会让同一患者的图重复进入训练集,产生虚假高性能。正确做法是以患者 ID(或 study ID + 路径指纹作代理)做患者级去重后再划分。 - 跨数据集验证必须去重:用原版训练、Plus 测试(或反之)时,必须先剔除测试集中出现在训练集的患者。
- 186 个缺失 study 的患者不会「消失」:若这些患者的其他 study 仍在 Plus 中,身份仍重叠;若全部 study 都因报告缺失被剔除,该患者从 Plus 消失,形成报告可得性选择偏差(report-availability bias)。
去重与泄漏检查的完整代码见 §5.3。
§4.6 论文自曝的局限性
CheXpert Plus 论文在讨论节主动列出的 7 条局限:
- 单中心限制:全部来自斯坦福一家机构,不具跨机构代表性;
- 时间跨度老:采集于 2002–2017 年,与当代影像存在域偏移;
- 报告文本的固有局限:(a)非为研究采集,无一致性指标;(b)“未提及” ≠ “阴性”;(c)反映单一机构的报告风格与模板;
- 报告缺失:186 个 study 的报告无法找回,Plus 不是原版的完全超集;
- 标签器继承误差:CheXbert 与 RadGraph 的输出继承上游模型的错误分布,不能当金标准;
- PHI 脱敏的残余风险:自动化脱敏无法证明 100% 覆盖;
- 人口学字段的用途限制:原为登记副产品,非为公平性研究设计。
对使用者的忠告:这 7 条不是免责套话,而是具体的技术风险。任何基于 Plus 的结论若要外推到其他医院、国家或年代,都必须显式论证域偏移的影响。
§5 数据划分与使用建议
§5.1 官方划分
CheXpert Plus 沿用原版 CheXpert 的患者级不重叠划分,并针对文本任务做了适配。
划分类别与内容:
| 划分 | 患者不重叠 | 内容 | 用途 |
|---|---|---|---|
| train | ✅ 患者级 | 主要训练样本 | 模型拟合 |
| valid | ✅ 患者级 | 验证样本 | 超参选择、早停 |
| test | ✅ 患者级 | 测试样本 | 最终报告(只能用一次) |
三条硬规则:
- 同一患者的多次检查只能出现在一个划分中。胸部 X 光随访常见,违反此规则会造成严重泄漏。
- 同一 study 的多个体位图必须同划分。一个 study 可能含正位 + 侧位,若拆开划分,同一检查的图会跨集泄漏。
- test 集只能用一次。反复用 test 调参等价于把 test 变成 valid,最终报告的数字失去意义。
§5.2 与任务对齐的划分选择
不同任务对划分的要求不同:
| 任务 | 推荐划分策略 | 理由 |
|---|---|---|
| 14 类病征分类 | 复用官方 train/valid/test | 与 2019 以来社区基线可比 |
| 报告生成 | 复用官方划分中的文本配对子集 | 保证图文对不跨集 |
| 图文对齐预训练 | train 全量;valid/test 保留官方 | 预训练可用 train+valid,但 test 必须干净 |
| 标签器评测 | 用 test 集的原始报告做金标准 | 避免用同批数据训练抽取器后再评自己 |
| 公平性审计 | 不改变划分,仅在 test 内分层统计 | 分层不改变划分才能与主结果对照 |
§5.3 泄漏风险清单与检查代码
四大泄漏源(按危害排序):
- 患者级泄漏(最严重):同一患者跨集。若划分不当,模型学到的是「这个患者长什么样」而非「这个病征长什么样」。
- 报告模板泄漏:同一医师的模板句式跨集重复,生成模型会「背模板」。
- study 级泄漏:同一检查的多张图跨集。
- 标签器泄漏:用 CheXbert 产出的标签训练另一个模型,又在同一批报告上评测该模型。
检查代码:
# ============================================================
# 泄漏自检:患者级 / study 级 / 报告指纹级
# 输入:train / valid / test 三个 DataFrame,至少含 patient_id 与 study_id
# ============================================================
import pandas as pd
def check_leakage(train, valid, test, key):
"""检查某键(patient_id / study_id)是否在划分间重叠"""
s_tr, s_va, s_te = set(train[key]), set(valid[key]), set(test[key])
print(f"[{key}] train={len(s_tr)} valid={len(s_va)} test={len(s_te)}")
print(f" train∩valid = {len(s_tr & s_va)}")
print(f" train∩test = {len(s_tr & s_te)}")
print(f" valid∩test = {len(s_va & s_te)}")
assert not (s_tr & s_te), f"严重泄漏:{key} 在 train 与 test 之间重叠"
assert not (s_tr & s_va), f"泄漏:{key} 在 train 与 valid 之间重叠"
# 用法
# check_leakage(train_df, valid_df, test_df, "patient_id")
# check_leakage(train_df, valid_df, test_df, "study_id")
def report_fingerprint_overlap(train, valid, test, text_col="section_impression"):
"""检测高度相似的报告(模板泄漏)跨集出现"""
def norm(s):
return " ".join(str(s).lower().split())
tr = set(norm(t) for t in train[text_col].dropna())
te = set(norm(t) for t in test[text_col].dropna())
dup = len(tr & te)
print(f"完全相同的报告文本跨 train/test 出现:{dup} 条")
if dup > 0:
print(" 提示:完全重复的报告多为模板套话,建议在预训练目标中降权")
# 用法
# report_fingerprint_overlap(train_df, valid_df, test_df)
运行后的处置:
- 若患者级重叠 > 0:必须重新划分,不能靠「样本少不影响」搪塞。
- 若报告指纹重复比例高(如 > 5%):考虑在生成任务中对重复模板降权,或改用近似去重(MinHash)。
- 若 study 级重叠 > 0:按 study 聚合重新划分。
§5.4 交叉验证建议
官方划分是单次切分。若你的样本某类极少(如 Fracture 阳性样本少),单次划分的方差会很大。建议:
- 分层 K 折:按 14 类标签的主要阳性类做分层,确保每折的阳性比例接近。
- 按患者分组:使用
GroupKFold,groups=patient_id,杜绝患者跨折。 - 重复多次:至少 3 次不同种子的重复,报告均值与标准差,而非单点。
- 报告方差:在论文中报告的应是「均值 ± 标准差」,而非「一次跑出来的最好数字」。
§5.5 外部验证建议
目标:证明模型的结论不是斯坦福这一家机构的特例。
| 验证类型 | 具体做法 | 预期结果 |
|---|---|---|
| 零样本跨域 | Plus 训练 → MIMIC-CXR 直接测试 | 性能明显下降,量化下降幅度 |
| 少样本微调 | Plus 预训练 → 目标集少量标注微调 | 通常能恢复大部分性能 |
| 报告中立性 | 视觉分支固定,只换目标机构的报告风格 | 生成文本的临床指标保持、语言指标下降 |
| 时间外推 | 2010 前训练 → 2015 后测试 | 量化设备/协议漂移的影响 |
报告规范:外部验证必须写明目标数据集、是否做去重、是否微调、以及指标口径是否与主实验一致。
§5.6 使用前的检查清单
在正式开跑前,逐项确认:
- [ ] 已签署 Stanford University Dataset Research Use Agreement
- [ ] 已确认使用场景为非商业研究用途
- [ ] 已核实当前使用的论文版本(v1 还是 v2)
- [ ] 已确认引用的是正文口径还是 Table 1 口径的数字
- [ ] 已完成患者级去重(若与原版 CheXpert 或 MIMIC-CXR 混用)
- [ ] 已运行 §5.3 的泄漏自检且全部通过
- [ ] 已确认测试集未被反复用于调参
- [ ] 已核实 CheXbert 输入的 token 截断率
- [ ] 已确认 U 值处理策略(U-Ones / U-Zeros / U-Ignore)并与基线一致
- [ ] 若做报告生成,已同时准备 n-gram 与临床指标(RadGraph-F1)
- [ ] 已披露 186 个 study 缺口对结论的潜在影响
§6 AI 就绪指南
§6.0 云端快速启动
CheXpert Plus 需要签署协议后下载,没有公开直链。因此云端快速启动的前提是:你已获得数据访问权限,并把数据放在可达位置(本地磁盘、私有对象存储或合规的云盘)。
推荐的三步流程:
- 申请:在 Stanford AIMI 门户注册账号并提交研究用途申请。
- 下载:签署协议后获取下载链接,按需选择格式(文本侧体积小,可先下文本跑通流程)。
- 本地/私有云处理:把数据放在有足够空间的存储上,按 §6.3 流程预处理。
§6.1 快速上手:最小可用示例
下面的示例演示「只取文本侧、跑通一个 CheXbert 风格的标签抽取基线」,不需要下载图像即可验证流水线。
# ============================================================
# 最小可用示例:从 CheXpert Plus 报告中抽取 14 类标签
# 依赖:pip install pandas transformers torch
# 输入:CheXpert_Plus 主表 CSV(含 section_findings / section_impression)
# ============================================================
import pandas as pd
LABELS = [
"No Finding", "Enlarged Cardiomediastinum", "Cardiomegaly",
"Lung Opacity", "Lung Lesion", "Edema", "Consolidation",
"Pneumonia", "Atelectasis", "Pneumothorax", "Pleural Effusion",
"Pleural Other", "Fracture", "Support Devices",
]
# ---- 步骤 1:读取主表,只保留有报告的样本 ----
df = pd.read_csv("chexpert_plus/CheXpert_Plus_reports.csv")
df = df[df["section_findings"].notna() | df["section_impression"].notna()]
print(f"有报告文本的样本数:{len(df):,}")
# ---- 步骤 2:构造 CheXbert 输入(两种口径) ----
# 口径 A(图像测试集最优):仅 Findings | 口径 B(文本测试集最优):仅 Impression
df["text_findings"] = df["section_findings"].fillna("").astype(str)
df["text_impression"] = df["section_impression"].fillna("").astype(str)
# ---- 步骤 3:token 截断检查(关键!) ----
# BERT 上限 512 token;英文粗估 1 token ≈ 4 字符
for col in ["text_findings", "text_impression"]:
over = df[col].str.len() / 4.0 > 512
print(f"{col} 超 512 token 比例(粗估):{over.mean():.3%}")
# ---- 步骤 4:搭 BERT 多标签分类头(示意) ----
# 实际应使用官方微调权重,并把 LABELS 映射到输出维度
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained(
"bert-base-uncased", num_labels=len(LABELS),
problem_type="multi_label_classification")
enc = tokenizer(df["text_findings"].tolist()[:8], truncation=True,
max_length=512, padding=True, return_tensors="pt")
print("tokenized batch shape:", enc["input_ids"].shape)
这一步能验证:① 字段名与下载包一致;② 报告可用率(应接近 84%);③ token 截断规模;④ 标签维度为 14 类多标签而非多分类。
§6.2 数据获取
路径一:Stanford AIMI 官方门户(唯一权威渠道)
- 访问 aimi.stanford.edu/datasets/chexpert-plus;
- 注册并登录 AIMI 账号;
- 阅读并签署 Stanford University Dataset Research Use Agreement;
- 通过审核后获得下载链接。
路径二:Redivis 云表
- DOI:
10.57761/fzna-pm76 - 适合只想访问表格侧数据(报告文本、元数据、标签)的研究者,无需下载全部图像。
- 仍须遵守同一份研究用途协议。
路径三:GitHub 官方仓库(仅代码,非数据)
# 只取代码与基准脚本,不含数据本体
git clone https://github.com/Stanford-AIMI/chexpert-plus.git
cd chexpert-plus
# 请阅读 README 了解数据放置约定与运行示例
重要:CheXpert Plus 不在任何公开的通用数据集托管平台上提供直链下载。若你看到声称「免费直下」的镜像,其来源合法性存疑,且可能违反研究用途协议。请只使用官方渠道。
§6.3 预处理全流程
# ============================================================
# CheXpert Plus 预处理(文本侧 + 元数据侧)
# 依赖:pip install pandas numpy | 输入:官方包解压目录 data_root/
# 输出:processed/ 下的规范化表与标签张量
# ============================================================
import pandas as pd, numpy as np, os
DATA_ROOT, OUT_DIR = "chexpert_plus", "processed"
os.makedirs(OUT_DIR, exist_ok=True)
LABELS = [
"No Finding", "Enlarged Cardiomediastinum", "Cardiomegaly",
"Lung Opacity", "Lung Lesion", "Edema", "Consolidation",
"Pneumonia", "Atelectasis", "Pneumothorax", "Pleural Effusion",
"Pleural Other", "Fracture", "Support Devices",
]
# ---- 步骤 1:读取主表 ----
df = pd.read_csv(os.path.join(DATA_ROOT, "CheXpert_Plus_reports.csv"))
# ---- 步骤 2:报告文本规范化 ----
def clean_text(s):
return "" if pd.isna(s) else " ".join(str(s).split()) # 保留大小写(病例名有意义)
df["findings_clean"] = df["section_findings"].apply(clean_text)
df["impression_clean"] = df["section_impression"].apply(clean_text)
df["has_report"] = (df["findings_clean"] != "") | (df["impression_clean"] != "")
print(f"原始 {len(df):,};有报告文本 {df['has_report'].sum():,}")
# ---- 步骤 3:标签四值制 → 数值化 ----
# U-Ones: U->1(敏感性优先)|U-Zeros: U->0(特异性优先)|U-Ignore: U->NaN 屏蔽
def encode_labels(df, labels, u_strategy="U-Ones"):
mat = np.full((len(df), len(labels)), np.nan, dtype=np.float32)
for j, lab in enumerate(labels):
if lab not in df.columns:
continue
col = df[lab].astype(str).str.strip()
v = np.where(col == "1", 1.0, np.nan)
v = np.where(col == "0", 0.0, v)
if u_strategy == "U-Ones":
v = np.where(col == "-1", 1.0, v)
elif u_strategy == "U-Zeros":
v = np.where(col == "-1", 0.0, v)
mat[:, j] = v
return mat
label_mat = encode_labels(df, LABELS, "U-Ones")
print(f"标签矩阵 {label_mat.shape};缺失率 {np.isnan(label_mat).mean():.3%}")
# ---- 步骤 4:人口学字段缺失率 ----
for col in ["age", "gender", "race", "ethnicity", "insurance"]:
if col in df.columns:
print(f"{col}: 缺失率 {df[col].isna().mean():.2%}")
# ---- 步骤 5:导出 ----
df[["path_to_image", "findings_clean", "impression_clean", "has_report"]] \
.to_parquet(f"{OUT_DIR}/text.parquet", index=False)
np.save(f"{OUT_DIR}/labels.npy", label_mat)
五个必须检查的中间产物:
has_report为 True 的比例:应接近 187,711 / 223,462 ≈ 84%。若远低于此,说明字段名或合并逻辑有误。- 标签缺失率:14 类标签的空白率反映报告覆盖度,通常在较高区间。
- U 值占比:U 的比例直接影响策略选择的影响幅度。
- 文本长度分布:定位截断风险。
- 人口学缺失率:决定公平性分析的可信度。
§6.4 PyTorch DataLoader
# ============================================================
# 完整可运行 DataLoader(图文配对)
# 目录预期:data_root/images/png_320/... 与 processed/text.parquet
# 拼接关系:主表 path_to_image 与 png_320 下的相对路径一一对应。
# ⚠️ 先抽查 5 条确认路径前缀匹配,再批量加载。
# 最小可用子集:只取 has_report == True,约 18.7 万条。
# ============================================================
import os, pandas as pd, numpy as np, torch
from torch.utils.data import Dataset, DataLoader
from PIL import Image
from torchvision import transforms
class CheXpertPlusDataset(Dataset):
def __init__(self, table_path, image_root, transform=None,
text_field="findings_clean", label_matrix=None):
self.df = pd.read_parquet(table_path)
self.df = self.df[self.df["has_report"]].reset_index(drop=True)
self.image_root, self.transform = image_root, transform
self.text_field, self.label_mat = text_field, label_matrix
def __len__(self):
return len(self.df)
def __getitem__(self, idx):
row = self.df.iloc[idx]
rel = row["path_to_image"]
img = Image.open(os.path.join(self.image_root,
os.path.basename(rel))).convert("L")
if self.transform:
img = self.transform(img)
out = {"image": img, "text": row[self.text_field], "path": rel}
if self.label_mat is not None:
out["label"] = torch.tensor(self.label_mat[idx], dtype=torch.float32)
return out
# 图像变换:320x320 灰度,标准化到 [-1, 1]
train_tf = transforms.Compose([
transforms.Resize((320, 320)),
transforms.RandomHorizontalFlip(p=0.0), # ⚠️ 胸片左右有解剖意义,默认不翻转
transforms.ToTensor(),
transforms.Normalize(mean=[0.5], std=[0.5]),
])
ds = CheXpertPlusDataset("processed/text.parquet",
"chexpert_plus/images/png_320",
train_tf, label_matrix=np.load("processed/labels.npy"))
dl = DataLoader(ds, batch_size=32, shuffle=True, num_workers=4, pin_memory=True)
# 冒烟测试:取一个 batch 确认形状
batch = next(iter(dl))
print(batch["image"].shape, batch["label"].shape) # [32,1,320,320] [32,14]
print("text[0][:120]:", batch["text"][0][:120])
关键提示:胸部 X 光的左右方向有解剖意义(心脏在左侧)。
RandomHorizontalFlip在胸片任务中默认应关闭,除非你明确论证翻转在解剖上等价。这是胸片任务中最常见的增强错误。
§6.5 坑点清单
以下是使用 CheXpert Plus 时最常踩的坑,按「坑 N:」编号。每一条都对应真实的研究事故类型。
坑 1:把「报告未提及」当作「阴性」。
报告里没写 “pneumothorax” 并不意味着没有气胸,只能说明医师没提。原版 labeler 用「空白」表示未提及、用「0」表示明确否认,这一区分是刻意设计的。若你把空白当 0 训练,模型会学到大量假阴性监督。正确做法:显式选择 U 值/空白处理策略,并在论文中说明。
坑 2:硬编码文件路径与字段名。
不同下载批次的文件名、列名可能有差异(例如报告字段可能叫 section_findings 也可能有其他命名变体)。硬编码路径会导致代码在他人机器上直接崩溃。正确做法:先 df.columns 打印字段、先 os.listdir 确认目录结构,再写处理逻辑。
坑 3:不做患者级去重就与原版 CheXpert 混用。
两个数据集共享同一批患者。直接 concat 会让同一患者的图同时进入训练与测试,产生虚假的高性能。正确做法:见 §5.3 的 check_leakage。
坑 4:用 BLEU 作为报告生成的主指标。
BLEU 高的模型可以生成「语法完美但临床全错」的报告。例如把 “left pleural effusion” 写成 “right pleural effusion”,BLEU 只掉一点,但临床上左右搞反是严重错误。正确做法:必须同时报告 RadGraph-F1 或 CheXbert-F1。
坑 5:忽略 CheXbert 的 512 token 截断。
典型报告约 194 token,看似安全;但若你把多个 section 拼接后喂入,很容易超 512,而 transformers 默认静默截断,你会丢失报告尾部信息且毫无察觉。正确做法:显式统计截断率(见 §6.3 步骤 4),必要时分段或分层池化。
坑 6:把 CheXbert / RadGraph 的自动标签当人工金标准。
它们是模型产出,继承上游模型的误差分布。用它们评测你自己训练的抽取器,等于用「另一个不完美的模型」做裁判。正确做法:至少抽样做一次人工核验,并报告人工一致率。
坑 7:在胸片任务中随意使用水平翻转增强。
心脏位于左侧,翻转后的影像在解剖上是「右位心」,与标签对应的语义会发生冲突。正确做法:默认关闭水平翻转,或论证翻转的等变性后谨慎使用。
坑 8:只在一份划分上报告一次结果。
单次划分的方差可能很大,尤其在阳性样本稀少的类别(如 Fracture)上。正确做法:至少 3 次重复,报告均值与标准差;对小类别考虑分层抽样。
坑 9:把 186 个缺失 study 当作不存在。
Plus 不是原版的超集。若你声称「Plus 覆盖了原版全部数据」,这是事实性错误。正确做法:显式披露 186 个 study 的缺口(见 §4.3)。
坑 10:忽略报告的时间跨度与协议变更。
数据跨 2002–2017 年,期间设备与报告模板都可能改版。直接按时间随机划分会掩盖漂移。正确做法:先做 §7.6 的年度分布检查,必要时按阶段切分。
坑 11:把人口学字段直接用作模型输入。
种族、保险类型等受保护属性若作为特征,可能让模型学到歧视性关联。正确做法:默认不输入模型,仅用于事后分层评估;若必须输入,须做消融与合规论证。
坑 12:用同一份报告既训练抽取器又评测它。
在有报告的数据上训练 CheXbert 风格模型,又在同一批报告上评测,会得到严重乐观的结果。正确做法:确保评测报告从未参与训练(包括预训练语料的污染)。
坑 13:忽视测试集的「一次性」属性。
反复用 test 结果调参、选模型、改超参,等价于把 test 污染成 valid。正确做法:所有决策在 valid 上做,test 只在最终一次使用。
坑 14:不做合规审查就投入商业场景。
研究用途协议明确禁止商业使用。正确做法:商业场景须另行取得 Stanford 授权,并完成合规审查。
§6.6 数据增强策略
| 增强 | 是否推荐 | 说明 |
|---|---|---|
| 水平翻转 | ❌ 默认禁用 | 胸片左右有解剖意义 |
| 垂直翻转 | ❌ 禁用 | 解剖上无意义 |
| 小角度旋转(±10°) | ✅ 可谨慎使用 | 模拟体位差异,但避免过大 |
| 随机裁剪缩放 | ✅ 推荐 | 模拟不同缩放,注意保留肺野 |
| 亮度/对比度抖动 | ✅ 推荐 | 模拟曝光差异,映射到真实采集差异 |
| 高斯噪声 | ✅ 推荐 | 模拟不同探测器噪声 |
| Cutout / Random Erasing | ⚠️ 谨慎 | 可能遮挡关键病灶,需评估 |
| MixUp / CutMix | ⚠️ 谨慎 | 在医学影像上的可解释性争议较大 |
| 文本侧同义词替换 | ✅ 推荐用于生成任务 | 用医学术语表做同义改写 |
重要提醒:增强必须是有临床依据的。任何不能用「真实采集差异」解释的增强,都是在引入虚假先验。
§6.7 模型推荐
| 任务 | 推荐架构 | 理由 |
|---|---|---|
| 14 类病征分类 | DenseNet-121 / ConvNeXt / 医学预训练 backbone | 与 2019 基线可比;医学预训练 backbone 通常更优 |
| 报告生成 | 编码器-解码器(ViT + Transformer)或视觉-语言大模型 | 生成任务需要语言解码能力 |
| 图文对齐 | CLIP 式双塔 | 检索与零样本分类的标配 |
| 结构化抽取 | BERT / RoBERTa 微调 | CheXbert 一脉 |
| 图结构预测 | 序列标注 + 关系分类(RadGraph 式) | 与 L3 标注对齐 |
| 多模态大模型微调 | LLaVA 式架构 + LoRA/QLoRA | 显存友好,迭代快 |
§6.8 硬件需求
| 场景 | 最低 | 推荐 |
|---|---|---|
| 文本-only 微调(BERT 级) | 1×16GB GPU | 1×24GB GPU |
| 分类模型训练(DenseNet 级) | 1×24GB GPU | 1×48GB GPU |
| 图文对比预训练 | 4×24GB GPU | 8×40GB GPU |
| 报告生成大模型微调 | 1×80GB(LoRA) | 多卡 80GB |
| 全量 DICOM 存储 | 200GB | 500GB+ SSD |
§6.9 评估指标代码
# ============================================================
# 分类任务评估指标:AUC(宏平均/加权)是 CheXpert 系列主指标
# 必须与论文口径一致:按 14 类分别算 AUC 再平均,
# 还是只算若干主要病征,二者不可混用。
# ============================================================
import numpy as np
from sklearn.metrics import roc_auc_score, average_precision_score
def multi_label_auc(y_true, y_pred, labels=None):
"""y_true/y_pred: [N, C],NaN 表示该样本该标签缺失,需屏蔽"""
C = y_true.shape[1]
aucs = []
for j in range(C):
m = ~np.isnan(y_true[:, j])
yt = y_true[m, j]
if len(np.unique(yt)) < 2: # 该类别在当前子集只有一种取值,AUC 未定义
aucs.append(np.nan)
continue
aucs.append(roc_auc_score(yt, y_pred[m, j]))
aucs = np.array(aucs, dtype=np.float32)
return {
"auc_per_class": aucs,
"auc_macro": float(np.nanmean(aucs)),
"auc_valid_classes": int(np.sum(~np.isnan(aucs))),
}
# 用法:
# metrics = multi_label_auc(y_true, y_pred, LABELS)
# print(f"AUC(macro) = {metrics['auc_macro']:.4f} "
# f"(有效类别 {metrics['auc_valid_classes']}/14)")
# ============================================================
# 生成任务评估:临床指标优先于 n-gram
# RadGraph-F1 需调用 RadGraph 模型对生成文本与参考文本分别抽图,
# 再计算实体/关系集合的 F1。此处给出骨架与 n-gram 部分。
# ============================================================
from nltk.translate.bleu_score import corpus_bleu
from nltk.translate.meteor_score import meteor_score
def generation_ngram_metrics(hyps, refs):
"""hyps: List[str] 生成; refs: List[List[str]] 参考(每条可多参考)"""
tok_h = [h.split() for h in hyps]
tok_r = [[r.split() for r in rs] for rs in refs]
return {
"bleu4": corpus_bleu(tok_r, tok_h, weights=(0.25, 0.25, 0.25, 0.25)),
"meteor": float(np.mean([meteor_score([r.split() for r in rs], h.split())
for h, rs in zip(hyps, refs)])),
}
# 骨架:RadGraph-F1(需先安装官方 radgraph 包)
# from radgraph import RadGraph
# rg = RadGraph(); g_h = rg(hyps); g_r = rg([r[0] for r in refs])
# # 逐样本比较实体集合与关系集合,算 P/R/F1 后平均
报告规范提醒:报告生成的结果表必须同时包含 n-gram 与临床指标两栏,并明确说明 RadGraph-F1 的实现版本与实体/关系口径。
§6.10 MLOps 与工程笔记
数据版本管理:
- 记录你使用的下载批次的时间戳与文件哈希。
- 记录论文版本(v1/v2),因为 v2 可能调整了统计口径。
- 把预处理脚本与配置文件一并纳入版本控制(但不包含数据本体)。
实验可复现:
- 固定随机种子,并在报告中给出种子值。
- 保存数据划分的哈希指纹,确保后续实验用的是同一份划分。
- 记录环境(CUDA、PyTorch、transformers 版本)。
监控指标:
- 训练时的标签缺失率变化(数据管道 bug 的早期信号)。
- 生成任务的临床指标而不仅是 loss。
- 推理阶段的分布漂移(输入影像的像素统计与训练集的差异)。
常见工程动作:
- 图像侧用 LMDB/WebDataset 打包,避免小文件 I/O 瓶颈。
- 文本侧用 Arrow/Parquet 加速随机访问。
- 大模型微调用梯度检查点与混合精度。
§7 质量评估与局限性
§7.1 已知偏倚清单
| 偏倚类型 | 具体表现 | 影响 | 缓解建议 |
|---|---|---|---|
| 单中心偏倚 | 全部来自斯坦福一家学术医疗中心 | 跨机构迁移性能下降 | 用外部数据集(MIMIC-CXR、PadChest、VinDr-CXR)做外部验证 |
| 选择偏倚 | 仅纳入有正位片且有报告的检查 | 不代表全体胸片检查人群 | 报告纳入标准,做敏感性分析 |
| 报告可得性偏倚 | 186 个 study 因报告缺失被排除 | Plus 非原版超集;缺失非随机 | 跨库研究时显式披露该缺口 |
| 时间偏倚 | 2002–2017 采集,设备协议过时 | 与当代影像存在域偏移 | 按年份分层分析,报告漂移 |
| 风格偏倚 | 报告由斯坦福医师群撰写,模板化 | 生成模型学到机构文风 | 跨机构测试;避免用报告风格做评估主轴 |
| 人群偏倚 | 急诊/住院患者被正位片筛选富集 | 疾病谱偏向急性重症 | 按就诊场景分层 |
| 标注器偏倚 | CheXbert/RadGraph 自动产出 | 继承上游模型误差 | 抽样人工核验;不把自动标签当金标准 |
| 词汇偏倚 | 英语报告,西方医学术语体系 | 非英语场景不可直接迁移 | 跨语言场景需另行适配 |
§7.2 标注质量评估:论文 Table 4 的两组人工评测
论文对**两套自动标注器(原版 CheXpert labeler vs. CheXbert)**做了人工评测,结论按测试集不同而不同,这是理解「哪个标签器更好」的关键证据。
评测设计:
| 评测组 | 测试集 | 样本量 n | 评测对象 |
|---|---|---|---|
| 图像测试集 | 基于图像的标注 | n = 154 | 以图像所见为准,评估标签器的影像一致性 |
| 文本测试集 | 基于报告的标注 | n = 339 | 以报告文本为准,评估标签器的文本抽取准确性 |
评测结果:
| 测试集 | 最优方法 | 最优输入 | F1 |
|---|---|---|---|
| 图像测试集 | CheXbert | Findings 段 | 0.44 |
| 文本测试集 | CheXbert | Impression 段 | 0.93 |
三个必须理解的读数:
-
0.44 vs 0.93 的巨大差距:这个差距不是因为标注器在文本上特别强、在图像上特别弱,而是因为评测任务本身难度不同。文本测试集考的是「从报告文本抽标签」,报告里白纸黑字写着 “pleural effusion”,抽出来当然准;图像测试集考的是「从影像推标签」,影像与报告之间本来就存在不一致(这是放射学的常识 —— 报告的"所见"有时并不在图上),因此 F1 天然低得多。
-
CheXbert 在两个测试集上都优于原版 labeler:这说明基于 BERT 的抽取总体上比规则词典更鲁棒,尤其是在处理否定、不确定表述与同义表达时。
-
输入口径影响结果:图像测试集最优用 Findings,文本测试集最优用 Impression。这印证了 §3.3 的结论 —— 没有万能口径。
引用警告:不要把 0.93 当作「CheXbert 的准确率」。它是在文本测试集上、用 Impression 输入、对特定标签集的 F1。脱离这些限定条件的引用是误导。
§7.3 泛化性讨论
内部泛化:在 Plus 自身的 test 划分上,模型表现通常远好于跨机构场景,因为训练与测试共享同一批患者群体、设备与报告风格。不要把内部测试结果当作泛化能力的证据。
跨机构泛化的三个障碍:
- 设备域偏移:不同厂商的 X 光机在灰度映射、锐化、噪声特性上不同。
- 人群域偏移:斯坦福的患者构成(美国西海岸学术医疗中心)与目标机构可能差异很大。
- 报告风格偏移:生成模型的输出会被目标机构的医师认为"文风不对"。
推荐的泛化评估协议:
- 外部测试:在 MIMIC-CXR / PadChest / VinDr-CXR 上直接测试,不微调。
- 留一机构:若有多个来源,做 leave-one-site-out 交叉验证。
- 时间外推:用 2010 年前的图训练,2015 年后的图测试,量化时间漂移。
§7.4 伦理考量
(1)隐私与再识别
数据集含 187,711 份自由文本报告。尽管已清除 853,878 处 PHI 片段,自由文本的再识别风险仍本质存在。使用者须遵守研究用途协议的不再识别条款。
(2)知情同意的边界
这些影像是常规临床检查的回顾性数据,多数情况下按机构政策以去标识方式用于研究,不是为数据集专门采集的知情同意。使用时须理解这一同意基础的差异。
(3)生成模型的临床风险
报告生成模型若被误用为「自动出具报告」,会放大错误。Plus 的 Model Zoo 输出不具备临床可用性,任何部署前必须经过本地验证与监管审查。
(4)公平性
8 项人口学属性的存在使公平性审计成为可能,但也意味着模型可能学到受保护属性与疾病之间的虚假关联。训练时应考虑是否移除这些字段作为特征。
§7.5 公平性评估方法
Plus 提供了做公平性评估的字段基础。推荐的评估框架:
# ============================================================
# 公平性评估框架(示意,需接入你的模型与数据)
# 目标:量化模型在不同人口学亚组间的性能差异
# 前提:Plus 提供年龄、性别、种族、民族、保险类型等 8 项字段
# ============================================================
def subgroup_performance(df, y_true, y_pred, group_col, metric_fn):
"""group_col: 'gender'/'race'/'insurance' 等;metric_fn: (y_true,y_pred)->标量"""
results = {}
for g, sub in df.groupby(group_col):
if len(sub) < 30: # 小样本组不报点估计,避免噪声
results[g] = {"n": len(sub), "metric": None}
continue
results[g] = {"n": len(sub),
"metric": metric_fn(sub[y_true].values, sub[y_pred].values)}
vals = [v["metric"] for v in results.values() if v["metric"] is not None]
results["_spread"] = max(vals) - min(vals) if vals else None
return results
# 用法:for col in ["gender", "race", "ethnicity", "insurance"]:
# print(col, subgroup_performance(df, "y_true", "y_pred", col, auc_fn))
评估要点:
- 组间极差(spread) 是核心数字,比单组绝对值更能揭示不公平;
- 小样本组(n < 30)不报点估计,避免过度解读噪声;
- 除性能外还应报告各组的阳性率(base rate),以区分「性能差异」与「患病构成差异」;
- 保险类型与年龄常与就诊场景混淆,建议做多因素分层而非单因素。
§7.6 数据漂移提示
| 漂移来源 | 表现 | 检测方法 |
|---|---|---|
| 设备漂移 | 影像灰度分布随年代变化 | KS 检验 / MMD 比较年度像素直方图 |
| 协议漂移 | 曝光参数、体位偏好变化 | 统计 47 项 DICOM 字段的年度分布 |
| 报告风格漂移 | 模板改版、术语更新 | 报告长度、词频的时间序列 |
| 疾病谱漂移 | 某病种阳性率随时间变化 | 按年份统计 14 类标签阳性率 |
建议:在做任何跨年分析前,先画一遍上述四个维度的年度分布图。若发现明显台阶(某年协议换了),必须按阶段切分而非线性外推。
§7.7 DAIMS 24 项质量评估
DAIMS(Data And AI Model Sheet)是本库对所有条目统一施行的质量档案。以下 24 项按 CheXpert Plus 的实际情况逐项评估。
| # | 维度 | 评估 | 说明 |
|---|---|---|---|
| 1 | 数据集名称 | 通过 | CheXpert Plus,命名清晰无歧义 |
| 2 | 版本标识 | 通过 | arXiv v1(2024-05-29)/v2(2024-06-03)可追溯 |
| 3 | 负责人/维护方 | 通过 | Stanford AIMI 明确,通讯作者 Langlotz |
| 4 | 许可类型 | 通过 | Stanford 研究用途协议,明文非商业 |
| 5 | 数据来源 | 通过 | 单中心斯坦福,2002–2017,可追溯 |
| 6 | 采集方法 | 通过 | 胸片正位摄影,DICOM 保留采集参数 |
| 7 | 标注方法 | 部分 | 报告为临床产物非专门标注,无一致性指标 |
| 8 | 标注者身份 | 不通过 | 医师身份未公开,无法做标注者分层 |
| 9 | 标注一致性 | 不通过 | 无 inter-rater agreement(本质不存在该过程) |
| 10 | 样本量 | 通过 | 22 万余图,规模充足 |
| 11 | 类别平衡 | 部分 | 14 类病征阳性率高度不均 |
| 12 | 划分规范 | 通过 | 患者级不重叠划分 |
| 13 | 外部验证 | 部分 | 论文提供横向对照,但无独立外部验证集 |
| 14 | 文档完整度 | 通过 | 论文 + 数据卡 + GitHub README 齐备 |
| 15 | 可复现性 | 通过 | Model Zoo + 基准代码开源 |
| 16 | 元数据丰富度 | 通过 | 47 项 DICOM + 8 项人口学,同类领先 |
| 17 | 隐私保护 | 部分 | 已清 853,878 处 PHI,但自由文本残余风险 |
| 18 | 伦理审查 | 通过 | 有 IRB 语境与使用协议 |
| 19 | 偏见披露 | 通过 | 论文讨论节主动披露主要偏倚 |
| 20 | 更新维护 | 部分 | 2024 年后更新情况待核 |
| 21 | 互操作性 | 通过 | CSV / DICOM / JSON 标准格式 |
| 22 | 数据体积 | 通过 | 分格式提供,可按需下载 |
| 23 | 引用规范 | 通过 | arXiv DOI + BibTeX 齐备 |
| 24 | 任务定义清晰度 | 通过 | 分类 / 生成 / 对齐任务边界明确 |
汇总:24 项中 通过 18 项、部分通过 5 项、不通过 2 项。两项「不通过」集中在标注者身份与一致性 —— 这是 Plus 的结构性限制(报告来自临床而非受控标注),不是可修复的缺陷,使用者必须接受这一前提。
§7.8 外部验证矩阵
| 目标数据集 | 用途 | 注意事项 |
|---|---|---|
| MIMIC-CXR | 跨中心胸片图文验证 | 需 PhysioNet 认证;图像更多 |
| PadChest | 跨语言(西语)报告验证 | 语言域差异显著,仅验证视觉侧 |
| VinDr-CXR | 跨国家(越南)验证 | 标注体系不同(含病灶框) |
| NIH ChestX-ray14 | 纯图像分类对照 | 无报告,仅能验证视觉分支 |
| 原版 CheXpert | 同源对照 | 必须患者级去重 |
| BRAX | 巴西人群验证 | 有 DICOM 元数据,可做采集参数对照 |
§8 基准性能与生态
§8.1 论文提供的基准与 Model Zoo
CheXpert Plus 论文与官方仓库提供的可复现基线覆盖四条技术路线:
| 路线 | 模型 | 任务 | 关键指标 |
|---|---|---|---|
| 生成式 | LLaMA 系 | 报告生成 | BLEU-4 / ROUGE-L / RRG |
| 对比式 | CLIP 系 | 图文对齐 / 零样本分类 | 检索 Recall@K / AUC |
| 离散表征 | VQ-GAN | 图像 token 化 | 重建质量 / 下游生成 |
| 自监督 | DINOv2 | 视觉特征 | 线性探测准确率 |
重要提醒:本页不转载具体数值,因为(a)论文 v1/v2 间的编号可能变化;(b)不同实现与硬件会导致数值波动;(c)二手转载的数值常见口径错误。请以官方仓库 README 与论文原表为准。
§8.2 报告生成任务的评测指标
(1)n-gram 重叠指标
| 指标 | 含义 | 局限 |
|---|---|---|
| BLEU-1/2/3/4 | n-gram 精确率几何平均 | 不考虑临床正确性;同义换词即失分 |
| ROUGE-L | 最长公共子序列 | 对长度敏感 |
| METEOR | 含同义词匹配 | 比 BLEU 温和 |
| CIDEr | 加权 n-gram,强调共识 | 需参考集,样本少时不稳定 |
(2)临床相关性指标(更重要)
| 指标 | 含义 | 优势 |
|---|---|---|
| RadGraph-F1 | 比较生成文本与参考文本的实体-关系图 | 惩罚「语法通顺但临床错误」 |
| CheXbert-F1 | 比较生成文本与参考文本的 14 类标签 | 贴近下游临床任务 |
| RRG / RRS | 基于 RadGraph 的奖励/评分 | Plus 论文采用的核心指标 |
核心建议:报告生成论文必须同时报告 n-gram 与临床指标。只报 BLEU 已是过时的做法,且易被审稿人质疑。
§8.3 论文 Table 1:10 个胸片数据集的横向对照
Plus 论文用 Table 1 与 10 个同类资源做了对照,对照维度包括:图像数量、患者数量、是否有报告文本、是否有 DICOM 原始、是否有人口学、是否有结构化图标注、获取门槛(公开 / 注册 / 认证)。
Plus 的定位:在「报告文本 + 人口学 + DICOM 原始」三项同时具备的资源中,Plus 的图像规模位居前列;在「同时提供 CheXbert 与 RadGraph 双标注」这一点上,Plus 是当时独有的。
§8.4 社区活跃度与生态
官方资产:
| 资产 | 入口 |
|---|---|
| 论文 | arXiv:2405.19538 |
| 代码 | github.com/Stanford-AIMI/chexpert-plus |
| 数据卡 | aimi.stanford.edu/datasets/chexpert-plus |
| 云表 | Redivis 数据集页 |
§8.5 关键论文与引用链
| 论文 | 年份 | 关系 |
|---|---|---|
| Irvin et al., CheXpert(AAAI) | 2019 | 前身,Plus 的基座 |
| Johnson et al., MIMIC-CXR | 2019 | 同类竞品,报告规模更大 |
| Jain et al., RadGraph | 2021 | 标注工具来源,L3 层 |
| Smit et al., CheXbert | 2020 | 标注工具来源,L2 层 |
| Bustos et al., PadChest | 2020 | 同类竞品,西语报告 |
| Nguyen et al., VinDr-CXR | 2020 | 同类竞品,含病灶框 |
| Chambon et al., CheXpert Plus | 2024 | 本条目主论文 |
§8.6 生态快照
谁在用 CheXpert Plus? 报告生成研究者(标准 benchmark)、医学基础模型团队(预训练语料,常与 MIMIC-CXR 联合)、可解释性研究者(图文对齐分析)、公平性研究者(8 项人口学分层)、放射学教育工具开发者(参考文本)。
常见的失败用法:把报告当 ground truth 直接做分类监督(忽略「未提及」问题);只报 BLEU 不报临床指标;不做患者级去重就与原版混用;把 CheXbert 标签当人工金标准。
§8.7 相对于同类资源的选型建议
| 你的需求 | 首选 | 次选 |
|---|---|---|
| 最大规模胸片图文预训练 | MIMIC-CXR | CheXpert Plus |
| 需要 DICOM 采集参数 | CheXpert Plus | BRAX |
| 需要人口学公平性分析 | CheXpert Plus | MIMIC-CXR(部分) |
| 需要图结构(实体-关系)监督 | CheXpert Plus | 独立 RadGraph 标注集 |
| 快速上手、门槛低 | NIH ChestX-ray14 | PadChest |
| 跨语言(西语) | PadChest | — |
| 病灶定位(框) | VinDr-CXR | — |
§9 与库内条目的关系与互链建议
§9.1 必链条目:经典 CheXpert(rid5)
| 项目 | 内容 |
|---|---|
| 库内 slug | chexpert |
| 库内记录 ID | rid5 |
| 关系类型 | 前身(predecessor) —— 同一影像来源的第一代发布 |
| 互链方向 | 本条目 → rid5(说明基座);建议 rid5 → 本条目(说明后续演进) |
为何必链:不链 rid5,读者会误以为 CheXpert Plus 是一个孤立的新数据集,无法理解「它是在什么基础上增补的」。反之,rid5 条目不链本条目,读者就不知道原版已有 2024 年的扩展版,可能重复劳动或误用旧数据。
建议的互链文案(供主会话参考):
本条目的 2024 年扩展版 CheXpert Plus 在保留原有影像的基础上补充了放射报告文本、人口学属性与 DICOM 元数据,详见《CheXpert Plus — 胸部 X 光图文多模态数据集》。
§9.2 强相关条目:胸片影像族
以下库内条目与 CheXpert Plus 共享同一医学领域(胸部 X 光),是读者最可能顺藤摸瓜的对象:
| 条目类型 | 典型库内 slug(示例) | 关系说明 |
|---|---|---|
| 胸片分类数据集 | nih-chestx-ray14 类条目 |
无报告文本,可作纯图像对照 |
| 胸片图文数据集 | mimic-cxr-jpg、mimic-cxr-ext-ils |
同类竞品/互补,报告规模不同 |
| 胸片定位/分割 | chest-x-ray-segmentation、chexlocalize、chexmask-cxr-segmentation-data |
空间监督资源,可与 Plus 联用 |
| 胸片结构化标注 | radgraph、radgraph2 |
L3 层标注工具的直接来源 |
| 胸片报告文本 | mimic-cxr-jpg、openi |
报告文本的其他来源 |
| 胸片多标签分类 | cxr-cardiomegaly、cxr-pro 类条目 |
特定病征的专项资源 |
| 胸片语言模型 | chexstruct-cxreasonbench、radvlm 类条目 |
下游任务与模型资源 |
说明:上表的 slug 为建议检索方向,实际应以库内最新清单为准。主会话在做互链时应先在库内检索确认 slug 存在。
§9.3 方法论相关条目
| 主题 | 相关条目方向 | 关系 |
|---|---|---|
| 放射报告图结构标注 | radgraph / radgraph2 |
Plus 的 L3 层 |
| 临床文本抽取 | mtsamples、MedQuAD 类临床文本条目 |
抽取方法学同源 |
| 医学影像评估基准 | medmnist 类条目 |
评测方法学参考 |
| 多模态医学数据 | 库内多模态类条目 | 同一范式家族 |
| MIMIC 系列 | mimiciii、mimiciv、mimic-cxr-jpg |
同院系的叙事型资源,对比阅读有价值 |
§9.4 互链优先级建议
| 优先级 | 目标 | 理由 |
|---|---|---|
| P0(必做) | rid5 chexpert |
划界关系的核心,缺此则条目语义不完整 |
| P1(强烈建议) | mimic-cxr-jpg / mimic-cxr-ext-ils |
最主要的同类对照 |
| P1(强烈建议) | radgraph / radgraph2 |
标注工具来源,影响方法理解 |
| P2(建议) | 胸片分割族(chexlocalize、chexmask-*) |
空间监督的互补资源 |
| P2(建议) | chexstruct-cxreasonbench 等下游基准 |
展示任务承接链 |
| P3(可选) | nih-chest-ray14 类、padchest、vindr-cxr |
横向对照的远端链接 |
§10 避坑清单与快查手册
§10.1 十大高频错误(速查)
| # | 错误 | 后果 | 一句话纠正 |
|---|---|---|---|
| 1 | 「未提及」当阴性 | 大量假阴性监督 | 显式处理空白与 U 值 |
| 2 | 硬编码路径/字段名 | 代码在他机崩溃 | 先探查再写逻辑 |
| 3 | 与原版混用不去重 | 泄漏、虚假高性能 | 患者级去重 |
| 4 | 只报 BLEU | 临床错误被掩盖 | 加 RadGraph-F1 |
| 5 | 忽视 512 token 截断 | 静默丢信息 | 统计截断率 |
| 6 | 自动标签当金标准 | 评测失真 | 抽样人工核验 |
| 7 | 胸片水平翻转增强 | 解剖语义错误 | 默认关闭 |
| 8 | 单次划分单次结果 | 方差被低估 | 多次重复报均值±std |
| 9 | 忽视 186 个 study 缺口 | 事实性错误 | 显式披露 |
| 10 | 忽视时间漂移 | 结论不可外推 | 先做年度分布检查 |
§10.2 数字引用速查表
| 数字 | 含义 | 口径 | 必须随数字标注的限定 |
|---|---|---|---|
| 223,228 | 图像总数 | 论文正文 | 来源=正文;版本=v2 |
| 223,462 | 图像总数 | 论文 Table 1 | 来源=Table 1;版本=v2 |
| 64,725 | 患者数 | 论文正文 | 来源=正文 |
| 64,540 | 患者数 | 论文 Table 1 | 来源=Table 1 |
| 187,711 | 报告数 | 全文一致 | 无冲突 |
| 36,469,132 | 全报告 token 数 | Table 2 | 来源=Table 2 |
| 13,351,758 | Impression token 数 | Table 2 | 来源=Table 2 |
| 853,878 | PHI 清除片段数 | 论文报告 | 仅表示"检测到",非"全部" |
| 47 | DICOM 元数据项数 | 论文报告 | — |
| 8 | 人口学属性项数 | 论文报告 | — |
| 11 | 报告最多子段数 | Table 2 | 来源=Table 2 |
| 14 | 病征类别数 | 沿用原版 | 含 No Finding |
| 186 | 未进入 Plus 的原版 study 数 | 论文报告 | Plus 非原版超集 |
| 0.44 | CheXbert F1 | 图像测试集 n=154,Findings 输入 | 三项限定缺一不可 |
| 0.93 | CheXbert F1 | 文本测试集 n=339,Impression 输入 | 三项限定缺一不可 |
| 1,581,863 | RadGraph Findings 实体数 | 论文报告 | — |
| 3,999,559 | RadGraph Impression 实体数 | 论文报告 | 注意与 token 量的反常 |
| 1,106,659 | RadGraph Findings 关系数 | 论文报告 | — |
| 2,772,337 | RadGraph Impression 关系数 | 论文报告 | — |
引用铁律:任何数字若涉及双口径或带测试集限定,必须在文中就地标注来源与限定条件。省略限定的引用视为不合格。
§10.3 开跑前 30 秒检查
□ 我签了研究用途协议了吗?
□ 我确认用的是 v1 还是 v2 了吗?
□ 我引用的数字标了正文/Table 1/Table 2 吗?
□ 我做了患者级去重吗(若混用其他数据集)?
□ 我检查了 token 截断率吗?
□ 我关了水平翻转增强吗?
□ 我准备了临床指标(不只是 BLEU)吗?
□ 我披露了 186 个 study 缺口吗?
§11 总结
CheXpert Plus 是胸部 X 光 AI 研究从「弱监督分类」走向「多模态生成与对齐」的标志性基础设施。它的价值不在于「更大的图像集」(它的图像数与原版基本相同),而在于为同一批影像补上了它们原本缺失的文本与元数据层:
- 187,711 份放射报告,让图文对齐与报告生成第一次可以在 CheXpert 上做;
- 8 项人口学 + 47 项 DICOM 元数据,让公平性审计与采集参数研究第一次成为可能;
- CheXbert 与 RadGraph 双标注,让「对标签器本身的审计」第一次有了参照;
- 四路线 Model Zoo,让复现基线不再是负担。
对使用者的三条核心忠告:
- 它是一个独立条目,不是原版的别名。 两代发布有不同论文、不同 DOI、不同内容、不同任务线;且 Plus 少 186 个 study,并非超集。
- 报告文本是临床产物,不是受控标注。 没有一致性指标、没有标注者信息、“未提及"不等于"阴性”——这三条决定了你必须谨慎对待每一份文本监督信号。
- 数字必须带限定引用。 223,228 与 223,462、0.44 与 0.93,脱离口径与限定条件的数字就是错误信息。
常见问题 FAQ
Q:CheXpert Plus 和 CheXpert 是同一個数据集的两个名字吗?
不是。它们是同一影像来源的两代发布。原版(2019)是「图 + 标签」,Plus(2024)是「图 + 报告 + 元数据 + 结构化标注 + 模型库」。本库将它们作为两个独立条目收录。详见 §4。
Q:Plus 是原版的超集吗?
不是。有 186 个原版 study 因报告无法找回而未进入 Plus。若要「原版全量图像」,只能用原版。详见 §4.3。
Q:为什么图像数在论文里有 223,228 和 223,462 两个值?
前者出现在论文正文,后者出现在 Table 1。本页按双口径原则同时记录,不擅自取舍。引用时必须注明来源。详见 §2.1。
Q:CheXbert 的准确率是 0.93 吗?
不能这样表述。0.93 是「在文本测试集(n=339)上、以报告文本为准、用 Impression 段作为输入」条件下的 F1。换任何一项条件,数值都会变。详见 §7.2。
Q:报告里的空白标签该怎么处理?
三种主流策略:U-Ones(U 当阳性)、U-Zeros(U 当阴性)、U-Ignore(屏蔽)。空白(未提及)与 U(不确定)是两个不同的状态,不应混为一谈。详见 §3.2。
Q:可以用于商业项目吗?
不可以。许可是 Stanford University Dataset Research Use Agreement,明确为非商业研究用途。商业使用须另行取得授权。详见 §6.1 与 §0.3。
Q:我需要下载全部 DICOM 吗?
不一定。若只做文本任务(报告生成、抽取),只需文本侧 CSV(数百 MB)。DICOM 与 JPG 是给影像任务的,体积达数十 GB。详见 §2.2 与 §2.6。
Q:RadGraph 的 Impression 实体数比 Findings 多,是错了吗?
这是一个真实存在的反常:Impression 的 token 量约为 Findings 的 1/3,但实体数却是其 2.5 倍。可能源于统计口径差异或文本密度差异。本页记录该反常但不强行归因,使用者应自行核对。详见 §3.4。
Q:能把它和 MIMIC-CXR 混合训练吗?
可以,但必须(a)确认两份许可都允许;(b)做患者级去重(两者可能有交叉患者);(c)注意两者的标注体系与报告风格差异。详见 §5.5。
事实清单(逐条可核)
| # | 事实 | 来源 |
|---|---|---|
| 1 | 论文 arXiv 编号 2405.19538 | arXiv abs 页 |
| 2 | v1 提交 2024-05-29,v2 修订 2024-06-03 | arXiv 版本历史 |
| 3 | DOI 10.48550/arXiv.2405.19538 | arXiv 页 |
| 4 | 全文 13 页 | arXiv PDF |
| 5 | 分类号 cs.CL / cs.AI / cs.CV / cs.LG | arXiv 页 |
| 6 | 作者 9 人,Chambon 与 Delbrouck 并列一作 | 论文题名页 |
| 7 | 通讯作者 Curtis P. Langlotz | 论文题名页 |
| 8 | 发布机构 Stanford AIMI × VinBrain | 论文与数据卡 |
| 9 | 图像数 223,228(正文)/223,462(Table 1) | 论文 |
| 10 | 患者数 64,725(正文)/64,540(Table 1) | 论文 |
| 11 | 报告数 187,711 | 论文 |
| 12 | 全报告 token 36,469,132 | Table 2 |
| 13 | Impression token 13,351,758 | Table 2 |
| 14 | 报告最多 11 个子段 | Table 2 |
| 15 | PHI 清除 853,878 处 | 论文 |
| 16 | DICOM 元数据 47 项 | 论文 |
| 17 | 人口学属性 8 项 | 论文 |
| 18 | 病征类别 14 类 | 沿用原版 |
| 19 | 186 个原版 study 未进入 Plus | 论文 |
| 20 | CheXbert 图像测试集 F1 0.44(n=154,Findings) | Table 4 |
| 21 | CheXbert 文本测试集 F1 0.93(n=339,Impression) | Table 4 |
| 22 | RadGraph Findings 实体 1,581,863 | 论文 |
| 23 | RadGraph Impression 实体 3,999,559 | 论文 |
| 24 | RadGraph Findings 关系 1,106,659 | 论文 |
| 25 | RadGraph Impression 关系 2,772,337 | 论文 |
| 26 | Model Zoo 含 LLaMA/CLIP/VQ-GAN/DINOv2 | 论文与仓库 |
| 27 | 官方仓库 github.com/Stanford-AIMI/chexpert-plus | GitHub |
| 28 | Redivis DOI 10.57761/fzna-pm76 | Redivis |
| 29 | 数据采集年份 2002–2017 | 论文 |
| 30 | 单一学术医疗中心(斯坦福) | 论文 |
术语表
| 术语 | 英文 | 释义 |
|---|---|---|
| 正位胸片 | Frontal chest radiograph | PA(后前位)或 AP(前后位)胸部 X 光摄影 |
| PA / AP | Posteroanterior / Anteroposterior | 射线穿过人体的方向:后→前 / 前→后 |
| 所见段 | Findings | 报告中对影像的事实性描述部分 |
| 印象段 | Impression | 报告中对所见的归纳与临床结论部分 |
| 四值制 | Quad-value labeling | 0 阴性 / 1 阳性 / 空白未提及 / U 不确定 |
| U 值 | Uncertainty | 报告中表达不确定的标注意向 |
| CheXpert labeler | — | 原版基于规则与词典的 14 类标签抽取器 |
| CheXbert | — | 基于 BERT 的报告文本标签抽取模型 |
| RadGraph | — | 把报告解析为实体-关系图的标注体系 |
| 实体 / 关系 | Entity / Relation | 图标注的基本单元:医学概念节点与它们之间的连边 |
| PHI | Protected Health Information | 受保护的健康信息,即需脱敏的直接/间接标识符 |
| DICOM | Digital Imaging and Communications in Medicine | 医学影像的通用文件格式与元数据标准 |
| 图文对齐 | Vision-language alignment | 学习图像与文本的联合表示空间 |
| 报告生成 | Report generation | 由影像自动生成放射报告文本 |
| RadGraph-F1 | — | 基于图结构的生成质量指标,比 n-gram 更贴近临床 |
| RRG / RRS | RadGraph Reward / Score | 基于 RadGraph 的生成奖励与评分 |
| BLEU / ROUGE | — | 经典 n-gram 文本重叠指标 |
| 患者级划分 | Patient-level split | 保证同一患者不跨 train/valid/test |
| 域偏移 | Domain shift | 训练与部署数据分布不一致导致性能下降 |
| U-Ones / U-Zeros / U-Ignore | — | U 值的三种处理策略 |
附录 A:报告子段结构示例
CheXpert 报告的子段结构不统一,最多可达 11 个 section。典型结构示例:
EXAMINATION: CHEST (PA AND LAT)
INDICATION: ___ cough, fever
COMPARISON: ___
FINDINGS: The lungs are clear without focal consolidation...
The cardiomediastinal silhouette is within normal limits...
IMPRESSION: 1. No acute cardiopulmonary process.
TECHNIQUE: ___
处理要点:
FINDINGS→section_findings字段;IMPRESSION→section_impression字段;- 其余子段(EXAMINATION / INDICATION / COMPARISON / TECHNIQUE)通常不进入正文训练,但可用于上下文增强;
- 部分报告缺段(如无 IMPRESSION),预处理须容忍缺失;
___是被脱敏移除的内容占位符,代表 PHI 已被清除。
完整的两代对照表见 §4.1;14 类病征中英对照见 §3.2。
附录 B:许可与合规要点摘要
| 要点 | 内容 |
|---|---|
| 协议名称 | Stanford University Dataset Research Use Agreement |
| 用途限制 | 非商业研究用途 |
| 再分发 | 禁止 |
| 再识别 | 禁止 |
| 署名要求 | 使用须引用首发论文 |
| 适用法律 | 以协议文本为准 |
| 商业使用 | 需另行取得 Stanford 授权 |
非法律意见:以上为协议要点的通俗摘要,实际权利义务以协议原文为准。有任何疑问请咨询所在机构的合规或法务部门。
附录 C:BibTeX 引用
@article{Chambon2024CheXpertPlus,
title = {CheXpert Plus: Augmenting a Large Chest X-ray Dataset with Text and Patient Metadata},
author = {Chambon, Pierre and Delbrouck, Jean-Benoit and Sounack, Thomas
and Huang, Shih-Cheng and Chen, Zhihong and Varma, Maya
and Truong, Steven QH and Chu, Katherine and Langlotz, Curtis P.},
journal = {arXiv preprint arXiv:2405.19538},
year = {2024},
doi = {10.48550/arXiv.2405.19538}
}
@article{Irvin2019CheXpert,
title = {CheXpert: A Large Chest Radiograph Dataset with Uncertainty Labels and Expert Comparison},
author = {Irvin, Jeremy and Rajpurkar, Pranav and Ko, Michael and others},
journal = {Proceedings of the AAAI Conference on Artificial Intelligence},
year = {2019},
doi = {10.1609/aaai.v33i01.3301590}
}
@article{Jain2021RadGraph,
title = {RadGraph: Extracting Clinical Entities and Relations from Radiology Reports},
author = {Jain, Saahil and Agrawal, Ashwin and Saporta, Adriel and others},
journal = {arXiv preprint arXiv:2106.14463},
year = {2021}
}
附录 D:官方资源速查
§10 AI 使用声明卡
§10.1 AI 模型使用
| 项目 | 内容 |
|---|---|
| 撰写代理 | 千方病案医数集 AI 写手代理 agent-d-chexpertpl |
| 执行方式 | 在人工设定的纪律包约束下,由 AI 起草、按规则自检 |
| 证据采集 | 三源互证:arXiv 论文全文 + 官方 GitHub 仓库 + 官方数据卡 |
| 自动化校验 | check_md.py(格式与结构)、preflight_check.py(标题重复与锚点冲突) |
§10.2 AI 参与范围
| 环节 | AI 参与 | 人工参与 |
|---|---|---|
| 论文阅读与硬数字提取 | ✅ 全部 | 抽样核对 |
| FACTS.md 事实底稿 | ✅ 全部 | 校验 |
| 正文撰写 | ✅ 全部 | 编辑与终审 |
| 数字双口径核对 | ✅ 全部 | 抽验 |
| 结构合规自检 | ✅ 全部(脚本) | 结果审阅 |
| 最终发布 | ❌ | ✅ 全部(主会话串行负责) |
§10.3 输入来源
| 来源 | 类型 | 用途 |
|---|---|---|
| arXiv:2405.19538 v2 全文 | 一手论文 | 硬数字、方法、局限 |
| github.com/Stanford-AIMI/chexpert-plus | 官方仓库 | 模型库、复现路径 |
| aimi.stanford.edu/datasets/chexpert-plus | 官方数据卡 | 获取流程、许可 |
| Redivis 数据集页 | 官方分发平台 | DOI、云表入口 |
库内 scripts/check_md.py / preflight_check.py |
内部校验脚本 | 结构合规(只读运行,未修改) |
§10.4 人工校验表
| 校验项 | 状态 |
|---|---|
| 数据集存在性(三源互证) | ✅ 已完成 |
| 与 rid5 的划界论证 | ✅ 已完成(§4) |
| 双口径数字并存 | ✅ 已完成(§2.1) |
| 坑点条目数 ≥ 5 | ✅ 已完成(14 条) |
| DAIMS 表存在 | ✅ 已完成(§7.7) |
| 行数落在 1200–1900 | ✅ 已完成 |
| check_md.py PASS | ✅ 已完成 |
| preflight_check.py 0 ERROR / 0 WARN | ✅ 已完成 |
注:本表最后两行由撰写流程末端的自检命令实测填写,命令输出见任务汇报的"成稿指纹三行"。
§10.5 AI 生成章节标注
本页全部章节均由 AI 代理在纪律包约束下起草。所有硬数字均带来源标注(正文/Table 1/Table 2),所有双口径冲突均并存记录。不存在未经来源支持的数字。
§10.6 最后审核
| 项目 | 内容 |
|---|---|
| 最后更新 | 2026-09-30 |
| 数据截止 | arXiv v2(2024-06-03)及同期官方数据卡 |
| 审核方 | 千方病案医学编辑部 |
| 反馈渠道 | 千方病案医数集站内 |
尾注:关于本条目
关于与库内 rid5 的关系:本条目与库内经典 CheXpert 条目(rid5)为同一影像来源的两代发布,属于独立条目而非重复。两代差异的完整论证见 §4,逐项对照表见附录 A。建议双向互链。
关于数字引用:本条目对每一处双口径数字均就地标注了来源(正文 / Table 1 / Table 2)与版本(v1 / v2)。读者引用时应沿用同样的标注习惯,否则会导致跨论文的数字不可比。
关于缺失的第三方指标:本条目未收录 HuggingFace 下载量、GitHub star 数等社区活跃度指标 —— 撰写期间对这些平台的访问受限,无法一手核验。按千方病案医数集的证据分级原则,未经核验的数字不予收录。相关存照见 FACTS.md §9。
关于更新:CheXpert Plus 若在未来发布新版本(如 v3 或增量扩充),本条目应相应更新,并在 §1.4 时间轴追加记录。读者若发现新版本发布,欢迎通过站内渠道反馈。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- rexgradient-160k — 共享标签:医学影像 / X光影像 / 临床文本 / 影像-文本对齐
- cxr-pro — 共享标签:医学影像 / 医疗NLP / 临床文本
- ms-cxr-t — 共享标签:医学影像 / X光影像 / 医疗NLP / 影像-文本对齐
- mimic-iv-note — 共享标签:医学影像 / X光影像 / 医疗NLP
- swiss-mammo — 共享标签:医学影像 / 医疗NLP / 临床文本
- rexerr — 共享标签:X光影像 / 医疗NLP / 临床文本
- ms-cxr — 共享标签:医学影像 / X光影像 / 影像-文本对齐
- reflacx-xray-localization — 共享标签:医学影像 / X光影像 / 医疗NLP
- radvlm-instruction-dataset — 共享标签:医学影像 / X光影像 / 医疗NLP
- radialog-instruct-dataset — 共享标签:医学影像 / X光影像 / 医疗NLP
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

