CT-Bench — DeepLesion 病灶级图文重标注与七任务 CT 视觉问答基准

20,335 个病灶 / 7,795 例 CT / 3,793 名患者的病灶级描述、尺寸与 BBox 资源,叠加 2,850 道四选一难负例 QA,NIH 团队 GPT-4 预标+专家终审流水线产出,Kaggle 公开 CC BY-NC-SA 4.0

来源 DeepLesion 子集(33,688 张 bookmark 图 → 保留 20,335 病灶 / 7,795 检查 / 3,793 患者)的 8-bit 窗化 PNG 关键切片 + BBox 坐标 + PACS 派生病灶描述与标准化尺寸 + RadLex 本体属性表 + 2,850 道七任务四选一 QA(qa_llm.json / qa_clip.json)+ 患者级划分文件 + 复现脚本发布时间: 2026-10-17最后更新: 2026-10-20 阅读 28
CT-Bench — DeepLesion 病灶级图文重标注与七任务 CT 视觉问答基准

信息速览

数据集名称CT-Bench — DeepLesion 病灶级图文重标注与七任务 CT 视觉问答基准
数据类型人工标注,影像数据,原始数据
规模3,793 名患者 / 7,795 例 CT 检查 / 20,335 个病灶实例(训练 2,835 人 / 验证 342 人 / 测试 616 人)
接入方式DeepLesion 子集(33,688 张 bookmark 图 → 保留 20,335 病灶 / 7,795 检查 / 3,793 患者)的 8-bit 窗化 PNG 关键切片 + BBox 坐标 + PACS 派生病灶描述与标准化尺寸 + RadLex 本体属性表 + 2,850 道七任务四选一 QA(qa_llm.json / qa_clip.json)+ 患者级划分文件 + 复现脚本
AI 就绪度

INFOBOX — CT-Bench 一屏速览

维度 内容
本质 DeepLesion 的病灶级图文重标注派生资源 + 七任务多选题 VQA 基准(不是新采集 CT 队列)
团队 NIH(NLM/LHC 为主)+ Howard University College of Medicine + 美国退伍军人事务部放射科;13 作者,通讯 Zhiyong Lu
论文 MELBA 2026:036,pp.739-757(Received 2026-06-19,Published 2026-09-21,doi:10.59275/j.melba.2026-b141);预印本 arXiv:2602.14879v2
规模 20,335 病灶 / 7,795 例 CT / 3,793 名患者;上游 DeepLesion 33,688 张 bookmark 图
划分 患者级不重叠:训练 2,835 人 / 验证 342 人 / 测试 616 人
图像 关键切片 PNG,多为 512×512,8-bit 窗化(源 16-bit 减 32768 得 HU 后裁剪重标定)
文本 PACS 报告派生、经 GPT-4 预标 + 人工复核 + 医学专家核验的逐病灶描述与标准化尺寸
属性 RadLex 本体映射:lesion type 98.9%、body part 98.2%、imaging property 仅 23.8%
QA 2,850 题 / 7 任务 / 1 正 3 难负例;验证 950、测试 1,900;Txt2bbox 仅在有 BBox 条件下设题
最好结果 微调 BiomedCLIP(w/ BBox)平均 62.0%;资深放射科医师平均 80.4%
最大异常 RadFM 微调后 QA 全任务 0.00%,却在 caption 任务上全面最优
获取 Kaggle 公开下载(15.14 GB、约 80.2k 文件),CC BY-NC-SA 4.0
许可要点 上游 DeepLesion 为无使用限制,本资源改以 NC 条款发布——商用需另行评估

§0 导读:这个数据集解决什么问题

0.1 一句话定位

CT-Bench 把 DeepLesion 那句「这里有个病灶」补成了「这里有个什么病灶、多大、在哪个解剖区、属于哪类病变」,并把这件事做成了可以打分的选择题。

DeepLesion 自 2017 年起就是 CT 病灶检测的事实底座:33,688 张带 bookmark 的关键切片、BBox、测量值,公开、免费、无使用限制。但它缺一块——逐病灶的文本。DeepLesion 的文本只存在于体内报告里,而报告原文不公开;留在公开数据里的只有尺寸数字和坐标。于是「图像-文本」这一路的多模态研究,长期只能在胸片上做(MIMIC-CXR 那一类),在 CT 上只能做检测与分割。

CT-Bench 的贡献就是补上这块:从 PACS bookmark 句子里抽出指向该病灶的那一段描述,标准化尺寸表达,映射到 RadLex 本体属性,再据此构造 2,850 道四选一题。它不新增一个病人、不新扫一次 CT,全部来自 DeepLesion 子集。论文在附录 Table S1 里把这层关系写得很直白:CT-Bench 是 “a derived extension of a quality-controlled subset of DeepLesion rather than a newly collected CT imaging cohort”。

0.2 为什么「难负例」是这个数据集的技术核心

多选题的难点从来不在正例,在干扰项。随机抽三个别的病灶当干扰项,模型靠解剖区、靠灰度、靠尺寸量级就能排除——这样的基准测不出东西。

CT-Bench 的做法是:先用 BiomedCLIP 在病灶库里检索视觉相似的病例,再由受过医学训练的评审从中挑出「临床上说得通、但确实不是这个病灶」的描述。论文 Table 2 给了一个具体例子:目标病灶的描述是 “Prevascular radiodensity, compatible with minimal adenopathy”(血管前致密影,符合轻度淋巴结增大),检索返回的相似病例里,相似度 0.91 的是 “Prevascular lymph node”——与输入几乎同义,被 MD 判为「否」;而 0.89 的 “Left hilar lymph node”、0.86 的 “AP window lymph node”、0.80 的 “subcarinal lymph node” 被判为「是」,即合格的难负例。四个选项全部是淋巴结,只是位置不同——模型必须真的看懂那一层切片上病灶挨着谁。

这就是 CT-Bench 与其他 CT 数据集的根本差别:它测的是病灶级的细粒度图文对齐,不是「这张图是不是 CT」。

0.3 这个条目要回答的六个问题

  1. 它和 DeepLesion 到底是什么关系,能不能把它当 DeepLesion 的「豪华版」直接替换?(§2)
  2. 标注是怎么做出来的,GPT-4 在其中承担什么角色,人把关到什么程度?(§3)
  3. 七类任务各自考什么,为什么单切片普遍高于多切片?(§4)
  4. 2,850 题怎么分布,难负例是怎么构造的,选错一个会不会让结论失真?(§5)
  5. 基线模型表现如何,微调 BiomedCLIP 的 62.0% 意味着什么,RadFM 全零又意味着什么?(§6)
  6. 库内已经有 DeepLesion、ULS23、RAD-ChestCT 等一批 CT 病灶与报告数据集,为什么还要这一条?(§9)

0.4 读者速判:三类人值得看,两类人可以跳过

你是 建议
训练 CLIP 式图文模型、需要 CT 域正样本对 重点读 §2、§5.3、§8(微调配置与坑点)
评测医疗 VLM 的空间定位能力 重点读 §4.4(Txt2bbox)、§6.2(BBox 增益的不对称性)
设计标注流水线 重点读 §3(三阶段人机协同 + 标注员质量表)
只想要体素级分割掩膜 跳过,去读库内 uls23(rid 1049)或 ct-lesion-foundation-model(rid 963)
需要胸部 CT 配完整报告做报告生成 跳过,去读库内 rad-chestct(rid 819)

§1 数据集速览:十问十答

Q1:CT-Bench 是什么?
一个 CT 病灶级的多模态资源与评测基准,两部分组成:Lesion Image and Metadata Set(20,335 病灶)和 QA Benchmark(2,850 题)。

Q2:谁做的?
NIH 团队主导。13 位作者中 11 位署 NIH(Bethesda, MD),一位来自 Howard University College of Medicine,一位来自美国退伍军人事务部放射科。通讯作者 Zhiyong Lu 长期负责 NLM 的医学信息学与影像 AI 工作;Ronald M. Summers 是 DeepLesion 的原始作者之一,因此这条派生链在机构上是连续的。

Q3:和 DeepLesion 什么关系?
派生关系,不是替代关系。影像、BBox、测量值、元数据全部继承 DeepLesion;CT-Bench 新增的是逐病灶文本、标准化尺寸表达、RadLex 属性、患者级划分与 QA 集。上游全量 33,688 张 bookmark 图,经纳入排除后保留 20,335 个病灶,保留率约 60.4%。

Q4:规模多大?
20,335 个病灶实例,来自 7,795 例 CT 检查、3,793 名患者。Kaggle 下载包 15.14 GB,约 80.2k 个文件。

Q5:一条病灶记录里有什么?
关键切片 PNG(有/无 BBox 叠加两个版本)、BBox 坐标、PACS 派生描述、标准化尺寸、年龄性别、层厚层距、像素间距、DICOM 窗值、归一化位置、划分标签、结构化属性。合并后的元数据表共 32 列。

Q6:QA 考几类任务?
七类:Img2txt、CT2txt、Txt2img、Txt2bbox、Img2size、Img2attrib、CT2attrib。前五类考「图文对不对得上」,后两类考「病灶是什么性质」。

Q7:2,850 题怎么分?
验证集 950、测试集 1,900。每道题在「不给 BBox」与「给 BBox」两种条件下各出一份,唯一的例外是 Txt2bbox——不给 BBox 就没法做定位题,所以它只有 w/ 版本(验证 50、测试 100)。

Q8:最难的任务是什么?
Txt2bbox。零样本模型普遍在 0-36% 之间徘徊,LLaVA-Med 与 RadFM 直接 0.00%;即使微调后的 BiomedCLIP 也只到 67.0%。

Q9:最好的模型到什么水平?
微调 BiomedCLIP 在有 BBox 条件下平均 62.0%,整体平均 50.3%。资深放射科医师平均 80.4%(无 BBox 68.3%、有 BBox 90.3%)。差距仍在 18 个百分点以上。

Q10:怎么拿?能商用吗?
Kaggle 公开下载,无需申请。数据许可为 CC BY-NC-SA 4.0——署名、非商业、相同方式共享。注意上游 DeepLesion 本身是无使用限制的,CT-Bench 在派生时加了 NC 条款,商用请以 Kaggle 数据卡上的许可文本为准。

§2 数据构成与规格

2.1 三层同构:从患者到病灶的编号体系

CT-Bench 的每条记录都挂在四级标识下:患者(patient)→ 检查(study)→ 图像(image / key slice)→ 病灶(lesion)。这四级标识在发布前全部替换为研究编号,姓名、病历号、检查号、直接日期字段一律删除或替换。

这套编号体系的价值在于:划分是患者级做的。论文明确写「splits are disjoint at the patient level」,同一名患者的多次检查不会被拆到训练集和测试集两侧。对 CT 尤其重要——同一患者随访随访再随访,病灶位置和形态高度相似,若按检查或按病灶随机划分,测试集分数会被同一患者的近重复样本抬高。

子集 患者 男 女 检查 病灶
训练 Training 2,835 1,516 1,319 5,875 15,380
验证 Validation 342 181 161 667 1,758
测试 Test 616 367 249 1,253 3,197
合计 Total 3,793 2,064 1,729 7,795 20,335

按此表可算出:训练集占总患者 74.7%、总病灶 75.6%;测试集占 16.2% 患者、15.7% 病灶。测试集不是「小而全」的微型切片,而是 616 人、1,253 例检查、3,197 个病灶的中等规模评测集——这使得单任务 200 题的测试成绩,其置信区间宽度大致在 ±6 个百分点量级(二项分布粗估),读数字时必须记住这一点。

年龄分布(论文 §5.3):中位 55 岁;小于 18 岁 174 人,18-39 岁 754 人,40-59 岁 1,399 人,60-79 岁 1,401 人,80 岁及以上 65 人。青少年与高龄两端都很薄,儿科与老年亚组的结论要谨慎。

2.2 从 33,688 到 20,335:纳入排除的账

上游 DeepLesion 全量是 33,688 张 bookmark 图、10,825 例检查、4,477 名患者。CT-Bench 保留 20,335 个病灶、7,795 例检查、3,793 名患者。

口径 DeepLesion 全量 CT-Bench 保留率
bookmark 图 / 病灶 33,688 20,335 60.4%
检查 10,825 7,795 72.0%
患者 4,477 3,793 84.7%

保留率一栏为本文按两版数字自算,论文未直接给出百分比。

