BRAX — 巴西标记胸片数据集 AI-Ready Wikipedia | 千方病案医数集

40,967 张圣保罗胸片,14 类 NLP 自动标注,南美泛化测试基准

来源 PhysioNet(发布方:Hospital Israelita Albert Einstein) url: https://physionet.org/content/brax/1.1.0/发布时间: 2026-09-08最后更新: 2026-09-08 阅读 5

信息速览

数据集名称BRAX — 巴西标记胸片数据集 AI-Ready Wikipedia | 千方病案医数集
数据类型40,967 张胸片图像,24,959 个影像检查,19,351 名患者,14 类 CheXpert 标签,DICOM + PNG 双格式,凭证认证获取
规模19,351 名患者
接入方式PhysioNet(发布方:Hospital Israelita Albert Einstein) url: https://physionet.org/content/brax/1.1.0/
AI 就绪度

数据集封面

BRAX — 首个巴西公开标记胸片数据集 AI-Ready Wikipedia

INFOBOX

字段 内容
数据集名称 BRAX(巴西标记胸片数据集)
英文全称 BRAX, a Brazilian labeled chest X-ray dataset
别名/简称 Brazilian labeled chest x-ray dataset;BRAX v1.1.0
疾病分类(ICD-11 编码+中文名) 覆盖 14 类胸部放射学发现:肺炎 CA40、气胸 CB21、胸腔积液 CB27、心脏肥大 BC45 等(完整映射见 §2.1)
SNOMED CT 气胸 36118008、胸腔积液 60046008、肺水肿 19242006 等(完整映射见 §2.1b)
数据模态 胸部 X 光(数字化放射摄影)+ 影像学标签(报告 NLP 提取)
AI 任务类型 胸片多标签分类、跨人群外部验证、迁移学习/域偏移研究
样本总数 40,967 张图像;24,959 个影像检查(study)
数据格式 匿名化 DICOM + PNG(双通道同构)+ master_spreadsheet.csv
许可证 PhysioNet Credentialed Health Data License 1.5.0
访问级别 注册后开放(PhysioNet 凭证认证 + 签署 DUA)
DUO 标签 GRU(通用研究使用;DUA 附加禁止共享与再识别条款)
语言 报告原文为巴西葡萄牙语(未随数据发布);标签术语为英文
首发日期 2022-01-03(v1.0.0)
最后更新 2022-06-17(v1.1.0)
发布机构 Hospital Israelita Albert Einstein(HIAE)+ MIT 计算生理学实验室
官方主页 physionet.org/content/brax/1.1.0
下载地址 physionet.org/content/brax/1.1.0(凭证认证后可下载)
DOI 10.13026/grwk-yh18(数据);10.1038/s41597-022-01608-8(论文)
引用次数 34+(Scopus/PlumX,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 标准化 CSV + PNG 快速通道开箱即用,但无官方划分、无报告文本,划分与泄漏控制需自行实现
页面状态 published

§0 E-E-A-T 审核与免责声明

医学审核:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、胸部放射学流行病学、临床任务定义)、§7 偏倚分析。

数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。BRAX 要求用户完成 PhysioNet 凭证认证(credentialing)并签署数据使用协议(DUA),协议明确禁止分享数据与试图再识别患者。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。

§1 数据集概览

§1.0 📌 30 秒速览

这是什么? BRAX(Brazilian labeled chest x-ray dataset,巴西标记胸片数据集)是第一个向全球研究者开放的巴西胸片数据集。它来自圣保罗的以色列利塔·阿尔伯特·爱因斯坦医院(Hospital Israelita Albert Einstein,HIAE),包含 40,967 张胸部 X 光图像、24,959 个影像检查和 19,351 名患者[1]。每份检查都带有 14 类放射学发现标签——由人工智能从葡萄牙语报告里自动提取——同时提供匿名化的 DICOM 原始文件和 PNG 图片两种格式[1]。

为什么重要? 主流公开胸片数据集几乎全部来自美国、欧洲和亚洲的高收入地区,报告语言是英语。AI 模型在换到拉美人群时性能可能骤降,而此前没有公开数据可以度量这种"地理鸿沟"。BRAX 补上了南美这块拼图:它让研究者可以在训练前从未见过的巴西人群上做外部验证,也能研究葡萄牙语报告的自动标注方法[1]。71% 的检查被标为"无异常",与 CheXpert 仅 8.86% 的比例形成鲜明对照,这本身就是研究人群差异的宝贵素材[2]。

我能用它做什么? 训练或验证胸片多标签分类模型(14 类发现)、做 CheXpert→BRAX 迁移学习与域偏移实验、评估标签噪声鲁棒算法,以及开发面向葡萄牙语的医疗 NLP 标注工具[2][3]。注意:当前版本不包含报告原文,报告生成类任务无法使用;也必须自行划分训练/测试集并按患者分组防止泄漏(见 §5 与 §6.5)。

§1.1 技术摘要

BRAX 的生产流程是一条"影像 + NLP"双轨管线[1]。影像侧:从 HIAE 院内 PACS 提取所有附有放射学报告的胸片检查,剔除含烧录敏感信息或罕见假体的影像(每张由两名放射科医师双重审查),随后按 MIRC ClinicalTrialProcessor(CTP)规则对 DICOM 头匿名化——额外删除了所有自由文本字段,并将 StudyDate 等四个日期字段哈希为虚构日期,仅保留检查之间的原始时间间隔;DICOM 同步转换为重标度后的 PNG 副本[1]。标签侧:基于 CheXpert Label Extraction Algorithm 构建 BRAX 标注器,配合 NegEx 的巴西葡萄牙语扩展(触发词经机器翻译初稿 + 三名母语放射科医师人工校验),从报告的 findings/impression 段提取 14 类发现,编码为 1(阳性)、0(否定)、−1(不确定)、空(未提及)[1]。标注质量以 1,000 份随机报告、两名委员会认证放射科医师的一致意见为金标准:F1 从 Pneumothorax 的 1.000 到 Pneumonia 的 0.762 不等[1]。数据以 patient→study→series→image 四级目录树 + 一行一个检查的主表发布于 PhysioNet,凭证认证访问[1]。

§1.2 战略价值

维度一:地理多样性与外部验证基础设施。 深度学习胸片模型在跨人群部署时面临系统性性能衰减,其根源之一是公开训练数据的地域单一性[1]。BRAX 是该领域首个南美大规模数据集,与 CheXpert、MIMIC-CXR、PadChest 形成四大洲互补。它最直接的用途是充当外部测试集:在北美/欧洲数据上训练的模型,拿到 BRAX 上测一轮 AUC 衰减,就能量化"从高收入英语人群到圣保罗都市人群"的泛化损失[1][3]。对于计划在拉美落地的中文 AI 团队,BRAX 是成本最低的域偏移沙盘——数据免费、标签体系与主流数据集对齐、PNG 通道免去 DICOM 解析负担。

维度二:非英语 NLP 标注与标签噪声研究标本。 BRAX 的 14 类标签不是人工逐图标注,而是经双放射科医师验证的 NLP 自动标签——这意味着它自带"标签噪声量化基准":论文给出了逐类 F1,且标签抽取器(BRAX-labeler)在 GitHub 开源[1][4]。研究标签噪声学习、不确定标签处理(−1 编码)、弱监督校准的团队,可以在 BRAX 上用论文报告的 F1 谱系做先验校准,而不必重新雇标注团队。同时,葡语 NegEx 词表经人工校验的扩展过程完整可复现,为其他语言(包括中文)的报告标注器迁移提供了方法论模板[1]。

§1.3 同类数据集横向对比

数据集 规模(图像) 检查/患者 地域 标签体系 报告文本 差异化要点
BRAX 40,967 24,959 检查 / 19,351 患者 巴西圣保罗(单中心) CheXpert 14 类,NLP 自动标注 ❌ 未发布 首个巴西数据集;DICOM+PNG 双通道;标签 F1 逐类可查
CheXpert 224,316(有标签) — / 65,240 患者 美国斯坦福 14 类,NLP 自动标注 ✅ 发布 英语标注器鼻祖;不确定标签 −1 机制同源[2]
MIMIC-CXR 377,110 227,835 检查 / 65,379 患者 美国波士顿 14 类 + 报告结构化 ✅ 发布 规模最大;含真实时间戳与科室上下文
PadChest 160,868 — / 67,000 患者 西班牙 174 类放射学发现,人工+规则 ✅ 发布 标签粒度最细(174 类);西语报告
VinDr-CXR 15,000 — / — 越南河内 18 类异常,放射科医师逐图标注 稀有的人工逐图标注;框级病灶定位

注:各对比数据集数字引自其官方发布页与描述论文(CheXpert 见 [2];其余见各自 PhysioNet/官方条目)。BRAX 的"单中心小而干净"与 MIMIC-CXR 的"多中心大而全"是两种互补范式。

§1.4 版本时间轴

版本 发布日期 变更内容 DOI
v1.0.0 2022-01-03 初始发布:40,967 张图像、24,959 个检查、14 类标签 10.13026/ae9a-f727
v1.1.0 2022-06-17 更新 master_spreadsheet.csv,修复 CSV 格式缺陷;当前最新版 10.13026/grwk-yh18

官方同时预告:未来版本计划加入社会健康决定因素(social determinants of health)类元数据,如患者居住社区信息[1]。截至 2026-09 该扩展尚未落地,引用时请以 v1.1.0 为准。

§1.5 典型应用场景

  1. 跨人群外部验证:在 CheXpert/MIMIC-CXR 上训练的 14 类分类模型,以 BRAX 为独立测试集度量 AUC 衰减,定位泛化短板类别(尤其先验差异大的 Edema 与 No Finding)[3]。
  2. CheXpert→BRAX 迁移学习基准:采用 IEEE Access 2025 协议(DenseNet-121/ResNet-101/Swin Transformer,5 折按患者分组交叉验证,U-Ones 处理不确定标签),比较冻结、逐步解冻、L1-SP/L2-SP 正则等微调策略[3]。
  3. 标签噪声与弱监督研究:以论文逐类 F1 谱系为已知噪声水平,测试噪声鲁棒损失函数、置信学习(confident learning)与标签校正算法[1]。
  4. 葡语医疗 NLP 标注器开发:基于开源 BRAX-labeler 的葡语 NegEx 词表扩展模式,二次开发或评测多语种报告标注工具[4]。
  5. 多语言教学与课程实验:单中心、规模适中(约 4 万张)、有标准 CSV 主表,适合作为医疗影像课程中"完整跑通"的教学数据集(凭证认证后)。

各场景的可行性边界(避免选错数据集):

场景 需要什么 BRAX 是否满足 不满足时的替代
跨人群外部验证 测试侧标签 + 目标人群差异 ✅ 巴西都市人群 + 14 类对齐标签
迁移学习基准 训练域 + 目标域同标签体系 ✅ 与 CheXpert 完全同构
标签噪声研究 已知噪声水平的弱标签 ✅ 官方逐类 F1 锚点
报告生成 / 影像-文本 自由文本报告 ❌ 未随 v1.1.0 发布 MIMIC-CXR(英语报告)
病灶定位 / 检测 框级/掩码标注 ❌ 无 VinDr-CXR(人工框标注)
时序疾病进展 真实随访间隔 + 纵向标签 ⚠️ 仅相对间隔可用 MIMIC-CXR(真实时间戳)
儿科影像 儿童样本 ⚠️ 5 岁分箱含低龄组但占比未知 另行检索儿科专项数据集

参考来源:[1] PhysioNet BRAX v1.1.0 页面;[2] Reis 等, Scientific Data 2022(含 IEEE Access 2025 转引的 CheXpert/BRAX 先验对比);[3] Silva 等, IEEE Access 2025;[4] BRAX-labeler GitHub

§2 医学背景

§2.1 ICD-11 编码映射表

BRAX 的 14 个标签是放射学发现(finding)而非最终临床诊断,部分标签(如 Lung Opacity、Support Devices)是影像学表现或设备状态,在 ICD-11 中没有一一对应的疾病类目。下表给出有直接对应关系的核心标签映射(ICD-11 MMS v2025-01),其余标注为表现类:

标签 ICD-11 编码 ICD-11 中文名称 说明
Pneumonia CA40(CA40.Z 未特指微生物) 肺炎 影像与临床均高度依赖的类型;NLP 标签噪声最高的一类
Pneumothorax CB21 气胸 危急值类发现,NLP 标签 F1=1.000
Pleural Effusion CB27 胸腔积液 常见体征性发现,多与心衰/感染伴发
Edema CB01 肺水肿 影像标签涵盖肺淤血/肺水肿谱系
Cardiomegaly BC45 心脏肥大 循环系统章;心胸比增大为影像依据
Enlarged Cardiomediastinum CB22 纵隔疾病,不可归类在他处者 纵隔增宽为影像描述,病因谱广
Pleural Other CB2Y 其他特指的胸膜、膈或纵隔疾患 聚合胸膜其余表现(气胸/积液之外)
Consolidation CA40 谱系为主(表现类) 肺实变 影像表现,编码时归入基础疾病(常为肺炎)
Atelectasis 归入基础疾病(表现类) 肺不张 影像表现,ICD-11 无独立首选类目
Lung Lesion 按性质编码(表现类) 肺占位性病变 影像描述;需结合良恶性归属
Lung Opacity 无独立编码(表现类) 肺部阴影/opacity 泛化影像学描述
Fracture 按骨折部位编码(第 22 章) 骨折 需明确肋骨/锁骨等具体部位
Support Devices 无疾病编码 生命支持/器械 器械状态标签(起搏器、引流管等)
No Finding Z 类(正常状态) 无异常发现 复合阴性标签,语义见 §4.2

