信息速览

MedICaT — 医学图像-图注-引用对齐数据集 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | MedICaT(医学图像、图注与文本引用数据集) |
| 英文全称 | MedICaT: A Dataset of Medical Images, Captions, and Textual References |
| 别名/简称 | MedICaT、Medical Images Captions and References |
| 疾病分类(ICD-11 编码+中文名) | 覆盖多系统源文献主题(如 2C25 支气管或肺恶性肿瘤、1B10 结核病),数据集本身不携带疾病标签 |
| SNOMED CT | 映射影像与病理操作概念(77477000 计算机断层扫描、168537004 X 线平片等),见 §2.1b |
| 数据模态 | 医学论文插图(放射、病理、内镜为主)+ 英文图注 + 图内引用句 + subfigure 边界框标注 |
| AI 任务类型 | 图文检索、复合图 subfigure-subcaption 对齐、图文匹配预训练、医学图注生成 |
| 样本总数 | 217,060 幅图(来自 131,410 篇论文);7,507 对 subfigure-subcaption 人工标注 |
| 数据大小 | 约 104 GB(medicat_release.tar.gz 压缩包) |
| 数据格式 | PNG 图像 + JSON/JSONL 标注文件 |
| 许可证 | 逐篇开放获取许可(CC 系列如 CC BY-NC-ND、公有领域),整体仅限研究用途、非商业 |
| 访问级别 | 申请审核(官方表单登记后获取下载链接) |
| DUO 标签 | NPUNCU(非商业、非营利用途) |
| 语言 | 英文(图注与引用文本) |
| 首发日期 | 2020-10(论文 2020-10-12,数据 2020-10-05 版本) |
| 最后更新 | 2026-02-20(GitHub README 更新 subcaption 任务数据链接) |
| 发布机构 | Allen Institute for AI、华盛顿大学、特拉维夫大学、Swedish Medical Group、UC Irvine |
| 官方主页 | github.com/allenai/medicat |
| 下载地址 | 官方表单申请 + S3 链接(见 §6.2) |
| DOI | 10.18653/v1/2020.findings-emnlp.191 |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 官方提供 subcaption 任务划分文件与样例数据,可直接训练对齐模型;扣分项:主数据为单文件 104 GB tar 包,需自行完成表单申请、JSONL 解析与图像命名拼接,无官方一键加载脚本 |
| 页面状态 | published |
§0 审核与可信度声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、临床任务定义)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面内容仅用于医学信息学与数据科学知识普及,不构成医疗建议、诊断或治疗依据。任何涉及临床应用的决策,必须由具备执业资质的医务人员结合患者具体情况独立作出。数据集中的图像与文本来自已发表论文,不代表任何真实个体当前的诊疗状态。
技术免责声明:本页面提供的代码、配置与流程说明按"现状"提供,仅用于研究与教学演示。在实际生产环境中使用前,使用者应自行验证代码正确性、兼容性与安全性,并承担由此产生的全部风险。
数据使用合规声明:MedICaT 逐篇继承源文献的开放获取许可(如 CC BY-NC-ND),整体仅限研究用途、禁止商业使用。使用者须自行核查每条记录的 oa_info.license 字段并遵守对应条款,不得再分发受限图像或其处理后版本。
证据优先级说明:本页所有规模、日期、许可与基准数字按以下优先级核实——① 官方仓库 README 与数据文件;② EMNLP 2020 论文(含 arXiv 预印本与 NSF 镜像);③ 同行评审的第三方论文(PMC-CLIP、ROCOv2、BIOMEDICA)。无法核实的字段一律省略而非估算。动态信息(如申请表单响应时长)标注"截至 2026-09"。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? MedICaT 读作"medical cat",是一个把医学论文里的插图连同上下文文字一起打包的数据集。它包含 131,410 篇开放获取论文中的 217,060 幅图,每幅图配有图注;更关键的是,它还从论文正文里把"如图 1d 所示……"这类图内引用句抽了出来(74% 的图有引用),并为 2,069 幅复合图人工标注了每个子图(subfigure)与对应子图注(subcaption)的边界框和文字对齐关系(官方仓库)。
为什么重要? 医学论文中约 75% 的图是"复合图"——一张大图里塞着 (a)(b)©(d) 多个面板,而真正解释每个面板的句子往往不在图注里,而是散落在正文 Results/ Discussion 中。图注与引用句的平均 Jaccard 相似度只有 23%,说明二者信息高度互补(论文 Table 1)。此前几乎没有数据集同时提供这三层信息,MedICaT 填补了这一空白。
我能用它做什么? 三类核心任务:① 医学图文检索——用文字查询找图,加入引用句后 ROCO 上 Recall@1 从 7.6% 提升到 9.4%;② 复合图 subfigure-subcaption 对齐——官方提出的任务,Text+Box Embedding CRF 达到 Test F1 71.9;③ 医学图注生成与多模态预训练——为 PMC-CLIP、BIOMEDICA 等后续医学视觉-语言模型提供了数据与对照基准。
§1.1 摘要
MedICaT(Subramanian et al., Findings of EMNLP 2020)的构建分四步:首先基于 Siegel et al. 2018 的抽取结果,从 PubMed Central 开放获取子集中提取 131,410 篇论文的 217,060 幅图与图注;其次将图与 S2ORC 语料(Lo et al., 2020)逐篇匹配,从全文中抽取提及该图的图内引用句,覆盖 74% 的图;第三,通过成像关键词过滤叠加 ResNet-101 图像分类器(DocFigure 训练,precision 96%、recall 67%)筛出医学图;第四,由 5 名受过生物医学训练的标注者(两阶段,一致性 0.828→0.89)为 2,069 幅复合图画出 7,507 个 subfigure 边界框并撰写 subcaption。数据集显式排除 ROCO 图以保证不重叠,同时反向为约 25,000 幅 ROCO 图补齐引用句。官方基于此提出 subfigure-subcaption 对齐新任务并证明图内引用对图文匹配的增益(论文)。
理解 MedICaT 的关键在于它的三层文本:图注(内嵌于图,简短、模板化)、subcaption(人工撰写,面板级、金标准)、引用句(正文原文,语境丰富、含诊断细节)。三层文本与图像的对应粒度逐层收紧,构成了从"文档级"到"面板级"的对齐谱系——这也是它区别于所有"图注-图像对"数据集的本质所在。
§1.2 战略价值
维度一:多模态对齐粒度。 主流医学图文数据集(ROCO、MIMIC-CXR)都停留在"整图-整段文本"粒度,而医学文献里 75% 的图是复合图,整图对齐会把 (a)(b)©(d) 的描述混为一谈。MedICaT 是首个在复合图内部提供 subfigure 边界框 + subcaption 对齐 + 正文引用句三层粒度的医学数据集,使"面板级"检索、面板级图注生成成为可能。这一粒度后来被 Med-GLIP 等医学定位(grounding)工作直接沿用。
维度二:文献上下文作为免费监督。 医学图文对通常需要医师标注,成本高昂。MedICaT 证明论文正文中的引用句是天然的、与图注互补的监督信号(二者重叠仅 23%):在不改动 ROCO 任何标注的情况下,仅把引用句加进训练,Recall@1 就提升 1.8 个百分点。对预算有限的团队,这种"零标注成本"的数据增密思路具有普适参考价值。
维度三:可复用的文献挖掘管线。 MedICaT 的四步构建法(图抽取 → S2ORC 全文匹配 → 关键词 + 分类器过滤 → 人工对齐标注)本身就是一份可复用的方法论:把它迁移到化学、材料或其他学科文献上,即可低成本复制出领域版 MedICaT。官方论文的附录(关键词表、分类器阈值标定方法)为这种迁移提供了完整配方,这使数据集的价值超出医学 NLP 本身。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态/内容 | 标注层级 | 与 MedICaT 的差异 |
|---|---|---|---|---|
| MedICaT(2020) | 217,060 图 / 131,410 论文 | PMC 论文插图(放射 72%、病理 13%) | 图注 + 图内引用(74%)+ 7,507 对 subfigure-subcaption | 三层图文粒度唯一齐全;复合图占 75% |
| ROCO(2018) | 约 82,000 非复合放射图 | 放射影像 + 图注 | 仅整图图注 | 无复合图、无引用句;MedICaT 反向为其补充约 25,000 条引用 |
| PMC-OA(2023) | 约 160 万图文对 | PMC 图文对 | 图注为主,部分 subfigure 对齐 | 规模更大但引用句与人工标注更少 |
| MIMIC-CXR(2019) | 377,110 图 / 65,379 患者 | 仅胸片 + 报告 | 结构化报告 | 单模态、有患者级数据但需凭证申请 |
| PMC-VQA(2023) | 227,946 问答对 / 149,075 图 | 生成式 VQA 问答 | 问题-答案对 | 面向 VQA 而非文献图文对齐 |
(对比数字来源:MedICaT 论文与官方仓库、PMC-CLIP arXiv:2303.07240、ROCOv2 Scientific Data 2024。)
读表的正确姿势:MedICaT 的规模不追求最大,它的差异化在标注层次——引用句与 subfigure 对齐是其他四个数据集都没有完整提供的;若你的任务是纯规模竞赛(CLIP 式预训练),PMC-OA/BIOMEDICA 更合适;若研究"文献图表理解"或"面板级对齐",MedICaT 是首选甚至唯一选择。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2020-10-05 | 数据 v1.0 发布 | S3 四个官方文件:主包 104 GB、subcaption 标注 14 MB、划分文件 0.2 MB、ROCO 引用 3 MB |
| 2020-10-12 | 论文公开 | arXiv:2010.06000;2020-11 收入 Findings of EMNLP 2020(pp. 2112–2120) |
| 2021-01 | 仓库补充 LICENSE | 明确逐篇 CC 许可、研究用途声明 |
| 2026-02-20 | README 维护更新 | 更新 subcaption 任务数据链接与申请表单说明(截至 2026-09 仍可申请获取) |
§1.5 典型应用场景
- 医学文献图像检索:为文献检索引擎构建"以文搜图"能力,引用句让"Figure 1d"级别的面板级查询可满足。
- 复合图 subfigure-subcaption 对齐:官方任务;是医学图表理解(chart/figure understanding)与图文定位研究的基础基准。
- 医学图注生成与报告写作辅助:以"图 + 引用句"为条件生成更具体的描述,再迁移到临床报告生成。
- 医学多模态预训练:作为 CLIP 式对比预训练的文献图文语料,或与 ROCO/MIMIC-CXR 混合预训练。
- 数据挖掘方法论研究:关键词 + 分类器过滤、S2ORC 引用匹配的整套管线可复用于其他学科的图表理解数据集构建。
- 同行评审辅助:自动核查复合图面板与图注/正文引用的一致性,为编辑与审稿人提供图表完整性提示。
§2 医学背景与临床语境
§2.1 内容域 ICD-11 映射
MedICaT 本身不携带疾病或解剖标签——它的每条记录是一幅论文插图加文字。为了便于检索归类与合规审查,下表把数据集源文献中占比最高的内容域映射到 ICD-11 的代表性编码(映射用于检索导航,不代表数据的标注体系):
| 内容域(按人工评估占比) | 代表性 ICD-11 编码 | ICD-11 中文名称 | 说明 |
|---|---|---|---|
| 放射学图像(约 72%) | 1B10 / CA40 / 2C25 | 结核病 / 肺炎 / 支气管或肺恶性肿瘤 | 胸部影像是文献插图中最高频主题 |
| 组织病理学图像(约 13%) | 2A00–2F99 | 肿瘤学章节 | H&E 染色切片多见于肿瘤病理论文 |
| 内镜/体腔镜图像(约 3%) | 13.x 消化系统章节 | 消化系统疾病 | 消化内镜病例报告常用图示 |
| 其他医学图像(约 7%) | 21.x 症状体征章节 | 症状、体征与临床所见 | 跨系统病例展示图 |
§2.1b SNOMED CT 映射
| 标签/概念 | ICD-11 参照 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| CT 断层成像 | 影像学操作 | 77477000 | Computerized axial tomography(计算机轴向断层扫描) |
| X 线平片 | 影像学操作 | 168537004 | Plain X-ray(X 线平片) |
| 超声成像 | 影像学操作 | 16310003 | Ultrasonography(超声检查) |
| 病理镜检 | 病理学操作 | 441652006 | Microscopic examination of specimen(标本显微镜检查) |
| 肺结核(高频疾病主题) | 1B10 | 56717001 | Tuberculosis(结核病) |
| 肺原发恶性肿瘤(高频疾病主题) | 2C25 | 363358003 | Primary malignant neoplasm of lung(肺原发恶性肿瘤) |
§2.2 内容域简介
医学论文插图承担着"病例可视化"的功能:放射图(CT、MRI、X 线、超声)展示解剖与病灶形态,组织病理切片展示细胞级诊断证据,内镜图像展示腔内病变。这些图所服务的论文覆盖从感染性疾病到肿瘤学的全部临床科室,但分布高度不均:人工评估 200 幅图估计,放射学约占 72%、组织学 13%、内镜 3%、其他 7%(论文 §2)。与临床影像库(如 MIMIC-CXR)相比,文献图更偏"教学性、示例性",常选取典型或罕见病例,而非连续入组的真实患者流。
从疾病主题看,开放获取生物医学文献的高频插图主题与全球疾病负担并不一致:论文偏好视觉表现力强、诊断明确的病例(如肺囊肿、血管畸形、典型肿瘤切片),慢性病管理、功能性疾病等"不出图"的领域几乎缺席。使用者在做疾病覆盖规划时应意识到:MedICaT 的覆盖 = 开放获取出版生态的覆盖,而非疾病谱系的覆盖。此外,同一病例常以多面板、多时间点形式出现(治疗前/后对比、多序列 MRI),这既是数据集的特色(复合图对齐),也是分布偏移的来源。
§2.3 临床任务定义
MedICaT 支持的任务对应如下临床信息需求链:
- 筛查/检索(对应临床知识检索):医师检索"lung cyst CT"时应命中展示肺囊肿 CT 的具体面板,而非整张四联图——这是图文检索 + subfigure 对齐联合解决的问题。
- 诊断描述(对应影像报告生成):给定图像生成发现描述;MedICaT 的引用句提供了"图注之外"的诊断语境(如狭窄距肛缘 15 cm),是图注生成模型的补充监督。
- 分级/预后(间接支持):数据集无预后标签,但病理-文本对可预训练特征,迁移至分级任务。
- 教学对齐(对应医学教育):subfigure-subcaption 对齐可直接用于自动生成"图解式"教学材料。
- 文献质量保证(对应出版流程):自动核查"图注与面板是否一一对应"“正文引用与图内容是否一致”,为同行评审与预印本把关提供工具雏形。
§2.4 数据来源人群画像
| 维度 | 情况 |
|---|---|
| 来源 | 131,410 篇 PubMed Central 开放获取论文(基于 Siegel et al. 2018 抽取结果) |
| 时间 | 2020-10-05 数据发布,源文献为发布前已发表的开放获取文章 |
| 患者年龄/性别 | 未提供(论文图不含结构化患者元数据) |
| 种族/地域 | 未记录;期刊以英文开放获取出版物为主 |
| 就医类型 | 不适用——数据是文献插图而非临床就诊记录 |
§2.5 临床价值
对医学 AI 而言,MedICaT 的价值不在"替代临床数据",而在三点:其一,它是大规模免标注的视觉-语言预训练语料,可把通用视觉-语言模型拉进医学域;其二,引用句机制还原了医师在真实场景中如何图文互证(描述 + 佐证),比孤立图注更接近临床叙事;其三,subfigure 对齐让模型学会读复合图——这是解读多参数序列 MRI、多时相 CT 等真实临床复合影像的基本功。
换一个视角:临床知识今天的入口正在从"文献数据库"变成"检索与对话系统",而这些系统读不懂复合图就会给错答案。MedICaT 提供的正是"让机器按医师的方式读图"的训练材料——先找到相关面板(定位),再找到解释该面板的原句(对齐),最后把两者绑定( grounding)。这条能力链对医学教育平台、文献检索引擎、影像科教学库都有直接落地价值。
§2.6 金标准划分与标注质量
| 划分/标注 | 内容 | 标注者 | 性质 |
|---|---|---|---|
| subcaption 任务划分 | 官方 subcaption_split_keys.json(train/val/test) | 官方提供 | 任务金标准划分 |
| subfigure-subcaption 标注 | 2,069 幅复合图、7,507 对 | 阶段一 5 名标注者(生物医学背景、非医师),阶段二 2 人复核允许多段 subcaption | 人工金标准,一致性 0.828(阶段一)/ 0.89(阶段二) |
| 图注与引用句 | 217,060 图的 s2_caption 与 s2orc_references | 自动抽取(Siegel 2018 + S2ORC 匹配) | 弱监督、未医学复核 |
| 医学图标志 | radiology / scope / predicted_type 字段 | 关键词 + ResNet-101 分类器 | 弱标签(precision 96% / recall 67%) |
§3 数据集规格
§3.0 组件抉择矩阵
MedICaT 只有一个数据版本(2020-10-05),但官方拆成 4 个下载件,按需选择可显著省流量:
| 你的需求 | 推荐组件 | 大小 | 理由 |
|---|---|---|---|
| 快速理解数据格式 | 仓库 sample/ 目录 |
数 MB | 无需下载主包即可看到完整 JSONL 条目结构 |
| 复合图对齐模型训练 | subcaptions_public.jsonl + split_keys + 主包图像 | 14 MB + 0.2 MB + 104 GB | 标注与划分极小;只有图像必须下载主包 |
| 图文检索/预训练 | 主包全部 + roco_references.zip | 104 GB + 3 MB | 需要全部图文对与 ROCO 引用增强 |
| 只想复用引用句思路 | roco_references.zip + ROCO 官方数据 | 3 MB | 与站内 ROCO 条目(已上线)组合即可复现论文 §4 实验 |
§3.1 模态详情
- 医学论文插图:PNG 格式,源自论文 PDF 内嵌图;复合图(多面板拼图)约占 75%,放射学约占 72%、组织学 13%、内镜 3%、其他 7%(200 图人工评估,论文 §2)。
- 图注:两个字段——
s2_caption(Semantic Scholar 图注抽取管线)与s2orc_caption(S2ORC 全文匹配版本),二者通常一致但可能存在解析差异;平均长度 74.2 tokens。 - 图内引用句:从 S2ORC 全文抽取的、提及该图的正文句子,平均每图 1.4 条、平均 67.3 tokens;74% 的图至少有一条。
- 人工标注:subfigure 边界框 + subcaption 文字段(允许多段不连续 span),仅覆盖 2,069 幅复合图。
- 图像质量维度:分辨率与长宽比随原始出版质量浮动——同一数据包内既有高清断层图像,也有低分辨率缩略图与含版面文字的整版截图;官方未公布分辨率分布统计,建议在加载时按短边阈值(如 128 px)过滤或分层统计后再定训练集。
§3.2 子集样本数
| 子集 | 规模 | 说明 |
|---|---|---|
| 全量图文对 | 217,060 图 / 131,410 论文 | 平均每篇论文 1.7 幅图 |
| 含图内引用的图 | 约 74%(平均 1.4 条/图) | s2orc_references 非空 |
| 复合图 | 约 75%(2,327 图样本估计) | 官方标注覆盖其中 2,069 幅 |
| subfigure-subcaption 标注 | 7,507 对 / 2,069 幅图 | 人工两阶段标注,平均每幅约 3.6 对 |
| ROCO 补充引用 | 约 25,000 幅(train 约 21,000,val/test 各约 4,000) | 相当于 ROCO 训练集的 33% |
| 医学图(估计) | 约 93%(2,327 图样本、4 名标注者) | 其余为过滤漏网的非医学图 |
§3.3 数据格式
| 内容 | 格式 | 组织方式 |
|---|---|---|
| 图像 | PNG | figures/{pdf_hash}_{fig_uri},如 57c9ad0f…_2-Figure1-1.png |
| 图文对元数据 | JSONL | 每行一条 JSON 记录(pdf_hash、fig_key、fig_uri、caption、references、oa_info 等) |
| subfigure 标注 | JSONL(subcaptions_public.jsonl) | 每行一幅复合图的多对框与 subcaption |
| 任务划分 | JSON(subcaption_split_keys.json) | train/val/test 键列表 |
| 代码 | Python | 仓库 code/:对齐模型与图文匹配模型 |
| 样例 | JSON + PNG(仓库 sample/) | 无需下载主包即可调试格式 |
§3.4 存储大小
主包 medicat_release.tar.gz 约 104 GB(压缩态;解压后体积与压缩态接近,以图像为主)。官方未公布解压后精确值与校验和——下载后应以记录条数(217,060 图)自检完整性(见坑点 6)。
工程提示:104 GB 单文件对网络中断敏感,建议在稳定带宽环境(云主机内网到 S3 us-west-2)下载;磁盘预留 210 GB 以上(压缩包 + 解压目录共存)。若只需对齐任务,可先下载 14 MB 标注件与 0.2 MB 划分件开发代码,主包放到训练机下载。
§3.5 标注方式
三层标注、三种性质:① 图注与引用句为自动抽取(PDF 解析 + S2ORC 匹配),弱监督;② radiology/scope/predicted_type 为自动分类(关键词 + ResNet-101),弱标签;③ subfigure-subcaption 为人工标注(5 名标注者,含边界框绘制与 subcaption 撰写),是唯一金标准层。
§3.6 标注者资质与一致性
标注者具有不同层次的生物医学训练背景(从无到研究生水平),但无医学博士;阶段一 3 人对同一批 100 图计算一致性得 0.828,阶段二复核后达 0.89(论文 §2)。这意味着边界框可靠,而 subcaption 文字表述可能带有非临床人员的措辞习惯。
| 阶段 | 人数 | 任务 | 一致性(100 图抽样) |
|---|---|---|---|
| 阶段一 | 5 | 画 subfigure 边界框 + 撰写单段 subcaption | 0.828(三两两有序对平均) |
| 阶段二 | 2(从阶段一选拔) | 复核框与 subcaption,允许多段 span | 0.89 |
§3.7 采集周期
语料抽取与匹配在 2018–2020 年间完成(基于 Siegel et al. 2018 的抽取结果 + S2ORC 2020 年版语料),数据包定格于 2020-10-05;此后未发布过更新的图像/文本版本。
§3.8 地域覆盖
期刊层面覆盖全球 PubMed Central 开放获取出版物(英文为主);论文作者与患者地域未记录,无法做地域分层。
§3.9 设备规格
不适用——图像来自论文 PDF 解析而非 DICOM 归档,无设备型号、层厚、磁场强度等技术参数;分辨率随原始出版质量浮动(见坑点 8 相关讨论)。
若下游任务需要设备级信息,可行替代:① 从 oa_info.doi 回溯源论文正文,部分 Methods 段落会描述设备;② 将 MedICaT 仅用作预训练,把设备条件化的工作放在 DICOM 来源的临床数据集(如 MIMIC-CXR)上做。
§3.10 深度溯源链
每条记录内嵌 oa_info 溯源块:源文章 DOI、DOI 链接、开放获取状态(is_oa)、OA 等级(gold 等)、期刊 OA 属性、逐篇许可(如 cc-by-nc-nd)与许可来源(unpaywall)。从"一幅图"可以一路回溯到"哪篇论文、什么许可、是否可再分发",这在同类数据集中相当完善。
§4 数据结构
§4.0 目录树
解压 medicat_release.tar.gz 并合并官方标注文件后的预期结构:
data_root/
├── figures/ # 全部图像(来自 medicat_release.tar.gz)
│ ├── 57c9ad0f4aab133f96d40992c46926fabc901ffa_2-Figure1-1.png
│ ├── {pdf_hash}_{fig_uri}.png # 命名规则:论文哈希_原始图编号
│ └── ...
├── medicat_release_data.jsonl # 图文对元数据(每行一条记录)
├── subcaptions_public.jsonl # 2,069 幅复合图的 7,507 对 subfigure-subcaption
├── subcaption_split_keys.json # subcaption 任务官方 train/val/test 划分
└── roco_references/
└── roco_references.jsonl # 约 25,000 幅 ROCO 图的图内引用
说明:medicat_release_data.jsonl 为示意命名——主包内元数据的实际文件名与内部组织以解压结果为准;仓库 sample/ 提供了结构与正式记录一致的样例,开发阶段请以样例文件的字段为准编写解析器。roco_references.zip 解压后的确切文件名同样以包内为准(约 25,000 幅 ROCO 图的引用记录)。
§4.1 DAIMS 字段字典
官方 README 给出的完整示例记录(美化排版后,字段与真实数据一致):
{
"pdf_hash": "57c9ad0f4aab133f96d40992c46926fabc901ffa",
"fig_key": "Figure1",
"fig_uri": "2-Figure1-1.png",
"s2_caption": "Figure 1. (A) Barium enema and (B) endoscopic image of the high-grade distal colonic obstruction caused by a 5-cm anastomotic stricture.",
"s2orc_caption": "Figure 1. (A) Barium enema and (B) endoscopic image of the high-grade distal colonic obstruction caused by a 5-cm anastomotic stricture.",
"s2orc_references": [
"Computed tomography (CT) showed a distal large bowel obstruction, and a barium enema revealed a high-grade stenosis proximal to the anastomotic site in the recto-sigmoid region (Figure 1 ).",
"Flexible sigmoidoscopy revealed a tight, fibrotic, benign-appearing anastomotic stricture 15 cm from the anal verge ( Figure 1) ."
],
"radiology": false,
"scope": true,
"predicted_type": "Medical images",
"oa_info": {
"doi": "10.14309/crj.2014.54",
"doi_url": "https://doi.org/10.14309/crj.2014.54",
"oa": {
"is_oa": true,
"oa_status": "gold",
"journal_is_oa": true,
"journal_is_in_doaj": true,
"license": "cc-by-nc-nd",
"provenance": "unpaywall"
}
}
}
注意该示例的三个细节:① 此图被 radiology=false, scope=true 正确标为内镜图——域标签有时是对的,但 recall 仅约 67%,不能反推"false 即非放射";② s2orc_references 给出的两句正文比图注包含更多临床细节(梗阻部位、狭窄距肛缘距离);③ oa_info.license 显示 cc-by-nc-nd,即该图禁止用于商业用途与再分发。
核心 JSONL 记录字段(每行一条记录对应一幅图):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
pdf_hash |
string | 源论文 PDF 的 SHA-1 哈希,主键之一 | 57c9ad0f4aab… |
论文级分组、防泄漏 | 无 | 无 | 40 位十六进制 |
fig_key |
string | 图编号键 | Figure1 |
与图像配对 | PDF 解析可能漏抽图 | 无 | 论文内唯一 |
fig_uri |
string | 图像文件名片段 | 2-Figure1-1.png |
拼接图像路径 | 同图多文件时需甄别 | 无 | 文件名 |
s2_caption |
string | Semantic Scholar 抽取图注 | Figure 1. (A) Barium enema… |
主文本模态 | 抽取噪声、截断 | 空串=缺失 | 英文文本 |
s2orc_caption |
string | S2ORC 匹配版图注 | 同上 | 双源校验 | 与 s2_caption 可能不一致 | 空串=缺失 | 英文文本 |
s2orc_references |
list[string] | 提及本图的正文引用句 | ["CT thorax revealed…"] |
检索增益、监督增密 | 匹配遗漏(26% 图无引用) | 空列表=无引用 | 0–N 条 |
radiology |
bool | 分类器判断是否放射图 | true |
弱域标签 | recall 约 67%,勿当金标 | 无 | true/false |
scope |
bool | 是否内镜/体腔镜图 | false |
弱域标签 | 同上 | 无 | true/false |
predicted_type |
string | 分类器输出类别 | Medical images |
过滤复现 | 分类器噪声 | 无 | DocFigure 类别词 |
oa_info.doi |
string | 源论文 DOI | 10.14309/crj.2014.54 |
溯源、许可证核查 | 无 | 无 | DOI |
oa_info.oa.license |
string | 逐篇开放获取许可 | cc-by-nc-nd |
合规审查 | unpaywall 记录滞后 | 无 | CC 变体/public domain |
oa_info.oa.oa_status |
string | OA 等级 | gold |
语料计量 | 无 | 无 | gold/hybrid/bronze/green |
§4.2 标签分布
唯一的人工标签层是 subfigure-subcaption 标注:2,069 幅复合图 7,507 对,平均每幅约 3.6 个 subfigure;约 75% 的图为复合图。弱标签层面:医学图约占 93%(估计值),其中放射约 72%、病理 13%、内镜 3%、其他 7%。图内引用覆盖 74%(约 25,000 幅 ROCO 图另有补充引用)。
| 标签层 | 取值/类别 | 覆盖规模 | 标签来源 |
|---|---|---|---|
域标签 radiology |
true/false | 全部 217,060 图 | 关键词 + 分类器(弱) |
域标签 scope |
true/false | 全部 217,060 图 | 关键词 + 分类器(弱) |
类型标签 predicted_type |
DocFigure 类别词 | 全部 217,060 图 | ResNet-101 分类器(弱) |
| 对齐标签(subfigure 框 + subcaption span) | 连续坐标 + 自由文本 | 2,069 幅复合图 / 7,507 对 | 人工两阶段(金标准) |
许可标签 oa_info.oa.license |
CC 变体/public domain | 全部记录 | unpaywall 记录 |
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 平均每篇论文图数 | 1.7 | 论文 Table 1 |
| 平均每图引用条数 | 1.4 | 论文 Table 1 |
| 平均图注长度 | 74.2 tokens | 论文 Table 1 |
| 平均引用句长度 | 67.3 tokens | 论文 Table 1 |
| 图注-引用 Jaccard 相似度 | 23% | 论文 Table 1 |
| subfigure 标注一致性 | 0.828 / 0.89 | 论文 §2 |
| 平均每幅标注复合图的 subfigure 数 | 约 3.6(7,507 / 2,069) | 官方规模数字推算 |
| 医学图占比(样本估计) | 93% | 论文 Table 1(2,327 图样本) |
§4.4 数据层级
层级为 期刊 → 论文(pdf_hash)→ 图(pdf_hash + fig_key)→ subfigure(边界框)。论文是天然分组单位:同一篇论文的多幅图共享背景、疾病与写作风格,做 train/test 划分时必须按论文分组,否则检索实验会因"同论文另一幅图"而虚高(见 §5.3)。
§4.5 缺失值与信息性缺失
| 字段 | 缺失形态 | 含义 | 处理建议 |
|---|---|---|---|
s2orc_references |
空列表 | 26% 的图未匹配到引用句(或正文确实未提及) | 检索训练时降权或仅用图注 |
s2orc_caption |
空串/不一致 | S2ORC 匹配失败,回退 s2_caption |
优先 s2_caption,双源冲突时人工抽检 |
radiology/scope |
均 false | 非放射非内镜(可能病理图或过滤漏网图) | 视为"未知域",不要删除 |
oa_info |
无或字段不全 | 溯源信息缺失(unpaywall 未覆盖该文) | 保留记录,标注"许可未知"并保守对待 |
| subfigure 标注 | 主包图无此标注 | 仅 2,069 幅复合图有人工标注 | 对齐任务限定官方划分内 |
§5 数据划分与使用建议
§5.1 官方划分
官方仅为 subcaption 任务提供划分:subcaption_split_keys.json 给出 train/val/test 的复合图键列表;社区资料按 65%/15%/20% 描述该比例(OpenMedLab 收录页),复现论文 Table 2 时应以此文件为准。
import json
with open("subcaption_split_keys.json", encoding="utf-8") as f:
split_keys = json.load(f)
# 结构预期:{"train": [复合图键...], "val": [...], "test": [...]}
# 键与 subcaptions_public.jsonl 中的复合图标识对应
print({k: len(v) for k, v in split_keys.items()})
§5.2 社区惯例
对全量图文对(无官方划分),社区通行做法:按 pdf_hash 分组做 8:1:1 划分;或在 ROCO 上做检索实验(ROCO 自带 65,000/8,175/8,177 划分,MedICaT 补充引用后按 ROCO 原划分评估)。PMC-CLIP、BIOMEDICA 等后续工作均沿用 ROCO 划分报告检索指标。
无论采用哪种划分,建议在论文/报告里写明三件事:划分单位(图/论文)、图注字段选择、是否使用引用句——MedICaT 缺乏统一社区协议,这三项不写清楚会导致结果无法横向对比。
§5.3 泄漏风险(重点)
- 论文级泄漏:同一论文的多幅图与引用句共享疾病、术式与措辞。若按图随机划分,测试集图可能"见过"训练集里同论文的姊妹图——图文检索与图注生成都会虚高。必须按 pdf_hash 分组划分。
- 引用句跨图泄漏:正文一句"Figure 1 and Figure 2 show…"可能同时作为两幅图的引用;若两句一图一测试,文本特征会跨划分泄漏。分组划分 + 以句为单位去重可缓解。
- ROCO 排重已做但需自查:官方已从 MedICaT 中剔除 ROCO 图以保证不重叠;但若你把 MedICaT 与其他 PMC 语料(如 PMC-OA)混用,需自行按 DOI 去重,否则预训练-测试重叠会污染评测。
- subcaption 划分与主包:对齐任务只能用官方划分文件;不要把 2,069 幅标注图混入预训练后再在同一批图上测检索。
§5.4 交叉验证建议
对 2,069 幅标注复合图这种小标注集,建议按论文分组的 5 折交叉验证报告均值±标准差(论文只给单次划分结果);对全量图文任务,单次分组划分 + 固定随机种子即可。
实现要点:分组用 sklearn.model_selection.GroupKFold,groups 取每条记录的 pdf_hash;折间保证同一论文的复合图不出现在两个折中,否则一致性估计会虚高。
§5.5 外部验证建议
在 ROCO(外部、非复合、自带划分)上评估检索 Recall@K 是论文选定的外部锚点;建议再补 MIMIC-CXR 或 PadChest 的报告-图像检索作为第二个外部域,检验"文献图 → 临床图"的分布迁移。迁移实验的最低配置:MedICaT 预训练 → 目标域全量微调 → 目标域零样本对照,三者差值即"文献语料的净贡献"。
§6 AI 就绪指南
§6.0 云端快速启动
数据必须经官方表单申请后获得 S3 链接,没有公开镜像的云端一键加载。拿到链接后,在任意带 150 GB 以上磁盘的云端实例(Colab 不适合主包,适合 14 MB 标注件 + sample):
# 断点续传下载主包(104 GB,务必用 -c 支持续传)
wget -c https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/medicat_release.tar.gz
# 小件直下
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/subcaptions_public.jsonl
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/subcaption_split_keys.json
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/roco_references.zip && unzip roco_references.zip
§6.1 快速上手
先跑通最小可用子集:仓库 sample/ 目录无需下载主包即可验证代码逻辑。下面代码假设你已解压主包并放置好标注文件。
# 目录结构预期(data_root 由你指定):
# data_root/figures/{pdf_hash}_{fig_uri} # 图像
# data_root/medicat_release_data.jsonl # 图文对元数据
# data_root/subcaptions_public.jsonl # subfigure-subcaption 标注
# data_root/subcaption_split_keys.json # 官方划分
# data_root 拼接关系:image_path = f"{data_root}/figures/{pdf_hash}_{fig_uri}"
# 最小可用子集:subcaptions_public.jsonl 的 2,069 幅标注复合图(无需理解全量 217K 图即可训练对齐模型)
import json, os
from PIL import Image
DATA_ROOT = "data/medicat"
def figure_path(rec):
"""按官方命名规则拼接图像路径。"""
return os.path.join(DATA_ROOT, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")
def load_records(path=None):
"""加载图文对元数据;优先读主包 JSONL,缺省时读官方样例。"""
path = path or os.path.join(DATA_ROOT, "medicat_release_data.jsonl")
records = []
with open(path, encoding="utf-8") as f:
for line in f:
rec = json.loads(line)
if os.path.exists(figure_path(rec)): # 过滤磁盘上不存在的图
records.append(rec)
return records
records = load_records()
print(f"可用图文对: {len(records)}")
print(records[0]["s2_caption"][:120])
开发建议:先用仓库 sample/ 中的样例文件把 load_records 跑通(把 DATA_ROOT 指向 sample 目录),确认字段解析无误后再切到全量 JSONL;两阶段的唯一区别是数据路径与记录数量。
§6.2 数据获取
获取流程:① 访问 官方仓库 填写访问表单(约 48 小时内回复,超过 5 天可邮件 lucyw@allenai.org 催询,注意检查垃圾邮箱);② 收到的邮件含 S3 直链(2020-10-05 版本,截至 2026-09 仍有效);③ 分件下载。
| 组件 | 内容 | 大小 | 链接形态 |
|---|---|---|---|
| medicat_release.tar.gz | 图像 + 图注 + 引用(主包) | 104 GB | S3 直链(申请后获得) |
| subcaptions_public.jsonl | 7,507 对 subfigure-subcaption | 14 MB | S3 直链 |
| subcaption_split_keys.json | 对齐任务官方划分 | 0.2 MB | S3 直链 |
| roco_references.zip | 约 25,000 幅 ROCO 图引用 | 3 MB | S3 直链 |
# 校验下载完整性的自检脚本(官方无校验和,用记录数兜底)
python - <<'PY'
import json, tarfile
tar = tarfile.open("medicat_release.tar.gz") # 建议流式读取,勿一次解压
img_count = sum(1 for m in tar if m.name.endswith(".png"))
print("PNG 数量:", img_count, "(官方标称 217,060)")
PY
四个官方文件可写入一个批量脚本,配合断点续传做定期校验:
#!/usr/bin/env bash
# download_medicat.sh —— 批量下载四个官方件,全部支持断点续传
BASE="https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05"
for f in medicat_release.tar.gz subcaptions_public.jsonl \
subcaption_split_keys.json roco_references.zip; do
wget -c -P data/medicat "$BASE/$f" || { echo "FAILED: $f"; exit 1; }
done
echo "all done"
§6.3 预处理全流程
从原始 JSONL 到可训练样本的四步:清洗 → 规范化 → 负采样索引 → subfigure 裁剪。
import re, json, os, random
def clean_caption(text):
"""去掉 'Figure N.' 前缀与多余空白,保留临床描述主体。"""
text = re.sub(r"^\s*Figure\s*\d+\s*[:.]?\s*", "", text or "", flags=re.I)
return " ".join(text.split())
def build_index(records):
"""清洗 + 去重 + 生成检索负采样池。"""
seen, index = set(), []
for rec in records:
key = (rec["pdf_hash"], rec["fig_key"])
if key in seen: # 同论文同图重复条目
continue
seen.add(key)
index.append({
"image": figure_path(rec),
"caption": clean_caption(rec.get("s2_caption") or rec.get("s2orc_caption")),
"references": [clean_caption(r) for r in rec.get("s2orc_references", [])],
"doi": rec.get("oa_info", {}).get("doi", ""),
"license": rec.get("oa_info", {}).get("oa", {}).get("license", ""),
})
return index
def normalize_for_training(index):
"""文本规范化:图注 + 引用句拼接(引用句用 token type 区分,见 §6.5 坑点 2)。"""
for item in index:
item["text_main"] = item["caption"]
item["text_aux"] = " ".join(item["references"][:2]) # 平均 1.4 条,最多取前 2 条
return index
COMMERCIAL_OK = {"cc-by", "public domain", "pd", "cc0"}
def filter_by_license(index, allowed=COMMERCIAL_OK):
"""按许可过滤:只有计划公开分发衍生数据时才需要(训练本身不受限)。
注意保留被过滤记录的 ID 清单以便审计,而不是静默丢弃。"""
kept = [it for it in index if it["license"].lower() in allowed]
dropped = [it for it in index if it["license"].lower() not in allowed]
print(f"保留 {len(kept)} 条,搁置 {len(dropped)} 条(license 不在白名单)")
return kept, dropped
def crop_subfigures(image_path, boxes):
"""按人工边界框裁剪 subfigure(boxes 来自 subcaptions_public.jsonl)。"""
img = Image.open(image_path).convert("RGB")
return [img.crop((b["x"], b["y"], b["x"] + b["w"], b["y"] + b["h"])) for b in boxes]
random.seed(42)
print("预处理完成,随机示例:", build_index(load_records())[0]["text_main"][:80])
§6.4 PyTorch DataLoader
import json, os
import torch
from PIL import Image
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
class MedICaTImageTextDataset(Dataset):
"""图文对数据集:图 + 图注 + 图内引用句。
预期目录结构:
data_root/figures/{pdf_hash}_{fig_uri}
data_root/medicat_release_data.jsonl
data_root 拼接关系:image_path = os.path.join(root, "figures", f"{pdf_hash}_{fig_uri}")
最小可用子集:先用 subcaptions_public.jsonl 中的 2,069 幅图验证 pipeline。
"""
def __init__(self, data_root, jsonl_name="medicat_release_data.jsonl",
use_references=True, transform=None):
self.root = data_root
self.use_references = use_references
self.transform = transform or transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
])
self.items = []
with open(os.path.join(data_root, jsonl_name), encoding="utf-8") as f:
for line in f:
rec = json.loads(line)
img_path = os.path.join(
data_root, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")
caption = rec.get("s2_caption") or rec.get("s2orc_caption") or ""
if caption and os.path.exists(img_path):
refs = rec.get("s2orc_references") or []
self.items.append((img_path, caption, refs))
def __len__(self):
return len(self.items)
def __getitem__(self, idx):
img_path, caption, refs = self.items[idx]
image = self.transform(Image.open(img_path).convert("RGB"))
text = caption + (" " + " ".join(refs[:2]) if self.use_references and refs else "")
return image, text
class MedICaTSubfigureDataset(Dataset):
"""复合图对齐任务数据集:复合图 + subfigure 边界框 + subcaption 文字。
预期目录结构:
data_root/figures/{pdf_hash}_{fig_uri} # 主包图像
data_root/subcaptions_public.jsonl # 2,069 幅复合图的 7,507 对标注
data_root/subcaption_split_keys.json # 官方 train/val/test 划分
data_root 拼接关系与主数据集一致;最小可用子集即本文件全部记录。
"""
def __init__(self, data_root, split="train", transform=None):
self.root = data_root
self.transform = transform or transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor(),
])
with open(os.path.join(data_root, "subcaption_split_keys.json"),
encoding="utf-8") as f:
keys = set(json.load(f)[split])
self.items = []
with open(os.path.join(data_root, "subcaptions_public.jsonl"),
encoding="utf-8") as f:
for line in f:
rec = json.loads(line)
if self._figure_key(rec) in keys:
self.items.append(rec)
def _figure_key(self, rec):
"""按官方划分文件的键格式返回复合图标识(以实际文件键结构为准)。"""
return rec.get("figure_id") or f"{rec.get('pdf_hash')}_{rec.get('fig_key')}"
def __len__(self):
return len(self.items)
def __getitem__(self, idx):
rec = self.items[idx]
img_path = os.path.join(
self.root, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")
image = Image.open(img_path).convert("RGB")
subfigures = [(s["subcaption"], self.transform(
image.crop((s["x"], s["y"], s["x"] + s["w"], s["y"] + s["h"]))))
for s in rec.get("subfigures", [])]
return rec.get("caption", ""), subfigures
def collate_subfigures(batch):
caps, subs = zip(*batch)
return caps, subs # 变长 subfigure 列表,按需在模型内处理
def collate_fn(batch):
images, texts = zip(*batch)
return torch.stack(images), list(texts)
dataset = MedICaTImageTextDataset("data/medicat", use_references=True)
loader = DataLoader(dataset, batch_size=64, shuffle=True,
num_workers=8, collate_fn=collate_fn, pin_memory=True)
images, texts = next(iter(loader))
print(images.shape, texts[0][:80])
§6.5 坑点 8 个
⚠️ 坑点 1:75% 复合图被当"单图"整用(分类:偏倚陷阱)
问题:MedICaT 约 75% 的图是含 (a)(b)©(d) 面板的复合图,整图-整注训练会让模型把多个面板的描述压进一个视觉向量,检索与 captioning 双双错位。
症状:检索查询"lung cyst CT"命中整张四联图却排序不如单面板图;captioning 输出把不同面板的发现串成一句混乱描述。
解决:
- 简单方法:优先用
radiology过滤出非复合子集(ROCO 风格)做基线,或在训练时按 subfigure 边界框随机裁剪一个面板作为正样本视图。- 进阶方法:用官方 2,069 幅标注图训练面板裁剪器(基于边界框的检测/分割),再对全量复合图推理生成"伪 subfigure",把语料扩成面板级图文对。
- SOTA 方法:训练官方提出的 subfigure-subcaption 对齐模型(SciBERT CRF + box embedding,Test F1 71.9),用其对齐信号做面板级对比学习。
参考:Subramanian et al., 2020, Findings of EMNLP, DOI 10.18653/v1/2020.findings-emnlp.191;官方仓库 code/
⚠️ 坑点 2:只训图注、扔掉引用句,白白损失 1.8 个点 Recall@1(分类:标签理解)
问题:图注与引用句平均 Jaccard 相似度仅 23%——正文引用句包含图注没有的诊断细节(位置、尺寸、病例编号语境),丢弃即浪费。
症状:模型在 ROCO 检索上 Recall@1 停在 7.6% 附近(论文 caption-only 基线),加引用句本可到 9.4%。
解决:
- 简单方法:把引用句直接拼进文本端(
caption + " " + refs[:2])。- 进阶方法:给图注与引用句用不同 token type embeddings(官方做法),让编码器区分"描述"与"佐证"两种语体;训练目标用 1 正 2 负三元组选择。
- SOTA 方法:引用句按 subfigure 指代(如 “Figure 1d”)先做面板级路由,再分别与对应面板对齐。
参考:论文 §4;注意仅 33% 的 ROCO 训练图有引用,对比实验时固定被覆盖子集。
⚠️ 坑点 3:
s2_caption与s2orc_caption双源打架(分类:工程陷阱)问题:同一幅图有两个图注字段,来自 Semantic Scholar 抽取管线与 S2ORC 匹配两条链路,解析差异会产生大小写、前缀甚至内容不一致。
症状:同一图在不同 epoch/数据版本下文本不同;评测分数随字段选择漂移。
解决:
- 简单方法:统一用
s2_caption,缺失时回退s2orc_caption。- 进阶方法:构建时对两字段做规范化后比对(去 “Figure N.” 前缀、空白折叠),不一致的记录打上
caption_conflict标志并抽检。- SOTA 方法:双字段各自训练一个轻量检索头,评测取集成,容忍而非消灭差异。
参考:官方仓库 README 示例记录;S2ORC(Lo et al., 2020)抽取协议。
⚠️ 坑点 4:把
radiology/predicted_type弱标签当金标准(分类:预处理陷阱)问题:域标签来自关键词 + ResNet-101 分类器(DocFigure 训练),官方口径 precision 96%、recall 仅 67%——约三分之一医学图会被漏标,非医学图也可能混入。
症状:按radiology==true切子集后,统计里"非放射图"里仍混有大量放射图;用predicted_type复现过滤时数量对不上论文。
解决:
- 简单方法:把这两个布尔值仅当先验权重,不当过滤硬条件。
- 进阶方法:先用关键词二次放宽召回,再用自训练的 DocFigure 分类器重打标,抽样 200 幅人工复核(复现论文的自校准流程)。
- SOTA 方法:用 CLIP 零样本类别词打标 + 置信度阈值分层,保留低置信样本作"unknown 域"。
参考:论文 §2 过滤协议与脚注;DocFigure(Jobin et al., 2019)。
⚠️ 坑点 5:逐篇 CC 许可异构,再分发即违规(分类:工程陷阱)
问题:MedICaT 整体"仅限研究用途、非商业",且每幅图继承源文献许可——含 CC BY-NC-ND、CC BY-SA 等变体,ND/SA 条款禁止分发处理后图像或要求同许可传递。ROCOv2 论文专门指出这一点。
症状:把重标注后的图像包发布到 HuggingFace 后收到下架/邮件投诉;商用产品引用了数据集图像导致许可连锁问题。
解决:
- 简单方法:发布衍生数据集时只放 ID 与下载脚本,不放图像像素;保留
oa_info.license字段逐条可查。- 进阶方法:按许可分组过滤——只保留 CC BY / 公有领域的子集做公开分发(数量会缩水,需在论文中如实说明)。
- SOTA 方法:仿照 BIOMEDICA 的做法做许可分层发布(每条记录带许可元数据 + 分许可的独立打包)。
参考:官方仓库 LICENSE/README;ROCOv2, Scientific Data 2024, DOI 10.1038/s41597-024-03496-6。
⚠️ 坑点 6:104 GB 单包下载断裂与图像路径拼接错误(分类:工程陷阱)
问题:主包是单个 104 GB tar.gz,S3 us-west-2 直链无官方校验和;图像命名是
{pdf_hash}_{fig_uri}的拼接规则,手滑写成fig_uri单独拼会全量 FileNotFoundError。
症状:wget半途断连后解压报 tar 错误;Dataset 初始化时大批 “image not found”;JSONL 记录数与磁盘图数对不齐。
解决:
- 简单方法:
wget -c断点续传 + 解压后统计 PNG 数对照 217,060。- 进阶方法:加载器统一封装
figure_path(rec)函数(见 §6.1),初始化时过滤不存在文件并记录缺失清单。- SOTA 方法:下载后建立
pdf_hash,fig_key → 磁盘路径的 SQLite 索引,训练时 O(1) 查找并支持缺失容忍采样。
参考:官方 README 下载说明与示例记录;仓库 sample/。
⚠️ 坑点 7:subcaption 是多段不连续 span,单段模型有天花板(分类:评估误用)
问题:一个 subfigure 常对应图注中多段不连续文字(如 “(A)” 与句中后半段描述)。阶段二标注明确允许多段 span;官方 oracle 实验显示,强制单段的天花板(Test 75.5)比无约束 oracle(Test 90.8)低约 15 个 F1。
症状:你的对齐模型在 66–72 F1 附近徘徊却找不到改进方向;人工查看发现正确描述被切成两截。
解决:
- 简单方法:接受单段设定做快速基线,但报告时注明与 oracle 的差距。
- 进阶方法:用 CRF/BiLSTM-CRF 做序列标注天然支持多段输出(官方 Text+Box Embedding CRF 即此路线)。
- SOTA 方法:用生成式 span 抽取(如 seq2seq 输出 start-end 对)或对每对(subfigure, token)做二分类再聚合。
参考:论文 Table 2 与 §3;官方code/中 CRF 实现。
⚠️ 坑点 8:文献插图 ≠ 临床数据分布,跨域直接部署失效(分类:偏倚陷阱)
问题:数据来自"被挑选进论文的图"——典型病例、阳性结果、示意图占优;无患者级元数据、无设备参数、放射占 72%。文献域训练的模型在连续临床数据流上会有系统性分布漂移。
症状:在 MIMIC-CXR 报告检索或院内 PACS 图像上指标大幅低于 ROCO 上的表现;captioning 输出偏向"教科书式"完整句而非真实报告风格。
解决:
- 简单方法:在论文中明确声明域差异,不做临床声明;保留 MedICaT 作预训练、临床数据作微调。
- 进阶方法:域自适应——用 MIMIC-CXR/PadChest 做目标域微调,报告"文献域 → 临床域"的退化曲线作为外部验证(见 §7.8)。
- SOTA 方法:混合语料预训练(MedICaT + MIMIC-CXR + ROCO)并按来源做平衡采样,评测时分域报告。
参考:论文 limitations 讨论;PMC-CLIP(MICCAI 2023)与 BIOMEDICA(2025)的混合语料实践。
§6.6 数据增强
安全增强 ✅:
- 几何类:随机缩放裁剪(0.7–1.0)、轻度平移——面板内病灶位置信息保留。
- 光度类:亮度/对比度抖动(±10%)、轻微高斯噪声——模拟出版扫描差异。
- 文本侧:图注/引用句随机 dropout、同论文引用句乱序。
危险增强 ❌:
- 水平/垂直翻转——医学影像解剖方位(左右侧、前后位)具有诊断含义,文献图上的箭头标注与方位词(“right renal”)会与图像失配。
- 大角度旋转与弹性形变——破坏箭头、标尺、面板字母 (a)(b) 的可读性,而这些正是 MedICaT 引用句所指的对象。
- 对 subfigure 边界框做增强却不同步变换框坐标——对齐任务标签即刻失效。
def safe_transform(image, boxes=None):
"""文本-框同步的增强封装:图像与边界框做同一几何变换。"""
import random
scale = random.uniform(0.7, 1.0) # 随机缩放(安全)
new_size = (int(image.width * scale), int(image.height * scale))
image = image.resize(new_size)
if boxes is not None: # 框坐标同步缩放
boxes = [{**b, "x": b["x"] * scale, "y": b["y"] * scale,
"w": b["w"] * scale, "h": b["h"] * scale} for b in boxes]
return image, boxes # 注意:不做翻转/旋转
§6.7 模型推荐
| 任务 | 推荐模型 | 起点规模 | 说明 |
|---|---|---|---|
| 图文检索/预训练 | CLIP / PubMedCLIP 架构(ViT-B/32 + SciBERT 或 BioClinicalBERT) | 约 1.5 亿参数 | 文本端换医学预训练权重收益明显(论文消融:预训练权重 F1 +23) |
| subfigure-subcaption 对齐 | Text+Box Embedding CRF(官方) | SciBERT-base | 官方 Test F1 71.9,代码在仓库 code/ |
| 面板级 captioning | BLIP 风格 encoder-decoder + 面板裁剪前端 | 约 2 亿参数 | 以引用句为辅助监督 |
| 多模态大模型预训练 | 把 MedICaT 混入 PMC-OA/ROCO 混合语料 | 依底座 | 参考 PMC-CLIP、BIOMEDICA 的配比 |
§6.8 硬件需求
| 阶段 | 显存 | 建议 |
|---|---|---|
| 对齐模型(SciBERT-CRF,2,069 图) | 1×16 GB | 单卡 A10/3090 数小时一轮 |
| 检索预训练(全量 217K 图) | 1×24–40 GB | batch 128–256,混合精度 |
| 大规模 CLIP 式预训练 | 4–8×A100 40 GB | 数据 104 GB,先做本地缓存索引 |
经验参考:对齐任务(2,069 图)在单张消费级显卡上即可完整迭代,适合作为课程实验或快速验证;全量检索预训练则按 ROCO 级别(8 万图)起步配置估算,MedICaT 全量约为其 2.6 倍训练时长。
§6.9 评估指标代码
import torch
def recall_at_k(image_feats, text_feats, ks=(1, 5, 10)):
"""图→文与文→图 Recall@K(余弦相似度,全库检索)。"""
image_feats = torch.nn.functional.normalize(image_feats, dim=-1)
text_feats = torch.nn.functional.normalize(text_feats, dim=-1)
sims = text_feats @ image_feats.T # N×N
ranks_i2t = (sims.T.argsort(dim=-1) ==
torch.arange(len(sims), device=sims.device).unsqueeze(1)).nonzero()[:, 1]
results = {}
for k in ks:
results[f"i2t_R@{k}"] = (ranks_i2t < k).float().mean().item()
return results
def span_f1(pred_spans, gold_spans):
"""多段 span 级 P/R/F1:对齐任务主指标(论文口径)。"""
pred_set = {(s, e) for s, e in pred_spans}
gold_set = {(s, e) for s, e in gold_spans}
tp = len(pred_set & gold_set)
p = tp / len(pred_set) if pred_set else 0.0
r = tp / len(gold_set) if gold_set else 0.0
return 2 * p * r / (p + r) if p + r else 0.0
def box_iou(box_a, box_b):
"""边界框 IoU:评测 subfigure 检测/裁剪质量(x, y, w, h 格式)。"""
ax1, ay1, ax2, ay2 = box_a[0], box_a[1], box_a[0] + box_a[2], box_a[1] + box_a[3]
bx1, by1, bx2, by2 = box_b[0], box_b[1], box_b[0] + box_b[2], box_b[1] + box_b[3]
iw = max(0.0, min(ax2, bx2) - max(ax1, bx1))
ih = max(0.0, min(ay2, by2) - max(ay1, by1))
inter = iw * ih
union = box_a[2] * box_a[3] + box_b[2] * box_b[3] - inter
return inter / union if union > 0 else 0.0
§6.10 MLOps 笔记
- 数据版本:MedICaT 内容包无版本号变化(2020-10-05 定版),但你的衍生处理(清洗规则、子集过滤)必须单独打版本(如 DVC);论文复现务必记录"用了哪个图注字段、是否拼引用句"。
- 许可合规进流水线:在数据管道里加一道
oa_info.license检查点,商用触发告警(见坑点 5)。 - 评测锚点:把 ROCO 检索(R@1/R@5/R@10,2,000 抽样对)与官方对齐划分 F1 固化为 CI 回归指标,防止数据处理回归悄悄劣化。
- 可复现性:固定负采样种子——检索训练负例是随机抽的(官方协议),负例种子不同分数波动明显(论文附录 D 报告了多种子极差)。
- 存储成本:104 GB 主包 + 解压副本约需 210 GB;建议训练集群只保留解压目录,压缩包放对象存储冷备。
- 元数据追踪:为每个训练样本保留 (pdf_hash, fig_key, license, domain_flags) 四元组,任何后续审计(许可、子集分析、错误分析)都能一查到底。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 文献选择偏倚 | 只收录"能进论文的图"——典型、阳性、教学性病例 | 高 | 外部验证于临床流数据(MIMIC-CXR 等),声明不做临床推断 |
| 复合图结构偏倚 | 75% 复合图 + 平均约 3.6 面板,整图级统计被多面板稀释 | 高 | 面板级建模(§6.7),避免整图-整注直接训练 |
| 模态偏倚 | 放射 72%、病理 13%、内镜仅 3%,其他模态稀薄 | 中 | 分域训练/评测,报告分域指标 |
| 语言与地域偏倚 | 英文开放获取期刊为主,地域与人群未记录 | 中 | 谨慎外推到非英语临床环境 |
| 过滤器偏倚 | 关键词+分类器过滤 recall 约 67%,医学图约 93%(估计) | 中 | 用作先验而非硬过滤;自训练分类器重打标 |
| 引用覆盖偏倚 | 仅 74% 图有引用句、ROCO 训练集覆盖仅 33% | 中 | 引用增强实验固定覆盖子集,避免混入"有引用子集"的隐性选择效应 |
| 许可结构偏倚 | 许可异构(ND/SA 混杂),高影响因子出版社占比高 | 低 | 训练不受影响;分发需分层处理 |
§7.2 标注质量
| 标注层 | 方式 | 覆盖 | 质量信号 |
|---|---|---|---|
| subfigure 边界框 + subcaption | 人工两阶段(5 人标注 + 2 人复核) | 2,069 幅复合图 | 一致性 0.828→0.89;允许多段 span |
| 图注(s2_caption/s2orc_caption) | 自动抽取 | 全部 217,060 图 | PDF 解析噪声、双源不一致 |
| 图内引用句 | 自动(S2ORC 匹配) | 74% 图 | 匹配遗漏与"正文未提及"不可区分 |
| 域标签(radiology/scope/type) | 关键词 + 分类器 | 全部图 | precision 96% / recall 67% |
总体结论:MedICaT 的质量梯度是"人工对齐层 > 自动文本层 > 弱标签层",任务设计应尽量让金标准层承担监督、弱标签层只承担过滤与分层。
人工层(subfigure-subcaption)质量较高:两阶段标注、报告一致性(0.828→0.89),但标注者无医学博士,subcaption 措辞可能欠临床精确性。自动层(图注、引用句、域标签)未经医学复核,存在 PDF 解析噪声与匹配遗漏;26% 的图无引用句可能因正文确实未提及,也可能因 S2ORC 匹配失败——两种情形无法区分。
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 文献域内检索(ROCO 式) | 低 | 论文协议内验证,加引用后 R@1 7.6%→9.4% |
| 复合图面板对齐 | 中——单段模型天花板低 | 论文 Table 2:单段 oracle 75.5 vs 无约束 90.8(Test F1) |
| 文献图 → 临床影像流 | 高——分布漂移 | 文献选图偏倚 + 无患者元数据(§7.1) |
| 非英语场景 | 高 | 语料全英文 |
| 放射以外模态(内镜等) | 高 | 仅约 3% 内镜样本 |
| 低分辨率图像的定位任务 | 中 | 出版图像质量不一,官方无分辨率分布统计(§3.1) |
§7.4 伦理
数据全部来自公开出版的开放获取文献,不含新增人类受试者数据;任何患者图像由出版方在出版流程中脱敏。研究用途与非商业限制见 §9 与坑点 5。风险点:文献图与文本配对后可能被用于生成看似有据的医学内容,使用者应在生成系统中加入来源溯源(DOI 已内嵌每条记录)。
另外两点值得注意:其一,文献图中的病例即使已出版,也可能被患者本人识别(罕见病 + 面部/纹身等特征),下游系统应避免以人脸为中心的展示;其二,自动生成的"医学图文"若用于公众科普,须明确标注生成来源与局限,防止把文献示例误当诊疗建议。
§7.5 公平性
数据集无人口统计学字段,无法进行亚组公平性分析;期刊来源结构可能系统性放大英语国家医疗体系的病种呈现。使用者若构建下游临床工具,需在目标人群数据上重新评估公平性。
§7.6 数据漂移
语料定格于 2020-10-05 的 PMC 快照;此后医学出版(尤其 COVID-19 后影像文献)的语言与影像风格已漂移。对外部新文献检索系统,建议定期用新增开放获取论文重放引用匹配管线(管线基于 Siegel 2018 + S2ORC,方法论可复用)。
漂移监控的实用做法:抽取 500 幅新文献图,与 MedICaT 图像在统一分类器下比较模态占比与图注长度分布;若放射占比或平均图注 token 数显著偏移(如 ±10 个百分点以上),说明出版生态已变,检索模型需要增量适配。
§7.7 DAIMS 数据质量评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | JSONL 单行单图记录,扁平结构可直接进 DataFrame |
| 2 | 唯一标识 | ✅ | (pdf_hash, fig_key) 组合唯一;DOI 可回溯源论文 |
| 3 | 特殊字符 | ⚠️ | PDF 抽取文本偶见乱码/断词,需清洗(§6.3) |
| 4 | 重复行 | ⚠️ | 双图注字段近似重复;同图多文件名需按 fig_key 去重 |
| 5 | 缺失编码 | ✅ | 缺失以空串/空列表显式表达,无魔法值 |
| 6 | 标签标识 | ⚠️ | 域标签(radiology 等)为弱标签,无金标准签层 |
| 7 | 罕见类分组 | ❌ | 内镜等稀缺模态未单独分组,样本过少无法分层 |
| 8 | 偏倚评估 | ✅ | 官方论文自报模态占比与过滤精度/召回(§2) |
| 9 | 数据字典 | ✅ | README 提供示例记录与字段说明 + 本页 §4.1 |
| 10 | 信息性缺失解释 | ⚠️ | 空引用列表无法区分"未提及"与"匹配失败" |
| 11 | 设备记录 | ❌ | 无设备型号/参数(文献图本质所限) |
| 12 | 共线性 | ✅ | 不适用——无临床数值变量矩阵 |
| 13 | 编码映射 | ✅ | oa_info 内嵌 OA 状态与许可枚举(unpaywall 口径) |
| 14 | 时间戳处理 | ⚠️ | 无逐条时间戳,仅数据包级发布日期 |
| 15 | 划分建议 | ✅ | 对齐任务有官方划分文件;全量任务需按论文分组 |
| 16 | 泄漏讨论 | ✅ | 论文排除 ROCO 重叠;本页 §5.3 补充论文级泄漏规则 |
| 17 | 标签分布 | ✅ | 模态占比与复合图占比有官方估计值 |
| 18 | 测量偏倚 | ⚠️ | 文献选图偏倚官方承认,无量化修正方案 |
| 19 | 外部验证建议 | ✅ | 官方即用 ROCO 作外部锚点;本页 §7.8 给出矩阵 |
| 20 | 版本记录 | ✅ | 单一定版 + GitHub 提交历史可追溯 |
| 21 | 预处理脚本 | ⚠️ | code/ 含论文实验代码,无端到端数据清洗脚本 |
| 22 | 合规要求 | ✅ | 逐篇许可字段 + 非商业声明,合规颗粒度细 |
| 23 | 多模态对齐 | ✅ | 三层图文对齐(图注/引用/subcaption)为核心卖点 |
| 24 | 去标识化 | ✅ | 出版方出版前脱敏,数据集不新增标识信息 |
DAIMS 评分:16.5 / 24
评分解读:扣分集中在"临床数据集视角"的检查项——罕见类分组(7)、设备记录(11)、时间戳(14)、信息性缺失可解释性(10)、弱标签层(6)、重复与特殊字符需自清洗(3/4)、预处理脚本不全(21)、测量偏倚无量化修正(18)。而它的强项正是同类文献语料中稀缺的:多模态对齐(23)、逐条许可溯源(13/22)、官方划分与泄漏控制(15/16)。
对你意味着什么:① 把它当预训练语料用(图像+文本+弱域标签),不要当临床数据库用——没有设备与时间戳,任何"临床级"声明都站不住;② 动手前先跑 §6.3 清洗,把 3/4/10 三项的坑(乱码、双图注、空引用歧义)在管线里显式处理;③ 分发衍生数据前跑一遍 oa_info.license 过滤(第 22 项是现成的合规接口);④ 对齐研究直接用官方划分与 CRF 基线(15/16/23 三项已备好),不必重造划分。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| ROCO(外部语料) | Medical University of Vienna 等 | 图文检索(2,000 抽样测试对) | Recall@1 9.4%(加引用)vs 7.6%(仅图注) | +1.8 个百分点 | 引用句监督在完全外部语料上成立 |
| ROCO train 子集(33% 覆盖) | 同上 | 同上 | 仅 21K 训练图有引用 | 覆盖不全即增益打折 | 引用覆盖率是增益的上界约束 |
注:MedICaT 的独立第三方外部验证报告仍较稀缺;PMC-CLIP(MICCAI 2023)、BIOMEDICA(2025)等后续工作主要将其作为相关语料与统计对照引用,而非直接验证平台。引用请注明评估协议(官方用随机负采样三元组训练、20 负例验证),跨论文数值不可直接比较。若你的工作在 MIMIC-CXR 或 PadChest 上验证了"文献域预训练 → 临床域微调"的迁移曲线,欢迎补充为新的外部验证证据。
§8 基准性能与生态
§8.1 官方基准结果
任务一:复合图 subfigure-subcaption 对齐(指标:F1,Val/Test,官方划分):
| 排名 | 模型 | Test F1 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | Oracle + alignment heuristic(上界参考) | 90.8 | 2020 | 金标 subfigure+subcaption + 启发式对齐 | Subramanian et al., 2020, Findings of EMNLP. DOI 10.18653/v1/2020.findings-emnlp.191 | code/ |
| 2 | Text+Box Embedding CRF(gold subfigure) | 71.9 | 2020 | SciBERT + 边界框嵌入 + CRF 多段解码 | 同上 | 同上 |
| 3 | Text-only CRF(w/ pretrained weights,gold subfigure) | 66.9 | 2020 | SciBERT 初始化收益显著 | 同上 | 同上 |
| 4 | Text-only CRF(w/o pretrained weights) | 43.3 | 2020 | 从零训练崩溃 | 同上 | 同上 |
⚠️ 各行实验设定不同(gold/predicted subfigure、单段/多段),不可跨行比较绝对值;Oracle 行是上界而非可提交系统。
任务二:图文匹配(ROCO 外部语料,2,000 抽样测试对):
| 设置 | Recall@1 | 说明 |
|---|---|---|
| 图注 only | 7.6% | 官方基线 |
| 图注 + 图内引用 | 9.4% | 引用句监督的净增益 |
⚠️ 该协议(随机负例三元组训练 + 全库余弦检索)与 PMC-CLIP 等后续工作的 ROCO 检索协议不同,数值不可直接比较。
§8.2 SOTA 总结与选型建议
MedICaT 上尚无活跃的第三方排行榜;对齐任务的实用起点是官方 Text+Box Embedding CRF(71.9),改进空间集中在多段 span 解码与更强的视觉-语言底座。检索任务建议直接采用 CLIP 式对比学习(PubMedCLIP/PMC-CLIP 配方),把 MedICaT 引用句作为额外正样本文本。
选型速查:
- 做面板级对齐研究:从官方 CRF 起步(代码在仓库),先复现 71.9 再迭代;重点攻"多段 span"与"空间指代"(“right-hand panel”)两个论文点名的失效源。
- 做检索/预训练:不必复刻官方 7.6% 协议——那是为证明引用句增益设计的受控小协议;直接上 CLIP 式全库对比学习,用 MedICaT + ROCO 混合,报告 Recall@K 与第三方可比数字。
- 做图注生成:以 MedICaT 图注为弱监督、引用句为条件增强,评测在临床报告数据集(如 MIMIC-CXR 衍生基准)上做外部验证。
§8.3 评测协议
- 对齐任务:官方 subcaption_split_keys 划分;span 级 F1;报告 gold subfigure 与 predicted subfigure 两种设定。
- 检索任务:ROCO 官方划分测试集抽样 2,000 对;Recall@K;负采样协议必须记录种子。
- 通用规范:按 pdf_hash 分组划分;分域(放射/病理/内镜)报告子集指标。
- 诚实报告建议:注明使用的图注字段(s2_caption 或 s2orc_caption)、是否拼接引用句、负例数量——这三项选择足以让同一模型的报告分数相差数个百分点。
§8.4 相关数据集
| 数据集 | 关系 | 站内条目 |
|---|---|---|
| ROCO | MedICaT 显式排除其图像并反向补引用;检索基准语料 | roco |
| ROCOv2 | 2024 年更新版,讨论 MedICaT 许可限制 | 暂未收录 |
| PMC-OA / BIOMEDICA | 同源 PMC 的更大规模图文语料 | 暂未收录 |
| PMC-VQA | 文献图衍生的 VQA 数据集 | pmc-vqa |
| VQA-RAD / SLAKE / VQA-Med | 医学 VQA 评测集 | vqa-rad、slake、vqa-med |
| PathVQA | 病理问答,与病理子集互补 | pathvqa |
| MIMIC-CXR | 临床域胸片-报告,跨域验证目标 | 暂未收录(MIMIC 系列见站内 MIMIC-III) |
| BIOMEDICA | 许可分层发布范式参照 | 暂未收录 |
§8.5 关键论文 Top 8
- Subramanian, S., Wang, L. L., Mehta, S., Bogin, B., van Zuylen, M., Parasa, S., Singh, S., Gardner, M., & Hajishirzi, H. (2020). MedICaT: A Dataset of Medical Images, Captions, and Textual References. Findings of EMNLP 2020, pp. 2112–2120. DOI 10.18653/v1/2020.findings-emnlp.191 —— 数据集原始论文,提出对齐任务与引用增强检索。
- Pelka, O., Koitka, S., Rückert, J., Nensa, F., & Friedrich, C. M. (2018). Radiology Objects in Context (ROCO): A Multimodal Image Dataset. MICCAI LABELS 2018, pp. 180–189 —— MedICaT 的对照与外部评测语料。
- Lo, K., Wang, L. L., Neumann, M., Downey, R., & Weld, D. S. (2020). S2ORC: The Semantic Scholar Open Research Corpus. ACL 2020 —— 图内引用句的全文来源语料。
- Siegel, N., Lourie, N., Power, R., & Ammar, W. (2018). Extracting Scientific Figures with Distantly Supervised Neural Networks. JCDL 2018 —— 论文图与图注抽取的源头方法。
- Jobin, K. V., et al. (2019). DocFigure: A Dataset for Scientific Document Figure Classification. ICDAR 2019 —— 医学图分类器训练集(33K 图,28 类)。
- Lin, W., et al. (2023). PMC-CLIP: Contrastive Language-Image Pre-training using Biomedical Documents. MICCAI 2023 —— 大规模文献图文预训练代表,引用 MedICaT 统计并沿用 ROCO 评测。
- Zhang, S., et al. (2025). BIOMEDICA: An Open Biomedical Image-Caption Archive, Dataset, and Vision-Language Models Derived from Scientific Literature. arXiv:2501.07171 —— 许可分层发布范式,表 1 与 MedICaT 对比。
- Daimon, N., et al. (2024). ROCOv2: Radiology Objects in COntext Version 2. Scientific Data. DOI 10.1038/s41597-024-03496-6 —— 指出 MedICaT 的 ND/SA 许可再分发限制。
阅读顺序建议:先读 1(本数据集)与 2(ROCO,理解排除关系),再读 3/4/5(方法源头),最后读 6/7/8(生态位置与许可边界)。
§8.6 社区活跃度
官方仓库(allenai/medicat)自 2020-10 开放,2026-02 仍在维护 README(更新 subcaption 任务链接),提交历史显示数据链接长期有效。第三方生态集中在引用其统计与思路的医学视觉-语言工作(PMC-CLIP、BIOMEDICA、GMAI-VL、Med-GLIP、SciCap+ 等,见 arXiv 引用图谱),专门的 issue 讨论较少——工程问题多由使用者自行解决,这正是本页 §6.5 坑点的价值所在。
需要如实说明:MedICaT 不属于"高频基准"数据集——它没有 Papers with Code 式的活跃榜单,社区存在感主要通过两条路径体现:一是论文引用(作为复合图占 75% 的统计依据与相关工作对照),二是把其 subfigure 标注当作医学图文定位研究的训练资源。若你的研究依赖活跃社区基准(如排行榜、baseline 复现热潮),ROCO/MIMIC-CXR 生态更合适;若你研究"文献图表理解"这一 niche,MedICaT 几乎是唯一选择。
§8.7 生态快照
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| 官方仓库 | 代码+文档 | github.com/allenai/medicat | 活跃维护 | 申请入口、样例、论文代码 |
| 论文 PDF | 论文 | aclanthology.org/2020.findings-emnlp.191 | 定稿 | 全部统计与协议的唯一权威来源 |
| arXiv 预印本 | 论文 | arxiv.org/abs/2010.06000 | 定稿 | 便于引用与全文检索 |
| 作者报告 Slides | 演讲材料 | people.eecs.berkeley.edu/~sanjayss/MedicatPresentation.pdf | 可访问 | 快速了解任务动机与数据样例 |
| S2ORC | 配套语料 | github.com/allenai/s2orc | 可用 | 复现/扩展引用匹配管线 |
| ROCO | 配套基准 | 见论文 §4 划分 | 可用 | 检索任务外部评测锚点 |
§9 相关资源与引用
§9.1 官方资源
- 官方仓库与申请入口:github.com/allenai/medicat(表单获取下载链接,48 小时内回复,注意垃圾邮箱)
- 样例数据:仓库
sample/目录(无需下载 104 GB 主包即可调试代码) - 论文代码:仓库
code/目录(subfigure-subcaption 对齐 + 图文匹配两个任务的实现) - 相关数据集线索:ROCO(检索基准)、S2ORC(引用语料)、DocFigure(过滤分类器训练集),链接见 §8.5 论文列表
- 联系方式:{sanjays, lucyw}@allenai.org
§9.2 教程与学习路径
- 入门 30 分钟:读论文摘要与 Table 1 → 浏览仓库 README 示例记录 → 跑通
sample/上的 §6.1 代码。 - 对齐任务上手:下载 14 MB 标注件与划分文件 → 读论文 §3(对齐任务定义)→ 用仓库
code/的 CRF 实现复现 Val F1 74.1。 - 检索任务上手:读论文 §4(协议与 Table 3)→ 在 ROCO 上复现 7.6%→9.4% 引用增益 → 再扩展到 MedICaT 全量。
- 延伸阅读:S2ORC 论文(理解引用匹配原理)、DocFigure 论文(理解过滤分类器)、PMC-CLIP 与 BIOMEDICA(理解该语料族在预训练中的位置)。
- 问题求助:官方邮箱(见 §9.1);表单申请超 5 天未回复时邮件催询并检查垃圾邮箱——这是官方 README 明示的流程。
§9.3 BibTeX 引用
@inproceedings{subramanian-etal-2020-medicat,
title = "{M}ed{IC}a{T}: A Dataset of Medical Images, Captions, and Textual References",
author = "Subramanian, Sanjay and
Wang, Lucy Lu and
Bogin, Ben and
Mehta, Sachin and
van Zuylen, Madeleine and
Parasa, Sravanthi and
Singh, Sameer and
Gardner, Matt and
Hajishirzi, Hannaneh",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2020",
month = nov,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2020.findings-emnlp.191/",
doi = "10.18653/v1/2020.findings-emnlp.191",
pages = "2112--2120"
}
§9.4 引用指南
使用数据集请引用上面的官方 BibTeX;若同时使用 ROCO 检索基准,请补充引用 Pelka et al. 2018;若复用引用匹配思路,请引用 S2ORC 与 Siegel et al. 2018。引用千方病案医数集本页时,请以页面底部 DOI/URL 为准。
补充提醒:官方 GitHub 仓库的 BibTeX(subramanian-2020-medicat)与本页 ACL Anthology 版本(subramanian-etal-2020-medicat)键名不同,内容一致;二选一即可,团队内保持统一。
§10 AI 使用声明卡
§10.1 AI 模型列表
- 内容组织与初稿撰写:大型语言模型(CodeBuddy Code,fast-model)
- 无图像生成模型参与正文制作(封面提示词为人工撰写的设计规范文本)
§10.2 AI 参与范围
AI 参与:资料检索与事实汇总、章节初稿撰写、代码示例起草、表格整理。人工参与:事实核对(全部规模/日期/许可数字对照官方仓库与论文原文)、医学与数据工程交叉审核、DAIMS 评分校准、最终发布决定。
边界约定:AI 不做医学判断(§2 的编码映射仅为检索导航,经人工核对);AI 不生成任何无来源数字;DAIMS 评分由人工逐项复核后确定;对外联系方式与许可声明逐字对照官方 README。
§10.3 输入来源列表
- Subramanian, S., et al. (2020). MedICaT: A Dataset of Medical Images, Captions, and Textual References. Findings of EMNLP 2020, 2112–2120. DOI 10.18653/v1/2020.findings-emnlp.191
- Subramanian, S., et al. (2020). MedICaT. arXiv:2010.06000. https://arxiv.org/abs/2010.06000
- MedICaT 官方仓库 README。https://github.com/allenai/medicat
- NSF Public Access Repository 收录页(含资助号 1817183)。https://par.nsf.gov/biblio/10462672
- NSF 全文镜像(论文实验细节与 Table 2/3)。https://par.nsf.gov/servlets/purl/10462672
- ar5iv 论文 HTML 版(Dataset Statistics 表)。https://ar5iv.arxiv.org/html/2010.06000
- OpenMedLab Awesome-Medical-Dataset 收录页。https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/MedICaT.md
- Lin, W., et al. (2023). PMC-CLIP. arXiv:2303.07240. https://arxiv.org/abs/2303.07240
- ROCOv2: Radiology Objects in COntext Version 2. Scientific Data (2024). DOI 10.1038/s41597-024-03496-6(经 medRxiv 引文页核实)
- BIOMEDICA (2025). arXiv:2501.07171(相关引用与对比)。https://arxiv.org/abs/2501.07171
- arXiv 引用图谱快照(下游引用清单)。https://arxiv.gg/abs/2010.06000
- OpenXLab 数据集收录页(机构列表中文核对)。https://openxlab.org.cn/datasets/OpenDataLab/MedICaT
- MedICaT 论文报告 Slides(UC Berkeley 作者主页镜像)。https://people.eecs.berkeley.edu/~sanjayss/MedicatPresentation.pdf
§10.4 人工校验
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1 概览与对比表 | 千方病案医学编辑部 | 数字逐一对照论文 Table 1 与官方 README | ✅ 已通过/已验证 |
| §2 医学背景与术语映射 | 千方病案医学编辑部 | ICD-11/SNOMED 编码核对 | ✅ 已通过/已验证 |
| §3–§5 规格与结构 | 数据工程审核者 | 对照官方下载清单与示例记录 | ✅ 已通过/已验证 |
| §6 AI 就绪指南与坑点 | 数据工程审核者 | 代码逻辑走查 + 坑点溯源官方文档/论文 | ✅ 已通过/已验证 |
| §7 质量评估与 DAIMS | 数据工程审核者 | 24 项逐条核对论文 limitations | ✅ 已通过/已验证 |
| §8–§10 基准与声明 | 千方病案医学编辑部 | 引用完整性核查 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
全部章节初稿由 AI 生成;§1.0、§2.2、§6.5 坑点 1/2/8 的叙事经过人工重写润色;所有数字均标注来源,未采用任何无来源数字。
§10.6 最后人工审核日期
2026-09-05(与 §0.3 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- pmc-oa — 共享标签:医疗NLP / 多模态 / 影像-文本对齐 / 生物医学文献
- open-pmc — 共享标签:医疗NLP / 多模态 / 生物医学文献
- pmc-vqa — 共享标签:医疗NLP / 多模态 / 生物医学文献
- reg2026 — 共享标签:医疗NLP / 多模态 / 影像-文本对齐
- biomedica — 共享标签:多模态 / 影像-文本对齐 / 生物医学文献
- ms-cxr-t — 共享标签:医疗NLP / 多模态 / 影像-文本对齐
- pmc-oa-subset — 共享标签:医疗NLP / 生物医学文献
- s2orc — 共享标签:医疗NLP / 生物医学文献
- ncbi-disease — 共享标签:医疗NLP / 生物医学文献
- jnlpba — 共享标签:医疗NLP / 生物医学文献
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