病灶层保留率(60.4%)显著低于患者层(84.7%),说明被剔除的主要是「同一患者的部分病灶」,而不是整名患者被清理。这与论文给出的排除条件吻合:纳入要求该病灶有可用图像、有效 bookmark 或 BBox、可从 PACS 文本中唯一映射到该 bookmark、且通过去标识与质量控制;排除的是图像不可读、BBox 缺失或无效、文本无法唯一映射到目标病灶、尺寸无法标准化、或含无法安全去标识的 PHI 的记录。

「文本无法唯一映射」是最大的一类损耗。PACS 报告里一句 “Unchanged right lower lobe lung nodule OTHER_BMK (0.6 cm x 0.4 cm) and right lower lobe fissural likely lymph node BOOKMARK (0.6 cm x 0.3 cm)” 同时涉及两个病灶,bookmark 只标了后者;附录 Table S2 把这类情况列为「同一区域多病灶、需消歧」,并给出对应的正确处理——只保留裂旁淋巴结那条描述、尺寸取 0.6×0.3 cm。

2.3 图像规格:8-bit 窗化 PNG 的取舍

CT-Bench 发布的是关键切片 PNG。技术路径写得很清楚:

  1. 源为 DICOM 派生切片,DeepLesion 惯例存 16-bit 无符号整数,像素值带 32768 偏移,减去 32768 即得 HU;
  2. CT-Bench 按元数据中的 DICOM 窗值裁剪 HU,再线性重标定为 8-bit PNG,值域 [0,255];
  3. 同时提供有 BBox 叠加与无 BBox 叠加两个版本。

这一步是典型的「为模型就绪而牺牲可逆性」。好处是开箱即用,任何图像库直读;代价是:

  • 量化损失:整条窗内的 HU 被压缩到 256 级。软组织窗(窗位 50、窗宽 400)压缩后每级约 1.57 HU,对结节内部密度差异的判别影响不大,但对需要细微灰度差的判读(如脂肪与囊性成分)会有损。
  • 窗选择被固化:论文给的是软组织窗(C=50,W=400)的表达,也就是把肺窗、骨窗信息的取舍交给了这个默认窗。要复现或改窗,需要回到 16-bit 源图并自行窗化。
  • 可逆性:8-bit 图不能反推回原始 HU。若研究涉及绝对密度定量,必须回 DeepLesion 原始数据。

图像元数据(论文 §5.4):多为 512×512;面内像素间距中位 0.816 mm/px,四分位区间 [0.732, 0.877];层距中位 2.0 mm,四分位区间 [1.0, 5.0]。层距跨度从 1 mm 细扫到 5 mm 厚层,这直接影响 Img2size 任务的可解性——尺寸由像素直径乘像素间距推算,长轴判断靠的正是这两项。

有一项要特别注意:扫描仪厂商、型号、管电压、管电流、重建算法、对比期相,全部不可得。论文的处理是不插补,在数据字典里标为 unavailable。这意味着任何「按设备分层」的公平性分析都做不了,也是 §10 里的坑点之一。

2.4 尺寸分布:一个偏中等的病灶库

论文 Table S5 按长轴尺寸分四档(由像素级病灶直径与面内像素间距推算):

长轴尺寸 病灶数 占比
< 1 cm 3,632 17.9%
1 - < 3 cm 11,809 58.1%
3 - < 10 cm 4,681 23.0%
≥ 10 cm 213 1.0%
合计 20,335 100.0%

这组数字解释了 Img2size 任务为什么「看起来容易、实际很难」:58.1% 的病灶落在 1-3 cm 这一档,而 Img2size 的四个选项正是「<1.0 cm / 1.0-3.0 cm / 3.0-10.0 cm / >10.0 cm」。先验猜「1-3 cm」就能拿到 58% 的准确率——这比随机基线 25% 高出一倍多。因此 Img2size 的成绩必须与「全猜中间档」的 58% 基线对照才有意义,这一点论文没有显式做,是本条目补的一个重要读法。

同理,≥10 cm 只有 1.0%(213 例),在 100 题的测试集里平均只出现 1 题,这一档的分类成绩波动极大。

2.5 元数据 32 列:哪些能用,哪些缺

合并后的元数据文件(CT-Bench-Final-Merged-with-DeepLesion-Metadata.csv)共 32 列,涵盖:

类别 字段
标识 患者、检查、图像、病灶四级研究编号
人口学 年龄、性别
定位 key slice 序号、BBox 坐标、measurement 坐标、归一化病灶位置、slice range
影像几何 图像尺寸、像素间距、层距、DICOM 窗值
病灶度量 像素级病灶直径
结构 划分标签、结构化病灶属性

完整性(论文 Table S4):BBox 坐标、measurement 坐标、像素直径、归一化位置、图像尺寸/像素间距/DICOM 窗、年龄性别、文本尺寸字段——全部 20,335/20,335(100%);BBox 合理性检查通过 20,328 例,7 例轻微越界(已记录),0 例翻转框。

结构化属性的完整性则参差得多:

属性 覆盖 占比
lesion type 20,103 98.9%
body part 19,960 98.2%
imaging property 4,841 23.8%

影像属性只有约四分之一覆盖,直接决定了 §4.5 讨论的属性任务可分层能力有限。

2.6 病灶类型与解剖区:谁在库里有话语权

结构化标签是多标签制,因此百分比之和不为 100%。高频标签(论文 Table S7):

Lesion type 前五:mass 5,458 (26.8%)、enlargement 4,887 (24.0%)、nodule 4,006 (19.7%)、lymphadenopathy 3,687 (18.1%)、lung nodule 2,518 (12.4%)。

Body part 前五:chest 9,207 (45.3%)、abdomen 9,100 (44.8%)、lymph node 6,425 (31.6%)、upper abdomen 5,953 (29.3%)、lung 4,759 (23.4%)。

Imaging property 前五:hypoattenuation 1,575 (7.7%)、enhancing 1,008 (5.0%)、large 404 (2.0%)、calcified 396 (1.9%)、solid 315 (1.5%)。

这组分布有两个直接后果。第一,胸腹几乎对半分,胸部 45.3%、腹部 44.8%,“lymph node” 作为 body part 之一占 31.6%——说明这个库相当大一部分是淋巴结。「淋巴结增大(enlargement)」以 24.0% 位居类型第二也印证了这一点。第二,影像属性里的 “large” 是尺寸性描述被误编进了属性体系,与 Img2size 任务存在语义重叠,做属性任务时应留意这一项。

2.7 与上游的数据血缘图

NIH Clinical Center PACS(回顾性)
   │  临床报告 + 放射科医师 bookmark
   ▼
DeepLesion(2017,33,688 图 / 10,825 检查 / 4,477 患者)
   │  无使用限制;公开 Box 下载
   │  ├── 影像 + BBox + 测量值(继承)
   ▼
CT-Bench(2026,20,335 病灶 / 7,795 检查 / 3,793 患者)
   │  新增:PACS 派生描述、标准化尺寸、RadLex 属性、患者级划分
   │  新增:2,850 题七任务 QA(含难负例)
   │  CC BY-NC-SA 4.0;Kaggle 公开
   ▼
下游(预期):CT 图文预训练 / VLM 微调 / 病灶检索 / 空间定位评测

血缘图里有一个容易被忽略的转折:许可沿派生链收紧了。上游 DeepLesion 是无使用限制(可商用),CT-Bench 发布时选择 CC BY-NC-SA 4.0(禁止商业使用、衍生需同许可)。使用方若基于 CT-Bench 训练模型,模型权重本身不受 CC 约束,但训练数据的再分发与衍生数据集必须遵守 NC-SA。这条差异在 §7 展开。

§3 注释流水线:GPT-4 预标、人做终审

3.1 三个难点,决定了流水线的形状

论文先把「从 PACS bookmark 句子里抽出单病灶描述」这件事的困难列成三条:

  1. 描述复杂度:一句话里可能包含多个病灶,需要精确消歧。附录 Table S2 的五条示例全部属于这一类——同一区域两个结节、模糊比较语(“another smaller more inferior low-density area”)、前置血管病变与目标淋巴结并存。
  2. 术语一致性:同一事物多种说法(“foci” vs “focal lesion”、“enlarged” vs “largest”)。不统一,检索和评测都不可复现。
  3. 标注者差异:有医学学位(MD)的标注者准确率显著高于无医学训练背景的 PhD。

第三条被量化了。论文 Table S3 给出初始阶段(Stage 1)的标注准确率:三名 PhD 分别为 56.0%、73.0%、61.5%,而一名 MD 为 93.0%。这个 30 个百分点的鸿沟,直接决定了流水线必须把「医学专家核验」写成硬环节,而不是可选步骤。

3.2 三阶段流水线

阶段 输入量 做什么 谁把关
Stage 1 冷启动 200 例 GPT-4 基于放射科医师 PACS 标注生成初步结构化描述与尺寸字段;标注员协作讨论纠错 人工复核后用于微调 GPT-4
Stage 2 迭代 每轮新批 100 例,共 3 轮 微调后的 GPT-4 预标;标注员迭代反馈修正;每轮修正数据再微调 标注员群体
Stage 3 规模化 剩余全量 终版微调 GPT-4 预标全部训练/验证/测试数据 验证/测试:2 名标注员审核 + 医学专家核验;训练:1 名标注员 + 医学专业人员核验

关键是最后一句:“Final labels were not accepted automatically.” 预标注不是标签,只是待审草稿。论文把这一点写在了方法节里,是本条目认为最值得抄走的一条工程纪律。

3.3 标注质量随轮次的变化

Table S3 的完整数据:

标注者 / 模型 Stage 1 Stage 2 R1 Stage 2 R2 Stage 2 R3
Annotator 1 (PhD) 56.0 90.0 95.0 86.0
Annotator 2 (PhD) 73.0 93.0 89.0 89.0
Annotator 3 (PhD) 61.5 85.0 91.0 86.0
Annotator 4 (PhD) 60.0 – 88.0 85.0
Annotator 5 (MD) 93.0 96.0 94.0 96.0
微调 GPT-4 – 89.0 88.0 88.0

三点读法:

  • 微调效果真实且收敛:GPT-4 从「需要 200 例微调」到三轮稳定在 88-89%,与最弱的 PhD 标注员(85-86%)同档,但比 MD(94-96%)低 6-8 个百分点。模型的上限由微调语料的质量决定,而微调语料来自人工纠错。
  • PhD 标注员存在明显回落:Annotator 1 从 R2 的 95.0 回落到 R3 的 86.0,Annotator 3 从 91.0 回落到 86.0。三轮迭代本身不保证单调改进,疲劳或批次难度变化都会造成回落——单看某一轮数字会高估流水线稳定性。
  • MD 是稳定器:MD 标注员从 93.0 到 96.0/94.0/96.0,波动幅度远小于 PhD。这为「关键环节用 MD、规模环节用 PhD + 模型」的分工提供了经验依据。

3.4 成本结构:谁承担了什么

从流水线的形状可以反推成本分工:

  • GPT-4 承担「第一稿」:把 PACS 报告的自然语言重写成「部位 + 病灶类型 + 性质 + 尺寸」的结构化句式。这一步原本需要标注员逐条读报告、判断指代、抄写尺寸。
  • PhD 标注员承担「批量纠错」:每条只做判断「改不改、怎么改」,不做从零撰写。
  • MD 承担「疑难裁决与终审」:多病灶句、模糊比较语、术语冲突由医学培训人员 adjudicate。

论文对这种分工的描述是:医学培训人员参与「标注指南制定、复核、裁决与最终核验,尤其针对涉及多病灶、指代不明或术语困难的模糊案例」。这句话暗示了流水线的瓶颈——模糊案例的比例决定了 MD 的工时,而模糊案例正是被排除规则挡在门外的那 40% 的主要来源。

3.5 与本次生成式流水线的可迁移经验

三条:

  1. 先微调,再规模化:不要用通用大模型直接跑全量。200 例冷启动微调换来的,是后续每批 100 例的稳定产出。这个「200 例」的量级值得记住。
  2. 预标 ≠ 标签:把「模型初稿」和「金标准」在数据流上物理分开。CT-Bench 的做法是 Stage 3 仍强制人工核验,训练集也没有免检。
  3. 用 MD 校准、用 PhD 扩容:MD 的 93% 与 PhD 的 56-73% 说明,不是「有学位就能标」。若预算有限,至少让 MD 审「模糊案例池」。

