RadImageNet — 放射学迁移学习基座数据集 AI-Ready Wikipedia

135 万标注图像 · 165 类 · CT/MRI/US 三模态医学迁移学习基座

来源 RadImageNet(西奈山伊坎医学院联合团队 / RadImageNet LLC) url: https://www.radimagenet.com/发布时间: 2026-09-18最后更新: 2026-09-25 阅读 27
RadImageNet — 放射学迁移学习基座数据集 AI-Ready Wikipedia

信息速览

数据集名称RadImageNet — 放射学迁移学习基座数据集 AI-Ready Wikipedia
数据类型1.35M 标注 key image,131,872 名患者,165 类病理标签,11 个解剖区,CT/MRI/US 三模态,申请审核获取
规模131,872 名患者(公开研究版)
接入方式RadImageNet(西奈山伊坎医学院联合团队 / RadImageNet LLC) url: https://www.radimagenet.com/
AI 就绪度

RadImageNet — 医学影像迁移学习基座 AI-Ready Wikipedia

INFOBOX

数据集名称 RadImageNet
英文全称 RadImageNet: An Open Radiologic Deep Learning Research Dataset for Effective Transfer Learning
别名/简称 RIN、RadImageNet 1.35M 研究版
疾病分类 肌肉骨骼、神经、肿瘤、胃肠、内分泌、肺部等放射学疾病谱(165 类按 ICD-10 分组;ICD-11 示例:CA40 肺炎 / RA01 COVID-19 / 8B11 急性脑梗死 / 2D50 甲状腺恶性肿瘤)
SNOMED CT 233604007 Pneumonia / 840539006 COVID-19 / 1386000 Intracranial hemorrhage / 22298006 Acute myocardial infarction(代表性示例,详见 §2.1b)
数据模态 CT、MRI、超声(US)key image(2D)
AI 任务类型 医学图像预训练、迁移学习、图像分类(165 类)、病灶定位(Grad-CAM)、特征提取
样本总数 135 万标注 key image / 131,872 名患者 / 165 类 / 11 个解剖区(官网商业库口径为 500 万+图像 / 50 万患者)
数据大小 官方未公布图像包总体积;4 份预训练权重各约 500 MB
数据格式 图像文件(key image)+ 注释/划分 CSV;TensorFlow .h5 与 PyTorch 预训练权重
许可证 RadImageNet Research Use Agreement(非商业研究);GitHub 代码 MIT
访问级别 申请审核(官网注册申请并签署 Research Use Agreement)
DUO 标签 HMB, NPUNCU
语言 英文(标签与注释)
首发日期 2021-09-07(代码与模型开源)/ 2022-07-27(论文发表)
最后更新 2023-10-12(GitHub 仓库最后提交)
发布机构 西奈山伊坎医学院(Icahn School of Medicine at Mount Sinai)联合多机构团队
官方主页 https://www.radimagenet.com/
下载地址 https://www.radimagenet.com/(申请获取);权重与划分 CSV 经 GitHub README 指向的 Google Drive
DOI 10.1148/ryai.210315
引用次数 326+(ResearchGate,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 提供 165 类标注、四种官方预训练权重与 8 个下游任务完整代码;扣分项:全库无官方患者级划分文件、key image 已脱离 DICOM 元数据、需申请获取
页面状态 published

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

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

数据工程审核者:千方病案医学编辑部交叉审核:§4 数据结构与字段字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点(含官方代码交叉验证 bug 的验证与修复方案)。

审核日期:2026-09-05

审核方式:交叉审核

利益冲突声明:千方病案医数集与西奈山伊坎医学院、RSNA、RadImageNet LLC 无任何商业利益关联。本页面不销售 RadImageNet 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构的任何形式资助。

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

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

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。RadImageNet 要求用户在官网注册申请并签署 Research Use Agreement,仅限个人非商业(学术)研究用途,禁止再分发与再识别。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 30 秒速览

这是什么? RadImageNet 是由西奈山伊坎医学院(Icahn School of Medicine at Mount Sinai)牵头、发表于 RSNA 期刊 Radiology: Artificial Intelligence 的开放放射学图像数据库。它的公开研究版包含 135 万张带病理标注的 CT、MRI 和超声 key image,来自 131,872 名患者,覆盖 11 个解剖区、165 个病理标签(官方 GitHub)。

为什么重要? 过去十几年,几乎所有医学影像 AI 都从 ImageNet——一个由猫、狗和汽车照片组成的自然图像库——做迁移学习起步。RadImageNet 团队用 135 万张真实放射图像从零预训练了 ResNet50、DenseNet121、InceptionV3、Inception-ResNet-v2 四种 CNN,并在 8 个公开下游任务上证明:医学域内预训练全面优于 ImageNet,小样本任务上 AUC 最高提升 9.4%。这是对「为什么还用猫的图像帮助 AI 读 CT 扫描」这一著名之问的正面回答。

我能用它做什么? 以官方权重为起点做医学图像分类的迁移学习;在 165 类标注上预训练自己的模型;复现论文的 24 场景微调对比协议;做 Grad-CAM 可解释性研究;或作为教学数据集。注意:数据本身需在官网申请获取且仅限非商业研究,商业使用须另行授权。

§1.1 摘要

RadImageNet 的构建路径是「临床工作流回溯」而非「新标注工程」:2005 年 1 月至 2020 年 1 月间,一家门诊影像机构的放射科医师在日常判读中为每项研究挑选 key image(轴位、矢状位或冠状位、任意序列,唯一要求是清晰呈现主要病理发现),标签直接取自原始报告判读,165 个类别按 ICD-10 与影像特征分组,正常研究则通过 PACS 报告 SQL 检索加医师复核确定。由此形成 135 万张图像、131,872 名患者、165 类、11 个解剖区的数据库(论文)。团队随后以随机初始化从头训练四种 CNN(输入 224×224,按 75%/10%/15% 划分且同一患者不跨集合),并将权重、训练代码与 8 个下游任务的 24 场景微调协议全部开源(GitHub,MIT 代码许可)。这套「域内预训练 + 标准化对比协议」的组合,使 RadImageNet 成为医学影像迁移学习研究的事实基座之一。

§1.2 战略价值分析

范式维度:ImageNet 中心主义的第一个大规模反面证据。 在 RadImageNet 之前,「医学影像应当用 ImageNet 权重初始化」只是缺乏系统对照的社区惯性;此前仅有小规模或灰度化 ImageNet 等探索。RadImageNet 以 135 万图像的预训练规模、四种架构、八个任务、每个任务 24 种微调场景的全面对照,第一次给出了统计稳健(P < .001,DeLong 检验)的正面结论,且额外用 Grad-CAM Dice(甲状腺 28.8% vs 17.5%)证明域内预训练带来更好的可解释性。RSNA 同期配发了专题评论(Cadrin-Chênevert, 2022, Radiology: Artificial Intelligence, e220126),足见其范式意义。

工程维度:开箱即用的医学预训练权重。 对绝大多数医疗 AI 团队而言,从零预训练既无数据也无算力。RadImageNet 直接分发 TensorFlow 与 PyTorch 双框架的四种骨干权重(各约 500 MB),并附完整训练与微调代码、五折划分 CSV。这意味着一个三步替换就能把既有工程里的 weights='imagenet' 换成医学权重——这是它区别于大多数「只有数据没有模型」数据集的核心工程价值。对使用 X光影像、CT 或 MRI 之外模态(如超声、内镜)的任务,官方实验也显示了正向迁移(论文),扩大了权重的适用面。

方法论维度:一次公开纠错胜过十次完美叙事。 官方五折代码 bug 由外部用户发现、经期刊纠错信完整公开(发现、修复、影响范围三段俱全),作者还在回应信中明确「哪些结论受影响、哪些不受」。对整个领域而言,这份材料的价值超出 bug 本身:它是一份可教学的「交叉验证工程清单」,也是评估其他数据集论文时「代码可审计性」的参照案例。千方编辑部将其完整写入 §6.5 坑点 2,供使用者直接规避。

§1.3 横向对比

数据集 规模 模态 标注 核心差异化
RadImageNet 135 万图像 / 131,872 患者 CT/MRI/US 165 类病理标签(报告派生) 医学域内预训练权重 + 8 任务对比协议
ImageNet 1400 万图像 / 2.2 万类 自然照片 人工众包类目 自然图像通用预训练事实标准,非医学
ChestX-ray14 112,120 张胸片 / 30,805 患者 X 光 14 类(NLP 挖掘) 单模态胸部;无预训练权重
类(NLP 挖掘) 单模态胸部;无预训练权重
CheXpert 224,316 张胸片 / 65,240 患者 X 224,316 张胸片 / 65,240 患者 X 光
+ 不确定性标签 胸片专精;不确定标签体系独特
MIMIC-CXR 377,110 张胸片 / 65,379 患者 X 377,110 张胸片 / 65,379 患者 X 光
+ 14 类标签 报告文本丰富,可做影像-文本
fastMRI 150 万切片 MRI 原始 k 空间 重

对比要点:RadImageNet 是表内唯一「多模态 + 大规模病理标注 + 官方预训练权重」三者齐备的数据集;其模态广度(含 US)与标签细粒度(165 类)是 chest X-ray 系数据集不具备的,而单张图像的临床确认深度又不及专病数据集。

§1.4 版本时间轴

时间 事件 说明
2021-05 预印本上线 标题与规模口径(500 万图像)与正式版不同,已被正式版取代
2021-09-07 代码与预训练权重开源 GitHub 仓库建立(作者回应信)
2022-07-27 正式论文发表 Radiology: Artificial Intelligence 4(5):e210315,规模口径修订为 135 万图像
2022-10-03 五折交叉验证代码修复 用户经 issue #5 报告权重未重置 bug 后更新(见 §6.5 坑点 2)
2023-10-12 仓库最后提交 更新 PyTorch 示例 Notebook
2025-12 RadImageNet-VQA 衍生发布 基于 CT/MRI 子集的 75 万图像视觉问答数据集(Hugging Face)

时间轴解读:这是一个「论文先行、数据跟随」的典型发布节奏——2021 年先以预印本与开源代码建立影响,2022 年完成同行评审并同步修订规模口径,此后进入稳定维护。使用者应把 2022-07(论文定稿)视为学术引用基准点,把 2022-10-03(代码修复)视为复现实验的最低版本线,把 2023-10(最后提交)视为官方维护的实际终点。

§1.5 典型应用场景

  1. 医学图像分类的迁移学习基座:用官方 ResNet50/DenseNet121/InceptionV3/IRV2 权重替换 ImageNet 初始化,在小样本医疗任务上获得显著起点增益(小数据集 AUC +4.0% 至 +9.4%)。
  2. 域内预训练研究:在 165 类、135 万图像上继续预训练或设计自监督目标,构建更强的医学骨干。
  3. 可解释性研究:论文证明了域内预训练显著改善 Grad-CAM 病灶定位(Dice +11.3 个百分点),是可解释性方法的天然试验场。
  4. 长尾与类不平衡方法论研究:165 类频率高度偏斜,适合做长尾识别、少样本类泛化方法研究。
  5. 教学与复现训练:官方提供 8 个任务、24 场景的完整微调代码,是讲授「严谨的迁移学习评测」的理想案例(含一次著名的官方纠错事件,见坑点 2)。

§2 医学背景

§2.1 ICD-11 编码映射

RadImageNet 的 165 类标签按 ICD-10 与影像特征分组(论文)。下表给出代表性标签与 ICD-11 的对应关系(映射为千方编辑部整理,仅供检索导航,非数据集自带):

代表性标签 ICD-11 编码 ICD-11 中文名 备注
Brain acute infarct(脑急性梗死) 8B11 急性脑梗死 头颅 CT 任务基础类
Pneumonia(肺炎) CA40 肺炎 胸部 CT/胸片迁移任务
COVID-19 / SARS-CoV-2(新冠肺炎) RA01 COVID-19 官方下游任务之一
Intracranial hemorrhage(颅内出血) 8B01 非创伤性脑内出血 头颅 CT 下游任务
Thyroid nodule / thyroid malignancy(甲状腺结节/恶性) 2D50 甲状腺恶性肿瘤 甲状腺 US 下游任务相关
Breast mass / breast malignancy(乳腺肿块/恶性) 2E60 乳腺恶性肿瘤 乳腺 US 下游任务相关
ACL tear(前交叉韧带撕裂) NC40.3 膝关节韧带损伤 官方 MRI 下游任务(编码属膝关节损伤章)
Meniscus tear(半月板撕裂) NC40.5 膝关节半月板损伤 官方 MRI 下游任务

§2.1b SNOMED CT 映射

标签概念 SNOMED CT 英文术语 说明
肺炎 233604007 Pneumonia (disorder) 胸部影像核心概念
COVID-19 840539006 Disease caused by SARS-CoV-2 精确到病原
颅内出血 1386000 Intracranial hemorrhage 头颅 CT 急症
急性心肌梗死 22298006 Acute myocardial infarction 心脏相关影像标签
肺栓塞 59282003 Pulmonary embolism CTA 常见标签概念
骨折 125605004 Fracture of bone 肌肉骨骼影像大类

§2.2 疾病简介与流行病学

RadImageNet 覆盖六大疾病域(论文):

疾病域 代表性标签(预印本图示与论文披露) 主要模态 主要解剖区
肌肉骨骼 ACL 撕裂、半月板撕裂、踝足关节内肿块、髋部软组织水肿、肩部钙化性肌腱炎 MRI 膝、踝、足、髋、肩
神经 脑急性梗死、颅内出血 MRI / CT 脑
肿瘤 各器官占位与恶性病变(甲状腺恶性、乳腺恶性等) CT / MRI / US 多部位
胃肠/腹部 胰腺与肝脏病变、腹盆腔异常 CT / MRI / US 腹部、盆腔
内分泌 甲状腺结节、正常卵巢/胰腺对照类 US 甲状腺、盆腔
肺部 肺支气管扩张、肺实质破坏、肺炎、COVID-19 相关表现 CT 胸部

这些疾病多为门诊影像的常见指征:膝关节运动损伤在活跃人群中高发;甲状腺结节在成人中的检出率随影像普及显著上升,是内分泌外科最常见的会诊原因之一;肺炎与脑卒中则是全球范围内致死致残的主要疾病;颅内出血属于时间敏感型急症,影像快速分诊价值极高。

需要强调的是,本数据集的构成比例反映的是一家门诊影像机构的检查流构成,而非人群疾病流行率——门诊转诊路径(谁会被安排做 MRI、做哪个部位)本身就是一层选择机制,用它反推流行病学结论会引入选择偏倚(详见 §7.1)。同样地,「正常卵巢」「正常胰腺」这类正常对照类的存在,说明标注体系在设计时有意为二分类与异常检测任务保留了阴性样本,但阴性样本的确认深度(报告检索+单人复核)低于阳性标签(判读医师主动选取),两类标签的置信水平不对称,建模时应区别对待。

§2.3 临床任务定义

数据集天然支持的临床任务是诊断分类与病灶定位,可分为四个层次(论文):

层次 任务形态 官方支撑 典型产出
L1 预训练 165 类放射图像分类 官方四权重(224×224,75/10/15) 通用医学表征骨干
L2 二分类诊断 ACL/半月板/出血/肺炎等检测 8 个下游任务 + 划分 CSV 诊断辅助模型
L3 病灶定位 Grad-CAM 类激活图 官方 Dice 评估协议 可解释性证据
L4 跨模态迁移 预训练 → 胸片等未覆盖模态 官方肺炎/COVID 任务 迁移能力评估

筛查、分级、预后等任务在数据集层面没有被直接标注支撑,需要自行组织标签。此外,官方在论文中特别强调的「可解释性增益」(Grad-CAM Dice 提升幅度大于 AUC 提升幅度)提示:在需要向临床医生展示热图的场景里,域内预训练的价值比纯指标对比所显示的更大。

§2.4 患者人群

维度 描述
来源机构 美国纽约都会区一家门诊影像设施(outpatient radiology facility;论文致谢提及 East River Medical Imaging)
采集时间 2005 年 1 月至 2020 年 1 月
规模 131,872 名患者,135 万张 key image,其中正常研究 8,528 项(263,039 张图像)
就医类型 门诊为主,不覆盖住院与急诊人群
年龄/性别/种族构成 未随公开研究版披露
检查类型 CT(胸/腹/盆)、MRI(踝/足/膝/髋/肩/脑/脊柱/腹/盆)、US(腹/盆/甲状腺)

人群理解的三个要点:其一,门诊检查流意味着「有检查指征的人群」,健康普查结论不可外推;其二,正常研究占全库约两成(263,039/1,350,000),为异常检测任务提供了可观的阴性池,但其「正常」语义是无临床显著异常而非绝对健康(§3.5);其三,单人可贡献多项检查与多张图像,样本量按患者计(131,872)与按图像计(135 万)相差一个数量级,写论文时必须明确口径。

§2.5 临床价值

RadImageNet 本身不直接产生临床决策工具,但它改变的是上游供给侧:

价值层次 受益方 机制
研发门槛下降 小医院/小团队 数千张标注即可获得过去数十万级标注才有的分类性能起点
标注经济学 标注团队 弱监督预训练减少逐图精标需求
可解释性审查 临床与监管 Grad-CAM 定位质量提升,热图审查成本下降
评测科学 方法研究者 提供「预训练来源」消融的标准化参照

官方证据链显示,这种提升在标注昂贵的场景(超声、MRI 小样本任务)上最为显著;Grad-CAM 定位质量的改善则意味着模型热图更接近真实病灶,可解释性审查成本下降。对医疗 AI 的监管科学而言,它还提供了一个可复现的「预训练来源」消融基准——任何新方法都可以在同一协议下回答「你的改进是否来自更好的初始化」。

§2.6 金标准参考

维度 RadImageNet 的做法
标签划分 165 类病理标签,按 ICD-10 与影像特征分组
标注方式 回顾性提取自原始临床判读(report-derived),非独立双盲标注
标注者 每日判读医师选取 key image 并赋予判读标签;正常研究经 PACS SQL 检索后由一名委员会认证放射科医师复核
标注者资质 20 名委员会认证、专科培训后(fellowship-trained)放射科医师,专科后经验 1-40 年
性质 真实世界弱监督金标准:单标签、报告派生,适合表征学习;做严格诊断声明需自行复核

§3 数据集规格

§3.0 版本抉择矩阵

RadImageNet 存在「官网商业库」与「论文研究版」两套口径,选错版本是最常见的起步错误:

你的需求 推荐版本 获取方式 理由
复现论文/学术迁移学习研究 公开研究版(135 万图像) 官网申请 + Research Use Agreement 与文献数字可比,附官方权重与代码
只需要医学预训练权重 官方 4 种 CNN 权重 GitHub README 指向的 Google Drive,免申请 即插即用,MIT 代码生态
商业产品开发 官网商业库(500 万+图像、含 PET、DICOM tags) 官网商业授权 研究版协议禁止商用,必须另签
CT/MRI 视觉问答研究 RadImageNet-VQA 衍生集 Hugging Face 接受协议后下载 75 万图像、750 万 QA 样本
教学/快速原型 预训练权重 + 8 个下游公开数据集 GitHub 各任务目录 无需等待数据集申请通过

§3.1 模态详情

模态 覆盖解剖区 标签密度特征 key image 特点 官方下游任务
CT 胸部、腹部、盆腔 肺部与腹盆病变标签;急症标签(出血等) 轴位为主,可含矢/冠位重建 SARS-CoV-2、COVID-19、颅内出血
MRI 踝、足、膝、髋、肩、脑、脊柱、腹部、盆腔(9 区) 肌肉骨骼标签最密集;神经标签(脑梗死等) 多序列任选,轴/矢/冠皆可 ACL 撕裂、半月板撕裂
US 腹部、盆腔、甲状腺 内分泌与妇科标签(甲状腺结节、正常卵巢等) 静态帧,灰度扇形视野 甲状腺结节恶性预测、乳腺病变分类(经迁移)

三模态均为 2D key image:每张图像对应一次检查中被判读医师认定为「清晰呈现主要病理发现」的单帧(论文)。值得注意的是,乳腺 US 并不在采集解剖区内(US 仅腹/盆/甲状腺),官方乳腺任务是「预训练于 RadImageNet、微调于外部乳腺 US 数据集」的纯迁移实验——这恰恰是「域内预训练对未覆盖解剖区依然有效」的证据,选模态与选解剖区时可利用这一结论外推。

§3.2 按子集样本数

正式论文未随文公布分模态图像计数(细节在补充材料图/表中)。以下为可核查的量化锚点:

子集 数量 来源性质
全库图像 1,350,000(135 万) 正式论文
患者数 131,872 正式论文
正常研究 8,528 项 / 263,039 张图像 正式论文
CT 图像(预印本口径) 356,525 预印本图表,正式版未随文给出,仅供量级参考
MRI 图像(预印本口径) 672,676 同上
US 图像(预印本口径) 389,885 同上
CT/MRI 子集(VQA 衍生口径) 约 750,000 张、8 解剖区、97 类 RadImageNet-VQA
标签数 165 类 官方 GitHub

§3.3 数据格式

组成 格式 说明
图像 key image 图像文件 经申请分发;社区通行做法为按解剖区组织目录、CSV 记录文件路径
注释表 CSV 图像 ID、模态、解剖区、标签等字段(以实际分发包表头为准,见 §4.1)
划分表 CSV 官方下游任务五折 train/val/test 划分(Google Drive)
预训练权重 TensorFlow .h5 + PyTorch 权重 不含分类顶层(notop),文件名形如 RadImageNet-ResNet50-notop.h5
训练代码 Python(TensorFlow/Keras 脚本与 PyTorch Notebook) MIT 许可;含 8 个任务目录与 util 工具目录

权重文件与加载参数的对应关系(TensorFlow/Keras 侧,取自官方 acl_train.py):

权重文件 加载调用 顶层处理
RadImageNet-IRV2-notop.h5 InceptionResNetV2(weights=路径, include_top=False, pooling=‘avg’) 无顶层,GAP 池化
RadImageNet-ResNet50-notop.h5 ResNet50(weights=路径, include_top=False, pooling=‘avg’) 同上
RadImageNet-DenseNet121-notop.h5 DenseNet121(weights=路径, include_top=False, pooling=‘avg’) 同上
RadImageNet-InceptionV3-notop.h5 InceptionV3(weights=路径, include_top=False, pooling=‘avg’) 同上

§3.4 存储需求

项目 体积估计 依据
图像包(135 万张 key image) 数十 GB 量级 官方未公布,申请时向官方确认;按 2D 图像平均体积估算
注释/划分 CSV 可忽略(MB 级) 文本表格
预训练权重 每份约 500 MB,4 份约 2 GB 仓库文档
训练缓存(特征库) 视规模,10-50 GB 冻结骨干提特征后的 npz/hdf5 缓存
建议总预留 100 GB 含解压临时空间与训练产物

部署建议:图像目录放本地 NVMe,权重与 CSV 可走对象存储;训练容器内挂载只读数据卷,避免多任务重复解压。

§3.5 标注方式

标注属于回顾性弱监督(论文),其生产流水线可分解为五步:

  1. 日常判读选图:判读医师在每天的临床判读中,为每项检查挑选 key image(轴/矢/冠位、任意序列,唯一要求是清晰呈现主要病理发现)——选图动作与判读动作合一,不产生额外标注负担。
  2. 标签转录:原始报告判读中的病理结论回顾性提取为标签;每张 key image 分配一个病理标签(单标签)。
  3. 类目归组:165 个类别按 ICD-10 与影像特征分组形成受控词表。
  4. 正常对照生成:PACS 报告 impression 的 SQL 检索(含 normal、unremarkable)初筛 → 一名委员会认证放射科医师复核 → 排除「异常但无临床意义」的检查。
  5. ROI 标记:判读医师在主病灶上创建 ROI 定位框;论文的分类与分割对比实验未使用该 ROI,但它是潜在定位监督信号。

因此每张图像的标签成本接近于零,代价是标签置信度受制于原始判读质量与单标签约束——这是理解本数据集一切标签行为(噪声、长尾、阴性语义)的钥匙。

§3.6 标注者资质与一致性

判读与选图由 20 名委员会认证、专科培训后放射科医师完成,专科后经验 1 至 40 年(论文)。论文未报告标注者间一致性指标(如 Cohen kappa)——这是报告派生标注的固有形态:标签的「真值」是原始临床判读本身。使用者应将其理解为「与临床判读一致的弱监督标签」,而非独立双盲金标准。

§3.7 采集周期

2005 年 1 月至 2020 年 1 月,跨度 15 年(论文)。设备更替与扫描协议演化均沉淀在时间轴内,有助于学到对设备差异鲁棒的表征,但也意味着时间相关分布漂移真实存在(见 §7.6)。对使用者的两面性:一方面,长周期让模型见过多种设备风格,预训练权重的「设备不变性」优于短期单设备数据集;另一方面,不含 2020 年后的新型扫描协议与 AI 时代的工作流变化,时效性边界明确。

§3.8 地域覆盖

单机构:美国纽约都会区门诊影像设施。无多中心数据;地域、人群与付费类型(门诊自费/商业保险为主)单一,是泛化性讨论的核心约束(§7.1、§7.3)。国际使用者的常见误解是「美国数据=人群多样」:都会区门诊人群的年龄与检查谱有其特殊性,儿科与老年极高龄段覆盖未知,跨人群部署必须自行验证。

§3.9 设备规格

论文与公开材料未披露扫描设备厂商、型号与场强分布。Commercial 库宣传口径称图像带 DICOM tags,但公开研究版分发的是提取后的 key image,设备元数据不随包提供(官网)。这意味着:设备相关的域自适应方法(按厂商分组做风格归一)不可行;对设备敏感的任务应在目标设备数据上重新校准;学术引用时不要写「多设备多厂商」之类无据表述。

§3.10 深度溯源链

层级 载体 可核查内容
学术发表 Radiology: Artificial Intelligence e210315(DOI 10.1148/ryai.210315,CC BY 4.0) 构建协议、对照实验、局限性
期刊纠错 Tavolara 信 + 作者回应,e220253 交叉验证代码 bug 与修复时间线
代码仓库 GitHub BMEII-AI/RadImageNet(MIT) 权重、微调代码、划分 CSV、修复记录
数据分发 radimagenet.com 申请入口、商业授权、商业库口径
衍生生态 RadImageNet-VQA CT/MRI 子集的 VQA 化(750 万样本)

§4 数据结构

§4.0 目录树

以下为申请获批后推荐的解压与工作区布局(目录命名以实际分发包为准,此处为社区通行组织方式):

workspace/
├── data/
│   └── radimagenet/
│       ├── RadImageNet-Annotations.csv     # 注释表:一图一行的标注记录
│       ├── images/                         # key image 图像文件
│       │   ├── brain/                      # 按解剖区组织(brain/shoulder/knee/...)
│       │   ├── shoulder/
│       │   ├── knee/
│       │   ├── abdomen/
│       │   ├── thyroid/
│       │   └── ...
│       └── splits/                         # 官方下游任务划分(Google Drive 下载)
│           ├── acl/
│           │   ├── train_fold1.csv         # 列:filename, acl_label
│           │   ├── val_fold1.csv
│           │   └── ...
│           ├── thyroid/
│           ├── breast/
│           └── meniscus/
├── models/                                 # 预训练权重
│   ├── RadImageNet-ResNet50-notop.h5
│   ├── RadImageNet-DenseNet121-notop.h5
│   ├── RadImageNet-InceptionV3-notop.h5
│   └── RadImageNet-IRV2-notop.h5
└── src/
    ├── preprocess.py
    ├── dataset.py
    └── train.py

data_root 拼接关系:注释表中每行的图像路径字段相对 data/radimagenet/ 解析;下游划分 CSV 的 filename 列相对对应任务目录解析(与官方 acl_train.py 的 dataframe/ + images/ 双目录约定一致)。

§4.1 DAIMS 字段字典

RadImageNet 公开版的核心逻辑数据单元是「图像级标注记录」。下表按 DAIMS 八列给出字段字典(字段名以实际分发包表头为准,语义依据论文与官方代码整理):

字段 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
image_id 字符串 图像唯一标识 图像级唯一 ID 字符串 主键;分组与去重 无 无缺失 全库唯一
modality 枚举 成像模态 CT / MRI / US 模态过滤、按模态建模 无 无 3 值
body_part 枚举 解剖区/身体部位 brain、knee、thyroid 解剖分层抽样、迁移研究 无 无 11 值
label_text 字符串 病理标签文本(英文短语) Brain acute infarct;Normal ovary;Thyroid nodule 分类目标;165 类 报告派生噪声(§6.5 坑点 3) 无缺失 165 值
label_id 整数/编码 标签数值编码 类别索引 与 label_text 一一映射 无 无缺失 0-164
file_path 字符串 图像文件相对路径 images/brain/xxx.png Dataset 类加载 路径组织因分发包而异 无缺失 文件系统
roi(有限提供) 边界框 判读医师在主病灶创建的定位框 边界框坐标 定位任务辅助监督 论文实验未使用 可能缺省 图像内
split(下游 CSV) 枚举 官方下游任务划分 train_fold1 / val_fold1 / test 复现官方协议 无 无 train/val/test

下游任务划分 CSV 的字段字典(以官方 ACL 任务为例,acl_train.py 直接消费):

字段 类型 说明 示例值 AI 用途
filename 字符串 图像文件路径(相对任务目录) acl/images/xxx.png 与 ImageDataGenerator/flow_from_dataframe 对接
acl_label 二值 ACL 撕裂阳性/阴性标签 0 或 1 二分类目标(column y_col)
fold 信息 文件级 train_fold1-5 / val_fold1-5 / test 分文件组织 train_fold3.csv 五折交叉验证(每折需重建模型,坑点 2)

§4.2 标签分布

正式论文未随文公布 165 类逐类计数,但结构性事实明确:标签频率高度长尾。已知锚点:

锚点 数值/事实 推论
正常研究 8,528 项 / 263,039 张图像(论文) 阴性类合计约占全库两成,是最大「单类」聚合
CT/MRI 子集类覆盖 8 解剖区 97 类(RadImageNet-VQA) 不足 165 类的六成,长尾集中在 US/小部位
标签命名风格 解剖区 + 病变英文短语(预印本图示:Lung bronchiectasis、Brain acute infarct、Hip soft tissue edema、Shoulder Ca++ tendinosis、Normal ovary、Thyroid nodule 等) 可按前缀做解剖区级聚合分析
预印本分模态计数 CT 356,525 / MRI 672,676 / US 389,885 MRI 占比过半(预印本口径,仅供量级参考)

动手前务必对实际分发包执行 value_counts() 获得真实分布(§6.1 代码),并把「每类最少样本量阈值」作为特征工程前置步骤写进实验配置。

§4.3 关键统计

统计项 数值 出处
图像总数 1,350,000 论文
患者总数 131,872 论文
类别数 165 GitHub
解剖区数 11 GitHub
正常研究 8,528 项 / 263,039 张图像 论文
预训练划分 75% 训练 / 10% 验证 / 15% 测试(同患者不跨集合) 论文
预训练输入 224×224,GAP + Dropout 0.5 + Softmax 论文
下游微调输入 256×256,binary cross-entropy,30 epochs 官方代码
下游微调场景 24 种(结构 × 学习率组合) 官方 README
权重文件 每份约 500 MB,共 4 份 DeepWiki
患者级防泄漏 同一患者图像始终同一集合(预训练划分) 论文
源域最佳精度 Inception-ResNet-v2 Top1 74.0% 官方 README

§4.4 数据层级

患者(131,872,公开版不直接暴露患者 ID)
└── 影像检查(study,2005-01 至 2020-01,门诊)
    └── 序列/视图(轴位、矢状位、冠状位;任意序列)
        └── key image(135 万张,每张一个病理标签 + 可选 ROI)

关键点:同一检查可产出多张 key image,同一患者可有多项检查。层级中患者与检查两层在公开注释表中不以显式 ID 暴露,是划分与去重的第一风险点(§5.3、坑点 1)。层级带来的三个实操推论:

  1. 图像 ≠ 独立样本:同一检查的 key image 共享同一判读与同一采集条件,任何把图像当独立样本的统计(包括置信区间、显著性检验)都会高估有效样本量。
  2. 分组键的粒度选择:患者 > 检查 > 图像三级中,至少要到「检查」级分组;若分发包含患者关联,一律取患者级。
  3. 标签层级冗余:同一检查的标签必然一致(来自同一份报告),可利用这一冗余做「检查内标签一致性校验」作为数据质检手段。

§4.5 缺失值与信息性缺失

  • 显式缺失:注释表核心字段(模态、解剖区、标签)无缺失编码需求;图像-标签为强绑定。
  • 信息性缺失:单标签机制本身是一种「信息性压缩」——图像中未写入标签的次要病灶以「无字段」的形式存在,等价于结构化的负向噪声,无法用 NaN 之类的编码表达(§6.5 坑点 3)。
  • ROI 字段:论文声明 ROI 已创建但实验未使用;公开分发版中 ROI 的完整性与格式需以实际包为准,使用前逐列检查。
  • 设备/时间戳/人口学字段:公开版不提供,任何依赖这些字段的方案(按年份分层、按设备分组)都不可行,应在设计阶段剔除。
  • 实践建议:接手分发包后先跑一遍「逐列空值率 + 逐列取值域」体检脚本,把体检结果随实验配置入库——本节列出的缺失形态是基于论文与官方代码的推断,实际分发文件的边界行为以体检结果为准。

§5 划分与使用建议

§5.1 官方划分

两层官方划分并存(论文):

层 划分对象 比例/结构 防泄漏设计 获取
预训练划分 135 万图像(165 类) 75% 训练 / 10% 验证 / 15% 测试 同一患者图像始终在同一集合 随数据集申请分发
下游小任务划分 甲状腺/乳腺/ACL/半月板 五折 train/val/test CSV 官方组织;复现须每折重置权重 GitHub README → Google Drive
下游大任务划分 肺炎/COVID-19/SARS-CoV-2/出血 使用各公开数据集自身官方划分 原数据集维护 各公开数据集官网

其二,下游任务划分——四个小数据集任务公开五折划分 CSV,大数据集任务复用公开数据集自身划分。注意两层划分的目的不同:前者服务 165 类预训练,后者服务迁移学习评估,不可混用。

§5.2 社区惯例划分

自建任务时,社区通行做法可参照下表选择:

需求场景 推荐划分 分组键 备注
全库 165 类预训练 75/10/15 分层划分 患者(缺省则检查级代理) 复刻论文口径
单解剖区二分类 五折 GroupKFold 检查级前缀 复刻官方小任务协议
跨解剖区迁移评估 源区训练/目标区测试 解剖区互斥 检验解剖外推
跨模态迁移评估 源模态训练/目标模态测试 模态互斥 复刻官方胸片任务设计
长尾方法研究 可信子集(样本量 ≥ 阈值)+ 尾部独测 检查级 头尾分别报告

通用流程:按解剖区+模态先切子集 → 子集内分层 → 以分组键执行 GroupShuffleSplit 或 GroupKFold。若分发包包含患者/检查关联字段,一律以患者为最外层分组键;若无,则以检查级前缀做保守代理(见坑点 1)。

§5.3 泄漏风险(重点)

RadImageNet 的泄漏风险有三个独特点。第一,同一检查多张 key image 高度相似(同一序列相邻层面或同视图),随机划分会让「孪生图像」分居训练与测试两侧,指标虚高。第二,报告派生标签在检查内一致:同一检查的 key image 共享同一判读结论,图像级随机划分等价于把标签也复制到了测试集。第三,官方代码自身出过泄漏式 bug(五折间权重未重置,fold x 的训练数据成为 fold x+1 的验证数据,见坑点 2),提醒任何自建 CV 都要在每折从零初始化。

一个容易被忽视的次级风险是近重复图像:不同检查之间也可能存在视觉上几乎相同的帧(如同一患者的随访检查、标准投照位的高度一致性)。防御清单:患者/检查级分组、每折重建模型、测试集完全隔离、跨检查去重指纹(如感知哈希)——最后一项是社区实践中最常被省略、又最容易被审稿人问起的环节。

§5.4 交叉验证建议

小数据任务建议沿用官方五折 CV,但必须修复坑点 2 的模式:在每个 fold 开始时重新实例化模型并重置随机权重。每组超参报告均值±标准差(论文每任务模拟 24 种微调场景正是为此)。若类别长尾,改用 StratifiedGroupKFold 同时兼顾类分布与分组约束。划分随机种子全流程固定并写入配置文件。

§5.5 外部验证建议

官方论文的 8 个下游任务本身就是外部验证的范例:预训练来自门诊机构数据,评估用完全独立的公开数据集。自研模型建议至少挂接一个非本机构来源的测试集(如对应器官的公开数据集),并按 §7.8 的矩阵格式报告相对内部基线的变化。跨机构部署前,务必补充域偏移测试(不同设备、不同扫描协议)。


§6 AI 就绪指南

§6.0 云端快速启动

最省事的起步路径是「权重先行」:不必等待数据集申请,先在 Colab 挂载 Google Drive,下载官方 PyTorch 权重与某一下游任务划分 CSV(均为免申请分发),即可跑通端到端迁移学习。

# Colab 快速启动:加载官方 PyTorch 权重做特征提取(免申请资源)
import torch
# 1) 从 GitHub README 指向的 Google Drive 下载 PyTorch 权重包并解压
# 2) 用官方 Notebook(pytorch_example.ipynb)中的模型定义构建骨干网络
backbone = build_radimagenet_model("DenseNet121")       # 官方提供定义
state = torch.load("RadImageNet-PyTorch-DenseNet121-notop.pth",
                   map_location="cpu")                   # 以实际文件名为准
backbone.load_state_dict(state, strict=True)             # 报错即键名不对,见坑点 6
backbone.eval()
with torch.no_grad():
    feat = backbone(torch.randn(1, 3, 256, 256))         # 输出形状 (1, 1024)
print("DenseNet121 特征维度:", feat.shape)

数据集本体(135 万图像)体量大且需协议审批,建议在本地或申请通过后再引入。训练侧建议:单卡 24 GB 显存可复现多数实验;官方代码使用 TensorFlow MirroredStrategy,多卡按需扩展。

§6.1 快速上手

环境依赖建议(与官方代码生态对齐):

组件 建议版本 说明
Python 3.9-3.11 官方 Notebook 兼容区间
PyTorch ≥ 1.13 加载官方 PyTorch 权重
TensorFlow/Keras 2.x 官方脚本基于 Keras Application API
pandas / scikit-learn / Pillow 最新稳定版 数据处理与划分
GPU 驱动 与框架匹配 CUDA 11.8+ 常用组合

下面的脚本完成三件事:读入注释表、输出真实标签分布、构建一个可训练的图像级数据框。目录结构预期:注释 CSV 与 images/ 目录同级,data_root 为它们的共同父目录;最小可用子集:先取单一解剖区+Top-5 常见标签验证管线,再放大到全库。

import pandas as pd
from pathlib import Path

DATA_ROOT = Path("data/radimagenet")          # 注释表与 images/ 的共同父目录
ANN_CSV = DATA_ROOT / "RadImageNet-Annotations.csv"   # 以实际分发包文件名为准

ann = pd.read_csv(ANN_CSV)
print(ann.columns.tolist())                   # 先核对表头再做列映射!
print(ann["label_text"].value_counts().head(20))      # 真实标签分布(长尾可见)

# 三项必做质检
print("模态分布:", ann["modality"].value_counts().to_dict())
print("解剖区分布:", ann["body_part"].value_counts().to_dict())
print("图像文件缺失数:",
      (~ann["file_path"].apply(lambda p: (DATA_ROOT / p).exists())).sum())

# 最小可用子集:单一模态 + Top-5 常见标签
top5 = ann["label_text"].value_counts().head(5).index.tolist()
mini = ann[ann["label_text"].isin(top5)].copy()
mini["filepath"] = mini["file_path"].apply(lambda p: str(DATA_ROOT / p))
print(len(mini), "images in mini subset")

TensorFlow 侧快速验证(复刻官方加载口径,验证权重完好性):

import tensorflow as tf
from tensorflow.keras.applications import DenseNet121

base = DenseNet121(weights="models/RadImageNet-DenseNet121-notop.h5",
                   input_shape=(256, 256, 3), include_top=False, pooling="avg")
x = tf.random.uniform((1, 256, 256, 3))
print("特征输出形状:", base(x).shape)         # 预期 (1, 1024)

§6.2 数据获取

资源 入口 条件 体积
数据集本体(图像+注释) radimagenet.com 注册申请 签署 Research Use Agreement,个人非商业研究 未公布(建议预留数十 GB)
五折划分 CSV GitHub README → Google Drive 无需申请 KB 级
TensorFlow 权重 GitHub README → Google Drive 无需申请 约 500 MB/份
PyTorch 权重 GitHub README → Google Drive 无需申请 约 500 MB/份
商业授权 官网 商业通道 另签商业协议 按需

申请流程(官网通道):

步骤 动作 要点
1 访问 radimagenet.com 注册个人账号 协议要求机构内每人独立注册,不可共享账号
2 填写申请表(用途、机构、联系人) 用途写明非商业学术研究;商用另走商业通道
3 签署 Research Use Agreement 重点条款:不转分发、不共享下载链接、不尝试再识别
4 等待审批并获取下载权限 数日无回复先查垃圾邮箱,再按 README 官方邮箱联系
5 下载后登记哈希与下载日期 分发包无版本号,需自建版本管理(§6.10)

注意协议红线:不得转分发、不得共享下载链接、机构内他人需各自注册;协议受纽约州法律管辖,违约可被终止使用权并被要求销毁副本。

§6.3 预处理全流程

官方微调代码的预处理口径(acl_train.py):resize 到 256×256,像素值 rescale=1./255 后叠加 Keras preprocess_input,训练集增强 rotation 10°、平移 0.1、剪切 0.1、缩放 0.1、水平翻转。PyTorch 侧等价实现:

from torchvision import transforms

train_tf = transforms.Compose([
    transforms.Resize((256, 256)),
    transforms.Grayscale(num_output_channels=3),   # 医学灰度图 → 3 通道
    transforms.RandomRotation(10),
    transforms.RandomAffine(degrees=0, translate=(0.1, 0.1),
                            shear=10, scale=(0.9, 1.1)),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor(),
    # 官方口径为 rescale 1/255 后叠加框架 preprocess_input;
    # PyTorch 侧等价做法:减 ImageNet 均值除以标准差(与官方权重训练口径一致)
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

eval_tf = transforms.Compose([
    transforms.Resize((256, 256)),
    transforms.Grayscale(num_output_channels=3),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

清洗要点:加载时过滤无法打开或尺寸过小的文件;按图像 ID 去重;把标签映射收敛到单一数值编码表并持久化。稳健的逐图加载与清洗函数:

from PIL import Image
import numpy as np

def load_clean(path: str, min_size: int = 32, pct_clip=(1.0, 99.0)):
    """医学 key image 稳健加载:无效文件过滤 + 百分位强度截断(坑点 5)。"""
    try:
        img = Image.open(path).convert("L")
        if img.width < min_size or img.height < min_size:
            return None
        arr = np.asarray(img, dtype=np.float32)
        lo, hi = np.percentile(arr, pct_clip)          # 替代未知窗宽窗位
        arr = np.clip((arr - lo) / max(hi - lo, 1e-6), 0.0, 1.0)
        return arr
    except Exception:
        return None                                    # 损坏文件直接剔除并记录

§6.4 PyTorch DataLoader

完整可运行示例:图像级多类分类(含按检查前缀分组的安全划分)。

import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader, WeightedRandomSampler
from PIL import Image
from sklearn.model_selection import GroupShuffleSplit

class RadImageNetDataset(Dataset):
    """radimagenet 图像级分类数据集。

    data_root: 注释表与 images/ 的共同父目录;
    df: 含 filepath(拼接后的绝对路径)与 label_idx 两列的 DataFrame。
    """
    def __init__(self, df, transform):
        self.df = df.reset_index(drop=True)
        self.transform = transform

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

    def __getitem__(self, idx):
        row = self.df.iloc[idx]
        img = Image.open(row["filepath"]).convert("RGB")
        return self.transform(img), int(row["label_idx"])

def build_loaders(ann: pd.DataFrame, data_root: str, batch_size: int = 64):
    # 1) 以文件名去重(同一文件只出现一次)
    ann = ann.drop_duplicates(subset=["filepath"]).reset_index(drop=True)
    # 2) 标签编码
    classes = sorted(ann["label_text"].unique())
    cls2idx = {c: i for i, c in enumerate(classes)}
    ann["label_idx"] = ann["label_text"].map(cls2idx)
    # 3) 按检查前缀分组划分,防同检查孪生图跨集(见 §5.3 与坑点 1)
    ann["group_key"] = ann["filepath"].apply(
        lambda p: "_".join(Path(p).stem.split("_")[:2]))   # 按实际命名调整分组粒度
    gss = GroupShuffleSplit(n_splits=1, test_size=0.15, random_state=42)
    tr, te = next(gss.split(ann, groups=ann["group_key"]))
    df_tr, df_te = ann.iloc[tr], ann.iloc[te]
    gss2 = GroupShuffleSplit(n_splits=1, test_size=0.12, random_state=42)
    tr2, va = next(gss2.split(df_tr, groups=df_tr["group_key"]))
    df_tr, df_va = df_tr.iloc[tr2], df_tr.iloc[va]
    # 4) 类不平衡:按类频率倒数采样
    freq = df_tr["label_idx"].value_counts()
    weights = df_tr["label_idx"].map(lambda c: 1.0 / freq[c]).tolist()
    sampler = WeightedRandomSampler(weights, num_samples=len(df_tr), replacement=True)
    train_loader = DataLoader(RadImageNetDataset(df_tr, train_tf), batch_size=batch_size,
                              sampler=sampler, num_workers=8, pin_memory=True)
    val_loader   = DataLoader(RadImageNetDataset(df_va, eval_tf), batch_size=batch_size,
                              shuffle=False, num_workers=8, pin_memory=True)
    test_loader  = DataLoader(RadImageNetDataset(df_te, eval_tf), batch_size=batch_size,
                              shuffle=False, num_workers=8, pin_memory=True)
    return train_loader, val_loader, test_loader, classes

配套训练循环骨架(迁移学习标准形态):

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

def build_model(n_classes: int) -> nn.Module:
    model = densenet121(weights=None)            # 结构取 torchvision,权重换 RadImageNet
    model.features.load_state_dict(radimagenet_features_state("DenseNet121"))
    model.classifier = nn.Linear(model.classifier.in_features, n_classes)
    return model

def train_one_epoch(model, loader, optimizer, device):
    model.train()
    for x, y in loader:
        x, y = x.to(device), y.to(device)
        loss = nn.functional.cross_entropy(model(x), y)
        optimizer.zero_grad(); loss.backward(); optimizer.step()

§6.5 坑点清单

⚠️ 坑点 1:随机划分导致同患者/同检查的「孪生 key image」跨集泄漏(分类:数据泄漏)

问题:同一检查可产出多张几乎相同的 key image,同一患者的多项检查共享设备与体质特征;图像级随机划分让测试集信息经标签与图像两条通道回流训练侧,AUC 显著虚高。
症状:测试 AUC 高得可疑(如 >0.98);按检查分组重划后指标骤降数个百分点;错误分析发现训练/测试出现肉眼难分的成对图像。
解决:

  1. 简单方法:以文件名公共前缀(对应检查)为分组键执行 GroupShuffleSplit/GroupKFold,保证组间互斥。
  2. 进阶方法:若分发包含患者或检查 ID,一律以患者为最外层分组;否则先用感知哈希(pHash)对全部图像聚类,将同一检查的近重复图归入同组再划分(含代码示例见 §6.4)。
  3. SOTA 方法:报告「图像级划分」与「患者级划分」两套指标并排呈现,把泄漏幅度量化进论文;测试集在调参全程加密封存,只在终评解封一次。
    参考:论文 75/10/15 同患者同集合原则;官方纠错信

⚠️ 坑点 2:官方五折交叉验证代码在折间未重置权重(已发表纠错)(分类:评估误用)

问题:2022-10-03 之前的官方代码在五折循环中复用上一折训练后的模型,未随机重新初始化,导致 fold x 的训练数据成为 fold x+1 的验证数据,报告指标系统性偏高。
症状:用旧代码复现,五折 AUC 逐折走高;验证曲线首折明显优于从零训练的预期;与你修正后的复现值存在稳定差距。
解决:

  1. 简单方法:确认使用 2022-10-03 之后的 GitHub 代码(main 分支),每折重新实例化模型。
  2. 进阶方法:在自定义训练循环中将「模型构建 + 权重初始化 + 编译」封装为工厂函数,每折调用一次;训练前断言 torch.sum(p.abs()) 型指纹随折变化。
  3. SOTA 方法:复现时直接报告「修正后」数字,并在实验记录中引用 e220253 纠错信说明差异来源;对照实验沿用论文结论——该 bug 不影响「域内预训练优于 ImageNet」的主结论,但影响绝对数值。
    参考:Tavolara, Radiol Artif Intell 2023;5(2):e220253;GitHub issue #5

⚠️ 坑点 3:报告派生单标签噪声——正常标签来自 SQL 检索而非逐图确认(分类:标签理解)

问题:标签回顾性提取自原始判读,每张图像只保留一个标签;「正常」研究由报告 impression 的 SQL 检索(normal/unremarkable)加单人复核产生。图像中的次要病灶不进标签,正常不代表逐像素无异常。
症状:模型在「正常 vs 病变」二分类上表现好但在细粒度亚型上混乱;Grad-CAM 在正常图上仍高亮可疑区域;人工抽检发现部分「正常」图存在轻度退变等无临床意义发现(官方口径即排除「异常但无临床意义」的研究)。
解决:

  1. 简单方法:把标签当作弱监督信号;二分类任务保留报告派生语义,避免宣称「像素级无异常」。
  2. 进阶方法:对目标任务抽检 200-500 张构建人工复核子集,估计标签噪声率;训练用噪声鲁棒损失(如对称交叉熵)或置信学习清洗。
  3. SOTA 方法:多人独立复标小规模金标准子集,报告噪声率与 kappa;用软标签或标签噪声建模(如 co-teaching)训练。
    参考:论文标注方法与局限性自述

⚠️ 坑点 4:规模与名称混淆——500 万 vs 135 万、RadImageNet 不是 ImageNet 的医学子集(分类:标签理解)

问题:官网商业库宣传 500 万图像/50 万患者(含 PET、DICOM tags),论文研究版为 135 万图像/131,872 患者(仅 CT/MRI/US);早期预印本又用过 500 万口径。三者混用会让引用与复现完全失准。名称上也常被误解为「ImageNet 的放射学版」——它是由独立团队独立构建的数据库,与 ImageNet 无派生关系。
症状:论文方法学部分写错规模被审稿人抓住;把 PET 图像当作研究版内容去申请;以为标签体系与 ImageNet 类目对齐。
解决:

  1. 简单方法:一切学术引用以正式论文口径(135 万/131,872/165 类)为准,商业口径单独立项说明。
  2. 进阶方法:在数据卡(datasheet)中同时记录两套口径及适用边界;引用预印本数字前核对正式版是否已修订。
  3. SOTA 方法:建立机构内的数据集登记表,强制登记「口径来源 URL + 检索日期」,避免团队内二次传播失真。
    参考:预印本;官网;论文

⚠️ 坑点 5:key image 不是 DICOM——无法重建 3D 体积,也无窗宽窗位(分类:预处理陷阱)

问题:公开研究版分发的是从检查中提取的 2D key image,原始层厚、层间距、窗宽窗位等 DICOM 元数据不随包提供;把 CT/MRI 当 3D 任务(体积分割、多平面重建)在本数据集上根本不可行。
症状:尝试按检查重建体积时发现层与层无法对齐;窗位归一化无从下手;与 DICOM 系数据集混合训练时强度分布对不上。
解决:

  1. 简单方法:把任务严格定位为 2D 图像级分类/检索;3D 需求改用带体积的公开数据集。
  2. 进阶方法:强度归一化采用逐图百分位截断(如 1%-99% 分位)替代固定窗宽窗位,增强对未知窗位的鲁棒性。
  3. SOTA 方法:若确实需要 DICOM tags 与体积,走官网商业授权通道获取带 DICOM tags 的库,或组合使用公开 DICOM 数据集。
    参考:论文 key image 定义;官网

⚠️ 坑点 6:官方权重加载失败——键名、顶层与双重归一化三连坑(分类:工程陷阱)

问题:官方 .h5 权重按 include_top=False, pooling='avg' 的模型结构导出;PyTorch 权重的键名与 torchvision 原生实现不完全一致;同时 rescale=1./255 与 preprocess_input 叠加会造成双重归一化,静默破坏特征。
症状:load_state_dict 报 missing/unexpected keys;特征提取输出维度或语义异常;换权重后精度不升反降。
解决:

  1. 简单方法:TensorFlow 侧完全复刻官方调用:InceptionResNetV2(weights="RadImageNet-IRV2-notop.h5", include_top=False, pooling="avg");不要自行加顶层再加载。
  2. 进阶方法:PyTorch 侧使用官方 pytorch_example.ipynb 提供的模型定义加载权重,再做键名对齐打印(state_dict().keys() 对照表)。
  3. SOTA 方法:固化一个「权重加载单元测试」:随机张量过模型,校验输出形状与特征统计(均值/方差),纳入 CI,防止框架升级静默破坏。
    参考:官方 acl_train.py;GitHub README

⚠️ 坑点 7:165 类长尾 + 单机构门诊偏倚,宏平均被尾部类拖垮(分类:偏倚陷阱)

问题:类别频率高度偏斜且来自单家门诊机构的检查流构成;头部类(常见病)主导训练,尾部类样本稀少;直接微调会在尾部类上接近失效,宏平均指标难看且不稳。
症状:总体 accuracy 很高但 per-class F1 中一半以上类别接近 0;混淆矩阵中尾部类几乎全被吸入「最相似的头部类」;换随机种子结果剧烈波动。
解决:

  1. 简单方法:报告宏平均与 per-class 指标;训练用 WeightedRandomSampler 或类加权损失。
  2. 进阶方法:只保留样本量超过阈值的类做「可信子集」实验;尾部类做两阶段训练(先头部后尾部微调)或少样本方法(如特征空间增广)。
  3. SOTA 方法:长尾专用范式(logit 调整、解耦表征-分类器训练);并对外部测试集按解剖区分层报告,量化单机构偏倚的迁移损失。
    参考:论文局限性;RadImageNet-VQA 对类覆盖的披露(CT/MRI 子集 97 类)

⚠️ 坑点 8:把论文增益数字当万能公式——迁移收益随下游规模收窄(分类:评估误用)

问题:+9.4% 这类 AUC 增益来自小数据集任务(几百到几千张);大数据集上增益收窄到 0.9%-6.1%,且对比成立的前提是严格执行「24 场景平均 + DeLong 检验」协议。只挑单场景、单种子对比会得到与论文相反或夸大的结论。
症状:在自己的上万张数据集上「ImageNet 更好」,随即宣称论文不可复现;或者只跑一个微调场景就宣称增益 9 个百分点。
解决:

  1. 简单方法:复现协议核心三要素——freezeall/unfreezetop10(lr 0.01、0.001)与 unfreezeall(lr 0.001、0.0001)共 24 种场景,报告均值±SD。
  2. 进阶方法:AUC 比较用 DeLong 配对检验;同时报告 Grad-CAM Dice 等定位指标,定位质量的增益往往比 AUC 更稳定(论文:甲状腺 +11.3 个百分点)。
  3. SOTA 方法:把「预训练来源」作为一个显式变量纳入消融表,与规模、架构变量正交分解,回答「增益来自域还是来自容量」。
    参考:论文图 3/图 4 与 24 场景协议;官方 README 场景定义

§6.6 数据增强

增强 官方是否使用 安全性 说明
旋转 ±10° ✅ ✅ 安全 轻微投照差异的合理模拟
平移/缩放 0.1 ✅ ✅ 安全 模拟取景差异
剪切 0.1 ✅ ✅ 安全 官方 shear_range=0.1
水平翻转 ✅ ⚠️ 视部位 官方使用;对方向性病灶(如脏器反位先验)需任务级确认
垂直翻转 ❌ ❌ 危险 上下不对称的解剖会生成非生理构型
弹性形变 ❌ ❌ 危险 破坏病灶形态学,诊断任务禁用
强度百分位截断 ❌(社区惯例) ✅ 安全 替代未知窗宽窗位(坑点 5)
色彩抖动 ❌ ❌ 危险 医学灰度图注入伪色彩相关
  • ✅ 安全:小角度旋转、小幅平移/缩放、水平翻转(确认后)、亮度/对比度微扰、逐图百分位强度归一化——官方代码即采用前四类(acl_train.py)。
  • ❌ 危险:垂直翻转;大幅旋转(>30° 破坏标准投照位先验);弹性形变;在划分之后按「全局图像统计」做归一化(测试信息泄漏);对 US 图像做彩色空间增强(native 灰度,色彩增强等于注入伪相关)。

§6.7 模型推荐

模型 官方权重 源域 Top1/Top5 适用建议
Inception-ResNet-v2 提供 74.0% / 94.3% 追求源域最强表征;参数量大,注意显存
DenseNet121 提供 73.1% / 96.1% 医学影像社区最爱;Top5 最高、参数量小,默认首选
InceptionV3 提供 73.2% / 92.7% 计算预算受限时的平衡选择
ResNet50 提供 72.3% / 94.1% 工程生态最好;做消融与部署原型首选

(Top1/Top5 来自官方 README,为 165 类源域分类精度。)ViT/Swin 类架构官方权重暂未发布(README 预告后续提供 Swin Transformer 权重),自训 Transformer 骨干时可先以 DenseNet121 权重做蒸馏教师。

选型快速决策:

  1. 部署/工程优先 → ResNet50(生态最全、量化导出顺滑)。
  2. 学术对比/复现官方数字 → DenseNet121(Top5 最高、医学社区惯例)。
  3. 冲源域精度 → Inception-ResNet-v2(Top1 最高,注意显存)。
  4. 资源受限 → InceptionV3(计算/精度平衡)。

§6.8 硬件需求

场景 GPU 显存 建议配置 说明
特征提取 + 线性探针 8 GB 单卡 RTX 3060 级 冻结骨干,fp32 即可
全量微调(256×256,batch 64) 16-24 GB 单卡 RTX 3090/4090 混合精度可再省一半
复现 24 场景 × 五折协议 24 GB × 多卡 MirroredStrategy/DDP 论文口径,最耗时
165 类全库继续预训练 多卡 A100 8×A100 起步 自选目标函数,非官方协议

补充说明:表内为 fp32 口径的经验值;启用混合精度(AMP)后显存占用约减半。官方代码使用 tf.distribute.MirroredStrategy(batch 256 起),PyTorch 侧等价配置为 DDP + 每卡 batch 64×4 卡。

§6.9 评估指标

import numpy as np
from sklearn.metrics import roc_auc_score, f1_score, confusion_matrix

def evaluate(model, loader, device, n_classes):
    model.eval()
    ys, ps = [], []
    with torch.no_grad():
        for x, y in loader:
            logits = model(x.to(device))
            ps.append(torch.softmax(logits, 1).cpu().numpy())
            ys.append(y.numpy())
    prob = np.concatenate(ps); y_true = np.concatenate(ys)
    onehot = np.eye(n_classes)[y_true]
    macro_auc = roc_auc_score(onehot, prob, average="macro",
                              multi_class="ovr")
    macro_f1 = f1_score(y_true, prob.argmax(1), average="macro")
    return {"macro_auc": macro_auc, "macro_f1": macro_f1}

# 二分类 AUC 配对比较(DeLong 实现建议使用 fastdeleng 或 merlin(
#   delong_auc_compare(y_true, prob_a, prob_b)) 之类成熟实现,并报告 P 值)

注意:论文对所有 AUC 对比使用 DeLong 检验、对 Dice 对比使用配对 t 检验——复现对比实验时应保持同一统计口径(论文)。

复现官方可解释性评估(Grad-CAM Dice)的最小实现:

import torch
import torch.nn.functional as F

def grad_cam(backbone_feats, final_conv, classifier, target_class, size=(256, 256)):
    """对最后一个卷积特征图计算 Grad-CAM 并上采样到输入分辨率。"""
    feats = backbone_feats.detach()                        # (1, C, h, w)
    weights = classifier.weight[target_class]              # (C,)
    cam = (weights.view(1, -1, 1, 1) * feats).sum(1, keepdim=True)
    cam = F.relu(cam)
    cam = F.interpolate(cam, size=size, mode="bilinear", align_corners=False)
    cam = (cam - cam.min()) / (cam.max() - cam.min() + 1e-8)
    return cam[0, 0]

# Dice 评估:将 CAM 以 0.5 阈值二值化后与人工病灶掩膜比对(论文口径)
def dice(pred_bin: torch.Tensor, gt_mask: torch.Tensor) -> float:
    inter = (pred_bin & gt_mask).sum().item()
    return 2.0 * inter / max((pred_bin.sum() + gt_mask.sum()).item(), 1)

论文口径提示:官方用 Grad-CAM 区域与病灶掩膜的 Dice 对比 RadImageNet 与 ImageNet 预训练(甲状腺 28.8% vs 17.5%,乳腺 16.3% vs 14.0%)。绝对 Dice 数值偏低是类激活图方法的已知特性,对比时只看相对增益即可。

§6.10 MLOps 笔记

  1. 合规即代码:把 Research Use Agreement 的要点(非商业、不转分发、不再识别)写进仓库 README 与 CI 检查清单;商业项目立项前必须先拿到官网商业授权。
  2. 数据版本化:分发包无版本号,入库时以「下载日期 + 文件哈希」自建版本标签,注释表与权重分开登记。
  3. 权重版本化:四个骨干权重以 SHA256 登记;官方代码修复(2022-10-03)前后的版本语义不同,复现实验必须锁定 Git commit。
  4. 泄漏防御自动化:把分组划分函数沉淀为共享库并加单测;CI 中加入「训练/测试组交集必须为空」断言。
  5. 可解释性审计:Grad-CAM 热图抽样人工评审纳入发布门禁,尤其当模型用于「正常/异常」二分场景时(坑点 3)。
  6. 来源消融留档:每次发布模型时记录预训练来源(RadImageNet/ImageNet/其他)与微调协议,保持与官方 24 场景口径的可追溯对应,方便后续复现与审计。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
单机构偏倚 全部数据来自纽约都会区一家门诊影像机构 高 外部公开数据集验证;按域自适应方法补偿
人群选择偏倚 门诊人群,不含住院/急诊;年龄性别构成未披露 中 部署前用目标人群数据校准先验
报告派生标签噪声 标签继承原始判读;单标签压缩多病灶信息 高 弱监督定位;人工复核子集估计噪声率
长尾类不平衡 165 类频率高度偏斜 高 类加权/重采样;per-class 指标报告
时间漂移 2005-2020 设备与协议演化 中 按时间分桶评估泛化(需自行组织)
正常类操作化定义 正常=报告 impression 检索+单人复核 中 把「正常」理解为「无临床显著异常」

§7.2 标注质量

标注质量的本质是「临床判读的质量」:判读者为 20 名委员会认证、专科培训后 1-40 年经验的放射科医师(论文),标签是判读的忠实转录而非独立重标。正常研究的双人流程(SQL 检索+一名医师复核)是唯一的显式质控环节。未报告标注者间一致性;未提供逐类置信度。

从质量分层看:阳性标签(有病理发现)由判读医师主动选图转录,与图像内容的对应关系最强;正常标签经检索+复核,作为群体阴性可靠,但逐像素阴性不可声明;ROI 信息由同一批医师创建、与判读同源,可作为定位监督的软参考但非独立真值。因此本数据集适合表征学习与预训练,不适合直接作为诊断金标准做监管级声明。

§7.3 泛化性

部署场景 失效风险 证据
同域门诊影像分类 低 源域 Top1 72.3%-74.0%(官方 README)
跨机构小样本分类 中-低 官方 8 个外部任务全部正向增益(论文)
住院/急诊影像 中 数据不含住院急诊人群(论文采集口径)
儿科影像 中-高 成人门诊为主的机构构成;无年龄分层验证
X 光模态迁移 中-低 官方胸片任务增益为正(肺炎 +1.9%)但小于 CT/MRI/US 内任务
非西方设备链/人群 未验证 无多中心外部部署证据,需自行验证

§7.4 伦理合规

数据经脱敏后分发,key image 不携带患者标识与 DICOM 头元数据;Research Use Agreement 明确禁止再识别、转分发、共享下载链接,并规定发现再识别须立即报告且协议可被终止(协议文本)。论文以回顾性研究设计发表,注明数据来自临床判读流程。监管定位:明确「仅供非临床研究使用,不得用于患者诊疗」。使用者还需注意:模型输出不可作为诊断依据;衍生数据集同样受原始协议约束;机构内合规审查时,建议将协议全文与下载记录一并归档,以备审计。

§7.5 公平性

公开版未披露年龄、性别、种族分布,无法进行亚组公平性审计——这本身就是使用约束之一。唯一可核查的公平性锚点是机构类型(单一门诊设施):付费能力与就医可及性构成隐式选择层,模型学到的「病变先验」可能带有该人群的疾病谱特征。建议下游研究分三步补救:第一,在目标部署人群中补齐人口学审计并按亚组报告敏感度/特异度;第二,在论文中声明预训练数据的人群构成盲区,避免过度声明;第三,涉及跨人群部署时,优先在目标人群中采集校准集,而非直接迁移。

§7.6 数据漂移

15 年采集期内,CT/MRI/US 设备代际更替、扫描协议演化、临床指南更新(如甲状腺结节分类体系的演进)都会沉淀为时间维度的分布漂移;公开版不带时间戳,无法直接做时间分桶验证,这是元数据缺失(§7.7 第 14 项)的直接影响之一。可行的替代监控:上线后用「预测置信度分布 + 逐图强度直方图距离」做无参考漂移告警。COVID-19 任务的存在还提示:疫情期采集的下游数据与预训练分布存在显著概念差异,官方实验显示该任务增益反而较大(+6.1%),可解读为域内预训练对概念漂移的一定鲁棒性(论文)。

§7.7 DAIMS 24 项检查

# 检查项 状态 说明
1 宽格式 ⚠️ 注释表一图一行,图像外置;无宽表汇总视图
2 唯一标识 ✅ 图像级唯一 ID 贯穿注释、划分与文件路径
3 特殊字符 ✅ 标签为英文短语,无特殊字符编码问题
4 重复行 ✅ 一图一标签一行的扁平结构,无天然重复
5 缺失编码 ⚠️ 无统一缺失编码体系;ROI 等可选字段缺省语义未文档化
6 标签标识 ✅ 标签文本与数值编码双轨(label_text + 编码)
7 罕见类分组 ❌ 165 类长尾无官方罕见类分组或最低样本量指引
8 偏倚评估 ⚠️ 论文自述单机构等局限,但无系统性偏倚量化
9 数据字典 ✅ GitHub README + 论文方法学完整描述标注体系
10 信息性缺失解释 ⚠️ 单标签压缩多病灶信息;缺失语义需自行推断
11 设备记录 ❌ 公开版无设备厂商/型号/参数字段
12 共线性 ✅ 分类标签任务不涉及特征共线性
13 编码映射 ✅ 165 类按 ICD-10 与影像特征分组的映射有据可查
14 时间戳处理 ❌ 公开版不提供检查日期,时间分桶不可行
15 划分建议 ✅ 预训练 75/10/15 同患者同集合 + 下游五折 CSV
16 泄漏讨论 ✅ 纠错信与 issue #5 公开记录了泄漏式 bug 及修复
17 标签分布 ⚠️ 正式版未随文公布逐类计数,需自行统计
18 测量偏倚 ⚠️ 报告派生标注系统性继承判读风格差异
19 外部验证建议 ✅ 官方 8 个外部任务 + 7 个公开数据集的完整示范
20 版本记录 ⚠️ 数据集本体无版本号;代码有完整 Git 历史
21 预处理脚本 ✅ 官方 TF/PyTorch 示例含增强与归一化参数
22 合规要求 ✅ Research Use Agreement 条款明确且随分发可查
23 多模态对齐 ❌ 三模态独立标注,无跨模态配对/对齐机制
24 去标识化 ✅ key image 脱敏、协议禁止再识别并设终止条款

DAIMS 评分:16.5 / 24

评分解读:13 项 ✅、7 项 ⚠️、4 项 ❌。强项集中在「身份与合规」(唯一标识、编码映射、去标识化、合规要求、划分与泄漏透明度)——这在同类数据集中属于第一梯队,尤其是泄漏问题的公开发光处理(期刊纠错信)极为罕见。弱项集中在「元数据供给」:设备、时间戳、人口学、患者级 ID 缺失,长尾无官方指引,多模态无对齐。

对你意味着什么:第一,把 RadImageNet 当作「预训练基座 + 划分纪律的教科书」使用是安全的,官方在划分与泄漏上的示范值得直接照搬;第二,所有依赖元数据的方案(按时间分层、按设备分组、人群亚组审计)在设计阶段就要放弃或改为自行采集;第三,长尾建模与标签噪声处理是你必须自带的方法论预算,不要指望数据集提供;第四,合规红线(非商业、不转分发)应作为硬编码约束进入工程流程。

§7.8 外部验证矩阵

以下结果均来自论文的迁移学习对照实验:预训练于 RadImageNet(源域为门诊机构数据),评估于完全独立的外部公开数据集(Mei et al., 2022, Radiology: Artificial Intelligence. DOI 10.1148/ryai.210315):

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
甲状腺结节 US 公开数据集 恶性预测 AUC +9.4% vs ImageNet 增益最大 小数据集上域内预训练优势显著
乳腺肿块 US 公开数据集 病变分类 AUC +4.0% 显著 US 域内标注(腹盆/甲状腺)可迁移
ACL 撕裂 MRI 公开数据集 撕裂检测 AUC +4.8% 显著 肌肉骨骼标签密集域内迁移
半月板撕裂 MRI 公开数据集 撕裂检测 AUC +4.5% 显著 同上
肺炎胸片 公开数据集 肺炎检测 AUC +1.9% 收窄 跨模态(无 X 光预训练)仍正向
COVID-19 CT 公开数据集 诊断分类 AUC +6.1% 较大 概念漂移下域内预训练稳健
SARS-CoV-2 CT 公开数据集 阳性检测 AUC +1.7% 收窄 同上
颅内出血 CT 公开数据集 出血检测 AUC +0.9% 最小 大数据集增益趋近但为正
甲状腺/乳腺 Grad-CAM 同上两 US 任务 病灶定位 Dice 28.8% vs 17.5%;16.3% vs 14.0% 大幅提升 域内预训练显著改善可解释性

§8 基准性能与生态

§8.1 排行榜与对比

RadImageNet 没有第三方维护的「刷榜」排行榜;其基准意义体现在论文自建的「预训练来源对照」上(每任务 24 场景平均,DeLong 检验)。核心数字(Mei et al., 2022, Radiology: Artificial Intelligence. DOI 10.1148/ryai.210315):

任务 RadImageNet 预训练 vs ImageNet 预训练 统计口径 代码
甲状腺结节 US 恶性预测 AUC +9.4% 24 场景均值,P < .001,DeLong 官方 thyroid 目录
乳腺 US 分类 AUC +4.0% 同上 官方 breast 目录
ACL 撕裂 MRI AUC +4.8% 同上 官方 acl 目录
半月板撕裂 MRI AUC +4.5% 同上 官方 meniscus 目录
COVID-19 CT AUC +6.1% 大数据集协议 官方 covid19 目录
肺炎胸片 AUC +1.9% 同上 官方 pneumonia 目录
SARS-CoV-2 CT AUC +1.7% 同上 官方 sarscovid2 目录
颅内出血 CT AUC +0.9% 同上 官方 hemorrhage 目录

⚠️ 数值不可直接比较的原因:各任务来自不同规模、不同类别分布、不同模态的公开数据集;增益是「同任务内两种预训练来源的配对差值」,跨任务横向比较没有意义;绝对 AUC 取决于下游数据集划分,随版本变化。

§8.2 SOTA 总结与选型建议

领域共识可总结为三条。其一,小数据 → 域内预训练几乎必赢:标注少于数千张时,RadImageNet 权重是免费的性能与可解释性双提升,应作为默认起点。其二,大数据 → 增益收窄但仍为正,且更稳定:官方图 4 显示大数据集上 RadImageNet 模型跨场景的方差更小(论文),这对需要鲁棒交付的工程团队有价值。其三,2024 年后的域内预训练竞争:Academic Radiology 2024 的多中心甲状腺研究等后续工作继续支持域内预训练方向(论文),但 ViT 时代的最强医学预训练基座已多元竞争(RadImageNet-DINO、REMEDIS 等),RadImageNet 权重仍是 CNN 路线最便捷的选择。

一句话选型:CNN 骨干、少标注、要热图可解释性——直接换上 RadImageNet 权重;大数据集、Transformer 路线——把它当基线对照组而非终点。

§8.3 评测协议

复现官方对比的标准协议(论文 + README):

  1. 输入与损失:下游输入 256×256;损失 binary cross-entropy;输出层 Dropout 0.5 + Softmax。
  2. 微调结构 × 学习率 = 24 场景:freezeall(lr 0.01、0.001)×2、unfreezetop10(lr 0.01、0.001)×2、unfreezeall(lr 0.001、0.0001)×2——三结构六学习率组合共 24 种模拟(README 口径:四结构瓶颈分别配合不同学习率)。
  3. 交叉验证:小数据集五折 CV,每折重建模型并重置随机权重(2022-10-03 修复,坑点 2)。
  4. 统计口径:每任务取 24 场景 AUC 均值±SD;AUC 配对比较用 DeLong 检验,Grad-CAM Dice 用配对 t 检验。
  5. 训练预算:30 epochs,batch 256,ModelCheckpoint 按 val_loss 保存最优。
  6. 报告底线:同时报告 AUC 与定位指标;说明所用代码版本(修复前/后)。
数据集 与 RadImageNet 的关系
ImageNet 对照基线;「自然图像 vs 医学图像」预训练消融的另一侧
CheXpert / ChestX-ray14 / MIMIC-CXR 胸片系大数据集;常被用作 RadImageNet 迁移研究的下游
RadImageNet-VQA 官方 CT/MRI 子集衍生的视觉问答数据集(750 万样本)
fastMRI / NZ-MRI MRI 专项(k 空间重建),与分类标注互补
TCIA 系列专病集 深度标注的专病数据,适合做精细化外部验证
RSNA Intracranial Hemorrhage / CheXpert 类挑战赛数据 与官方出血/肺炎下游任务直接对齐,可用于协议复现

选型建议:做预训练来 RadImageNet,做胸片细粒度去 CheXpert/MIMIC-CXR,做 3D 重建去 fastMRI,做专病深标去 TCIA——四类需求互不替代。

§8.5 关键论文 Top 5

  1. Mei X, Liu Z, Robson PM, et al. RadImageNet: An Open Radiologic Deep Learning Research Dataset for Effective Transfer Learning. Radiology: Artificial Intelligence, 2022, 4(5): e210315. DOI 10.1148/ryai.210315 —— 数据集本体与核心对照实验:域内预训练在 8 任务上全面优于 ImageNet。
  2. Cadrin-Chênevert A. Moving from ImageNet to RadImageNet for improved transfer learning and generalizability. Radiology: Artificial Intelligence, 2022, 4: e220126 —— 官方配发评论,确立其范式意义。
  3. Tavolara TE. Possible Flaw in Recent Publication(含 Yang Yang 回应). Radiology: Artificial Intelligence, 2023, 5(2): e220253 —— 五折权重未重置 bug 的发现与修复记录,CV 严谨性的必读案例。
  4. Butsanets L, Corbière C, Khlaut J, Manceron P, Dancette C. RadImageNet-VQA: A Large-Scale CT and MRI Dataset for Radiologic Visual Question Answering. arXiv:2512.17396, 2025 —— 基于 CT/MRI 子集的 750 万样本 VQA 衍生集。
  5. Exploring the Effect of Domain-Specific Transfer Learning for Thyroid Nodule Classification. Academic Radiology, 2024 —— 域内预训练在甲状腺结节多中心场景的后续验证。

§8.6 社区活跃度

官方 GitHub 仓库(BMEII-AI/RadImageNet)自 2021-09 开源,最后提交为 2023-10 的 PyTorch 示例更新;issues 由作者团队响应(坑点 2 的修复即由 issue #5 触发,两天内更新代码,作者并按期刊规范发布回应信——响应质量高但维护节奏缓慢)。社区通过 fork、Kaggle/Hugging Face 镜像与教学笔记扩散广泛;截至 2026-09,论文引用约 326 次(ResearchGate),衍生工作覆盖 VQA、域内自监督与多中心临床验证。投稿前请以 Google Scholar 实时核对最新引用数。

维护状态的实操含义:数据集本体已进入「稳定冻结」状态,新功能(如 Swin 权重)不可预期;遇到分发细节问题优先翻 issues 历史与 fork 的修改记录,再考虑邮件联系官方;依赖本数据集的长期项目应把「官方渠道不可用时如何自证数据完整性」(哈希核对)写进运维预案。

§8.7 生态快照

资源 类型 链接 推荐理由
官网 数据申请/商业授权 https://www.radimagenet.com/ 唯一官方获取入口
官方 GitHub 代码+权重+划分 https://github.com/BMEII-AI/RadImageNet 一切复现的起点
论文全文 期刊(CC BY 4.0) https://pubs.rsna.org/doi/10.1148/ryai.210315 方法学与协议权威来源
补充材料 期刊 https://pubs.rsna.org/doi/suppl/10.1148/ryai.210315 图 2-5 数据结构细节
RadImageNet-VQA 衍生数据集 https://huggingface.co/datasets/raidium/RadImageNet-VQA CT/MRI 子集 VQA 化
纠错信 期刊 https://radiology.rsna.org/doi/full/10.1148/ryai.220253 坑点 2 的一手记录

§9 相关资源与引用

§9.2 BibTeX 完整引用

@article{doi:10.1148/ryai.210315,
  author  = {Mei, Xueyan and Liu, Zelong and Robson, Philip M. and Marinelli, Brett
             and Huang, Mingqian and Doshi, Amish and Jacobi, Adam and Cao, Chendi
             and Link, Katherine E. and Yang, Thomas and Wang, Ying
             and Greenspan, Hayit and Deyer, Timothy and Fayad, Zahi A. and Yang, Yang},
  title   = {RadImageNet: An Open Radiologic Deep Learning Research Dataset
             for Effective Transfer Learning},
  journal = {Radiology: Artificial Intelligence},
  volume  = {4},
  number  = {5},
  pages   = {e210315},
  year    = {2022},
  doi     = {10.1148/ryai.210315},
  URL     = {https://doi.org/10.1148/ryai.210315}
}

(与官方 GitHub README 提供的引用条目一致。)

§9.3 引用指南

  • 使用数据集或预训练权重:引用 Mei 2022(上述 BibTeX)。
  • 使用官方微调代码或复现对比协议:同时引用 Mei 2022 与 Tavolara 2023 纠错信(说明所用代码版本在 2022-10-03 修复之后)。
  • 使用商业库或生成式图像功能:按官网商业协议要求署名与引用。
  • 使用RadImageNet-VQA:引用 Butsanets 2025(arXiv:2512.17396),并注明上游数据集来源。

写作时的规模口径速查:学术语境写「135 万标注图像、131,872 名患者、165 类」(论文口径);提及官网商业能力时写「官网披露的商业库口径为 500 万+图像」(并附检索日期);预印本的 500 万/45 万口径仅用于版本沿革考证,不得作为规模引用。三种口径一旦混用,审稿与合规审查都会出问题。


§10 AI 使用声明卡

§10.1 AI 模型列表

本页面由大语言模型辅助撰写(初稿生成与结构整理),写作过程中使用了具备网页检索能力的 AI 助手完成事实核查;未使用 AI 生成图像。

§10.2 AI 参与范围

AI 参与:资料检索与汇总(5 次网络检索 + 3 次定点网页核查)、初稿撰写、表格与代码示例整理、格式合规自检。人工参与:事实边界裁定(如规模口径、引用数来源选择)、医学与数据工程内容交叉审核、坑点与 DAIMS 评分复核、最终发布批准。全部关键数字均回溯至 §10.3 所列来源。

§10.3 输入来源列表

  1. Mei X, Liu Z, Robson PM, et al. RadImageNet: An Open Radiologic Deep Learning Research Dataset for Effective Transfer Learning. Radiology: Artificial Intelligence, 2022, 4(5): e210315. DOI 10.1148/ryai.210315. https://pubs.rsna.org/doi/10.1148/ryai.210315
  2. RSNA 补充材料(Figure 1-5 与 Table E1)。https://pubs.rsna.org/doi/suppl/10.1148/ryai.210315
  3. Tavolara TE. Possible Flaw in Recent Publication. Radiology: Artificial Intelligence, 2023, 5(2): e220253. https://radiology.rsna.org/doi/full/10.1148/ryai.220253
  4. Yang Y(通信作者)对 e220253 的回应信(同上链接,含 2021-09-07 开源与 2022-10-03 修复时间线)。
  5. Cadrin-Chênevert A. Moving from ImageNet to RadImageNet for improved transfer learning and generalizability. Radiology: Artificial Intelligence, 2022, 4: e220126(经 Academic Radiology 2024 引文列表核实)。
  6. BMEII-AI/RadImageNet 官方 GitHub README(规模、165 类、权重 Top1/Top5、Swin 预告、联系邮箱)。https://github.com/BMEII-AI/RadImageNet/blob/main/README.md
  7. BMEII-AI/RadImageNet acl/acl_train.py 源码(权重文件名、列名 filename/acl_label、增强参数、24 场景)。https://raw.githubusercontent.com/BMEII-AI/RadImageNet/main/acl/acl_train.py
  8. RadImageNet 官网(500 万图像商业库口径、PET、DICOM tags、商业授权、生成式图像检索)。http://www.radimagenet.com/
  9. RadImageNet 预印本(rs.3.rs-600803,500 万口径、预印本增益数字、标签示例)。https://pdfs.semanticscholar.org/3552/8b52ef26ed4aa1a4fd5e1ecf2621b8853f9e.pdf
  10. RadImageNet Research Use Agreement 协议全文(经 Hugging Face raidium/RadImageNet-VQA 卡片转录)。https://huggingface.co/datasets/raidium/RadImageNet-VQA
  11. Butsanets L, et al. RadImageNet-VQA: A Large-Scale CT and MRI Dataset for Radiologic Visual Question Answering. arXiv:2512.17396, 2025(经 Hugging Face 数据卡与多语言转述页核实)。
  12. Exploring the Effect of Domain-Specific Transfer Learning for Thyroid Nodule Classification. Academic Radiology, 2024. https://www.academicradiology.org/article/S1546-1440(24)00535-0/fulltext
  13. DeepWiki: jliufd/RadImageNet(仓库结构、权重 500 MB/份、五折 CSV 结构)。https://deepwiki.com/jliufd/RadImageNet
  14. ResearchGate 论文页(引用 326 次,截至 2026-09 检索)。https://www.researchgate.net/publication/362308151
  15. PubIndex 论文页(Cited by 294,交叉核对)。https://www.pubindex.ai/paper/W4288068240

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§1 概览与规模口径(135 万 vs 500 万双口径) 千方病案医学编辑部 与论文/官网/GitHub 三源比对 ✅ 已通过/已验证
§2 医学背景与编码映射 千方病案医学编辑部 ICD-11/SNOMED 编码逐条核对 ✅ 已通过/已验证
§3 数据集规格 千方病案医学编辑部 论文方法学逐节比对 ✅ 已通过/已验证
§4-§5 数据结构与划分 千方病案医学编辑部 与官方代码/README 比对 ✅ 已通过/已验证
§6 代码示例与 8 坑点 千方病案医学编辑部 代码逻辑走查 + 坑点溯源 ✅ 已通过/已验证
§7 DAIMS 24 项与外部验证矩阵 千方病案医学编辑部 逐项赋分复核 ✅ 已通过/已验证
§8-§9 基准与引用 千方病案医学编辑部 引用条目与 DOI 核对 ✅ 已通过/已验证

§10.5 AI 生成章节标注

全部章节初稿由 AI 生成,经人工交叉审核后发布;其中 §6.5 坑点 2(官方代码纠错事件)与 §7.7 DAIMS 16.5/24 评分为人工主导裁定内容。

§10.6 最后人工审核日期

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

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



相关数据集导航

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

  • covid-ct — 共享标签:医学影像 / CT / 图像分类
  • sar-covid — 共享标签:医学影像 / CT / 图像分类
  • medpix — 共享标签:医学影像 / CT / MRI
  • fastmri — 共享标签:医学影像 / MRI / 骨骼肌肉影像
  • medical-decathlon — 共享标签:医学影像 / CT / MRI
  • brax — 共享标签:医学影像 / CT / 图像分类
  • ctspine1k — 共享标签:医学影像 / CT / 骨骼肌肉影像
  • amos — 共享标签:医学影像 / CT / MRI
  • chaos — 共享标签:医学影像 / CT / MRI
  • mrnet — 共享标签:医学影像 / MRI / 骨骼肌肉影像

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

返回 AI-Ready 数据集