§2.1b SNOMED CT 映射表

标签 SNOMED CT 码 术语(Fully Specified Name) 备注
Pneumothorax 36118008 Pneumothorax (disorder) BioPortal SNOMEDCT US Edition
Pleural Effusion 60046008 Pleural effusion (disorder) OMIM 临床纲要引用码
Edema(肺水肿) 19242006 Pulmonary edema (disorder) OMIM 临床纲要引用码
Cardiomegaly 1023001 Cardiomegaly (disorder) SNOMED CT 常用核心码
Atelectasis 34095006 Pulmonary atelectasis (disorder) SNOMED CT 核心概念
Pneumonia 233604007 Pneumonia (disorder) 上位概念,感染源细分在子类
Lung Opacity / Consolidation / Lung Lesion / Enlarged Cardiomediastinum / Pleural Other / Fracture / Support Devices / No Finding —(按具体所指细分) 影像表现或状态,编码需回到具体疾病/部位/器械

§2.2 覆盖疾病简介与流行病学

BRAX 的 14 类标签覆盖胸片最常见放射学观察,与 CheXpert、MIMIC-CXR、ChestX-ray8 保持术语一致[1]。从标签频次看(以图像计),本数据集的构成由"正常为主 + 少量器械 + 中等量心肺异常"构成:No Finding 占 71.0%(29,009 张)、Support Devices 21.46%(8,791 张,含 ICU 起搏器/引流管等)、Lung Opacity 9.92%、Cardiomegaly 9.72%、Atelectasis 8.59%、Consolidation 7.71%、Pleural Effusion 4.45%[1]。极端稀有类为 Pneumonia 1.89%、Fracture 1.52%、Pneumothorax 0.52%、Pleural Other 0.29%、Enlarged Cardiomediastinum 0.17% 与 Edema 0.12%(仅 50 张)[1]。

流行病学背景上,肺炎是全球感染性疾病死亡的首要原因之一;心脏肥大与胸腔积液多继发于高血压性心脏病、心力衰竭等,而巴西人群高血压与肥胖负担居拉美前列;气胸与骨折为急性/创伤性发现,占比低符合综合医院(含门诊人群)的影像构成。由于发布方未评估性别、种族或社会经济维度的偏倚[1],上述疾病谱差异只能从标签分布间接推断,跨人群外推时需谨慎(见 §7.1、§7.5)。

逐疾病背景与影像要点

下表把 14 类标签逐一放到临床与流行病学语境中,供特征工程、错误分析与论文写作引用时快速取用。流行病学量级为教科书/综述级公认范围(非 BRAX 官方数字),仅用于建立直觉,不构成统计依据:

标签 临床/影像要点 流行病学背景(量级) 与 BRAX 标签分布的关系
No Finding 复合阴性:报告未提及任何异常(器械除外) 综合医院门诊/体检流常见构成 占 71.0%,远高于 ICU 型数据集,是先验迁移的最大坑[2]
Support Devices 起搏器、引流管、气管插管等器械影 与住院/ICU 强度正相关 占 21.46%,佐证 HIAE 含大量住院流;器械常被模型误作病理纹理
Lung Opacity 泛化性肺部阴影,非特异表现 影像学表现,无独立患病率 占 9.92%,是最宽泛的阳性类,常与实变/积液共现
Cardiomegaly 心胸比增大(正位) 心衰全球患者以千万计,高血压为主要上游 占 9.72%;AP 位放大心影,体位分层分析时注意
Atelectasis 肺不张/膨胀不全 术后、卧床、阻塞性病变常见并发 占 8.59%,住院流为主的数据集典型构成
Consolidation 肺实变(肺泡充填) 肺炎的核心影像表现之一 占 7.71%,与 Pneumonia(1.89%)差距体现"表现≠诊断"
Pleural Effusion 胸腔积液 心衰、感染、肿瘤、低蛋白血症均可致 占 4.45%;中量以上积液影像敏感度高
Lung Lesion 肺占位/结节影 影像描述;恶性风险随年龄陡增 占 3.15%;NLP 标签 F1=0.795,脆弱层(§7.2)
Pneumonia 感染性肺实质炎症的临床诊断 全球首要感染性死因之一;巴西成人社区获得性肺炎负担高 仅 1.89% 且 F1=0.762 全场最低——诊断性标签噪声最大[1]
Fracture 肋骨/锁骨等骨折影 创伤急诊常见;常规胸片对肋骨骨折不敏感 占 1.52%,受"检查目的偏倚"影响(非外伤主诉少拍)
Pneumothorax 气胸(壁层/脏层胸膜间积气) 自发性气胸年发病率约每十万人年数例至十余例 极稀(0.52%)但 F1=1.000:危急值类在报告中必写,NLP 抽取可靠
Pleural Other 其他胸膜异常(增厚、气肿等) 石棉暴露、结核后遗等 极稀(0.29%),聚合类,语义杂
Enlarged Cardiomediastinum 纵隔增宽 纵隔病变总体罕见 极稀(0.17%),正侧位判读差异大
Edema 肺水肿/肺淤血 心衰急性失代偿的标志表现 仅 50 张(0.12%)vs CheXpert 26.06%——跨域崩塌第一名[2]

两个结构性观察值得写入论文的 Limitations 或数据分析章节。其一,“表现类多、诊断类少”:Lung Opacity/Consolidation/Atelectasis 三个表现类合计约 26% 的图像,而诊断类 Pneumonia 只有 1.89%——BRAX 标签继承了报告语言的自然构成,用表现类训练的模型输出的是"影像所见概率"而非"疾病诊断概率",产品化表述必须区分。其二,危急值悖论:气胸等危急值类"报告必写 → NLP 抽取准(F1 高)→ 但样本极少",模型在该类上的评估置信区间天然很宽,不能因为 F1=1.000 就宣称临床可用(§7.3 第 4 行)。

§2.3 临床任务定义

任务 输入 输出 临床角色 BRAX 支持度
多标签分类(主任务) 胸片(PNG/DICOM) 14 类发现的存在概率 分诊预筛、报告辅助、漏诊提醒 ✅ 官方标签直接支持
正常/异常筛查 胸片 No Finding 概率 体检流水分诊、批量阅片排序 ✅ 但 No Finding 占比 71% 需重加权
跨域泛化评估 源域模型 + BRAX 测试 逐类 AUC 及衰减幅度 模型上线前的人群适配审计 ✅ 最典型用法
标签噪声学习 胸片 + NLP 标签 校准后的概率 弱监督训练方法研究 ✅ 论文提供逐类 F1 锚点
报告生成/影像-文本 胸片 + 报告文本 自由文本报告 报告起草 ❌ 报告未随 v1.1.0 发布

§2.4 患者人群画像

维度 描述 来源与说明
来源机构 Hospital Israelita Albert Einstein(圣保罗大型私立综合医院) 论文 Data source 段
采集方式 院内 PACS 连续提取所有附报告的胸片检查 同上
年龄 5 岁一组分箱;≥85 岁统一为"85 or more" 官方 Data Description[1]
性别 M/F/O 三值 官方 Data Description[1]
种族/族裔 未提供 发布方声明未评估该维度偏倚
就医类型 综合医院门急诊 + 住院(含 ICU 器械影像) Support Devices 占 21.46% 佐证
采集时间 真实日期未公开:日期哈希为虚构日期,仅保留检查间隔 [1] 匿名化流程

对人群画像的两点补充解读。年龄维度:5 岁分箱意味着任何"连续年龄回归"任务只能退化为"分箱分类"或在箱中点做近似插值,且箱边界(如 60-64)引入量化误差;"85 or more"为右删失,最高龄组内部跨度未知。性别维度:M/F 之外存在第三取值 O,官方未公布三者的比例;历史经验上综合医院胸片流性别分布大致均衡,但 BRAX 未公布官方统计,使用 PatientSex.value_counts() 自行描述人群是上线的标准前置步骤(代码见 §7.5)。这两个维度是 BRAX 全部可用的人群变量——再无其他——这决定了本数据集能支持的公平性分析天花板(§7.5)。

§2.5 临床价值与转化路径

BRAX 对临床 AI 的价值集中在三条转化路径。其一,部署前人群适配审计:任何在北美学语人群训练的胸片模型,进入巴西或类似拉美都市人群前,可在 BRAX 上完成一次廉价的回顾性外部验证,逐类定位 AUC 损失(如 Edema 在 CheXpert 占 26.06% 而在 BRAX 仅 0.12%,模型对该类的置信度校准几乎必然失效[2])。其二,阅片流程自动化的本地证据链:71% 无异常的比例与综合医院体检/门诊流构成一致,适合论证"阴性优先排序"工作流在本地人群的可行收益。其三,报告 NLP 的语言迁移样板:葡语 NegEx 触发词校验流程三名放射科医师参与、过程公开,可迁移至中文、西语等报告体系的自动标注器建设[1]。

§2.6 金标准与标注协议定位

维度 BRAX 的实现 说明
参考标准划分 图像无人工金标准;标签验证金标准 = 1,000 份随机报告中两名委员会认证放射科医师的一致意见 抽样验证而非全量验证[1]
标注方式 NLP 自动提取(CheXpert 标注器改编 + 葡语 NegEx),先验词表人工校验 自动标注覆盖全量 24,959 个检查[1]
标注者资质 词表校验:3 名巴西母语放射科医师;验证:2 名 ≥2 年经验的委员会认证放射科医师;烧录信息排查:每图 2 名放射科医师 [1]
性质 弱监督/弱标签数据集 标签=报告提及,非逐图视觉标注;图像级视觉金标准缺失

§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小/获取 理由
一切新项目 v1.1.0(DOI 10.13026/grwk-yh18) PhysioNet 凭证认证下载 修复了 v1.0.0 master_spreadsheet.csv 的 CSV 格式缺陷,直接 pd.read_csv 可用
复现 2022 年早期论文 v1.0.0(DOI 10.13026/ae9a-f727) PhysioNet 存档 仅当目标论文明确基于 v1.0.0 时使用,注意主表需自行修复解析
跟踪元数据扩展 关注 PhysioNet 更新通知 官方预告未来版本加入社会健康决定因素,截至 2026-09 未发布

§3.1 模态详情

胸部 X 光(数字化放射摄影,DR):全部 40,967 张图像均为胸片,来自院内 PACS 的临床原始采集,含前后位(AP)、后前位(PA)、左侧位(LL)、右侧位(RL)及四种特殊体位(RLD/LLD 卧位、RLO/LLO 斜位)共 8 种 ViewPosition[1]。图像以两种形态发布:匿名化 DICOM(保留原始像素深度与设备元数据残迹)与转换重标度后的 PNG(轻量快速通道),两者目录结构完全同构[1]。注意:本数据集发布的是影像 + 标签,不含报告原文(“Free-text reports are not yet provided in the current version”,官方原文)[1];“标签由报告 NLP 提取"不等于"报告随数据发布”,规划多模态文本任务前务必核对 §3.3。

§3.2 按子集样本数(14 类标签分布,以图像计)

标签 阳性图像数 占 40,967 比例 相对稀缺度
No Finding 29,009 71.0% 阴性主导
Support Devices 8,791 21.46% 常见
Lung Opacity 4,065 9.92% 中等
Cardiomegaly 3,984 9.72% 中等
Atelectasis 3,518 8.59% 中等
Consolidation 3,157 7.71% 中等
Pleural Effusion 1,822 4.45% 偏少
Lung Lesion 1,290 3.15% 偏少
Pneumonia 774 1.89% 稀少
Fracture 624 1.52% 稀少
Pneumothorax 214 0.52% 极稀
Pleural Other 117 0.29% 极稀
Enlarged Cardiomediastinum 71 0.17% 极稀
Edema 50 0.12% 极稀

数据来源:论文 Table 1[1]。标签按检查(study)记录、以图像计数报告,同一检查的多张图像共享标签(见 §4.4 与坑点 1)。

§3.3 数据格式表

组件 格式 说明
Anonymized_DICOMs/ DICOM 匿名化原始影像,保留像素深度与 Rows/Columns 元数据
images/ PNG 由 DICOM 转换并重标度的副本,与 DICOM 目录同构
master_spreadsheet.csv CSV 一行一个检查:路径、患者元数据、14 类标签、体位
自由文本报告 未随数据发布(v1.1.0)
分割掩码/框标注

§3.4 存储规模

官方页面未公布压缩包总字节数(受凭证访问保护,公开元数据中无总量字段)。可参考的规模锚点:40,967 张 DICOM + 40,967 张 PNG 双份存储;作为对照,40,967 张 PNG 级别胸片数据集的典型体量在数 GB 至十余 GB 区间,实际下载大小请以登录 PhysioNet 后的 Files 面板 显示为准。磁盘规划建议预留 PNG 体积的 2-4 倍空间(DICOM 体积通常大于同图 PNG)。

