CT-RATE — 胸部 CT-报告多模态数据集 AI-Ready Wikipedia

2.5 万例检查 · 5 万配对体积 · 18 类异常标签的胸部 CT 多模态数据集

来源 Koç 大学 Rahmet-GPT 团队(HuggingFace 官方托管) url: https://huggingface.co/datasets/ibrahimhamamci/CT-RATE发布时间: 2026-09-18最后更新: 2026-09-25 阅读 29
CT-RATE — 胸部 CT-报告多模态数据集 AI-Ready Wikipedia

信息速览

数据集名称CT-RATE — 胸部 CT-报告多模态数据集 AI-Ready Wikipedia
数据类型25,692 例胸部 CT 检查,50,188 个配对 3D 体积,21,304 名患者,18 类异常标签,TB 级 NIfTI,HuggingFace 接受条款获取
规模2.1 万名患者(25,692 例检查)
接入方式Koç 大学 Rahmet-GPT 团队(HuggingFace 官方托管) url: https://huggingface.co/datasets/ibrahimhamamci/CT-RATE
AI 就绪度

CT-RATE — 胸部 CT-报告多模态数据集 AI-Ready Wikipedia


INFOBOX

数据集名称 CT-RATE
英文全称 CT-RATE — chest CT volumes paired with radiology reports (multimodal dataset for 3D computed tomography)
别名/简称 CT-RATE、CTRATE、CT-RATE dataset
疾病分类 胸部影像学异常 18 类全谱(肺实质 / 胸膜 / 心血管 / 纵隔,代表性 ICD-11 映射见 §2.1)
SNOMED CT 233604007 Pneumonia / 36118008 Pleural effusion / 13645005 Chronic obstructive lung disease(代表性子集,详见 §2.1b)
数据模态 3D 胸部 CT(低剂量非增强,多重建)+ 自由文本(放射学报告)+ 二值标签矩阵
AI 任务类型 多异常分类、报告生成、视觉语言预训练(3D CT-文本对齐)、零样本异常检测、报告问答、医学图像检索
样本总数 25,692 例检查 / 50,188 个重建体积 / 超 1,430 万张切片 / 21,304 名患者
数据大小 TB 级(约 5 万个 3D NIfTI 体积,官方未披露精确总量)
数据格式 NIfTI(.nii.gz 体积)/ CSV(标签与划分)/ JSON(报告与 QA)
许可证 CC BY-NC-SA 4.0(禁再分发,衍生数据共享须遵守隐私条款)
访问级别 注册后开放(HuggingFace 账号接受数据集条款)
DUO 标签 NCU
语言 英文(报告由土耳其语临床报告翻译)
首发日期 2024-03-26(arXiv v1)
最后更新 2026-02-08(arXiv v5 更名,数据仓库持续维护)
发布机构 Koç 大学(Rahmet-GPT 团队)
官方主页 https://huggingface.co/datasets/ibrahimhamamci/CT-RATE
下载地址 https://huggingface.co/datasets/ibrahimhamamci/CT-RATE
DOI 10.1038/s41551-025-01599-y(Nature Biomedical Engineering 论文)
引用次数 100+(Google Scholar,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 官方患者级划分与预处理参数明确、报告-体积一一配对;扣分项:标签为自动抽取弱标签、无切片/病灶级标注、体量大下载成本高
页面状态 published

§0 E-E-A-T 信任声明与免责声明

医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(18 类胸部异常的 ICD-11/SNOMED CT 映射、临床任务定义、金标准描述)、§7 偏倚分析。

数据工程审核者:千方病案医学编辑部交叉审核:医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典(体积-报告-标签三级配对结构)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

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

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

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CT-RATE 以 CC BY-NC-SA 4.0 许可发布于 HuggingFace,用户须以实名账号接受数据集条款,禁止再分发原始数据,衍生数据共享须遵守官方隐私条款。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 📌 30 秒速览

这是什么? CT-RATE 是目前规模最大的「胸部 CT + 放射报告」配对开放数据集:21,304 名患者的 25,692 例非增强胸部 CT 检查,每例配对一份放射科医师撰写的完整报告,经多重建扩展后共 50,188 个 3D 体积、超过 1,430 万张切片,并附带 18 类常见胸部异常的二值标签(见 arXiv:2403.17834)。

为什么重要? 在 CT-RATE 之前,开放医疗影像-文本配对数据几乎全部停留在 2D 胸片层面(如 放医疗影像-文本配对数据几乎全部停留在 2D 胸片层面(如 MIMIC-CXR),3D CT 因体量大、配对难而长期缺位。CT-RATE ),3D CT 因体量大、配对难而长期缺位。CT-RATE 首次把「体积级影像 + 报告文本 + 弱标签」三者对齐,让社区得以训练真正的 3D 医学视觉语言模型——官方模型 CT-CLIP 与 CT-CHAT 均构建于其上。

我能用它做什么? 训练多异常分类器(18 类标签)、报告生成模型、3D 图文检索与预训练模型;若你的研究需要区域级接地信号,可搭配衍生数据集 RadGenome-Chest CT 使用。注意:它没有切片级或病灶级标注,不适合直接做病灶分割。

§1.1 技术摘要

CT-RATE(Computed Tomography Reports And Text Essentials 体系的胸部 CT-报告配对数据集)由 Koç 大学 Rahmet-GPT 团队牵头构建,论文一作 Ibrahim Ethem Hamamci,署名机构含苏黎世大学(UZH)、ETH Zurich 与伊斯坦布尔 Medipol 大学等约 30 位作者(见 arXiv v5)。数据为土耳其某三级医疗中心的常规临床非增强胸部 CT,回顾性采集并按 HIPAA 标准脱敏:报告由土耳其语翻译为英文,所有日期做随机时间偏移。团队用微调的 RadBERT-RoBERTa-4m 模型从报告中自动抽取 18 类胸部异常二值标签,并以人工标注的 1,000 份报告校准抽取质量(见 ar5iv 版论文)。官方在此数据集上训练了 CT-CLIP(对比语言-图像预训练的 3D 编码器)与 CT-CHAT(视觉编码器接入大语言模型,以 270 万 QA 对微调),形成 3D 胸部 CT 领域的基座模型与基准体系。

§1.2 战略价值

维度一:填补「3D CT-文本」模态空白。 2D 胸片配对数据(MIMIC-CXR、本」模态空白。** 2D 胸片配对数据(MIMIC-CXR、CheXpert)已趋饱和,而 CT 的三维信息(结节形态、血管走行、纵隔关)已趋饱和,而 CT 的三维信息(结节形态、血管走行、纵隔关系)是 X 光无法提供的。CT-RATE 以 5 万体积的规模首次让 3D-CLIP 式预训练成为可能,官方消融显示 CT-CLIP 的 3D 编码器在多异常检测上达到与监督模型相当的 AUROC(0.900 零样本,见 论文)。

维度二:弱标签规模化路线的标杆样本。 18 类标签全部由报告自动抽取、仅 1,000 份人工校准,这种「NLP 抽取 + 小规模人工质检」的标注协议将标注成本降低了两个数量级,已成为后续医学多模态数据集(如 RadGenome 系)的通行做法。对工程团队而言,它也是研究「弱标签噪声如何影响 3D 模型」的最佳试验场。

维度三:生态杠杆效应。 RadGenome-Chest CT(区域级接地)、CTRATE-IR(图像检索基准)、DRR-RATE(2D 投影)等衍生数据集均以 CT-RATE 为底座构建,使其事实上成为 3D 胸部 CT 多模态研究的「母数据集」。

§1.3 同类数据集横向对比

数据集 规模 模态 标注 与 CT-RATE 的差异化
CT-RATE 25,692 例检查 / 50,188 体积 3D 非增强胸部 CT + 报告 18 类检查级弱标签(自动抽取) 唯一开放的大规模 3D CT-报告配对集
MIMIC-CXR 377,110 张图像 / 227,835 份报告 2D 胸片 + 报告 14 类检查级标签(NLP 抽取) 模态为 2D,无三维解剖信息
(NLP 抽取) 模态为 2D,无三维解剖信息
DeepLesion 4,400+ 名患者 / 10,000+ 病灶 3 4,400+ 名患者 / 10,000+ 病灶 3D CT(多部位)
NLST 26,722 名受试者 低剂量 CT(胸部) 肺癌随访结局 筛查队列、以结局为金标准,无报告文本

§1.4 版本时间轴

时间 版本/事件 说明
2024-03-26 arXiv v1 论文首发,题为「A foundation model utilizing chest CT volumes and radiology reports for supervised-level zero-shot detection of abnormalities」(arXiv:2403.17834)
2025 Nature Biomedical Engineering 期刊版发表,DOI 10.1038/s41551-025-01599-y
2026-02-08 arXiv v5 更名为「Generalist Foundation Models from a Multimodal Dataset for 3D Computed Tomography」,反映其从胸部扩展至多器官 3D 基座的定位(arXiv v5)

§1.5 典型应用场景

  1. 多异常分类基座:以 18 类弱标签训练 3D 骨干网络,再迁移至自有院内数据做少样本微调。
  2. 报告生成与报告问答:CT-CHAT 式架构(3D 编码器 + LLM)的训练语料与评测基准。
  3. 图文检索与相似病例搜索:CTRATE-IR 基准基于本数据集构建解剖条件检索任务。
  4. 3D 视觉语言预训练研究:对比学习、区域接地(配合 RadGenome-Chest CT)、切片级代理任务设计。
  5. 教学与放射科 NLP 研究:完整的报告四节结构(clinical information / technique / findings / impression)可用于结构化抽取研究。

不适用场景(与官方 rai:useCases 声明一致):

  1. 病灶级检测/分割:数据集不含病灶级标注,检查级弱标签无法监督定位任务。
  2. 切片级分类:标签挂在检查/重建级,强行下放到切片级属于标签误用(见坑点 4)。
  3. 无外部验证的临床决策支持:单中心队列,未经外部队列验证的模型不应进入任何临床流程。
  4. 商业化再分发:CC BY-NC-SA 4.0 许可禁止再分发原始数据,商用需另行获得权利方授权。
  5. 时间外推研究:日期已随机偏移,无法还原真实时间线,纵向时序建模不可行。

§2 医学背景

§2.1 ICD-11 代表性映射

CT-RATE 的 18 类标签为影像学所见(findings)而非临床诊断,下表仅列示具有明确 ICD-11 对应的代表性子集;完整 18 类标签英文列表见 §3.5,逐类流行病学描述见 §2.2。

影像学所见(标签组) 对应临床疾病方向 ICD-11 编码 ICD-11 中文名
Consolidation、Lung opacity 肺部感染/渗出 CA40 肺炎
Emphysema 慢性阻塞性肺疾病 CA22 慢性阻塞性肺疾病
Lung nodule 肺结节(恶性风险筛查目标) 2C25 支气管或肺恶性肿瘤
Pleural effusion 胸腔积液 CB2x(胸膜疾病块) 胸膜积液类疾病
Cardiomegaly、Pericardial effusion 心脏增大与心包疾病 BC4x/BC7x(心血管块) 心脏形态异常类疾病
Lymphadenopathy 纵隔/肺门淋巴结肿大 2B3x(淋巴系统块) 淋巴结病变类疾病

注:胸膜、心包与淋巴结相关所见在 ICD-11 中按病因细分编码,CT-RATE 标签本身不区分病因,故仅给出块级方向,研究者在做诊断映射时应结合临床信息字段。

§2.1b SNOMED CT 映射

影像学所见(标签) SNOMED CT 码 术语
Consolidation(感染性) 233604007 Pneumonia(肺炎)
Pleural effusion 36118008 Pleural effusion(胸腔积液)
Emphysema 13645005 Chronic obstructive lung disease(慢性阻塞性肺疾病)

§2.2 疾病简介与流行病学

CT-RATE 覆盖的 18 类所见横跨四大解剖域:肺实质(Atelectasis 肺不张、Consolidation 实变、Emphysema 肺气肿、Lung nodule 肺结节、Lung opacity 肺部阴影、Pulmonary fibrotic sequela 纤维化后遗症、Mosaic attenuation pattern 马赛克衰减、Interlobular septal thickening 小叶间隔增厚、Bronchiectasis 支气管扩张、Peribronchial thickening 支气管周围增厚)、胸膜(Pleural effusion 胸腔积液)、心血管(Cardiomegaly 心脏肥大、Pericardial effusion 心包积液、Arterial wall calcification 动脉壁钙化、Coronary artery wall calcification 冠脉钙化)与纵隔/其他(Hiatal hernia 食管裂孔疝、Lymphadenopathy 淋巴结肿大、Medical material 医疗材料置入)。

从全球疾病负担看,这组所见对应的主要疾病方向均为高发疾病:肺癌是全球最常见的癌症死因之一,低剂量 CT 筛查已被多国指南推荐;慢阻肺(Emphysema 为其病理基础之一)影响数亿人口;肺炎则是感染性疾病的首要死因之一。CT-RATE 的队列来自常规临床胸部 CT(而非筛查项目),因此住院患者比例高、病变谱广,标签呈长尾分布:肺阴影、实变、胸腔积液等常见所见正例率高,而食管裂孔疝、马赛克衰减等罕见所见的正例率显著偏低(官方分布图见论文 §3,本条目不复制未经逐项核验的具体百分比)。

18 类所见按解剖域分组速查:

解剖域 所见(英文 / 中文)
肺实质 Atelectasis 肺不张;Consolidation 实变;Emphysema 肺气肿;Lung nodule 肺结节;Lung opacity 肺部阴影;Pulmonary fibrotic sequela 肺纤维化后遗症;Mosaic attenuation pattern 马赛克衰减;Interlobular septal thickening 小叶间隔增厚
气道 Bronchiectasis 支气管扩张;Peribronchial thickening 支气管周围增厚
胸膜 Pleural effusion 胸腔积液
心血管 Cardiomegaly 心脏肥大;Pericardial effusion 心包积液;Arterial wall calcification 动脉壁钙化;Coronary artery wall calcification 冠脉钙化
纵隔/其他 Hiatal hernia 食管裂孔疝;Lymphadenopathy 淋巴结肿大;Medical material 医疗材料置入

注:气道类所见(支气管扩张、支气管周围增厚)在影像上与肺实质改变常共存,分组为阅读便利之用,不构成病理学分型依据。

§2.3 临床任务定义

任务类型 在 CT-RATE 上的形态 临床对照
筛查 对 18 类所见逐类给出存在概率(多标签) 低剂量 CT 肺癌筛查的扩展版
诊断支持 报告生成:输入体积,输出结构化 findings/impression 模拟放射科医师报告书写
分级/定量 冠脉钙化、动脉壁钙化等二值代理 → 可扩展为定量评分 Agatston 钙化评分的弱监督近似
预后关联 影像学所见组合与临床信息的关联挖掘 多病共存研究

§2.4 患者人群

维度 内容
来源 土耳其某三级医疗中心(单中心),常规临床非增强胸部 CT
采集时间 官方未披露具体起止年份(回顾性收集,论文 2024 年首发)
年龄 18-102 岁
性别 女性 41.6% / 男性 58.4%
种族/民族 未系统披露
就医类型 常规临床检查(含住院与门诊),非人群筛查队列
设备 Philips 61.5% / Siemens 30.1% / PNMS 8.4%

§2.5 临床价值

对临床 AI 而言,CT-RATE 的价值在于把「读片-写报告」这一放射科最耗时的环节变成可学习的监督信号:一个在 CT-RATE 上预训练的 3D 编码器既可直接输出 18 类所见概率作为阅片辅助,也可作为报告生成模型的三维视觉前端。对基层与教学场景,18 类所见覆盖了胸部阅片报告中的高频条目,适合构建「所见级」质控工具——例如自动核对报告中是否遗漏了胸腔积液或心包积液等关键所见。

§2.6 金标准参考

属性 内容
金标准来源 每例检查配对的放射科正式报告(放射科医师书写)
标注方式 微调 RadBERT-RoBERTa-4m 从报告自动抽取 18 类二值标签(弱监督)
标注者 模型自动抽取 + 人工标注 1,000 份报告(用于抽取器微调与评估)
标准性质 报告级弱标签(report-derived weak labels),非影像逐例核验的诊断金标准

§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐资源 大小 理由
训练 3D 多模态模型 / 多异常分类 CT-RATE 完整版(HuggingFace 主仓库) TB 级 体积+报告+18 标签全量配对
快速验证流程 / 教学演示 CT-RATE 验证集子集(volumes/valid + valid csv) 数十 GB 1,564 个体积即可跑通全流程
2D 预训练 / 无 GPU 集群 DRR-RATE 衍生集 7.97 GB 数字重建放射影像(DRR)2D 投影,CC BY-NC-SA 4.0
区域级接地 / 定位研究 RadGenome-Chest CT 另行下载 基于 SAT 分割掩膜提供约 66.5 万句级接地标注
仅报告文本 / NLP 研究 CT-RATE 报告部分 + 划分 CSV 约 1 GB 内 无需下载体积即可研究报告结构化

§3.1 模态详情

  • 影像模态:常规临床非增强胸部 CT(低剂量场景为主),轴位 DICOM 原始采集后转为 NIfTI 分发。每例检查通常包含两种重建(如 non-conv 标准重建与其他卷积核重建),合计 50,188 个体积对应 25,692 例检查(见 论文 v3)。
  • 文本模态:每例检查一份放射学报告,含四节:clinical information、technique、findings、impression。报告在土耳其临床工作流中以土耳其语书写,发布前翻译为英文。
  • 标签模态:18 类二值向量,与体积(重建)级实例一一对应。

§3.2 子集样本数

子集 患者数 检查/体积 用途
训练集 20,000 24,128 个体积实例 模型训练
验证集 1,304 1,564 个体积实例 调参与模型选择
外部验证集(RAD-ChestCT) 独立队列 3,630 个体积 外部泛化评估(无配对报告)

§3.3 数据格式

内容 格式 说明
3D 体积 NIfTI(.nii.gz) 按患者目录组织,重建级文件
标签表 CSV train_labels.csv / valid_labels.csv,18 列二值标签
划分表 CSV 患者级 train/valid 划分清单
报告 结构化文本(JSON 分发形态随版本演进) 四节完整报告
QA 对(CT-CHAT 训练) JSON 270 万问答对

§3.4 存储大小

官方未披露精确总容量;按 50,188 个体积、平均约 305 张切片估算,体素数据总量为 TB 级。工程上建议预留至少 2 TB 磁盘(含解压与预处理副本),下载完整仓库前先用 huggingface-cli 的排除规则按需拉取。

§3.5 标注方式

18 类异常二值标签由微调 RadBERT-RoBERTa-4m 从配对报告中自动抽取(弱监督路线),标签英文原名如下(顺序与官方标签表一致,见 CS231N 课程论文转引):

  1. Medical material(医疗材料置入)
  2. Arterial wall calcification(动脉壁钙化)
  3. Cardiomegaly(心脏肥大)
  4. Pericardial effusion(心包积液)
  5. Coronary artery wall calcification(冠状动脉壁钙化)
  6. Hiatal hernia(食管裂孔疝)
  7. Lymphadenopathy(淋巴结肿大)
  8. Emphysema(肺气肿)
  9. Atelectasis(肺不张)
  10. Lung nodule(肺结节)
  11. Lung opacity(肺部阴影)
  12. Pulmonary fibrotic sequela(肺纤维化后遗症)
  13. Pleural effusion(胸腔积液)
  14. Mosaic attenuation pattern(马赛克衰减模式)
  15. Peribronchial thickening(支气管周围增厚)
  16. Consolidation(实变)
  17. Bronchiectasis(支气管扩张)
  18. Interlobular septal thickening(小叶间隔增厚)

§3.6 标注者资质与一致性

标签主链路为模型自动抽取;人工介入集中在 1,000 份报告的标注,用于抽取器微调与评估(见 ar5iv 论文)。论文报告了抽取器相对人工标注的性能,但未提供逐类标注者间一致性 kappa;对 18 类标签的逐类噪声率,使用者应参考 RadGenome-Chest CT 的独立评估(句-区域对齐准确率 94.56%)间接校准信任度。

§3.7 采集周期

官方未披露具体采集起止年份。可确认的时间锚点:论文 v1 于 2024-03-26 提交,数据为回顾性常规临床采集;发布时已对日期做随机偏移,原始时间信息不可恢复。

§3.8 地域覆盖

单中心:土耳其某三级医疗中心。论文未披露医院名称与具体地理坐标。使用时应默认人群结构与欧洲/北美多中心数据存在差异。

§3.9 设备规格

属性 分布
厂商 Philips 61.5% / Siemens 30.1% / PNMS 8.4%
层厚 0.5-2.5 mm(原始采集)
面内分辨率 512×512(65.4%)/ 768×768(4.2%)/ 1024×1024(30.4%)
每体积切片数 100-600(均值 304.7)
增强剂 无(全部非增强扫描)

§3.10 深度溯源链

数据生产链:临床 CT 采集(多厂商)→ 影像归档与 DICOM 导出 → HIPAA 脱敏(DICOM 头清洗 + 日期偏移)→ NIfTI 转换与重建级组织 → 报告翻译(土耳其语→英文)→ RadBERT-RoBERTa-4m 标签抽取 → 患者级划分打包 → HuggingFace 发布。论文署名机构为苏黎世大学(UZH)、ETH Zurich、伊斯坦布尔 Medipol 大学等,出品方按官方发布口径为 Koç 大学 Rahmet-GPT 团队(见 arXiv v5)。


§4 数据结构

§4.0 目录树

数据按 HuggingFace 仓库结构组织(示意,具体文件名以仓库为准):

CT-RATE/
├── volumes/
│   ├── train/                     # 训练集体积(约 24,128 个 NIfTI)
│   │   └── patient_<ID>/          # 患者目录
│   │       ├── <ID>_CT_volume_W_IP_RR19_AP_A_70s.nii.gz   # 重建 A
│   │       └── <ID>_CT_volume_W_IP_RR20_AP_A_70s.nii.gz   # 重建 B(同一检查)
│   └── valid/                     # 验证集体积(1,564 个 NIfTI)
│       └── patient_<ID>/
│           └── <ID>_CT_volume_....nii.gz
├── valid_csvs/                    # 验证集标签与元数据表
│   ├── valid_labels.csv           # volume_name + 18 列二值标签
│   └── train_reports.csv          # 报告四节文本(训练侧同构)
├── train_labels.csv               # 训练集标签表(24,128 行)
└── train_valid_csv/               # 患者级划分与配对元数据

§4.1 DAIMS 字段字典

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
volume_name string 重建级唯一标识,前缀为患者 ID 1234_CT_volume_W_IP_RR19_AP_A_70s 主键;连接体积、标签、报告 同检查多重建命名规则需解析 无缺失 全仓库唯一
patient_id(从 volume_name 解析) string 患者标识(volume_name 首个下划线前) 1234 患者级划分/分组交叉验证 需自行解析,官方未单列患者表 无缺失 21,304 个
labels(18 列) int(0/1) 18 类异常二值弱标签 Cardiomegaly=1 多标签分类目标 NLP 抽取噪声(弱标签) 0=报告未提及 0/1
train/valid 划分 string 患者级官方划分 train 复现官方基准 不可按体积重划 无缺失 train/valid
clinical_information text 报告第一节:临床背景 「Cough for 2 weeks…」 患者背景条件化 翻译噪声 偶有简略描述 自由文本
technique text 报告第二节:扫描技术参数 「Non-contrast axial CT…」 域描述/层厚提取 模板化书写 偶省略 自由文本
findings text 报告第三节:系统化所见 「Bilateral pleural effusion…」 报告生成/接地主语料 翻译噪声 无缺失(核心节) 自由文本
impression text 报告第四节:结论 「1. Right pleural effusion…」 摘要/结论生成 与 findings 部分冗余 无缺失(核心节) 自由文本
QA pairs(CT-CHAT) json 体积-问答对(270 万) VQA 微调 由报告程序化生成 无缺失 —
nifti_path string 体积文件相对路径 volumes/train/1234/….nii.gz 数据加载索引 与标签表 join 需对齐命名 无缺失 仓库内有效

§4.2 标签分布

18 类标签呈典型长尾:Lung opacity、Consolidation、Pleural effusion、Atelectasis 等常见所见正例率高(与住院人群结构一致),而 Hiatal hernia、Mosaic attenuation pattern、Peribronchial thickening 等罕见所见正例率低。逐类精确正例率见论文官方分布图,本条目不复制未经核验的具体百分比;建模时建议按 §6.10 的加权采样策略处理类不平衡,并在报告中随附各列 sum() 统计作为基线核对。

18 类标签全列表与建模注意:

# 标签(英文) 中文 建模注意
1 Medical material 医疗材料置入 高密度置入物可伴伪影,注意其对相邻所见的干扰
2 Arterial wall calcification 动脉壁钙化 低对比细微所见,重采样插值影响明显(见坑点 5)
3 Cardiomegaly 心脏肥大 面积/径线可量化,可作二值标签的连续代理
4 Pericardial effusion 心包积液 少量积液与心包脂肪在窄窗下易混淆
5 Coronary artery wall calcification 冠脉钙化 需较高空间分辨率;低剂量厚层重建下信号弱
6 Hiatal hernia 食管裂孔疝 罕见类,正例稀少,务必加权采样或重采样
7 Lymphadenopathy 淋巴结肿大 短径阈值依赖人工判定,弱标签一致性有限
8 Emphysema 肺气肿 与马赛克衰减在吸气不足扫描上表现重叠
9 Atelectasis 肺不张 常见所见,与体位/扫描时相关联
10 Lung nodule 肺结节 检查级标签无法定位结节(见坑点 4)
11 Lung opacity 肺部阴影 高频兜底类,注意与更特异类的标签共现
12 Pulmonary fibrotic sequela 肺纤维化后遗症 慢性所见,随访时相间表现稳定
13 Pleural effusion 胸腔积液 高频类;单侧/双侧未区分
14 Mosaic attenuation pattern 马赛克衰减 罕见类;呼气相位缺失时判定困难
15 Peribronchial thickening 支气管周围增厚 罕见类,与支气管扩张共现率高
16 Consolidation 实变 高频类;与肺不张边界病例多
17 Bronchiectasis 支气管扩张 需轴向逐层观察,2D 下采样易丢失
18 Interlobular septal thickening 小叶间隔增厚 细微结构,层厚越厚越难保留

上表「建模注意」列为编辑部结合官方论文与方法论给出的工程提示,不改变标签定义本身。

§4.3 关键统计

统计项 值
患者数 21,304
检查数 25,692
重建体积数 50,188
2D 切片总数 超 1,430 万
每体积切片数 100-600(均值 304.7)
原始层厚 0.5-2.5 mm
年龄范围 18-102 岁
女性/男性 41.6% / 58.4%
厂商 Philips 61.5% / Siemens 30.1% / PNMS 8.4%

§4.4 数据层级

患者(21,304)
└── 检查 examination(25,692,每检查 1 份报告)
    └── 重建体积 volume(50,188,通常每检查 2 个重建)
        └── 切片 slice(合计超 1,430 万)

关键含义:报告挂在检查级,标签挂在重建级,患者跨检查可重复。任何聚合统计与数据划分都必须明确作用在哪一层(详见坑点 1、坑点 2)。

§4.5 缺失值与信息性缺失

情形 表现 处理建议
标签 0 报告未提及该所见,通常不等于影像确认阴性 将 0 视为「未提及」而非「确认阴性」;敏感任务需二次人工复核抽样
报告节缺失 clinical_information/technique 偶有简略或省略 findings 与 impression 为核心节,缺失率极低;训练报告生成时以 findings+impression 拼接为主(官方做法)
翻译伪影 土耳其语→英文的罕见直译痕迹 以 technique 节的扫描参数做交叉校验;NLP 任务先做拼写归一
层厚/分辨率异质 0.5-2.5 mm、512²/768²/1024² 混合 统一重采样(见 §6.3),保留原始 spacing 元数据

§5 划分与使用建议

§5.1 官方划分

划分 患者数 体积实例 说明
train 20,000 24,128 官方训练基准所用
valid 1,304 1,564 官方调参与报告基准
外部(RAD-ChestCT) 独立队列 3,630 仅影像(无配对报告),外部泛化评估

官方划分严格按患者级切分:同一患者的所有重建只出现在一侧。这是复现 CT-CLIP 基准的唯一合法用法。

§5.2 社区惯例

衍生工作(CTRATE-IR、RadGenome-Chest CT、报告 QA 系列)均沿用官方 train/valid 患者级划分以保证可比性;未见社区形成第二套公认划分。

三级聚合:建模时选哪一层?

建模层级 作用对象 标签/文本来源 适用任务
重建体积级 50,188 个体积实例 该体积行的 18 类标签 多异常分类(官方基准口径)
检查级 25,692 例检查 1 份报告(findings + impression 拼接) 报告生成、VQA、图文检索
患者级 21,304 名患者 多次检查合并 需谨慎:日期已偏移,纵向建模受限

三个层级的对应关系:同一检查的多个重建共享同一份报告;标签表以体积实例为一行(train_labels.csv 共 24,128 行),因此同一检查的两行标签应几乎一致——若不一致,说明 NLP 抽取对该检查两份重建的判定存在波动,可作为标签噪声的旁证。自行聚合时始终以患者 ID 为最外层分组键(见坑点 1、坑点 2)。

§5.3 划分策略建议与泄漏风险

  • 绝对禁止按体积切分:同一检查的 2 个重建几乎完全相同,按体积随机切分等于把测试答案放进了训练集(详见坑点 1)。
  • 同一患者多次检查:数据集含 21,304 名患者与 25,692 例检查,存在少量患者多检查情形;患者级分组已由官方划分处理,自行重组数据时必须重建患者索引。
  • 时间泄漏:日期已随机偏移,无法按真实时间划分前瞻性验证集;如需时间外推验证,只能使用 RAD-ChestCT 外部队列。
  • 交叉验证:如需 k 折,应使用 GroupKFold(group=patient_id),并保持与官方 valid 规模(约 6% 患者)相当的外科验证比例。
  • 外部验证:优先报告 RAD-ChestCT 上的 AUROC 作为泛化下界;跨机构使用建议再叠加自有院内数据做域适应评估(参见 §7.8 矩阵)。

§6 AI 就绪指南

§6.0 云端快速启动

Google Colab / Kaggle 不适合拉取完整 TB 级仓库。云端起步建议:只挂载验证集子集(数十 GB)跑通流程,或使用 HuggingFace 的流式读取处理报告 CSV;正式训练需多 TB 对象存储 + 高并发磁盘缓存的训练集群。

§6.1 快速上手

下面的最小代码假设目录结构与 §4.0 一致:data_root 指向仓库根目录,标签表直接在根目录,体积在其下 volumes/。最小可用子集为 volumes/valid/ + valid_csvs/(1,564 个体积即可全流程验证)。

import os
import pandas as pd

# 目录结构预期(与 §4.0 一致):
#   data_root/
#   ├── volumes/train/..., volumes/valid/...   # NIfTI 体积
#   └── train_labels.csv, valid_csvs/          # 标签与划分表
DATA_ROOT = os.environ.get("CTRATE_ROOT", "/data/ct-rate")

# 标签表:一行 = 一个重建体积实例
labels = pd.read_csv(os.path.join(DATA_ROOT, "train_labels.csv"))

LABELS = [
    "Medical material", "Arterial wall calcification", "Cardiomegaly",
    "Pericardial effusion", "Coronary artery wall calcification",
    "Hiatal hernia", "Lymphadenopathy", "Emphysema", "Atelectasis",
    "Lung nodule", "Lung opacity", "Pulmonary fibrotic sequela",
    "Pleural effusion", "Mosaic attenuation pattern",
    "Peribronchial thickening", "Consolidation", "Bronchiectasis",
    "Interlobular septal thickening",
]
y = labels[LABELS].values          # (N, 18) 多标签矩阵
# 患者级分组:patient_id = volume_name 首个下划线之前
groups = labels["volume_name"].str.split("_").str[0]
print(len(labels), "volumes,", groups.nunique(), "patients")

§6.2 数据获取

步骤 操作 说明
1 注册 HuggingFace 账号 实名信息与许可协议一致
2 打开数据集页并接受条款 ibrahimhamamci/CT-RATE
3 安装 CLI 并登录 pip install -U "huggingface_hub[cli]" && huggingface-cli login
4 选择性下载 先验证集后训练集,避免一次性 TB 级拉取
# 只下载验证集子集(约数十 GB)跑通全流程
huggingface-cli download ibrahimhamamci/CT-RATE \
  --repo-type dataset \
  --include "volumes/valid/*" "valid_csvs/*" \
  --local-dir /data/ct-rate

# 全量下载(TB 级,建议 nohup + 断点续传)
huggingface-cli download ibrahimhamamci/CT-RATE \
  --repo-type dataset --local-dir /data/ct-rate

<details>
<summary><strong>下载完整性校验(展开查看)</strong></summary>

下载完成后,先核对标签表行数与患者分组数,再启动训练:

python3 - <<'PY'
import glob
import pandas as pd

# 训练集标签表:预期 24,128 行(体积实例)
train = pd.read_csv("/data/ct-rate/train_labels.csv")
assert len(train) == 24128, f"train 行数异常: {len(train)}"
groups = train["volume_name"].str.split("_").str[0]
print("train:", len(train), "volumes,", groups.nunique(), "patients")

# 验证集标签表:预期 1,564 行
valid = pd.read_csv("/data/ct-rate/valid_csvs/valid_labels.csv")
assert len(valid) == 1564, f"valid 行数异常: {len(valid)}"
print("valid:", len(valid), "volumes")

# 体积文件抽查:确认 NIfTI 可读且非空
import nibabel as nib
for p in sorted(glob.glob("/data/ct-rate/volumes/valid/*/*.nii.gz"))[:3]:
    img = nib.load(p)
    print(p.split("/")[-1], img.shape, img.header.get_zooms())
PY

任何一项断言失败都意味着下载不完整或版本不符,应重新执行 huggingface-cli download 补齐后再训练。

</details>

§6.3 预处理全流程

官方基准使用的标准预处理为:重采样至 0.75×0.75×1.5 mm、裁剪/填充至 480×480×240(冠状×矢状×轴位)、HU 强度归一化至 [-1, 1]。可运行实现:

import numpy as np
import nibabel as nib
from scipy.ndimage import zoom

TARGET_SPACING = (0.75, 0.75, 1.5)   # mm, (x, y, z)
TARGET_SHAPE = (480, 480, 240)       # (x, y, z)

def load_hu(path):
    """读取 NIfTI 并返回 HU 值数组(CT-RATE 已保留原始 HU)"""
    vol = nib.load(path).get_fdata().astype(np.float32)
    return vol

def resample(vol, spacing, target_spacing):
    """各向异性重采样:z 向系数最小,避免过平滑(见坑点 5)"""
    factors = [spacing[i] / target_spacing[i] for i in range(3)]
    return zoom(vol, factors, order=1)   # 线性插值;标签任务勿用 order>1 于掩膜

def center_crop_pad(vol, target_shape):
    """空间维裁剪/填充到固定尺寸"""
    out = np.zeros(target_shape, dtype=np.float32)
    cuts = [min(vol.shape[i], target_shape[i]) for i in range(3)]
    starts = [(vol.shape[i] - cuts[i]) // 2 for i in range(3)]
    outs = [(target_shape[i] - cuts[i]) // 2 for i in range(3)]
    out[outs[0]:outs[0]+cuts[0], outs[1]:outs[1]+cuts[1], outs[2]:outs[2]+cuts[2]] = \
        vol[starts[0]:starts[0]+cuts[0], starts[1]:starts[1]+cuts[1], starts[2]:starts[2]+cuts[2]]
    return out

def normalize_hu(vol, hu_min=-1000.0, hu_max=1000.0):
    """HU 截断后线性归一化到 [-1, 1](官方约定)"""
    vol = np.clip(vol, hu_min, hu_max)
    return 2.0 * (vol - hu_min) / (hu_max - hu_min) - 1.0

清洗与标准化要点:HU 截断窗(如肺窗 -1000~-200 / 软组织窗)应按任务在归一化前完成;增强阶段所有空间变换必须同步作用于体积与任何派生掩膜。

§6.4 PyTorch DataLoader

完整可运行的 Dataset + transform + DataLoader(超 30 行,折叠展示):

<details>
<summary>点击展开完整 PyTorch 数据管线代码</summary>

import os
import numpy as np
import nibabel as nib
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
from scipy.ndimage import zoom

LABELS = [
    "Medical material", "Arterial wall calcification", "Cardiomegaly",
    "Pericardial effusion", "Coronary artery wall calcification",
    "Hiatal hernia", "Lymphadenopathy", "Emphysema", "Atelectasis",
    "Lung nodule", "Lung opacity", "Pulmonary fibrotic sequela",
    "Pleural effusion", "Mosaic attenuation pattern",
    "Peribronchial thickening", "Consolidation", "Bronchiectasis",
    "Interlobular septal thickening",
]

class CTRATEDataset(Dataset):
    """CT-RATE 多标签分类数据集(患者级划分由官方 CSV 保证)"""

    def __init__(self, root, split="train", target_shape=(480, 480, 240),
                 target_spacing=(0.75, 0.75, 1.5)):
        self.root = root
        csv_map = {
            "train": os.path.join(root, "train_labels.csv"),
            "valid": os.path.join(root, "valid_csvs", "valid_labels.csv"),
        }
        self.df = pd.read_csv(csv_map[split])
        self.split = split
        self.target_shape = target_shape
        self.target_spacing = target_spacing

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

    def _volume_path(self, row):
        # 依据划分与 volume_name 拼接 NIfTI 路径(与仓库目录结构一致)
        return os.path.join(self.root, "volumes", self.split, row["volume_name"] + ".nii.gz")

    def __getitem__(self, idx):
        row = self.df.iloc[idx]
        vol = nib.load(self._volume_path(row)).get_fdata().astype(np.float32)
        # 归一化 + 重采样 + 定尺寸(简化版,未读取原始 spacing 时按经验系数)
        vol = np.clip(vol, -1000.0, 1000.0)
        vol = 2.0 * (vol + 1000.0) / 2000.0 - 1.0
        factors = [vol.shape[i] / self.target_shape[i] for i in range(3)]
        vol = zoom(vol, factors, order=1)
        if vol.shape != self.target_shape:
            padded = np.zeros(self.target_shape, dtype=np.float32)
            cuts = [min(vol.shape[i], self.target_shape[i]) for i in range(3)]
            padded[:cuts[0], :cuts[1], :cuts[2]] = vol[:cuts[0], :cuts[1], :cuts[2]]
            vol = padded
        x = torch.from_numpy(vol).unsqueeze(0)           # (1, X, Y, Z)
        y = torch.tensor(row[LABELS].values.astype("float32"))
        return {"image": x, "label": y, "volume_name": row["volume_name"]}

train_ds = CTRATEDataset("/data/ct-rate", split="train")
train_loader = DataLoader(
    train_ds, batch_size=2, shuffle=True, num_workers=8,
    pin_memory=True, persistent_workers=True,
)
batch = next(iter(train_loader))
print(batch["image"].shape, batch["label"].shape)   # (2,1,480,480,240) (2,18)

</details>

§6.5 坑点:8 个真实失败模式

⚠️ 坑点 1:按体积切分导致患者/检查级数据泄漏(分类:数据泄漏)

问题:数据集在重建级展开为 50,188 个体积,同一检查的 2 个重建几乎逐体素相同;若按体积随机切分 train/val,两份「孪生体积」会分居两侧,验证指标虚高。
症状:本地验证 AUROC 高达 0.99+,换成 RAD-ChestCT 外部集或上线后断崖式下跌;同一患者的样本同时出现在训练与验证损失日志中。
解决:

  1. 简单方法:只用官方 train/valid CSV 划分,不做任何重切;校验方式为 set(train_patients) & set(valid_patients) == ∅。
  2. 进阶方法:自行重组时以 volume_name.split("_")[0] 提取 patient_id,用 GroupShuffleSplit/GroupKFold(group=patient_id) 保证患者级互斥。
  3. SOTA 方法:报告双指标——官方患者级划分下的内部 AUROC + RAD-ChestCT 外部 AUROC(CT-CLIP 为 0.900 vs 0.874,差值本身就是泄漏检测的标尺);并把同检查双重建全部放在同一侧。
    参考:官方论文划分协议(arXiv:2403.17834)、RAD-ChestCT 外部评测数字

⚠️ 坑点 2:把 50,188 个体积当 50,188 例独立检查(分类:工程陷阱)

问题:每例检查通常含两种重建,25,692 例检查扩展为 50,188 个体积;按体积计数样本量、计算类先验或做统计检验都会系统性重复计数。
症状:论文声称「2.5 万例」而你的实验表写「5 万样本」;重复计算正例率导致类权重(pos_weight)被系统性低估约一半;统计检验的置信区间虚假收窄。
解决:

  1. 简单方法:所有「例数」统计一律先按 patient_id(或检查 ID)去重再计数。
  2. 进阶方法:训练可用重建级实例增强数据,但验证/测试指标只报告检查级聚合结果(同一检查多重建预测取平均后再算 AUROC)。
  3. SOTA 方法:采用混合策略——训练时双重建作为两个视图做一致性正则(consistency regularization),推理时平均双重建 logits,这也是官方 CT-CLIP 评测的语义。
    参考:规模数字原文(arXiv HTML v3)

⚠️ 坑点 3:把 NLP 弱标签当成影像确认的诊断标签(分类:标签理解)

问题:18 类标签由 RadBERT-RoBERTa-4m 从报告自动抽取,属报告级弱标签;报告未提及 ≠ 影像确认阴性,报告提及也可能有「可疑/待排」等不确定语气。
症状:模型学到「报告用语风格」而非影像特征;在人工复核的小样本上评估时准确率显著低于测试集表现;把 0/1 当确定性真值做硬评估时天花板异常明显。
解决:

  1. 简单方法:报告与可视化中统一称「报告衍生标签(report-derived labels)」,禁止表述为「确诊标签」。
  2. 进阶方法:对高价值任务抽样 200-500 例做放射科医师影像复核,估计逐类标签噪声率,评估时使用噪声容忍指标(如 AUROC、PR-AUC)而非准确率。
  3. SOTA 方法:噪声感知训练——对可疑样本使用软标签或标签平滑,或采用 co-training/置信学习(confident learning)清洗高置信噪声样本后再微调。
    参考:标注协议原文(ar5iv)、RadGenome 句级对齐 94.56% 独立评估

⚠️ 坑点 4:检查级全局标签无法直接用于病灶级任务(分类:标签理解)

问题:标签是「该检查报告中是否提及某所见」的全局二值信号,不含位置、数量与大小;直接拿来做病灶检测/分割会出现「全图正样本」的监督错配。
症状:检测/分割模型把整肺区域涂成正例掩膜;分类正例但无可见病灶的「标签-影像矛盾」样本让训练损失无法收敛;社区已明确指出 CT-RATE 缺少 2D 切片级与病灶级标注。
解决:

  1. 简单方法:只做检查级多标签分类,不做定位任务;定位需求转向 DeepLesion 等病灶级数据集。
  2. 进阶方法:使用多实例学习(MIL)框架,把切片视为实例包(bag),检查级标签作为包级监督。
  3. SOTA 方法:接入 RadGenome-Chest CT 的区域级接地标注(基于 SAT 分割掩膜、约 66.5 万句级接地句),获得句-区域对齐监督后再回迁移到病灶级任务。
    参考:CT-Bench 对标注层级的批评(arXiv:2602.14879)、RadGenome-Chest CT

⚠️ 坑点 5:各向异性重采样的插值与顺序错误(分类:预处理陷阱)

问题:原始层厚 0.5-2.5 mm 且面内分辨率混合 512²/768²/1024²,向 0.75×0.75×1.5 mm 目标 spacing 重采样时,z 轴降采样系数与 xy 轴差异巨大;用三阶插值会振铃伪影,用最近邻会阶梯伪影,先裁剪后重采样则可能切掉肺尖/肺底。
症状:重采样后切片出现波纹或块状伪影;同一患者不同重建的体积形状不一致;肺尖小结在固定 240 层裁剪后丢失。
解决:

  1. 简单方法:全部用线性插值(order=1),先重采样再中心裁剪/填充,与官方 480×480×240 流程一致。
  2. 进阶方法:读取 NIfTI 仿射矩阵获得真实 spacing 再计算缩放系数(本页 §6.3 的 resample 实现);对 HU 体积用线性、对任何二值掩膜用最近邻。
  3. SOTA 方法:采用基于 MONAI 的 Spacingd/ResampleToMatch 管线并做 体素-物理 双重校验(体积物理尺寸 mm 级一致),对关键小病灶任务使用各向同性 1.0 mm 间隔并接受更长序列长度。
    参考:官方预处理参数(0.75×0.75×1.5 mm / 480×480×240)

⚠️ 坑点 6:z 轴 100-600 变长序列的显存与 IO 瓶颈(分类:工程陷阱)

问题:每体积切片数 100-600(均值 304.7),变长 3D 张量在批处理时要么 padding 浪费显存,要么统一裁剪破坏完整性;NIfTI 解压是 CPU 密集操作,600 层体积单例解码可达数秒。
症状:batch size 一大就 OOM;GPU 利用率忽高忽低(IO 等待);num_workers 调大后内存暴涨。
解决:

  1. 简单方法:DataLoader 使用固定 target_shape 中心裁剪(如 §6.4),num_workers=8 + pin_memory=True,首次全量物化到本地 NVMe 缓存。
  2. 进阶方法:按 z 长度分桶(bucketing)组 batch;预处理阶段一次性完成重采样+定尺寸并另存 .pt/.npy,训练时零解压直读。
  3. SOTA 方法:滑动窗/切片采样训练(每迭代随机采样 z 窗口),配合梯度累积模拟大 batch;或采用官方 480×480×240 统一化后的内存映射(memmap)存储。
    参考:切片数统计(100-600,均值 304.7)

⚠️ 坑点 7:报告截断破坏 findings 完整性(分类:预处理陷阱)

问题:报告含 clinical information / technique / findings / impression 四节;为凑 token 上限只取 impression,或按字符数硬截断 findings,会丢掉所见清单,导致文本端监督信号残缺。
症状:报告生成模型输出「正常」但影像有明确异常;图文检索对常见所见召回率极低;CT-CHAT 式训练时 QA 对与截断文本对不上。
解决:

  1. 简单方法:按节结构解析(而非按字符截断),训练 CT-CLIP 对比目标时使用官方拼接策略——findings+impression。
  2. 进阶方法:超长报告做句子级摘要(保留含 18 类关键词的句子),关键字覆盖检查写入单元测试。
  3. SOTA 方法:以 18 类标签为锚的可控生成——文本端编码器输入 findings+impression 全文,解码端生成时用标签序列做先验约束(与官方 CT-VocabFine 思路一致)。
    参考:报告四节结构与官方拼接策略(ar5iv)

⚠️ 坑点 8:单中心 + 厂商分布偏倚被误读为模型能力(分类:偏倚陷阱)

问题:数据全部来自土耳其单中心,设备为 Philips 61.5% / Siemens 30.1% / PNMS 8.4%;人群 58.4% 男性、18-102 岁。在自有数据(不同国家、不同协议)上评测 CT-RATE 预训练模型时,性能下降可能来自协议差异而非模型能力,反之亦然。
症状:院内微调模型在本院验证极好但跨院失效;把外部 AUROC 下降全部归咎于「标签质量」;按厂商分层评估时发现 PNMS 子集表现异常。
解决:

  1. 简单方法:任何外部评测都报告按厂商/性别/年龄分层的分组指标。
  2. 进阶方法:微调时对厂商做域平衡采样,并用 RAD-ChestCT(3,630 体积)作为不重叠外部对照,量化内部→外部衰减。
  3. SOTA 方法:域适应/测试时归一化(TTN、test-time adaptation),并把「跨厂商协议迁移」作为独立实验维度设计(复现 CT-CLIP 内部 0.900 → 外部 0.874 的衰减分析思路)。
    参考:设备与人口统计分布(arXiv HTML v1)、外部验证数字

§6.6 数据增强

变换 安全性 说明
随机 z 轴平移 / 90° 面内旋转 ✅ 安全 胸部解剖允许;保持 HU 语义
随机窗宽窗位微调 ✅ 安全 模拟读片协议差异
亮度/对比度抖动(HU 域外) ⚠️ 谨慎 HU 是物理量,增强应在归一化前的 HU 空间做
左右翻转(L-R flip) ❌ 危险 心脏与肝脾方位破坏解剖一致性
x/y/z 各向异性弹性形变 ⚠️ 谨慎 大形变系数会破坏钙化等细微所见
强度反转 ❌ 危险 HU 语义(空气 -1000 / 骨 +1000)不可反转

在 HU 域(归一化之前)实施安全增强的参考实现:

import numpy as np

def ct_augment(vol_hu: np.ndarray, rng: np.random.Generator) -> np.ndarray:
    """输入/输出均为 HU 域体积,(z, y, x) 排列"""
    # 1) 随机 z 轴平移(±8 切片),边缘以空气填充
    dz = int(rng.integers(-8, 9))
    if dz:
        pad = [(max(dz, 0), max(-dz, 0)), (0, 0), (0, 0)]
        vol_hu = np.pad(vol_hu, pad, mode="constant", constant_values=-1000)
        vol_hu = vol_hu[max(-dz, 0): vol_hu.shape[0] - max(dz, 0) or None]
    # 2) 面内 90° 随机旋转(不破坏解剖方位)
    k = int(rng.integers(0, 4))
    vol_hu = np.rot90(vol_hu, k=k, axes=(1, 2))
    # 3) 随机窗宽窗位微调:先按窗位截断,再交给归一化
    ww = rng.uniform(1200, 1600)   # 纵隔窗附近
    wc = rng.uniform(40, 80)
    vol_hu = np.clip(vol_hu, wc - ww / 2, wc + ww / 2)
    return vol_hu.astype(np.float32)

注意顺序:增强在 HU 空间完成,之后才做 [-1, 1] 归一化;若管线已预先归一化存储,应回到 HU 域再做增强,或把窗宽窗位微调并入模型输入层。

§6.7 模型推荐

场景 推荐起点 理由
多异常分类 CT-CLIP 3D 编码器 + 线性头 官方基准 0.900 零样本 AUROC
报告生成 / VQA CT-CHAT 270 万 QA 对训练,官方对比优于 RadFM、CT2Rep、LLaVA-Med 等
3D 图文预训练研究 自实现 CLIP 式双塔(参考 CT-CLIP) 数据规模足以支撑从零预训练
快速消融 / 资源受限 预处理后 480³ 输入 + ResNet/MedNeXt 骨干 先跑通再扩大

§6.8 硬件需求

配置 最低 推荐
GPU 1×A100 40GB(480³ 输入,batch 2) 4-8×A100 80GB(多节点扩展)
CPU 32 核(NIfTI 解压瓶颈) 64 核 + 每卡 8-16 workers
内存 128 GB 256 GB
磁盘 2 TB NVMe(验证子集 + 缓存) 10 TB NVMe(全量 + 预处理副本)

§6.9 评估指标代码

import numpy as np
import torch
from sklearn.metrics import roc_auc_score

def multi_label_auroc(y_true: np.ndarray, y_prob: np.ndarray) -> dict:
    """18 类宏平均 AUROC(官方协议:检查级聚合后计算)"""
    per_class = {}
    for i, name in enumerate(LABELS):
        if y_true[:, i].sum() == 0 or y_true[:, i].sum() == len(y_true):
            continue  # 无正例(或全正例)类不参与宏平均
        per_class[name] = roc_auc_score(y_true[:, i], y_prob[:, i])
    macro = float(np.mean(list(per_class.values())))
    return {"macro_auroc": macro, **per_class}

@torch.no_grad()
def evaluate(model, loader, device):
    model.eval()
    ys, ps = [], []
    for batch in loader:
        logits = model(batch["image"].to(device))
        ys.append(batch["label"].numpy())
        ps.append(torch.sigmoid(logits).cpu().numpy())
    return multi_label_auroc(np.concatenate(ys), np.concatenate(ps))

§6.10 MLOps 笔记

  • 数据版本:把 HuggingFace revision(commit hash)记录进训练配置;仓库处于持续维护状态,静默更新会导致不可复现。
  • 缓存策略:预处理产物(重采样+定尺寸后)与原始数据分离存储,训练配置哈希作为缓存键。
  • 监控:监控每 batch 的正例率漂移(长尾类)与 z 长度分布,异常波动往往意味着划分文件版本不一致。
  • 可复现:固定 torch/monai/nibabel 版本;随机种子同时控制 DataLoader shuffle 与增强。
  • 合规留痕:保存 HuggingFace 条款接受记录的时间戳,满足 CC BY-NC-SA 4.0 与禁再分发条款的审计要求。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
单中心偏倚 全部数据来自土耳其一家三级中心 高 外部验证(RAD-ChestCT)+ 多中心微调
设备偏倚 Philips 61.5% / Siemens 30.1% / PNMS 8.4% 分布不均 中 分厂商分层评估、域平衡采样
性别偏倚 男性 58.4% 高于女性 中 分性别指标报告
入选偏倚 常规临床队列,住院与重症比例高于筛查人群 中 慎用于人群筛查场景结论外推
标签偏倚 弱标签继承报告书写者风格与遗漏习惯 高 噪声感知训练 + 抽样人工复核
语言转换偏倚 报告由土耳其语翻译为英文 低-中 NLP 任务先做拼写归一与术语校验

§7.2 标注质量

抽取器以 1,000 份人工标注报告校准;独立间接证据为 RadGenome-Chest CT 的句-区域对齐评估(准确率 94.56%),提示文本侧语义质量总体可靠。但两点保留:其一,弱标签的影像侧确认率未逐类公开;其二,「可疑/待排」类不确定表述在二值化时的处理策略未详尽披露。高利害应用前务必按坑点 3 做抽样复核。

§7.3 泛化性

场景 失效风险 证据
内部同分布(土耳其同中心) 低 CT-CLIP 内部 AUROC 0.900±0.005
跨队列(RAD-ChestCT 外部) 中 外部 AUROC 0.874±0.006,衰减约 2.6 个百分点
跨国家/跨协议(欧美亚其他中心) 中-高 协议、人群、语言均不同;需域适应
病灶级定位 高 无病灶级标注,监督信号缺失
增强 CT 场景 中-高 训练分布全部为非增强扫描

§7.4 伦理

数据按 HIPAA 标准脱敏(DICOM 头与报告去除直接标识、日期随机偏移),知情同意经伦理豁免。许可为 CC BY-NC-SA 4.0:非商业、需署名、相同方式共享,且明确禁止再分发原始数据——所有使用者必须从 HuggingFace 官方页自行接受条款获取。

§7.5 公平性

性别比例(女 41.6%)与年龄范围(18-102 岁)已披露,可支撑分性别/年龄段评估;种族与民族信息未系统披露,无法开展跨种族公平性审计。土尔其单中心属性意味着模型在其他人群上的公平性差异无法从数据集内部估计,必须引入外部队列。

§7.6 数据漂移

数据为回顾性冻结快照(采集期未披露),无持续入组;漂移风险主要在「使用侧」:目标场景的扫描协议演进(如光子计数 CT 普及)、报告模板换代都可能构成协议漂移。建议部署时监控输入 HU 分布与报告长度分布的漂移指标。

§7.7 DAIMS 数据集 AI 就绪度评估(24 项)

# 检查项 状态 说明
1 宽格式支持 ✅ 标签表 CSV 宽格式,每行一体积、18 列标签并列
2 唯一标识 ⚠️ 体积级 volume_name 唯一,但患者 ID 需从文件名解析,无独立患者元数据表
3 特殊字符处理 ✅ 报告为翻译后英文文本,无高危特殊字符
4 重复行检查 ✅ 重建级记录无重复行;重复语义(同检查双重建)已在文档明确
5 缺失值编码 ✅ 标签为完整 0/1 矩阵,无空值占位
6 标签标识清晰 ✅ 18 列以所见英文名命名,语义直观
7 罕见类分组 ⚠️ Hiatal hernia、Mosaic attenuation 等罕见类正例稀少,官方未提供分层策略
8 偏倚评估 ⚠️ 单中心与厂商偏倚可从披露数字推断,官方无专门偏倚声明字段
9 数据字典 ✅ 论文附录 + HuggingFace 卡片提供字段说明
10 信息性缺失解释 ⚠️ 0=未提及的弱标签语义需读者自行理解,官方未在数据卡显著位置声明
11 设备记录 ✅ 厂商与分辨率分布有量化披露
12 特征共线性 ⚠️ 18 类所见高度共现(如实变与胸腔积液),官方仅给边际分布,共现矩阵需自行计算
13 编码映射 ⚠️ 标签名在衍生数据集(RadGenome、DRR-RATE)间存在命名差异,需自行维护映射表
14 时间戳处理 ✅ 日期随机偏移,保留相对时序同时保护隐私
15 划分建议 ✅ 官方患者级 train/valid 划分直接可用
16 泄漏讨论 ⚠️ 官方划分按患者级正确执行,但数据卡未显式警告「按体积重切会导致泄漏」
17 标签分布 ✅ 论文提供 18 类分布可视化
18 测量偏倚 ⚠️ 常规临床协议异质(层厚 0.5-2.5 mm),未提供协议级元数据
19 外部验证建议 ✅ 官方随论文提供 RAD-ChestCT 外部验证协议与结果
20 版本记录 ⚠️ arXiv 论文 v1-v5 版本演进清晰,但 HF 数据仓库更新日志粒度较粗
21 预处理脚本 ✅ 预处理参数(0.75×0.75×1.5 mm / 480×480×240 / [-1,1])明确,训练代码开源
22 合规要求 ✅ HF 条款接受流程 + CC BY-NC-SA 4.0 + 禁再分发,边界清晰
23 多模态对齐 ✅ 体积-报告-标签一一对应,检查级/重建级归属关系明确
24 去标识化 ✅ HIPAA 脱敏 + 日期偏移 + 报告翻译,三重处理

DAIMS 评分:19.5 / 24(✅×15、⚠️×9、❌×0;⚠️ 计 0.5 分)

评分解读:CT-RATE 的工程基座(划分、格式、合规、多模态对齐、去标识化)达到一线水准,主要扣分集中在「弱标签语义透明度」(0=未提及、罕见类、共线性)与「患者级元数据显性化」两处——这些是弱监督路线数据集的共性问题,而非 CT-RATE 特有缺陷。

对你意味着什么:可以直接把官方划分与预处理参数纳入生产管线;但在建模前必须补三件事——(1) 从 volume_name 派生患者/检查索引表;(2) 自行计算 18 类共现矩阵与逐类正例率;(3) 按坑点 3 抽样估计标签噪声率。这三步大约消耗 1-2 个工程人日,能避免后续绝大多数返工。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
RAD-ChestCT 独立公开队列 CT-CLIP 零样本多异常检测 平均 AUROC 0.874±0.006 较内部 0.900±0.005 下降 2.6pp 跨队列泛化可行,衰减可控
RAD-ChestCT(微调变体) 同上 CT-LiPro/CT-VocabFine 微调后检测 最高约 0.947 较零样本提升 微调可部分补回域差距

§8 基准性能与生态

§8.1 排行榜:多异常检测与报告任务

排名 模型 性能 年份 关键技术 完整引用 代码
1 CT-LiPro / CT-VocabFine(微调变体) 平均 AUROC 约 0.947 2024 提示学习/词表微调 Hamamci IE et al., 2024, arXiv:2403.17834 (Nat. Biomed. Eng. 2025). DOI 10.1038/s41551-025-01599-y 作者 GitHub
2 CT-CLIP(零样本) 内部 AUROC 0.900±0.005 2024 3D 编码器-文本对比预训练 同上 同上
3 CT-CLIP(外部 RAD-ChestCT) AUROC 0.874±0.006 2024 同上,跨队列零样本 同上 同上
4 RadFM(对比基线) 低于 CT-CLIP/CT-CHAT(论文消融) 2023 通用 3D 医学基础模型 Wu C et al., 2023, arXiv:2308.07905 开源
5 CT-CHAT 报告生成等任务显著优于 RadFM、CT2Rep、LLaVA-Med、CXR-LLaVA 2024 3D 编码器 + LLM,270 万 QA 对微调 Hamamci IE et al., 2024, arXiv:2403.17834 作者 GitHub

注:排名基于官方论文报告数字,各数字对应不同评测协议(内部 vs 外部、零样本 vs 微调、生成 vs 分类),不可直接横向比较;RadFM 一行为官方消融中的对比基线,相对名次仅在该协议内成立。

§8.2 SOTA 总结与选型建议

多异常检测的当前最优来自官方微调变体(约 0.947),零样本场景下 CT-CLIP(0.900)仍是可复现的默认起点。报告生成/VQA 方向选 CT-CHAT 及其后续工作。若目标是「在自有数据上以最小成本达到可用」,推荐路径:CT-CLIP 编码器权重 → 冻结骨干 + 线性头基线 → 分层解冻微调 → 域适应。

§8.3 评测协议

  • 任务定义:18 类多标签分类,报告宏平均 AUROC(无正例/全正例类剔除)。
  • 数据:官方 train(20,000 患者)/ valid(1,304 患者)患者级划分;外部用 RAD-ChestCT 3,630 体积。
  • 预处理:0.75×0.75×1.5 mm 重采样、480×480×240 定尺寸、HU [-1,1] 归一化。
  • 重复实验:论文以多随机种子报告均值±标准差(±0.005 量级),复现时建议至少 3 seeds。

复现官方数字的逐步清单:

  1. 按官方 train/valid 患者级划分载入数据,禁止任何按体积或随机打乱的重划(见 §5)。
  2. 预处理严格对齐三参数:0.75×0.75×1.5 mm、480×480×240、HU [-1, 1](见 §6.3 代码)。
  3. 训练拼接文本用 findings + impression(官方选择,findings 信息量更大)。
  4. 分类任务报宏平均 AUROC,全负类列按协议剔除;评估代码见 §6.9。
  5. 外部泛化统一用 RAD-ChestCT 3,630 体积零样本评估,与内部数字分开报告。
  6. 至少 3 个随机种子取均值±标准差后再与 0.900(零样本)/ 0.947(微调)对照。
数据集 关系 差异
RadGenome-Chest CT 直接衍生 加 SAT 分割掩膜 + 约 66.5 万句级接地句 + 130 万+ 接地 VQA
DRR-RATE 直接衍生 CT-RATE 的 DRR 2D 投影(7.97 GB)
CTRATE-IR 直接衍生 解剖条件图像检索基准
CT-RATE-JPN 直接衍生 日语翻译版 + CT-BERT-JPN(JMIRx Med 2025)
MIMIC-CXR 平行模态 2D 胸片-报告配对的对应物
RAD-ChestCT 外部验证 3,630 体积,仅影像

§8.5 关键论文 Top 8

  1. Hamamci IE et al., 2024, arXiv:2403.17834(Nature Biomedical Engineering 2025, DOI 10.1038/s41551-025-01599-y)— CT-RATE 数据集与 CT-CLIP/CT-CHAT 基础模型原始论文。
  2. Hamamci IE et al., 2026, arXiv:2403.17834v5 — 更名后版本,重新定位为「3D CT 多模态数据集的通用基座」。
  3. Zhang Y et al., 2024 — RadGenome-Chest CT:区域级接地标注,句-区域对齐准确率 94.56%。
  4. Hou B et al., 2024, arXiv:2406.03688 — DRR-RATE:CT-RATE 的 2D 数字重建放射影像衍生集。
  5. Zhang Z et al., 2025 — CTRATE-IR:基于 CT-RATE 的解剖条件图像检索基准。
  6. CT-RATE-JPN 团队(东京大学), 2025, JMIRx Med 2025;1:e71137 — 日语翻译衍生数据集与 CT-BERT-JPN。
  7. CT-Bench 作者, 2026, arXiv:2602.14879 — 指出 CT-RATE 缺少切片级/病灶级标注并提出补充基准。
  8. MS-VLM 作者, 2024, arXiv:2412.13558 — 以 CT-RATE 为胸部 CT 标准评测集的多尺度视觉语言模型。

§8.6 社区活跃度

  • HuggingFace:官方仓库为 3D 医学多模态方向的默认引用源,衍生数据集(RadGenome、DRR-RATE、CTRATE-IR、ReportQA)均以 CT-RATE 为底座。
  • 引用增长:论文 2024-03 首发、2025 年登 Nature Biomedical Engineering,Google Scholar 引用截至 2026-09 达 100+,且衍生生态仍在扩张(CT-Bench 2026、ReportQA 2026)。
  • 维护状态:arXiv 论文持续迭代至 v5(2026-02-08),作者 GitHub 活跃;未见官方排行榜服务,基准以论文数字为准。

§8.7 生态快照

资源 类型 链接 推荐理由
CT-RATE 数据集页 官方数据 https://huggingface.co/datasets/ibrahimhamamci/CT-RATE 唯一官方分发渠道
CT-RATE 论文(v5) 官方论文 https://arxiv.org/abs/2403.17834v5 规模/协议/基准的第一来源
Nature BME 版论文 期刊版 https://doi.org/10.1038/s41551-025-01599-y 同行评审版方法描述
作者 GitHub 官方代码 https://github.com/ibrahimethemhamamci CT-CLIP/CT-CHAT 训练代码
RadGenome-Chest CT 衍生数据 见 主题综述 区域接地研究标配
DRR-RATE 衍生数据 https://huggingface.co/datasets/farrell236/DRR-RATE 2D 快速实验(7.97 GB)

§9 相关资源与引用

§9.1 官方资源

  1. HuggingFace 数据集页(唯一官方获取渠道,需接受条款):https://huggingface.co/datasets/ibrahimhamamci/CT-RATE
  2. arXiv 论文 v1(2024-03-26):https://arxiv.org/abs/2403.17834
  3. arXiv 论文 v5(2026-02-08 更名版):https://arxiv.org/abs/2403.17834v5
  4. Nature Biomedical Engineering 期刊版:https://doi.org/10.1038/s41551-025-01599-y
  5. 作者 GitHub(CT-CLIP/CT-CHAT 代码):https://github.com/ibrahimethemhamamci
  6. 衍生集 DRR-RATE:https://huggingface.co/datasets/farrell236/DRR-RATE
  7. 衍生集 ReportQA:https://huggingface.co/datasets/gottoknow/ReportQA

§9.2 BibTeX 引用

@article{hamamci2024ctrate,
  title   = {A foundation model utilizing chest {CT} volumes and radiology reports
             for supervised-level zero-shot detection of abnormalities},
  author  = {Hamamci, Ibrahim Ethem and Er, Seval and Almas, Furkan and
             Gundogar, Ahmet Gamal and Yilmaz, Berna and Ozyoruk, Kemal Baris
             and Durlanik, Anul and others},
  journal = {arXiv preprint arXiv:2403.17834},
  year    = {2024},
  note    = {Published in Nature Biomedical Engineering (2025),
             DOI: 10.1038/s41551-025-01599-y}
}

@article{hamamci2025ctrate_nbe,
  title   = {Generalist foundation models from a multimodal dataset for
             {3D} computed tomography},
  author  = {Hamamci, Ibrahim Ethem and others},
  journal = {Nature Biomedical Engineering},
  year    = {2025},
  doi     = {10.1038/s41551-025-01599-y}
}

§9.3 引用指南

  • 使用数据集本身:引用第 1 条(arXiv v1)或第 2 条(期刊版);两者均可,期刊版更正式。
  • 使用 CT-CLIP/CT-CHAT 模型权重:务必引用第 1 条并在方法节注明版本号与 revision。
  • 使用衍生资源:RadGenome-Chest CT、DRR-RATE、CT-RATE-JPN 等需同时引用其各自论文与 CT-RATE 原始论文。

§10 AI 使用声明卡

§10.1 AI 模型列表

项目 内容
撰写模型 CodeBuddy(腾讯云)
模型版本 fast-model
生成时间 2026-09
检索工具 WebSearch(6 次)

§10.2 AI 参与范围

AI 参与内容起草、检索整理与结构组织;人工负责事实核验策略制定、医学与工程判断、最终审核。所有关键数字均要求具备可点击来源,未经核实的字段一律省略而非估算。

§10.3 输入来源

  1. Hamamci IE et al., 2024, arXiv:2403.17834 v1 — https://arxiv.org/abs/2403.17834
  2. Hamamci IE et al., arXiv:2403.17834 HTML v3 — https://arxiv.org/html/2403.17834v3
  3. Hamamci IE et al., arXiv:2403.17834 v5 — https://arxiv.org/abs/2403.17834v5
  4. Hamamci IE et al., 2025, Nature Biomedical Engineering — https://doi.org/10.1038/s41551-025-01599-y
  5. CT-RATE HuggingFace 官方数据页 — https://huggingface.co/datasets/ibrahimhamamci/CT-RATE
  6. EmergentMind CT-RATE 主题页(规模/划分/预处理数字) — https://www.emergentmind.com/topics/ct-rate-dataset
  7. ar5iv 论文全文(标注协议) — https://ar5iv.arxiv.org/html/2403.17834
  8. CS231N 课程论文(18 类标签列表转引) — https://cs231n.stanford.edu/papers/text_file_840274985-CS231N_Final_Project_Report_EvanMaestri.pdf
  9. Hou B et al., 2024, DRR-RATE — https://huggingface.co/datasets/farrell236/DRR-RATE
  10. CT-Bench, 2026, arXiv:2602.14879 — https://arxiv.org/abs/2602.14879
  11. MS-VLM, 2024, arXiv:2412.13558 — https://arxiv.org/abs/2412.13558
  12. ReportQA 衍生数据页 — https://huggingface.co/datasets/gottoknow/ReportQA
  13. CT-RATE-JPN, 2025, JMIRx Med 2025;1:e71137 — https://xmed.jmir.org/2025/1/e71137
  14. 作者 GitHub 主页(官方代码) — https://github.com/ibrahimethemhamamci

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
§1 概览与版本时间轴 千方病案医学编辑部 对照 arXiv v1/v5 与 Nature BME DOI 逐项核对 ✅ 已通过
§2 医学背景(ICD-11/SNOMED 映射) 千方病案医学编辑部 编码表交叉审核,采用代表性子集策略 ✅ 已验证
§3 数据集规格(规模/设备/标注协议) 千方病案医学编辑部 对照 FACTS.md 14 条来源逐数核对 ✅ 已通过
§4 数据结构与 DAIMS 字段字典 千方病案医学编辑部 目录树与仓库结构一致性检查 ✅ 已验证
§5 划分与泄漏策略 千方病案医学编辑部 官方划分数字(20,000/1,304)核对 ✅ 已通过
§6 AI 就绪指南与 8 坑点 千方病案医学编辑部 代码本地可运行性检查与坑点溯源 ✅ 已验证
§7 DAIMS 24 项与外部验证矩阵 千方病案医学编辑部 24 项逐条对照官方披露 ✅ 已通过
§8-§9 基准、生态与引用 千方病案医学编辑部 排行榜数字与 DOI 逐条核对 ✅ 已验证

§10.5 AI 生成章节标注

全部章节(§0-§10)由 AI 起草,其中:§1.0 速览、§1.2 战略价值、§6 坑点分析、§7.7 DAIMS 解读为 AI 分析性内容,其余为事实整理性内容。分析性结论均标注了证据来源或明确限定语。

§10.6 最后一次人工审核

最后一次人工审核日期:2026-09-05(与 §0 审核日期一致)

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



相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • nsclc-radiomics — 共享标签:医学影像 / CT / 肺癌
  • rider-lung-ct — 共享标签:医学影像 / CT / 肺癌
  • rexgrounding-ct — 共享标签:医学影像 / CT / 影像-文本对齐 / 肺癌
  • nsclc-radiogenomics — 共享标签:医学影像 / CT / 肺癌
  • covid-ct — 共享标签:医学影像 / CT / 图像分类
  • sar-covid — 共享标签:医学影像 / CT / 图像分类
  • jsrt — 共享标签:医学影像 / CT / 肺癌
  • brax — 共享标签:医学影像 / CT / 图像分类
  • luna16 — 共享标签:医学影像 / CT / 肺癌
  • lung-pet-ct-dx — 共享标签:医学影像 / CT / 肺癌

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集