OmniMedVQA — 综合医学视觉问答基准 AI-Ready Wikipedia

118,010 张影像、127,995 个多选题的 12 模态医学 VQA 评测基准

来源 上海人工智能实验室与香港大学(OpenGVLab) url: https://github.com/OpenGVLab/Multi-Modality-Arena发布时间: 2026-09-12最后更新: 2026-09-25 阅读 38
OmniMedVQA — 综合医学视觉问答基准 AI-Ready Wikipedia

信息速览

数据集名称OmniMedVQA — 综合医学视觉问答基准 AI-Ready Wikipedia
数据类型118,010 张医学影像,127,995 个多选题,12 种影像模态,73 个来源数据集,JSON 标注 + 原始图像
规模不适用(影像问答评测基准,非患者队列)
接入方式上海人工智能实验室与香港大学(OpenGVLab) url: https://github.com/OpenGVLab/Multi-Modality-Arena
AI 就绪度

数据集封面

OmniMedVQA — 综合医学视觉问答基准 AI-Ready Wikipedia


INFOBOX

数据集名称 OmniMedVQA
英文全称 OmniMedVQA: A New Large-Scale Comprehensive Evaluation Benchmark for Medical LVLM
别名/简称 OmniMedVQA 基准;官方代码仓库名 Multi-Modality-Arena
疾病分类(ICD-11) 多病种综合(覆盖 20+ 解剖区域,代表疾病映射见 §2.1)
SNOMED CT 多病种综合(代表概念映射见 §2.1b)
数据模态 12 种医学影像模态(CT/MR/X-Ray/超声/皮肤镜/内镜/眼底/显微/OCT/数码摄影/红外/阴道镜)
AI 任务类型 医学视觉问答(五类问题类型;四选项多选题自动判分)
样本总数 118,010 张影像 / 127,995 个 QA 条目(Hu et al., 2024)
数据格式 JSON 标注(QA_information 目录)+ 原始图像文件(Images 目录)
许可证 多源混合,以各来源数据集原始许可为准(开放/受限双轨发布)
访问级别 开放获取(受限来源子集仅提供文件路径与标注)
DUO 标签 GRU(通用研究使用)
语言 英语(问题与选项文本)
首发日期 2024-02(arXiv 2402.09181)
最后更新 2024-06(CVPR 2024 正式版)
发布机构 上海人工智能实验室、香港大学
官方主页 OpenGVLab/Multi-Modality-Arena
下载地址 OpenGVLab/OmniMedVQA
DOI arXiv: 2402.09181(无正式 DOI)
引用次数 236+(Google Scholar,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 提供完整标注 JSON 与评测代码、四选项格式自动判分;扣分项:受限子集需自行获取原图、多源目录需自行拼接索引
页面状态 published

§0 E-E-A-T 审核声明

本页面由千方病案医学编辑部按 AI-Ready 百科规范编制并完成交叉审核。

医学审核:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、临床任务定义)、§7 偏倚与局限性分析。

数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

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

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

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。OmniMedVQA 整合 73 个来源数据集,其中受限来源仅提供文件路径与 QA 标注,如需原图必须另行满足对应来源数据集的获取条件。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 30 秒速览

这是什么? OmniMedVQA 是一个医学视觉问答(Visual Question Answering, VQA)评测基准:把 73 个公开医学影像数据集里的 118,010 张图像,配上 127,995 个四选一的选择题,涵盖 CT、MR、X-Ray、超声、皮肤镜、眼底等 12 种影像模态和 20 多个身体部位。每个问题都标好了正确答案和三个干扰项,机器答完立刻能自动判分(论文)。

为什么重要? 在它之前,医学 VQA 数据集最大不过几万条问答、只覆盖单一模态或单一位部位,根本测不出多模态大模型"见多识广"的能力。OmniMedVQA 的规模约为此前数据集的 25 倍,第一次让社区能系统回答一个问题:大视觉语言模型(LVLM)真的看懂医学影像了吗?答案出人意料——连医学专用模型都不及通用模型,多名模型接近 28.28% 的随机猜对率。

我能用它做什么? 如果你在做医学多模态大模型,可以把它当作标准考卷:一键下载、自动判分、按 12 种模态拆分成绩单,定位自家模型在哪些检查类型上"偏科";如果你研究 VQA 数据构建,它的"分类标签 → 模板问答 → LLM 复写 → 人工校验"流水线也是可复用的方法学样板。

§1.1 摘要

OmniMedVQA 由上海人工智能实验室与香港大学团队构建,发表于 CVPR 2024(arXiv:2402.09181)。构建流程分四步:首先收集 73 个带类别标签的公开医学分类数据集,覆盖 12 种模态与 20 多个解剖区域;然后围绕"影像模态—解剖部位—疾病异常—位置关系—目标存在性"五类认知维度设计问答模板,把分类标签转换成自然语言 QA 对,采样得到 127,995 条条目;接着用 GPT-4 对模板问答进行复写以增加措辞多样性,并为每题生成三个干扰选项,构造四选一多选题;最后经作者人工校验发布。数据按"标注 JSON(QA_information)+ 原始图像(Images)"双目录组织,部分版权受限的来源数据集只发布文件路径与标注(开放/受限双轨)。论文用 Question-answering score(选择题作答)与 Prefix-based score(选项前缀似然)双指标评测 12 个 LVLM:通用模型 BLIP-2 以 50.69% 的总体准确率居首,医学专用模型中最佳的 MedVInT(41.50%)与 Med-Flamingo(36.17%)仍落后于它,LLaVA-Med(28.78%)几乎持平 28.28% 的随机基线。

§1.2 战略价值

维度一:评测覆盖面的"宽度垄断"。 此前医学 VQA 基准(VQA-RAD、SLAKE、Path-VQA、VQA-Med)各自绑定单一模态或单一任务,一个模型在 A 基准上的成绩无法外推到 B 模态。OmniMedVQA 用 73 个来源数据集把 12 种模态、20 多个解剖区域纳入同一套四选项格式与同一套判分协议,使"跨模态横向成绩单"成为可能——论文正是靠这种宽度发现了"专科悖论":医学专用模型整体逊于通用模型,说明当前医学指令微调的数据配方存在系统性问题(论文结论)。

维度二:构建方法的可扩展性。 人工标注医学 QA 成本极高,OmniMedVQA 证明了"分类标签属性 + 模板 + LLM 复写 + 人工校验"的半自动流水线可以把标注成本压到可承受的范围,同时保持语义正确。这一配方已被后续多个医学多模态数据集借鉴,成为大规模医学 VQA 构建的事实范式之一(官方博客)。

维度三:负结果的教育价值。 12 个模型的评测不仅给出排行榜,还给出可操作的失败画像:模型对 X-Ray 等常见模态表现尚可,对阴道镜(Colposcopy)、红外成像(IRI)等小众模态大幅失效;LLaVA-Med 仅靠 GPT-4 生成的纯文本指令数据微调,成绩几乎等于乱猜。这些结论直接指导了后续医学 LVLM 的工作重心——先把图像-文本对齐基础打牢,再做指令微调。

§1.3 同类数据集横向对比

数据集 图像数 QA 条目数 模态/部位覆盖 标注形式 与 OmniMedVQA 的差异化
OmniMedVQA 118,010 127,995 12 种模态、20+ 解剖区域 四选项多选题(自动判分) 本体:规模最大、模态最全
VQA-RAD 315 3,515 胸部 X-Ray/CT 开放式 + 选择题 放射科医师人工标注,质量高但规模小
SLAKE 642 14,028 胸部 X-Ray/CT 开放式 + 选择题 含中英双语与解剖分割标注
Path-VQA 4,998 32,799 病理切片显微图像 开放式(是/否为主) 专注病理学单一模态
VQA-Med 4,500 5,500 多模态(竞赛集合) 开放式 竞赛专用,逐年更换题目

数字来源:OmniMedVQA 论文对比表。可见 OmniMedVQA 在图像数上约为 Path-VQA 的 24 倍、VQA-RAD 的 375 倍,模态数上为前者的 12 倍覆盖。

§1.4 版本时间轴

时间 版本/事件 说明
2024-02 arXiv v1(2402.09181) 论文首发,数据随 GitHub 仓库公开
2024-06 CVPR 2024 正式版 论文页码 22170-22183,为当前引用的标准版本
2024 起持续 HuggingFace 镜像与社区转换 官方镜像 OpenGVLab/OmniMedVQA;社区 parquet 转换版 simwit/omni-med-vqa 提供流式加载

截至 2026-09,官方未发布带新模态或新标注的修订版本,CVPR 2024 版仍为唯一权威版本。