3.6 与人工全标的对比

DeepLesion 原版没有逐病灶描述,因此「CT-Bench 相比人工全标省了多少」无法直接量化。但可以从保留规模反推:20,335 条描述若全部由 MD 从零撰写,按每条 1-2 分钟的保守估计需要 340-680 人时;采用「模型预标 + PhD 纠错 + MD 终审」后,MD 的介入点集中在疑难裁决,PhD 的介入点是「读一条、判改不改」。这是用质检结构压缩专家工时,而不是用模型替代专家。

§4 七类任务逐一解剖

4.1 任务全景

任务 输入 候选 考什么
Img2txt 1 张病灶切片 4 条描述 看图选对描述
CT2txt 9 张连续切片 4 条描述 多切片上下文下的描述匹配
Txt2img 1 条描述 4 张图 按描述检索图像
Txt2bbox 1 条描述 4 张带框图 按描述定位到正确的框
Img2size 1 张病灶切片 4 个尺寸档 尺寸区间估计
Img2attrib 1 张病灶切片 4 个本体属性 单切片属性识别
CT2attrib 9 张连续切片 4 个本体属性 多切片属性识别

七类任务分两组:对齐组(Img2txt、Txt2img、CT2txt、Txt2bbox)测的是图像与文本是否落在同一语义点;推理组(Img2size、Img2attrib、CT2attrib)测的是从图像里读出结构化属性。Txt2bbox 是唯一带空间约束的对齐题——它要求模型不仅知道「这是淋巴结」,还要知道「在哪一层、哪个框」。

4.2 Img2txt 与 CT2txt:单切片为什么赢了

Img2txt 给单张病灶切片,CT2txt 给 9 张连续切片(关键层 + 前 4 + 后 4)。直觉上多切片信息更多,应该更好。实测相反:

模型 Img2txt (w/o → w/) CT2txt (w/o → w/)
BiomedCLIP 零样本 38.0 → 42.5 37.0 → 42.0
Gemini 1.5 Pro 27.0 → 38.5 27.0 → 25.0
GPT-4V 27.5 → 26.5 24.0 → 22.0
Dragonfly 27.0 → 26.5 24.5 → 26.5
微调 BiomedCLIP 38.5 → 68.0 40.5 → 62.0
资深放射科医师 1 100.0 → 90.0 80.0 → 60.0
资深放射科医师 2 70.0 → 100.0 80.0 → 70.0

数字取自论文 Table S11。单切片普遍不劣于甚至优于多切片,这一点对人和对模型都成立:医师 1 在 Txt2img 上无 BBox 条件下拿 100%,在有 BBox 条件下反而降到 90%;两人在 CT2txt 上的成绩都不如自己 Img2txt 的成绩。

一个合理的解释是:CT 的相邻切片对多数病灶只提供「上下边界」信息,而对描述任务真正有用的判别线索(形态、位置、与邻近解剖的关系)在关键层已经完整。多切片反而引入了更多待消解的视觉元素,模型把注意力分散了。对 CLIP 式模型尤甚——CT2txt 的 9 张图是分别编码后加权合并(论文 Table S8),合并方式本身就是一个引入误差的环节。

这条观察的实用价值:如果你的任务只需要「这是什么病灶」,用单切片训练更省算力,效果不差。

4.3 Txt2img:检索方向的难度不对称

Txt2img 是给描述找图。所有 CLIP 式模型在这个方向都明显弱于反方向。

模型 Txt2img (w/o → w/) Img2txt (w/o → w/)
PMC-CLIP 24.5 → 24.5 30.0 → 33.0
BiomedCLIP 26.5 → 34.5 38.0 → 42.5
微调 BiomedCLIP 29.0 → 57.5 38.5 → 68.0
Gemini 32.5 → 30.0 27.0 → 38.5

BiomedCLIP 零样本在 Img2txt 上 38.0%,在 Txt2img 上只有 26.5%——差了 11.5 个百分点,仅略高于随机基线 25%。PMC-CLIP 更是几乎没有区分度(24.5% 对随机 25.0%)。

这与跨模态检索的经典现象一致:图像侧的特征更「具体」,文本侧的特征更「概括」,从具体找概括容易,从概括找回具体难。难负例的设计使这个方向更难——四个候选都是视觉相似的病灶,模型必须抓住描述里的那个关键限定词(“left hilar” vs “subcarinal”)才能选对。

微调把 Txt2img 从 29.0% 拉到 57.5%,提升 28.5 个百分点,是所有任务里绝对增幅最大的之一。这说明 CT-Bench 的病灶描述-图像对,对 CLIP 式模型的检索能力训练价值很高。

4.4 Txt2bbox:全库最难的一题

Txt2bbox 只在有 BBox 的条件下设题(验证 50 题、测试 100 题),因为它的选项是「4 张带框图,选出框对了的那张」。

模型 Txt2bbox (w/)
随机 25.00
PMC-CLIP 19.00
RadFM 3.00
LLaVA-Med 0.00
Dragonfly 26.00
GPT-4V 30.00
Gemini 36.00
BiomedCLIP 零样本 35.00
微调 BiomedCLIP (w/o BBox 训练) 29.00
微调 BiomedCLIP (w/ BBox 训练) 67.00
资深放射科医师 1 100.0
资深放射科医师 2 100.0
初级医生 80.0

这张表是本条目认为最有信息量的一张:

  • 零样本 VLM 在地面失败。RadFM 3.00%、LLaVA-Med 0.00%——它们能「说话」,但完全不做空间定位。这不是能力不足,是任务类型不在它们的训练分布里。
  • 两位资深放射科医师都是 100%,初级医生 80%。定位是医师的基本功,而模型的最好成绩只有 67%。这是整张基准里人机差距最大的一项,比平均分的 18 个百分点差距更刺眼。
  • 训练时有没有见过 BBox,决定了近 40 个百分点的差距:同一个 BiomedCLIP 模型,用无框图训练得 29.00%,用带框图训练得 67.00%。这说明 BBox 叠加图像本身是一种有效的监督信号——模型不是学会了「找病灶」,而是学会了「对齐框与描述」。

对做空间定位研究的团队,Txt2bbox 值得单独当一个小基准用,100 题的测试集虽然小,但难度足够区分强弱。

4.5 Img2size:58% 的先验陷阱

Img2size 的四个选项是固定的四档:<1.0 cm、1.0-3.0 cm、3.0-10.0 cm、>10.0 cm。

结合 §2.4 的尺寸分布(1-3 cm 占 58.1%),可得一个必须挂在墙上的对照基线:全猜「1.0-3.0 cm」的准确率约 58%。

模型 Img2size (w/o → w/) 对比 58% 先验
PMC-CLIP 20.00 → 16.00 远低于
BiomedCLIP 30.00 → 38.00 低于
GPT-4V 30.00 → 23.00 低于,且加框后更差
Gemini 32.00 → 50.00 仍低于
Dragonfly 37.00 → 33.00 低于
微调 BiomedCLIP 43.00 → 46.00 低于
资深放射科医师 1 40.0 → 100.0 加框后远超
资深放射科医师 2 80.0 → 100.0 加框后远超

没有任何一个模型超过「全猜中间档」的 58% 先验。 最好的 Gemini(有框)50.0%,微调 BiomedCLIP 46.0%。而两位资深医师在有框条件下都是 100%——因为他们看的是框的绝对像素尺寸乘以已知的像素间距,这是纯几何问题,不需要「推断」。

这个对比揭示了一个朴素但常被忽略的结论:尺寸估计对模型而言不是「看懂」问题,而是「测量」问题。BBox 给了,答案几乎是确定的;模型却仍在 50% 上下,说明它们没有学会把框的像素长度换算成物理尺寸。这也解释了为什么 Img2size 在有框条件下的增益对人是断崖式的(40→100),对模型却是有限的。

4.6 Img2attrib 与 CT2attrib:属性任务的分水岭

属性任务给 4 个本体派生属性(部位/类型/性质三选其一),选对的那个。

模型 Img2attrib (w/o → w/) CT2attrib (w/o → w/)
PMC-CLIP 27.00 → 28.00 26.00 → 29.00
BiomedCLIP 44.00 → 57.00 37.00 → 42.00
Dragonfly 49.00 → 51.00 44.00 → 42.00
GPT-4V 37.00 → 44.00 31.00 → 38.00
Gemini 40.00 → 51.00 36.00 → 37.00
RadFM 18.00 → 18.00 17.00 → 19.00
微调 BiomedCLIP 54.00 → 67.00 44.00 → 44.00

几个值得注意的点:

  • BiomedCLIP 零样本在属性任务上反而强于描述任务(57.0% vs 42.5%)。属性词(“enhancing”、“calcified”、“hypoattenuation”)比完整描述句更接近 CLIP 训练时见过的短语粒度,检索式匹配更容易对齐。
  • CT2attrib 的 BBox 增益为零:微调 BiomedCLIP 在 CT2attrib 上 w/o 与 w/ 都是 44.00%。多切片条件下,框的叠加对模型没有额外信息——可能因为 9 张图分别编码后加权,框的位置信息在融合时被稀释了。
  • RadFM 在属性任务上稳定在 17-19%,低于随机。这是一个「负信号」,说明它在这类判别任务上的输出分布是系统性偏离的,不是随机。

4.7 七任务的一张横向速查

任务 随机 最好零样本 最好微调 资深医师 主要短板
Img2txt 25.0 42.5 (BiomedCLIP) 68.0 90-100 描述粒度不匹配
CT2txt 25.0 42.0 (BiomedCLIP) 62.0 60-70 多切片融合损失
Txt2img 25.0 34.5 (BiomedCLIP) 57.5 70 检索方向不对称
Txt2bbox 25.0 36.0 (Gemini) 67.0 100 模型无空间定位能力
Img2size 25.0 50.0 (Gemini) 46.0 100 不会做像素-物理换算
Img2attrib 25.0 57.0 (BiomedCLIP) 67.0 60-100 属性覆盖不均
CT2attrib 25.0 42.0 (Dragonfly) 44.0 40-100 BBox 增益消失

(「资深医师」一列为两位医师在该任务上的区间;数据取自 Table S11,样本为每任务每条件约 10 例的抽样子集。)

§5 QA 基准的构造与分布

5.1 2,850 题怎么来的

QA 集不是独立收集的,而是从 Lesion Image and Metadata Set 里程序化生成的。流程是:取一条病灶记录 → 把它自己的描述/图像/框/属性作为正例 → 从难负例池里取 3 个干扰项 → 拼成 A-D 四选一 → 分配给某个任务、某个划分、某种条件下(w/o 或 w/ BBox)。

这意味着两个性质:第一,QA 的覆盖面严格受元数据覆盖约束——影像属性只有 23.8% 覆盖,属性类题目的可选题源就比别人少;第二,同一病灶可能在多个任务里出现,题数不等于独立样本数。

5.2 分布表

任务 验证 w/o 验证 w/ 测试 w/o 测试 w/ 合计
Img2txt 100 100 200 200 600
CT2txt 100 100 200 200 600
Txt2img 100 100 200 200 600
Txt2bbox – 50 – 100 150
Img2attrib 50 50 100 100 300
CT2attrib 50 50 100 100 300
Img2size 50 50 100 100 300
合计 450 500 900 1,000 2,850

验证集 950、测试集 1,900。前三个任务各占 21.1%,后四个各占 10.5%(Txt2bbox 为 5.3%)。

一个必须注意的口径问题:Txt2bbox 没有 w/o 版本,因此「w/o 平均」只在 6 个任务上算,「w/ 平均」在 7 个任务上算。论文 Table 4 的平均值正是这样算的——这会让「有框 vs 无框」的直接对比混入一个只在有框下设题的任务差异。严格比较应按同任务子集做配对,本条目在附录表里标注了这一点。

5.3 难负例的三种造法

任务组 造法 把关
Img2txt / Txt2img(文本干扰项) BiomedCLIP 检索视觉相似病例,取其描述 医学培训评审从中挑「临床上说得通、但不是本病灶」的 3 条
Txt2bbox(框干扰项) 从视觉相似检索图中取 BBox,筛选与目标不重叠者 规则 + 医学评审
Img2attrib / CT2attrib(属性干扰项) 由本体派生的 body-part / lesion-type / lesion-property 候选 医学培训评审

