信息速览

Chest ImaGenome — 胸片解剖场景图与纵向临床推理数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | Chest ImaGenome Dataset |
| 英文全称 | Chest ImaGenome Dataset(Chest X-ray scene graph dataset for clinical reasoning) |
| 别名/简称 | Chest ImaGenome、ImaGenome-CXR |
| 疾病分类 | 胸部多疾病谱(ICD-11:CA40 肺炎 / CB21 气胸 / CB27 胸腔积液 / CB01 肺水肿 / CA22 慢性阻塞性肺疾病等,详见 §2.1) |
| SNOMED CT | 经 UMLS CUI 映射至 SNOMED CT/RadLex(Pneumonia C0032285 / Pneumothorax C0032326 / Pleural effusion C0031047 等,详见 §2.1b) |
| 数据模态 | 影像标注(后前位胸片 AP/PA 场景图)、文本派生属性(报告 NLP)、知识图谱(scene graph / RDF) |
| AI 任务类型 | 解剖区域定位、异常检测、报告句子 grounding、纵向变化预测、视觉问答(VQA)、弱监督预训练 |
| 样本总数 | 242,072 张胸片场景图 / 217,013 份报告 / 500 名患者金标准(1,000 张图) |
| 数据大小 | 总量未公开;核心标注包 silver_dataset/scene_graph.zip(解压后含 242,072 个 scene graph JSON) |
| 数据格式 | JSON(scene graph)/ CSV / RDF / TXT / Jupyter Notebook |
| 许可证 | PhysioNet Credentialled Health Data License 1.5.0 |
| 访问级别 | 申请审核(PhysioNet 注册 + CITI 培训 + 签署 DUA) |
| 语言 | 英文(报告与标注术语) |
| 首发日期 | 2021-07-13(PhysioNet v1.0.0) |
| 最后更新 | 2021-07-13(v1.0.0,至今唯一已发布版本) |
| 发布机构 | IBM Almaden Research Center、MIT Critical Data、Rensselaer Polytechnic Institute、Virginia Tech、Albert Einstein Healthcare Network、Harvard Medical School |
| 官方主页 | https://physionet.org/content/chest-imagenome/1.0.0/ |
| 下载地址 | https://physionet.org/files/chest-imagenome/1.0.0/ |
| DOI | 10.13026/wv01-y230 |
| 引用次数 | 67+(ArxivLens 统计,截至 2025-06) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 标注全 JSON 结构化、附官方患者级划分与评估 notebook;扣分项:像素图像需另行申请 MIMIC-CXR-JPG、224×224 坐标系需换算、自动标注含噪声 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
- 医学审核者:[千方病案医学编辑部] 交叉审核:§2 医学背景(ICD-11/UMLS 术语映射、胸部疾病学与随访影像学)、§7 偏倚分析。
- 数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
- 审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Chest ImaGenome 要求用户完成 CITI Program 的 “Data or Specimens Only Research” 培训、通过 PhysioNet 凭证化申请并签署数据使用协议(DUA);用于训练的像素图像需另行签署 MIMIC-CXR-JPG 的 DUA。具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? Chest ImaGenome 是首个以"场景图(scene graph)“组织的胸片(CXR)数据集。它不直接给你像素图像,而是为 MIMIC-CXR 中的 242,072 张后前位胸片,各生成一份结构化 JSON:29 个解剖区域(左右肺、心脏轮廓、纵隔、肋骨等)的边界框坐标,加上每个区域上的属性(如"左肺下叶不张”)以及区域之间的关系;相邻两次检查之间还有 670,000 余条"改善/加重/无变化"的纵向比较关系(PhysioNet 官方页,2021-07-13 发布 v1.0.0)。
为什么重要? 过去大型胸片数据集(NIH CXR、CheXpert、MIMIC-CXR)的标签都是"整图级"的弱标签——模型只能回答"这张图有没有肺炎",说不出"病灶在哪、和上次比变好还是变坏"。Chest ImaGenome 用规则式 NLP 加基于图谱的边界框检测流水线,把放射科医生的报告"翻译"成了带位置、带时间维度的结构化知识,让"可解释性"第一次可以被定量评估(论文 arXiv:2108.00316)。
我能用它做什么? 训练解剖区域定位与属性分类模型;做报告句子到图像区域的 grounding(对齐);构建"前后两次检查病变如何变化"的纵向预测模型;为 VQA、报告生成、多模态大模型提供弱监督预训练。使用前注意:像素图像需另行申请 MIMIC-CXR-JPG,所有标注由算法自动生成、含噪声,500 名患者的人工金标准可作为清洗与评测的锚点。
§1.1 技术摘要
Chest ImaGenome 的构建流程分三步。第一步,从 MIMIC-CXR v2.0.0 的 217,013 份报告中做规则式 NLP 抽取:基于放射科医生构建的 CXR 本体,把报告句子解析为"对象-属性-关系"三元组,全部节点映射到 UMLS CUI(含 RadLex 概念),词典覆盖 271 种 CXR 命名实体;第二步,用基于图谱(atlas-based)的检测流水线为 29 个解剖位置自动生成边界框,并用 1,071 张人工修正图像训练的 Faster R-CNN 修正初始流水线约 7% 的失败框(官方页);第三步,对每位患者第二次及以后的检查,抽取与上一次检查的局部化比较关系(improved/worsened/no change),共 670,000 余条。最终每张图对应一份含 objects / attributes / relationships 三段结构的 scene graph JSON。质量评估显示:对象-属性关系抽取 F1 为 0.939,比较关系抽取(attribute-sensitive,报告级)F1 为 0.796;人工金标准(500 名患者、1,000 张图)上边界框 IoU 达 0.929-0.995(论文)。
§1.2 战略价值
维度一:把弱标签升级为"局部化 + 关系化"标注。 大多数胸片数据集只有图像级标签,模型学到的是"语言先验"而非影像证据。Chest ImaGenome 的每个属性都挂在一个有边界框的解剖区域上,这使定位型任务(检测、grounding、区域级分类)有了大规模训练信号。论文 Table 1 将其标注形式概括为:131 个标签、带边界框、带图谱、带时间标注、带报告,规模 242,072 张——在同类数据集中是唯一同时满足这五项的(arXiv:2108.00316)。
维度二:稀缺的纵向时间维度。 670,000 余条 improved/worsened/no change 比较关系,使其成为目前少有的能大规模训练"病变演变追踪"模型的胸片数据源。临床随访(如肺炎吸收、气胸变化、结节监测)正是放射科日常推理的核心动作,而这个维度在 CheXpert、NIH CXR 等数据集中完全缺失。下游工作 CheXRelNet(MICCAI 2022)正是在该比较关系上训练纵向关系追踪模型(CatalyzeX 作者页)。
维度三:多模态生态的底座。 Chest ImaGenome 已成为多个知名衍生数据集的构建基座:MIMIC-CXR-VQA(NeurIPS 2023 Datasets & Benchmarks,约 377K 问题、48 个模板)由 MIMIC-CXR-JPG 与本数据集联合构建,其模板进一步孕育了多模态电子病历问答数据集 EHRXQA(GitHub: dek924/mimic-cxr-vqa)。掌握本数据集的结构,等于拿到了半数胸片 VQA 生态的底层钥匙。
§1.3 同类数据集横向对比
| 数据集 | 规模(图像) | 标注粒度 | 边界框 | 图谱结构 | 纵向时间标注 | 报告 | 许可/访问 |
|---|---|---|---|---|---|---|---|
| NIH CXR | 112,120 | 图像级 14 标签 | ❌ | ❌ | ❌ | ❌ | 开放下载 |
| CheXpert | 224,316 | 图像级 14 标签 | ❌ | ❌ | ❌ | ✅ | 开放(部分需注册) |
| PadChest | 160,868 | 图像级 297 标签 | 少量 | ❌ | ❌ | ✅ | 注册申请 |
| MIMIC-CXR | 377,110 | 图像级 14 标签 | ❌ | ❌ | ❌ | ✅ | 凭证化(DUA) |
| Chest ImaGenome | 242,072 | 区域级属性 + 关系(131 标签组合) | ✅(29 区域) | ✅(场景图) | ✅(670,000+) | ✅ | 凭证化(DUA) |
注:规模与标注列数字来自 Chest ImaGenome 论文 Table 1 的汇总(arXiv:2108.00316);各数据集标注体系不同,本表仅示意粒度差异,不可直接比较标签质量。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2021-07-13 | PhysioNet 发布 v1.0.0 | 首个也是目前唯一的公开版本,含 silver/gold 数据、splits、utils 与 analysis notebooks(官方页) |
| 2021-07-31 | 论文提交 arXiv | arXiv:2108.00316,2021-08-03 公布;数据集 DOI 10.13026/wv01-y230(arXiv) |
| 2022 | 生态扩展 | CheXRelNet(MICCAI 2022)等纵向推理工作开始基于本数据集发表(CatalyzeX) |
| 2023 | 生态扩展 | MIMIC-CXR-VQA(NeurIPS 2023 D&B)与 EHRXQA 相继以其为构建基座(GitHub) |
| 规划中 | v2.0.0 | 官方页面提及计划增加"临床相关问答对(QA pairs)",截至 2026-09 未见发布(官方页) |
§1.5 典型应用场景
- 解剖区域级异常检测:以 29 个区域的边界框为空间先验,训练区域级属性分类器(论文示例:Faster R-CNN + CheXGCN 在 9 个常见属性上的定位分类实验,论文)。
- 报告句子 grounding:NLP 流水线把报告句子与解剖区域对齐,可用于训练"句子 → 图像区域"的短语定位模型;Generalised Medical Phrase Grounding 工作将其作为大规模弱监督来源(arXiv:2512.01085)。
- 纵向病变变化预测:利用 670,000+ 比较关系,训练"前后两次检查中某区域属性如何变化"的模型(论文示例任务达到 75.3% 准确率,论文)。
- VQA 与多模态大模型微调:作为 MIMIC-CXR-VQA 的底座,支撑医学视觉问答;亦被 AnatomiX、CheXagent 等报告 grounding 模型用作评测基准(SOTA2 榜单,截至 2026-09)。
- 弱监督预训练:先在 242,072 张图的自动标注上预训练,再到小规模专家标注集(如 MS-CXR)微调,是弱到强(weak-to-expert)课程式训练的典型数据源(arXiv:2512.01085)。
§2 医学背景
§2.1 ICD-11 编码映射表
Chest ImaGenome 的属性节点覆盖胸部影像常见疾病与征象。下表列出数据集中高频属性与 ICD-11 编码的对应关系(编码经 ICD-11 呼吸系统章节核实):
| 数据集属性节点(示例) | ICD-11 编码 | ICD-11 中文名 | 属性类别(categoryID) |
|---|---|---|---|
| pneumonia | CA40 | 肺炎 | disease |
| copd/emphysema | CA22 / CA21 | 慢性阻塞性肺疾病 / 肺气肿 | disease |
| pulmonary edema/hazy opacity | CB01 | 肺水肿 | anatomicalfinding |
| pneumothorax | CB21 | 气胸 | anatomicalfinding |
| pleural effusion | CB27 | 胸腔积液 | anatomicalfinding |
| atelectasis / lobar collapse | CB40.2 | 肺萎陷(肺不张) | anatomicalfinding |
| acute respiratory distress syndrome | CB00 | 急性呼吸窘迫综合征 | disease |
| bronchiectasis | CA24 | 支气管扩张 | anatomicalfinding |
| interstitial lung disease | CB03 / CB05 | 特发性间质性肺炎 / 合并系统性疾病间质性肺病 | disease |
§2.1b UMLS CUI 术语映射表
数据集的一个关键设计是:所有对象节点、属性节点与比较关系的 predicate/synsets 均映射到 UMLS CUI(含 RadLex 概念),可直接与医院术语体系对接(官方页):
| 属性标签(数据集原文) | UMLS CUI | ICD-11 | 所属属性类别 |
|---|---|---|---|
| pneumonia | C0032285 | CA40 | disease |
| pneumothorax | C0032326 | CB21 | anatomicalfinding |
| pleural effusion | C0031047 | CB27 | anatomicalfinding |
| atelectasis | C0004269 | CB40.2 | anatomicalfinding |
| pulmonary edema/hazy opacity | C0034063 | CB01 | anatomicalfinding |
| copd/emphysema | C0024117 | CA22 | disease |
注:UMLS CUI 为数据集原生的术语编码方式(同一概念可在 UMLS 中交叉检索 SNOMED CT/RadLex 码);属性类别划分见论文补充材料(arXiv:2108.00316)。
§2.2 疾病简介与流行病学背景
胸片是最常开具的放射学检查之一,兼具筛查与诊断功能。Chest ImaGenome 的 disease 类属性节点涵盖 pneumonia(肺炎)、fluid overload/heart failure(液体过负荷/心力衰竭)、copd/emphysema(慢阻肺/肺气肿)、interstitial lung disease(间质性肺病)、lung cancer(肺癌)、aspiration(误吸)、pericardial effusion(心包积液)等;anatomicalfinding 类节点则覆盖 consolidation(实变)、pneumothorax(气胸)、pleural effusion(胸腔积液)、atelectasis(肺不张)、rib fracture(肋骨骨折)等 40 余种影像征象(论文补充材料)。
其数据来源 MIMIC-CXR 队列采集自波士顿 Beth Israel Deaconess Medical Center 的急诊与住院(含大量 ICU)人群,因此重症、卧床、设备管路(tubesandlines 类节点:chest tube、endotracheal tube、picc 等)出现频率显著高于健康筛查人群。这决定了它更适合训练"住院/重症场景下的胸片推理",而非体检筛查场景。需强调:本数据集不提供疾病患病率统计,流行病学结论须引用原始临床文献,本条目不作推断。
从报告到结构化标签的推理链路
理解属性体系的医学含义,需要理解放射科报告的书写逻辑。一份典型胸片报告按"技术评估 → 管路 → 解剖分区逐一描述 → 结论"展开,Chest ImaGenome 的 7 类 categoryID 恰好与这段叙述结构一一对应:
- technicalassessment 对应报告开头的质量控制句(如 “low lung volumes”、“patient is rotated”、“ECG leads present”)——这类标签决定了图像是否"可读",是部署前质量过滤的直接素材;
- tubesandlines / devices 对应器械清点段(如 “endotracheal tube tip is 4 cm above the carina”)——注意此类描述天然含位置信息,是测试"属性是否挂对区域"的试金石;
- anatomicalfinding / texture / disease 对应逐分区描述与结论段(如 “left lower lobe consolidation”)——severity_cues(hedge/mild/moderate/severe)与 temporal_cues(acute/chronic)修饰符就挂在这类节点上;
- nlp 类的 normal/abnormal 显式极性来自报告中的明确否定或正常声明(如 “no pneumothorax”)——这直接对冲了"没写 = 没有"的误读(见坑点 3)。
因此,同一份报告经流水线解析后,会同时产生"区域 × 属性"的静态快照与"与前次检查比较"的动态结论。用户在设计标签头(label head)时,应按 categoryID 分组设计输出空间,而不是把 271 个命名实体当作扁平多标签——扁平化会丢失"修饰符挂在哪个属性上"的结构信息,也无法利用 UMLS CUI 做层级约束。
§2.3 临床任务定义
| 临床任务 | 定义 | 在本数据集中的支撑形式 |
|---|---|---|
| 筛查(检测) | 判断有无异常并定位 | 29 区域边界框 + 区域级属性(normal/abnormal、anatomicalfinding) |
| 诊断(定性) | 判断异常的性质与病因 | anatomicalfinding 与 disease 类属性节点(如 consolidation → pneumonia) |
| 评估(定量/分级) | 判断严重程度 | severity_cues(hedge/mild/moderate/severe)与 temporal_cues(acute/chronic)修饰符 |
| 随访(纵向对比) | 与前次检查比较变化 | improved/worsened/no change 比较关系(670,000+ 条,仅第二次及以后检查) |
| 设备核查 | 管路/器械位置确认 | tubesandlines 与 devices 类属性节点(chest tube、endotracheal tube、pacemaker 等) |
§2.4 患者人群画像
| 维度 | 内容 | 说明 |
|---|---|---|
| 来源机构 | Beth Israel Deaconess Medical Center(波士顿,单中心) | 派生自 MIMIC-CXR v2.0.0(官方页) |
| 采集时间 | 2011-2016 | MIMIC-CXR 采集窗口 |
| 患者规模 | 约 65,000 名患者队列(覆盖 242,072 张后前位胸片) | 金标准子集为 500 名患者(官方页) |
| 年龄 | 以 age_decile(十分位分箱)形式提供 | 为去标识化处理,不提供精确年龄 |
| 性别 | gender 字段 | 二元字段,无更细粒度性别信息 |
| 种族/民族 | 未随 scene graph 提供 | 如需应回溯 MIMIC-CXR 原始患者表(同样受 DUA 约束) |
| 就医类型 | 急诊与住院为主,ICU 占比高 | 重症患者多,AP 卧位片比例高 |
§2.5 临床价值
放射科报告本质上记录的是医生的复杂临床推理:异常所在解剖位置用于缩小诊断范围,并整合 CT、化验等其他模态信息;床旁医生则靠序列检查追踪治疗效果。Chest ImaGenome 把这两类推理显式结构化——“属性挂在哪个区域"与"和上次比怎么变了”——因此可支撑:肺炎入院后吸收过程的自动监测、气胸/肺水肿的随访预警、肺结节/间质性肺病的门诊间隔复查对比等场景的模型研究(论文 Clinical Applications 节)。同时,区域级结构化标签为报告生成模型提供了"说了什么、在哪说的"的可解释性评测维度,这是全局标签数据集无法实现的。
§2.6 金标准对照表
| 维度 | silver(全量) | gold(金标准) |
|---|---|---|
| 覆盖 | 242,072 张后前位胸片 | 500 名患者前两次检查共 1,000 张图 |
| 标注方式 | 规则式 NLP + atlas 边界框流水线自动生成 | 人工标注,采用"确认或纠正(agree-or-correct)"策略 |
| 边界框质量 | 自动检测,约 7% 初始失败框由 Faster R-CNN 修正 | 1,071 张图人工验证/修正;303 张缺框图人工补标;IoU 0.929-0.995 |
| 关系质量 | 对象-属性 F1 0.939;比较关系(报告级)F1 0.796-0.823 | 人工一致性 IA 0.984(对象-属性)/ 0.962(比较关系) |
| 性质 | 弱监督、含噪声、量大 | 高质量、量小,适合评测与清洗锚点 |
| 使用建议 | 训练 | 评测、校准、噪声过滤参考 |
数据来源:PhysioNet 官方页 与 论文。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐子集 | 大小/形式 | 理由 |
|---|---|---|---|
| 大规模训练(检测/分类/grounding) | silver_dataset(scene_graph.zip + splits) | 242,072 个 scene graph JSON | 全量自动标注,覆盖最广 |
| 高质量评测或噪声校准 | gold_dataset | 500 名患者、1,000 张图 | 人工验证,IA ≥ 0.96 |
| 句子级 grounding / 短语定位 | silver + 清洗(见 §6.5 坑点 3/4) | NLP 对齐的句子-区域对 | 需自行过滤否定句与父区域冗余框 |
| 训练需要像素图像 | 另行申请 MIMIC-CXR-JPG v2.0.0/2.1.0 | 约 377,110 张 JPG | 本数据集只含标注,不含图像(MIMIC-CXR-VQA 获取说明) |
| 知识图谱/本体研究 | study_level_attribute_rdfgraphs.json | RDF 三元组 | 官方提供的 enriched RDF 形态 |
§3.1 模态详情
- 影像标注:仅覆盖后前位(frontal)胸片,viewpoint 字段区分 AP(床旁卧位/半卧位)与 PA(站立位)两种投照;每张图一个 scene graph JSON。
- 坐标系:边界框坐标 (x1, y1, x2, y2) 定义在"padding + 缩放至 224×224"的图像空间;原图坐标保存在
original_*字段(官方页)。这是使用本数据集最容易被忽视的技术细节(详见 §6.5 坑点 1)。 - 文本派生属性:属性来自报告的 finding 与 impression 部分句子,
reason_for_exam字段保留检查原因(患者病史摘录);与 Visual Genome 的"问题-答案"类比中,检查原因即"问题",报告抽取的知识图谱应包含对应"答案"(论文 Table 2)。 - 知识图谱形态:除 per-image JSON 外,官方提供检查级别的 enriched RDF 图(study_level_attribute_rdfgraphs.json)与 neo4j/NetworkX 可视化脚本。
§3.2 按子集样本数
| 子集/对象 | 数量 | 说明 |
|---|---|---|
| silver scene graph | 242,072 张图 | 自动标注(官方页) |
| 源报告 | 217,013 份 | MIMIC-CXR v2.0.0 |
| 解剖位置(对象) | 29 个 | 含左右肺、心脏轮廓、纵隔、肋骨等,附边界框 |
| 对象-属性关系组合 | 1,256 种 | 属性 7 大类(categoryID) |
| 词典命名实体 | 271 种 | CXR 相关命名实体 |
| 纵向比较关系 | 670,000+ 条 | improved/worsened/no change |
| gold standard | 500 名患者 / 1,000 张图 | 每人前两次检查 |
| bbox 人工验证/修正 | 1,071 张图 | 用于训练 Faster R-CNN 修正约 7% 失败框 |
| 缺框人工补标 | 303 张图 | 质量保证子集 |
| images_to_avoid | 1,000 名患者的图像 | 训练/验证时应剔除(防泄漏,见 §5.3) |
§3.3 数据格式表
| 内容 | 格式 | 文件(目录) | 说明 |
|---|---|---|---|
| 每图场景图 | JSON(逐图一个文件,打包 zip) | silver_dataset/scene_graph.zip | objects / attributes / relationships 三段结构 |
| 检查级 RDF 图 | JSON(RDF 三元组) | silver_dataset/study_level_attribute_rdfgraphs.json | enriched 知识图谱形态 |
| 处理后句子 | TXT | silver_dataset/cxr-mimic-v2.0.0-processed-sentences_all.txt | NLP 流水线输入的预处理句子 |
| 数据划分 | CSV | silver_dataset/splits/(train/valid/test) | 按患者划分 |
| 金标准关系 | TXT | gold_dataset/gold_attributes_relations_500pts_500studies1st.txt 等 | 两次检查的关系标注 |
| 金标准边界框 | CSV | gold_dataset/gold_bbox_coordinate_annotations_1000images.csv 等 | 含 4 位标注者分文件(1_C/1_W/2_J/2_S) |
| 坐标换算表 | CSV | gold_dataset/gold_bbox_scaling_factors_original_to_224x224.csv | 原图 ↔ 224×224 缩放因子 |
| 统计与评估 | Jupyter Notebook | analysis/*.ipynb | 官方统计/评估复算脚本 |
§3.4 存储大小
官方页面未公布数据集总量(GB)。核心包为 silver_dataset/scene_graph.zip(解压后含 242,072 个 JSON);gold、utils、analysis 目录体积较小。建议预留 10-20 GB 磁盘以容纳解压与中间产物;若同时训练像素图像,MIMIC-CXR-JPG 需另按其官方说明预留数百 GB 级磁盘(MIMIC-CXR 官方页)。
§3.5 标注方式
- 自动(主体):规则式 NLP 流水线从报告句子抽取对象-属性-比较关系;基于图谱(atlas)的检测器为 29 个解剖位置生成边界框。
- 自动修正:以 1,071 张人工修正图训练 Faster R-CNN,修正初始流水线约 7% 的失败框(过小或缺失)(官方页)。
- 人工(金标准):500 名患者的 1,000 张图,采用 agree-or-correct 高效标注策略;另对 303 张缺框图人工补标。
- 本体构建:CXR 本体由放射科医生构建,节点/关系映射 UMLS CUI(含 RadLex)。
§3.6 标注者资质与一致性
人工标注由研究团队(含临床背景合作者)完成,本体设计有放射科医生参与。官方报告的一致性指标:对象-属性关系抽取的标注者间一致性(IA)为 0.984;对象-对象比较关系为 0.962。自动流水线质量:对象-属性关系 F1 0.939(句级与报告级均为 0.939);比较关系 attribute-sensitive 句级 F1 0.690、报告级 0.796,attribute-blind 0.747/0.823——比较关系的召回(句级 0.590-0.663)明显偏低,使用时应预期漏标(论文 Table 3/4)。
§3.7 采集周期
底层报告与影像采集于 2011-2016(MIMIC-CXR 窗口);数据集标注流水线于 2021 年构建完成,PhysioNet v1.0.0 发布于 2021-07-13。数据集为静态快照,v1.0.0 至今无增量更新(官方页)。
§3.8 地域覆盖
单中心:美国马萨诸塞州波士顿 Beth Israel Deaconess Medical Center。无多中心、多地域数据;跨中心泛化必须依赖外部验证集(见 §7.3)。
§3.9 设备规格
本数据集的 scene graph 未包含采集设备型号字段(仅 viewpoint 区分 AP/PA)。如需设备元数据(DR/CR 机型、曝光参数等),应回溯 MIMIC-CXR 的原始 DICOM 元数据,并同样遵守其 DUA。
§3.10 深度溯源链
MIMIC-CXR v2.0.0(报告 + DICOM 影像,BIDMC,2011-2016)
│ Preprocess_mimic_cxr_v2.0.0_reports.ipynb(utils/report_preprocessing)
▼
预处理句子(cxr-mimic-v2.0.0-processed-sentences_all.txt,217,013 份报告)
│ 规则式 NLP 流水线(CXR 本体 + UMLS CUI 词典,271 实体)
▼
对象-属性-关系三元组(句级)
│ atlas 边界框检测 + Faster R-CNN 修正(1,071 张人工修正图训练)
▼
silver_dataset:242,072 个 scene graph JSON + RDF 图 + 患者级 splits
│ 人工金标准(500 患者 / 1,000 图,agree-or-correct,IA 0.96-0.98)
▼
gold_dataset:gold_* 文件(关系、边界框、坐标换算表)
各环节对应文件与官方评估 notebook 见 PhysioNet 官方页。
§4 数据结构
§4.0 目录树
chest-imagenome/1.0.0/
├── silver_dataset/ # 自动标注(主体)
│ ├── scene_graph.zip # 242,072 个 scene graph JSON(每图一个文件)
│ ├── cxr-mimic-v2.0.0-processed-sentences_all.txt
│ ├── study_level_attribute_rdfgraphs.json # 检查级 RDF 知识图谱
│ └── splits/
│ ├── train.csv # 官方训练划分(按患者)
│ ├── valid.csv
│ ├── test.csv
│ └── images_to_avoid.csv # 金标准相关 1,000 名患者图像(防泄漏剔除)
├── gold_dataset/ # 人工金标准(500 患者 / 1,000 图)
│ ├── gold_attributes_relations_500pts_500studies1st.txt
│ ├── gold_comparison_relations_500pts_500studies2nd.txt
│ ├── bbox_coordinate_annotations_1_C.csv # 4 位标注者分文件
│ ├── bbox_coordinate_annotations_1_W.csv
│ ├── bbox_coordinate_annotations_2_J.csv
│ ├── bbox_coordinate_annotations_2_S.csv
│ ├── gold_bbox_coordinate_annotations_1000images.csv
│ ├── gold_object_attribute_with_coordinates.txt
│ ├── gold_object_comparison_with_coordinates.txt
│ ├── gold_all_sentences_500pts_1000studies.txt
│ ├── gold_bbox_scaling_factors_original_to_224x224.csv
│ └── auto_bbox_pipeline_coordinates_1000_images.txt
├── utils/
│ ├── report_preprocessing/Preprocess_mimic_cxr_v2.0.0_reports.ipynb
│ ├── scene_postprocessing/scenegraph_postprocessing.py
│ ├── annotation_utils/bbox_object_annotation/ # 边界框纠正模板 notebook
│ ├── cxr_knowledge_graph_neo4j.pdf
│ └── visualization.ipynb
└── analysis/
├── generate_scenegraph_statistics.ipynb
├── object-attribute-relation_evaluation.ipynb
├── object-object-comparison-relation_evaluation.ipynb
└── object-bbox-coordinates_evaluation.ipynb
§4.1 DAIMS 字段字典
以 silver scene graph JSON 的核心字段为对象(8 列:字段名/类型/说明/示例值/AI 用途/观测误差/信息性缺失编码/取值范围):
| 字段 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image_id | 文本 | MIMIC-CXR 的 dicom_id,连接像素图像的主键 | 57828312-... |
对齐 MIMIC-CXR-JPG | 无 | 无此键即无标注 | MIMIC-CXR dicom_id 域 |
| patient_id | 文本 | 去标识患者号(subject_id) | p10000327 |
患者级分组/防泄漏 | 无 | — | MIMIC 患者域 |
| study_id | 文本 | 检查号 | s57828312 |
检查级聚合 | 无 | — | MIMIC 检查域 |
| viewpoint | 文本 | 投照方式 | AP |
投照分层评估 | 投照标注错误罕见 | — | AP / PA |
| gender | 文本 | 性别(二元) | F |
公平性分析 | 记录误差 | — | F / M |
| age_decile | 文本 | 年龄十分位分箱 | 50-60 |
年龄分层 | 分箱损失精度 | — | 十分位区间 |
| reason_for_exam | 文本 | 检查原因(病史摘录) | Shortness of breath |
多模态问答(Visual Genome 类比中的"问题") | 抄录风格差异 | 空即未记录 | 自由文本 |
| StudyOrder | 整数 | 该患者第几次检查 | 2 |
纵向任务筛选 | 无 | — | 1, 2, 3, … |
| StudyDateTime | 日期 | 检查时间(已平移至未来) | 2135-04-11 |
时序排序 | 平移破坏绝对时点 | — | 未来日期 |
| objects | 嵌套 | 29 个解剖对象及边界框(224×224 空间 + original_* 原图坐标) | {"left lung": {"bbox": [x1,y1,x2,y2]}} |
检测/定位 | 约 7% 初始失败框已修正;缺框(见坑点 7) | 缺框 ≠ 不可见(可能不在视野) | 29 个预定义解剖名 |
| attributes | 嵌套 | `< categoryID \ | relation \ | label >` 格式的属性,挂接对象 | `anatomicalfinding\ | has\ | pneumonia` |
| relationships | 嵌套 | 对象间/跨检查关系;比较关系 `comparison\ | yes\ | improved` 等 | `comparison\ | yes\ | worsened` |
| severity_cues / temporal_cues | 文本 | 严重度/时间性修饰符 | mild、chronic |
分级任务 | 口语化报告导致 cue 稀疏 | 无 cue 即未修饰 | hedge/mild/moderate/severe;acute/chronic |
§4.2 标签分布与属性体系
- 7 类属性类别(categoryID):
anatomicalfinding(40 余种影像征象)、disease(10 种疾病诊断)、texture(opacity、calcified、lucency 等质地)、technicalassessment(low lung volumes、rotated、artifact 等技术评估)、tubesandlines(12 种管路)、devices(起搏器、瓣膜、搭桥等 5 种)、nlp(normal/abnormal 显式极性)(论文补充材料)。 - 组合规模:29 个对象 × 上述属性体系构成 1,256 种关系组合;词典 271 个命名实体;论文 Table 1 汇总标签数为 131。
七类 categoryID 的语义角色与建模提示:
| categoryID | 语义角色 | 官方披露的规模线索 | 建模提示 |
|---|---|---|---|
| anatomicalfinding | 影像征象(观察层) | 40 余种征象 | 与 texture 类存在语义近邻(如 hazy opacity),输出空间应允许一区域多标签 |
| disease | 疾病诊断(解释层) | 10 种疾病 | 挂在区域上(如 pneumonia 挂肺区),是"区域级诊断"任务的目标空间 |
| texture | 密度/质地描述 | opacity、calcified、lucency 等 | 与 anatomicalfinding 联合建模可提升定位可解释性 |
| technicalassessment | 图像质量/体位 | low lung volumes、rotated、artifact 等 | 适合做部署前的图像质量门控(quality gate) |
| tubesandlines | 管路 | 12 种管路 | 天然带位置语义,验证"属性挂对区域"的最佳试金石 |
| devices | 体内/体外器械 | 5 种(起搏器、瓣膜、搭桥等) | 样本量小、长尾明显,评测时按类报告 macro 指标 |
| nlp | 显式极性 | normal / abnormal | 唯一含"显式正常"语义的类别,可对冲"没写 = 没有"误读 |
- 注意:数据集不提供现成的"每类属性多少阳性样本"统计表,官方
analysis/generate_scenegraph_statistics.ipynb可复算;长尾属性(罕见征象)占比高,训练前应统计并决定分组策略(见 §7.7 DAIMS"罕见类分组"项)。
§4.3 关键统计
| 指标 | 数值 | 来源 |
|---|---|---|
| 对象-属性关系抽取 F1(句级/报告级) | 0.939 / 0.939 | 论文 Table 3 |
| 比较关系 F1(attribute-sensitive,句级/报告级) | 0.690 / 0.796 | 论文 Table 4 |
| 比较关系 F1(attribute-blind,句级/报告级) | 0.747 / 0.823 | 同上 |
| 标注者间一致性 IA(对象-属性 / 比较) | 0.984 / 0.962 | 同上 |
| gold 边界框 IoU 范围 | 0.929-0.995(left lung 0.976 / right lung 0.983 / trachea 0.995) | 官方页 |
| 初始 bbox 流水线失败率 | 约 7%(已用 Faster R-CNN 修正) | 同上 |
| 比较关系训练集分布 | worsened 5,802 / improved 4,713(valid 808/685;test 1,638/1,349) | 论文 Table |
| 全库边界框总量(清洗前,第三方统计) | 2,400,524 个 → GMPG 清洗后 426,749 个 | arXiv:2512.01085 |
§4.4 数据层级
患者(patient_id / subject_id)
└── 检查 study(study_id,StudyOrder 序号,StudyDateTime)
└── 图像(image_id = dicom_id,viewpoint = AP/PA)
└── scene graph(objects → attributes → relationships)
└── 跨检查比较关系(仅 StudyOrder ≥ 2 的检查,指向同患者上一次检查)
纵向建模时,"样本"应定义为 (患者, 第 n 次检查, 第 n-1 次检查) 的图像对;患者级隔离见 §5.3。
§4.5 缺失值与信息性缺失
| 现象 | 语义 | 处理建议 |
|---|---|---|
| 某对象无属性记录 | 不代表"正常"!可能是报告未描述(短报告常见) | 结合 nlp 类 normal/abnormal 显式极性;把"缺失"当阴性会引入假阴性 |
| 边界框缺失(303 张补标对象) | 流水线失败 或 该结构确不在视野内 | costophrenic angles 与 apical zones 最常见;gold 文件区分"真缺"与"漏检" |
| severity/temporal cue 缺失 | 报告未使用程度词 | 按"未修饰"单独编码,勿填众数 |
| images_to_avoid.csv 存在 | 这些图像参与金标准,需从训练剔除 | 泄漏防护(见 §5.3) |
| StudyDateTime 为未来日期 | 去标识化平移 | 排序仍有效,勿当真实时间 |
§5 数据划分与使用建议
§5.1 官方划分
官方在 silver_dataset/splits/ 提供 train/valid/test 三个 CSV,按患者划分(同一患者不会跨集),下游研究沿用该划分——例如多标签病理分类工作在官方划分上使用 234,307 个训练样本(arXiv:2309.02578)。划分文件与 scene graph 通过 image_id 关联。
§5.2 社区惯例划分
- MIMIC-CXR-VQA(NeurIPS 2023 D&B):基于本数据集 + MIMIC-CXR-JPG + MIMIC-IV 重建 VQA 划分,官方提供 build 脚本(GitHub: dek924/mimic-cxr-vqa)。
- Grounding 类工作:GMPG 等研究对 scene graph 做清洗后自建划分,并把清洗版发布回 PhysioNet(arXiv:2512.01085)。
- 时间变化任务:论文示例与 CheXRelNet 等以"检查对"为样本单位,test 集约 22,553 样本规模被第三方榜单采用(SOTA2)。
§5.3 泄漏风险与规避(重点)
- gold-silver 重叠泄漏:1,000 名金标准患者的图像同时存在于 silver 中。若用 gold 做测试而训练集未剔除,指标会虚高。规避:训练/验证前必须剔除
splits/images_to_avoid.csv列出的全部图像。 - 患者内跨检查泄漏:同一患者多次检查高度相似。任何自定义划分必须以 patient_id 为组(GroupShuffleSplit/GroupKFold),禁止按 image_id 随机划分。
- 纵向任务的时间泄漏:比较关系指向"上一次检查",若上一次检查落入测试集而当前检查在训练集,会造成信息倒灌。应按"患者首次检查时间"切分。
§5.4 交叉验证建议
患者级 GroupKFold(5 折)+ 每折内重算属性分布;纵向任务按患者首次检查时间分层。比较关系正负类不平衡(train:worsened 5,802 vs improved 4,713)建议配合分层抽样与类权重。
- 分组键的选取:以 patient_id 为唯一分组键;切勿以 study_id 分组——同一患者的多次检查分属不同 study,仍会跨集。
- 长尾属性的处理:每折训练前重算 7 类 categoryID 的阳性样本数,对验证折中缺失的类别在汇总指标时显式标注"该折不可评",避免 macro-F1 被零样本类别稀释。
- 纵向任务的嵌套结构:同一患者的检查对共享两端的图像,因此检查对不能按对随机分折;正确做法是按患者首次检查时间排序后分位切分(时间外推验证),这更贴近真实部署场景。
- 与官方划分的关系:官方 train/valid/test 已按患者划分,若算力有限做不了 5 折,至少报告官方 test 上的单次结果 + 随机种子方差(≥3 个种子)。
§5.5 外部验证建议
- 跨数据集验证首选 MIMIC-CXR 官方标签(同源,可检验标注一致性)与 CheXpert/PadChest(跨中心,检验泛化);注意术语体系需经 UMLS CUI 对齐后再映射。
- grounding 类任务可用专家标注的 MS-CXR 做外部校准(weak-to-expert 范式,arXiv:2512.01085)。
- 报告"外部验证结论"时必须注明本数据集为单中心自动标注,指标差异不能全部归因于模型能力(见 §7.3)。
§6 AI 就绪指南
§6.0 云端快速启动
本数据集托管于 PhysioNet,无官方 Kaggle/HuggingFace 镜像;由于 license 限制,任何环境(本地或云端)都需先完成凭证化。推荐流程:本地下载 → 上传至你控制的云端存储/对象桶 → 云端训练。切勿将数据转传至公开 bucket 或共享盘(违反 DUA)。
§6.1 快速上手
# ============================================================
# 环境预期与目录结构(data_root 拼接关系):
# DATA_ROOT/
# ├── chest-imagenome/1.0.0/ # 本数据集(wget 下载解压)
# │ ├── silver_dataset/
# │ │ ├── scene_graph.zip # 解压后为 242,072 个 JSON
# │ │ └── splits/{train,valid,test}.csv + images_to_avoid.csv
# │ └── gold_dataset/ # 最小可用子集:先用它跑通全流程
# └── mimic-cxr-jpg/2.1.0/ # 像素图像(另签 DUA 后下载)
# └── files/p10/p10000327/s57828312/<dicom_id>.jpg
# 说明:scene graph 的 image_id 即 MIMIC-CXR 的 dicom_id,
# 由 dicom_id 前缀可推出图像相对路径 files/p<patient_id>/p<patient_id>/s<study_id>/<dicom_id>.jpg
# 最小可用子集:gold_dataset(500 名患者、1,000 张图),体积小、质量高,
# 建议先用 gold 跑通"JSON 解析 → 坐标还原 → 画框"再上全量 silver。
# ============================================================
import json, zipfile
from pathlib import Path
DATA_ROOT = Path("/data") # 修改为你的挂载路径
SG_DIR = DATA_ROOT / "chest-imagenome/1.0.0/silver_dataset"
# 1) 解压 scene graph 包(只需一次)
if not (SG_DIR / "scene_graphs").exists():
with zipfile.ZipFile(SG_DIR / "scene_graph.zip") as zf:
zf.extractall(SG_DIR / "scene_graphs")
# 2) 读一个 scene graph,理解三段结构:objects / attributes / relationships
sample = next((SG_DIR / "scene_graphs").rglob("*.json"))
sg = json.loads(sample.read_text())
print(sg.keys()) # image_id, viewpoint, patient_id, study_id, gender,
# age_decile, reason_for_exam, StudyOrder, StudyDateTime, ...
print(list(sg["objects"].keys())[:5]) # 解剖对象名,如 left lung / cardiac silhouette
print(sg["objects"]["left lung"]["bbox"]) # 224x224 空间坐标 [x1, y1, x2, y2]
print(sg["objects"]["left lung"].get("original_bbox")) # 原图空间坐标(字段名以实际文件为准)
§6.2 数据获取
获取流程(5 步,全部免费):
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 注册 PhysioNet 账号 | physionet.org 注册 |
| 2 | 完成凭证化 | 完成 CITI “Data or Specimens Only Research” 课程并提交凭证(训练证书需在有效期内) |
| 3 | 签署 DUA | physionet.org/sign-dua/chest-imagenome/1.0.0/ |
| 4 | (训练图像)签 MIMIC-CXR-JPG 的 DUA | physionet.org/sign-dua/mimic-cxr-jpg/2.0.0/ |
| 5 | wget 下载 | 见下方命令;credentialing 审核通常需要 1-3 个工作日 |
# 下载本数据集(标注,体积较小)
wget -r -N -c -np --user <你的PhysioNet用户名> --ask-password \
https://physionet.org/files/chest-imagenome/1.0.0/
# 下载像素图像(另行 DUA;体积大,建议 nohup 挂后台)
wget -r -N -c -np --user <你的PhysioNet用户名> --ask-password \
https://physionet.org/files/mimic-cxr-jpg/2.0.0/
来源:MIMIC-CXR-VQA 仓库 Access Requirements 节与 PhysioNet 官方页。
§6.3 预处理全流程
流程:scene graph JSON → 表格化 → 坐标还原到原图空间 → 否定/正常句过滤 → 父子区域去重 → 与 MIMIC-CXR-JPG 对齐。
import pandas as pd
def scene_to_rows(sg: dict) -> list[dict]:
"""把一个 scene graph JSON 拍平为区域级属性行。"""
rows = []
for obj_name, obj in sg["objects"].items():
for attr in obj.get("attributes", []):
# 属性格式 < categoryID | relation | label >,如 anatomicalfinding|has|pneumonia
cat, rel, label = [p.strip() for p in attr.split("|")]
rows.append({
"image_id": sg["image_id"],
"patient_id": sg["patient_id"],
"study_id": sg["study_id"],
"study_order": sg["StudyOrder"],
"viewpoint": sg["viewpoint"],
"object": obj_name,
"category": cat,
"label": label,
# 224x224 空间坐标
"bbox_224": obj.get("bbox"),
# 原图坐标优先(若存在 original_* 字段则直接用,见坑点 1)
"bbox_orig": obj.get("original_bbox"),
})
return rows
# 读取划分文件并剔除防泄漏图像(坑点 2)
splits = pd.read_csv(SG_DIR / "splits/test.csv")
avoid = pd.read_csv(SG_DIR / "splits/images_to_avoid.csv")
splits = splits[~splits["image_id"].isin(avoid["image_id"])]
坐标还原(224×224 → 原图像素):若 scene graph 未直接提供 original_* 字段,可用 gold 目录的缩放因子表 gold_bbox_scaling_factors_original_to_224x224.csv 或自行计算。设原图宽 W、高 H,等比缩放至 224 后不足处 padding,则 224 空间内有效区域宽 s_w = W / max(W, H) * 224、高 s_h = H / max(W, H) * 224,x 轴偏移 (224 - s_w) / 2、y 轴偏移 (224 - s_h) / 2;还原公式:
def bbox_224_to_orig(b, W, H):
"""b = (x1, y1, x2, y2) in 224x224 padded space → 原图像素坐标。"""
scale = 224 / max(W, H)
ox, oy = (224 - W * scale) / 2, (224 - H * scale) / 2
x1, y1, x2, y2 = b
return ((x1 - ox) / scale, (y1 - oy) / scale, (x2 - ox) / scale, (y2 - oy) / scale)
与 MIMIC-CXR-JPG 对齐:由 image_id(dicom_id)构造相对路径 files/p{pid}/p{pid}/s{sid}/{dicom_id}.jpg;建议先只对齐 train.csv 中前 1,000 张验证路径拼写,再批量处理。
§6.4 PyTorch DataLoader 完整代码
# ============================================================
# 任务示例:29 个解剖区域的边界框检测 + 区域级属性多标签分类
# 输入:MIMIC-CXR-JPG 像素图;标签:Chest ImaGenome scene graph
# 依赖:torch >= 2.0, torchvision, pandas, Pillow
# ============================================================
import json
from pathlib import Path
import pandas as pd
import torch
from PIL import Image
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
DATA_ROOT = Path("/data")
JPG_ROOT = DATA_ROOT / "mimic-cxr-jpg/2.0.0/files"
SG_DIR = DATA_ROOT / "chest-imagenome/1.0.0/silver_dataset/scene_graphs"
ANATOMY = ["left lung", "right lung", "cardiac silhouette", "mediastinum", ...] # 完整 29 类以官方文件为准
train_df = pd.read_csv(DATA_ROOT / "chest-imagenome/1.0.0/silver_dataset/splits/train.csv")
class ImaGenomeRegionDataset(Dataset):
def __init__(self, df, transform=None):
self.df = df.reset_index(drop=True)
self.transform = transform or transforms.Compose([
transforms.Resize((512, 512)), # 保持原图长宽比由 Resize 默认处理
transforms.ToTensor(),
transforms.Normalize([0.485], [0.229]), # 胸片近灰度,单通道均值即可
])
def __len__(self):
return len(self.df)
def __getitem__(self, idx):
row = self.df.iloc[idx]
sg = json.loads((SG_DIR / f"{row['image_id']}.json").read_text())
img = Image.open(JPG_ROOT / f"p{sg['patient_id']}" / f"p{sg['patient_id']}"
/ f"{sg['study_id']}" / f"{sg['image_id']}.jpg").convert("RGB")
W, H = img.size
img = self.transform(img)
# 目标 1:区域存在性多标签(29 维);目标 2:每个区域的 224 空间 bbox
present = torch.zeros(len(ANATOMY))
boxes = torch.zeros(len(ANATOMY), 4)
for i, name in enumerate(ANATOMY):
if name in sg["objects"]:
present[i] = 1.0
boxes[i] = torch.tensor(sg["objects"][name]["bbox"], dtype=torch.float32)
return img, present, boxes, (W, H)
loader = DataLoader(ImaGenomeRegionDataset(train_df), batch_size=32,
shuffle=True, num_workers=8, pin_memory=True)
纵向比较关系任务的 Dataset(检查对采样)
比较关系(improved/worsened/no change)是本数据集区别于所有静态胸片数据集的核心资产。与静态任务不同,纵向任务的样本单位是检查对(当前检查 + 上一次检查),且比较关系只存在于 StudyOrder ≥ 2 的检查上;训练集含 worsened 5,802 / improved 4,713 条,类别不平衡需要类权重(见坑点 6)。
# ============================================================
# 纵向比较关系预测:以 (当前检查, 上一次检查) 图像对为样本单位
# 标签:improved / worsened / no change(比较关系的 predicate)
# 关键约束:
# 1) 仅 StudyOrder >= 2 的检查携带比较关系
# 2) 患者级划分(官方 splits 已保证),禁止按 image_id 随机划分
# 3) 剔除 images_to_avoid.csv(gold 重叠泄漏,见坑点 2)
# ============================================================
import csv, json
from collections import defaultdict
from pathlib import Path
import torch
from torch.utils.data import Dataset
class ImaGenomeComparisonDataset(Dataset):
"""样本 = (current_sg, previous_sg, label)。
标签从当前检查 scene graph 的 relationships 段中收集:
predicate ∈ {improved, worsened, no change} 的比较关系。
属性特征直接读 scene graph(无需像素图也能做结构基线)。
"""
def __init__(self, split_csv: Path, sg_dir: Path, exclude_csv: Path | None = None):
self.sg_dir = sg_dir
self.exclude = set()
if exclude_csv is not None: # 坑点 2:gold 重叠泄漏
with open(exclude_csv) as f:
self.exclude = {row["image_id"] for row in csv.DictReader(f)}
# 第一遍:按 patient 建立检查序列索引,确保"上一次检查"可查
studies = defaultdict(list) # patient_id -> [(StudyOrder, study_id)]
pairs = []
with open(split_csv) as f:
for row in csv.DictReader(f): # 列:image_id, ...(官方划分文件)
img_id = row["image_id"]
if img_id in self.exclude:
continue
sg = json.loads((sg_dir / f"{img_id}.json").read_text())
studies[sg["patient_id"]].append(
(int(sg["StudyOrder"]), sg["study_id"]))
if int(sg["StudyOrder"]) >= 2: # 约束 1:仅二次及以后检查
pairs.append((sg["patient_id"], sg["study_id"]))
self.prev_map = {
pid: dict(sorted(orders)) for pid, orders in studies.items()
} # patient_id -> {StudyOrder: study_id},StudyOrder 保序(日期已平移但顺序有效)
self.pairs = pairs
def __len__(self):
return len(self.pairs)
def __getitem__(self, idx):
pid, sid = self.pairs[idx]
cur_order = next(o for o, s in self.prev_map[pid].items() if s == sid)
prev_sid = self.prev_map[pid][cur_order - 1] # 患者内上一次检查
cur, prev = self._attrs(sid), self._attrs(prev_sid)
diff = cur - prev # 区域 × 属性的变化向量
label = self._change_label(sid) # improved/worsened/no change
return torch.from_numpy(diff).float(), label
def _attrs(self, sid):
"""把该 study 全部 scene graph 的对象-属性拍平为固定维向量(示意)。"""
raise NotImplementedError # 按你的属性词典(271 实体)做 one-hot/多热
def _change_label(self, sid):
"""从 relationships 段读取比较关系 predicate;多条时按论文口径聚合。"""
raise NotImplementedError # attribute-sensitive/blind 两套口径见 §8.3
实现提示:
improved/worsened/no change的谓词同时携带属性语义(“对哪个属性而言变好/变差”)。论文 Table 4 区分 attribute-sensitive(谓词+属性都要对)与 attribute-blind(只看方向)两套评测口径——实现_change_label时请保持这两套口径可切换,否则无法与 §8.1 榜单对比。若只需要方向标签,CheXRelNet(§8.7)的官方实现是最直接的参照。
§6.5 坑点清单(8 个真实失败模式)
⚠️ 坑点 1:边界框坐标在 224×224 填充空间,不在原图像素空间(分类:预处理陷阱)
问题:scene graph 的 bbox 坐标 (x1,y1,x2,y2) 定义在"padding + resize 到 224×224"之后的图像空间;直接把它画到原图(如 3040×3040 的 CXR)上,框会挤在左上角且比例全错。
症状:可视化时边界框远小于解剖结构、整体偏向左上;用框裁剪原图得到的区域内容完全不对;训练检测模型 loss 不收敛或 IoU 恒定在极低值。
解决:
- 简单方法:优先读取对象中的
original_*字段(官方已保存原图坐标)。- 进阶方法:用 §6.3 的
bbox_224_to_orig()公式自行还原,或用 gold 目录的gold_bbox_scaling_factors_original_to_224x224.csv查表换算;注意胸片多为方形,padding 偏移常为 0,但宽扁图(AP 床旁片)会出现显著 y 偏移。- SOTA 方法:在 Dataset 内统一封装坐标系(返回原图坐标 + 原图尺寸),训练时再按模型输入尺寸做仿射变换,彻底避免"坐标空间"与"张量尺寸"耦合。
参考:PhysioNet 官方页 Coordinates 节;gold 缩放因子表。
⚠️ 坑点 2:gold 标准图像混入训练集造成泄漏(分类:数据泄漏)
问题:官方 gold dataset 的 1,000 张图(500 名患者)全部来自 silver 的 242,072 张图,官方为此提供了
images_to_avoid.csv(1,000 名患者)。若用 gold 做评测而不从训练/验证集中剔除这些图像,评测对象实际上在训练中被见过(且是更高质量的监督),指标严重虚高。
症状:gold 上的离线指标显著优于任何论文基线;换个外部测试集立刻崩掉;同一患者多次出现在 train 与 gold test 中。
解决:
- 简单方法:合并前按
images_to_avoid.csv的 image_id 过滤训练与验证集。- 进阶方法:过滤后再按 patient_id 做一次集合差校验,确保 500 名 gold 患者的所有检查全部移出(不止前两次检查的图像)。
- SOTA 方法:构建数据管道时把"泄漏检查"做成单元测试(断言 train/test 患者交集为空、gold 图像交集为空),CI 中强制执行。
参考:PhysioNet 官方页 splits 节。
⚠️ 坑点 3:否定句/正常句仍然挂在解剖框上(分类:标签理解)
问题:scene graph 中大量句子是"no pneumothorax"“lungs are clear"这类否定或正常描述,NLP 流水线仍会把它们对齐到解剖区域。把 region-attribute 对全当"阳性"训练,会把"正常胸片"学成"所有区域都有属性”,阳性率虚高、模型倾向过度报告。
症状:区域级分类器阳性预测率远高于临床先验;报告生成的模型输出大量假阳性发现;按属性统计阳性比例时 pneumonia 等类异常偏高。
解决:
- 简单方法:只保留 categoryID 为
anatomicalfinding/disease的属性,并排除显式nlp类 normal 标记的对象-属性对。- 进阶方法:利用 NegEx/SparkNLP 类规则或医疗 NER 模型对
reason_for_exam与句子做二次否定检测,剔除否定上下文。- SOTA 方法:参照 GMPG 工作的两阶段清洗:先用数据集自带的句子级 normality 标签把否定/正常句置为零框目标,再用 LLM 做区域过滤(LLaMA-3-70B 提示词见其论文),把"每句框数"从均值 2.99 降到 0.56。
参考:Generalised Medical Phrase Grounding(arXiv:2512.01085)。
⚠️ 坑点 4:父子区域冗余框——一个句子挂到多个嵌套区域(分类:工程陷阱)
问题:句子常同时被挂到粗父区域与细子区域(如"left lung"与"left lower lung zone"),GMPG 统计显示清洗前全库 2,400,524 个框中存在大量冗余,清洗后降至 426,749 个(约 -80%)。直接用它训练定位/grounding 模型,会学到"每个发现都对应一串嵌套框"的错误先验。
症状:grounding 模型输出一堆互相嵌套的框;mAP 被"预测了父框也算对"污染;定位评价(mIoU)偏低且难提升。
解决:
- 简单方法:按解剖本体手工维护"父-子"表(left lung ⊃ left upper/mid/lower lung zone 等),保留最细命中。
- 进阶方法:训练一个区域过滤分类器(输入句子 + 候选区域,输出最具体区域),用 gold 的句子-区域对当监督。
- SOTA 方法:直接采用 GMPG 的 LLM 区域过滤提示词与两阶段清洗策略,或下载其发布在 PhysioNet 的清洗版数据。
参考:arXiv:2512.01085。
⚠️ 坑点 5:laterality(左/右)跨句判断失败是头号标签噪声源(分类:标签理解)
问题:报告常写"There is a small effusion. Trace on the left."——属性与侧别跨句分离。官方承认多数假阳性来自 laterality 判断失败(信息跨出句子边界),句级比较关系召回仅 0.590-0.663。直接使用意味着你的"left pleural effusion"标签中混着"实际是右侧"的样本。
症状:训练出的模型左右混淆率显著偏高;用 gold 复核时发现标签侧别错误集中在 effusion、opacities 等成对器官属性;区域分类器在 left/right 成对区域上 F1 明显低于中线结构。
解决:
- 简单方法:训练/评测时把左右成对区域合并为"单侧不区分"粒度,绕开侧别噪声。
- 进阶方法:仅保留 gold 验证过的高置信属性子集做监督;或对句子做共指消解后再确认侧别。
- SOTA 方法:用 500 患者金标准训练一个标签噪声清洗器(置信学习 cleanlab),对 silver 全量属性做可信度加权。
参考:论文 Table 3/4 与 Dataset Limitations 节。
⚠️ 坑点 6:比较关系只存在于第二次及以后的检查,且类别不平衡(分类:偏倚陷阱)
问题:670,000+ 比较关系只挂在 StudyOrder ≥ 2 的检查上;且训练集中 worsened(5,802)多于 improved(4,713)。若把"无比较关系"当"无变化"处理,首次检查的样本会全部变成 no change,彻底扭曲分布。
症状:纵向模型把几乎所有首次检查预测为 no change;按检查次数分层评估时第一次检查指标异常;类别加权后 improved 类召回虚高。
解决:
- 简单方法:纵向任务只用 StudyOrder ≥ 2 的样本;把首次检查单独成"基线"数据集,不进入比较关系训练。
- 进阶方法:对 worsened/improved 做类权重或重采样;用 attribute-blind 与 attribute-sensitive 两套指标分别评测。
- SOTA 方法:参考 CheXRelNet(MICCAI 2022)的比较关系建模范式:显式利用两图的解剖对应关系而非纯差分。
参考:论文 Change relation 统计表;CatalyzeX: CheXRelNet。
⚠️ 坑点 7:边界框缺失有两种语义——流水线失败 vs 结构真的不在视野内(分类:预处理陷阱)
问题:29 个解剖对象中部分图像缺框。官方指出缺框可能来自检测失败,也可能该结构确实被切出视野(costophrenic angles 与 apical zones 最常见);另有 303 张图被人工补标证明存在缺框。把"缺框"一律当"不可见"或一律当"漏检"都会引入偏差。
症状:肋膈角/肺尖类区域的存在性标签系统性地比实际偏多或偏少;检测模型在这些区域上假阴/假阳集中;跨区域统计时边缘结构样本量异常。
解决:
- 简单方法:对边缘区域(costophrenic angles、apical zones)把"缺框"单独编码为 unknown,不参与存在性训练。
- 进阶方法:用 gold 的 303 张补标图估计各区域的缺框率,对 silver 缺框按贝叶斯先验校正。
- SOTA 方法:训练前先跑官方
analysis/object-bbox-coordinates_evaluation.ipynb,按区域统计 IoU 与缺失率,建立区域级数据质量面板再决定取舍。
参考:PhysioNet 官方页 gold_dataset 节;论文。
⚠️ 坑点 8:像素图像不在包内,且受两套 DUA 约束(分类:工程陷阱)
问题:Chest ImaGenome 只含标注,不含图像。训练必须另下 MIMIC-CXR-JPG(另一份 DUA),并按 dicom_id 对齐;许多团队在打包、上传云端协作盘或发布衍生数据时无意违反再分发条款。
症状:Dataset 报 FileNotFoundError;对齐后样本数远小于 splits 行数(路径拼写或 viewpoint 过滤问题);论文发表阶段因不能公开衍生标注而被迫重做数据管道。
解决:
- 简单方法:先签齐两个 DUA;用
p{patient_id}/p{patient_id}/{study_id}/{dicom_id}.jpg相对路径对齐,跑通 100 张后再全量。- 进阶方法:只发布"image_id 列表 + 复现脚本"而非标注本体,让有权限的用户自行对齐(MIMIC-CXR-VQA 即采用此模式:预发布文件不含答案,凭凭证生成完整版)。
- SOTA 方法:在数据管道中实现 DUA 合规检查(禁止导出原始标注到外网存储),并在 Data Card 中记录两个数据集的版本号(chest-imagenome 1.0.0 + mimic-cxr-jpg 2.0.0/2.1.0)。
参考:MIMIC-CXR-VQA 仓库 Access Requirements;PhysioNet 官方页。
§6.6 数据增强建议
| 类别 | 操作 | 是否安全 | 说明 |
|---|---|---|---|
| 强度类 | 亮度/对比度抖动、高斯噪声 | ✅ | 不破坏空间标注;模拟曝光差异 |
| 压缩类 | JPEG 压缩伪影模拟 | ✅ | 模拟床旁片传输质量 |
| 空间类 | 随机平移 + 同步平移 bbox | ⚠️ | 必须同步变换框与 padding 补偿,注意 224 空间换算先行 |
| 空间类 | 水平翻转 | ❌ | 交换左右语义;left/right 属性与边界框标签全部失效 |
| 空间类 | 大角度旋转/剪切 | ❌ | 29 个框的轴对齐假设被破坏(需旋转框,实现复杂且易错) |
| 裁剪类 | 区域级裁剪(bbox 内 crop 后 resize) | ✅ | 区域分类任务推荐;保留框外上下文少量边距更好 |
§6.7 模型推荐
| 任务 | 推荐模型/框架 | 理由 |
|---|---|---|
| 解剖区域检测 | Faster R-CNN / DETR | 官方 bbox 流水线本身即用 Faster R-CNN;29 类目标明确 |
| 区域级属性分类 | DenseNet-121 + RoI 特征 / CheXGCN 式图模型 | 论文基线路线,融合区域依赖 |
| 句子 grounding | MDETR / MAIRA-2 类短语定位模型 | 需先做坑点 3/4 的清洗 |
| 纵向变化预测 | 双流 CNN + 关系头(CheXRelNet 范式) | 直接对标 670,000+ 比较关系 |
| 报告生成/诊断评测 | AnatomiX、CheXagent、RadVLM | Grounded Diagnosis 榜单主流(见 §8.1) |
| VQA | MIMIC-CXR-VQA 官方基线(UpDn/MedVQA 框架) | 模板化问答,注意其独立划分 |
§6.8 硬件需求
| 阶段 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| JSON 解析/统计 | 4 核 CPU / 16 GB 内存 | 8 核 / 32 GB | 纯 CPU;全量 242,072 个 JSON 拍平约数十分钟 |
| gold 全流程验证 | 1 张消费级 GPU(8 GB) | RTX 4090 级 | 1,000 张图即可跑通端到端 |
| silver 全量训练(检测) | 1 张 A100 40GB | 2-4 张 A100 | 242,072 张图,512px 输入,batch 32 起步 |
| 纵向/多模态大模型微调 | A100 80GB × 4 | 8×A100/H100 | 对齐图像对 + 报告文本,显存瓶颈在图像编码器 |
§6.9 评估指标代码
import torch
def iou_matrix(pred: torch.Tensor, gt: torch.Tensor, eps: float = 1e-7) -> torch.Tensor:
"""pred/gt: [N, 4] (x1, y1, x2, y2),同一坐标空间。"""
lt = torch.maximum(pred[:, None, :2], gt[None, :, :2])
rb = torch.minimum(pred[:, None, 2:], gt[None, :, 2:])
wh = (rb - lt).clamp(min=0)
inter = wh[..., 0] * wh[..., 1]
area_p = (pred[:, 2] - pred[:, 0]) * (pred[:, 3] - pred[:, 1])
area_g = (gt[:, 2] - gt[:, 0]) * (gt[:, 3] - gt[:, 1])
return inter / (area_p[:, None] + area_g[None, :] - inter + eps)
def macro_f1(y_true, y_pred, eps: float = 1e-7):
"""区域级属性多标签 macro-F1(y_*: [N, C] 0/1)。"""
tp = (y_true * y_pred).sum(0)
fp = ((1 - y_true) * y_pred).sum(0)
fn = (y_true * (1 - y_pred)).sum(0)
f1 = 2 * tp / (2 * tp + fp + fn + eps)
return f1.mean().item()
文本侧(grounding/报告生成)建议报告 BERTScore 与 RadGraph-F1,与 §8.1 榜单口径一致;纵向变化任务报告 attribute-sensitive 与 attribute-blind 两套 F1(与论文口径一致)。
指标选择与口径要点:
| 任务 | 主指标 | 口径要点 |
|---|---|---|
| 边界框定位 | IoU → mAP@0.5 / mIoU | 先统一坐标空间(坑点 1):要么全部还原到 original_* 原图坐标,要么把图像 pad+resize 到 224×224 后再算;两种做法数值不可混 |
| 区域属性分类 | macro-F1 | 左右成对区域(left/right lung 等)报告"合并"与"分开"两套;macro 口径对 devices 类长尾标签更敏感 |
| 比较关系 | attribute-sensitive / attribute-blind F1 | sensitive 要求谓词+属性同时对,blind 只看方向;论文句级与报告级数字差异明显(0.690 vs 0.796),务必声明层级 |
| Grounded Diagnosis / Captioning | BERTScore + RadGraph-F1 + CheXbert-14-F1 | BERTScore 衡量文本相似度,RadGraph-F1 衡量临床事实一致性,两者互补;只报 BLEU 会被审稿质疑 |
| 报告生成 | BLEU-4(榜单惯例) | 榜单最佳仅 0.26,属低资源场景;建议同时报告 BERTScore 以便跨研究比较 |
两点提醒:其一,gold 边界框的 IoU 参考区间为 0.929-0.995(left lung 0.976 / right lung 0.983 / trachea 0.995),你的模型若在细小区域(如 trachea)显著低于该区间,先怀疑坐标系错误而非模型能力;其二,官方 analysis/ 下 4 个 notebook 即为论文数字的复算入口,投稿前跑通一遍可避免口径争议。
§6.10 MLOps 笔记
- 版本锁定:数据 pin 在 chest-imagenome 1.0.0 + mimic-cxr-jpg 2.0.0(或 2.1.0),Data Card 记录双版本;v1.0.0 无增量更新,但 MIMIC-CXR-JPG 有 2.0.0/2.1.0 两个选项。
- 再分发合规:DUA 禁止转传数据;发布模型或衍生标注时只提供 image_id 列表与构建脚本。
- 数据质量监控:把官方 analysis notebooks 的四个评估(统计/对象-属性/比较关系/边界框)纳入数据管道的回归测试。
- 实验可复现:拆分以 patient_id 为随机种子单位;同一患者所有检查永远同侧。
- 漂移监控:上线前用 viewpoint(AP/PA 比例)与 age_decile 分布做输入分布监控;AP 占比骤升常意味着人群变化(ICU 化)。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 全部数据来自波士顿 BIDMC 一家医院 | 高 | 外部验证(CheXpert/PadChest/本院数据)后再谈部署 |
| 重症人群偏倚 | ICU 患者占比高,AP 卧床片多、管路多 | 高 | 训练/评测分层报告 AP 与 PA 指标 |
| 报告描述偏倚 | 短报告漏写隐含发现,“没写"不等于"没有” | 高 | 用 nlp 类 normal/abnormal 显式极性;gold 校准(见 §4.5) |
| NLP 抽取偏倚 | laterality 跨句失败为主 FP 源;比较关系召回低 | 中-高 | 坑点 5/6 的清洗与合并策略 |
| 竞争性风险偏倚 | 危重患者可能因生存期短而检查次数少 | 中 | 纵向任务以检查对为单位建模 |
| 记录粒度偏倚 | 年龄仅十分位分箱、性别仅二元 | 低 | 子组分析粒度受限,结论表述留余量 |
§7.2 标注质量
官方给出的质量数字(详见 §4.3):对象-属性抽取 F1 0.939、比较关系报告级 F1 0.796-0.823、gold 边界框 IoU 0.929-0.995、IA 0.962-0.984。第三方独立证据:一项 LLM 报告标注对比研究发现,在 ImaGenome 标签体系上连 GPT-4 也仅在 Pneumonia 类拿到 0.777 的 F1(其余类 0.9+),侧面印证报告-标签转换中该类噪声最大(arXiv:2402.12298)。总体判断:silver 可用于大规模弱监督训练,不可当作金真值评测;评测请用 gold 或外部专家标注集。
质量证据按"标注层"拆解如下:
| 标注层 | 质量证据 | 解读 |
|---|---|---|
| 边界框(gold) | 1,071 张人工验证/修正、303 张缺框人工补标、IoU 0.929-0.995 | gold 框可直接做评测真值;大结构(肺、气管)质量最高 |
| 边界框(silver) | 自动流水线生成,约 7% 初始失败由 Faster R-CNN 修正 | silver 框只适合训练,细小区域(costophrenic angles、apical zones)缺框率高 |
| 对象-属性关系 | 句级 = 报告级 F1 0.939;人工一致性 IA 0.984 | 相当可靠;主要噪声来自 laterality 跨句判断(坑点 5) |
| 比较关系 | 句级/报告级 0.690-0.823;IA 0.962 | 全数据集最弱一层:召回偏低 + 类别不平衡(5,802 vs 4,713),纵向任务的"标签上界"要心里有数 |
| 修饰符 | severity_cues / temporal_cues 挂在属性节点上 | 官方未单列一致性数字,使用时按"未修饰"显式编码(§4.5) |
§7.3 泛化性评估
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 跨医院/跨地域部署 | 高:单中心自动标注,设备与人群差异叠加标注体系差异 | 官方 limitations 明示单中心(论文) |
| 健康筛查人群 | 高:队列以住院/ICU 为主,无体检样本 | MIMIC-CXR 采集来源为急诊/住院 |
| 儿科/青少年 | 高:成人队列 | MIMIC-CXR 为成人数据库 |
| 边缘解剖区域任务 | 中:costophrenic angles/apical zones 缺框率高 | 官方缺框说明与 303 张补标子集(官方页) |
| 需要像素级分割的任务 | 不适用:仅提供轴对齐边界框,无分割 mask | 数据结构决定 |
| 跨术语体系对接 | 低-中:UMLS CUI 原生映射,可程序化对齐 SNOMED/RadLex | 全节点映射 UMLS CUI(官方页) |
§7.4 伦理合规
数据经 PhysioNet 标准去标识化:标识符替换、检查日期平移至未来、年龄以十分位分箱提供;访问需 credentialing + DUA,禁止再分发与身份重识别尝试。scene graph 中 reason_for_exam 保留患者病史摘录(自由文本),使用时应视为潜在敏感信息,不得对外发布原始文本。数据集不含已知的直接标识符,但报告文本与影像的联合仍属受保护健康信息(PHI)范畴(官方页)。
§7.5 公平性
scene graph 提供 gender 与 age_decile 字段,可做基本子组评估;但未提供种族/民族、语言、保险状态等社会风险因素,无法完成完整公平性审计。已有文献表明胸片 AI 可存在跨人群性能差异(如 arXiv:2107.10356 关于影像识别种族的讨论),使用本数据集训练部署前建议至少报告性别 × 年龄分组的性能分层。
子组评估的最小可行流程:
- 以 scene graph 顶层字段
gender(二元)与age_decile(十分位分箱)为分组键,在验证集上按 (gender, age_decile) 交叉分组; - 每组分别计算 macro-F1(区域属性)或 F1(比较关系),并与总体指标并列报告;
- 警惕长尾组:某些 age_decile × gender 组合样本量可能过小,组内指标置信区间宽,报告中给出每组样本数;
- 结论表述留余量:仅凭二元性别与分箱年龄无法排除未观测维度(种族、设备型号、采集时段)上的性能差异,不得在论文中声称"已验证公平性"。
§7.6 数据漂移
数据集为 2011-2016 采集、2021 年标注的静态快照:影像设备迭代(CR→DR)、报告风格演进、以及 MIMIC-CXR v2.0.0 与 v2.1.0 之间的文件差异都会构成版本间漂移源。v2.0.0(规划中的 QA 扩展)发布后,新旧版本 scene graph 不保证逐字段兼容,建议所有管道以显式版本号 pin 死并在 CI 中做字段 schema 断言。
实操层面可在三个环节布防:
- 数据接入层:训练前断言 scene graph 顶层字段清单与 1.0.0 文档一致(image_id/viewpoint/StudyOrder/objects/attributes/relationships 等),字段增删直接 fail;
- 分布监控层:对 viewpoint(AP/PA 比例)、age_decile 分布、每图属性数做训练/验证/线上三向对比;AP 占比骤升常意味着人群变化(ICU 化),每图属性数骤变常意味着报告风格或 NLP 流水线变化;
- 评测层:gold 子集为静态评测锚点(1,000 张图),任何版本迁移前后都在同一 gold 上重跑回归测试,指标漂移超过容忍带即触发人工复核。
§7.7 DAIMS 数据质量评估(24 项)
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ⚠️ | 主体为嵌套 JSON(每图一个 scene graph),使用前需拍平为表 |
| 2 | 唯一标识 | ✅ | image_id(=dicom_id)/ study_id / patient_id 三级主键清晰 |
| 3 | 特殊字符 | ✅ | 属性以 `\ |
| 4 | 重复行 | ✅ | 一图一 JSON,主键唯一;splits 与 gold 无重复冲突 |
| 5 | 缺失编码 | ⚠️ | "属性缺失"语义歧义(未描述 vs 正常),需按 §4.5 处理 |
| 6 | 标签标识 | ✅ | 7 类 categoryID 显式标注属性语义 |
| 7 | 罕见类分组 | ⚠️ | 长尾属性多,官方未提供分布表,需自行统计分组 |
| 8 | 偏倚评估 | ✅ | 论文 Dataset Limitations 与官方页系统披露 |
| 9 | 数据字典 | ✅ | 官方页 + 论文 + 补充材料完整描述字段与术语 |
| 10 | 信息性缺失解释 | ✅ | 官方明确解释缺框、隐含关系仅比较记录等现象 |
| 11 | 设备记录 | ❌ | 无采集设备元数据,需回溯 MIMIC-CXR DICOM |
| 12 | 共线性 | ⚠️ | 29 区域父子嵌套导致特征高度相关 |
| 13 | 编码映射 | ✅ | 全节点映射 UMLS CUI(含 RadLex) |
| 14 | 时间戳处理 | ✅ | 日期平移至未来且官方说明;StudyOrder 保序 |
| 15 | 划分建议 | ✅ | 官方患者级 train/valid/test + images_to_avoid |
| 16 | 泄漏讨论 | ✅ | 官方主动提供防泄漏文件(gold 与 silver 重叠处理) |
| 17 | 标签分布 | ✅ | 官方 analysis notebook 可复算分布 |
| 18 | 测量偏倚 | ⚠️ | 边界框为自动生成(约 7% 初始失败),非人工金真值 |
| 19 | 外部验证建议 | ⚠️ | 未提供跨库术语对齐表,需经 UMLS 自行映射 |
| 20 | 版本记录 | ✅ | v1.0.0 唯一版本、发布日期明确、v2.0.0 规划有公示 |
| 21 | 预处理脚本 | ✅ | utils + analysis 提供报告预处理/后处理/评估 notebook |
| 22 | 合规要求 | ✅ | credentialing + CITI + DUA 流程文档完善 |
| 23 | 多模态对齐 | ⚠️ | 图像素材需另行申请 MIMIC-CXR-JPG 并按 dicom_id 对齐 |
| 24 | 去标识化 | ✅ | PhysioNet 标准去标识(日期平移、标识符替换、年龄分箱) |
DAIMS 评分:19.5 / 24
评分解读:16 项 ✅、7 项 ⚠️、1 项 ❌。数据在"结构、标识、合规、文档、泄漏防护"五个维度达到教科书级——官方甚至主动提供防泄漏文件并系统披露自身局限,这在同类数据集中少见。失分集中在三点:嵌套 JSON 需自行工程化(宽格式)、自动标注的固有噪声(测量偏倚/缺失编码/罕见类)、以及生态依赖(像素图像与设备元数据都要回溯 MIMIC-CXR,多模态对齐与设备记录因此失分)。
对你意味着什么:(1) 这是一个"结构可信、内容带噪"的数据集——管道设计重点应放在标签清洗(坑点 3-5)而非数据结构解析;(2) 评测锚点用 gold(1,000 张图),训练扩量用 silver,绝不能反过来;(3) 立项前把 MIMIC-CXR-JPG 的 DUA 申请与存储规划一并纳入排期,否则训练环节会被卡在图像对齐上;(4) 区域特征建模时显式处理父子区域共线性(去冗余或层次模型),可同时提升指标与可解释性。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| MS-CXR(专家标注短语定位) | Microsoft | 短语 grounding | MDETR 直接迁移近零定位准确率;以清洗版 ImaGenome 弱预训练后恢复可用 | 从近零到可用 | 未经清洗的 ImaGenome 对齐噪声足以击穿跨库迁移,清洗是前提(arXiv:2512.01085) |
| Chest ImaGenome test(纵向子集) | IBM/PLAN-Lab | 比较关系预测 | CheXRelNet 优于纯差分与全局特征基线(MICCAI 2022 同行评审) | — | 显式解剖对应结构建模显著优于朴素差分(CatalyzeX) |
| ImaGenome 报告标注子任务 | 商业 LLM 对比研究 | 报告→标签 | GPT-4 zero-shot micro F1 0.975(Pneumonia 类仅 0.777) | — | 标签噪声在疾病类属性上分布不均,Pneumonia 最难(arXiv:2402.12298) |
§8 基准性能与生态
§8.1 排行榜
Grounded Diagnosis(区域级诊断生成,SOTA2 榜单,2026-01):
| 排名 | 模型 | BERTScore | RadGraph-F1 | CheXbert-14-F1 | 年份 |
|---|---|---|---|---|---|
| 1 | AnatomiX | 0.63 | 58 | 54 | 2026 |
| 2 | CheXagent | 0.49 | 40 | 40 | 2024 |
| 3 | RadVLM | 0.15 | 0 | 32 | 2025 |
| 4 | MAIRA-2 | 0.01 | 0 | 3 | 2024 |
数据来源:SOTA2 Grounded Diagnosis 榜(抓取于 2026-09-13);消融行(AnatomiX-OA/IP)已略去。
其他任务最佳成绩(同一榜单,截至 2026-09):
| 任务 | 最佳成绩 | 指标 |
|---|---|---|
| CXR Localization(解剖定位) | 39.1 | mIoU |
| Visual Grounding | 84.9 | mAP@0.5 |
| Spatial Grounding | 90.2 | 定位准确率(IoU>0.5) |
| Anatomy Grounding | 0.73 | IoU |
| Grounded Captioning | 0.65 | BERTScore |
| Temporal Classification | 49.3 | Temporal Acc |
| Temporal Change Classification | 48 | Accuracy(test 22,553 样本) |
| Temporal Grounding | 0.772 | mIoU |
| Longitudinal pathology change prediction | 67 | D1 Accuracy |
| Report Generation | 0.26 | BLEU-4 |
⚠️ 数值不可直接比较的原因:各任务评估脚本、输入分辨率、清洗策略与划分均不同;grounding 类指标受坑点 3/4(否定句挂框、父子冗余)清洗方式影响极大;Temporal 系列与 Grounded 系列样本单位不同(检查对 vs 单图);跨模型比较还受训练数据版本(mimic-cxr-jpg 2.0.0 vs 2.1.0)影响。复现时以各模型论文与 SOTA2 页面的协议为准。
§8.2 SOTA 总结与选型建议
- 做定位/grounding:先复用 GMPG 清洗策略再训练;评测锚定 Spatial/Visual Grounding 指标。
- 做区域级诊断报告:AnatomiX(2026)是当前 Grounded Diagnosis 最强公开结果,CheXagent 是更易获得的工业级基线。
- 做纵向变化:论文示例(75.3%)与 CheXRelNet 是起点;SOTA 榜单显示该任务整体仍有很大提升空间(Temporal Classification 最佳仅 49.3),适合作为研究缺口切入。
- 做VQA:直接使用 MIMIC-CXR-VQA 及其官方基线,避免重复造轮子。
按目标任务的选型矩阵:
| 你的目标 | 推荐起点 | 理由与注意 |
|---|---|---|
| 快速验证标签可用性 | gold_dataset(1,000 张图) | 体积小、人工质量高,一天内可跑通"JSON → 坐标还原 → 画框 → 训练"全流程 |
| 区域级多标签分类 | 官方 silver + arXiv:2309.02578 划分 | 沿用官方患者级划分(234,307 训练样本);先做坑点 3/4/5 清洗 |
| 解剖定位 / grounding | GMPG 清洗版 + MDETR 类模型 | 未清洗的框噪声会击穿跨库迁移(§7.8 证据);清洗后总框数 -80% |
| Grounded Diagnosis | AnatomiX(BERTScore 0.63)为上界参照,CheXagent 为工业基线 | RadVLM/MAIRA-2 在该榜单接近失效,说明该任务对"区域-文本对齐"要求苛刻 |
| 纵向变化预测 | CheXRelNet 官方实现 + 检查对采样 | 类别不平衡(5,802 vs 4,713)+ 双口径评测;Temporal 榜最佳 49.3 仍是开放问题 |
| 医学 VQA | MIMIC-CXR-VQA(377K 问题) | 已完成图像对齐与模板构建,勿在本数据集上重复造轮子 |
| 报告生成 | 慎选本数据集做主训练集 | 榜单最佳 BLEU-4 仅 0.26;区域标签更适合做生成结果的评测维度而非生成训练源 |
§8.3 评测协议
- 划分:官方 splits(患者级)+ 剔除 images_to_avoid;纵向任务以检查对为单位、按患者首次检查时间切分。
- 指标:定位用 mIoU/mAP@0.5;属性分类用 macro-F1(报告左右合并与分开两套);grounding/报告用 BERTScore + RadGraph-F1 + CheXbert-14-F1;纵向用 attribute-sensitive/blind F1。
- 对照:至少与论文基线(Faster R-CNN、CheXGCN、全局 DenseNet)与一个零样本对比模型(BioVIL/CheXzero 类)对比。
- 复算:官方 analysis notebooks 提供论文数字的复算入口,投稿前建议跑通并引用得到一致数字。
协议声明的最低字段清单(写进论文实验节,可显著减少审稿往返):
- 数据版本:chest-imagenome 1.0.0 + mimic-cxr-jpg 2.0.0 或 2.1.0(二选一并声明);
- 清洗策略:是否剔除否定句挂框与父子冗余框(坑点 3/4);若复用 GMPG 清洗版,注明其 PhysioNet 发布版本;
- 样本单位:单图(静态任务)还是检查对(纵向任务);纵向任务声明 StudyOrder 约束与时间切分方式;
- 坐标空间:评测在 224×224 填充空间还是 original_* 原图空间(坑点 1),mIoU 数值因此不可跨论文直接比较;
- 评测层级:句级还是报告级(论文两套数字差异显著,如比较关系 0.690 vs 0.796);
- 泄漏声明:确认训练集已剔除 images_to_avoid.csv 全部图像,且无患者级交叉。
§8.4 相关数据集
| 数据集 | 与本数据集的关系 | 何时选它 |
|---|---|---|
| MIMIC-CXR / MIMIC-CXR-JPG | 本数据集的图像与报告来源(377,110 张) | 需要像素、原始报告或 14 类全局标签 |
| MIMIC-CXR-VQA(NeurIPS 2023 D&B) | 本数据集 + MIMIC-JPG 构建的 377K 问答对 | 直接做 VQA |
| EHRXQA | 复用 MIMIC-CXR-VQA 模板的多模态 EHR 问答 | 图表 + 影像联合问答 |
| CheXpert / NIH CXR | 全局弱标签大盘 | 不需要定位信息的快速基线 |
| MS-CXR | 小规模专家标注短语定位 | grounding 外部校准 |
§8.5 关键论文 Top 10
- Wu, J. T., Agu, N. N., Lourentzou, I., Sharma, A., Paguio, J. A., Yao, J. S., Dee, E. C., Mitchell, W., Kashyap, S., Giovannini, A., Celi, L. A., Moradi, M. (2021). Chest ImaGenome Dataset for Clinical Reasoning. arXiv:2108.00316. — 数据集奠基论文:29 区域、1,256 关系组合、670,000+ 比较关系与两个示例任务。
- Wu, J., Agu, N., Lourentzou, I., Sharma, A., Paguio, J., Yao, J. S., Dee, E. C., Mitchell, W., Kashyap, S., Giovannini, A., Celi, L. A., Syeda-Mahmood, T., Moradi, M. (2021). Chest ImaGenome Dataset (version 1.0.0). PhysioNet. DOI 10.13026/wv01-y230. — 数据集本体的官方引用格式。
- Karwande, G., Mbakawe, A., Wu, J. T., Celi, L. A., Moradi, M., Lourentzou, I. (2022). CheXRelNet: An Anatomy-Aware Model for Tracking Longitudinal Relationships between Chest X-Rays. MICCAI 2022. — 首个在该数据集上系统研究纵向关系建模的同行评审工作。
- MIMIC-CXR-VQA: A new collection of medical visual question answering dataset on MIMIC-CXR database. NeurIPS 2023 Datasets & Benchmarks Track. — 由 MIMIC-CXR-JPG + Chest ImaGenome 构建的约 377K 问题 VQA 基准(作者列表与正式引用见 仓库 CITATION)。
- Johnson, A. E. W., et al. (2019). MIMIC-CXR: A de-identified publicly available database of chest radiographs with free-text reports. Scientific Data, 6, 317. DOI 10.1038/s41597-019-0322-0. — 源数据集论文。
- Is open-source there yet? A comparative study on commercial and open-source LLMs in their ability to label Chest X-Ray reports (2024). arXiv:2402.12298. — 以 ImaGenome 标签为考场的 LLM 标注能力系统对比。
- Generalised Medical Phrase Grounding (2025). arXiv:2512.01085. — 识别并清洗本数据集对齐缺陷(冗余父框、否定句挂框),清洗版发布于 PhysioNet。
- 多标签病理分类下游研究 (2023). arXiv:2309.02578. — 在官方划分上构建 55 种病理、234,307 训练样本的区域级分类基准。
- AnatomiX (2026). Grounded Diagnosis 榜首模型(BERTScore 0.63)。 — 见 SOTA2。
- CURV (2025). NeurIPS 2025 相关工作:以 MIMIC-CXR 与 Chest ImaGenome 为训练源的放射学基础模型。 — 见 论文数据集清单。
§8.6 社区活跃度
- 学术影响:arXiv 版本累计被引 67+ 次(ArxivLens 统计,截至 2025-06);派生基准(MIMIC-CXR-VQA、EHRXQA)已成为医学 VQA 标准考场。
- 维护状态:PhysioNet v1.0.0 为静态快照(2021-07-13 后无更新);官方联系渠道见数据页(research@joytywu.net / mmoradi@us.ibm.com)。
- 生态代码:PLAN-Lab/ChexRelNet(MICCAI 2022 官方实现)、LourentzouTBD/ChestImaGenomeChangeDetection(论文示例代码)、dek924/mimic-cxr-vqa(构建脚本,2024-07 仍在维护)。
- 榜单活跃度:SOTA2 上 AnatomiX(2026-01)、RadVLM、MAIRA-2 等持续刷榜,说明社区仍在活跃使用。
§8.7 生态快照
| 资源 | 类型 | 链接 | 活跃度线索 | 推荐理由 |
|---|---|---|---|---|
| PhysioNet 数据页 | 官方托管 | physionet.org/content/chest-imagenome/1.0.0/ | 2021-07 发布,静态 | 唯一权威下载与文档入口 |
| arXiv 论文 | 论文 | arxiv.org/abs/2108.00316 | 2021-08 公布 | 全部字段与协议的第一手描述 |
| MIMIC-CXR-VQA 仓库 | 衍生数据集 + 脚本 | github.com/dek924/mimic-cxr-vqa | README 更新于 2024-07 | 获取图像对齐与 VQA 构建脚本的最佳参考 |
| ChexRelNet 仓库 | 模型代码 | github.com/PLAN-Lab/ChexRelNet | MICCAI 2022 | 纵向关系建模的参考实现 |
| ChestImaGenomeChangeDetection | 官方示例代码 | github.com/LourentzouTBD/ChestImaGenomeChangeDetection | PyTorch 官方实现 | 变化检测任务的官方起点 |
| SOTA2 榜单 | 排行榜 | sota2.com/research/dataset/chest-imagenome | 2026-01 仍有新结果 | 跟踪 grounding/纵向任务 SOTA |
| GMPG 清洗版数据 | 衍生数据 | 见 arXiv:2512.01085(发布于 PhysioNet) | 2025 | 免做坑点 3/4 清洗的捷径 |
§9 相关资源与引用
§9.1 官方资源清单
- 数据页与文档:PhysioNet — Chest ImaGenome Dataset v1.0.0
- 文件下载:physionet.org/files/chest-imagenome/1.0.0/
- DUA 签署:physionet.org/sign-dua/chest-imagenome/1.0.0/
- 论文:arXiv:2108.00316;数据 DOI:10.13026/wv01-y230
- 官方统计/评估 notebook:analysis/ 下 4 个 ipynb(统计、对象-属性评估、比较关系评估、边界框评估)
- 图像来源:MIMIC-CXR-JPG(另签 DUA)
§9.2 BibTeX 完整引用
@misc{wu2021chestimagenome,
title = {Chest ImaGenome Dataset},
author = {Wu, Joy T. and Agu, Nkechinyere N. and Lourentzou, Ismini and
Sharma, Arjun and Paguio, Joseph A. and Yao, Jasper S. and
Dee, Edward C. and Mitchell, William and Kashyap, Satyananda and
Giovannini, Andrea and Celi, Leo A. and Syeda-Mahmood, Tanveer and
Moradi, Mehdi},
year = {2021},
howpublished = {PhysioNet, version 1.0.0},
doi = {10.13026/wv01-y230},
url = {https://physionet.org/content/chest-imagenome/1.0.0/}
}
@article{wu2021chestimagenomepaper,
title = {Chest ImaGenome Dataset for Clinical Reasoning},
author = {Wu, Joy T. and Agu, Nkechinyere N. and Lourentzou, Ismini and
Sharma, Arjun and Paguio, Joseph A. and Yao, Jasper S. and
Dee, Edward C. and Mitchell, William and Kashyap, Satyananda and
Giovannini, Andrea and Celi, Leo A. and Moradi, Mehdi},
journal = {arXiv preprint arXiv:2108.00316},
year = {2021}
}
@inproceedings{karwande2022chexrelnet,
title = {CheXRelNet: An Anatomy-Aware Model for Tracking Longitudinal
Relationships between Chest X-Rays},
author = {Karwande, Gaurang and Mbakawe, Amarachi and Wu, Joy T. and
Celi, Leo A. and Moradi, Mehdi and Lourentzou, Ismini},
booktitle = {International Conference on Medical Image Computing and
Computer Assisted Intervention (MICCAI)},
year = {2022}
}
@article{johnson2019mimiccxr,
title = {MIMIC-CXR: A de-identified publicly available database of chest
radiographs with free-text reports},
author = {Johnson, Alistair E. W. and Pollard, Tom J. and Berkowitz, Seth and
Greenbaum, Nathaniel R. and Lungren, Matthew P. and Deng, Chih-ying and
Mark, Roger G. and Horng, Steven},
journal = {Scientific Data},
volume = {6},
pages = {317},
year = {2019},
doi = {10.1038/s41597-019-0322-0}
}
§9.3 引用指南
使用数据集本体请引用 wu2021chestimagenome(PhysioNet + DOI),介绍方法学背景引用 wu2021chestimagenomepaper;纵向建模工作建议同时引用 karwande2022chexrelnet;涉及像素图像时引用 johnson2019mimiccxr。衍生基准(MIMIC-CXR-VQA 等)按其仓库 CITATION 文件引用。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 | 版本/日期 |
|---|---|---|
| CodeBuddy(fast-model) | 初稿撰写、结构组织、代码示例生成 | 2026-09 |
| 检索增强(WebSearch/WebFetch) | 事实核查与来源收集 | 2026-09-13 |
§10.2 AI 参与范围
AI 完成了:检索与事实汇总(FACTS 清单)、全文初稿(含 frontmatter、INFOBOX、各章节与 JSON-LD)、代码示例编写。人工完成了:关键数字与来源的逐一复核、种子线索纠错裁定("巴西锡耶纳来源"与"SIIM 2022 发表"两条不实线索被剔除)、医学与数据工程维度的交叉审核、免责声明合规性把关。
§10.3 输入来源列表
以下为本条目撰写所依赖的主要输入来源(检索/抓取日期均为 2026-09-13):
- PhysioNet — Chest ImaGenome Dataset v1.0.0 官方页(WebFetch 全文提取):https://physionet.org/content/chest-imagenome/1.0.0/
- Wu et al. (2021). Chest ImaGenome Dataset for Clinical Reasoning. arXiv:2108.00316:https://arxiv.org/abs/2108.00316
- 论文全文(ResearchGate 镜像,含机构与 limitations):https://www.researchgate.net/publication/353654677_Chest_ImaGenome_Dataset_for_Clinical_Reasoning/download
- 论文全文(arXiv PDF,含评估表与补充材料):https://arxiv.org/pdf/2108.00316
- NeurIPS 2021 Datasets & Benchmarks 赛道存档 PDF(示例任务与 limitations):https://datasets-benchmarks-proceedings.neurips.cc/paper_files/paper/2021/file/17e62166fc8586dfa4d1bc0e1742c08b-Paper-round2.pdf
- MIMIC-CXR-VQA 仓库 README(Access Requirements、DUA 链接、构建脚本):https://github.com/dek924/mimic-cxr-vqa
- SOTA2 数据集榜单页:https://www.sota2.com/research/dataset/chest-imagenome
- SOTA2 Grounded Diagnosis 榜单页:https://www.sota2.com/research/sota/grounded-diagnosis-on-chest-imagenome
- Generalised Medical Phrase Grounding(arXiv:2512.01085,清洗证据):https://arxiv.org/html/2512.01085
- Is open-source there yet?(arXiv:2402.12298,LLM 标注对比):https://ar5iv.arxiv.org/html/2402.12298
- ArxivLens 引用统计(67 次,截至 2025-06):https://arxivlens.com/paperview/details/chest-imagenome-dataset-for-clinical-reasoning-5920-1848736
- CatalyzeX 作者页(CheXRelNet 等下游工作):https://www.catalyzex.com/author/Joy T. Wu
- PhysioNet 资源目录页(发布日期 2021-07-13 与官方描述):https://www.physionet.org/content/?topic=chest+x-ray+interpretation
- ICD-11 呼吸系统章节编码清单(编码核实):https://www.gotoknow.org/posts/703981 与 https://findacode.com/icd-11/code-142052508.html
- 下游多标签分类研究(arXiv:2309.02578,55 病理 / 234,307 训练样本):https://arxiv.org/abs/2309.02578
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §0 免责声明与合规表述 | 千方病案医学编辑部 | 逐字对照金标准模板并适配本数据集条款 | ✅ 已通过 |
| §1-§2 全部规模数字与术语映射 | 千方病案医学编辑部 | 对照 PhysioNet 官方页与论文逐项核对;ICD-11 编码经外部页面复核 | ✅ 已通过 |
| §3-§5 数据规格、目录树与划分策略 | 医疗 AI 数据工程师 | 对照官方文件列表与 DUA 流程逐项核对 | ✅ 已通过 |
| §6 八个坑点与代码示例 | 医疗 AI 数据工程师 | 坑点均有官方文档/论文/第三方研究来源;代码逻辑走查 | ✅ 已通过 |
| §7 DAIMS 24 项与评分 | 医疗 AI 数据工程师 + 编辑部 | 逐项证据复核,评分口径复核 | ✅ 已通过 |
| §8-§9 基准数字与引用格式 | 千方病案医学编辑部 | 榜单数字对照 SOTA2 抓取记录;BibTeX 字段核对 | ✅ 已通过 |
| 种子线索纠错(来源库与发表出处) | 千方病案医学编辑部 | 官方页裁定:派生自 MIMIC-CXR;SIIM 2022 无证据故不采用 | ✅ 已通过 |
§10.5 AI 生成章节标注
全文初稿由 AI 生成;其中 §1.0/§1.2 的叙事表述、§2.2 疾病背景的定性描述、§7.7 评分解读与"对你意味着什么"、§8.2 选型建议为 AI 综合归纳,均已纳入 §10.4 的人工校验范围。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- copdgene — 共享标签:医学影像 / 电子健康记录 / X光影像 / 队列研究
- oai — 共享标签:医学影像 / 电子健康记录 / 队列研究
- uk-biobank — 共享标签:电子健康记录 / 测序数据 / 队列研究
- chest-ct-sepsis-er — 共享标签:医学影像 / 电子健康记录
- rosmap — 共享标签:医学影像 / 电子健康记录 / 队列研究
- nifd — 共享标签:医学影像 / 电子健康记录 / 队列研究
- chexpert — 共享标签:医学影像 / X光影像
- nih-chestx-ray14 — 共享标签:医学影像 / X光影像
- mimic-cxr — 共享标签:医学影像 / X光影像
- health-data-nexus — 共享标签:医学影像 / 电子健康记录
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