§3.5 标注方式

弱监督自动标注(全量)+ 抽样人工验证(质量锚点)。全量 24,959 个检查的 14 类标签由 BRAX 标注器产出:先用 Google 翻译生成葡语否定/不确定触发词初稿,三名巴西母语放射科医师人工校验并补充葡语放射科特有表达,再由改编自 CheXpert 的抽取器在报告 findings/impression 段匹配发现短语,NegEx 判定语境极性[1]。编码规则:1=阳性提及、0=否定、−1=不确定、空=未提及;No Finding 在除 Support Devices 外均无其他标签时置 1[1]。

§3.6 标注者资质与一致性

环节 人员 协议 产出
触发词校验 3 名巴西母语放射科医师 机器翻译初稿逐条人工复核 + 新增葡语表达 葡语 NegEx 词表
标签验证 2 名委员会认证放射科医师(≥2 年经验) 逐份审阅 1,000 份随机报告,以两者一致意见为金标准,必要时修正标签 逐类 F1(见下表)
烧录信息排查 1 名委员会认证 + 5 名放射科医师 每张胸片由两人独立审查 排除含敏感信息/罕见假体的检查

逐类 F1(提及抽取任务,金标准为双人一致)[1]:Pneumothorax 1.000、Support Devices 0.987、Cardiomegaly 0.947、Lung Opacity 0.933、Atelectasis 0.931、Pleural Effusion 0.925、Pleural Other 0.901、Enlarged Cardiomediastinum 0.857、Fracture 0.850、Consolidation 0.824、No Finding 0.821、Edema 0.800、Lung Lesion 0.795、Pneumonia 0.762。

§3.7 采集周期

真实采集时间未公开。StudyDate、SeriesDate、AcquisitionDate、ContentDate 四个日期字段经哈希替换为虚构日期,但保留了检查之间的原始时间间隔,因此时序建模可使用相对间隔、不可使用绝对日期[1]。这一设计导致"季节性流行病分析"(如雨季肺炎高峰)在本数据集上无法开展。

§3.8 地域覆盖

巴西圣保罗地区,单一大型私立综合医院(HIAE)[1]。城市终端人群、以有医保/商业保险患者为主体的可能性较高,但发布方未提供人口学细分佐证。单中心属性既是控制变量(设备流程一致)也是泛化瓶颈(见 §7.1)。

§3.9 设备与影像规格

主表提供 Rows、Columns 两列描述每张图像的像素矩阵尺寸(胸片常见 2,000-3,000 像素量级、不同设备各异),以及 Manufacturer 列——厂商名以整数编码发布,隐藏真实厂商但保留研究"厂商相关偏差"的可能性[1]。官方未公布设备型号、kVp/mAs 等曝光参数。PNG 通道为重标度后产物,做窗宽窗位相关分析必须回退到 DICOM 通道(见坑点 8)。

匿名化 DICOM 通道还保留了若干无害的结构性元数据(非身份信息,官方匿名化遵循 MIRC CTP DICOM Anonymizer 规则并删除全部自由文本头字段[1]),可用于设备/技术质控分析:

# 用 pydicom 探测单张匿名化 DICOM 保留的元数据(字段名以实际文件为准)
import pydicom
ds = pydicom.dcmread(data_root / df["DicomPath"].iloc[0], stop_before_pixels=True)

for tag in ["Rows", "Columns", "Manufacturer", "ViewPosition",
            "PhotometricInterpretation", "BitsAllocated", "PixelRepresentation"]:
    print(f"{tag:28s} = {getattr(ds, tag, '<absent>')}")
# 预期:身份相关字段(PatientName/PatientBirthDate 等)为空或已替换;
#       厂商为整数编码;日期字段为虚构日期(§3.7)

工程上对 Rows/Columns 的三点使用建议:其一,训练前先统计 df[["Rows","Columns"]].describe(),确认长边分布——若部分图像长边超过 3,000 像素,resize 策略(等比缩放 vs 中心裁剪)会影响小病灶可见性;其二,把 Rows/Columns 是否与 ViewPosition 交叉分层纳入数据质控(同一体位出现两种典型尺寸矩阵,往往意味着两代设备并存,Manufacturer 索引可交叉验证);其三,PNG 通道已经过重标度,其像素值不再对应任何物理量,任何涉及绝对灰度(软组织对比、曝光质量评估)的分析都必须走 DICOM 通道。

§3.10 深度溯源链

环节 内容 可核查锚点
伦理 HIAE 机构审查委员会批准 #35503420.8.0000.0071,豁免个体知情同意 论文 Ethical statement
原始采集 HIAE 院内 PACS 同上
匿名化 自研算法遵循 MIRC ClinicalTrialProcessor(CTP)DICOM Anonymizer 规则 + 删除全部头内自由文本字段 同上
标注 BRAX-labeler(GitHub 开源)+ 葡语 NegEx github.com/edreisMD/BRAX-labeler
托管与版本 PhysioNet v1.0.0→v1.1.0,RRID:SCR_007345 PhysioNet 项目页
资助 MIT-Brazil TVML Seed Fund;NIH NIBIB R01 EB017205、R01EB030362 [1]
发表 Scientific Data 9:487(2022-08-10),DOI 10.1038/s41597-022-01608-8 同上

§4 数据结构

§4.0 目录树

数据解压后的目录结构如下(官方论文 Fig. 5-6 与 PhysioNet Folder Structure 段)[1]:

brax-1.1.0/                                   # 解压根目录(以 PhysioNet 交付为准)
├── master_spreadsheet.csv                    # 主表:一行 = 一个检查(study)
├── Anonymized_DICOMs/                        # 匿名化 DICOM
│   └── id_00082e3a-ec11c281-...-22432fb1     # 患者(PatientID,随机生成)
│       └── Study_09342613.22970294.-...      # 检查(StudyInstanceUID)
│           └── Series_34523850.21768222.-... # 序列(SeriesInstanceUID)
│               └── image-48219538-...-.dcm   # 图像(SOPInstanceUID)
└── images/                                   # PNG 副本:与上面完全同构
    └── id_00082e3a-ec11c281-...-22432fb1
        └── Study_09342613.22970294.-...
            └── Series_34523850.21768222.-...
                └── image-48219538-...-.png

要点:主表 DicomPath/PngPath 两列分别指向两种格式;同一患者可有多个检查,同一检查可有多个序列与多张图(正侧位);所有标识符随机生成,文件夹顺序与真实时间顺序无关[1]。

§4.1 DAIMS 字段字典(master_spreadsheet.csv)

字段名 类型 说明 示例值 AI 用途 观测误差/陷阱 信息性缺失编码 取值范围
DicomPath str DICOM 文件相对路径 Anonymized_DICOMs/id_00…/image-….dcm 影像读取入口 随机 ID,无时间含义 文件路径
PngPath str PNG 文件相对路径 images/id_00…/image-….png 快速训练通道 重标度过,非原始灰度 文件路径
PatientID str 患者唯一标识(随机生成) id_00082e3a-… 患者级分组防泄漏 顺序≠时间顺序 随机串
PatientSex str 性别 M / F / O 公平性分析 O 类样本极少
PatientAge str 5 岁分箱年龄 55 or more 前的分组值(如 60-64) 年龄分层 箱内不均匀;85+ 截断 分箱值+“85 or more”
AccessionNumber str 检查唯一标识(随机生成) 随机串 检查级主键 随机串
StudyDate str 虚构检查日期(哈希) 1905-2022 区间内的伪日期 仅相对间隔可用 绝对日期无流行病学意义 伪日期
14 类标签列 int/空 CheXpert 体系 14 类 1 / 0 / −1 / 空 主监督信号 study 级标签,多图共享 空=未提及(unmention)
No Finding int/空 复合阴性标签 1 阴性筛查 Support Devices 不算异常 空=未提及
ViewPosition str 投照体位 AP / PA / LL / RL / RLD / LLD / RLO / LLO 体位分层与元学习 体位影响心胸比等判读 8 种枚举
Rows int 图像垂直像素数 2500 尺寸自适应/裁剪策略 差异大,需统一 resize 正整数
Columns int 图像水平像素数 2048 同上 同上 正整数
Manufacturer int 设备厂商索引(脱敏) 3 厂商偏倚分析 无法还原厂商名 整数编码

§4.2 标签编码体系与语义

标签值语义(14 列共用,源自官方 Data Description):
  1   = 报告阳性提及(positive mention)
  0   = 报告否定(negation)
  -1  = 不确定(uncertainty)
  空  = 未提及(unmention)——不等于阴性!
特殊规则:No Finding = 1 当且仅当其余 13 类中除 Support Devices 外全部非阳性

工程含义:阴性有三种形态(0=明确否定、空=未提及、No Finding=1),三种形态的先验含义不同。直接把空值填 0 会引入"报告未写 = 无病"的强假设;CheXpert 社区的 U-Ones(−1 并入 1)、U-Zeros(−1 并入 0)、U-MultiClass 三种策略在 BRAX 上同样适用,IEEE Access 2025 的 BRAX 基准采用 U-Ones[3]。三种阴性的完整对照与处理建议见 §4.5。

§4.3 关键统计

  • 图像 40,967 张;检查 24,959 个;患者 19,351 名;平均每检查约 1.64 张图像、每患者约 1.29 个检查(由 40,967/24,959 与 24,959/19,351 推算)[1]。
  • No Finding 71.0% vs CheXpert 8.86%:同一名为"阴性先验"的量,两个数据集差 8 倍以上[2]。
  • Edema 阳性仅 50 张(0.12%)vs CheXpert 26.06%:跨数据集迁移时该类是崩塌高发点[2]。
  • 标签验证:1,000 份报告、双人一致金标准,14 类 F1 中位数约 0.9(0.762-1.000)[1]。
  • 引用:34+(Scopus/PlumX,截至 2026-09)。

由官方总量可推算(非官方公布、用前自行复核)的结构性统计:

  • 多图检查占比:40,967/24,959 ≈ 1.64 张/检查,说明相当比例的检查携带多张图像(正侧位组合为主;按多图检查的平均图数不同,占比介于约三成与六成之间)。这些多图检查在患者级分组之外还需要检查级分组,否则同一检查的正侧位分属训练/测试两侧(§5.3 第二层泄漏)。
  • 复诊患者占比:24,959/19,351 ≈ 1.29 检查/患者,意味着相当比例患者(约 15%-29%,取决于复诊次数分布)贡献了多个检查。慢性病随访患者的前后片相关性最强,是患者级分组收益最大的人群。
  • 标签矩阵规模:24,959 检查 × 14 类 = 349,426 个标签单元,其中四值(1/0/−1/空)的真实分布可在加载后一行统计:df[LABELS].apply(lambda s: s.value_counts(dropna=False))——这一步同时验证 v1.1.0 主表解析正确性(v1.0.0 的 CSV 缺陷会在此暴露)。
  • 有效监督密度:以图像计的阳性标签总量约 5.75 万(各阳性类图像数求和 57,486,一图可多类阳性),平均每图约 1.4 个阳性标签——多标签头设计时每样本只贡献稀疏正信号,BCE loss 的类权重校准不可省略。

§4.4 数据层级

患者 PatientID(19,351)
 └── 检查 Study/AccessionNumber(24,959)   ← 主表一行 = 一个检查;标签挂在此层
      └── 序列 Series(体位/生成方式分组)
           └── 图像 image(40,967)          ← 真正进网络的对象;无独立标签

两张关键映射:标签只在检查层存在,图像级训练必须做"检查→图像"标签广播(标签广播会放大多图不一致风险,见坑点 1);患者层是防泄漏分组的最小单位(见坑点 2)。

§4.5 缺失值与信息性缺失编码表

值形态 官方语义 统计学含义 常见误读 建议处理
1 阳性提及 有该发现 正类
0 明确否定 报告排除该发现 负类(高置信)
−1 不确定 报告措辞含糊 误当负类 U-Ones/U-Zeros/U-MultiClass 三选一并做敏感性分析
空(NaN) 未提及 报告没写 误当“明确阴性” 视任务选择:当负类(低权重)或丢弃该检查
No Finding=1 复合阴性 除器械外全阴性 与“0 行”混淆 单独二分类头或重加权

§5 划分与使用建议

§5.1 官方划分

无官方 train/validation/test 划分。论文流程中曾为质量核查分出一个隐藏测试子集,但未随数据发布[1]。PhysioNet 版本只交付完整主表与全部影像,任何实证比较都发生在研究者自建划分上——这是 BRAX 与 CheXpert(官方 val/test 划分)最大的使用差异。

§5.2 社区惯例划分

IEEE Access 2025 的 BRAX 基准沿用了按患者分组的 5 折交叉验证:每折轮流做测试,其余 4 折按 90/10 分训练/验证;图像缩放至 256×256 后中心裁剪 224×224;不确定标签按 U-Ones 处理[3]。复现该基准时严格照搬即可获得可比性。

§5.3 泄漏风险(重点)