论文对这三个来源的统一定位是:让基准对「细粒度图文对齐」和「病灶级推理」敏感。Figure 2 给出的流程示意是:一个相似度从 0.91 递减到 0.80 的检索结果列表,MD 逐个判「是/否」,同义项(0.91 的 Prevascular lymph node 对 Prevascular radiodensity)被判否,相邻解剖区但不同位置的四项被判是。

这套设计的技术含量在于「难度校准」:相似度太低,干扰项一眼可排除;相似度太高,正例本身都不确定。0.89、0.86、0.80 这三个相似度恰好落在「外观接近、语义不同」的区间。

5.4 难负例带来的两个副作用

副作用一:正例的语义边界变窄。 如果 “Prevascular radiodensity, compatible with minimal adenopathy” 与 “Prevascular lymph node” 被判为不同选项,那么模型要学的不是「这是淋巴结」,而是「这是血管前致密影而非血管前淋巴结」。这提高了判别精度,但也使任务更接近「术语辨析」而非「临床意义判读」。对训练数据而言,这意味着标注的术语一致性极为关键——这也是论文把「术语一致性」列为三大难点的原因。

副作用二:干扰项的构造方式本身引入了检索模型偏差。 用 BiomedCLIP 检索相似病例,等于用 BiomedCLIP 的嵌入空间定义「视觉相似」。如果 BiomedCLIP 恰好忽略了某些关键视觉特征,那么难负例就不会覆盖这些特征——基准的难度分布被构造工具的偏好所塑造。论文没有做「换一个检索模型重造难负例,成绩是否变化」的消融,这是一个可做的后续实验。

5.5 正负例比例与猜测基线

每题 1 正 3 负,四选一,随机基线 25.0%。所有表格里的 Random 行都是 25.0(Txt2bbox 受 4 个选项约束,也是 25.0)。

需要注意的是,四个选项的类别先验并非均匀。以 Img2attrib 为例,若 4 个候选都来自本体派生,而「mass」在库中占 26.8%,那么「看到不认识的图就猜 mass」的期望准确率会略高于 25%。这一偏差的量级取决于生成时是否做类别平衡,论文未披露,属于待核项。

5.6 QA 文件的双版本设计

Kaggle 包里 QA 有两个 JSON:qa_llm.json 与 qa_clip.json。两版的题目、答案、图像选项完全相同,差别只在输入组织方式:

任务 CLIP 式输入 LLM 式输入
Img2txt 图像 + 4 条描述文本 提示词 + 图像 + 问题 + A-D 描述
CT2txt 9 张切片分别编码后加权合并 + 4 条描述 9 张切片拼成一张图 + 问题 + A-D
Txt2img 描述 + 4 张候选图 2×2 图网格 + 问题 + A-D
Txt2bbox 描述 + 4 张带框图 2×2 带框图网格 + 问题 + A-D
Img2size 图像 + 4 个尺寸档文本 提示 + 图像 + 4 个尺寸区间
Img2attrib 图像 + 4 个属性文本 提示 + 图像 + 4 个属性
CT2attrib 9 张切片分别编码后合并 + 4 个属性 9 张切片拼接图 + 4 个属性

这个双轨设计的实用价值很高:同一套题可以同时评测两类架构,且保证比较的是同一个东西。很多基准要为 CLIP 和 VLM 各写一套题,导致分数不可比;CT-Bench 用「同一题、两种喂法」绕过了这个问题。

注意 LLM 式的 2×2 图网格:对 Txt2img/Txt2bbox,四张候选图被拼成一张 2×2 大图,靠位置(左上/右上/左下/右下)对应 A-D。这个拼接方式会让模型看到「四图同框」,与 CLIP 式的「四图独立」在信息结构上不同,严格说不是完全等价的输入。

§6 评估结果:谁做到了什么

6.1 受测模型阵容

模型 类别 版本/设置 是否微调
GPT-4V 通用 VLM(API) 2024-02-15-preview(Azure),temperature 0 否
Gemini 通用 VLM(API) Pro 1.5,temperature 0,top-k 32 否
BiomedCLIP 医学 CLIP PubMedBERT 基底,context 256 是
PMC-CLIP 医学 CLIP PMC_CLIP_beta,max len 77 否
Dragonfly 医学 VLM Biomed checkpoint 否
RadFM 医学 VLM 官方 checkpoint,max len 2048 是
LLaVA-Med 医学 VLM v1.5 否
BiomedGPT 医学 VLM 官方 checkpoint 未出现在测试结果表

BiomedGPT 在 Table S9 的配置表中出现,但 Table S11 的测试结果里没有它的行——这是一处口径缺口,本条目按「配置列了、结果未报」记录。

6.2 精选指标:BiomedCLIP 的两级跳

Table 4 的全集平均(跨任务):

设置 w/o BBox w/ BBox 总平均
随机基线 25.0 25.0 25.0
BiomedCLIP 未微调 34.9 41.0 38.1
BiomedCLIP 用 CT-Bench 微调 37.1 62.0 50.3
资深放射科医师平均 68.3 90.3 80.4
初级医生 45.5 68.5 58.2

6.3 Caption 任务上微调 RadFM 全面最优

模型 BLEU-1 METEOR ROUGE-1 BERTScore F1 CosineSim
RadFM 零样本 (w/) 0.0779 0.1034 0.0604 0.8525 0.3325
Dragonfly (w/) 0.1685 0.2242 0.1250 0.8681 0.4082
Gemini (w/) 0.1021 0.2027 0.0954 0.8582 0.4730
微调 RadFM (w/o) 0.2258 0.2142 0.1302 0.8811 0.4567
微调 RadFM (w/) 0.2448 0.2382 0.1507 0.8878 0.4911

微调把 RadFM 的 BLEU-1 从 0.0779 拉到 0.2448(3.1 倍),ROUGE-1 从 0.0604 拉到 0.1507(2.5 倍),五项指标全部第一。RadFM 不是不擅长 CT-Bench,是只擅长生成式侧。

6.4 RadFM 的全零:整份基准里最值的异常

Table S11 里,微调 RadFM 的表现是:

Img2txt CT2txt Txt2img Txt2bbox Img2attrib CT2attrib Img2size 平均
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

两个版本(w/o box 与 w/ box)全部 0.00,七个任务、两种条件,一共 14 个格子全是零。

论文的解释只有一句:catastrophic forgetting(灾难性遗忘)——在多选题格式上微调后,模型丢失了它原来能做的判别能力。但同一份微调数据集在 caption 任务上让 RadFM 成为最佳模型,这说明问题不在数据质量,而在任务格式与模型能力的错配。

对使用者的三条提醒:

  1. 不要把这一行当成「RadFM 很差」的证据。它在 caption 上是最强的。它只是不擅长四选一的格式。
  2. 微调可能破坏判别能力。如果你的下游需要模型既能生成又能选择,微调策略必须分别验证两类能力,不能只看训练 loss。
  3. 全零本身可能是一个工程事故的信号。七任务 × 两条件全为 0.00 的概率,在「模型随机猜测」假设下是 (0.25)^14,实际发生说明输出格式没被正确解析(比如模型总是输出一句自然语言而不是 A/B/C/D),而不是模型在 14 个任务上都恰好全错。论文未提供输出解析日志,本条目把它记为「需复核的异常」,而非直接采信灾难性遗忘的解释。

6.5 零样本模型里谁最能打

按 w/ BBox 条件平均:Gemini 36.1 > Dragonfly 31.1 > GPT-4V 28.2 > PMC-CLIP 26.9 > BiomedCLIP 41.0(MedCLIP 系另算)。

  • Gemini 在不同任务上极不均衡:Txt2bbox 36.0(与微调 BiomedCLIP 的 67.0 相差 31 点)、Img2size 50.0(全库最高)、但 Img2txt 只有 27.0-38.5。它对「尺寸是什么」这类可以直接数像素的任务最强,对「描述是什么」这类需要读图的任务最弱。
  • GPT-4V 全面平庸:七个任务零样本成绩都在 22-44% 之间,没有一项突出。作为通用能力最强的模型之一,这个成绩说明 CT 病灶层面的细粒度判读不在它的舒适区。
  • Dragonfly 的属性任务意外强:Img2attrib 51.0、CT2attrib 42.0,零样本里最高的属性成绩,但描述任务 Txt2img 只有 26.5%。

6.6 推理成本对照

模型 平均推理时延 部署
BiomedCLIP ≈0.06 s 本地 A100
PMC-CLIP ≈0.06 s 本地 A100
RadFM ≈0.77 s 本地 A100
LLaVA-Med ≈2.14 s 本地 A100
GPT-4V ≈2.98 s Azure 云 API
Gemini ≈2.98 s Google 云 API
Dragonfly ≈4.29 s 本地 A100

CLIP 式比 VLM 式快 13-70 倍。在 2,850 题的评测规模下,这个差距是分钟级与小时级的区别。对需要大规模迭代的团队,「先上 CLIP、再上 VLM」是合理的顺序。注意云 API 的时延包含网络与排队,与本地不可直接比较,论文也明确提示了这一点。

6.7 人类读片者的表现

评估者 w/o BBox w/ BBox 总平均
资深放射科医师 1 66.0 90.0 79.20
资深放射科医师 2 70.5 90.5 81.50
初级医生 45.5 68.5 58.15

两位资深医师的总平均(79.2、81.5)与 Table 4 的「资深平均 80.4」一致。初级医生 58.2% 略高于微调 BiomedCLIP 的总平均 50.3%,但低于其有框条件 62.0%。

一个必须读出的结论:BBox 对人类也是巨大的增益(资深 68.3→90.3,+22 点),且增益幅度大于模型(36.4→62.0,+25.6 点,但起点低)。这说明 BBox 本质上是「答案的提示」——它把「找病灶」变成了「读病灶」。

另一个必须读出的限定:人类成绩是在每任务每条件约 10 例的抽样子集上算的,不是全测试集。论文明确写「Human-reader results were computed on sampled cases, whereas model results were computed on the QA benchmark test set」。因此人类与模型的分数不是严格同分布对比,跨类比较时应保留这一保留。

§7 获取、许可与合规

7.1 一个入口,一份许可

CT-Bench 的获取路径非常干净:Kaggle 一个数据集页,公开下载,不需要申请、不需要签署数据使用协议。

项 值
平台 Kaggle
数据集地址 kaggle.com/datasets/cd1661d6d6aeab08b8eb99b58885b4489d76fc5ac07d5aac76cae577e6426e2f
DOI 10.34740/kaggle/ds/7422536
体积 15.14 GB
文件数 约 80.2k
许可 CC BY-NC-SA 4.0
是否需要 DUA 否
是否需要注册 Kaggle 账号

论文 §4 把这条路径写进了 Resource Availability,并强调仓库内同时包含「去标识的病灶图像、病灶级标注、元数据、本体映射、划分文件、QA 基准文件与复现代码」。

7.2 许可链的收紧:DeepLesion 可以商用,CT-Bench 不能

这是本条最需要警觉的一处。

对象 许可 能否商用
DeepLesion(上游) 无使用限制(unrestricted usage);建议引用原论文 可以
CT-Bench 数据集本体 CC BY-NC-SA 4.0 不可以(NonCommercial)
CT-Bench 论文(MELBA 版) CC-BY 4.0 可以(论文文本)

同一个影像底片,经过一次「加描述、加属性、加 QA」的派生之后,许可从开放收紧到了 NC-SA。这不是疏忽,是派生者的选择——它符合「衍生作品可附加限制」的常见做法,但对使用者的实际影响很具体:

  1. 纯研究:不受影响,符合 NC 定义。
  2. 企业内部研发:大概率落在「非商业」与「商业」的灰区。制药公司做药物研发算不算商业?受监管的医疗器械厂商做预研算不算?CC 的 NC 定义对此留有很大解释空间,务必让法务判断而非自行推定。
  3. 基于 CT-Bench 训练出的模型权重:CC 许可约束的是「数据集这个作品」的复制与改编,通常不直接延伸到模型权重的分发。但若模型在训练中「记忆」并再现了数据集内容,或对外发布训练数据子集,则 NC-SA 适用。这条边界因司法辖区而异。
  4. 衍生数据集:必须同许可(ShareAlike)发布,且不得用于商业目的。

一个实用的替代路径:如果只想要「不加 NC 限制的 CT 影像 + BBox」,直接回 DeepLesion 原始数据(无使用限制),自己按 CT-Bench 的方法补文本——代价是要重走一遍标注流水线。