§1.5 典型应用场景

  1. 医学 LVLM 发布前体检:新模型上线前跑一遍 12 模态成绩单,快速暴露"偏科模态",避免论文只报 X-Ray/CT 好成绩的幸存者偏差。
  2. 指令微调数据配方研究:以 LLaVA 与 LLaVA-Med 的对照为模板,量化"医学指令数据质量 vs 数量"对下游性能的影响。
  3. 多选题判分策略研究:四选项格式 + Prefix-based score 使其成为研究 LVLM 输出解析、选项位置偏置的理想试验床。
  4. 跨模态鲁棒性消融:固定模型、扫描 12 种模态,量化预训练数据分布对未见模态(如阴道镜、红外)泛化的影响。
  5. 教学与课程设计:五类问题类型恰好映射"开单检查—解剖定位—疾病判断—位置描述—病灶有无"的临床认知阶梯,可用于构建医学 AI 课程评测。

§2 医学背景

§2.1 ICD-11 疾病映射

OmniMedVQA 是多病种综合基准,不绑定单一疾病。下表列出其代表性来源子集与对应 ICD-11 编码,帮助按疾病维度检索与分组评测(编码依据 WHO ICD-11 浏览器)。

器官/系统 代表疾病(中文) ICD-11 编码 数据集中对应来源子集
眼(眼底/前节) 青光眼 9C61 ACRIMA 等眼底子集
皮肤 皮肤恶性黑色素瘤 2C30 ISIC 系列皮肤镜子集
中枢神经 中枢神经系统恶性肿瘤(胶质瘤等) 2A00-2A0Z BraTS2013/2018
脑血管 脑梗死(缺血性卒中) 8B11 ISLES 系列子集
呼吸系统 结核病 1B10-1B1Z 胸部 X-Ray/CT 结核子集
呼吸系统 气管、支气管或肺恶性肿瘤;COVID-19 肺炎 2C25;1D0Y RadImageNet、COVID-19 CT 系列
泌尿系统 肾恶性肿瘤 2C90 AMOS、PICAI 等
男性生殖 前列腺恶性肿瘤 2C82 PICAI
消化系统 肝胆恶性肿瘤 2C12 AMOS

§2.1b SNOMED CT 概念映射

疾病/概念(英文标签) SNOMED CT 码 ICD-11 对应 在数据集中的体现
Tuberculosis(结核病) 56717001 1B10-1B1Z 胸部影像疾病识别题
Glaucoma(青光眼) 25867006 9C61 眼底图像疾病识别题
Malignant melanoma(恶性黑色素瘤) 372244006 2C30 皮肤镜疾病识别题
Cerebral infarction(脑梗死) 42343007 8B11 头颅 CT/MR 卒中子集
Primary malignant neoplasm of lung(肺原发恶性肿瘤) 363358003 2C25 胸部 CT 疾病识别题

§2.2 覆盖疾病简介

OmniMedVQA 的疾病谱横跨肿瘤、感染、慢性病与筛查类影像任务,主要来源于各分类数据集的疾病标签体系:

  • 肿瘤类:脑胶质瘤(BraTS)、前列腺癌(PICAI)、肺与肝肾等腹部肿瘤(RadImageNet、AMOS)、皮肤黑色素瘤(ISIC)。这类子集的标签通常为"肿瘤 vs 非肿瘤"或 WHO 分级,直接转译为疾病识别与目标存在性问答。
  • 感染与急诊类:肺结核(胸部 X-Ray/CT)、COVID-19 肺炎(多个 COVID-CT 数据集)。影像表现为渗出、磨玻璃影、实变等,问答围绕病灶存在性与解剖定位。
  • 慢性病与眼科筛查类:青光眼、糖尿病视网膜病变等眼底疾病(ACRIMA 等眼底子集),以"是否可见视杯扩大/渗出"式的目标存在性问题为主。
  • 脑血管类:缺血性卒中(ISLES 系列),3D_Modality 子库的核心组成,问答涉及模态识别(CT vs MR)与病灶侧别。

需要强调:本基准的问答粒度是分类标签级别(疾病有无、模态类型、部位名称),不是放射报告级别的细粒度描述。因此它适合评测模型的医学"通识底座",不能替代细粒度临床推理评测。

§2.3 临床任务定义

数据集的五类问题类型恰好对应从"开单"到"判读"的临床认知阶梯:

问题类型 临床类比 示例 判分性质
模态识别(Modality Recognition) 相当于"该申请何种检查"的知识 “这张图像是用什么模态采集的?——眼底成像” 客观选择题
解剖区域识别(Anatomical Region) 读片前的定位步骤 “该图像显示的是什么部位?——胸部” 客观选择题
疾病/异常识别(Disease/Abnormality) 影像诊断的核心结论 “该图像呈现何种疾病?——肺结核” 客观选择题
位置识别(Location/Position) 病灶空间描述 “病变位于图像哪一侧?——左肺” 客观选择题
目标存在性(Object Presence) 筛查场景的阳性/阴性判断 “图中是否存在结节?——存在” 客观选择题

所有题目均为四选项多选题,答案由来源数据集的类别标签锚定,可全自动判分(官方博客)。

§2.4 数据人群说明

OmniMedVQA 不按患者组织数据:图像来自 73 个独立的公开分类数据集,官方未提供统一的年龄、性别、种族元数据,也未提供患者 ID 去重后的队列描述。可以确定的人群层面事实是:

  • 图像全部来自真实医疗场景(医院采集),并非合成或图谱重绘(论文摘要);
  • 来源数据集以医院回溯性收集为主,覆盖多个国家的医疗机构;
  • 部分子集(如 RadImageNet)以成人 CT/MR 为主,儿科与妇产代表性弱。

若你的研究需要人群分层分析,应在实验设计阶段把"人群不可分层"列为已知限制(详见 §7.1 偏倚表)。

§2.5 临床与科研价值

  • 对模型开发者:提供"宽覆盖、可自动判分"的体检工具,把医学 LVLM 的评测成本从"逐模态找数据集"降到一次运行。
  • 对临床信息学研究者:五类问题类型构成的临床认知阶梯,可用于研究 AI 在读片流程各环节的能力分布。
  • 对数据科学团队:73 个来源数据集的标签转译 QA 流水线,为院内自有影像库的"低成本问答化"提供了可复制方法。
  • 对监管与采购:跨模态成绩单可作为医疗多模态产品能力评估的参考证据链之一(注意:不可替代临床验证,见 §0 免责)。

§2.6 金标准对照

维度 本数据集的做法 性质说明
参考标准来源 来源分类数据集的人工类别标签(已发表) 弱监督:标签锚定而非逐图重新读片
标注方式 模板生成 + GPT-3.5/4 复写 + 作者人工校验 半自动流水线(详见 §3.5)
标注者资质 来源数据集原标注者(多为医师或影像专家)+ 构建团队 混合层级
标注一致性 论文未报告标注者间一致性系数(IAA) 见 §7.2 的讨论
题目形式 四选项多选题,答案唯一 可全自动判分,无评分者主观性
临床金标准关系 问题答案等价于原数据集的分类标签 不是新的独立临床判读

§3 数据集规格

§3.0 版本抉择矩阵

同一数据存在官方 GitHub、官方 HuggingFace 镜像与社区转换三种获取形态,按下表选择:

你的需求 推荐版本 大小/形态 理由
复现论文评测、拿官方判分脚本 GitHub Multi-Modality-Arena 标注 JSON + 评测代码 + 数据下载脚本 与论文实验完全一致,含 Prefix-based score 实现
只想快速下载数据本体 HuggingFace OpenGVLab/OmniMedVQA 图像 + 标注镜像 断点续传、带宽稳定、可直接 snapshot_download
流式读取/教学演示,不想下大图 社区 parquet simwit/omni-med-vqa parquet 表(10K-100K 行级) 表结构规整(dataset/question/option_A-D/gt_answer),但需自行获取对应图像

§3.1 模态详情

12 种模态及官方披露的图像数量如下(未披露者以"—"表示,来源:论文):

模态 图像数 代表检查场景 备注
MR(磁共振) 31,917 脑肿瘤/卒中/腹部 最大单模态,含 3D 体数据子集
显微成像(Microscopy) 19,785 病理与细胞学切片 Path-VQA 之外的多个显微源
CT 14,457 胸部/腹部/颅脑 含 COVID-19 CT 系列
超声(Ultrasound) 10,855 腹部/浅表器官 —
眼底照相(Fundus Photography) 10,108 青光眼/糖网筛查 ACRIMA 等子集
X-Ray 7,594 胸部平片 结核、肺炎筛查
皮肤镜(Dermoscopy) 5,967 皮肤肿瘤筛查 ISIC 系列
OCT 3,791 视网膜断层 眼科亚专科模态
内镜(Endoscopy) — 消化道检查 数量未单独披露
数码摄影(Digital Photography) — 皮肤/体表拍照 数量未单独披露
红外成像(IRI) — 特殊用途成像 小众模态,模型普遍失分
阴道镜(Colposcopy) — 妇科宫颈检查 小众模态,模型普遍失分

§3.2 来源子集构成

73 个来源数据集中,官方与论文重点披露的代表性构成:

来源子集 模态 规模角色 说明
RadImageNet CT/MR 最大组成源(源库 135 万张量级) 公开放射影像库,标签含病理与解剖
ISIC 系列 皮肤镜 皮肤肿瘤主力 国际皮肤影像协作数据
BraTS2013/2018 MR 脑肿瘤主力 多参数 MRI 胶质瘤分割数据
ISLES 系列 CT/MR 卒中主力 缺血性卒中影像挑战赛数据
AMOS CT/MR 腹部多器官 腹部多器官分割数据集
PICAI MR 前列腺癌 临床显著性前列腺癌检测数据
VALDO MR 脑微血管 微血管压缩检测挑战数据
ACRIMA 眼底 青光眼 眼底青光眼分类数据
COVID-19 CT 系列 CT 肺炎 多个公开 COVID-CT 数据集
3D_Modality(自建) CT/MR 3D 体数据整合 作者整合 17 个来源数据集构成

其中 3D_Modality 子库为作者团队为补齐 3D 影像能力自建的整合子库,来自 ISLES 系列、AMOS、BraTS2013/2018、PICAI、VALDO 等 17 个数据集(论文)。

§3.3 数据格式

组成 格式 位置 说明
QA 标注 JSON QA_information 目录 按来源子数据集分文件,含问题、四选项、正确答案、图像路径
图像 原始图像文件(PNG/JPEG 为主) Images 目录 按来源子数据集分二级目录
受限子集 路径 + 标注 同上结构 仅含文件路径清单与 QA,不含图像本体
评测代码 Python GitHub 仓库 含 Question-answering 与 Prefix-based 两种判分实现

§3.4 存储大小

官方公开页面未标注统一压缩包大小;数据体积随是否包含受限子集原图、是否含 3D 体数据而显著变化。建议按以下方式估算:以 HuggingFace 仓库页面实际显示为准,并为 3D 子集(CT/MR 体数据)预留额外空间。本页不给出具体 GB 数字以避免误导。

§3.5 标注方式

标注采用"半自动流水线 + 人工校验"混合模式:

  1. 模板生成:围绕每张图像的类别标签属性(模态、部位、疾病、位置、目标有无)套用固定问句模板,生成语义确定的 QA 对;
  2. 采样:从模板池采样得到 127,995 条条目(官方博客);
  3. LLM 复写:用 GPT-4 对模板问答进行复写,在保证语义不变的前提下多样化措辞;
  4. 干扰项构造:由 GPT-4 为每题生成错误选项,构成四选一格式;ChatGPT-3.5 在该流水线中承担标签到自然语言的转换与干扰项生成(论文解读);
  5. 人工校验:作者团队对生成结果进行人工核查后发布。

§3.6 标注者资质与一致性

  • 标签锚点:问题正确答案来自来源数据集的原始人工标签(多为医师或经训练的影像专家标注),这部分可信度继承自各来源数据集。
  • 改写环节:模板复写与干扰项生成由 GPT-3.5/GPT-4 完成,作者人工校验;论文未报告校验抽样比例,也未报告标注者间一致性系数。
  • 使用建议:将本基准视为"分类标签的问答化重述",而非独立的二次读片金标准;对答案正确性的争议应回溯到来源数据集的标签协议。

§3.7 采集周期

数据本体为对既有公开数据集的整合,采集周期即各来源数据集的发布周期,横跨 2010 年代至 2020 年代(如 BraTS2013/2018、ISLES 系列、RadImageNet 等)。基准自身的构建与发布集中在 2023 年末至 2024 年上半年。

§3.8 地域覆盖

来源数据集来自多个国家的医疗机构与公开竞赛,属于多中心混合构成;官方未提供按国家/地区的数据分布统计。跨地域泛化结论应谨慎(见 §7.3)。

§3.9 设备规格

影像设备型号与采集参数未随基准发布;同一模态内部(尤其 CT/MR)存在扫描仪厂商、层厚、序列参数的天然异质性。对设备敏感的任务(如定量测量)不适用于本基准。

§3.10 深度溯源链

每条 QA 的溯源路径为:QA 条目 → question_id 与来源字段(dataset)→ 来源子数据集目录 → 原始公开分类数据集 → 该数据集的原始标签协议。溯源链完整可回放,这是"分类标签转译"构建方式的直接优势:任何一条答案争议都可以回溯到原始数据集的标签定义。


§4 数据结构

§4.0 目录树

解压后(以官方 GitHub/HF 版本为准)的典型目录结构:

OmniMedVQA/
├── QA_information/                  # QA 标注 JSON(按来源子数据集分文件)
│   ├── ACRIMA.json
│   ├── ISIC.json
│   ├── brain_MRI.json
│   ├── ...                          # 其余来源子数据集同名 JSON
│   └── 3D_Modality.json
├── Images/                          # 原始图像(按来源子数据集分目录)
│   ├── ACRIMA/
│   │   └── ACRIMA_0000.jpg
│   ├── ISIC/
│   │   └── ISIC_xxxxx.jpg
│   └── ...
├── restricted_sources/              # 受限来源:仅路径与标注,不含图像
│   └── <source_name>.json           # 内含 file_path 清单 + QA 条目
└── README.md

要点:QA_information 与 Images 以来源子数据集名称对齐;受限子集在标注 JSON 里有完整 QA 与路径,但路径指向的图像需要按 §0 合规要求自行获取。

§4.1 DAIMS 字段字典

QA 条目核心字段(以官方 JSON 结构与社区 parquet 版对齐后的统一视图为准,见 simwit/omni-med-vqa):

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
question_id string 条目唯一标识,编码来源子集与图像序号 ACRIMA_0000 主键、断点续跑、结果对账 无(系统生成) 无 每条目唯一
dataset string 来源子数据集名称 ACRIMA 按子集分组评测、泄漏防护 无 无 73 个子集名
question_type string 五类问题类型 Modality Recognition 分类评测、认知层级分析 无 无 5 个固定值
question string 自然语言问题(GPT-4 复写后) What imaging technique was employed to obtain this picture? 模型输入 措辞多样性带来的风格差异 无 自由文本
gt_answer string 正确答案(同时是选项之一) Fundus imaging 判分标准 继承来源数据集标签 无 该题选项集合内
option_A string 选项 A Fundus imaging MCQ 构造 可能与 gt_answer 相等 无 自由文本
option_B string 选项 B PET scan MCQ 构造 干扰项由 LLM 生成 无 自由文本
option_C string 选项 C CT scan MCQ 构造 干扰项由 LLM 生成 无 自由文本
option_D string 选项 D Blood test MCQ 构造 干扰项由 LLM 生成 无 自由文本
modality_type string 粗粒度模态归类(社区 parquet 版提供) Fundus Photography 模态分组统计 粗于 12 模态官方口径 无 少量模态大类

§4.2 标签分布

  • 按问题类型:五类问题类型覆盖模态识别、解剖区域、疾病/异常、位置、目标存在性;官方未披露五类条目的精确配比。
  • 按模态(图像数):MR 31,917 > 显微 19,785 > CT 14,457 > 超声 10,855 > 眼底 10,108 > X-Ray 7,594 > 皮肤镜 5,967 > OCT 3,791(论文);内镜、数码摄影、红外、阴道镜的数量未单独披露,处于长尾。
  • 按正确答案:gt_answer 的取值分布与来源数据集的类别频率一致;同一子集内的类别不平衡会直接传导为答案分布不平衡。

§4.3 关键统计

统计项 数值 来源
图像总数 118,010 论文
QA 条目总数 127,995 官方博客
来源数据集数 73 论文
模态数 12 论文
解剖区域/器官数 20+ 论文
每题选项数 4(A-D) 社区 parquet 版字段
随机基线准确率 28.28% 论文解读
最佳模型总体准确率(BLIP-2) 50.69% 同上

§4.4 数据层级

基准(OmniMedVQA)
└── 来源子数据集(73 个,如 ACRIMA、ISIC、BraTS2018)
    └── 图像(118,010 张;一张图可对应多条不同类型的 QA)
        └── QA 条目(127,995 条;每条 = 1 问题 + 4 选项 + 1 正确答案)

注意与患者队列数据的层级差异:本基准没有"患者 → 检查 → 序列"的中间层,图像与患者的对应关系保留在各来源数据集内部,基准层面不可见。

§4.5 缺失值与信息性缺失

  • QA 标注 JSON 内没有缺失选项或缺失答案:每条记录必含四选项与唯一正确答案,否则判分脚本无法工作。
  • "缺失"主要发生在图像侧:受限子集标注齐全但图像缺位(这是设计行为而非数据缺陷,见坑点 1)。
  • 无信息性缺失编码(如 -999)的使用场景;本基准为影像-文本结构,不涉及表格型缺失编码。

§5 划分与使用建议

§5.1 官方划分

OmniMedVQA 定位为纯评测基准:官方不提供 train/val/test 划分,127,995 条条目整体用于评测。论文的评测方式是将全部条目输入待测 LVLM,报告总体与分模态/分任务的准确率(论文)。