BRAX 的泄漏风险集中在两层。第一层是患者内检查泄漏:19,351 名患者对应 24,959 个检查,同一患者前后多次胸片的影像高度相似(慢性病随访尤甚),若按检查随机切分,测试集会"见过"训练患者的旧片子,AUC 虚高可达数个百分点——必须以 PatientID 为分组键做 GroupShuffleSplit/GroupKFold。第二层是检查内图像泄漏:同一检查的正侧位共享同一标签且内容高度相关,折叠时需保证同一检查的全部图像落在同一侧。划分代码见 §6.9。

§5.4 交叉验证与外部验证建议

  • 内部评估:按患者分组 5 折交叉验证(社区惯例[3]),报告逐类 AUC + 95% CI;稀有类(Edema、Enlarged Cardiomediastinum、Pleural Other)建议报告合并后的小类组指标或使用分层自助法。
  • 外部验证:以 CheXpert→BRAX 或 MIMIC-CXR→BRAX 为标准方向,训练域与 BRAX 患者零重叠自不待言;反向(BRAX 训练→CheXpert 测试)因数据量差距过大不建议。
  • 纵向扩展:若关注时序泛化,可用 StudyDate 的相对间隔构造"前段训练、后段测试"的伪时间切分(绝对日期不可用,见 §3.7)。
划分策略决策表
你的场景 推荐划分 分组键 理由与代价
复现/对比 IEEE 2025 基准 按患者分组 5 折 CV,每折 90/10 分 train/val PatientID 与唯一已发表基准可比[3];5 倍训练成本
快速原型迭代 按患者 8:1:1 单次划分 PatientID 一次训练出结果;单次划分方差大,结论需 CV 复核
正侧位多图任务 按患者分组后再按检查分组(两级不落侧) PatientID + AccessionNumber 防第二层泄漏;实现见 §6.9 泄漏自检扩展
外部验证(自带模型) BRAX 全量做测试,无需划分 只报逐类 AUC 与先验对照,不做重训练
标签噪声研究 固定划分 + 双标签策略平行实验 PatientID U-Ones vs U-Zeros 结果差要落在同一划分上才有意义
伪时序泛化 StudyDate 相对间隔前 80%/后 20% 患者不跨界 近似部署时"旧模型看新片"的真实分布漂移

任何划分落地后,先跑 §6.9 的患者交集自检再开始训练——这一步只花一秒,却是 BRAX 上最常见的虚高来源(坑点 2 的所有真实案例都源于跳过它)。

§5.5 使用红线清单

  1. 禁止使用真实时间语义解释 StudyDate(虚构日期)[1]。
  2. 禁止按检查/图像随机切分而不做患者分组(§5.3)。
  3. 禁止把空标签(未提及)直接解释为"放射科医师排除了该病"(§4.5)。
  4. 禁止在报告生成、报告检索等任务上使用本数据集(报告未发布)[1]。
  5. DUA 禁止二次分发与再识别尝试;论文中厂商映射、匿名化代码均不公开[1]。

§6 AI 就绪指南 ⭐

§6.0 环境与云端快速启动

运行环境 适配度 要点
本地 GPU 工作站 ⭐⭐⭐ 数据落本地盘后随机读取最快;DUA 要求本机不对外共享数据
Colab/Kaggle 免费档 ⭐⭐ 磁盘约几十 GB 且会话回收——PNG 全量可行,DICOM 通道建议按需子集;每次会话需重新挂载
云主机(自管) ⭐⭐⭐ PhysioNet 支持 wget/HTTPS 直接拉取;注意对象存储桶与 DUA 的地域合规
# —— 环境自检脚本:在任何环境先跑这段再开始 ——
import sys, pandas, torch, PIL
print("python", sys.version.split()[0],
      "| pandas", pandas.__version__,
      "| torch", torch.__version__,
      "| cuda", torch.cuda.is_available())
# 期望:python >= 3.10;cuda True(CPU 亦可跑通 §6.1 快速上手,但训练不现实)

# 内存占用估算(选型参考):
#   master_spreadsheet.csv 常驻内存 < 50 MB —— 任何环境都无压力
#   PNG 全量 40,967 张按需解码(不建议一次性载入内存):
#     运行时实际占用 = batch_size × 3×224×224×4 bytes ≈ batch 32 时约 19 MB
#   结论:BRAX 是"表小图多"型数据集,DataLoader 流式解码即可,无需预打包成 lmdb/npz

会话回收环境的作业模式(Colab/Kaggle):把"下载→解压→校验"做成一个幂等脚本单元(存在则跳过),数据目录放在会话盘固定路径;长时间训练用检查点 + 可恢复 DataLoader(记录 epoch/step),按 §6.10 把划分文件与配置持久化到外部存储。DUA 提醒:云环境属于"把数据置于你控制的机器上",与本地工作站同受 DUA 约束——不得设置公开可读的存储桶/网盘中转,训练日志与可视化样例图上传前确认不构成二次分发。

§6.1 快速上手

以下代码假设你已完成 PhysioNet 凭证认证并下载解压数据。目录结构预期:解压根目录 data_root/ 下直接是 images/Anonymized_DICOMs/master_spreadsheet.csv 三项;data_root 与文件路径的拼接关系为 data_root / PngPath(主表中的路径列为相对路径)。最小可用子集建议:只取 ViewPosition 为 AP 或 PA 的正位图 + 5 个常见标签(No Finding/Cardiomegaly/Atelectasis/Pleural Effusion/Consolidation),先跑通闭环再扩全 14 类。

# 环境准备(Python 3.10+)
# pip install pandas torch torchvision pydicom scikit-learn
import pandas as pd
from pathlib import Path

data_root = Path("/data/brax-1.1.0")          # 解压根目录
df = pd.read_csv(data_root / "master_spreadsheet.csv")   # v1.1.0 可直接解析

print(df.shape)        # (24,959, 27) 左右:24,959 个检查
print(df.columns.tolist())
# ['DicomPath', 'PngPath', 'PatientID', 'PatientSex', 'PatientAge',
#  'AccessionNumber', 'StudyDate', 'No Finding', 'Enlarged Cardiomediastinum',
#  'Cardiomegaly', 'Lung Lesion', 'Lung Opacity', 'Edema', 'Consolidation',
#  'Pneumonia', 'Atelectasis', 'Pneumothorax', 'Pleural Effusion',
#  'Pleural Other', 'Fracture', 'Support Devices', 'ViewPosition',
#  'Rows', 'Columns', 'Manufacturer', ...]   # 以实际文件为准

# 校验:PNG 路径可解析
probe = data_root / df["PngPath"].iloc[0]
assert probe.exists(), f"路径拼接失败,请检查 data_root:{probe}"

# 最小可用子集:正位 + 常见 5 标签
frontal = df[df["ViewPosition"].isin(["AP", "PA"])].copy()
cols5 = ["No Finding", "Cardiomegaly", "Atelectasis", "Pleural Effusion", "Consolidation"]
print(frontal[cols5].apply(pd.Series.value_counts))

§6.2 数据获取

步骤 操作 说明
1 注册 PhysioNet 账号并完成凭证认证(credentialing) 需提交身份/所属机构材料,审核约 1-2 个工作日
2 签署 BRAX 数据使用协议(DUA) 承诺不共享数据、不尝试再识别
3 进入 项目 Files 面板 下载 推荐 images/(PNG)先行;DICOM 可按需补下
4 校验完整性 检查主表行数 24,959 与图像张数 40,967
# 凭证认证通过后,PhysioNet 支持标准 HTTPS 下载(浏览器或 wget 均可)
# 示例:wget 方式(需先在浏览器登录获取会话或使用 PhysioNet 提供的下载链接)
# wget -c --user=<username> --password=<password> \
#      https://physionet.org/files/brax/1.1.0/master_spreadsheet.csv

下载完成后的三步完整性校验(全部通过才开始预处理):主表校验——pd.read_csv 成功且行数等于 24,959(v1.0.0 在此步即会暴露 CSV 缺陷);图像计数——遍历 images/ 目录统计 PNG 张数应为 40,967,与主表 PngPath 一一对应;抽样可读——随机抽 100 条记录逐一打开 PNG/DICOM,确认无损坏文件与空路径。三步脚本化存档,作为数据载入记录的一部分(对接 §6.10 版本绑定)。

§6.3 预处理全流程

import numpy as np
import pandas as pd
import torch
from PIL import Image
from pathlib import Path

LABELS = ["Enlarged Cardiomediastinum", "Cardiomegaly", "Lung Lesion",
          "Lung Opacity", "Edema", "Consolidation", "Pneumonia",
          "Atelectasis", "Pneumothorax", "Pleural Effusion",
          "Pleural Other", "Fracture", "Support Devices", "No Finding"]

def load_labels(df: pd.DataFrame, strategy: str = "u_ones") -> np.ndarray:
    """把 14 列四值标签(1/0/-1/NaN)按既定策略转成训练矩阵。
    strategy: u_ones | u_zeros | binarize_mention
      u_ones  : -1 并入 1,NaN 并入 0(CheXpert 社区默认,IEEE 2025 BRAX 基准采用)
      u_zeros : -1 与 NaN 全并入 0
      binarize_mention : 仅 1 为正,其余全负(最保守,正类偏少)
    """
    y = df[LABELS].copy()
    y = y.fillna(-1)                     # 统一四值
    if strategy == "u_ones":
        y = y.replace({-1: 1})
    elif strategy == "u_zeros":
        y = y.replace({-1: 0})
    else:
        y = y.where(y == 1, 0)
    return y.values.astype("float32")

def make_patient_split(df: pd.DataFrame, seed: int = 42):
    """患者级 8:1:1 划分——分组键必须是 PatientID(见坑点 2)。"""
    from sklearn.model_selection import GroupShuffleSplit
    gss = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=seed)
    train_idx, rest_idx = next(gss.split(df, groups=df["PatientID"]))
    rest = df.iloc[rest_idx]
    gss2 = GroupShuffleSplit(n_splits=1, test_size=0.5, random_state=seed)
    val_idx, test_idx = next(gss2.split(rest, groups=rest["PatientID"]))
    return df.iloc[train_idx], rest.iloc[val_idx], rest.iloc[test_idx]

def read_dicom_hu_insensitive(path: Path) -> np.ndarray:
    """需要原始灰度/窗宽窗位信息时用 DICOM 通道(PNG 已重标度,见坑点 8)。"""
    import pydicom
    ds = pydicom.dcmread(path)
    img = ds.pixel_array.astype(np.float32)
    if hasattr(ds, "RescaleSlope") and hasattr(ds, "RescaleIntercept"):
        img = img * float(ds.RescaleSlope) + float(ds.RescaleIntercept)
    return img

标准化与增强约定:胸片通用做法是 resize 到 256×256(保持纵横比 + padding),训练时中心裁剪/随机裁剪 224×224,按 ImageNet 均值方差归一化(与主流 ImageNet 预训练骨干对齐,IEEE 2025 基准亦如此[3])。

两个进阶预处理选项(按需启用,每个都要在模型卡声明):

# 变体 A:体位分层输入。AP 与 PA 的心影放大率不同,下游判读差异显著;
# 最简单做法是把 ViewPosition 作为额外特征拼接(或过滤到单一正位训练)。
# 注意:侧位(LL/RL)与卧位/斜位(RLD/LLD/RLO/LLO)共 6 种体位合计占比小,
# 正位-only 子集是多数论文的隐含选择,务必在协议中显式声明。

# 变体 B:CLAHE 对比度增强(胸片常用,对小病灶可视性有增益)
import cv2

def clahe_gray(png_bytes) -> np.ndarray:
    img = cv2.imdecode(png_bytes, cv2.IMREAD_GRAYSCALE)
    clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
    return clahe.apply(img)          # 输出仍为 uint8,后续再归一化

# 变体 C:DICOM 原始灰度 + 手动窗宽窗位(需要绝对灰度语义时,如水肿观察)
def window_dicom(path: Path, center: float, width: float) -> np.ndarray:
    img = read_dicom_hu_insensitive(path)            # 见上方 read_dicom_hu_insensitive
    lo, hi = center - width / 2, center + width / 2
    return np.clip((img - lo) / (hi - lo), 0, 1)     # 线性窗到 [0,1]

# 胸部软组织窗常用 center≈2.5%、width≈4%(针对重标度后的动态范围自行标定;
# 匿名化 DICOM 未保留窗位标签时,可先对 1,000 张抽样画直方图确定范围)

反模式提醒:不要对 PNG 再做二次重标度后声称"原始灰度";不要在训练/验证/测试三个子集上分别拟合归一化统计量(先在训练折上算均值方差,再应用到全部折);CLAHE 属于确定性变换可安全用于训练与评估两侧,但随机对比度抖动属于增强,只能用于训练侧(§6.6)。

§6.4 PyTorch DataLoader 完整代码

import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
from PIL import Image