7.3 上游合规:IRB 与去标识

论文 §4 交代得很完整:

  • DeepLesion 源自 NIH Clinical Center 的回顾性 PACS 数据,在机构审查委员会(IRB)批准下创建,原始论文描述的去标识方式是替换患者标识、检查号、序列号;
  • CT-Bench 是基于 DeepLesion 子集与其 PACS bookmark 文本的二次派生资源,其整理、关联、去标识与发布在 NIH IRB 协议下进行,回顾性二次使用获得知情同意豁免;
  • 无前瞻性招募、无新增影像。

去标识的范围:姓名、病历号、检查号、直接日期字段及其他直接 PHI 从图像文件、元数据文件、文件名、标注文件、QA 文件中全部删除或替换;患者/检查/图像/病灶标识替换为研究标识。去标识检查未通过的记录,在发布前被排除或修正。

7.4 外部 AI 服务的使用

论文明确:标注支持与评估中使用了 GPT-4 与 GPT-4V,通过 Microsoft Azure 服务访问,以支持安全与隐私合规的处理。发布物本身只包含去标识的图像与标注,不含原始 PHI。

这条披露的意义在于:生成式模型参与标注已经不是「要不要」的问题,而是「怎么管」。CT-Bench 给出的答案是——走企业级云服务的合规通道,且发布物不含原始 PHI,模型只接触已去标识的文本与图像。这一做法值得在自建流水线时照抄。

7.5 使用边界(论文原文的禁止项)

论文 §3 与 §4 反复划定同一组边界:

  • 仅用于研究、基准评测与方法开发;
  • 不批准用于独立临床诊断、分诊、治疗计划或患者管理;
  • 用户不得尝试重识别、与外部可识别来源关联、或以违反数据集许可或上游数据使用条件的方式再分发;
  • 不得据此作监管意义上的临床安全声明。

「Not approved for standalone clinical decision-making」这句话在影像 AI 论文里是标准免责,但 CT-Bench 把它写了两遍,且具体到「不得做重识别尝试」——后者是 DeepLesion 这类公开影像资源特有的风险点。

7.6 引用方式

数据集层面(Kaggle DOI):

Zhu Q, Jin Q, Mathai TS, Fang Y, Wang Z, Yang Y, Sarfo-Gyamfi M, Hou B, Gu R,
Balamuralikrishna PTS, Wang KC, Summers RM, Lu Z.
CT-Bench: A Comprehensive Benchmark for Multimodal AI in Computed Tomography Analysis.
Machine Learning for Biomedical Imaging, 2026:036, pp.739-757.
doi:10.59275/j.melba.2026-b141
数据集: doi:10.34740/kaggle/ds/7422536

上游必须同时引用:

Yan K, Wang X, Lu L, Summers RM.
DeepLesion: automated mining of large-scale lesion annotations and universal lesion
detection with deep learning. arXiv:1710.01766, 2017.

只引 CT-Bench 不引 DeepLesion 是不完整的——影像与 BBox 的来源、伦理批准与去标识链条都在上游那一篇里。

§8 实操:把 CT-Bench 用起来

8.1 下载后的第一件事

Kaggle 包解压后的结构(据数据卡与论文):

data/
├── lesion_nobox/        # 关键切片 PNG(无 BBox 叠加)
├── lesion_bbox/         # 关键切片 PNG(有 BBox 叠加)
├── clip/                # CLIP 式 QA 的输入图
├── llm/                 # LLM 式 QA 的输入图
├── Metadata.csv         # 病灶元数据:id、描述、尺寸、划分
├── qa_clip.json         # CLIP 式 QA
└── qa_llm.json          # LLM 式 QA
CT-Bench Lesion Ontology Mapping.csv
CT-Bench-Final-Merged-with-DeepLesion-Metadata .csv
License.txt
README (1).txt
CT-Bench-code/           # 复现代码

注意两处文件名细节:Kaggle 文件树里本体映射文件用的是空格(CT-Bench Lesion Ontology Mapping.csv),而论文正文写的是下划线(CT-Bench_Lesion_Ontology_Mapping.csv);合并元数据文件名末尾还多一个空格。脚本里硬编码文件名时务必以实际文件为准。

8.2 最小可用流程

import json
from pathlib import Path
from PIL import Image

DATA = Path("data")

# 1) 病灶元数据
import pandas as pd
meta = pd.read_csv(DATA / "Metadata.csv")
print(meta.columns.tolist())
print(meta["split"].value_counts())

# 2) QA(CLIP 式)
qa = json.loads((DATA / "qa_clip.json").read_text())
print(len(qa), qa[0].keys())

# 3) 单条病灶图
img = Image.open(DATA / "lesion_nobox" / "000001_01_01_001.png")
print(img.size, img.mode)   # 典型 (512, 512) 'L'

要点:lesion_nobox 下是 8-bit 灰度 PNG,img.mode 应为 L。若读出来是 I;16,说明拿错了文件(源 16-bit 版本)。

8.3 复现 BiomedCLIP 微调的最小配置

论文附录 C.2 给出的配置,可直接照抄:

项 值
优化器 Adam
学习率 1e-5
batch size 64
epochs 200
损失 Cross-Entropy(多选题)
硬件 NVIDIA A100

200 epochs 是个不小的数字,配合 15,380 条训练病灶,单卡 A100 大约需要数小时到十几小时量级(依实现与图像缓存策略而定)。若资源有限,可先做 50 epochs 看趋势——论文未报学习曲线,这条属于工程建议。

8.4 复现 RadFM 微调的配置与风险

项 值
batch size 4
梯度累积 4(等效 batch 16)
最大 token 2048
epochs 4

风险提示:按论文报告,用这套配置微调后的 RadFM 在 QA 上全零。如果你要复现,请务必:

  1. 保留微调前的 checkpoint 备份;
  2. 每轮在验证集上单独测 QA 与 caption 两类能力;
  3. 打印模型的原始输出字符串,确认它是输出了 A/B/C/D,还是输出了自然语言段落。

论文没有披露输出解析细节,这三点是防止你踩同一个坑的最小措施。

8.5 QA 题的正确读法

q = qa[0]
# 典型字段(以实际文件为准)
# q["task"]           -> "img2txt" 等
# q["split"]          -> "val" / "test"
# q["condition"]      -> 有/无 BBox
# q["choices"]        -> ["A 选项文本", ...]
# q["answer"]         -> 正确项

三个必须核对的点:

  • Txt2bbox 的 condition 只能是「有框」。若你的脚本统一按 w/o 与 w/ 两种条件各跑一遍,Txt2bbox 的 w/o 会得到空集,平均值会被拉低或除零。
  • 验证集与测试集不要混。950 与 1,900 是分开的,测试集只用于最终报告。
  • 同一病灶可能在多个任务中出现。做错误分析时按病灶 ID 聚合,才能看出「哪些病灶所有任务都错」,这比按题目聚合更有诊断价值。

8.6 在自己数据上做迁移时的检查清单

检查项 为什么
窗宽窗位是否一致 CT-Bench 是软组织窗(C=50, W=400)8-bit;你的数据若是肺窗,直接套用会系统性偏移
像素间距是否已知 尺寸任务的答案依赖 mm 换算,缺间距则尺寸标签不可比
BBox 是否归一化 不同来源的框可能是像素坐标或 [0,1] 归一化
病灶类型词表是否对齐 CT-Bench 用 RadLex 派生属性,自建数据的类别名需映射
是否有患者级划分 近重复样本会虚高成绩

8.7 与自建标注成本对比的粗算

假设你要从零做 20,335 条病灶描述:

方案 主要成本项 说明
全人工从零撰写 MD/PhD 全量工时 20,335 条 × 每条 1-2 分钟 ≈ 340-680 人时
论文方案(GPT-4 预标 + 人工纠错 + MD 终审) 200 例冷启动标注 + 3 轮 × 100 例迭代 + 全量人工复核 复核是逐条判断而非逐条撰写,但总量仍是全量
直接使用 CT-Bench 0 标注成本,15 GB 下载 受 CC BY-NC-SA 约束

上表第二行有一个常被误读的地方:「模型预标」并不等于「人工只看一部分」。论文的 Stage 3 是全量数据都被人工核验过的(验证/测试两名标注员 + 专家,训练一名标注员 + 医学专业人员)。省的是「撰写」,不是「审核」。

8.8 评测报告的写法建议

如果你用 CT-Bench 做模型评测,至少报告:

  1. 七个任务各自有框/无框的准确率(不要只报平均);
  2. 平均值是按 6 任务(w/o)还是 7 任务(w/)算的——必须说明;
  3. Img2size 与「全猜 1-3 cm」的 58% 先验做对比;
  4. 人类读片者成绩若引用,注明是抽样 10 例/任务/条件的口径;
  5. 是否在训练中见过测试集病灶的同一患者——患者级划分必须自证。

§9 与库内条目的关系:CT-Bench 站在哪

9.1 家族图谱

库内与 CT-Bench 相关的条目可以分四层看:

第一层:直接血缘(上游/下游)

条目 rid 关系
deeplesion 17 直接上游。CT-Bench 的影像、BBox、测量值、元数据全部继承自它;CT-Bench 是在其上加文本与 QA
uls23 1049 同为 DeepLesion 下游,但走的是分割路线:复用 DeepLesion 750 个病灶作测试集,聚合 10 个公开数据集
ct-lesion-foundation-model 963 ULS23 的另一条目(同一挑战的不同登记名),3D 通用病灶分割

第二层:同域不同任务(CT 病灶、非图文)

条目 rid 差异
amplifai 923 肝病灶 LI-RADS,多期腹部 CT,单器官深标注,有体素级标注
autopet 468 PET/CT 全身病灶分割,1,014 组
nih-pancreas-ct 367 80 例胰腺 3D 分割,单器官经典基准
covid-segmentation 1042 肺部 CT 病灶分割,COVID 专用
psma-pet-ct-lesions 1031 597 例 PSMA PET/CT 手工病灶分割
spinal-multiple-myeloma-seg 943 双能 CT 脊柱骨髓瘤病灶分割
calgb50303 961 淋巴瘤临床试验 PET/CT + RTSTRUCT

第三层:CT + 报告,但非病灶级

条目 rid 差异
rad-chestct 819 Duke 19,993 名患者、36,316 例胸部 CT 配 33.6 万份报告,影像级 83 标签,无逐病灶 BBox/描述

第四层:医学 VQA 家族

条目 rid 差异
vqa-rad 240 315 张放射影像、3,515 问答,开放式
slake 250 642 幅影像、中英双语、知识图谱三元组
pmc-vqa 270 227k 问答 / 149k 图,文献来源
omnimedvqa 290 118,010 张影像、127,995 多选题、12 模态
vqa-med(280)/ pathvqa(260)/ rexvqa(729) — 分别为 CLEF 年度评测、病理、胸片 VQA

9.2 差异化定位:一句话说清

CT-Bench 是库内唯一一个「CT 病灶级、带逐条描述、带空间框、带难负例多选题」的资源。

拆成四个维度看:

维度 CT-Bench deeplesion (17) rad-chestct (819) uls23 (1049) omnimedvqa (290)
模态 CT CT 胸部 CT CT(多数据集) 12 模态
标注粒度 病灶级 病灶级 影像级 体素级 病灶/影像级
逐病灶文本 有(描述+尺寸+属性) 无(仅尺寸数字) 有但为报告全文 无 有(问答题)
空间框 有(2D BBox) 有(2D BBox) 无 有(3D 掩膜) 部分
评测形式 多选题 + 难负例 检测 mAP 多标签 AUROC 分割 Dice 多选题
许可 CC BY-NC-SA 无限制 请求制 CC BY-NC-SA 见条目

四个维度里有两个是 CT-Bench 独占的:逐病灶文本与难负例多选题。这两个的组合,构成了它「测图文对齐」而不是「测检测/分割/报告生成」的定位。

9.3 与 DeepLesion(rid 17)的关系声明

必须明确三条,避免混淆:

  1. 不是替代品。DeepLesion 的 33,688 张全量图与 32,735 个病灶标注(含 LesaNet 171 类弱标签),CT-Bench 只取了其中约 60%。要做大规模检测训练,DeepLesion 仍是主数据源。
  2. 许可不同,不可混用再分发。把两者打包再发布,会同时受 DeepLesion 的「建议引用」与 CT-Bench 的 NC-SA 约束,后者的限制更严。
  3. 两者可互补使用:用 DeepLesion 全量做预训练/检测,用 CT-Bench 做图文对齐微调与评测。论文自身就是把 CT-Bench 当「在 DeepLesion 上加的东西」来定位的。