§5.2 社区惯例划分

社区实践中常见的两种做法:

  1. 分层抽样子集评测:按模态 × 问题类型分层随机抽样(如每层 200-500 条),在保证模态配比的同时把单次评测成本压缩一个数量级;抽样时应固定随机种子并公开抽样清单以便复现。
  2. 留一子集外推:训练时剔除整个来源子数据集(如剔除 ACRIMA),评测时观察对该子集的泛化,用于检验模型是否记忆了来源数据集(见坑点 4)。

§5.3 数据泄漏风险(重点)

  • 来源污染:RadImageNet、ISIC、BraTS 等来源数据集被广泛用于模型预训练与微调,被评测模型可能已"背过"这些图像。评测前应核对候选模型的训练数据清单,必要时改用留一子集外推或在结果中声明污染风险。
  • 同源训练禁令:若用 OmniMedVQA 的部分条目做训练/微调,不得再用同一来源子集做评测主张,否则成绩解释权不成立。
  • 图像近重复:同一来源数据集内部存在同患者多切片、同病灶多视角的近重复图像;跨条目切分时应在"来源数据集"层面整组切分,避免图级切分造成的伪独立(详见坑点 4 的操作代码)。

§5.4 交叉验证建议

评测基准通常不做 k 折交叉验证。若确需置信区间(如比较两个模型的总体准确率差异),推荐对评测条目做分层 bootstrap 重采样(按模态 × 问题类型分层,1,000 次重采样)报告 95% CI,而不是改动评测集本身。

§5.5 外部验证建议

模型在 OmniMedVQA 上的成绩只能证明"分类级医学通识",建议组合以下外部集补齐证据链:

  • 细粒度放射推理:VQA-RAD、SLAKE(开放性问题);
  • 病理细读:Path-VQA;
  • 真实临床工作流:院内自建小规模专家标注集(按 §0 合规流程)。

§6 AI 就绪指南

§6.0 云端快速启动

Google Colab(T4 GPU 即可)快速跑通数据获取与统计:

# Google Colab 快速启动:10 分钟内完成下载与元数据统计
# 依赖:huggingface_hub、pandas、Pillow
!pip install -q huggingface_hub pandas pillow

from huggingface_hub import snapshot_download

# 只下载标注 JSON(不含大体积图像),先做元数据层面的体检
snapshot_download(
    repo_id="OpenGVLab/OmniMedVQA",
    repo_type="dataset",
    local_dir="/content/omnimedvqa",
    allow_patterns=["QA_information/**"],   # 先拿标注;图像在确认后再下
)

import json, glob, collections
qa_files = glob.glob("/content/omnimedvqa/QA_information/*.json")
total = 0
types = collections.Counter()
for fp in qa_files:
    items = json.load(open(fp))
    total += len(items)
    for it in items:
        types[it.get("question_type", "unknown")] += 1
print(f"标注 JSON 文件数: {len(qa_files)}, 累计 QA 条目: {total}")
print("问题类型分布:", dict(types))

§6.1 快速上手

目录结构预期:下方代码假设数据已按如下结构就位,data_root 与官方目录名逐字拼接:

data_root/
├── QA_information/*.json     # 每个来源子数据集一个 JSON
└── Images/<source_name>/...  # 与 JSON 内路径字段对应的图像目录

最小可用子集建议:先只用 ACRIMA(青光眼眼底子集)跑通"读 JSON → 找图 → 构造 MCQ → 判分"全链路,再扩展到全量。ACRIMA 属于开放子集,图像齐全,适合冒烟测试。

# 快速上手:最小可复现示例(读取标注并组装一条 MCQ 样本)
# 前提:data_root 指向解压后的 OmniMedVQA 目录
import json, os
from PIL import Image

data_root = "data/omnimedvqa"           # 你的数据根目录
subset = "ACRIMA"                        # 最小可用子集
qa_path = os.path.join(data_root, "QA_information", f"{subset}.json")

with open(qa_path, encoding="utf-8") as f:
    items = json.load(f)

item = items[0]
# 图像路径的拼接关系:Images / dataset(来源子集) / 官方 JSON 内的相对路径字段
img_path = os.path.join(data_root, "Images", item["dataset"], item["image_path"])
image = Image.open(img_path).convert("RGB")

print("问题类型:", item["question_type"])
print("问题:", item["question"])
print("选项:", item["option_A"], "|", item["option_B"], "|", item["option_C"], "|", item["option_D"])
print("正确答案:", item["gt_answer"])
print("图像尺寸:", image.size)

§6.2 数据获取

获取渠道 内容 适用人群 关键步骤
HuggingFace 官方镜像 图像 + 标注 多数用户 snapshot_download 一键获取;受限子集只有标注无图
GitHub 官方仓库 标注 + 评测代码 复现论文者 clone 后按 README 指引下载数据
受限来源子集 原图 需要全量者 按 §0 合规要求前往各来源数据集主页逐个申请
# 全量下载(图像 + 标注):带宽不足时可用 allow_patterns 按子集分批
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="OpenGVLab/OmniMedVQA",
    repo_type="dataset",
    local_dir="data/omnimedvqa",
    max_workers=8,                      # 并发加速;磁盘紧张时降低
)
# 下载后体检:统计哪些子集缺图(受限子集会在这里现形)
import json, glob, os

data_root = "data/omnimedvqa"
missing = {}
for fp in glob.glob(os.path.join(data_root, "QA_information", "*.json")):
    subset = os.path.splitext(os.path.basename(fp))[0]
    items = json.load(open(fp, encoding="utf-8"))
    sample = items[:20]                          # 抽样 20 条验证图像存在性
    gone = [
        it for it in sample
        if not os.path.exists(os.path.join(data_root, "Images", it["dataset"], it["image_path"]))
    ]
    if gone:
        missing[subset] = len(gone)
print("缺图子集(受限来源):", missing or "无")

§6.3 预处理全流程

# 预处理全流程:JSON -> 统一 DataFrame -> 尺寸/通道标准化 -> 可训练数据表
# 输出:qa_table.parquet(过滤缺图、统一通道、附 MCQ 文本)
import json, glob, os
import pandas as pd
from PIL import Image

data_root = "data/omnimedvqa"
IMG_SIZE = (512, 512)                    # 统一尺寸;CT/MR 建议保留原始分辨率另存

rows = []
for fp in glob.glob(os.path.join(data_root, "QA_information", "*.json")):
    for it in json.load(open(fp, encoding="utf-8")):
        rows.append({
            "question_id": it["question_id"],
            "dataset": it["dataset"],
            "question_type": it["question_type"],
            "question": it["question"],
            "option_A": it["option_A"], "option_B": it["option_B"],
            "option_C": it["option_C"], "option_D": it["option_D"],
            "gt_answer": it["gt_answer"],
            "image_path": os.path.join(data_root, "Images", it["dataset"], it["image_path"]),
        })

df = pd.DataFrame(rows)
df["image_exists"] = df["image_path"].map(os.path.exists)      # 步骤 1:过滤受限/缺图条目
df = df[df["image_exists"]].reset_index(drop=True)

def to_rgb(path):                        # 步骤 2:灰度 -> RGB(X-Ray/CT 多为单通道)
    return Image.open(path).convert("RGB").resize(IMG_SIZE)

df["pixel"] = df["image_path"].head(1000).map(to_rgb)           # 演示仅前 1000 条;全量建议离线批处理

def build_mcq(r):                        # 步骤 3:构造零样本 MCQ 提示文本
    opts = [r["option_A"], r["option_B"], r["option_C"], r["option_D"]]
    return (
        f"Question: {r['question']}\n"
        "A. {a}\nB. {b}\nC. {c}\nD. {d}\n"
        "Answer with a single letter."
    ).format(a=opts[0], b=opts[1], c=opts[2], d=opts[3])

df["mcq_prompt"] = df.apply(build_mcq, axis=1)
df.to_parquet("qa_table.parquet")
print(df.groupby(["dataset"]).size().sort_values(ascending=False).head(10))

§6.4 PyTorch DataLoader

<details>
<summary>完整 Dataset 类 + DataLoader 实例化(点击展开,约 60 行)</summary>

# PyTorch 数据管线:OmniMedVQA 多选题评测 Dataset
# 依赖:torch, torchvision, pandas, Pillow
import torch
import pandas as pd
from PIL import Image
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms

LETTERS = ["A", "B", "C", "D"]
OPTION_COLS = ["option_A", "option_B", "option_C", "option_D"]

class OmniMedVQADataset(Dataset):
    """每条记录 = 图像 + MCQ 文本 + 正确选项字母。

    关键设计:
    1. transform 只作用于图像,文本侧不做随机增强;
    2. 选项顺序固定(A-D),评测时不打乱,保证与官方口径一致;
    3. 打开失败时抛错而不是静默跳过——缺图应在上游过滤(见坑点 1)。
    """

    def __init__(self, parquet_path: str, transform=None):
        self.df = pd.read_parquet(parquet_path).reset_index(drop=True)
        self.transform = transform or transforms.Compose([
            transforms.Resize((512, 512)),
            transforms.ToTensor(),
            transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                 std=[0.229, 0.224, 0.225]),
        ])

    def __len__(self) -> int:
        return len(self.df)

    def __getitem__(self, idx: int):
        r = self.df.iloc[idx]
        image = Image.open(r["image_path"]).convert("RGB")
        image = self.transform(image)

        options = [r[c] for c in OPTION_COLS]
        gt_idx = options.index(r["gt_answer"])          # 正确答案 -> 0..3
        prompt = (
            f"{r['question']}\n"
            + "\n".join(f"{L}. {o}" for L, o in zip(LETTERS, options))
            + "\nAnswer with a single letter."
        )
        return {
            "pixel_values": image,
            "input_ids": prompt,                         # 接入分词器由模型侧完成
            "gt_idx": torch.tensor(gt_idx, dtype=torch.long),
            "dataset": r["dataset"],
            "question_type": r["question_type"],
        }

ds = OmniMedVQADataset("qa_table.parquet")
loader = DataLoader(ds, batch_size=16, shuffle=False,    # 评测不打乱
                    num_workers=4, pin_memory=True)
batch = next(iter(loader))
print(batch["pixel_values"].shape, batch["gt_idx"][:5])

</details>

§6.5 坑点 8 个

⚠️ 坑点 1:受限子集只发路径不发图,直接全量训练/评测必然 FileNotFoundError(分类:工程陷阱)

问题:OmniMedVQA 采用开放/受限双轨发布,受限来源数据集只提供文件路径与 QA 标注;按全量索引循环加载时,读到受限子集就会因图像缺位崩溃。
症状:评测脚本跑到一半抛 FileNotFoundError;或 DataLoader num_workers > 0 时报错位置随机、难以复现;统计出来的"实际评测条目数"少于 127,995。
解决:

  1. 简单方法:加载标注后先做存在性过滤(os.path.exists),只保留图像齐全的条目,并在结果里明确报告"有效条目数"。
  2. 进阶方法:把存在性检查结果缓存为 image_exists 列(见 §6.3 代码),构建 Dataset 时直接按该列过滤;对受限子集单独输出清单,按 §0 合规流程逐个向来源数据集申请原图。
  3. SOTA 方法:为受限子集维护一个"占位跳过表",评测脚本按表路由——开放子集本地加载、受限子集标记为 skipped,保证任何机器上跑出的条目集合完全一致、可对账。
    参考:论文双轨发布说明;官方仓库

⚠️ 坑点 2:对 127,995 条直接求平均,成绩被 MR/显微/CT 三大模态垄断(分类:评估误用)

问题:模态分布极不均衡(MR 31,917 vs OCT 3,791,红外/阴道镜等未披露的长尾更少),直接算总体平均准确率时,头部三个模态贡献了绝大多数权重,小众模态的灾难性失败会被淹没。
症状:总体准确率 55% 的模型,单独看阴道镜/红外子集可能只有个位数;论文里"模型对常见模态好、小众模态差"的结论在你自己的报告里完全看不到。
解决:

  1. 简单方法:报告总体准确率的同时,必须并列报告"按模态分组的宏平均"(先算每个模态的准确率再平均)。
  2. 进阶方法:按 模态 × 问题类型 做二维分组评测,输出热力图;对样本量 < 500 的格子标注置信区间,避免小样本误读。
  3. SOTA 方法:对总体准确率做分层 bootstrap(按模态分层重采样 1,000 次)报告 95% CI,并在跨模型比较时对每个模态层做配对差值检验。
    参考:论文模态分布表

⚠️ 坑点 3:LVLM 自由输出不吐字母,自动判分大量记 0(分类:评估误用)

问题:让模型"回答单个字母"时,不少 LVLM 会输出完整句子、复述选项内容或直接给答案文本,基于"输出 == ‘A’"的严格字符串匹配会把大量语义正确的回答判为错误。官方为此设计了 Prefix-based score 作为补充指标。
症状:同一模型换个 prompt 措辞,QA score 波动 10 个百分点以上;人工抽查发现"答案文本正确"但被判错的样本成堆;Otter 类指令遵循弱的模型分数异常低(论文中 Otter 在部分模态低至 2.37%)。
解决:

  1. 简单方法:判分前做输出归一化——正则提取首个 [A-D] 字母;提取失败时回退为"输出文本与选项文本的精确/包含匹配"。
  2. 进阶方法:同时报告 Question-answering score 与 Prefix-based score(对每个选项计算条件似然取 argmax),后者绕过输出格式问题,适合指令遵循能力弱的模型。
  3. SOTA 方法:用带 few-shot 的判分协议 + 温度为 0 的确定性解码,并把"无法解析输出"单列为一类指标(解析失败率),与准确率一起报告。
    参考:官方双指标说明;论文分模态成绩表

⚠️ 坑点 4:来源分类数据集已进模型预训练集,成绩被"背题"污染(分类:数据泄漏)

问题:RadImageNet、ISIC、BraTS、COVID-CT 等来源数据集在医学 AI 圈广泛流传,被评测的 LVLM 可能在预训练或指令微调阶段直接见过这些图像与标签,OmniMedVQA 的高分可能是记忆而非泛化。
症状:模型在"从未见过的模态"(阴道镜、红外)上断崖式失败,而在来源数据高曝光的模态(X-Ray、皮肤镜)上成绩虚高;论文中 LLaVA 与 LLaVA-Med 的对照也提示训练配方比架构更影响成绩。
解决:

  1. 简单方法:核对被测模型的训练数据声明,凡确认用过 OmniMedVQA 来源数据集的,结果单独标注"存在潜在污染"。
  2. 进阶方法:留一子集外推——评测剔除整个来源子数据集后的成绩(训练侧同理),观察"纯净子集"上的排名是否与全量排名一致。
  3. SOTA 方法:在图像层做近重复检索(感知哈希/CLIP 嵌入最近邻)比对被测模型已知训练集,量化污染比例并在论文中报告去污染后的成绩。
    参考:论文"医学专用反而更差"的发现

⚠️ 坑点 5:模板 + GPT 复写的题目自带语言先验,模型"读题"就能得分(分类:偏倚陷阱)

问题:五类问题类型各自来自固定模板池,经 GPT-4 复写后措辞虽有变化,但句式与选项风格高度可识别。文本侧先验强的模型可能不细看图像就答出相当比例的题目(例如"Which imaging technique" 的问题答案分布集中在少数高频选项)。
症状:纯文本基线(不给图像、只看问题+选项)的盲测准确率显著高于 28.28% 的随机基线;换掉图像后成绩几乎不变。
解决:

  1. 简单方法:跑一次 text-only 盲测基线并随结果一并报告;模型相对盲测基线的增量才是"视觉贡献"。
  2. 进阶方法:按问题类型分别报告盲测基线与有图成绩的差值,定位先验最重的题型(通常是模态识别与疾病识别)。
  3. SOTA 方法:对高频题型做选项重排与同义改写的扰动一致性检验(perturbation consistency),报告模型对语言扰动的敏感度。
    参考:QA 构建流水线

⚠️ 坑点 6:3D_Modality 子库是体数据,按 2D 平面图直接读会丢层间信息(分类:预处理陷阱)

问题:3D_Modality 子库(整合 ISLES、AMOS、BraTS2013/2018、PICAI、VALDO 等 17 个数据集)的影像本质是三维体数据;基准发布时多以逐层切片形态组织,简单按 2D 图像读入会忽略层间上下文,且不同来源的切片方向(轴位/矢状/冠状)与窗宽窗位不一致。
症状:同一患者的相邻切片被当作独立样本;模型对"层内可见病灶"的回答在不同切片间自相矛盾;自行重建体数据时器官方向上下颠倒。
解决:

  1. 简单方法:明确把 3D 子集排除在 2D 管线之外,单独报告 2D 成绩与 3D 成绩,不混入总体。
  2. 进阶方法:按 DICOM 元数据(如存在)或 nibabel 读取原始 NIfTI,统一重采样到 1mm 各向同性体素,再按固定方向取片,保证物理方向一致。
  3. SOTA 方法:对 3D 子集直接用支持体输入的模型(如 RadFM 类架构)评测,输入整卷或 k 个采样切片,报告体级而非片级准确率。
    参考:3D_Modality 构成(17 个来源数据集);RadFM 等体数据模型

⚠️ 坑点 7:多源图像尺寸/通道不一,无脑 resize + RGB 转换会悄悄改变病灶形态(分类:预处理陷阱)

问题:73 个来源数据集的图像分辨率、长宽比、通道数(灰度 X 光/CT vs RGB 眼底/皮肤镜/内镜)差异巨大;统一 resize(224) 会把细小病灶(早期糖网微动脉瘤、显微切片细胞)插值到不可辨认,convert("RGB") 对灰度图的通道复制也会影响预训练统计量的匹配。
症状:高分辨率原图评测成绩显著低于论文口径;同一样本在两次预处理后模型给出不同答案;小目标类问题(目标存在性)准确率异常低。
解决:

  1. 简单方法:短边缩放 + 居中裁剪替代暴力 resize;灰度图按三通道复制但记录原始通道数列,便于按模态调试。
  2. 进阶方法:按模态分组设置预处理参数(CT/MR 保留 512 × 512、眼底/皮肤镜短边 512 等),并把预处理配置写入结果元数据,保证可复现。
  3. SOTA 方法:对细小病灶敏感的题型做预处理消融(resize vs letterbox vs 原尺寸分块),选择对成绩最稳定的方案并在论文附录公开。
    参考:社区 parquet 版的异构尺寸记录

⚠️ 坑点 8:选项位置偏置 + 28.28% 随机基线,跨模型比较时必须双锚定(分类:评估误用)

问题:四选项多选题的正确答案位置(A/B/C/D)分布不严格均匀,且干扰项由 LLM 生成、风格与正确项存在系统性差异;模型可能学会"选更像医学术语的选项"或"选特定位置"两类捷径。官方给出的随机基线是 28.28% 而非朴素 25%,正是因为选项数量与分布并非理想均匀。
症状:两个模型总体分差 2 个百分点,但按"正确答案字母位置"分桶后各桶方向不一;某些模型 A 选项准确率显著高于 B-D。
解决:

  1. 简单方法:报告成绩时并列给出 28.28% 随机基线与 text-only 盲测基线(见坑点 5),双锚定解读。
  2. 进阶方法:评测时做选项轮换(把正确答案均匀轮转到 A-D 四个位置,各自评测再平均),消除位置偏置对模型排名的干扰。
  3. SOTA 方法:按"正确答案位置 × 模态"分层统计各模型准确率矩阵,检验位置-成绩相关性;显著相关者在结果中标注"位置捷径未消除"。
    参考:随机基线与总体成绩

§6.6 数据增强建议

操作 是否安全 说明
水平翻转(大多数模态) ⚠️ 视题型 疾病识别/目标存在性可用;但"位置识别"类问题(左/右侧)翻转后答案必须同步翻转,否则引入错误标签
垂直翻转 ❌ 危险 腹部/胸部解剖上下不对称,违背解剖学常识
旋转 ±15° 内 ✅ 安全 模拟摆位误差,各模态通用
随机裁剪后 resize ⚠️ 视模态 眼底/皮肤镜安全;CT/MR 小病灶可能被裁掉
CT/MR 窗宽窗位扰动 ✅ 安全(训练) 增强扫描协议鲁棒性;评测时必须固定窗宽窗位
颜色抖动(色相/饱和度) ❌ 危险 眼底、皮肤镜的病灶色彩本身是诊断特征,扰动破坏语义
选项顺序打乱 ✅ 安全(训练) 缓解选项位置偏置;评测口径须保持固定(见坑点 8)
灰度转三通道复制 ✅ 安全 与预训练统计量对齐的必要步骤(见坑点 7)

§6.7 模型推荐

模型 类型 在本基准上的表现 适用场景
BLIP-2 通用 LVLM 总体最佳(QA score 50.69%) 医学 VQA 强基线、特征对齐研究
MedVInT 医学专用 41.50%,医学专用最佳 医学图文对齐模型的结构参考
Med-Flamingo 医学专用 36.17% 少样本医学问答研究
RadFM 医学专用(支持 3D) 分模态差异大(CT 45.47%/Colposcopy 22.55%) 体数据评测、3D 管线对照
LLaVA-Med 医学专用 28.78%(近随机基线) 反面教材:纯文本指令数据的教训
LLaVA(通用原版) 通用 LVLM 优于 LLaVA-Med 微调前后对照实验的锚点

§6.8 硬件需求

任务 最低配置 推荐配置 说明
数据下载 + 统计体检 4GB 内存 CPU 8GB 内存 只需磁盘空间,无 GPU
2D 全量评测(7B 级 LVLM) 24GB 显存(如 A10/4090) 48GB 显存(A6000 级) 127,995 条 × 图像编码,建议先跑分层抽样子集
3D 子集评测 40GB 显存 80GB(A100 级) 体数据输入显存占用数倍于 2D
Prefix-based score 计算 与推理同配置 同左 + 更大 KV 缓存 每条需对 4 个选项各算一次似然

§6.9 评估指标代码

# 双指标判分:QA score(解析字母 + 文本回退)与 Prefix-based score(似然 argmax)
# 依赖:torch, transformers(以任意 HF 因果 LM 为例)
import re

def qa_score(pred_text: str, options: list[str], gt: str) -> int:
    """Question-answering score:先抽字母,再回退文本匹配。"""
    m = re.search(r"\b([A-D])\b", pred_text.strip().upper())
    if m:                                                # 1) 直接命中选项字母
        return options["ABCD".index(m.group(1))] == gt
    for i, opt in enumerate(options):                    # 2) 回退:输出文本与选项匹配
        if opt.lower() in pred_text.lower():
            return opt == gt
    return 0                                             # 3) 无法解析,计错(应单列解析失败率)

@torch.no_grad()
def prefix_based_score(model, tokenizer, image, prompt: str, options: list[str]) -> int:
    """Prefix-based score:对每个选项计算条件似然,返回预测选项索引(绕过输出格式问题)。"""
    import torch as t
    prompt_len = tokenizer(prompt, return_tensors="pt").input_ids.shape[1]
    scores = []
    for opt in options:
        inputs = tokenizer(f"{prompt} {opt}", return_tensors="pt").to(model.device)
        logits = model(**inputs).logits[0, prompt_len - 1:-1]   # 只统计选项 token 区间
        targets = inputs.input_ids[0, prompt_len:]
        log_probs = t.log_softmax(logits, dim=-1)
        scores.append(log_probs[range(len(targets)), targets].mean().item())
    return max(range(len(options)), key=lambda i: scores[i])

# 判分:pred_idx = prefix_based_score(model, tok, img, prompt, options)
#      correct = (pred_idx == options.index(gt_answer))

§6.10 MLOps 笔记

  • 评测即工件:把"模态 × 问题类型"分组成绩表、有效条目数、受限子集跳过清单写入每次评测的产物目录,跨模型对比时先对账条目集合是否一致。
  • 固定种子与清单:分层抽样子集评测时,把抽样清单(question_id 列表)作为数据工件入库,杜绝"每次评测条目不同"的不可复现。
  • 成本护栏:全量 Prefix-based score 的计算量是普通评测的约 4 倍(每条 4 个选项各一次前向);先在抽样子集上验证管线,再上全量。
  • 结果版本化:记录被测模型 checkpoint 哈希、预处理配置、判分脚本版本三要素;OmniMedVQA 的成绩只在三要素齐备时可复现。
  • 告警锚点:把 28.28% 随机基线与 text-only 盲测基线写进 CI,任何低于或接近盲测基线的成绩自动告警(防判分脚本回归)。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
模态不均衡 MR 31,917 vs OCT 3,791,内镜/红外/阴道镜数量更少且未披露 高 按模态宏平均报告(坑点 2)
分类标签衍生 答案锚定于来源分类标签,粒度粗于临床报告 高 明确基准定位为"分类级通识"评测
LLM 生成先验 题干句式与干扰项风格由 GPT-3.5/4 决定 中 text-only 盲测基线锚定(坑点 5)
来源污染 来源数据集可能已进被测模型训练集 高 训练数据核对 + 留一子集外推(坑点 4)
选项位置偏置 正确答案位置分布不严格均匀 中 选项轮换评测(坑点 8)
地域/人群不可分层 无患者级元数据,无法按人群加权 中 结果解读限定于"医院回溯性影像"范畴

§7.2 标注质量

正确答案的可靠性继承自 73 个来源数据集的原始标签(多由医师或经训练的专家标注),LLM 复写环节保证语义不变并由作者人工校验。官方未报告校验抽样比例与标注者间一致性系数(IAA),这是本基准透明度的主要短板。使用建议:对争议答案回溯来源数据集标签协议;做高利害结论(如模型能力排名)前,先人工抽检 200-500 条答案正确性。

§7.3 泛化性评估

场景 失效风险 证据
小众模态(阴道镜、红外) 极高:模型普遍断崖式失分 论文分模态表中 Colposcopy 列多模型低于 25%
常见模态(X-Ray、CT) 中:相对最好但绝对值仍低 最佳模型在 CT 列亦仅 38-45% 区间
纯文本捷径 高:题干先验可部分替代看图 题目源自固定模板池(坑点 5)
跨地域人群 未知:来源多中心但无分层元数据 无患者级人口学信息(§2.4)
3D 体数据理解 高:多数 2D 管线无法利用层间信息 3D_Modality 子库的体数据特性(坑点 6)

§7.4 伦理考量

  • 二次利用合规:图像来自已公开发表的数据集,但各来源许可不一;商用或再分发前必须逐源核对许可(见 §0 数据使用合规)。
  • 受限子集设计:对版权受限来源只发布路径与标注,是对原始数据提供者权益的尊重;使用者不得通过拼接公开副本绕过获取条件。
  • 无文本报告:基准只含分类级 QA,不含放射报告原文,天然规避了报告文本中的残余隐私风险。
  • 临床边界:分类级问答成绩不构成诊断能力证据,任何临床主张需前瞻性验证(见 §0 医疗免责)。

§7.5 公平性

OmniMedVQA 提供了一个现成的"能力公平性"观测面:同一模型跨 12 种模态的成绩离散度可量化其医学视觉能力的均衡程度。论文已示警模型对小众模态的系统性弱势;使用者在跨模型比较时应避免只报头部模态的"平均数幻觉"(坑点 2 的宏平均是最低要求)。人群层面的公平性(性别/种族/年龄)因无患者元数据而无法在本基准内评估,需外部数据补充。

§7.6 数据漂移

  • 模态设备漂移:来源数据集采集年代横跨多年,扫描设备与协议演进(如 CT 排数、MR 序列)会带来分布漂移;跨年代子集成绩不可直接对比。
  • 题型老化:五类问题类型固定于 CVPR 2024 版;社区若长期只在此口径上刷分,会形成对"分类级 MCQ"的过拟合生态。
  • 模型侧漂移:新一代 LVLM(如 GPT-4V 类闭源模型)未进入论文原始排行榜,跨代比较时需自建评测并公开协议。

§7.7 DAIMS 24 项检查表

# 检查项 状态 说明
1 宽格式 ✅ QA 标注为"一行一条目"的宽表结构,字段齐备
2 唯一标识 ✅ question_id 编码来源子集与图像序号,全量唯一
3 特殊字符 ✅ 英文题干与选项,无全角/特殊字符污染
4 重复行 ⚠️ 同图多题为设计行为;条目级无重复,但图像级近重复存在
5 缺失编码 ✅ 无表格型缺失;缺图为结构设计而非缺失值
6 标签标识 ✅ gt_answer 明确锚定,四选项格式自描述
7 罕见类分组 ⚠️ 小众模态样本少且官方未披露完整配比,需自行统计
8 偏倚评估 ✅ 官方论文明确披露模态不均衡与专科悖论
9 数据字典 ⚠️ 官方 README 提供目录说明,但字段级字典需参考社区整理
10 信息性缺失解释 ✅ 受限子集缺图有明确官方解释(双轨发布)
11 设备记录 ❌ 无扫描设备/采集参数元数据
12 共线性 ✅ 选项间语义独立(LLM 生成时已规避同义重复干扰项)
13 编码映射 ✅ 来源子集名称与 ICD-11/SNOMED 概念可经 §2.1 映射
14 时间戳处理 ❌ 无采集时间戳,无法做时间维度分析
15 划分建议 ✅ 定位纯评测基准;官方不设划分,社区惯例分层抽样
16 泄漏讨论 ✅ 来源污染风险显式(§5.3、坑点 4)
17 标签分布 ⚠️ 模态分布有官方数字,五类问题配比未披露
18 测量偏倚 ⚠️ 标签粒度继承来源数据集,测量协议跨源不一
19 外部验证建议 ✅ §5.5 给出组合验证路径
20 版本记录 ✅ arXiv v1 与 CVPR 2024 版本对应关系清晰
21 预处理脚本 ✅ 官方仓库提供评测代码;本页补充预处理全流程
22 合规要求 ⚠️ 多源许可需逐源核对,官方未给统一许可声明
23 多模态对齐 ✅ 图像-问题-答案三要素在每条记录内严格对齐
24 去标识化 ✅ 图像源自已发表的脱敏公开数据集,无患者标识

DAIMS 评分:17.5 / 24

评分解读:作为评测基准,OmniMedVQA 在结构完备性(宽格式、唯一 ID、对齐)、泄漏透明度与去标识化上表现优秀;主要失分点是元数据层——无设备记录、无时间戳、无患者级人群信息,这直接封死了设备归因、时间漂移与人群公平性三条分析路线。此外小众模态的分布披露不全,需要使用者自行统计补齐。

对你意味着什么:

  1. 可以直接用:条目结构、判分协议、泄漏防护讨论齐全,从下载到出分一个工作日内可完成(按 §6 路线)。
  2. 必须自己补:跑评测前先统计"模态 × 问题类型 × 答案位置"三维分布并随结果发布,官方没有给全。
  3. 不要试图用:任何需要设备参数、采集时间、患者人口学的分析——本基准的元数据不支持,强行归因会引入错误结论。
  4. 合规别偷懒:73 个来源许可各异,商用前逐源核对;受限子集的原图获取按官方渠道走(§0)。

§7.8 外部验证矩阵

截至 2026-09-05,尚未检索到将 OmniMedVQA 用作外部验证集并经同行评审发表的独立模型报告;当前最完整的公开验证证据仍来自原论文对 12 个 LVLM 的评测。下表按"泛化失效面"整理原论文中已披露的跨场景证据:

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
Colposcopy(阴道镜)子集 多源(含官方整合) 疾病/异常识别 12 模型中最高 35.21%(VPGTrans),多模型 < 25% 显著低于各模型总体水平 小众模态为普遍失效面
CT 子集 RadImageNet 等 多任务 最佳 45.47%(RadFM) 接近或高于总体均值 常见模态表现相对最好
Digital Photography 子集 多源 多任务 最佳 39.04%(MedVInT) 中等 数码摄影介于两者之间

来源:论文分模态成绩表(arXiv 全文)。独立的外部同行评审验证出现后,本表应随之更新。


§8 基准性能与生态

§8.1 排行榜

原论文(CVPR 2024)对 8 个通用 LVLM 与 4 个医学专用 LVLM 的评测,总体(Question-answering score)代表性结果:

排名 模型 总体 QA score 年份 关键技术 完整引用 代码
1 BLIP-2 50.69% 2023 Q-Former 两阶段视觉-语言对齐 Li et al., 2023, ICML. arXiv:2301.12597 LAVIS
2 MedVInT 41.50% 2023 381K 医学图文对训练的 VQA 模型 Zhang et al., 2023. arXiv MedVInT
3 Med-Flamingo 36.17% 2023 Flamingo 架构 + 4K 医学教科书多模态注入 Moor et al., 2023. arXiv:2307.15189 Med-Flamingo
4 LLaVA-Med 28.78% 2023 LLaVA + GPT-4 生成医学指令数据 Li et al., 2023. arXiv:2306.00890 microsoft/LLaVA-Med
— 随机基线 28.28% — 四选项随机作答(含分布校正) — —

总分与排名来源:论文解读。数值不可直接比较的说明:各模型使用不同视觉编码器分辨率与 prompt 协议;其余通用模型(MiniGPT-4、InstructBLIP、mPLUG-Owl、Otter、LLaVA、LLaMA-Adapter-v2、VPGTrans)论文正文以分任务/分模态表格呈现,未在此单列总体分。

分模态代表性结果(Colposcopy / CT / Digital Photography 三列准确率,%):

模型 Colposcopy CT Digital Photography
MiniGPT-4 26.33 29.46 22.94
BLIP-2 32.25 38.87 25.95
InstructBLIP 17.46 35.66 10.01
mPLUG-Owl 18.64 37.00 18.31
Otter 2.37 32.55 20.78
LLaVA 33.73 38.27 23.55
LLaMA-Adapter-v2 28.40 36.03 21.36
VPGTrans 35.21 30.30 27.71
Med-Flamingo 30.56 22.25 7.40
RadFM 22.55 45.47 13.43
MedVInT 60.24 37.77 39.04
LLaVA-Med 13.61 36.75 10.48

来源:论文 Table(arXiv 全文)。

§8.2 SOTA 总结与选型建议

  • 总体最优:BLIP-2(50.69%)大幅领先全部医学专用模型,验证"大规模通用图文对齐"是医学 LVLM 更重要的底座。
  • 医学专用最优:MedVInT(41.50%)——其 381K 图文对预训练与 Med-Flamingo 的教科书注入是目前医学微调数据配方中相对有效的两类。
  • 负面标杆:LLaVA-Med(28.78%)证明"GPT-4 生成纯文本指令 + 少量数据微调"不足以注入视觉-医学对齐能力。
  • 选型建议:以 BLIP-2 系为基线做医学适配;医学专用模型的引用结论必须与通用模型同表对比;任何新医学 LVLM 发布前应在 OmniMedVQA 上给出 12 模态完整成绩单。

§8.3 评测协议

官方协议要点:条目以四选项多选题形式呈现给模型;Question-answering score 依据模型自由文本输出判分(配合解析),Prefix-based score 依据选项前缀似然判分(规避输出格式问题);两者均为准确率口径,可按总体/分模态/分问题类型三维拆分(官方博客)。

数据集 图像/QA 规模 模态 与本基准关系
VQA-RAD 315 / 3,515 胸部 X-Ray/CT 医师标注小金标准,适合细读对照
SLAKE 642 / 14,028 胸部 中英双语,含分割标注
Path-VQA 4,998 / 32,799 病理显微 病理单一模态深读
VQA-Med 4,500 / 5,500 多模态 竞赛系列,题型开放
PMC-VQA 约 229K 图 / 207K QA(v2) 放射多模态 规模相近的衍生 QA 集,训练导向
RadImageNet 135 万张级(源库) CT/MR OmniMedVQA 最大组成源

§8.5 关键论文 Top 8

  1. Hu et al. (2024), “OmniMedVQA: A New Large-Scale Comprehensive Evaluation Benchmark for Medical LVLM”, CVPR 2024, pp. 22170-22183. arXiv:2402.09181 — 本基准原始论文,提出 73 源整合与双指标评测。
  2. Li et al. (2023), “BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models”, ICML 2023. arXiv:2301.12597 — 排行榜榜首模型的架构基础。
  3. Li et al. (2023), “LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day”. arXiv:2306.00890 — 医学指令微调的代表性工作与本文反面案例。
  4. Wu et al. (2023), “Towards Generalist Foundation Model for Radiology”(RadFM). arXiv:2308.07906 — 支持 3D 体输入的放射基础模型。
  5. Moor et al. (2023), “Med-Flamingo: a Multimodal Medical Few-shot Learner”. arXiv:2307.15189 — 医学少样本多模态学习。
  6. Lau et al. (2018), “A Dataset of Clinically Realistic Visual Question Answering for Medical Imaging”, ML4H 2018 — VQA-RAD,医学 VQA 的开创性小数据集。
  7. Liu et al. (2021), “SLAKE: A Semantic Knowledge base for Beaconing Medical Images”, ISBI 2021 — 双语医学 VQA 与知识库。
  8. Mei et al. (2022), “RadImageNet: An Open Radiologic Deep Learning Research Dataset for Effective Transfer Learning”, Radiology: Artificial Intelligence — 最大组成来源数据集。

§8.6 社区活跃度

  • 学术影响:236+ 次引用(Google Scholar,截至 2026-09),已成为医学 LVLM 论文的标准评测之一。
  • 代码与数据托管:GitHub(OpenGVLab/Multi-Modality-Arena)与 HuggingFace 双渠道;社区出现 parquet 转换版(simwit/omni-med-vqa)说明下游有流式读取需求。
  • 中文社区:OpenGVLab 官方博客与多篇中文技术解读降低了国内团队的使用门槛。

§8.7 生态快照

资源 类型 链接 推荐理由
官方仓库 代码+标注 Multi-Modality-Arena 判分脚本与论文一致的唯一来源
HuggingFace 官方镜像 数据 OpenGVLab/OmniMedVQA 大文件断点续传最方便
社区 parquet 版 数据转换 simwit/omni-med-vqa 表结构规整,教学/流式场景友好
arXiv 论文 文献 2402.09181 方法学细节与全部成绩表
官方中文博客 文献解读 CSDN/OpenGVLab 构建流水线的官方中文叙述

§9 相关资源与引用

§9.1 官方资源清单

§9.2 BibTeX 引用

@inproceedings{hu2024omnimedvqa,
  title     = {OmniMedVQA: A New Large-Scale Comprehensive Evaluation Benchmark for Medical LVLM},
  author    = {Hu, Yutao and Li, Tianbin and Lu, Quanfeng and Shao, Wenqi and He, Junjun and Qiao, Yu and Luo, Ping},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  pages     = {22170--22183},
  year      = {2024}
}

@article{hu2024omnimedvqa_arxiv,
  title   = {OmniMedVQA: A New Large-Scale Comprehensive Evaluation Benchmark for Medical LVLM},
  author  = {Hu, Yutao and Li, Tianbin and Lu, Quanfeng and Shao, Wenqi and He, Junjun and Qiao, Yu and Luo, Ping},
  journal = {arXiv preprint arXiv:2402.09181},
  year    = {2024}
}

§9.3 引用指南

  • 评测使用本基准时,引用 CVPR 2024 会议版(上面的第一条 BibTeX);
  • 讨论构建方法时,可同时引用 arXiv 版与官方中文博客;
  • 引用成绩数字时注明指标口径(Question-answering score 或 Prefix-based score)与评测条目范围(全量或分层抽样子集);
  • 本百科页面建议引用格式:千方病案医数集,“OmniMedVQA — 综合医学视觉问答基准 AI-Ready Wikipedia”,https://www.qianfanghub.com/ai-ready-dataset/omnimedvqa/290(审核日期 2026-09-05)。

§10 AI 使用声明卡

§10.1 AI 模型使用

AI 模型 版本 用途
CodeBuddy(fast-model) 2026-09 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建
WebSearch(多源检索) 2026-09-12 6 组检索:官方仓库与 HF 页面、论文与引用数、许可与获取、基准成绩、社区解读交叉验证

§10.2 AI 参与范围

AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。

AI 在本页面的工作中负责:(1) 从 arXiv 论文、CVPR 版本信息、GitHub 仓库、HuggingFace 数据页与官方中文博客中整理结构化信息;(2) 生成 §6 的 Python 数据管线与判分代码示例;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。

§10.3 输入来源

  1. Hu et al. (2024), CVPR 2024, pp. 22170-22183(arXiv:2402.09181)— 原始论文
  2. arXiv 摘要页 arXiv:2402.09181(规模、模态、摘要结论)
  3. GitHub OpenGVLab/Multi-Modality-Arena README(目录结构、评测代码、获取方式)
  4. HuggingFace OpenGVLab/OmniMedVQA 数据页(官方镜像)
  5. OpenGVLab 官方中文博客(CSDN 142758460)— 构建流水线、127,995 条目、双指标
  6. OpenGVLab 团队解读(CSDN 143466507)— 评测结论与后续建议
  7. HuggingFace simwit/omni-med-vqa 数据卡 — 字段结构、五类 question_type、四选项
  8. Tiptree/Lacuna 论文解读 — BLIP-2 50.69%、MedVInT 41.50%、Med-Flamingo 36.17%、LLaVA-Med 28.78%、随机基线 28.28%
  9. arXiv-vanity 论文全文 — 12 模型分模态成绩表
  10. arxivlens 条目 — arXiv 许可(CC0 1.0)、分类信息、引用网络
  11. chatpaper CVPR 2024 条目 — 作者与机构归属(HKU、上海人工智能实验室)
  12. Mendeley Catalogue 条目 — 摘要与关键词交叉核对
  13. Google Scholar 引用快照(236+,截至 2026-09)
  14. CVF Open Access CVPR 2024 — 会议版页码信息

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§2 医学背景(ICD-11/SNOMED 映射、临床任务定义) 千方病案医学编辑部 交叉审核 ✅ 已通过
§3 数据集规格(模态数字、子集构成、版本矩阵) 千方病案医学编辑部 与论文及官方博客交叉比对 ✅ 已验证
§4 数据结构(目录树、DAIMS 字段字典) 千方病案医学编辑部 与官方仓库及社区数据卡交叉比对 ✅ 已验证
§5 数据划分策略与泄漏风险 千方病案医学编辑部 交叉审核 ✅ 已通过
§6 代码示例与 8 个坑点 千方病案医学编辑部 逻辑审查 + 与官方评测口径比对 ✅ 已通过
§7 质量评估与 DAIMS 评分 千方病案医学编辑部 交叉审核 ✅ 已通过
§8 排行榜与引用数表述 千方病案医学编辑部 与论文成绩表及 Scholar 快照交叉比对 ✅ 已验证
§C JSON-LD @graph 千方病案医学编辑部 Schema v3.9 字段逐项校验 ✅ 已通过

§10.5 AI 生成章节标注

以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。

§10.6 最后审核

最后一次人工审核日期:2026-09-05

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


§C 结构化数据(JSON-LD)


相关数据集导航

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

  • vqa-rad — 共享标签:医学影像 / 医疗NLP / 视觉问答
  • slake — 共享标签:医学影像 / 医疗NLP / 视觉问答
  • pathvqa — 共享标签:医疗NLP / 视觉问答 / 评测基准
  • rexvqa — 共享标签:医学影像 / 视觉问答 / 评测基准
  • rex-in-the-wild — 共享标签:视觉问答 / 评测基准
  • ms-cxr-t — 共享标签:医学影像 / 医疗NLP / 评测基准
  • 3dreasonknee — 共享标签:医学影像 / 视觉问答 / 评测基准
  • i2b2-n2c2-nlp — 共享标签:医疗NLP / 评测基准
  • cblue — 共享标签:医疗NLP / 评测基准
  • vqa-med — 共享标签:医学影像 / 视觉问答

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

返回 AI-Ready 数据集