class BRAXDataset(Dataset):
    """BRAX 多标签分类数据集(PNG 快速通道)。
    目录预期:<data_root>/images/... 与主表 PngPath 列拼接;
    标签:study 级 14 列 → 按策略转二值矩阵后广播到检查内每张图。
    """
    def __init__(self, df: pd.DataFrame, data_root: str,
                 strategy: str = "u_ones", train: bool = True):
        self.df = df.reset_index(drop=True)
        self.root = Path(data_root)
        self.labels = load_labels(self.df, strategy=strategy)
        if train:
            self.tf = transforms.Compose([
                transforms.Resize((256, 256)),
                transforms.RandomCrop(224),
                transforms.RandomAffine(degrees=7, translate=(0.03, 0.03), scale=(0.95, 1.05)),
                transforms.ToTensor(),
                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
            ])
        else:
            self.tf = transforms.Compose([
                transforms.Resize((256, 256)),
                transforms.CenterCrop(224),
                transforms.ToTensor(),
                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
            ])

    def __len__(self):
        return len(self.df)

    def __getitem__(self, i):
        img = Image.open(self.root / self.df.loc[i, "PngPath"]).convert("RGB")
        return self.tf(img), torch.from_numpy(self.labels[i])

train_df, val_df, test_df = make_patient_split(df)
train_set = BRAXDataset(train_df, str(data_root), train=True)
val_set   = BRAXDataset(val_df,   str(data_root), train=False)
train_loader = DataLoader(train_set, batch_size=32, shuffle=True,
                          num_workers=4, pin_memory=True, persistent_workers=True)
val_loader   = DataLoader(val_set, batch_size=64, shuffle=False,
                          num_workers=4, pin_memory=True)

<details>
<summary>训练循环骨架(点击展开,约 40 行)</summary>

import torch.nn as nn
from torchvision.models import densenet121, DenseNet121_Weights

device = "cuda" if torch.cuda.is_available() else "cpu"
model = densenet121(weights=DenseNet121_Weights.IMAGENET1K_V1)
model.classifier = nn.Linear(model.classifier.in_features, len(LABELS))
model = model.to(device)

criterion = nn.BCEWithLogitsLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-4, weight_decay=1e-5)
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(
    optimizer, mode="min", factor=0.5, patience=3)

for epoch in range(20):
    model.train()
    for x, y in train_loader:
        x, y = x.to(device), y.to(device)
        optimizer.zero_grad()
        loss = criterion(model(x), y)
        loss.backward()
        optimizer.step()
    model.eval()
    val_loss = 0.0
    with torch.no_grad():
        for x, y in val_loader:
            x, y = x.to(device), y.to(device)
            val_loss += criterion(model(x), y).item() * x.size(0)
    val_loss /= len(val_set)
    scheduler.step(val_loss)
    print(f"epoch {epoch}: val_loss={val_loss:.4f}")

</details>

§6.5 坑点清单(8 个,均为 BRAX 真实特有失败模式)

⚠️ 坑点 1:标签挂在检查(study)层,一张 CSV 行对应多张图(分类:标签理解)

问题:master_spreadsheet.csv 一行是一个检查,同一检查的正位+侧位(乃至多序列)图像共享同一套 14 类标签。直接把 40,967 张图像当作 40,967 个独立样本、或反过来把 24,959 行当全部训练单元,都会造成监督粒度错位。
症状:图像级训练时侧位图"继承"了只属于正位图的发现描述;统计阳性样本数时用行数(24,959)替代图像数(40,967)导致采样权重错误;同一检查内两张图一轮训练分属训练/测试两侧(若未按检查分组)。
解决

  1. 简单方法:确定训练粒度——图像级则将检查标签广播到该检查全部图像(df.explode 展开或 join),统计与采样也全部以广播后的表为准。
  2. 进阶方法:侧位影像学意义与正位不同(心胸比、胸膜量均需正位),可过滤 ViewPosition∈{AP, PA} 只训正位;或给不同体位学习体位嵌入(position embedding)。
  3. SOTA 方法:检查级聚合头——图像骨干输出经注意力池化聚合到检查再做分类,保持监督粒度与评估粒度一致(MIL 范式),同时天然规避体位混淆。
    参考论文 Data Records:The table provides one row per study;官方 Data Description

⚠️ 坑点 2:没有官方划分,按检查随机切分必然患者级泄漏(分类:数据泄漏)

问题:BRAX 不提供官方 train/test 划分。19,351 名患者贡献 24,959 个检查,约两成患者有多次检查;随访患者前后胸片高度相似。按 AccessionNumber 或图像随机切分,同一患者的旧检查会进入训练集、新检查进入测试集。
症状:测试 AUC 比 5 折分组交叉验证虚高(常见 2-5 个点);论文投稿被审稿人指出"未按 patient 分组";同类模型在不同论文上不可比。
解决

  1. 简单方法:GroupShuffleSplit(分组键 = PatientID)单次 8:1:1 划分,代码见 §6.3 make_patient_split
  2. 进阶方法:按患者分组 5 折交叉验证 + 逐类 AUC 报告均值±标准差(IEEE Access 2025 的 BRAX 协议,可直接对标[3])。
  3. SOTA 方法:在患者分组基础上再做"检查间最小间隔"约束(利用保留的相对时间间隔,把同一患者相邻检查留在同侧),并补做分层抽样保证稀有类在各折都有阳性。
    参考Silva 等, IEEE Access 2025,5-fold patient-grouped CV;论文 Fig. 2 隐藏测试子集说明[1]。

⚠️ 坑点 3:NLP 标签噪声呈类别结构化,Pneumonia/Lung Lesion/Edema 最脆(分类:标签理解)

问题:14 类标签全部由 NLP 自动生成。官方以双人一致意见为金标准的验证显示 F1 从 1.000(Pneumothorax)一路跌到 0.762(Pneumonia)、0.795(Lung Lesion)、0.800(Edema)——噪声不是随机的,而是集中在描述性词汇丰富的类别上。
症状:稀有且"脆"的类别上模型 AUC 长期 0.6-0.7 难以提升;把 BRAX 标签当完美真值做校准(calibration)会得到虚假的过/欠置信结论;跨数据集对比时 Pneumonia 一类与人工标注数据集系统性不一致。
解决

  1. 简单方法:把官方逐类 F1 当作噪声先验,训练时对低 F1 类别降权或做标签平滑(ε 取 1−F1 量级)。
  2. 进阶方法:置信学习(cleanlab)在 U-Zeros 二值化标签上先找疑似错标样本,人工复核后剔除或改权;对 −1(不确定)样本做三策略(U-Ones/U-Zeros/U-MultiClass)敏感性分析并报告区间。
  3. SOTA 方法:噪声转移矩阵建模——按官方验证子集估计每类"真值→NLP 标签"的转移概率,前向损失(forward loss)训练;或用多个英文预训练模型对 BRAX 影像做软投票,与 NLP 标签做弱融合。
    参考论文 Table 2 逐类 F1BRAX-labeler 代码

⚠️ 坑点 4:先验悬殊——No Finding 71%、Edema 仅 50 张,迁移前先对齐类别先验(分类:偏倚陷阱)

问题:BRAX 71.0% 的检查无任何异常,CheXpert 该比例仅 8.86%;Edema 在 CheXpert 占 26.06%(48,905 张)而在 BRAX 只有 50 张(0.12%)。从 CheXpert/MIMIC-CXR 直接迁移到 BRAX(或反向解读 BRAX 结果)时,类别先验差 1-2 个数量级。
症状:CheXpert 预训练模型在 BRAX 上 Edema AUC 崩塌或输出全负;在 BRAX 上训练的模型去测 CheXpert 时 Edema 疯狂误报;论文间 AUC 不可直接比较。
解决

  1. 简单方法:训练时按类频做加权 BCE(权重 ∝ 1/频次)或重采样;评估时报告逐类 AUC 而非 micro 平均一锤定音。
  2. 进阶方法:先验校正——迁移推理时按两域先验比调整 logit 偏置(logit adjustment:log(p_target/p_source))。
  3. SOTA 方法:源域训练 + 目标域小样本重校准(把 BRAX 验证折留作温度缩放/先验对齐),并做按类的域偏移消融;对 Edema 类 50 张样本建议合并分析或完全排除该类并显式声明。
    参考IEEE Access 2025 对比表:BRAX vs CXP 分布论文 Table 1

⚠️ 坑点 5:−1(不确定)与空(未提及)是两种语义,混用会污染监督信号(分类:标签理解)

问题:标签列有四种取值:1/0/−1/空。−1 表示报告措辞不确定(如“可能存在少量积液”),空表示报告完全没提。把空值当 0 训练,等于宣称“没写 = 医师排除了该病”;把 −1 当 0 或 1 各有系统性偏差。
症状:No Finding 与其他类出现逻辑矛盾(No Finding=1 的行里还有阳性类,除器械外);验证集指标随“缺失值填充策略”大幅摆动;与人工标注数据集对比时阴性定义对不上。
解决

  1. 简单方法:U-Ones(−1→1,空→0)或 U-Zeros(−1→0,空→0)二选一,写进实验记录并固定。
  2. 进阶方法:三策略(+U-MultiClass)都跑,报告指标区间;对 No Finding=1 的行做一致性断言(除 Support Devices 外其余类非 1),修复矛盾行。
  3. SOTA 方法:把 −1 与空建模为独立的不确定性通道(uncertainty-aware loss / 部分标签学习 PLL),让模型输出软标签而非强行二值化。
    参考官方 Data Description 标签编码;CheXpert 不确定标签三策略(Irvin 等, AAAI 2019)[3]。

⚠️ 坑点 6:v1.0.0 主表有 CSV 格式缺陷,老版本解析会错位(分类:工程陷阱)

问题:v1.1.0 的变更日志明确说明"includes an updated version of master_spreadsheet.csv to fix a CSV formatting issue"。若沿用 v1.0.0 主表或从旧镜像下载,字段可能错列。
症状:pd.read_csv 后列名对不上(如标签列混入 ViewPosition);PngPath 出现带引号/逗号的脏值;行数与 24,959 不符。
解决

  1. 简单方法:一律下载 v1.1.0(DOI 10.13026/grwk-yh18)的主表。
  2. 进阶方法:必须用 v1.0.0 复现旧论文时,用 pd.read_csv(..., quoting=csv.QUOTE_ALL) 或逐行修复引号后重存;对照 v1.1.0 主表 diff 校验行序。
  3. SOTA 方法:数据加载层做 schema 校验(pandera:列名、取值域 {1,0,−1,NaN}、行数),入库即拦截格式回归。
    参考PhysioNet v1.1.0 版本说明

⚠️ 坑点 7:StudyDate 是虚构日期、ID 顺序无时间含义,时序分析会得出伪结论(分类:工程陷阱)

问题:去标识流程把 StudyDate/SeriesDate/AcquisitionDate/ContentDate 哈希成虚构日期(仅保留检查间相对间隔),且 PatientID/AccessionNumber 全部随机生成、顺序与真实时间无关。绝对日期与 ID 排序都不能反映真实时间。
症状:按 StudyDate 画“肺炎逐月趋势”得到无意义的均匀分布;按 PatientID 排序做“时间切分”实际是随机切分;把伪日期写入数据卡片/论文造成误导。
解决

  1. 简单方法:把 StudyDate 仅用于计算同一患者的检查间隔(排序后取差值),绝对值丢弃。
  2. 进阶方法:需要时序验证时构造“相对间隔切分”:以患者为单位按首个检查的伪日期排序近似真实先后(间隔信息保留),再做前段训练、后段测试,并声明近似性。
  3. SOTA 方法:放弃绝对时序假设,改做“按检查序号的序贯划分”(患者内第 1 次检查训练、后续检查测试),模拟真实随访泛化。
    参考论文匿名化段:fictitious dates, retaining only the original time intervals

⚠️ 坑点 8:PNG 是重标度副本,窗宽窗位/原始灰度相关任务必须用 DICOM 通道(分类:预处理陷阱)

问题:官方流程将 DICOM 转换为 PNG 并重标度(rescale)。PNG 丢失了原始像素深度、窗宽窗位与线性标度信息,且部分 DICOM 元数据(设备、体位细节)只留在 DICOM 头。
症状:常规分类用 PNG 没问题,但密度/钙化定量、阈值分割、体位或设备元数据挖掘任务在 PNG 上出现系统性偏差;同一检查 DICOM 与 PNG 的灰度直方图对不上,多通道混训时特征漂移。
解决

  1. 简单方法:分类任务用 PNG 全速训练;涉及灰度保真度的任务统一走 DICOM 通道(pydicom + RescaleSlope/Intercept,见 §6.3)。
  2. 进阶方法:混合管线——训练用 PNG(吞吐优先),评估与可视化用 DICOM;在数据卡片中记录两通道差异,禁止跨通道比较灰度特征。
  3. SOTA 方法:预处理层统一从 DICOM 现场生成标准化 16-bit 中间格式(如 Zarr/npz),把重标度逻辑收口到一个可审计函数,PNG 只留作教学与浏览。
    参考论文 Fig. 1:DICOM images were converted to PNG format and rescaled

§6.6 数据增强:安全与危险对照

增强 安全性 说明
随机裁剪(含胸廓内) ✅ 安全 224×224 中心/随机裁剪为社区标准[3]
小角度旋转(±7°)+ 小幅平移/缩放 ✅ 安全 模拟投照体位差异
水平翻转 ⚠️ 谨慎 胸片结构近似轴对称,多数研究接受;但心影偏移(Cardiomegaly 判读)有方向性,翻转后标签不变属可容忍近似
灰度对比/亮度抖动 ✅ 安全 幅度控制在 ±10% 内
重度弹性形变 ❌ 危险 破坏病灶形态学特征(结节、气胸线)
大角度旋转(>15°) ❌ 危险 制造解剖学上不存在的姿态,破坏体位先验
随机擦除/CutOut 大面积 ❌ 危险 可能抹掉 Support Devices 等器械标签的全部视觉证据,标签失真