9.4 与 rad-chestct(rid 819)的分工

最容易被混淆的一对。两者都是「CT + 文本」,但方向完全不同:

对比项 CT-Bench rad-chestct
解剖范围 全身(胸 45.3% + 腹 44.8%) 仅胸部
文本粒度 一句病灶描述 完整放射报告
标签形式 病灶级属性 + QA 影像级 83 标签矩阵
典型任务 图文检索、病灶描述生成、空间定位 多标签分类(CT-Net83,AUROC 0.773)
获取 Kaggle 直下 Zenodo 请求制 + 3,630 例公开子集

一句话:要「一句话对上一个小区域」用 CT-Bench;要「一份报告对上整例检查」用 rad-chestct。

9.5 与 ULS23(rid 1049 / rid 963)的分工

这两个条目也是 DeepLesion 的下游,但目标相反:

对比项 CT-Bench ULS23
任务 图文对齐 / VQA 3D 通用病灶分割
标注 2D BBox + 文本 3D 体素掩膜
规模 20,335 病灶(2D 关键层) 38,693 病灶(训练)/ 775(测试)
与 DeepLesion 关系 全量派生 复用 750 病灶作测试
基线 BiomedCLIP / RadFM 等 VLM nnU-Net v2 半监督(Dice 0.703)

它们不冲突,反而互补:CT-Bench 给「这是什么」,ULS23 给「边界在哪」。若要做「描述 + 分割」的联合任务,两者是天然的训练素材组合。

9.6 与医学 VQA 家族(240/250/270/290)的区别

CT-Bench 与它们最根本的差别有三:

  1. 模态专一:vqa-rad 是放射影像混合(X 光为主)、slake 含 CT/MRI、omnimedvqa 跨 12 模态;CT-Bench 只有 CT,且以轴位关键层为主。
  2. 题目构造方式:多数医学 VQA 的干扰项来自随机采样或同数据集其他样本;CT-Bench 的干扰项是检索 + MD 筛选造出来的难负例,这是它自认为「first-of-its-kind」的核心论据。
  3. 可溯源到原始测量:CT-Bench 的尺寸答案不是标注员估的,而是从 PACS 报告的测量值标准化而来;属性答案来自 RadLex 本体映射。多数 VQA 的答案由标注员直接撰写。

9.7 建议互链点(供主会话回填 rid)

目标 slug rid 建议链接场景
deeplesion 17 上游血缘、许可对比、全量 vs 子集
uls23 1049 「描述 + 分割」互补任务
ct-lesion-foundation-model 963 同上,另一登记名
rad-chestct 819 报告级 vs 病灶级
amplifai 923 肝病灶 LI-RADS 深标注
autopet 468 病灶分割的另一模态
nih-pancreas-ct 367 单器官 3D 分割
vqa-rad 240 医学 VQA 家族
slake 250 医学 VQA 家族
pmc-vqa 270 大规模图文 VQA
omnimedvqa 290 多模态 VQA 对照
pathvqa 260 病理 VQA 侧对照
rexvqa 729 胸片 VQA 侧对照
medmnist 716 入门级医学影像基准
covid-segmentation 1042 肺 CT 病灶分割
psma-pet-ct-lesions 1031 PET/CT 病灶

§10 避坑清单

坑 1:把 CT-Bench 当成「DeepLesion 的完整版」

最常见的误解。CT-Bench 只有 20,335 个病灶,而 DeepLesion 有 33,688 张 bookmark 图。少了约 40%。如果你的研究需要全量 DeepLesion,直接用 CT-Bench 会漏样本。

正确做法:先确认你要的是「病灶级文本」还是「全量检测数据」。要前者用 CT-Bench,要后者回 DeepLesion。

坑 2:把 Img2size 的 46-50% 当成「模型学会了估尺寸」

Img2size 的四档里,「1-3 cm」占 58.1%。全猜中间档就有 58%。微调 BiomedCLIP 的 46.0%、Gemini 的 50.0% 都低于这个先验。

正确做法:任何 Img2size 成绩都必须与 58% 先验对照,并单独报告四个档各自的混淆矩阵——是「漏判大病灶」还是「漏判小病灶」,意义完全不同。

坑 3:忽略 Txt2bbox 只在有框条件下设题

w/o 平均只在 6 个任务上算,w/ 平均在 7 个任务上算。两者直接相减,混入了一个「只在有框条件下存在的任务」。

正确做法:做「有无框」的增益分析时,只用 6 个共同任务配对计算。

坑 4:把 RadFM 的全零当成「RadFM 不行」

同一个微调 RadFM 在 caption 上五项指标第一,在 QA 上全零。全零更像是输出解析失败或格式崩溃,而不是能力为零。

正确做法:复现时打印原始输出,确认模型是在回答 A/B/C/D 还是在写段落。若为后者,是评测管道问题,不是模型问题。

坑 5:用 8-bit PNG 做密度定量

发布图是 8-bit 窗化结果,软组织窗内每级约 1.57 HU,且已裁剪到窗范围外为饱和值。绝对密度测量(如「这个结节 CT 值多少 HU」)不能用发布图算。

正确做法:需要 HU 时回 16-bit 源(DeepLesion 原始 PNG,减 32768),并自行窗化。

坑 6:按检查或按病灶随机划分

CT-Bench 官方划分是患者级的。自建评测若按检查或按病灶划分,同一患者的随访影像会同时出现在训练和测试两侧,成绩虚高。

正确做法:必须按 patient_id 分组切分。

坑 7:硬编码论文里的 CSV 文件名

论文正文写 CT-Bench_Lesion_Ontology_Mapping.csv,Kaggle 实际是 CT-Bench Lesion Ontology Mapping.csv(空格);合并元数据文件名末尾还有一个空格。

正确做法:用 glob 匹配 *Ontology*Mapping* 或 *Merged*DeepLesion*,不要硬编码。

坑 8:把人类成绩与模型成绩当同分布比较

人类读片者是每任务每条件约 10 例的抽样子集(共 100 例),模型是全测试集。样本不同,置信区间不同。

正确做法:引用人类分数时注明抽样口径;若要做严谨的人机对比,应在同一批样本上重跑模型。

坑 9:忽略影像属性只有 23.8% 覆盖

属性类任务(Img2attrib / CT2attrib)的可选题源受 imaging property 覆盖率(4,841/20,335)限制。做过采样或做「属性越多越好」的结论时,会踩到样本不足。

正确做法:按属性类型分层报告;properties 类结论要标注 n。

坑 10:以为 BBox 是分割掩膜

BBox 只是矩形框。论文 §3 明确写「Bounding boxes provide lesion localization but do not represent full volumetric segmentation」。

正确做法:要体素级掩膜,去 ULS23(rid 1049)或具体器官数据集。

坑 11:忽略上游元数据缺失

扫描仪厂商、型号、管电压、对比期相全部不可得。任何「按设备/按协议分层」的公平性分析都做不了。

正确做法:把缺失作为限制写进论文的 Limitations,不要插补。

坑 12:把 CC BY-NC-SA 当成「随便用」

NC 意味着非商业,SA 意味着衍生同许可。企业环境下的使用要先过法务。

正确做法:纯学术用没问题;商用评估前读 License.txt,并确认上游 DeepLesion 与本资源的约束叠加方式。

§11 方法学启示

11.1 「给已有数据加一层」是被低估的贡献形式

CT-Bench 没有新扫一次 CT,没有招募一个病人。它的全部创新是在既有数据上加了三样东西:逐病灶文本、标准化尺寸、本体属性。然后据此造了一套题。

结果是一个在多个任务上能把最强通用模型(GPT-4V 28.2%、Gemini 36.1%)打到远低于人类(80.4%)的基准。这说明:基准的价值不在于数据量,在于它问的问题是否触及模型的真实短板。

对做数据工作的团队,这条启示很直接——不必总想着造新数据集,先问「现有公开数据集缺哪一层标注,补上它能不能构成一个有效的评测」。

11.2 难负例是基准的「分辨率旋钮」

随机负例让基准变成「会看图就能过」;难负例才让它区分「看得懂」和「看得细」。CT-Bench 的做法值得抄:用模型检索相似样本、用人筛选临床合理性。

这个组合的特点是成本可控(检索是自动的,人只做三选一的判断),但效果显著——论文明确指出随机采样的干扰项「too easy because they could differ substantially in anatomy, appearance, or lesion type」。

11.3 单切片未必输给多切片

这是 CT-Bench 给模型设计者的一个反直觉信号。九个任务-条件组合里,单切片版本的成绩普遍不劣于多切片(§4.2)。对做 CT 模型的团队,这意味着:

  • 不必默认上 3D 或 2.5D;
  • 若要上多切片,必须有明确的「为什么相邻层能带来关键信息」的理由;
  • 多切片带来的算力开销,在多数任务上可能换不回等价的收益。

11.4 微调是双刃剑:同一模型、两类任务、相反结果

RadFM 的案例(§6.4)是一个教科书级的提醒:在多选题格式上微调,可能让模型丧失生成能力或判别能力,尽管它在另一类任务上变得更强。

工程上的应对是:任何微调都必须同时监控至少两类异质任务。只看训练 loss 或只看单一评测集,会把「能力被挤出去」误认为「能力提升」。

11.5 「模型预标 + 人只改」不等于「人只看一部分」

§8.7 已经点过:CT-Bench 的全量数据都被人工核验过。这一点常被误解为「GPT-4 标了大部分,人只看抽样」。

真实的成本结构是:人可以少写、但不能少看。审核的成本低于撰写,但不是零。任何声称「用模型预标省了 90% 人力」的流水线,如果人没有逐条看,那省下的就是质量。

11.6 派生链上许可会收紧,需要显式声明

CT-Bench 把上游的无限制数据派生后改成了 NC-SA。这不是个别现象,而是派生者的常见选择。对使用者的启示是:永远以最终交付物的许可为准,不要以「上游是开放的」推定下游也开放。

§12 适合谁、不适合谁

12.1 适合谁

角色 用途
医学 CLIP / 图文对齐研究者 20,335 对病灶级正样本,直接训练对比学习
医学 VLM 开发者 七任务评测协议,检验空间定位与属性识别
数据集标注方法研究者 三阶段人机协同流水线 + 标注员质量表,可直接借鉴
放射科 AI 评测人员 人类读片者基线(资深 80.4%、初级 58.2%),可作参照
模型审稿人 / 竞赛组织者 一套难负例多选题,复用成本低

12.2 不适合谁

需求 为什么不合适 去哪
体素级病灶分割 只有 BBox,无掩膜 uls23(1049)、ct-lesion-foundation-model(963)
胸部 CT 报告生成 只有单句病灶描述,无完整报告 rad-chestct(819)
全量 DeepLesion 检测训练 只保留 60% 病灶 deeplesion(17)
多器官/多模态综合评测 只有 CT omnimedvqa(290)
商用产品训练 NC-SA 限制 回 DeepLesion 原始数据自建
纵向随访/疗效评估 论文明确不覆盖纵向对比 需专门的纵向数据集

12.3 30 秒决策卡

你需要什么?
├── CT 病灶的「一句话描述 + 一张图」配对
│   └── CT-Bench(✓ 首选)
├── CT 病灶的 3D 边界
│   └── ULS23(1049)/ 具体器官分割集
├── 胸部 CT 的完整报告
│   └── RAD-ChestCT(819)
├── 大规模通用 CT 检测
│   └── DeepLesion(17)全量
├── 检验模型的空间定位能力
│   └── CT-Bench 的 Txt2bbox(100 题,最难的一项)
└── 商用
    └── 先读 License.txt;可能需要回 DeepLesion 自建

§13 局限与争议

13.1 作者自陈的局限

论文 §3 与 §5.11 列了五条:

  1. 回顾性临床数据,受源人群、设备分布、成像协议、病灶选择流程与报告习惯影响;
  2. BBox 只做定位,不是体素分割;
  3. QA 是受控多选题,不评估完整诊断流程、纵向对比、疗效评估与真实场景的报告生成;
  4. 部分采集字段缺失(无法插补),只能标为不可用;
  5. 描述来自 PACS bookmark 与报告文本,可能含模糊指代、同句多病灶、相邻非病灶所见或无法从单张图核实的比较语。

