信息速览

BIMCV-COVID19 — 西班牙开放新冠胸片与 CT 影像库 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | BIMCV-COVID19 |
| 英文全称 | BIMCV COVID-19+ / BIMCV COVID-19-(Medical Imaging Databank of the Valencian Region COVID-19 datasets) |
| 别名/简称 | BIMCV-COVID19+、BIMCV-COVID19-、BIMCV COVID19 iterations |
| 疾病分类(ICD-11) | RA01.0(COVID-19,病毒已鉴定);CA40.1(病毒性肺炎) |
| SNOMED CT | 840539006(COVID-19);233604007(肺炎) |
| 数据模态 | 胸部 X 光(CR/DX)+ 胸部 CT |
| AI 任务类型 | 二分类/多分类 COVID-19 检测、多标签胸部征象识别、病灶分割、报告标签挖掘 |
| 样本总数 | 迭代 1+2+3:21,342 CR + 34,829 DX + 7,918 CT 次研究 |
| 数据大小 | 571 个 tgz 分卷 + 元数据包(官方未公布总字节数) |
| 数据格式 | DICOM 原始/导出 PNG(2D)与 NIfTI(3D)、TSV、JSON |
| 许可证 | BIMCV-COVID19 Dataset Research Use Agreement(免费研究用途) |
| 访问级别 | 开放(接受 EULA 后免费下载,禁再分发) |
| DUO 标签 | GRU(通用研究使用);禁再识别 |
| 语言 | 影像标签英文化(UMLS CUI);放射报告为西班牙语 |
| 首发日期 | 2020-06(arXiv:2006.01174 同步发布迭代 1) |
| 最后更新 | 2021-03(COVID-19- 阴性分区上线 IEEE DataPort) |
| 发布机构 | BIMCV(瓦伦西亚地区医学影像银行,FISABIO-CIPF) |
| 官方主页 | https://bimcv.cipf.es/bimcv-projects/bimcv-covid19/ |
| 下载地址 | https://github.com/BIMCV-CSUSP/BIMCV-COVID-19(含 b2drop 分卷链接) |
| DOI | 10.17605/OSF.IO/NH7G8;IEEE DataPort:10.21227/w3aw-rv39(+)/10.21227/m4j2-ap59(-) |
| 引用次数 | 231+(Semantic Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— MIDS 结构化 + PNG/NIfTI 免 DICOM 转换、标签映射 UMLS;扣分:无官方划分、标签由文本模型自动生成需清洗 |
| 页面状态 | published |
§0 E-E-A-T 审核与声明
- 医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(COVID-19 影像学表现、ICD-11/SNOMED 映射)、§7 偏倚分析。
- 数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
- 审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。BIMCV-COVID19 要求用户在下载前接受 BIMCV-COVID19 Dataset Research Use Agreement(仅限研究用途、禁再分发、禁再识别)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? BIMCV-COVID19 是西班牙瓦伦西亚地区医学影像银行(Medical Imaging Databank of the Valencian Region,简称 BIMCV)在 2020 年新冠疫情期间整理的开放胸部影像数据集。它收录了数千名确诊或排除新冠患者的胸部 X 光片(CR/DX 两种数字化摄影)和 CT 检查,是欧洲最早、规模最大的开放新冠影像资源之一。截至 2020-10 的迭代 1+2+3 版本,共包含 21,342 张 CR、34,829 张 DX 与 7,918 组 CT 研究。
为什么重要? 2020 年初,公开可用的新冠影像数据极少且质量参差,BIMCV 团队率先将原始 DICOM 级别的影像、西班牙语放射报告、PCR 与 IgG/IgM 血清学检测结果以及映射到 UMLS 标准术语的病灶标签打包开放。相比同期主流数据集每图十几个标签,它覆盖了宽谱胸部征象,并附患者人口学与纵向随访信息,成为研究标签噪声与跨机构泛化问题的标志性测试床。
我能用它做什么? 训练新冠检测与多标签胸部征象识别模型、磨玻璃影等病灶分割(官方提供 23 张像素级 ROI 标注,社区另有 bbox 补充标注)、放射报告信息抽取、以及跨数据集泛化与捷径学习研究。注意它没有官方 train/test 划分,标签由文本模型自动生成,使用前需按 §6.5 清洗。
§1.1 技术摘要
BIMCV-COVID19 由 FISABIO-CIPF 与瓦伦西亚大学等机构联合构建(de la Iglesia Vayá 等,arXiv:2006.01174,2020-06 首发)。数据经 BIMCV 影像银行按 PCR/血清学结果参数化检索汇集:COVID-19 阳性患者的 CR/DX/CT 研究构成 COVID-19+ 分区,2021-03 又发布了含阴性及其他病变患者的 COVID-19- 分区。影像从原始 DICOM 导出为高分辨率 PNG(2D)与 NIfTI(3D),按 BIDS 扩展标准 MIDS(Medical Imaging Data Structure)组织为 subject→session→series 层级,配套 TSV 表型表与 JSON 元数据。标签管线沿用 PadChest 的 BiLSTM+attention 西班牙语报告多标签分类器(23,439 条人工标注句训练),新增 COVID-19 与 COVID-19 uncertain 标签,独立测试精确率 0.961。数据分 571 个 tgz 分卷经 B2DROP/WebCAV 分发,附 SHA1 校验。
§1.2 战略价值
维度一:放射组学数据的“原生保真度”。 与多数开源新冠数据集只提供有损压缩 JPG 不同,BIMCV 保留了原始 DICOM 层级信息:像素矩阵、photometric interpretation、设备厂商、采集参数一应俱全,并以 PNG/NIfTI 高分辨率导出。这意味着研究者可以复现真实临床影像的灰阶动态范围与空间分辨率,做影像质量对标签可靠性的敏感性分析,而不是在低质量二手截图上“盲跑”。对于碳基到硅基的影像组学(radiomics)工作流,这种保真度是稀缺资源。
维度二:多模态纵向对齐的标本库。 每位 subject 不止一次检查(迭代 1 平均 1.9 次研究/人,论文展示同一患者 3 月 14 日至 30 日间 15 次随访的纵向序列),且影像与 PCR/IgG/IgM 检测在时间上大多相隔不足 5 天,构成“影像-病原学-时间”三元对齐。这为疾病进展建模、影像-检验融合与感染窗口期分析提供了少见的开放素材,也是它区别于单时点快照数据集的核心价值。
维度三:社区方法学的“试金石”。 DeGrave 等 2021 年发表于 Nature Machine Intelligence 的捷径学习研究直接以 BIMCV+/- 组合为实验载体,揭示了跨数据集组合训练的模型在内部测试集准确率虚高、外部测试减半的现象。此后 BIMCV 成为评估“模型到底学会了病理还是学会了数据源指纹”的常用对照集,方法学价值超过其分类基准价值。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态/格式 | 标注 | 与 BIMCV-COVID19 的差异化 |
|---|---|---|---|---|
| BIMCV-COVID19 | 64,089 次研究(CR+DX+CT),约 7,944 例患者 | DICOM→PNG/NIfTI,MIDS 结构 | UMLS CUI 自动标签 + 23 张 ROI 分割 + 第三方 bbox | 原始保真、多模态对齐、纵向随访 |
| PadChest(同团队) | 160,868 张胸片、约 67,000 例患者 | DICOM,PN | 174 类放射发现,报告半自动标注 | 更大更泛,但无 COVID 专项与 PCR 配对 |
| ChestX-ray14(NIH) | 112,120 张正面胸片、30,805 例患者 | PNG | NLP 挖掘 14 类标签 | 无 CT、无病原学检测、单一机构 |
| CheXpert(Stanford) | 224,316 张胸片、65,240 例患者 | JPG | 14 类不确定性标签 | 无 CT、标签体系窄、非新冠专项 |
| COVIDx/ChestX-ray14 衍生 | 约 13,975 张胸片 | PNG | 三分类(negative/non-COVID/COVID) | 混合多来源截图级图像,元数据稀薄 |
| RSNA 挑战赛数据 | 约 30,000 张 | JPG/DICOM 混合 | 二分类 + bbox | 无纵向随访与检测配对 |
| RICORD(RSNA/ACR) | 1,200 例 COVID+ CT | DICOM | 病变分割 | 仅 CT、仅阳性,规模小但标注精 |
§1.4 版本时间轴
| 时间 | 版本/事件 | 内容变化 |
|---|---|---|
| 2020-06-01 | arXiv:2006.01174 v1(v3 于 2020-06-05) | 描述迭代 1:1,380 CX + 885 DX + 163 CT,1,311 例 COVID-19+ 患者 |
| 2020-10-09 | GitHub 迭代 1+2 就绪 | 81 个 tgz 分卷,元数据改为 covid19_posi_derivative/head/sessions 三包 |
| 2020-10-20 | 官方 NOTICE | 因下载量大,推荐 WebCAV 协议下载 |
| 2020-10 之后 | 迭代 1+2+3 定稿 | 21,342 CR + 34,829 DX + 7,918 CT,571 个 tgz;ROI 分割扩至 23 张 |
| 2021-03-12/18 | BIMCV COVID-19- 阴性分区 | 经 IEEE DataPort 发布(DOI 10.21227/m4j2-ap59) |
| 2021-05-31 | DeGrave 等 NMI 论文 | 以 BIMCV+/- 为载体的捷径学习分析,方法学影响力确立 |
版本使用要点:各迭代为增量扩容而非重制,同一 subject 可能出现在多个分卷公告期之间;引用规模时以 GitHub README 当前口径(迭代 1+2+3)为准,复现论文统计则锁定迭代 1;阴性分区与阳性分区分发渠道不同(IEEE DataPort vs B2DROP),混合使用前先统一各自的标签表结构。
§1.5 典型应用场景
- 新冠胸片筛查模型开发与压力测试:用 COVID+/- 两分区训练二分类器,再按 §7.3 在外部机构数据上验证泛化差距。
- 多标签胸部征象识别:利用宽谱 UMLS 标签(肺炎、胸腔积液、间质浸润等)训练多标签分类,与 PadChest 标签体系对齐迁移。
- 病灶分割预训练:23 张官方 ROI(磨玻璃、实变、铺路石、反晕征)+ 社区 CARING bbox 作弱监督种子,再在小规模精标数据上微调。
- 报告信息抽取与多模态学习:西班牙语报告 + 自动标签配对可评测跨语言临床 NLP 与 image-text 对齐。
- 捷径学习与数据源混淆教学案例:复现 DeGrave 等 2021 实验,观察模型对外部数据集的“准确率悬崖”。
- 纵向疾病轨迹挖掘:以平均 1.9 次/人的多次检查为起点,构建患者内时间序列,研究病灶消长与检测转归的关系。
- 影像质量与标签可靠性研究:借助保留完整的 DICOM 元数据(厂商、投影、灰阶解释),量化采集条件对模型与标签噪声的联合影响——这是二手截图型数据集无法支持的研究。
每个场景的最低数据需求不同:场景 1、2、7 需要全量影像分卷;场景 3 只需 ROI 标注 + 对应影像;场景 4 仅需元数据包;场景 5 需要正负两分区完整样本以构造混淆矩阵。规划前先按 §3.0 版本抉择矩阵圈定下载范围。
§2 医学背景
§2.1 ICD-11 与 SNOMED CT 编码映射
| 标签体系条目 | ICD-11 编码 | SNOMED CT 码 | 术语说明 |
|---|---|---|---|
| COVID-19 | RA01.0 | 840539006 | COVID-19, virus identified;UMLS CUI C5203670 |
| 病毒性肺炎 | CA40.1 | 233604007(肺炎上位概念) | Viral pneumonia;数据集中常以 pneumonia + COVID-19 组合标签表达 |
| 细菌性肺炎 | CA40.0 | 233604007 | Bacterial pneumonia,阴性分区常见鉴别诊断标签 |
| 胸腔积液 | — | 26929004 | Pleural effusion,阳性/阴性分区均出现 |
| 间质浸润/间质型 | — | 233604007 下位病变 | Interstitial pattern,以 UMLS CUI 形式存储 |
数据集原始标签不直接使用 ICD-11/SNOMED 编码,而是以 UMLS CUI(Unified Medical Language System 概念唯一标识符)存储,附带 CUI 层级树文件(tree_term_CUI_counts_image_covid_posi.csv)。使用上表做标准术语对接时,建议以 UMLS CUI 为桥接键。
§2.2 疾病与影像学简介
COVID-19 由 SARS-CoV-2 引起,2020 年 3 月 11 日 WHO 宣布为大流行。胸部影像学上,典型表现为双下肺外周分布的磨玻璃影(ground-glass opacity, GGO)、伴或不伴实变、铺路石征(crazy paving)、血管增粗,进展期可融合为大片实变(“白肺”);部分患者影像异常早于症状或 PCR 转阳,亦有 PCR 阳性而影像阴性者。美国放射学会(ACR)2020-03 指南明确不推荐 CT 作为一线筛查手段,BIMCV 团队据此将重心放在常规 X 线(CR/DX)的分诊与辅助诊断价值上——这也是数据集中 X 光远多于 CT 的原因。鉴别诊断涵盖细菌性肺炎、其他病毒性肺炎、间质性肺病与心源性肺水肿,因此阴性分区并非“健康人”而是“影像表现各异的其他患者”,这一点对建模至关重要。
数据集 ROI 标注覆盖的核心征象(arXiv:2006.01174 Table 4 摘编):
| 征象(中/英) | 影像学定义 | 常见模态 | 临床意义 |
|---|---|---|---|
| 磨玻璃影 Ground glass | 肺密度轻度增高但血管纹理可辨 | CXR + CT | 新冠最常见早期征象 |
| 实变 Consolidation | 密度增高至掩盖血管,含支气管充气征 | CXR + CT | 进展期/重症信号 |
| 铺路石征 Crazy paving | GGO 上叠加小叶间隔增厚 | CT | 特异性较高的新冠表现之一 |
| 反晕征 Inverted halo | 环形实变包绕中心 GGO | CT | 新冠与机化性肺炎共有 |
| 血管增粗 Vascular thickening | GGO 区域内血管直径增加 | CT | 提示血管周围炎症 |
| 树芽征 Sprouting tree | 细支气管周围结节状影 | CT | 多提示感染性细支气管炎 |
| 胸腔积液 Pleural effusion | 胸膜腔液体密度影 | CXR + CT | 新冠中少见,出现需排查合并症 |
| 结节样实变 Nodular consolidation | 局限结节状高密度影 | CT | 鉴别转移/感染灶 |
流行病学方面,数据集首迭代患者平均年龄 63.11 岁(±16.75),女性占 45.92%,与西班牙同期新冠确诊人群年龄结构高度吻合(论文 Technical Validation);所有患者来自 2020-2021 年瓦伦西亚自治区疫情各波次的住院与急诊影像检查。西班牙 2020 年 3-4 月第一波疫情期间,马德里与东部沿海自治区医疗影像量激增,BIMCV 团队正是在此背景下以“影像+病原学”参数化检索方式从各医院 PACS 系统中筛出配对样本——这也解释了首迭代影像高度集中在 2020 年 3 月的原因。
§2.3 临床任务定义
- 筛查/分诊(screening & triage):以胸片 + 临床指征快速分诊疑似患者,对应任务为二分类(COVID-19 阳性/阴性)或三分类(阳性/不确定/阴性),标签来源为 PCR/血清学(病原学金标准)与报告文本。
- 诊断辅助(diagnosis support):多标签识别 GGO、实变、胸腔积液、间质型等征象并给出解剖定位(数据集标签自带 location 维度),对应 UMLS 实体级预测。
- 严重度/进展评估(severity & progression):利用纵向多次检查(平均 1.9 次/人)建模病灶范围随时间的变化,可做回归或序贯预测。
- 病灶分割(lesion segmentation):以 23 张像素级 ROI 与 14 类 findings 定义为训练种子,输出 GGO/实变掩膜。
- 报告理解与生成(report understanding):西班牙语报告与自动 CUI 标签的配对构成天然的“文本→结构化标签”监督对,可训练跨语言临床信息抽取器,或反向评测 label-to-text 生成质量。
- 影像-检验一致性研究:以 PCR/IgG/IgM 结果为锚,量化影像征象出现与检测转阳/转阴的时间关系(多数间隔 <5 天),支持感染窗口期建模。
§2.4 患者人群画像
| 维度 | 内容 |
|---|---|
| 来源机构 | 西班牙瓦伦西亚自治区多家医院(经 BIMCV 影像银行统一汇集),设备含 GE Healthcare 等多厂商 |
| 采集时间 | 2020 年疫情暴发起(首迭代影像集中在 2020-03 前后),阴性分区延续至 2021 年 |
| 年龄 | 首迭代平均 63.11 岁(±16.75),全谱系成人为主 |
| 性别 | 首迭代女性 602/1,311(45.92%) |
| 种族 | 数据集未提供(仅年龄、性别等 DICOM 人口学字段) |
| 就医类型 | 疑似/确诊新冠的急诊与住院患者;阴性分区含其他肺炎及非肺炎胸部病变患者 |
§2.5 临床价值定位
BIMCV-COVID19 的临床价值集中在三个层面:其一,疫情期间它是少数能以病原学检测(PCR/IgG/IgM)锚定影像标签的开放数据,使“影像-病原学”一致性研究免于循环论证;其二,宽谱 UMLS 征象标签支持放射科教学——论文明确将其用途之一设定为训练住院医师认识新冠影像谱系;其三,作为 PubMed 收录方法学论文的标配外部验证集,它为模型跨机构泛化提供了一面“西班牙医院”镜子。必须强调:其标签为报告自动生成,任何诊断性能宣称(GitHub 官方明文警告)必须以独立临床研究为准。
从临床工作流反推它的边界同样重要:它不含门诊轻症大样本(住院与检查配对偏倚)、不含长程后遗症随访(Long COVID 影像谱系覆盖不足)、CT 相对 X 光占比小(约 1/8 研究数)。因此它的最佳定位是“筛查/分诊级模型的训练与验证场”,而非“诊断级模型的充分证据源”;后者需要前瞻性、多中心、含结局变量的研究设计,数据集自身属性无法替代。
§2.6 金标准对照表
| 任务划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|
| COVID-19 感染状态 | RT-PCR、IgG、IgM 检测结果(sil_reg_covid.csv) | 临床检验科 | 病原学金标准(非影像金标准) |
| 影像征象标签 | 西班牙语报告 BiLSTM+attention 自动抽取,映射 UMLS CUI | 文本模型 + 23,439 条人工标注句训练语料 | 弱监督/银标准 |
| COVID-19 标签质量抽检 | 独立 64 句人工判读(precision 0.961) | 论文作者团队 | 抽样验证 |
| 像素级 ROI | XNAT OHIF Viewer 手工勾画,14 类 findings | 8 位圣胡安大学医院放射科医生 | 人工金标准(仅 10→23 张) |
| 研究级 Normal/Abnormal + bbox | 第三方 CARING 团队补充标注 | Mittal 等(OSF b35xu) | 外部二次标注 |
对照表的使用逻辑:做感染状态相关任务以第一行为准(病原学锚定);做征象识别以第二行为主并声明银标准属性;分割任务只能依赖第三、四行的极少量人工标注,任何把弱标签放大为像素级真值的做法都应在论文 limitations 中声明。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 体量 | 理由 |
|---|---|---|---|
| 快速跑通 pipeline、复现论文统计 | COVID-19+ 迭代 1(1,311 例患者) | 约 81 个 tgz 中的一小部分 | 论文全部统计(年龄、性别、series 数)基于此版本,对齐成本最低 |
| 训练有统计效力的分类模型 | COVID-19+ 迭代 1+2+3(21,342 CR + 34,829 DX + 7,918 CT) | 571 个 tgz | 规模最大,纵向随访与多设备覆盖最全 |
| 二分类/泛化研究(需阴性对照) | COVID-19+ 1+2+3 + COVID-19- 阴性分区 | 两套下载包 | 阴性分区经 IEEE DataPort 单独分发,含 3,238 例患者/6,540 张图像(综述口径) |
| 分割任务 | 任一版本 + ROI 标注文件(23 张)+ CARING bbox | 标注包很小 | 像素级金标稀缺,只能作种子而非主训练集 |
| 只做报告 NLP | 元数据包(metadata/head/sessions_tsv)即可 | 数 MB 级 | 报告文本与标签均在 TSV 中,无需下载影像分卷 |
§3.1 模态详情
- CR(Computed Radiography):21,342 次研究(迭代 1+2+3)。数字化磷板摄影,多为床旁前后位(AP),设备老旧机构常见;迭代 1 内 2,427 张为 photometric interpretation = MONOCHROME2,751 张为 MONOCHROME1(需反色显示)。
- DX(Digital Radiography):34,829 次研究。直接数字化摄影,分辨率与信噪比普遍高于 CR,含 PA/AP/侧位多种投影。
- CT(Computed Tomography):7,918 次研究。以 series 为单位存为 NIfTI(.nii.gz),配套同名 JSON 存关键 DICOM 字段;COVID 典型系列为薄层轴位全肺扫描。
- 配套非影像数据:PCR/IgG/IgM 检测记录、脱敏西班牙语放射报告、人口学(出生年份、性别)、检查-检测日期间隔等。
三种模态的工程画像对比:
| 维度 | CR | DX | CT |
|---|---|---|---|
| 存储形态 | PNG(2D) | PNG(2D) | NIfTI(3D series) |
| 典型用途 | 二分类筛查 | 多标签征象识别 | 分割/严重度 |
| 床旁比例 | 高(AP 居多) | 中 | — |
| 灰阶陷阱 | MONOCHROME1 混入 | 少量 | 无(HU 值稳定) |
| 体量占比 | 中 | 最大 | 按体积最大 |
建模含义:CR 与 DX 的分布差异本身就是一个天然的“域”维度——把模态当作协变量建模或分层评估,是该数据集区别于单一来源胸片库的独特训练机会;CT 因体量与预处理管线差异大,建议作为独立工作流维护。
§3.2 子集与样本数
| 子集 | 研究数(study) | 患者数(subject) | 说明 |
|---|---|---|---|
| COVID-19+ 迭代 1 | 1,380 CX + 885 DX + 163 CT = 2,428 | 1,311 | 论文口径:2,429 studies / 5,530 series(含少量重复计入) |
| COVID-19+ 迭代 1+2+3 | 21,342 CR + 34,829 DX + 7,918 CT = 64,089 | 未单独公布 | GitHub README 口径 |
| COVID-19- 阴性分区 | 6,540 张图像 | 3,238 | NCBI 综述(Wichmann 等 2021)口径 |
| COVID-19+ 综述口径 | 16,840 张图像 | 4,706 | 同上综述按图像计(非研究计) |
| ROI 分割子集 | 23 张 | — | 8 位放射科医生像素级标注 |
| CARING bbox 子集 | 研究级标注 + 10 类病灶 bbox | — | OSF b35xu 第三方 |
⚠️ 口径差异提示:不同文献分别以“研究(study)”“图像(image)”“患者(subject)”计数,引用时务必注明口径。本 Wiki 在关键数字处均标注口径与来源。
§3.3 数据格式表
| 对象 | 格式 | 说明 |
|---|---|---|
| 原始影像 | DICOM(机构侧) | 发布前由 BIMCV 匿名化处理 |
| 2D 影像(CXR) | PNG(高分辨率) | 从 DICOM 导出,保留原始位深;MONOCHROME1 需反色 |
| 3D 影像(CT) | NIfTI(.nii.gz) | 每 series 一个文件 |
| 影像元数据 | JSON | 与影像同名,存关键 DICOM 字段(厂商、投影、kVp 等) |
| 表型/标签 | TSV | labels_COVID-19_posi.tsv、sessions_tsv 等 |
| 检测记录 | CSV(sil_reg_covid.csv) | PCR/IgG/IgM 类型、结果、日期 |
| 分发 | 571 个 .tgz 分卷 + *.tar-tvf.txt 清单 + sha1sums.txt | WebCAV 协议下载 |
§3.4 存储体量
官方未公布解压后总字节数,可确认的体量锚点:COVID-19+ 迭代 1+2+3 拆分为 571 个 tgz 分卷(GitHub README),外加 metadata、head、sessions_tsv 三个辅助包与 sha1sums 校验文件。经验上高分辨率 PNG 胸片单张 1-10 MB、CT 单 series 数十至数百 MB,建议按 §6.2 先下载小包试水再规划 ≥500 GB 的磁盘预算,避免一次性拉满。
磁盘与下载预算规划表(经验估算,非官方数字):
| 阶段 | 需求 | 说明 |
|---|---|---|
| 元数据 EDA | < 100 MB | metadata/head/sessions_tsv 三包 + sha1 |
| 仅标签任务 | < 1 GB | 全部 TSV/CSV,无影像 |
| CXR 子集训练 | 100-300 GB | 视所选分卷数(tar-tvf 清单可精确到 subject) |
| 全量(CXR+CT) | ≥ 500 GB | 571 卷全部解压,预留 1.5 倍临时空间 |
| 传输时间 | 数小时至数日 | 取决于 WebCAV 通道与并发策略 |
§3.5 标注方式
- 自动标注(主通道):沿用 PadChest 的报告挖掘管线——BiLSTM + attention 多标签文本分类器在 23,439 条人工标注句上训练(其中 724 句为 COVID 专项新增),对西班牙语报告输出发现/解剖定位/诊断三类 UMLS CUI 标签。COVID-19 与 COVID-19 uncertain 为新增标签,前者表示报告高度怀疑新冠,后者表示非典型表现、低度怀疑。
- 人工标注(金标种子):迭代 1 的 10 张(后扩至 23 张)影像由 8 位放射科医生经 XNAT OHIF Viewer 像素级勾画 14 类 findings 的 ROI,输出 XML 路径掩膜。
- 外部二次标注:CARING 团队在 OSF 发布研究级 Normal/Abnormal 与图像质量评级,以及 10 类病灶的边界框。
标注全流程可概括为五个环节,每个环节的质量特性不同:
- 报告撰写:临床放射科医生在疫情期间高压环境下完成,语言简练、存在省略与缩写。
- 报告脱敏:BIMCV-CSUSP 流程自动去除直识符,个别文本可能残留脱敏伪迹。
- 文本预处理:分词、否定/不确定语义识别(管线开源可复现)。
- CUI 映射:分类器输出实体后对齐 UMLS 词表,含发现、解剖定位、诊断三层。
- 独立抽检:64 句人工判读形成质量上界估计(COVID-19 precision 0.961)。
§3.6 标注者资质与一致性
ROI 标注者为西班牙圣胡安大学医院(Hospital Universitario de San Juan de Alicante)的 8 位放射科医生,具备胸部影像亚专业背景;标签分类器的训练语料由熟悉 PadChest 标注体系的临床团队人工判读。数据集未公布标注者间一致性系数(如 Cohen’s kappa),这是评估标注质量的已知空白;间接证据为独立 64 句测试中 COVID-19 标签精确率 0.961、全实体 F1-weighted 0.9320(arXiv:2006.01174 Table 7)。
§3.7 采集周期
首迭代影像集中采集于 2020 年 3 月西班牙第一波疫情高峰(论文示例同一患者 2020-03-14 至 2020-03-30 间 15 次随访);迭代 2、3 覆盖 2020 年后续波次;阴性分区于 2021-03 发布,覆盖 2020-2021。绝大多数影像检查与最近一次 PCR/血清学检测间隔不足 5 天(论文 Technical Validation 直方图)。
采集节奏的三个特征值得注意:其一,重症高峰期影像量大且检查频次高,纵向密集随访天然集中在病程急性期,稳定期复查占比低——做疾病进展建模时要意识到时间采样非均匀;其二,检测(PCR/血清学)与影像的先后次序在同一患者内并不固定,构建“转阳/转阴窗口”时应以检测日期为主键排序;其三,阴性分区采集窗口与阳性分区不完全重叠,两分区在疫情波次维度上并不同步,这是坑点 3 来源混淆的时间成分。
§3.8 地域覆盖
西班牙瓦伦西亚自治区(Comunitat Valenciana)境内多家公立医院的联网影像,经 FISABIO-CIPF 旗下 BIMCV 影像银行统一脱敏汇集。单一自治区来源意味着设备、协议与人群的同质性较高——这既是质量控制优点,也是泛化性局限(见 §7.3)。与 PadChest(同自治区、更早时段)对齐时,两库存在机构与设备重叠,跨库迁移实验中应检查 subject 级与机构级重复,防止“外部验证”实为同域回测。
§3.9 设备规格
论文公布迭代 1 设备厂商分布表,涵盖 GE Healthcare 等多家主流厂商的 CR/DX 与 CT 设备;具体型号-数量矩阵需查阅 arXiv:2006.01174 Table 5。关键可编程字段均保留在每 series 的 JSON 元数据中(Manufacturer、ManufacturerModelName、PhotometricInterpretation、ViewPosition 等),建议训练前按厂商分组统计以防设备混淆(见坑点 5)。
§3.10 深度溯源链
影像产生于瓦伦西亚各医院 PACS → 由 BIMCV-CSUSP 与圣胡安医院健康信息科按机构研究委员会批准流程匿名化(去除直识符、报告脱敏)→ FISABIO-CIPF 统一以 MIDS 结构打包 → 分发至 OSF(德国节点,DOI 10.17605/OSF.IO/NH7G8)与巴塞罗那超算中心 EUDAT/B2DROP(经 TransBioNet 任务组)。每一环节均有书面协议:医院侧采集经伦理批准,发布侧受 Research Use Agreement 约束。项目受瓦伦西亚创新署 51/2020 号政令资助,并获 EU Horizon 2020(DeepHealth 项目 825111、Euro-BioImaging 688945)支持。
§4 数据结构
§4.0 目录树
数据解压后按 MIDS(BIDS 的医学影像扩展)组织,以下是 COVID-19+ 分区的典型树形预览(以单个 subject 为例,实际有数千个 sub-* 目录分布于各分卷):
bimcv-covid19-posi/
├── covid19_posi_metadata.tar.gz # 头部描述与字段说明
├── covid19_posi_sessions_tsv.tar.gz # 全局 session 表
├── covid19_posi_derivative.tar.gz # 标签、报告、检测等派生数据
├── sha1sums.txt # 全部分卷 SHA1 校验
├── derivatives/
│ └── EHR/
│ ├── labels/
│ │ ├── labels_COVID-19_posi.tsv # subject 级标签(CUI+location)
│ │ └── tree_term_CUI_counts_image_covid_posi.csv # CUI 层级树
│ └── sil_reg_covid.csv # PCR/IgG/IgM 检测记录
└── sub-S0104/
├── sub-S0104_sessions.tsv # 该 subject 全部 session
├── ses-E10179/
│ ├── anat/
│ │ ├── sub-S0104_ses-E10179_acq-AXIAL_run-1_png/
│ │ │ ├── xxxxx.png # 2D 高分辨率影像帧
│ │ │ └── xxxxx.json # 同名 DICOM 元数据
│ │ └── sub-S0104_ses-E10179_acq-CORONAL_run-1_nifti/
│ │ └── ctaaaaa.nii.gz # CT series 的 NIfTI
│ └── sub-S0104_ses-E10179_scans.tsv # session 内 scan 清单
└── ses-E10356/ # 纵向随访的第二次检查
└── anat/ ...
§4.1 DAIMS 字段字典
核心表 labels_COVID-19_posi.tsv(标签主表)与 sub-*_sessions.tsv(检查表)的关键字段:
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| subjectid | string | 脱敏患者唯一码 | sub-S0104 | 分组键/防泄漏 | 无 | 无 | sub-SXXXXX |
| studyid | string | 影像研究(session)编号 | E10179 | 样本键 | 无 | 无 | E 开头数字串 |
| modality | string | 模态 | CR / DX / CT | 模态分层 | 设备录入错误罕见 | 空串 | 枚举 |
| labels_CUI | string | UMLS CUI 发现标签(多值) | C5203670 | 多标签分类 | 文本模型噪声 | 无 | UMLS 词表 |
| labels_term | string | 标签人类可读名 | COVID-19 | 调试/对齐 | 同上 | 无 | — |
| labels_loc | string | 解剖定位 CUI | 下叶/双侧 | 定位任务 | 报告省略时缺失 | 空串 | UMLS 解剖词表 |
| report | string | 脱敏西班牙语报告 | opacidades… | NLP/多模态 | 脱敏伪迹 | 空串 | 自由文本 |
| test_type | string | 检测类型 | PCR / IGG / IGM | 病原学锚定 | 无 | 无 | 枚举 |
| test_result | string | 检测结果 | POSITIVE / NEGATIVE / INDETERMINATE | 弱标签 | 假阴/假阳 | INDETERMINATE | 枚举 |
| study_date | date | 检查日期 | 20200317 | 时序/窗口 | 无 | 无 | 2020-2021 |
| photometric | string | 灰阶解释(JSON 内) | MONOCHROME1/2 | 预处理判断 | 无 | 无 | 枚举 |
| manufacturer | string | 设备厂商(JSON 内) | GE Healthcare | 偏倚分析 | 无 | 空串 | 多厂商 |
§4.2 标签分布
迭代 1 的官方统计(arXiv:2006.01174):1,311 例患者全部为 COVID-19+(经 PCR 或 IgG/IgM 锚定);标签空间覆盖宽谱胸部实体,COVID-19 与 COVID-19 uncertain 为新增专有标签;各 CUI 的出现计数存于 tree_term_CUI_counts_image_covid_posi.csv,可按频次过滤长尾标签。阴性分区则以后期加入的其他肺炎/非肺炎患者为主。
标签空间的分布特征与工程建议:
| 层级 | 特征 | 工程建议 |
|---|---|---|
| 头部实体(数十至数千次出现) | 肺炎、GGO、实变、胸腔积液、间质型、COVID-19 等高频 CUI | 可直接作为多标签训练目标 |
| 腰部实体(数十次) | 解剖定位(下叶、双肺、胸膜等)与中等频发现 | 按任务需要保留或合并 |
| 尾部实体(个位数出现) | 罕见征象与鉴别诊断 | 用 CUI 层级树合并到上位概念,或设阈值过滤 |
| 专有标签 | COVID-19(高怀疑)与 COVID-19 uncertain(低怀疑) | 三分类建模或按检测锚定重归(坑点 6) |
总体上标签呈典型长尾分布;建议训练前先按 CUI 计数文件绘制分布直方图,确定任务标签集后再切分数据,避免“先切分后过滤”造成的折间标签分布不一致。
§4.3 关键统计
- 迭代 1:1,311 subjects / 2,429 studies / 5,530 series;女性 602(45.92%);平均年龄 63.11 ± 16.75 岁;平均 1.9 studies/subject。
- 迭代 1+2+3:21,342 CR + 34,829 DX + 7,918 CT studies(GitHub README)。
- 灰阶构成:迭代 1 内 CX 中 2,427 张 MONOCHROME2、751 张 MONOCHROME1。
- 检查-检测间隔:多数不足 5 天。
- ROI 分割:23 张、14 类 findings。
- 设备多样性:迭代 1 涵盖 GE Healthcare 等多家厂商(论文 Table 5),X 光与 CT 均为多机构混合。
§4.4 数据层级
患者 subject (sub-SXXXXX)
└─ 检查 session/study (ses-EXXXXX,平均 1.9 次/患者)
└─ 系列 series(acq-XXX_run-N,一串 PNG 或一个 NIfTI)
└─ 帧/切片(单张 PNG 或 NIfTI 内层面)
关键含义:一个患者可贡献几十张图(论文示例 15 次检查),随机划分会产生患者级泄漏;CT 一个 study 含多个 series(不同重建/方位),按帧划分更是灾难。所有划分必须以 subject 为粒度(见 §5.3 与坑点 4)。
各层级的可用元数据与建模提示:
| 层级 | 可用元数据 | 建模提示 |
|---|---|---|
| subject | 人口学(出生年份、性别)、全部检测历史 | 分组键;人口学仅在此层可用 |
| session/study | 检查日期、检查类型 | 时间窗口对齐的主键 |
| series | 模态、方位/重建、厂商、灰阶解释 | 预处理分支与域分层依据 |
| 帧 | 像素矩阵、像素间距 | 分辨率重采样决策依据 |
§4.5 缺失值与信息性缺失
| 情形 | 表现 | 处理建议 |
|---|---|---|
| 标签 location 缺失 | labels_loc 为空 | 报告未提部位≠无病灶;训练定位任务时单独建模“未提及”类 |
| 检测结果不确定 | INDETERMINATE | 不并入正/负,单独弃权集或三分类 |
| MONOCHROME1 | 图像“底片化” | 读取后按 photometric 字段反转(坑点 1) |
| CT 缺失 | 患者仅 CXR | 模态不完整是常态,用模态子集训练而非填充 |
| 报告缺失个别字段 | TSV 空串 | 与图像 join 时保留左连接并计数 |
信息性缺失的统一处理原则:先区分“结构性缺失”(该患者本无 CT,属采集设计)与“内容性缺失”(报告未提及部位,属文本省略)——前者用模态指示变量编码,后者用显式“未提及”类别或缺失掩膜编码,两者混编会让模型把“没有信息”误学成“没有病灶”。建议在每个样本的元组里携带一个缺失模式指纹(如 modality_mask + loc_mask 二元组),使划分、训练与评测对缺失模式可复现、可分层。
§5 划分与使用建议
§5.1 官方划分
官方未提供 train/val/test 划分,也未提供交叉验证 fold。官方提供的是:完整标签表、检测记录与论文统计脚本(Jupyter notebook,GitHub 仓库内),划分需自行实现。这意味着两个实践后果:其一,文献间数字不可直接对比(各家划分不同,且患者级 vs 图像级划分差异巨大);其二,首次使用时应优先固化自己的划分文件并在实验记录中声明迭代号与划分种子,避免“隐性随机”。
§5.2 社区惯例
- 患者级 70/10/20 或 80/20:以 subject 为单位 GroupShuffleSplit,是最常见做法。
- DeGrave 复现协议:BIMCV+ 与 BIMCV- 分别与其他数据集组合,构造“来源-标签完全混淆”的训练集,再以另一数据集做外部测试,检验泛化悬崖(github.com/suinleelab/cxr_covid)。
- CARING bbox 评测:以 bbox 子集为固定测试集评估检测召回。
- 文献常见变体:部分工作按图像切分后报告高指标——这类结果在患者级重划分后通常回落,引用他人数字前先确认其划分口径。
| 划分口径 | 泄漏风险 | 适用场景 |
|---|---|---|
| 图像级随机 | 极高(同患者跨集) | 仅用于快速冒烟测试 |
| study 级随机 | 高(同患者多 study) | 不推荐 |
| subject 级随机 | 低 | 常规训练与论文报告 |
| subject + 时间双约束 | 最低 | 模拟真实部署/漂移评估 |
§5.3 划分策略与泄漏风险(重点)
- 患者级划分是底线:同一 subject 的纵向检查若跨 train/test,内部指标将严重虚高。用 GroupShuffleSplit(groups=subjectid) 并断言零交集。
- 同日双片:一次就诊常同时拍 PA+侧位或 CR+DX,天然近乎重复;按 subject 划分可消除,但按 study 划分不可。
- 来源混淆(最隐蔽):直接把 COVID+ 分区当正类、COVID- 分区当负类训练,则数据来源与标签完全相关(perfect confounding),模型学会的是“哪个分区”而非病理(DeGrave 等 2021)。缓解:从两分区各抽部分样本混合到训练与测试两侧,或做分区交叉测试。
- 长尾标签:低频 CUI 每类可能仅数例,建议设阈值过滤或合并到上位 CUI(利用 CUI 层级树)。
- 时间维度:如需模拟真实部署,可按检查日期切分(前 80% 时间训练),检验跨疫情波次漂移。
§5.4 交叉验证建议
5 折 GroupKFold(按 subject)为主;对长尾标签用 IterativeStratification 的分组近似版本或分层抽样后手工校验每折标签覆盖。报告均值±标准差而非单折最优。
from sklearn.model_selection import GroupKFold
import numpy as np
def group_kfold_aucs(samples, patient_labels, n_splits=5):
"""按 subject 的 5 折划分器:返回 (train_idx_list, test_idx_list)。
samples: [(png_path, subject_id), ...]"""
groups = np.array([s for _, s in samples])
gkf = GroupKFold(n_splits=n_splits)
return list(gkf.split(samples, groups=groups))
# 使用后必须断言:
# for tr, te in folds:
# assert not (set(groups[tr]) & set(groups[te])), "患者级泄漏!"
§5.5 外部验证建议
- 同域外部:PadChest(同地区不同时期)、RICORD(CT 阳性)。
- 跨域外部:CheXpert、ChestX-ray14(标签体系对齐后)、COVIDx。
- 强制动作:在任何外部集上报告性能衰减,并做 Grad-CAM/SHAP 可视化检查是否依赖文本标记、设备指纹等捷径(§6.5 坑点 3)。
- 协议对齐:跨数据集评测时统一预处理(分辨率、灰阶反转、裁剪),否则测得的是预处理差异而非泛化能力;建议把 §6.3 流程做成独立包并在两个数据集上跑同一管线。
§6 AI 就绪指南 ⭐
§6.0 云端快速启动(如适用)
BIMCV 无官方云镜像(未上架 Kaggle/HuggingFace 官方频道),需自行下载后上传。云端实践:在对象存储挂载为只读卷,先只同步 metadata/head/sessions 三个小包完成 EDA,再按需拉取影像分卷;下载务必校验 sha1sums.txt。
| 云端环节 | 建议做法 | 注意事项 |
|---|---|---|
| 对象存储 | B2DROP → 服务器直接 wget/curl,或 rsync 到 S3/OSS | 保留原始卷与 sha1,勿只存解压态 |
| 计算实例 | 1×A100 40G + 500 GB 数据盘 | 训练二分类 512px 足够 |
| 目录挂载 | 数据盘只读挂载,输出写独立盘 | 防止误改原始数据 |
| 断点续传 | 分卷粒度重试 + 校验后解压 | 卷级失败不拖累整体 |
| 协作共享 | 共享 manifest(卷 sha1 + 划分 CSV),不共享影像本体 | 符合 EULA 禁再分发条款 |
§6.1 快速上手
以下代码假设你已完成下载与解压,目录结构符合 §4.0:
# 目录结构预期(data_root 拼接关系):
# data_root/
# derivatives/EHR/labels/labels_COVID-19_posi.tsv <- 标签主表
# derivatives/EHR/sil_reg_covid.csv <- 检测记录
# sub-SXXXXX/ses-EXXXXX/anat/.../xxxxx.png <- 影像(每帧一 PNG + 一 JSON)
# 最小可用子集:仅标签主表 + 任意一个 sub-S* 目录即可跑通本节
import pandas as pd
from pathlib import Path
DATA_ROOT = Path("data/bimcv-covid19-posi") # <- 改成你的解压根目录
# 1) 读取标签主表(TSV,注意 sep="\t")
labels = pd.read_csv(DATA_ROOT / "derivatives/EHR/labels/labels_COVID-19_posi.tsv",
sep="\t", low_memory=False)
print(labels.columns.tolist()) # 先看列名,官方不同迭代列名有微调
print(labels["subjectid"].nunique()) # 患者数 sanity check
# 2) 读取检测记录,取每位患者的“任一阳性”作病原学弱标签
tests = pd.read_csv(DATA_ROOT / "derivatives/EHR/sil_reg_covid.csv")
pos_subj = set(tests.loc[tests["result"].str.upper() == "POSITIVE", "subjectid"])
# 3) 定位某患者的影像文件(PNG + JSON 成对)
img_dir = next(DATA_ROOT.glob("sub-S*/ses-*/anat/*png"))
for png in sorted(img_dir.glob("*.png"))[:3]:
meta = pd.read_json(png.with_suffix(".json"), typ="series")
print(png.name, meta.get("PhotometricInterpretation"))
跑通后的就绪自检清单(五项全过再进入训练):
- 标签表 subject 数与官方口径同量级(迭代 1 应为 1,311)。
- 抽样 50 张 PNG 全部能读、尺寸合理、无“底片化”遗漏。
- 检测记录 join 后无 subject 静默丢失(计数对账)。
- 影像路径可由 subjectid 确定性重建(分卷清单核对)。
- 磁盘余量 ≥ 当前解压体积的 1.5 倍。
§6.2 数据获取
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 访问官方页 bimcv.cipf.es/bimcv-projects/bimcv-covid19 | 阅读并接受 Research Use Agreement(EULA) |
| 2 | 进入 B2DROP 分享页(github 仓库 README 提供直链) | COVID+ 分区与 COVID- 分区是两个独立链接 |
| 3 | 先下载 metadata/head/sessions_tsv 三个小包 + sha1sums.txt | 数 MB 级,可先完成全部 EDA |
| 4 | 按需下载影像 tgz 分卷(COVID+ 共 571 卷) | 官方 NOTICE 建议用 WebCAV 协议,浏览器直下易断 |
| 5 | 校验:sha1sum -c sha1sums.txt | 不通过即重下对应卷 |
| 6 | 备用渠道:OSF DOI 10.17605/OSF.IO/NH7G8;IEEE DataPort 10.21227/w3aw-rv39(+)/10.21227/m4j2-ap59(-) | IEEE 通道需订阅/注册 |
# 分卷批量下载示例(伪码,实际链接以官方分享页为准)
for f in $(cat volumes_to_fetch.txt); do
webcav-cli get "$f" --out data/bimcv-covid19-posi/
done
cd data/bimcv-covid19-posi && sha1sum -c sha1sums.txt
for t in covid19_posi_*.tgz; do tar -xzf "$t"; done
§6.3 预处理全流程
# 步骤:读取 -> 反色(MONOCHROME1) -> 裁剪黑边 -> 归一化 -> 重采样尺寸 -> 保存
import numpy as np
from PIL import Image
import pandas as pd
from pathlib import Path
def load_cxr(png_path: Path) -> np.ndarray:
img = Image.open(png_path)
arr = np.array(img)
if arr.ndim == 3: # 部分 PNG 带调色/多通道
arr = arr[..., 0]
# JSON 元数据里存有 photometric interpretation;缺失时按灰度统计兜底
meta = pd.read_json(png_path.with_suffix(".json"), typ="series")
if str(meta.get("PhotometricInterpretation", "")).upper() == "MONOCHROME1":
arr = arr.max() - arr # 反色!否则底片化
arr = arr.astype(np.float32)
arr = (arr - arr.min()) / (arr.max() - arr.min() + 1e-8)
return arr
def crop_dark_border(arr: np.ndarray, thr: float = 0.02) -> np.ndarray:
mask = arr > thr
rows, cols = np.any(mask, 1), np.any(mask, 0)
return arr[np.ix_(rows, cols)]
def resize_square(arr: np.ndarray, size: int = 512) -> np.ndarray:
img = Image.fromarray((arr * 255).astype(np.uint8))
w, h = img.size
img = img.resize((size, int(size * h / w))) # 保持纵横比
canvas = Image.new("L", (size, size), 0)
canvas.paste(img, (0, (size - img.size[1]) // 2)) # 居中 padding
return np.array(canvas)
CT(NIfTI)侧的最小处理流程:CT 以 series 为单位存储,需做窗宽窗位(肺窗 W1500/L-600 或软组织窗)后再缩放:
import nibabel as nib
def load_ct_slice(nifti_path: Path, slice_idx: int,
ww: float = 1500, wc: float = -600) -> np.ndarray:
"""肺窗读取 CT 的某一层。CT 的 NIfTI 里保留 HU 值(斜率 1、截距 -1024)。"""
vol = nib.load(str(nifti_path)).get_fdata()
hu = vol[..., slice_idx]
lo, hi = wc - ww / 2, wc + ww / 2
hu = np.clip(hu, lo, hi)
return ((hu - lo) / (hi - lo)).astype(np.float32) # 0-1 归一化
def ct_series_list(session_dir: Path):
"""列出某 session 下全部 NIfTI series(含方位与重建信息于 JSON)。"""
return sorted(session_dir.rglob("*.nii.gz"))
注意事项:CT 各 series 可能是轴位/冠状位不同重建,训练前按 JSON 中 acq 字段分层;CT 与 CXR 建议分开建立索引表,避免混入同一 DataLoader 时无差别缩放。
§6.4 PyTorch DataLoader
import torch
from torch.utils.data import Dataset, DataLoader
import torchvision.transforms as T
class BIMCVDataset(Dataset):
"""患者级标签的多标签胸片数据集。
预期:data_root 下有 sub-S*/ses-*/anat/*png,标签来自 labels TSV,
patient_labels: dict[subject_id -> float[1]](如任一检测阳性=1)。
"""
def __init__(self, samples, patient_labels, size=512, train=True):
self.samples = samples # [(png_path, subject_id), ...]
self.patient_labels = patient_labels
self.train = train
norm = T.Normalize(mean=[0.5], std=[0.5])
self.tf = (T.Compose([T.Resize((size, size)), T.RandomHorizontalFlip(0.5),
T.ToTensor(), norm]) if train
else T.Compose([T.Resize((size, size)), T.ToTensor(), norm]))
def __len__(self):
return len(self.samples)
def __getitem__(self, i):
path, sid = self.samples[i]
arr = load_cxr(Path(path)) # §6.3 的函数(含反色)
arr = resize_square(arr)
x = self.tf(Image.fromarray(arr))
y = torch.tensor(self.patient_labels[sid], dtype=torch.float32)
return x, y, sid # 返回 sid 便于 GroupSplit 与溯源
def make_loaders(samples, patient_labels, batch_size=32):
from sklearn.model_selection import GroupShuffleSplit
sids = [s for _, s in samples]
tr, te = next(GroupShuffleSplit(1, test_size=0.2, random_state=42)
.split(samples, groups=sids))
tr_s = [samples[i] for i in tr]; te_s = [samples[i] for i in te]
return (DataLoader(BIMCVDataset(tr_s, patient_labels, train=True),
batch_size=batch_size, shuffle=True, num_workers=8,
pin_memory=True),
DataLoader(BIMCVDataset(te_s, patient_labels, train=False),
batch_size=batch_size, num_workers=8, pin_memory=True))
从 DataLoader 到一次完整训练循环(二分类):
import torch.nn as nn
import torchvision
model = torchvision.models.densenet121(weights="DEFAULT")
model.classifier = nn.Linear(model.classifier.in_features, 1)
model = model.cuda()
criterion = nn.BCEWithLogitsLoss()
optimizer = torch.optim.AdamW(model.parameters(), lr=3e-4)
train_loader, val_loader = make_loaders(samples, patient_labels)
for epoch in range(10):
model.train()
for x, y, _ in train_loader:
x, y = x.cuda(), y.cuda()
optimizer.zero_grad()
loss = criterion(model(x).squeeze(1), y)
loss.backward()
optimizer.step()
model.eval()
with torch.no_grad():
aucs = []
for x, y, _ in val_loader:
p = torch.sigmoid(model(x.cuda()).squeeze(1)).cpu()
aucs.append(roc_auc_score(y.numpy(), p.numpy()))
print(f"epoch {epoch}: val AUC = {np.mean(aucs):.4f}")
工程提示:__getitem__ 返回 sid 的设计让训练与评测共享同一溯源链;评测阶段建议把 sid、预测概率、标签逐行写入 CSV,供后续按来源/模态分组分析。
§6.5 坑点 8 个
⚠️ 坑点 1:MONOCHROME1 反色陷阱(分类:预处理陷阱)
问题:迭代 1 中 751 张 CX 为 DICOM MONOCHROME1(灰度值 0=白),其余 2,427 张为 MONOCHROME2(0=黑)。导出 PNG 保留了这一差异,不做反色则约 1/4 图像以“底片”形态进入训练。
症状:部分验证图像看起来像负片;模型对子群体 AUC 异常偏低;Grad-CAM 关注肺外区域;肉眼 review 时发现“肺部全白、纵隔全黑”的怪图。
解决:
- 简单方法:读取每帧同名 JSON 的 PhotometricInterpretation 字段,为 MONOCHROME1 时执行
arr = arr.max() - arr(§6.3 已内置)。- 进阶方法:无 JSON 时按直方图兜底——背景(肺周)应最暗,若背景灰度中位数大于全图中位数则反转;处理后抽样 100 张人工目检。
- SOTA 方法:接入 pydicom 直接读原始 DICOM(分卷中亦保留 DICOM 字段),由
apply_voi_lut+apply_modality_lut统一处理窗宽窗位与灰阶,避免任何手写反转分支。
参考:arXiv:2006.01174 Technical Validation(MONOCHROME1 需反色的官方说明)。
⚠️ 坑点 2:标签是文本模型写的,不是人看的(分类:标签理解)
问题:labels TSV 中的全部发现标签由 BiLSTM+attention 从西班牙语报告自动抽取(23,439 句训练),逐图人工复核并不存在;独立 64 句测试中 COVID-19 标签精确率 0.961、全实体 accuracy 仅 0.8281,尾部 CUI 噪声更高。
症状:同义 CUI 并存导致“假类别分裂”;个别标签与影像肉眼不符;直接把标签当真值训练的多标签模型上限低且难复现他人结果。
解决:
- 简单方法:只保留频次 ≥ N(如 50)的 CUI,用官方 tree_term_CUI_counts_image_covid_posi.csv 把长尾合并到上位概念。
- 进阶方法:对每个任务子集人工抽检 200-500 张,估计各标签的精确率并作为评测噪声上限;用标签共现矩阵识别同义对并合并。
- SOTA 方法:以 CARING(OSF b35xu)的 10 类 bbox 标注为高置信子集做“干净核心集”,其余样本按置信度加权(如 generalized cross-entropy / co-teaching)训练。
参考:arXiv:2006.01174 Labeling 一节;github.com/auriml/Rx-thorax-automatic-captioning。
⚠️ 坑点 3:分区即混淆——捷径学习重灾区(分类:偏倚陷阱)
问题:COVID+ 与 COVID- 分区来自不同采集管线与时期,若直接“+”当正、“-”当负训练,数据来源与标签完全相关(perfect confounding)。DeGrave 等 2021 证明此类模型内部测试准确率高、外部测试近乎减半,且注意力落在文本标记、体位等非病理捷径上。
症状:内部 AUC 0.95+,外部数据集 AUC 掉到 0.6 左右;saliency 图高亮角落水印/文字/肩关节而非肺野;混入任一来源的负样本后性能骤降。
解决:
- 简单方法:训练与测试集中同时混合两个分区的样本(如分区交叉 2x2 划分),保证“来源”不能预测标签。
- 进阶方法:报告分区交叉矩阵(train on A, test on B;train on A+B, test on C)而不仅是合并指标;对外部集绘制按来源分组的 AUC。
- SOTA 方法:跨域泛化正则(IRM、GroupDRO 按来源分组)+ 强增广(随机裁剪/污点/文字擦除)削弱来源指纹;交付前强制 Grad-CAM 审查(DeGrave 协议)。
参考:DeGrave, Janizek & Lee, Nature Machine Intelligence 3, 610-619 (2021), DOI 10.1038/s42256-021-00338-7;github.com/suinleelab/cxr_covid。
⚠️ 坑点 4:subject→session→series 三级层级引发的患者级泄漏(分类:数据泄漏)
问题:平均每位患者 1.9 次检查(论文示例一名患者 15 次),一次 CT 检查又含多个 series 与数百帧。按文件或 study 划分时,同一患者几乎必然同时出现在训练与测试集。
症状:测试指标好得可疑(AUC +0.05 以上);去重后发现测试集中大量“同一张脸”的相似影像;复现者按患者重划分后指标显著下降。
解决:
- 简单方法:GroupShuffleSplit/GroupKFold 以 subjectid 为组(§6.4 已内置),断言训练/测试患者零交集。
- 进阶方法:把“同一患者”定义放宽到同一机构-同一日(应对编号差异),并在论文中报告两种口径的差距。
- SOTA 方法:时间切分 + 患者切分双约束(先按日期切窗口,再在窗口内按患者划分),同时评估跨波次漂移。
参考:arXiv:2006.01174 Figure 7(纵向序列示例);§5.3。
⚠️ 坑点 5:CR/DX、AP/PA、床旁与立位混在一个池子里(分类:工程陷阱)
问题:数据集将 CR 与 DX、床旁 AP 与立位 PA 混合提供,设备厂商众多;不同投影的肺野形态与灰阶分布差异极大,但标签表不总是显式给出 ViewPosition。
症状:模型对“立位 PA 胸片”过拟合而对床旁片失效;按设备分组评估时指标方差巨大;有研究者误把体位差异当作疾病信号。
解决:
- 简单方法:训练前从 JSON 元数据聚合 Manufacturer、ViewPosition、PhotometricInterpretation 分布表;至少按 CR/DX 分层评估。
- 进阶方法:以元数据字段为分层变量做 GroupKFold,保证每折投影构成一致;训练时对投影做条件归一化。
- SOTA 方法:按“设备域”做对抗去混淆或 test-time 增广(模拟不同投影/网格伪影),并报告逐域指标。
参考:arXiv:2006.01174 Table 5(厂商分布);§3.9。
⚠️ 坑点 6:COVID-19 uncertain 标签的两义性(分类:标签理解)
问题:官方新增 COVID-19 uncertain 标签表示“影像非典型、低度怀疑新冠”,这些研究多落在阴性分区;它既不是阳性也不是确认阴性,却被很多下游脚本粗暴二值化。
症状:把 uncertain 并入负类后阴性集混入影像上与新冠一致的样本(论文独立测试中负分区 64 句有 27 句影像表现与新冠相符),负类被污染,精度虚低或虚高难以解释。
解决:
- 简单方法:三分类建模(positive / uncertain / negative),或训练时丢弃 uncertain、测试时单独报告。
- 进阶方法:用病原学检测(PCR/血清学)而非影像标签定义正负类,uncertain 样本按检测日期窗口对齐后再归类。
- SOTA 方法:标签噪声建模(label smoothing 按来源区分、partial label learning),把 uncertain 视为部分标注并学习软标签。
参考:arXiv:2006.01174(COVID-19 uncertain 定义与 Table 7);§3.5。
⚠️ 坑点 7:571 个分卷 + WebCAV 的下载与完整性噩梦(分类:工程陷阱)
问题:数据以 571 个 tgz 分卷(另有 metadata/head/sessions 三个辅助包)分发,官方 NOTICE 因带宽压力推荐 WebCAV 协议;浏览器直下大文件易中断,解压后发现部分卷损坏的概率不低。
症状:tar 报 “Unexpected EOF”;某 subject 影像残缺但标签表齐全,join 后静默丢失样本;磁盘预算不足导致中途失败重来。
解决:
- 简单方法:下载后
sha1sum -c sha1sums.txt,仅重下失败卷;用*.tar-tvf.txt清单核对卷内容。- 进阶方法:aria2c/wget 断点续传脚本 + 校验一体化(§6.2 bash 块);先解压 metadata 做样本清单,再按需拉影像卷。
- SOTA 方法:解析
*.tar-tvf.txt建立“卷→subject”索引,实现按患者子集的按需解包(tar -xzf 卷.tar.gz --files-from 清单),把全量 500 GB 级磁盘需求降到按需。
参考:github.com/BIMCV-CSUSP/BIMCV-COVID-19 README 与 2020-10-20 NOTICE。
⚠️ 坑点 8:分辨率与位深参差,直接 resize 会抹掉细节或放大噪声(分类:预处理陷阱)
问题:数据集以“高分辨率”为卖点,但不同设备像素间距与矩阵差异巨大(床旁 CR 与平板 DX 可差数倍),CT 与 CXR 位深也不同;无脑 resize 到 224×224 会让部分图像欠采样、部分过采样。
症状:同一标签下图像清晰度差异肉眼可见;模型在小矩阵图像(先被上采样)上表现异常;骨密度/网格伪影成为伪特征。
解决:
- 简单方法:统一以较长边归一化再等比 padding(§6.3 resize_square),并按原始像素间距(PixelSpacing)分层统计。
- 进阶方法:按物理尺寸(mm)重采样到固定 spacing,而不是按像素 resize;训练前绘制各设备的分辨率直方图排查异常簇。
- SOTA 方法:多尺度训练(随机 crop 到 512/768)+ 对应的 TTA 评测;或使用保留高分辨率的 patch-based 训练(如 512 patch + 全图聚合)。
参考:arXiv:2006.01174(Images are stored in high resolution);§3.9。
§6.6 数据增强
- ✅ 安全:随机水平翻转(胸片近似左右对称)、±10° 旋转、±10% 平移、亮度/对比度小扰动、高斯噪声、随机裁剪后 padding、单色反转校正后的固定窗宽。
- ❌ 危险:垂直翻转(破坏解剖上下)、大角度旋转(>15°,模拟不存在体位)、彩色化/伪彩(灰阶语义被破坏)、过强弹性形变(掩盖病灶形态学)、任何依赖“来源指纹”的增广(如仅在正类上擦除文字标记)。
import albumentations as A
train_tf = A.Compose([
A.HorizontalFlip(p=0.5),
A.Rotate(limit=10, border_mode=0, p=0.5),
A.Affine(scale=(0.9, 1.1), translate_percent=(0.0, 0.1), p=0.3),
A.RandomBrightnessContrast(brightness_limit=0.1, contrast_limit=0.1, p=0.5),
A.GaussNoise(var_limit=(5.0, 15.0), p=0.2),
A.CoarseDropout(max_holes=2, max_height=32, max_width=32, p=0.2), # 弱化文字标记依赖
])
# 评测时:train_tf = None(零增广),保证指标可比。
# 反色(MONOCHROME1)必须在增广之前完成,属于确定性预处理而非增广。
§6.7 模型推荐表
| 任务 | 推荐起点 | 理由 |
|---|---|---|
| COVID 二分类/多分类 | DenseNet-121(ImageNet/CheXpert 预训练)、EfficientNet-B0/B4 | 胸片文献主力骨干,参数适中 |
| 多标签征象识别 | DenseNet-121 + sigmoid 多头,或 torchvision 的 ResNet 系列 | 与 PadChest/UMLS 标签体系天然契合 |
| 病灶分割 | U-Net / nnU-Net(以 23 张 ROI + CARING bbox 为弱种子) | 医学分割事实标准,小样本友好 |
| 报告-影像多模态 | 报告侧西班牙语 BERT 类模型 + 图像 DenseNet,双塔对齐 | 报告为西语文本,需跨语种考虑 |
| 泛化性诊断 | DeGrave 协议复现 + Grad-CAM 审查 | 方法学即任务 |
骨干选型注意:该数据集图像分辨率普遍高于 ChestX-ray14/CheXpert 的预处理产物,512px 输入下 DenseNet-121 的显存收益优于 ViT 系(无大预训练语料时 ViT 更易过拟合);若从 PadChest/CheXpert 权重热启动,需检查其预处理(灰阶、裁剪)与本数据集管线一致,否则先做一轮“权重兼容性微调”。
§6.8 硬件需求表
| 阶段 | 最低配置 | 推荐配置 |
|---|---|---|
| EDA/标签处理 | 16 GB 内存 CPU | 64 GB 内存(TSV 与标签树较大) |
| 二分类训练(512px) | 1×RTX 3060 12 GB | 1×RTX 3090/4090 24 GB |
| 多标签 + 分割 | 1×V100 16 GB | 2×A100 40 GB(nnU-Net CT 训练) |
| 存储 | 500 GB SSD | 1 TB NVMe(571 卷 + 解压余量) |
§6.9 评估指标代码
import numpy as np
from sklearn.metrics import roc_auc_score, average_precision_score, f1_score
def evaluate(y_true, y_prob, label_names=None):
"""多标签评估:每个标签的 AUC/AP + 微观 F1(0.5 阈值)。
y_true/y_prob: shape [n_samples, n_labels]"""
out = {}
for j in range(y_true.shape[1]):
name = label_names[j] if label_names else f"label_{j}"
if len(np.unique(y_true[:, j])) < 2:
out[name] = float("nan") # 单类标签跳过,避免 sklearn 报错
continue
out[name] = roc_auc_score(y_true[:, j], y_prob[:, j])
out["micro_F1"] = f1_score(y_true, (y_prob > 0.5).astype(int),
average="micro")
out["macro_AUPRC"] = np.nanmean([
average_precision_score(y_true[:, j], y_prob[:, j])
for j in range(y_true.shape[1])
if len(np.unique(y_true[:, j])) >= 2])
return out
在指标之上,强烈建议把“捷径审计”固化为代码检查——用 Grad-CAM 或 SHAP 输出注意力热图,人工抽检是否落在肺野之外:
import torch
def saliency_check(model, x, target_class=1):
"""最简显著性检查:输入梯度热图。返回 [B, 1, H, W] 张量供可视化。"""
model.eval()
x = x.clone().requires_grad_(True)
logit = model(x)[:, target_class].sum()
logit.backward()
sal = x.grad.abs().amax(dim=1, keepdim=True) # [B, 1, H, W]
sal = (sal - sal.amin(dim=(2, 3), keepdim=True)) / \
(sal.amax(dim=(2, 3), keepdim=True) - sal.amin(dim=(2, 3), keepdim=True) + 1e-8)
return sal
# 审查标准(建议写入 CI):
# 1) 高亮区域中心点落在肺野 mask 外的样本占比 < 10%;
# 2) 抽样 20 张人工目检,禁止出现“角落文字/边框高亮”的确定性模式;
# 3) 分区交叉测试(train on BIMCV+, test on BIMCV- 等四格矩阵)必须随附热图存档。
§6.10 MLOps 笔记
- 数据版本化:记录所用分卷的 sha1 前缀与迭代号(1/2/3、±),DVC 或手工 manifest 均可;不同迭代的样本集不可混用而不声明。
- 拆分固化:把 subject 级划分保存为 CSV 工件,训练/评测一律引用该文件,防止“重跑重划”。
- 来源追溯:每条样本带 subjectid + session + 卷号三段溯源键,评估聚合时按来源分组输出。
- 监控漂移:上线后监控 MONOCHROME1 比例、CR/DX 比例与分辨率分布——这三项是该数据集内部已证实的分布维度,同样是线上漂移的前哨。
- 合规留痕:EULA 要求禁再分发与禁再识别,团队内共享需签同名协议副本;模型公开时按协议建议附代码与权重。
- 捷径审计常态化:把 Grad-CAM 抽查(如每 100 张预测抽 5 张)写进 CI 流程,凡注意力落在图像角落文字/边框的模型一律拒绝上线;这与 DeGrave 等的结论一致——解释性检查应视为临床部署的前置条件而非事后补救。
- 可复现实验记录:固定 random seed、torch 版本与 DataLoader worker 数,把内部/外部双指标(而非单一内部指标)写进实验跟踪系统的必填字段。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 来源混淆 | +/− 分区采集管线不同,来源与标签相关 | 高 | 分区交叉划分、按来源分组评估(坑点 3) |
| 标签噪声 | 标签由报告文本模型自动生成,逐图无人核 | 高 | 长尾过滤、CARING 干净子集、噪声感知训练(坑点 2) |
| 入选偏倚 | 仅纳入做了影像+检测配对的患者,重症住院居多 | 中 | 在人群画像中明确声明,外推谨慎 |
| 设备/体位混杂 | CR/DX、AP/PA、多厂商混合 | 中 | 按元数据分层评估(坑点 5) |
| 单地区偏倚 | 全部来自瓦伦西亚自治区 | 中 | 外部验证矩阵(§7.8) |
| 时间偏倚 | 集中于 2020-2021 疫情波次,毒株与诊疗规范已过时 | 中 | 作为历史快照使用,不直接迁移当下部署 |
§7.2 标注质量评估
三层质量梯度清晰可辨,使用时不可混淆其证据等级:
| 标签层 | 生成方式 | 可信级别 | 适用任务 | 已知缺口 |
|---|---|---|---|---|
| 病原学检测(PCR/IgG/IgM) | 临床检验科出具 | 金标准(感染状态) | COVID 二分类正负定义 | 假阴性窗口期、INDETERMINATE 待归类 |
| 影像标签(UMLS CUI) | BiLSTM+attention 报告抽取 | 银标准/弱监督 | 多标签征象识别、定位 | 逐图无人复核;头部精确率 0.961、全实体 accuracy 0.8281 |
| 像素 ROI(23 张) | 8 位放射科医生 OHIF 勾画 | 人工金标准(极小样本) | 分割种子、定性验证 | 未公布标注者间一致性 |
| 第三方 bbox(CARING) | OSF 社区标注 | 外部二次标注 | 检测/弱监督分割 | 覆盖 10 类,非全谱 |
使用建议:以检测锚定感染状态、以标签训练征象模型、以 ROI 仅做定性/种子验证;任何把银标准当金标准报告的指标都应加“自动标签口径”脚注。
§7.3 泛化性评估表
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 换国家/人群(跨域部署) | 高:来源混淆叠加人群差异 | DeGrave 等 2021:外部测试准确率近乎减半 |
| 换设备/体位(床旁→立位) | 中高:CR/AP 与 DX/PA 分布差异 | 坑点 5;多厂商元数据(§3.9) |
| 换时期(毒株/诊疗变化) | 中:2020 影像谱与当下不同 | 采集周期 2020-2021(§3.7) |
| 合并其他数据集训练 | 高:捷径相互冲突,指标骤降常见 | DeGrave 协议内部/外部差距 |
| 直接临床落地 | 不可接受:官方明文要求临床研究支撑 | GitHub README 警告 |
§7.4 伦理考量
数据经机构研究委员会批准后由 BIMCV-CSUSP 与圣胡安医院信息科匿名化脱敏;EULA 明文禁止再识别(发现须上报)、禁止用于诊断或患者护理(Research Use Only,未经 FDA/EMA 审批)、禁止未授权再分发。项目获瓦伦西亚创新署(51/2020 政令)、EU Horizon 2020(DeepHealth 825111 等)资助。使用本数据集即视同接受上述全部条款。
落地到团队实践的四条操作红线:
- 不二次公开原始数据:论文附图可用官方样例并注明出处;自建镜像、转存网盘、打包进模型仓库均违反禁再分发条款。
- 内部共享留痕:团队内传递数据时保留 EULA 副本与接收人清单,形成与 PhysioNet 凭证制类似的内部问责链。
- 再识别零容忍:JSON/TSV 中若疑似残留直识符,停止使用并向 BIMCV 项目组报告,而非自行“清洗后继续用”。
- 性能宣称克制:对外材料避免使用诊断性措辞,引用官方“无临床研究不宣称性能”的立场声明。
§7.5 公平性分析
公开人口学字段仅年龄与性别(首迭代女性 45.92%、平均 63.11 岁),无种族/族裔字段,无法进行种族公平性审计。年龄与性别结构接近西班牙同期确诊人群,但对年轻患者、女性患者的子群性能需自行分层评估;跨语言场景(报告为西语)对非西语 NLP 用户构成额外公平性维度。
§7.6 数据漂移
数据集内部的“人为漂移”已可观察:迭代间样本量跳变(1,311 例 → 数千例)、阴性分区后置发布导致两分区采集窗口不同;外部时间漂移体现在 2020 年第一波毒株与诊疗规范已与当下显著不同。建议以检查日期、设备厂商、MONOCHROME1 比例三个维度做漂移监控基线(§6.10)。
可操作的漂移监控基线表:
| 监控维度 | 数据集内基线 | 线上预警信号 |
|---|---|---|
| 模态构成 | CR 约 1/3、DX 约 1/2、CT 约 1/8(研究数计) | 某模态占比单月漂移 >10 个百分点 |
| 灰阶解释 | MONOCHROME1 约 23%(迭代 1 CX 计) | 反色样本漏网率上升 |
| 分辨率分布 | 高分辨率为主、设备间差异大 | 出现新的低分辨率聚集簇 |
| 年龄/性别 | 均值 63.11 岁、女性 45.92%(迭代 1) | 人群结构持续偏移 |
| 检查-检测间隔 | 多数 <5 天 | 窗口中位数持续变长(流程变化) |
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 标签/检测/会话均为宽表 TSV/CSV |
| 2 | 唯一标识 | ✅ | subjectid/studyid/series 三级唯一键 |
| 3 | 特殊字符 | ✅ | 西语重音字符在 TSV 中编码规范(UTF-8) |
| 4 | 重复行 | ✅ | tar-tvf 清单与 sha1 校验可排查重复/损坏 |
| 5 | 缺失编码 | ✅ | 空串/INDETERMINATE 语义明确 |
| 6 | 标签标识 | ⚠️ | 自动生成标签,无人复核层;部分任务需三级可信分层 |
| 7 | 罕见类分组 | ⚠️ | 长尾 CUI 需按层级树合并 |
| 8 | 偏倚评估 | ⚠️ | 官方给出人口学统计,混淆分析靠社区(DeGrave)补全 |
| 9 | 数据字典 | ✅ | metadata 包 + GitHub 提供字段说明 |
| 10 | 信息性缺失解释 | ⚠️ | location 缺失与“未提及”语义需自行建模 |
| 11 | 设备记录 | ✅ | 厂商/型号/采集参数在 JSON 元数据齐全 |
| 12 | 共线性 | ✅ | 影像标签间存在层级相关,提供 CUI 树可供拆解 |
| 13 | 编码映射 | ✅ | UMLS CUI + 层级树文件官方提供 |
| 14 | 时间戳处理 | ✅ | study_date 与检测日期齐备且对齐窗口可算 |
| 15 | 划分建议 | ⚠️ | 无官方划分,社区约定俗成 |
| 16 | 泄漏讨论 | ✅ | 论文以纵向序列示例明示层级,患者级划分必要性可推知 |
| 17 | 标签分布 | ✅ | 官方统计脚本 + CUI 计数文件 |
| 18 | 测量偏倚 | ⚠️ | 多设备/体位混杂已证实存在,无官方分层指标 |
| 19 | 外部验证建议 | ✅ | PadChest 同源可对接;DeGrave 协议可复用 |
| 20 | 版本记录 | ✅ | 迭代 1/2/3 与 ±分区时间线清晰(arXiv + GitHub commit) |
| 21 | 预处理脚本 | ⚠️ | 官方仅提供统计与标注管线,无端到端预处理脚本 |
| 22 | 合规要求 | ✅ | EULA 明确研究专用/禁再分发/禁再识别 |
| 23 | 多模态对齐 | ✅ | 影像-报告-检测-人口学四层对齐且窗口短(<5 天为主) |
| 24 | 去标识化 | ✅ | 机构级匿名化流程 + 报告脱敏 |
DAIMS 评分:19.5 / 24
评分解读:该数据集在结构规范(宽表、唯一键、元数据、版本记录)、术语互操作(UMLS 映射)与合规(EULA、去标识化)上达到一线水准,多模态对齐更是同类 COVID 影像集中的头部表现。失分集中在“标注”环节:标签自动生成、无人工复核层、无官方划分,以及缺乏端到端预处理脚本——这意味着即开即用的“干净监督信号”并不存在。
对你意味着什么:可以放心把 BIMCV-COVID19 当作结构底座(目录、元数据、时间对齐)与外部验证镜,但绝不能把标签表当金标准直接拟合。动手顺序建议:先按坑点 1/5/8 完成像素级清洗 → 用患者级划分固化样本集(§5.3)→ 对任务标签做频次过滤与 CUI 合并(坑点 2)→ 任何对外宣称的指标必须过分区交叉与外部集双重检验(坑点 3),并保留 Grad-CAM 证据链。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 外部组合数据集(DeGrave 等 2021) | 华盛顿大学 | COVID 胸片二分类 | 外部测试准确率约为内部一半(定性) | 大幅下降 | 模型依赖来源捷径而非病理;正负样本来自不同数据源即触发最坏混淆 |
| 独立标签测试集(64 句,官方) | BIMCV 团队 | 报告→标签抽取质量 | COVID-19 precision 0.961;全实体 F1-weighted 0.9320 | — | 自动标签头部实体可靠,长尾存疑 |
| PadChest(同团队前作) | FISABIO-CIPF | 标签体系迁移 | 定性兼容 | — | 共享 174 类报告挖掘体系与 UMLS 映射,迁移成本低 |
§8 基准性能与生态
§8.1 排行榜与代表性结果
BIMCV-COVID19 无官方排行榜(Kaggle/Papers with Code 无统一榜单)。下表汇总有同行评审/公开代码支撑的代表性结果,各行的数据配置与评测协议不同,数值不可直接比较:
| 排名 | 模型/研究 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | UMLS-ChestNet(官方基线) | 独立 64 句:F1-weighted 0.9320、F1-micro 0.9378、accuracy 0.8281 | 2020 | 分层标签 CNN + 注意力,多标签 findings+定位 | González G. et al., 2020, arXiv:2006.05274. https://arxiv.org/abs/2006.05274 | 未公开完整代码 |
| 2 | 报告标注分类器(官方管线) | COVID-19 标签 precision 0.961 / recall 0.925 / F1 0.943 | 2020 | BiLSTM+attention 西语报告多标签抽取 | de la Iglesia Vayá M. et al., 2020, arXiv:2006.01174. https://arxiv.org/abs/2006.01174 | github.com/auriml/Rx-thorax-automatic-captioning |
| 3 | DeGrave 等(反例基准) | 内部集准确率高、外部集减半(定性) | 2021 | CNN + saliency/GAN 解释的捷径分析 | DeGrave A.J., Janizek J.D., Lee S.-I., 2021, Nature Machine Intelligence 3(7):610-619. DOI 10.1038/s42256-021-00338-7 | github.com/suinleelab/cxr_covid |
⚠️ 数值不可直接比较的原因:三行的训练/评测集构成、标签粒度(病原学 vs 报告 vs 影像)与指标定义均不同;第 3 行结论是“高内部指标不可信”,不是性能排名。
§8.2 SOTA 总结与选型建议
该数据集上不存在公认 SOTA;方法学共识是:任何在 BIMCV 内部达到高精度的模型,必须先通过来源交叉与外部测试两道关(§8.1 第 3 行)才有意义。选型建议:以 DenseNet 系骨干 + 患者级划分 + UMLS 头部标签起步;分割任务直接 nnU-Net;方法学研究(去偏、泛化)建议直接复用 DeGrave 开源协议以保证可比性。
按研究目标的选型速查:
| 你的目标 | 起步配置 | 必做的额外动作 |
|---|---|---|
| COVID 检测论文 | DenseNet-121 + 检测锚定标签 + 患者级 5 折 | 分区交叉矩阵 + 一个外部集 |
| 多标签征象模型 | DenseNet-121 多头 + 头部 CUI 过滤 | CUI 层级合并 + 按标签 AUPRC 报告 |
| 分割 | nnU-Net + 23 张 ROI + CARING bbox 弱监督 | 报告逐类 Dice 与不确定性 |
| 方法学(去偏/泛化) | DeGrave 协议复现 | saliency 存档 + 来源分组分析 |
| 教学/演示 | 元数据包 + 迭代 1 子集 | 无需全量下载 |
§8.3 评测协议
推荐协议:患者级 5 折 GroupKFold;报告 AUC/AUPRC(按标签)+ micro-F1;附分区交叉矩阵(+/− 各自作为外测时);所有指标附 95% 置信区间(bootstrap by subject);评测集样本的标签可信级别(检测锚定/自动标签/ROI)须显式声明。
交付前评测 checklist:
- 划分文件已固化,训练/测试患者零交集(脚本断言通过)。
- MONOCHROME1 反色处理已生效(抽 20 张目检)。
- 标签集已按频次过滤并声明阈值。
- 分区交叉 2×2 矩阵已随附。
- 至少一个外部数据集结果已附(含预处理管线统一说明)。
- 显著性热图抽检通过(肺野内高亮占比达标)。
- 报告均值±标准差,未 cherry-pick 单折最优。
§8.4 相关数据集表
| 数据集 | 关系 | 差异要点 |
|---|---|---|
| PadChest | 同一团队前作,标签体系同源 | 16 万张广谱胸片,无 COVID 专项配对检测 |
| COVIDx | 同期 COVID 胸片基准 | 多源混合、图像级来源杂,元数据弱 |
| RICORD | 同期 COVID CT | 标注精(分割)但仅阳性、规模小 |
| CheXpert / ChestX-ray14 | 胸片通用大库 | 无 COVID 与 CT,常作预训练或外部验证 |
| AIforCOVID | 临床预测基准 | 含临床变量与结局,规模小(约 1,000 例) |
| COVIDGR | 单机构 COVID 胸片 | 西班牙格拉纳达来源,规模小、二分类专精 |
选库搭配建议:预训练用 CheXpert/ChestX-ray14,主训练用 BIMCV 迭代 1+2+3,分割参照 RICORD,方法学对照用 PadChest 做同源迁移;跨库实验前统一 §6.3 预处理管线,并把“标签体系对齐表”作为实验工件保存——各库标签互译(如 CheXpert 的 14 类 vs BIMCV 的 UMLS CUI)是跨库比较中最大的隐性成本。
§8.5 关键论文 Top 7
- de la Iglesia Vayá M. et al., 2020, arXiv:2006.01174. https://arxiv.org/abs/2006.01174 — 数据集奠基论文:MIDS 结构、UMLS 标签管线与官方统计。
- DeGrave A.J., Janizek J.D., Lee S.-I., 2021, Nature Machine Intelligence 3(7):610-619. DOI 10.1038/s42256-021-00338-7 — 以 BIMCV+/− 为载体的捷径学习实证,方法学分水岭。
- Bustos A. et al., 2020, Medical Image Analysis 62:101697. DOI 10.1016/j.media.2020.101697 — PadChest:BIMCV 标签管线的母体,174 类胸片标注体系。
- González G. et al., 2020, arXiv:2006.05274. https://arxiv.org/abs/2006.05274 — UMLS-ChestNet:基于 BIMCV 的分层多标签官方基线。
- Mittal A. et al.(CARING 标注), 2021, OSF b35xu. https://osf.io/b35xu/ — 第三方研究级标注 + 10 类病灶 bbox,补足官方人工标注短板。
- Geirhos R. et al., 2020, Nature Machine Intelligence 2:665-673. DOI 10.1038/s42256-020-00257-z — 捷径学习概念框架,理解坑点 3 的理论基础。
- Cohen J.P. et al., 2020, arXiv:2003.13630. https://arxiv.org/abs/2003.13630 — COVID-19 Image Data Collection:同期最大竞品集合,BIMCV 被其收录为高质量子源。
§8.6 社区活跃度
- GitHub 仓库 BIMCV-CSUSP/BIMCV-COVID-19 自 2020 年起持续维护(README 明示“每日更新”期已过但迭代公告与 issue 答复仍在);标注管线仓库 auriml/Rx-thorax-automatic-captioning 开源。
- 学术侧:Semantic Scholar 收录引用 231+(截至 2026-09);DeGrave 等 2021 引用 430+,使 BIMCV 成为捷径学习文献的常客。
- 平台侧:未上架 Kaggle/HuggingFace 官方频道,社区讨论集中在 GitHub issues 与放射影像论坛。
- 使用节奏参考:2020 下半年为迭代密集期(1→2→3),2021 年转维护态;后续问题以数据使用实践(下载、解析、标签对齐)为主,数据本身不再扩容,引用新数字请以官方页为准。
§8.7 生态快照表
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| BIMCV 官方项目页 | 官网/下载入口 | https://bimcv.cipf.es/bimcv-projects/bimcv-covid19/ | 在线 | EULA、迭代公告、B2DROP 入口 |
| BIMCV-CSUSP/BIMCV-COVID-19 | GitHub | https://github.com/BIMCV-CSUSP/BIMCV-COVID-19 | 在线 | 分卷直链、sha1、统计 notebook |
| Rx-thorax-automatic-captioning | GitHub(标注管线) | https://github.com/auriml/Rx-thorax-automatic-captioning | 在线 | 复现标签生成过程 |
| MIDS 规范 | GitHub(数据标准) | https://github.com/BIMCV-CSUSP/MIDS | 在线 | 读懂目录组织 |
| CARING 标注 | OSF 数据集 | https://osf.io/b35xu/ | 在线 | bbox 与研究级标注 |
| arXiv:2006.01174 | 论文 | https://arxiv.org/abs/2006.01174 | 在线 | 全部官方统计出处 |
| suinleelab/cxr_covid | GitHub(方法学) | https://github.com/suinleelab/cxr_covid | 在线 | DeGrave 复现代码 |
§9 相关资源与引用
§9.1 官方资源列表
按用途分类的官方与权威资源:
下载与协议
- 官方项目主页(含 EULA 与下载入口):https://bimcv.cipf.es/bimcv-projects/bimcv-covid19/
- 数据集 Research Use Agreement:https://github.com/BIMCV-CSUSP/BIMCV-COVID-19/blob/master/BIMCV-COVID19%2B/LICENSE.md
- GitHub 仓库(分卷链接 + 元数据说明):https://github.com/BIMCV-CSUSP/BIMCV-COVID-19
- IEEE DataPort COVID-19+(DOI 10.21227/w3aw-rv39):https://dx.doi.org/10.21227/w3aw-rv39
- IEEE DataPort COVID-19-(DOI 10.21227/m4j2-ap59):https://dx.doi.org/10.21227/m4j2-ap59
- OSF 镜像(DOI 10.17605/OSF.IO/NH7G8):https://osf.io/nh7g8/
文档与工具
- MIDS 数据结构规范:https://github.com/BIMCV-CSUSP/MIDS
- 标注管线代码:https://github.com/auriml/Rx-thorax-automatic-captioning
- DeGrave 捷径学习复现代码:https://github.com/suinleelab/cxr_covid
补充标注与文献
- CARING 第三方标注:https://osf.io/b35xu/
- 数据集论文:https://arxiv.org/abs/2006.01174
- 阴性基线论文(UMLS-ChestNet):https://arxiv.org/abs/2006.05274
§9.2 BibTeX 引用块
@article{IglesiaVaya2020BIMCV,
title = {BIMCV COVID-19+: a large annotated dataset of RX and CT images from COVID-19 patients},
author = {María de la Iglesia Vayá and Jose Manuel Saborit and Joaquim Angel Montell and Antonio Pertusa and Aurelia Bustos and Miguel Cazorla and Joaquin Galant and Xavier Barber and Domingo Orozco-Beltrán and Francisco García-García and Marisa Caparrós and Germán González and Jose María Salinas},
journal = {arXiv preprint arXiv:2006.01174},
year = {2020},
url = {https://arxiv.org/abs/2006.01174}
}
@article{DeGrave2021Shortcuts,
title = {AI for radiographic COVID-19 detection selects shortcuts over signal},
author = {Alex J. DeGrave and Joseph D. Janizek and Su-In Lee},
journal = {Nature Machine Intelligence},
volume = {3},
number = {7},
pages = {610--619},
year = {2021},
doi = {10.1038/s42256-021-00338-7}
}
@data{IglesiaVaya2021BIMCVneg,
title = {BIMCV COVID-19-: a large annotated dataset of RX and CT images from COVID-19 patients},
author = {María de la Iglesia Vayá and Jose Manuel Saborit-Torres and Joaquim Angel Montell Serrano and Elena Oliver-Garcia and Antonio Pertusa and Aurelia Bustos and Miguel Cazorla and Joaquin Galant and Xavier Barber and Domingo Orozco-Beltrán and Francisco García-García and Marisa Caparrós and Germán González and Jose María Salinas},
publisher = {IEEE DataPort},
year = {2021},
doi = {10.21227/m4j2-ap59}
}
@article{Bustos2020PadChest,
title = {PadChest: A large chest x-ray image dataset with multi-label annotated reports},
author = {Aurelia Bustos and Antonio Pertusa and Jose Maria Salinas and María de la Iglesia-Vayá},
journal = {Medical Image Analysis},
volume = {62},
pages = {101697},
year = {2020},
doi = {10.1016/j.media.2020.101697}
}
§9.3 引用指南
使用本数据集时:正文引用 arXiv:2006.01174(数据集本体);若使用阴性分区,追加 IEEE DataPort DOI 10.21227/m4j2-ap59;方法学讨论引用 DeGrave 等 2021。请勿在无临床研究支撑的前提下宣称模型诊断性能(数据集官方明文要求)。本页面自身如被引用,请标注千方病案医数集与页面版本日期(2026-09-05)。
§10 AI 使用声明卡
§10.1 AI 模型列表
- 主笔模型:CodeBuddy Code(fast-model)——结构撰写、代码示例、表格整理。
- 辅助工具:WebSearch(事实检索与核实)、WebFetch(无)。
§10.2 AI 参与范围
AI 负责初稿生成与格式合规;事实数字全部来自 §10.3 所列公开来源并由检索结果交叉核对;医学判断性表述(§2、§7.4)以官方论文与 EULA 原文为准;最终内容由人工审核者复核签发。
具体分工边界如下:
| 工作项 | 执行方 | 说明 |
|---|---|---|
| 事实检索与交叉核对 | AI(WebSearch) | 多来源比对,冲突数字降级为“口径注明” |
| 章节撰写与代码示例 | AI | 代码经逻辑走查,未在真实数据上端到端执行 |
| 医学结论性判断 | 人工审核 | §2.5/§7.4 的定位表述经编辑部复核 |
| 数字口径取舍 | 人工审核 | 研究/图像/患者三种计数口径统一标注 |
| 最终签发 | 千方病案医学编辑部 | 见 §10.4 校验表与 §10.6 日期 |
§10.3 输入来源列表
- de la Iglesia Vayá M. et al., 2020, arXiv:2006.01174. https://arxiv.org/abs/2006.01174
- DeGrave A.J., Janizek J.D., Lee S.-I., 2021, Nature Machine Intelligence 3(7):610-619. DOI 10.1038/s42256-021-00338-7
- Bustos A. et al., 2020, Medical Image Analysis 62:101697. DOI 10.1016/j.media.2020.101697
- González G. et al., 2020, arXiv:2006.05274. https://arxiv.org/abs/2006.05274
- Mittal A. et al., 2021, OSF b35xu(CARING 标注). https://osf.io/b35xu/
- de la Iglesia Vayá M. et al., 2021, IEEE DataPort, DOI 10.21227/m4j2-ap59(COVID-19-)
- de la Iglesia Vayá M. et al., 2021, IEEE DataPort, DOI 10.21227/w3aw-rv39(COVID-19+)
- BIMCV 官方项目页. https://bimcv.cipf.es/bimcv-projects/bimcv-covid19/
- BIMCV-CSUSP/BIMCV-COVID-19 GitHub 仓库. https://github.com/BIMCV-CSUSP/BIMCV-COVID-19
- BIMCV-COVID19 Dataset Research Use Agreement. https://github.com/BIMCV-CSUSP/BIMCV-COVID-19/blob/master/BIMCV-COVID19%2B/LICENSE.md
- suinleelab/cxr_covid 复现代码库. https://github.com/suinleelab/cxr_covid
- Wichmann D. et al.(公共新冠 X 光数据集系统综述), 2021, NCBI PMC8479314. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8479314
- Rx-thorax-automatic-captioning 标注管线. https://github.com/auriml/Rx-thorax-automatic-captioning
- BIMCV-CSUSP/MIDS 数据结构规范. https://github.com/BIMCV-CSUSP/MIDS
- Geirhos R. et al., 2020, Nature Machine Intelligence 2:665-673. DOI 10.1038/s42256-020-00257-z(捷径学习概念框架)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| frontmatter 与 INFOBOX 数字口径 | 千方病案医学编辑部 | 对照 GitHub README/arXiv 原文逐项核对 | ✅ 已通过 |
| §2 医学背景与术语映射 | 千方病案医学编辑部 | 对照 ICD-11/SNOMED 官方词条与论文原文 | ✅ 已通过 |
| §3/§4 规格与数据结构 | 千方病案医学编辑部 | 对照 MIDS 规范与仓库 README | ✅ 已通过 |
| §6 代码与坑点 | 千方病案医学编辑部 | 代码逻辑走查 + 坑点溯源至论文/Issue | ✅ 已通过 |
| §7 质量评估与 DAIMS | 千方病案医学编辑部 | 对照 EULA 与 DeGrave 论文复核 | ✅ 已通过 |
| §8/§9 引用与生态 | 千方病案医学编辑部 | 逐条链接可达性与引用格式核对 | ✅ 已通过 |
§10.5 AI 生成章节标注
除 §0 三段固定免责声明(继承自平台金标准文本)外,全部章节由 AI 生成初稿并经人工复核修订;数字事实以 §10.3 来源为准。
§10.6 最后人工审核日期
2026-09-05(与 §0.3 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