§6.7 模型推荐表

模型 适用场景 依据
DenseNet-121 14 类多标签分类基线,社区最通用 CheXpert/MIMIC-CXR 标准骨干,BRAX 基准亦采用[3]
ResNet-101 与 DenseNet 对照的稳健选择 同一基准[3]
Swin Transformer 更大容量 + 迁移学习策略研究 同一基准[3]
EfficientNet-B0(×4 集成) 分割+分类多头框架 BRAX 上平均 AUROC 0.88 的已发表配置[5]
分割轻量网(LW-net 级别) 肺野分割与严重度评分 BRAX 验证集分割 F1 0.9246-0.9398[5]

选型决策顺序:先按任务选形态(分类→DenseNet-121 起步;分割+评分→多头框架),再按算力选骨干(8 GB 级显卡退到 EfficientNet 系),最后才考虑更大模型——BRAX 的标签噪声上限(§7.2)决定了骨干容量超过 DenseNet-121/Swin-T 后收益快速递减,"更大模型"通常不是 BRAX 实验的正确投资方向;把算力花在划分稳健性(5 折 CV)与标签策略敏感性分析上的边际收益更高。

§6.8 硬件需求表

阶段 显存 显卡建议 说明
PNG 通道训练(224×224,batch 32) ≥8 GB RTX 3060 级 DenseNet-121/ResNet-101 即可
DICOM 通道训练(原始尺寸现场处理) ≥16 GB RTX 4090 / A5000 解码 CPU 密集,建议 num_workers≥8
5 折交叉验证全量复现 ≥24 GB 或云端 A100/多卡 20 epoch × 5 折,CPU 数据管道是瓶颈

成本优化的三条实证建议:其一,BRAX 瓶颈通常在 CPU 解码而非 GPU——PNG 通道用 torchvision 原生解码、num_workers 拉满、persistent_workers=True,吞吐常可翻倍;其二,先在正位子集(AP+PA,约占大头)上完成全部消融,最后只对最优配置跑全 8 体位与 5 折全量,可省去六成以上算力;其三,混合精度(AMP)在 DenseNet-121 级骨干上稳定且近乎免费,唯一注意点是稀有类 loss 权重缩放后检查是否有数值下溢(监控 loss 是否出现 NaN)。
| 仅推理/教学演示 | ≥4 GB | 任意 GPU | PNG + batch 64 推理 |

§6.9 评估指标代码

import numpy as np
from sklearn.metrics import roc_auc_score

def evaluate(y_true: np.ndarray, y_prob: np.ndarray, labels=LABELS):
    """逐类 AUC + 小类组指标。稀有类(Edema 等)单看 AUC 方差大,
    建议同时报告 13 类宏平均(去 No Finding)与常见 5 类组。"""
    rows = []
    for j, name in enumerate(labels):
        mask = y_true[:, j].sum() > 0
        if mask.sum() == 0:
            rows.append((name, np.nan))
            continue
        auc = roc_auc_score(y_true[mask, j], y_prob[mask, j])
        rows.append((name, auc))
    return dict(rows)

# 泄漏自检:划分后两两集合的患者交集必须为空
tr, va, te = make_patient_split(df)
assert set(tr.PatientID) & set(te.PatientID) == set()
assert set(va.PatientID) & set(te.PatientID) == set()
print("patient-level leakage check: OK")

# —— 扩展 1:bootstrap 95% CI(稀有类必报)——
def auc_with_ci(y_true, y_prob, j, n_boot: int = 1000, seed: int = 42):
    rng = np.random.default_rng(seed)
    n = len(y_true)
    aucs = []
    for _ in range(n_boot):
        idx = rng.integers(0, n, n)
        yt, yp = y_true[idx, j], y_prob[idx, j]
        if 0 < yt.sum() < len(yt):               # 折内两类都有才可计算
            aucs.append(roc_auc_score(yt, yp))
    return (np.median(aucs),
            np.percentile(aucs, 2.5),
            np.percentile(aucs, 97.5))
# Edema(50 张阳性)单折可能整类缺席测试侧——此时报告"该折不可评"而非 0.5

# —— 扩展 2:图像级 → 检查级聚合(同检查多图先取最大概率再评估)——
def study_level_aggregate(y_prob, df_subset):
    """同一 AccessionNumber 的多张图共享标签;评估时聚合到检查级更保守。"""
    return (df_subset.assign(**{c: y_prob[:, i] for i, c in enumerate(LABELS)})
            .groupby("AccessionNumber")[LABELS].max())

# —— 扩展 3:校准曲线(弱标签 + 阴性主导的数据集,模型概率几乎必然过自信)——
from sklearn.calibration import calibration_curve
import matplotlib.pyplot as plt

def plot_calibration(y_true, y_prob, j, name, n_bins: int = 10):
    frac_pos, mean_pred = calibration_curve(y_true[:, j], y_prob[:, j],
                                            n_bins=n_bins, strategy="quantile")
    plt.plot(mean_pred, frac_pos, marker="o", label=name)
    plt.plot([0, 1], [0, 1], "--", color="gray")
    plt.xlabel("predicted probability"); plt.ylabel("observed frequency")
    plt.legend(); plt.title(f"calibration: {name}")
# 部署场景(阈值触发提醒)必看校准;纯论文对比 AUC 可选

§6.10 MLOps 笔记

  • 版本绑定:数据卡片必须记录 physionet-brax==1.1.0 + DOI 10.13026/grwk-yh18;v1.0.0 与 v1.1.0 主表不可混用(坑点 6)。
  • 标签策略入配置:U-Ones/U-Zeros/二值化属于实验维度,写入配置文件并在模型卡中声明,禁止硬编码。
  • 数据质量监控:上线监控 8 种 ViewPosition 与 Manufacturer 索引的分布漂移——单中心数据上线到多院区时这两个维度最先漂移。
  • 合规管道:下载、解密、解压的机器必须满足 DUA(不得对外共享);衍生统计表发布前确认不含患者级信息。
  • 可复现性:患者分组划分保存为 JSON(种子 + PatientID 列表),任何复评以同一划分文件为准;官方逐类 F1 作为标签噪声回归测试的锚点(若你的训练管线重打标,F1 前后应可对齐)。

§7 质量评估与局限性

§7.1 已知偏倚表

偏倚类型 描述 严重程度 缓解措施
单中心偏倚 全部数据来自 HIAE 一家医院,设备、流程、报告风格单一 外部验证时明确声明单中心来源;与其他公开集联合训练
阴性主导 No Finding 71.0%,模型易学成“多数投票=正常” 类加权/重采样;评估用逐类 AUC
稀有类极端稀疏 Edema 50 张、Enlarged Cardiomediastinum 71 张、Pleural Other 117 张 合并小类组或排除并声明;勿对单类下强结论
语言与词表偏倚 标签继承葡语 NegEx 词表与本地报告风格,同义表达覆盖不全 对照逐类 F1 设噪声先验(坑点 3)
社会人口偏倚未评估 发布方明确未评估性别/种族/社会经济偏倚[1] 公平性分析前先自行描述人群(受限于元数据仅性别+年龄箱)
时间信息失真 日期哈希为虚构日期 低(如仅做分类)/高(如需时序) 见坑点 7
设备信息脱敏 厂商仅剩整数索引 保留索引做厂商效应相对分析

表中"严重程度"是相对通用胸片建模目标的定性评级(高=可颠覆结论、中=需显式缓解、低=记录即可),不同任务应自行重估:例如做设备鲁棒性研究时,"设备信息脱敏"升为高严重度;做正常/异常二分类时,"稀有类稀疏"可降级。偏倚表宜与 §7.2 的逐类 F1 表联动阅读——标签噪声最重的三类(Pneumonia/Lung Lesion/Edema)恰好也是分布最偏的观测。若你的应用场景放大了表中任何一行(如面向基层门诊部署放大单中心偏倚),请在自己的模型卡中把该行升级并给出缓解证据。

偏倚缓解的优先级排序(按投入产出比):患者级分组防泄漏 > 逐类指标代替宏平均 > 稀有类合并或声明 > 标签噪声先验校准 > 体位/厂商分层监控——前两项零成本且收益最大,任何 BRAX 实验都不应缺席。

§7.2 标注质量评估

标签质量有官方量化锚点:1,000 份随机报告、两名委员会认证放射科医师一致意见为金标准,14 类 F1 区间 0.762-1.000[1]。高可靠层(F1≥0.93):Pneumothorax、Support Devices、Cardiomegaly、Lung Opacity、Atelectasis;中可靠层(0.82-0.93):Pleural Effusion、Pleural Other、Enlarged Cardiomediastinum、Fracture、Consolidation、No Finding;脆弱层(<0.82):Edema 0.800、Lung Lesion 0.795、Pneumonia 0.762[1]。图像层面的视觉金标准(框级、分割级)不存在;烧录信息排查为双人审查,非逐图标注。

官方逐类验证 F1 全表(按 F1 降序,数值引自描述论文 Validation 段[1]):

排名 标签 F1 可靠层级 噪声工程含义
1 Pneumothorax 1.000 高可靠 危急值必写句式规整,NLP 抽取零验证错误
2 Support Devices 0.987 高可靠 器械名词封闭集合,抽取近乎无损
3 Cardiomegaly 0.947 高可靠 表述模式固定,可当准金标准训练
4 Lung Opacity 0.933 高可靠 泛化描述词覆盖全
5 Atelectasis 0.931 高可靠 否定/肯定句式规整
6 Pleural Effusion 0.925 中可靠 极少量不确定语境混入
7 Pleural Other 0.901 中可靠 聚合类但样本少
8 Enlarged Cardiomediastinum 0.857 中可靠 描述主观性强
9 Fracture 0.850 中可靠 部位描述多样
10 Consolidation 0.824 中可靠 与肺炎表述部分重叠
11 No Finding 0.821 中可靠 复合规则引入的误差
12 Edema 0.800 脆弱 且仅 50 张阳性——双重风险
13 Lung Lesion 0.795 脆弱 占位/结节表述异质
14 Pneumonia 0.762 脆弱 诊断性标签,与临床情境强耦合

使用方式:把这张表当作标签噪声先验——训练时对低 F1 类降低损失权重或做标签平滑;评估时对低 F1 类的模型失效先怀疑标签噪声再怀疑模型;写论文时引用该表证明"你知晓标签的噪声结构"。极端对照(Pneumothorax 1.000 vs Pneumonia 0.762)说明噪声水平与"报告书写规整度"高度相关,而非与疾病本身难度相关。

§7.3 泛化性评估表

部署场景 失效风险 证据与机制
BRAX→基层门诊胸片 BRAX 为大型私立医院数据,基层影像质量与病谱更宽(结核等)
BRAX→多国多中心 单中心 + 圣保罗都市人群;地理多样性恰是 BRAX 自己强调的缺口[1]
CheXpert/MIMIC-CXR 模型→BRAX 中-高 No Finding 先验 8.86% vs 71%、Edema 26.06% vs 0.12% 的先验悬殊[2]
BRAX→急诊危急值场景(气胸) Pneumothorax 标签 F1=1.000 但仅 214 张,模型召回的置信区间宽
报告生成场景 不可行 报告文本未发布[1]
时序/季节性场景 不可行 虚构日期(坑点 7)

上表的用法是"部署前置检查":每当一个在 BRAX(或以 BRAX 为测试集训练)上验证过的模型要走向真实环境,先在上表找到最接近的目标行,逐条核对失效风险与机制描述。三条通用规则:目标人群的 No Finding 先验若显著低于 71%,先重估阈值再上线;目标场景若涉及 Edema/Enlarged Cardiomediastinum/Pleural Other,BRAX 的样本量根本不足以验证该类性能,需补充其他数据源;任何"BRAX 验证通过 → 临床可用"的推理链条都缺失了"多中心前瞻验证"一环,行文与宣传材料中不得省略。

§7.4 伦理与合规