第 5 条是最本质的一条——它是数据源的固有属性,只能靠标注与清洗缓解,不能根除。

13.2 本条目补充的三条观察

观察一:难度分布的「形状」未被刻画。 论文给了每个任务的准确率,但没有给「题目难度」的分布——比如有多少题是任何模型都做对的、有多少题是所有模型都做错的。这类分析(通常叫 item-level analysis)对判断基准是否饱和至关重要。目前最好的模型 50.3%,离饱和还远,但在建设性批评的意义上,难度分层是缺失的。

观察二:难负例的生成工具与评测对象重叠。 难负例用 BiomedCLIP 检索生成,而 BiomedCLIP 又是主要基线之一。这可能让 BiomedCLIP 在「难负例恰好落在它嵌入空间的困难区」上受到系统性惩罚,也可能相反——取决于检索与判别是否共享失效模式。论文没有做「换检索模型重造难负例」的消融。

观察三:人类基线的样本量偏小。 每任务每条件 10 例(共 100 例),单题权重 10%。资深医师在 Txt2img w/o 上是 100%,在 w/ 上是 90%——这个 10% 的下降只是「一题之差」。任何基于人类成绩的精细推论都应带着这个误差棒读。

13.3 版本与命名上的两处不一致

项 口径 A 口径 B 处理
论文标题 arXiv:“A Benchmark for Multimodal Lesion Understanding in Computed Tomography” MELBA:“A Comprehensive Benchmark for Multimodal AI in Computed Tomography Analysis” 两版并存,条目按期刊版引用,正文提一句差异
发表去向 GitHub 仓库自述「NeurIPS 2025 Datasets & Benchmarks Track submission」 MELBA 2026 MICCAI Open Data 特刊正式发表 未取得 NeurIPS 接收证据,按仓库自述口径引用,不认定为已接收

这两处都不是硬伤,但检索时容易撞上。写引用时以 MELBA 2026:036 + doi 10.59275/j.melba.2026-b141 为准。

§14 FAQ(高频问答)

Q:CT-Bench 和 DeepLesion 是同一个数据集吗?
不是。CT-Bench 是 DeepLesion 的子集派生:继承影像、BBox、测量与元数据,新增逐病灶描述、标准化尺寸、本体属性与 QA。规模从 33,688 张 bookmark 图缩减到 20,335 个病灶。

Q:20,335 是病灶数还是图数?
病灶实例数。一个病灶对应一张关键切片图(以及两个版本:有框/无框)。

Q:7,795 和 3,793 分别是什么?
7,795 例 CT 检查,3,793 名患者。一名患者平均约 2 例检查、5.4 个病灶。

Q:为什么 3,793 名患者只有 7,795 例检查?
这是 DeepLesion 的来源特性:以 bookmark 病灶为单位抽取的检查,不是完整检查队列。

Q:2,850 题是怎么数出来的?
七任务 × 两划分 × 两条件,扣除 Txt2bbox 的 w/o 版本(不存在)。

Q:Txt2bbox 为什么没有无框版本?
定位题的选项是四张带框图。没有框,题就不成立。

Q:难负例和普通负例的区别?
普通负例随机采样,容易靠解剖区/灰度/尺寸排除;难负例来自 BiomedCLIP 检索的视觉相似病例,经医学评审确认「临床上说得通但不是本病灶」。

Q:最好的模型是什么?
按平均分,微调 BiomedCLIP(有框条件)62.0%。按任务分,Txt2bbox 和 Img2size 上 Gemini 的零样本表现突出,但都低于人类。

Q:RadFM 全零是真的吗?
论文表格如此。但同一微调模型在 caption 任务上五项指标第一,全零更可能是输出格式解析失败,而非能力为零。复现时务必打印原始输出。

Q:人类基线能直接用吗?
可以引用,但要注明是每任务每条件 10 例的抽样子集,不是全测试集。

Q:为什么 Img2size 这么难?
因为「1-3 cm」占 58.1%,全猜中间档就有 58%;而模型没有学会把框的像素长度乘以像素间距换算成物理尺寸。医师有框时 100%,说明这本质是测量问题。

Q:CT-Bench 能商用吗?
数据集本身是 CC BY-NC-SA 4.0,不能商用。上游 DeepLesion 无使用限制,若要商用可考虑回上游自建。

Q:论文和数据集是两个许可吗?
是。论文 CC-BY 4.0(MELBA 出版条款),数据集 CC BY-NC-SA 4.0(Kaggle 数据卡)。

Q:有官方代码吗?
有。仓库 CelestialShine/CT-Bench,含 caption 生成与评测、CLIP 式与 LLM 式 QA 运行脚本、BiomedCLIP 微调脚本。Kaggle 包内也有 CT-Bench-code/ 目录。

Q:代码仓库里 RadFM/LLaVA-Med 的集成代码有吗?
仓库自述明确说没有——「Model-specific code and settings (e.g., RadFM, LLaVA-Med) are not included in this repo due to complexity」,只提供 I/O 与元数据处理封装。

Q:能否用于检测任务?
可以,用 BBox 做 2D 检测;但只有关键层,没有全 3D 卷,检测研究的完整场景(多病灶、阴性切片)覆盖不足。

Q:8-bit PNG 会不会影响判读?
对多数语义判读影响有限;但对密度定量有影响。软组织窗压缩后每级约 1.57 HU。

Q:肺部病灶占比多少?
body part 标签里 lung 占 23.4%(4,759 例),chest 占 45.3%。类型标签里 lung nodule 占 12.4%。

Q:淋巴结多了会不会导致类别偏斜?
会。lymphadenopathy 占类型标签 18.1%,lymph node 占部位标签 31.6%,enlargement 占 24.0%。评测时需分层报告。

Q:为什么属性覆盖只有 23.8%?
论文没有解释原因,只报告了覆盖率。推测与 PACS 文本中可映射到影像性质词的句子比例有关,属待核项。

Q:QA 题可以自己扩充吗?
可以,数据、本体映射、元数据都公开。但扩充后得到的题集属于 SA 条款下的衍生作品,发布需同许可。

Q:有没有中文版?
没有。所有描述、问答均为英文。中文使用需自行翻译,且翻译后的衍生数据受 SA 约束。

Q:这个数据集会被更新吗?
Kaggle 数据卡「预期更新频率」为 Not specified。以 DOI 10.34740/kaggle/ds/7422536 作为引用锚点。

Q:MELBA 是什么期刊?
Machine Learning for Biomedical Imaging,ISSN 2766-905X,本期为 MICCAI Open Data 2026 特刊。

Q:arXiv 版和期刊版内容一样吗?
大体一致。arXiv v2(2026-02-19)与期刊版(2026-09-21)标题不同,作者与核心数字一致。期刊版有完整附录表格(S1-S14),arXiv 版为 922 KB 的短文版。

Q:CT-Bench 的「first-of-its-kind」宣称成立吗?
在「CT 病灶级 + 逐条描述 + 空间框 + 难负例 QA」这个组合上成立。单独看任何一项,都有先例。

Q:与 VQA-RAD 比哪个好?
不是同一层级的比较。VQA-RAD 315 张图、3,515 问答题、开放格式;CT-Bench 2,850 题、四选一、专攻 CT 病灶。要做 CT 专项评测用 CT-Bench,要做通用放射 VQA 用 VQA-RAD。

Q:如果我要做病灶描述生成,用哪部分?
Lesion Image and Metadata Set 的描述字段 + 有框图。论文的 caption 评测(BLEU/METEOR/ROUGE/BERTScore/CosineSim)就是这条路线的标准指标。

Q:微调需要多少算力?
BiomedCLIP:Adam、lr 1e-5、batch 64、200 epochs,单卡 A100 可跑。RadFM:batch 4、梯度累积 4、max token 2048、4 epochs,但结果异常,慎用。

Q:数据里有重复患者吗?
划分层面无重叠(患者级不重叠),但同一患者在训练集内可能有多例检查、多个病灶——这是设计意图,不是错误。

Q:可以用 CT-Bench 训练然后申请 FDA 吗?
不行。论文明确「不批准用于独立临床决策」,且数据集为 NC 许可。

Q:有没有官方的 leaderboard?
没有。论文报告的是自测基线,Kaggle 数据卡也未提供排行榜。

Q:CT-Bench 与中国数据集有什么可比对象?
库内暂无同构的中文 CT 病灶级图文基准。slake(250)有中文,但为通用医学 VQA,非病灶级。

Q:这个条目的「双口径」指什么?
指同一事实在不同来源里的两种表述,例如论文标题的 arXiv 版与期刊版、人类基线的抽样口径与全测试集口径。本条目在附录 S 集中登记。

§15 总结

15.1 三句话

  1. CT-Bench 是把 DeepLesion 的「框」补成「框 + 一句话 + 一组属性」的那一层,20,335 个病灶、7,795 例 CT、3,793 名患者,用 GPT-4 预标加人工逐条核验做成。
  2. 它把评测做成了 2,850 道四选一难负例题,七个任务覆盖描述匹配、图像检索、空间定位、尺寸估计与属性识别,最好的模型(微调 BiomedCLIP,有框)62.0%,资深放射科医师 80.4%。
  3. 它最大的信息量在异常上:RadFM 微调后 QA 全零、Img2size 全员低于「全猜中间档」的 58% 先验、Txt2bbox 上零样本 VLM 接近 0% 而医师 100%——这三个数字比平均分更能说明多模态模型在 CT 病灶层面的真实位置。

15.2 一句话记住它

DeepLesion 告诉你「病灶在哪」,CT-Bench 追问「它是什么」——而目前的模型,答不上第二问。

事实清单(硬事实 30 条)

# 事实 来源
1 20,335 个病灶 / 7,795 例 CT / 3,793 名患者 MELBA §2、Table 1
2 训练 2,835 人 / 5,875 检查 / 15,380 病灶 Table 1
3 验证 342 人 / 667 检查 / 1,758 病灶 Table 1
4 测试 616 人 / 1,253 检查 / 3,197 病灶 Table 1
5 男 2,064 / 女 1,729 Table 1
6 年龄中位 55 岁;<18 岁 174 人;≥80 岁 65 人 §5.3
7 上游 DeepLesion 33,688 图 / 10,825 检查 / 4,477 患者 Table S1
8 2,850 道 QA / 7 任务 / 4 选项 摘要、§5.10
9 验证 950 / 测试 1,900 Table 3
10 Txt2bbox 仅 w/ 条件(验证 50 / 测试 100) Table 3
11 多切片为 9 张(关键层 + 前 4 + 后 4) §5.10
12 图像多为 512×512,8-bit PNG §5.4、§5.5
13 面内像素间距中位 0.816 mm/px [0.732-0.877] §5.4
14 层距中位 2.0 mm [1.0-5.0] §5.4
15 16-bit 减 32768 得 HU §5.5
16 lesion type 覆盖 20,103 (98.9%) Table S4
17 body part 覆盖 19,960 (98.2%) Table S4
18 imaging property 覆盖 4,841 (23.8%) Table S4
19 BBox 越界 7 例,翻转 0 例 Table S4
20 possibly noisy 标记 10 例 (0.05%) Table S4
21 <1 cm 17.9% / 1-3 cm 58.1% / 3-10 cm 23.0% / ≥10 cm 1.0% Table S5
22 标注 Stage 1:PhD 56.0/73.0/61.5%,MD 93.0% Table S3
23 微调 GPT-4 三轮 89.0/88.0/88.0% Table S3
24 BiomedCLIP 未微调 34.9 (w/o) / 41.0 (w/) / 38.1 Table 4
25 BiomedCLIP 微调 37.1 (w/o) / 62.0 (w/) / 50.3 Table 4
26 资深放射科医师平均 68.3 / 90.3 / 80.4 Table 4
27 初级医生 45.5 / 68.5 / 58.2 Table 4
28 微调 RadFM QA 全任务 0.00 Table S11
29 微调 RadFM caption BLEU-1 0.2448(最优) Table S10
30 许可 CC BY-NC-SA 4.0;Kaggle DOI 10.34740/kaggle/ds/7422536 §4、Kaggle

术语表(24 条)

术语 释义
CT-Bench 本文介绍的 CT 病灶级图文资源与 VQA 基准
DeepLesion NIH 2017 年发布的 CT 病灶检测与标注数据集,CT-Bench 的上游
Lesion Image and Metadata Set CT-Bench 的第一部分,20,335 条病灶记录
QA Benchmark CT-Bench 的第二部分,2,850 道四选一题
key slice 病灶中心所在的关键层,每个病灶对应一张
BBox(bounding box) 病灶的外接矩形框,2D 坐标
难负例(hard negative) 视觉或语义上接近正例、但确实错误的干扰项
Img2txt 看图选描述
CT2txt 看 9 张连续切片选描述
Txt2img 按描述选图
Txt2bbox 按描述选带框的图
Img2size 看图估尺寸档
Img2attrib 看图识别本体属性
CT2attrib 看多切片识别本体属性
RadLex 放射学词汇与本体体系,CT-Bench 属性映射的基础
PACS 影像归档与通信系统,bookmark 与报告文本的来源
bookmark 放射科医师在 PACS 中标记病灶的操作,生成病灶级标注
HU(Hounsfield Unit) CT 值单位,水为 0,空气约 -1000
窗宽/窗位(WW/WL) 显示 CT 时的灰度映射区间,软组织窗常为 C=50、W=400
BiomedCLIP 基于 1,500 万图文对预训练的医学 CLIP 模型
RadFM 面向放射学的医学视觉语言模型
PMC-CLIP 基于生物医学文献预训练的 CLIP 模型
CLIP 式 / LLM 式 两种 QA 输入组织方式,前者走相似度,后者走提示词生成
灾难性遗忘 模型在新任务上微调后丢失原有能力

附录

附录 A:条目信息速查卡

项 值
条目名 CT-Bench
url_name ct-bench
类型 数据集 + 基准(派生资源)
论文 MELBA 2026:036(doi:10.59275/j.melba.2026-b141);arXiv:2602.14879v2
团队 NIH(NLM/LHC),通讯 Zhiyong Lu
规模 20,335 病灶 / 7,795 检查 / 3,793 患者
QA 2,850 题 / 7 任务
许可 CC BY-NC-SA 4.0
获取 Kaggle 公开(15.14 GB)
抓取时点 2026-10-17
库内互链 deeplesion(17)/uls23(1049)/rad-chestct(819)/amplifai(923)/omnimedvqa(290)

附录 B:DAIMS 评估全表

维度 评分(1-10) 依据
D 可发现性 8 Kaggle 公开页 + 期刊 DOI + arXiv + GitHub 四入口;但标题两版并存导致检索歧义
A 可获取性 9 一个 Kaggle 页直下,无需申请、无需 DUA,15.14 GB 可接受
I 可互操作 8 PNG + CSV + JSON 通用格式;32 列元数据字段完备;提供了 8-bit 与原始 16-bit 的换算说明;扣分在于无 DICOM 导出脚本
M 元数据质量 8 Table S4 完整性统计翔实;但采集参数缺失、属性覆盖 23.8%、人类基线样本量小
S 可持续性 8 Kaggle 平台 + DOI 双锚定;单平台风险由 DOI 部分抵消;更新频率未声明
综合评级 8.2/10(优秀) 可获取性与工程就绪度是最大优势;NC 许可与属性覆盖是主要扣分项

附录 C:逐项证据链自证

关键数字 来源 位置
20,335 / 7,795 / 3,793 MELBA 摘要 + §2 + Table 1 PDF pp.739-743
2,850 / 7 任务 摘要 + Table 3 PDF p.744
划分三行数字 Table 1 PDF p.743
32 列元数据字段 §5.4 PDF p.743
8-bit 窗化流程 §5.5 PDF p.743
0.816 mm/px / 2.0 mm §5.4 PDF p.743
三阶段流水线 §5.8 PDF p.744
标注员质量表 Table S3 PDF p.750
属性覆盖率 Table S4 / §5.9 PDF p.752、744
尺寸分布 Table S5 PDF p.752
频次标签 Table S7 PDF p.753
QA 分布 Table 3 PDF p.744
难负例构造 §5.10 + 附录 B.1 PDF p.744、750
模型配置 Table S9 PDF p.754
Caption 结果 Table S10 PDF p.754
QA 结果 Table S11 PDF p.754
人类基线 Table 4 + Table S11 PDF p.746、754
推理时延 Table S13 PDF p.756
许可 §4 Licensing + Kaggle 数据卡 PDF p.742
Kaggle DOI §4 PDF p.741

附录 D:数据获取决策树

开始
├── 目标:训练/评测 CT 病灶级图文模型
│   ├── 许可可接受 NC-SA? ── 是 ──> Kaggle 下载 CT-Bench
│   │                        └── 否 ──> 回 DeepLesion 自建描述
│   ├── 需要 3D 掩膜? ── 是 ──> 加用 ULS23(1049)
│   └── 需要完整报告? ── 是 ──> 加用 RAD-ChestCT(819)
├── 目标:只做病灶检测
│   └── 用 DeepLesion(17)全量,CT-Bench 只作补充
└── 目标:复现论文结果
    ├── BiomedCLIP 微调(可复现,配置明确)
    └── RadFM 微调(结果异常,需先排查输出解析)

附录 E:七任务 × 打分组成对照

任务 正例来源 干扰项来源 评测指标
Img2txt 本病灶描述 BiomedCLIP 检索 + MD 筛选 Accuracy
CT2txt 本病灶描述 同上 Accuracy
Txt2img 本病灶图像 相似病灶图像 Accuracy
Txt2bbox 本病灶带框图 相似病灶带框图(不重叠) Accuracy
Img2size 本病灶尺寸档 其余三个尺寸档 Accuracy
Img2attrib 本病灶属性 本体派生 + MD 评审 Accuracy
CT2attrib 本病灶属性 同上 Accuracy

附录 F:BiomedCLIP 微调与评测骨架(代码)

import torch, torch.nn.functional as F
from open_clip import create_model_from_pretrained

model, preprocess = create_model_from_pretrained(
    "hf-hub:microsoft/BiomedCLIP-PubMedBERT_256-vit_base_patch16_224"
)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)

# 每个 batch:N 张图 + N 条正描述 -> 对比损失
for epoch in range(200):
    for images, texts in loader:
        images = torch.stack([preprocess(im) for im in images])
        image_feat, text_feat, logit_scale = model(images, texts)
        logits = logit_scale.exp() * image_feat @ text_feat.t()
        labels = torch.arange(len(images))
        loss = (F.cross_entropy(logits, labels)
                + F.cross_entropy(logits.t(), labels)) / 2
        optimizer.zero_grad(); loss.backward(); optimizer.step()

配置来源:论文附录 C.2(Adam、lr 1e-5、batch 64、200 epochs、CE loss、A100)。

附录 G:多选题评测骨架(代码)

def score_choice(model, image, choices, correct_idx):
    """单题四选一:返回是否命中。
    注意:模型接口因架构而异,这里以「图-文本相似度」为例。
    """
    with torch.no_grad():
        img_f = model.encode_image(image)
        txt_f = model.encode_text(choices)
        sims = (img_f @ txt_f.t()).squeeze(0)
    pred = int(sims.argmax())
    return pred == correct_idx, pred

# 聚合时务必按任务分开统计,Txt2bbox 不参与 w/o 平均

附录 H:读者按角色的阅读路径

角色 建议路径
训练 CLIP 模型 §2.5 → §5.3 → §8.3 → 附录 F
评测 VLM §4.4 → §6.4 → §8.8 → 附录 G
设计标注流水线 §3.1 → §3.3 → §11.5
法务/合规 §7.1 → §7.2 → §7.5
选数据集 §9.2 → §12.3 → 附录 D
写论文引言 §0 → §6 → §13

附录 I:条目信息速查(英文版,供引用)

Name:        CT-Bench
Type:        Derived lesion-level CT image-text resource + benchmark
Scale:       20,335 lesions / 7,795 studies / 3,793 patients
QA:          2,850 questions / 7 tasks / 4-way multiple choice
Split:       patient-level disjoint (train 2,835 / val 342 / test 616)
Images:      key-slice PNG, mostly 512x512, 8-bit windowed
License:     CC BY-NC-SA 4.0
Access:      Kaggle (DOI 10.34740/kaggle/ds/7422536)
Paper:       MELBA 2026:036, doi:10.59275/j.melba.2026-b141
Preprint:    arXiv:2602.14879v2
Upstream:    DeepLesion (Yan et al., 2017)
Best model:  fine-tuned BiomedCLIP, 62.0% (w/ BBox)
Human:       senior radiologist average 80.4%

附录 J:双口径登记表

编号 项 口径 A 口径 B 本文处理
D1 论文标题 arXiv「A Benchmark for Multimodal Lesion Understanding」 MELBA「A Comprehensive Benchmark for Multimodal AI」 正文 §13.3,按 MELBA 引用
D2 发表去向 GitHub 自述 NeurIPS 2025 D&B Track 投稿 MELBA MICCAI Open Data 2026 特刊 按期刊版为准,仓库自述仅备案
D3 BiomedCLIP 微调 w/o 平均 Table 4:37.1 Table S11:40.66 正文以 Table 4 为汇总口径,附录注明
D4 属性 CSV 文件名 论文:下划线 Kaggle:空格 坑 7,按 Kaggle 实况
D5 人类成绩口径 抽样子集约 10 例/任务/条件 模型为全测试集 §6.7、坑 8
D6 w/o 与 w/ 平均的任务数 6 个(无 Txt2bbox w/o) 7 个 §5.2、坑 3

附录 K:与库内条目的定位矩阵

条目 rid 模态 粒度 文本 空间 许可
ct-bench 本条目 CT 病灶 逐病灶描述 2D BBox CC BY-NC-SA
deeplesion 17 CT 病灶 仅尺寸数字 2D BBox 无限制
rad-chestct 819 胸部 CT 影像 完整报告 无 请求制
uls23 1049 CT 体素 无 3D 掩膜 CC BY-NC-SA
ct-lesion-foundation-model 963 CT 体素 无 3D 掩膜 CC BY-NC-SA
amplifai 923 腹 CT 病灶 LI-RADS 特征 体素 CC BY-NC-SA
autopet 468 PET/CT 病灶 无 体素 见条目
omnimedvqa 290 12 模态 混合 问答 部分 见条目
vqa-rad 240 X 光为主 影像 问答 无 见条目

附录 L:本条目生产档案

项 值
代理名 agent-d-ctbench
写作日期 2026-10-17
主要来源 MELBA PDF 全文(2026:036)、arXiv:2602.14879v2、Kaggle 数据卡、GitHub 仓库自述
核验方式 三源互证(期刊全文 + 预印本 + 数据卡),GitHub 为补充
关键冲突处理 见附录 J 双口径登记表
遗留疑点 属性覆盖 23.8% 的成因;RadFM 全零是否解析失败;NeurIPS 接收状态

尾注

本条目所引数字以 MELBA 2026:036 全文(2026-09-21 出版)为主口径,arXiv:2602.14879v2(2026-02-19)与 Kaggle 数据卡为交叉核对源。凡三源不一致处,已在附录 J 登记。凡论文未披露、本文据公开数据推算者(如保留率 60.4%、Img2size 的 58% 先验),均已在正文标注为自算或推算,读者引用时应注明来源为本条目而非原论文。

CT-Bench 是 DeepLesion 的派生资源,引用时应同时引用两篇原始文献。数据许可为 CC BY-NC-SA 4.0,商业使用前请自行评估。


相关数据集导航

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

  • med-mim — 共享标签:医学影像 / 视觉问答 / 评测基准 / 影像-文本对齐
  • deeplesion — 共享标签:医学影像 / CT / 目标检测
  • fdtooth — 共享标签:医学影像 / CT / 目标检测
  • vlm3d — 共享标签:医学影像 / CT / 评测基准 / 影像-文本对齐
  • rexgrounding-ct — 共享标签:医学影像 / CT / 评测基准 / 影像-文本对齐
  • mela — 共享标签:医学影像 / CT / 评测基准 / 目标检测
  • luna16 — 共享标签:医学影像 / CT / 目标检测
  • omnimedvqa — 共享标签:医学影像 / 视觉问答 / 评测基准
  • cephalometric-isbi — 共享标签:医学影像 / 评测基准 / 目标检测
  • 3dteethland — 共享标签:医学影像 / 评测基准 / 目标检测

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

返回 AI-Ready 数据集