研究获 HIAE 机构审查委员会批准(#35503420.8.0000.0071),豁免个体患者知情同意;数据库完全匿名化,移除全部可识别信息[1]。获取需 PhysioNet 注册、凭证认证与 DUA 签署,协议明令禁止分享与再识别尝试;匿名化代码与厂商映射不公开,以降低再识别风险[1]。使用者若公开发布衍生模型,应确认其不能被用于重建身份信息,且不应将模型输出表述为临床诊断。

合规自查清单(下载与使用前逐项过一遍):账号资质是否仍在有效期内;课题组内部数据存放是否访问受控(DUA 的"不分享"含组外合作者);论文插图中的示例胸片是否被允许(多数凭证制数据集允许发表用插图,但需逐字核对 DUA 条款);模型权重公开是否需要附加声明;项目结束后的数据销毁是否有记录。BRAX 的再识别风险总体低(随机 ID + 头字段清洗),但圣保罗大型私立医院人群的可推断性(高收入指征)仍值得在伦理声明中提一句。

§7.5 公平性

可用于公平性审计的元数据仅有 PatientSex(M/F/O)与 5 岁分箱年龄;无种族、族裔、语言、保险与收入变量。发布方明确声明未评估性别、种族或社会经济偏倚[1]。因此:可以在性别/年龄箱维度做标签分布与模型性能分层分析,但任何跨人群结论都受限于单中心与元数据稀疏;O 性别与高龄组(85+ 截断)样本量可能不足以支撑稳定估计,分析时应报告各分组的样本量与置信区间。

可执行的分层审计模板(先描述人群,再谈性能差异):

# 第一步:人群描述(任何公平性分析的第一张表)
demo = df[["PatientID", "PatientSex", "PatientAge"]].drop_duplicates("PatientID")
print(demo["PatientSex"].value_counts(dropna=False))
print(demo["PatientAge"].value_counts(dropna=False).sort_index())
# 每个分组的患者数 < 100 时,该组的性能估计方差过大,只描述不下结论

# 第二步:分层 AUC(在 §6.9 evaluate 基础上按子组切片)
def subgroup_auc(y_true, y_prob, mask, j):
    if mask.sum() == 0 or y_true[mask, j].sum() == 0:
        return np.nan                          # 子组内无阳性:不可评
    return roc_auc_score(y_true[mask, j], y_prob[mask, j])

sex = df["PatientSex"].values
for g in ["M", "F", "O"]:
    m = (sex == g)
    print(g, int(m.sum()), {c: round(subgroup_auc(y_true, y_prob, m, j), 3)
                            for j, c in enumerate(LABELS) if c != "No Finding"})

解读纪律:分层 AUC 的组间差小于 0.02 时不构成证据(bootstrap CI 会覆盖它);组间差大于 0.05 时先排查该组的类先验差异(同一疾病在不同性别/年龄组的真实患病率本就不同——患病率差异不等于模型歧视)。BRAX 的公平性分析上限就是"性别与年龄两个维度的描述性审计",论文若宣称更广的公平性结论即为过度声明。

§7.6 数据漂移监控建议

维度上优先监控四项:ViewPosition 构成(AP/PA 比例反映临床流变化)、Manufacturer 索引分布(设备更替)、阳性类率(尤其 No Finding 比例)、图像 Rows/Columns 分布(新设备分辨率变化)。时间维度上只能用保留的相对间隔做伪时序漂移检测(坑点 7),绝对季节性监控不可行。

# 漂移监控的最小实现:对新到批次与基准分布做逐维卡方/比例检验
from scipy.stats import chisquare

def drift_report(df_new, df_ref, col: str) -> dict:
    """类别列的分布漂移:返回新批占比与基准占比的最大绝对差。"""
    ref = df_ref[col].value_counts(normalize=True)
    new = df_new[col].value_counts(normalize=True)
    cats = ref.index.union(new.index)
    diff = (new.reindex(cats, fill_value=0) - ref.reindex(cats, fill_value=0)).abs()
    return {"max_shift": float(diff.max()), "worst_category": diff.idxmax()}

for col in ["ViewPosition", "Manufacturer"]:
    print(col, drift_report(df_new, df_ref, col))
# No Finding 等标签列的阳性率漂移同理(把 value_counts 换成均值即可)
# 单中心数据上线多院区时,上述三类的漂移幅度通常先于 AUC 衰减出现,是廉价的先行指标

§7.7 DAIMS 24 项数据质量评估

# 检查项 状态 说明
1 宽格式 master_spreadsheet.csv 一行一个检查,14 类标签平铺为列
2 唯一标识 PatientID/AccessionNumber/SOPInstanceUID 三级唯一,随机生成
3 特殊字符 ⚠️ 标签列名为英文含空格(Pleural Effusion);v1.0.0 主表曾有 CSV 格式缺陷,v1.1.0 修复
4 重复行 ⚠️ 一行=一个检查无重复,但一名患者多行共存,重复性风险在患者层而非行层
5 缺失编码 四值体系明确:1/0/−1/空各有官方定义
6 标签标识 标签=检查级 NLP 提取,编码规则与 No Finding 特殊规则官方成文
7 罕见类分组 ⚠️ Edema 50、Enlarged Cardiomediastinum 71、Pleural Other 117 张,无官方合并建议
8 偏倚评估 ⚠️ 发布方声明未评估性别/种族/社会经济偏倚,仅提供分布事实
9 数据字典 PhysioNet 页面逐列定义完整(含枚举与语义)
10 信息性缺失解释 空=未提及(unmention)与 0=否定区分明确
11 设备记录 Manufacturer 以整数编码保留厂商维度(脱敏)
12 共线性 ⚠️ No Finding 与其余 13 类互斥构造、同检查多图共标签,存在结构性相关
13 编码映射 ⚠️ 14 类与 CheXpert/MIMIC-CXR 对齐,但葡语术语表全文未随数据发布
14 时间戳处理 ⚠️ 日期哈希为虚构日期、保留相对间隔;ID 顺序无时间含义
15 划分建议 无官方 train/val/test 划分
16 泄漏讨论 ⚠️ 论文提及隐藏测试子集但未发布;患者级泄漏完全由使用者自行规避
17 标签分布 论文 Table 1 给出 14 类阳性图像数与占比
18 测量偏倚 ⚠️ 单中心单一报告风格;体位 8 种但元数据不含量化采集参数
19 外部验证建议 社区已形成 CheXpert→BRAX 迁移 + 5 折患者分组 CV 的标准协议[3]
20 版本记录 PhysioNet 版本化(v1.0.0/v1.1.0)+ 独立 DOI
21 预处理脚本 ⚠️ 标注器开源(BRAX-labeler),但图像预处理脚本未提供
22 合规要求 credentialing + DUA 双闸门,条款清晰(不共享、不再识别)
23 多模态对齐 影像-标签对齐成立(检查级),但报告文本缺失,影像-文本对齐不可用
24 去标识化 MIRC CTP 规则 + 全自由文本字段删除 + 双人烧录审查 + 日期哈希

DAIMS 评分:15.5 / 24(11 项 ✅ 计 11 分、9 项 ⚠️ 计 4.5 分、4 项 ❌ 计 0 分)

评分解读:BRAX 在"结构规范、字典完备、去标识严格、合规清晰"四条上达到最高标准,属于发布质量第一梯队的 NLP 标注数据集。失分集中在三处:无官方划分(❌)、报告文本缺失导致多模态断裂(❌)、以及围绕"标签是弱监督产物"的一系列结构性限制(稀疏小类、不确定标签、患者层重复)。它不是拿来即用的大型训练集,而是"干净的单中心验证床 + 标签噪声标本"。

对你意味着什么

  1. 把 BRAX 主要当外部验证集与迁移目标用,而不是首选预训练语料——训练量交给 CheXpert/MIMIC-CXR,BRAX 负责回答"换到南美人群还剩多少性能"。
  2. 立项第一天就写好患者分组划分文件并入库版本管理(坑点 2),否则所有实验结果都不可信。
  3. 对 Pneumonia/Lung Lesion/Edema 三类的任何指标都降权解读(F1 0.762-0.800 的噪声地板摆在那里[1]);论文结论避免基于这三类的单类绝对值。
  4. 规划影像-文本多模态任务(报告生成/报告检索)请直接换 MIMIC-CXR 或 PadChest,BRAX 无文本。
  5. 时序或季节性研究在此数据上不可设计(虚构日期),换数据集或改用相对间隔方案。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
CheXpert→BRAX 迁移(Silva 等 2025) 斯坦福源域 → 圣保罗目标域 14 类多标签分类 ROC AUC / Precision / Recall / F1,5 折患者分组 CV 微调策略间差异显著,全部优于 ImageNet 预训练仅训 BRAX 的基线 微调策略选择(冻结/逐步解冻/L1-SP/L2-SP)对跨域性能的影响超过骨干网选择[3]
CheXpert 预训练→BRAX 微调(Khan 等 2023) 斯坦福源域 → BRAX 分类(6 类)+ 分割 + 严重度评分 5 折平均 AUROC 0.856-0.879(集成);F1 0.9398(分割) CheXpert 预训练与从头训练差异在 1.5% 以内 轻量多头框架可行;CheXpert 先验迁移在 BRAX 上的增益有限,先验差异是主因[5]

§8 基准性能与生态

§8.1 排行榜与已发表结果

排名 模型 任务 性能 年份 关键技术 完整引用 代码
1 LW-net + 4×EfficientNet-B0 集成(多头框架) 分割 / 分类 / 严重度评分 分割 F1 0.9246(微调后 0.9398);分类平均 AUROC 0.88;严重度匹配分 80.8% 2023 改进渐进学习 + 自注意力分割 Khan, A., Akram, M. U., Nazir, S., Hassan, T., Khawaja, S. G., & Fatima, T. Multi-head deep learning framework for pulmonary disease detection and severity scoring with modified progressive learning. Biomedical Signal Processing and Control, 2023. PMID 36987448 未公开
2 DenseNet-121 / ResNet-101 / Swin-T(CheXpert→BRAX 微调) 14 类多标签分类 ROC AUC / P / R / F1(5 折患者分组 CV,逐策略报告) 2025 冻结、逐步解冻、L1-SP/L2-SP 正则、U-Ones Silva, E. D., Pereira, T. B., Brandao, C. E., Boldt, F. de A., & Paixao, T. M. Assessing the Effectiveness of Transfer Learning in Chest X-Ray Analysis With the BRAX Dataset. IEEE Access, 13, 164805-164817, 2025. DOI 10.1109/ACCESS.2025.3610282 未公开

⚠️ 数值不可直接比较的原因:两项研究的任务定义不同(6 类 vs 14 类/分割)、划分不同(自建折 vs 5 折患者分组)、标签二值化策略不同(U-Ones 为主)、且 BRAX 无官方测试集——任何跨论文 AUC/F1 对比都必须先对齐任务与划分。截至 2026-09,BRAX 尚无统一排行榜。

§8.2 SOTA 总结与选型建议

BRAX 上已发表的最强分类结果来自 CheXpert 源域迁移 + 精细微调策略(IEEE Access 2025),最强多任务结果来自轻量集成多头框架(BSPC 2023)。选型建议:做域偏移/外部验证研究,以 DenseNet-121 + U-Ones + 5 折患者分组 CV 为默认起点(可比性最好);做标签噪声研究,直接把官方逐类 F1 作为噪声锚点设计实验;做资源受限部署,参考 EfficientNet-B0 级别的轻量集成路线[3][5]。

§8.3 评测协议建议

复现社区标准:图像 resize 256×256 → 中心裁剪 224×224;ImageNet 均值方差归一化;U-Ones 处理 −1;Adam(lr 1e-4,weight decay 1e-5)+ ReduceLROnPlateau;batch 16-32,20 epoch;按 PatientID 分组 5 折 CV,每折内 10% 做验证;报告逐类 AUC 与宏平均[3]。附加要求:声明 v1.1.0、公开划分种子、对 Edema/Enlarged Cardiomediastinum/Pleural Other 三类给出样本量并谨慎解读。

投稿/技术报告的最小披露清单(对照自检,缺一项即协议不完整):

□ 数据版本:physionet-brax 1.1.0(DOI 10.13026/grwk-yh18)
□ 标签策略:U-Ones / U-Zeros / 其他(−1 与 NaN 的处理各一行说明)
□ 划分协议:分组键(PatientID)+ 折数 + 种子 + 划分文件哈希
□ 体位范围:全 8 体位 / 正位 only(AP+PA)
□ 评估粒度:图像级 / 检查级(多图聚合规则)
□ 逐类指标:14 类 AUC + 稀有类 bootstrap 95% CI + 每类测试侧样本量
□ 泄漏自检:声明已运行患者交集检查(代码见 §6.9)
□ 局限声明:单中心、弱标签(引用官方逐类 F1 作噪声先验)、无报告文本

与社区协议的三处常见偏离及其后果:换用官方不存在的固定 test split(不可比);把 NaN 全当阴性而不声明(等效隐藏了 U-MultiClass 维度,Edema 等类指标虚高);在图像级随机划分上报告 AUC(泄漏虚高,见坑点 2,审稿人有权直接拒稿)。

数据集 与 BRAX 的关系 互补点 获取
CheXpert 标签体系同源(14 类) 大规模英语训练域;官方 val/test 斯坦福申请制
MIMIC-CXR 同为 PhysioNet 胸片旗舰 377,110 张 + 报告文本 + 真实时间 PhysioNet 凭证认证
PadChest 同为非英语报告数据集 西语报告公开 + 174 类细粒度标签 Bib Prov 申请制
VinDr-CXR 同为东南亚单中心胸片数据集 放射科医师逐图人工标注 + 病灶框级定位 官方公开下载

注:各数据集数字引自其官方发布页与描述论文。BRAX 独有的“检查级标签 + 无报告文本”组合决定了它在生态中的定位(详见 §3 与 §4)。

§8.5 关键论文 Top6

  1. Reis, E. P., et al. BRAX, Brazilian labeled chest x-ray dataset. Scientific Data, 9, 487, 2022. DOI 10.1038/s41597-022-01608-8 — 数据集描述论文:全部规模、方法、逐类 F1 的原始出处。
  2. Irvin, J., et al. CheXpert: A Large Chest Radiograph Dataset with Uncertainty Labels and Expert Comparison. AAAI, 2019. — 14 类标签体系与不确定标签(−1)机制的设计源头,BRAX 标注器的母体。
  3. Johnson, A. E. W., et al. MIMIC-CXR, a de-identified publicly available database of chest radiographs with free-text reports. Scientific Data, 6, 317, 2019. DOI 10.1038/s41597-019-0322-0 — 同体系英语旗舰数据集,BRAX 的天然迁移源域与对照。
  4. Silva, E. D., et al. Assessing the Effectiveness of Transfer Learning in Chest X-Ray Analysis With the BRAX Dataset. IEEE Access, 13, 164805-164817, 2025. DOI 10.1109/ACCESS.2025.3610282 — 首个以 BRAX 为主基准的系统研究:CheXpert→BRAX 迁移 + 微调策略比较。
  5. Khan, A., et al. Multi-head deep learning framework for pulmonary disease detection and severity scoring with modified progressive learning. Biomedical Signal Processing and Control, 2023. PMID 36987448 — 在 BRAX 上验证的多任务框架(分类+分割+严重度评分),给出 AUROC 0.88 与分割 F1 0.9246-0.9398。
  6. Pollard, T., et al. PhysioNet as a global platform for biomedical research. Nature Health, 2026. DOI 10.1038/s44360-026-00096-z — BRAX 所属托管平台的官方综述,含数据集治理与访问体系。

§8.6 社区活跃度

BRAX 属于"发布质量高、后续使用尚在增长"的数据集:描述论文引用 34+(Scopus/PlumX,截至 2026-09),主要用于迁移学习与外部验证场景[3][5];标注器代码 BRAX-labeler 在 GitHub 公开维护;PhysioNet 项目页持续收录引用该数据的论文列表。与 CheXpert/MIMIC-CXR 的千级引用生态相比,BRAX 仍是蓝海——抢先在 BRAX 上建立可复现基准的论文还很少,这既是机会(易做出第一个系统性结果)也是风险(缺现成 baseline 代码)。

§8.7 生态快照表

资源 类型 链接 热度(截至 2026-09) 推荐理由
BRAX-labeler 标注器代码 github.com/edreisMD/BRAX-labeler 官方维护 葡语 NegEx 词表与抽取规则可直接复用
Scientific Data 描述论文 方法论文 nature.com/articles/s41597-022-01608-8 34+ 引用 一切方法学问题的最终依据
IEEE Access 2025 基准论文 基准论文 DOI 10.1109/ACCESS.2025.3610282 2025 年新发 当前最系统的 BRAX 迁移学习协议
PhysioNet 项目页 数据托管 physionet.org/content/brax/1.1.0 官方 版本、DUA、引用格式
MIMIC-CXR / CheXpert 配套训练域 见 §8.4 千级引用生态 与 BRAX 标签对齐的源域数据

§9 相关资源与引用

资源 类型 链接 推荐理由
BRAX 项目页(v1.1.0) 数据托管 physionet.org/content/brax/1.1.0 权威入口:申请访问、版本记录、字段说明
BRAX 数据描述论文 描述论文 Scientific Data 9:487 (2022) 全部方法学与验证数字的原始出处
BRAX-labeler 开源代码 github.com/edreisMD/BRAX-labeler 葡语 NegEx + CheXpert 标注器改编实现
PhysioNet 胸片资源索引 检索入口 physionet.org/content?topic=x-ray 对比其他 PhysioNet 胸片数据集
PhysioNet 凭证认证入口 合规流程 physionet.org 首页 credentialing 指引 DUA 与认证流程官方说明

补充的学习路径(自学者按序推进):第一步读 PhysioNet 项目页的 Data Description 段,对照 §4.1 字段字典建立主表心智模型;第二步读描述论文的方法与 Validation 段,理解 NLP 标签的噪声来源与逐类 F1 锚点;第三步跑通 §6.1 快速上手与 §6.3/§6.4 预处理-加载代码;第四步按 §5.4 决策表做一次患者级划分并运行泄漏自检;第五步复现 IEEE Access 2025 的 DenseNet-121 基线,再开展自己的研究问题。教学场景中,第一至四步即构成一次 2-3 课时的完整实验课;标签策略敏感性分析(U-Ones vs U-Zeros)适合作为课程作业的进阶题。

§9.2 BibTeX 完整引用块

引用本数据集时,建议同时引用数据 DOI 与描述论文。以下 BibTeX 可直接使用:

@dataset{PhysioNet-brax-1.1.0,
  author    = {Reis, Eduardo Pontes and Paiva, Joselisa and {Bueno da Silva}, Maria Carolina and {Sousa Ribeiro}, Guilherme Alberto and {Fornasiero Paiva}, Victor and Bulgarelli, Lucas and Lee, Henrique and {dos Santos}, Paulo Victor and brito, vanessa and Amaral, Lucas and Beraldo, Gabriel and {Haidar Filho}, Jorge Nebhan and Teles, Gustavo and Szarf, Gilberto and Pollard, Tom and Johnson, Alistair and Celi, Leo Anthony and Amaro, Edson},
  title     = {{BRAX, a Brazilian labeled chest X-ray dataset}},
  publisher = {PhysioNet},
  year      = {2022},
  month     = jun,
  note      = {Version 1.1.0, RRID:SCR_007345},
  doi       = {10.13026/grwk-yh18},
  url       = {https://doi.org/10.13026/grwk-yh18}
}

@article{Reis2022BRAX,
  author  = {Reis, Eduardo P. and Paiva, Joselisa P. Q. de and {Bueno da Silva}, Maria C. and {Sousa Ribeiro}, Guilherme A. and Paiva, Victor F. and Bulgarelli, Lucas and Lee, Henrique M. H. and Santos, Paulo V. and Brito, Vanessa M. and Amaral, Lucas T. W. and Beraldo, Gabriel L. and {Haidar Filho}, Jorge N. and Teles, Gustavo B. S. and Szarf, Gilberto and Pollard, Tom and Johnson, Alistair E. W. and Celi, Leo Anthony and Amaro Jr., Edson},
  title   = {{BRAX, Brazilian labeled chest x-ray dataset}},
  journal = {Scientific Data},
  volume  = {9},
  pages   = {487},
  year    = {2022},
  doi     = {10.1038/s41597-022-01608-8}
}

@article{Silva2025BRAXTransfer,
  author  = {Silva, Elton Douglas and Pereira, Thiago B. and Brandao, Carlos Eduardo and Boldt, Francisco De Assis and Paixao, Thiago M.},
  title   = {{Assessing the Effectiveness of Transfer Learning in Chest X-Ray Analysis With the BRAX Dataset}},
  journal = {IEEE Access},
  volume  = {13},
  pages   = {164805--164817},
  year    = {2025},
  doi     = {10.1109/ACCESS.2025.3610282}
}

§9.3 引用指南

  • 仅使用数据本身(训练/验证):引 PhysioNet-brax-1.1.0(v1.1.0)。
  • 描述数据集方法与验证数字:引 Reis2022BRAX
  • 复现迁移学习基准:补引 Silva2025BRAXTransfer
  • 引用次数口径:34+(Scopus/PlumX,截至 2026-09);撰写论文时请以 Google Scholar/Scopus 实时数字为准。

补充规范:PhysioNet 官方要求的引用格式以项目页 Cite 段为准(数据 DOI 10.13026/grwk-yh18 + 描述论文双引用),本页 BibTeX(§9.2)与其等价,仅排版不同;使用 v1.0.0 复现早期工作时必须改引 v1.0.0 的 DOI 10.13026/ae9a-f727,两版本 DOI 不可互换;若你的工作同时使用了 BRAX-labeler 的词表或抽取规则,请另行引用其 GitHub 仓库(官方 README 提供引用说明);衍生模型发布时,建议在模型卡中同时声明训练数据版本号与划分种子,形成从模型到数据的可追溯链。

§10 AI 使用声明卡

§10.1 本页面使用的 AI 模型列表

模型 用途 版本/说明
千方写作助手(LLM) 资料归纳、初稿起草、格式统一、代码示例撰写 基于 CodeBuddy 平台大语言模型

§10.2 AI 参与范围说明

AI 参与了本页面的以下环节:WebSearch 检索结果的结构化归纳;章节框架与正文初稿撰写;DAIMS 自评的初评;代码示例的编写与格式统一。AI 未参与:原始数据的访问与处理;医学编码(ICD-11/SNOMED CT)的最终裁定由人工对照公开编码库完成;所有关键数字(规模、日期、F1、许可证、DOI)均逐条核对至检索来源后写入。

§10.3 输入来源列表

  1. Reis, E. P., et al. BRAX, Brazilian labeled chest x-ray dataset. Scientific Data, 9, 487, 2022. DOI 10.1038/s41597-022-01608-8
  2. PhysioNet. BRAX, a Brazilian labeled chest X-ray dataset, version 1.0.0. DOI 10.13026/ae9a-f727, 2022. https://physionet.org/content/brax/1.0.0/
  3. PhysioNet. BRAX, a Brazilian labeled chest X-ray dataset, version 1.1.0. DOI 10.13026/grwk-yh18, 2022. https://physionet.org/content/brax/1.1.0/
  4. PhysioNet. BRAX files panel and license (PhysioNet Credentialed Health Data License 1.5.0). https://physionet.org/content/brax/1.1.0/files/
  5. Silva, E. D., Pereira, T. B., Brandao, C. E., Boldt, F. de A., & Paixao, T. M. Assessing the Effectiveness of Transfer Learning in Chest X-Ray Analysis With the BRAX Dataset. IEEE Access, 13, 164805-164817, 2025. DOI 10.1109/ACCESS.2025.3610282
  6. Khan, A., Akram, M. U., Nazir, S., Hassan, T., Khawaja, S. G., & Fatima, T. Multi-head deep learning framework for pulmonary disease detection and severity scoring with modified progressive learning. Biomedical Signal Processing and Control, 2023. PMID 36987448
  7. edreisMD. BRAX-labeler (GitHub). https://github.com/edreisMD/BRAX-labeler
  8. DataCite. DOI metadata for 10.13026/grwk-yh18 (version 1.1.0, publisher PhysioNet, 2022). https://api.datacite.org/dois/10.13026/grwk-yh18
  9. PlumX/Scopus citation metrics for DOI 10.1038/s41597-022-01608-8(34 citations,截至 2026-09). https://plu.mx/plum/a/?doi=10.1038/s41597-022-01608-8
  10. DOAJ. Article record for BRAX dataset paper(含作者机构列表). https://doaj.org/article/c4861ed1a47741038aa3d330b8cd3e0f
  11. DOAJ. Article record for IEEE Access 2025 transfer learning paper. https://doaj.org/article/a9c6b369de174c409e2ae3b6dce8be5a
  12. Find-A-Code. ICD-11 CB20-CB2Z Pleural, diaphragm or mediastinal disorders(v2025-01). https://findacode.com/icd-11/block-390439470.html
  13. Find-A-Code. ICD-11 Pneumonia block CA40. https://findacode.com/icd-11/block-142052508.html
  14. BioPortal. SNOMED CT 36118008 Pneumothorax. https://bioportal.bioontology.org/ontologies/SNOMEDCT?conceptid=36118008
  15. autoicdapi. ICD-11 BC45 Cardiomegaly(含 ICD-10 对应 I51.7). https://autoicdapi.com/icd11/BC45

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
规模数字(40,967/24,959/19,351)与版本日期 千方病案医学编辑部 对照 PhysioNet v1.1.0 页面与 Scientific Data 论文逐项核对 ✅ 已通过/已验证
14 类标签分布与逐类 F1 千方病案医学编辑部 对照论文 Table 1/Table 2 复核 ✅ 已通过/已验证
ICD-11/SNOMED CT 映射 千方病案医学编辑部 对照 ICD-11 MMS v2025-01 浏览器镜像与 BioPortal SNOMEDCT 逐条核对 ✅ 已通过/已验证
许可证与访问流程 千方病案医学编辑部 对照 PhysioNet files 面板许可证字段与论文 Usage Notes ✅ 已通过/已验证
§6 代码示例 数据工程审核 逻辑走查(路径拼接、分组划分、标签编码),未在真实数据上执行 ✅ 已通过/已验证
DAIMS 自评与偏倚结论 千方病案医学编辑部 逐项对照官方文档与论文 Limitations 表述 ✅ 已通过/已验证

§10.5 AI 生成章节标注

以下章节由 AI 起草、经人工审核修订后定稿:§1 全部、§2.2-§2.5、§3.1/§3.4/§3.7-§3.9、§4.2-§4.5、§5.3-§5.5、§6 全部(8 个坑点的表述整理,坑点事实锚点均来自官方文档与论文)、§7.1/§7.3-§7.6、§8.2-§8.3/§8.6、§9.3、§10。§2.1/§2.1b 编码表、§3.2/§3.5/§3.6、§4.1、§7.2/§7.7/§7.8、§8.1/§8.4/§8.5/§8.7 以检索到的原始表格数字为主,AI 仅做转写与排版。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核日期一致)

页面状态:published(全部内容已完成审核并发布)

返回 AI-Ready 数据集