信息速览
放射科报告里的“与前片相比”只有几个字,背后却要求阅片者同时完成三件事:认出当前片上的异常,把它与同一患者较早检查中的异常对齐,再判断病灶是新出现、消退、加重、减轻还是没有变化。普通医学视觉问答通常把一张图和一个问题配在一起,能回答“有没有胸腔积液”,却没有第二张图来回答“积液是否比上次减少”。纵向报告生成又把整段报告作为目标,容易把真正关心的变化埋在大量稳定所见里。Medical-Diff-VQA 把这个缺口切成了可训练的问答任务:每个比较单元由同一患者的较早检查与较晚检查组成,较早者是 reference,较晚者是 main;问题既能询问当前片的异常、位置、类型、程度和视图,也能直接询问两次检查之间的变化。
这份资源的“大”主要体现在问答层,而不是一个可直接下载的图像压缩包。PhysioNet 版本 1.0.1 给出 700,703 组问题与答案,关联 164,324 对纵向影像;交付物以 CSV、JSON 和关键词库为主,胸片仍留在受控访问的 MIMIC-CXR 生态中。它的生成链也不是逐题由医师手写:作者先从报告中抽取异常及属性,经过人工与自动检查反复修正规则,再由模板生成问题和答案。于是它同时拥有大规模和清晰的结构,也继承了规则抽取、否定识别、报告表述与上游人群的边界。要把它用对,第一步不是训练模型,而是先认清它究竟提供了什么、没有提供什么。一屏速览如下。
| 维度 | 内容 |
|---|---|
| 正式全名 | Medical-Diff-VQA: A Large-Scale Medical Dataset for Difference Visual Question Answering on Chest X-Ray Images |
| 曾用名 | MIMIC-Diff-VQA;论文与仓库地址仍保留这一名称 |
| 发布方 | 九位作者贡献,PhysioNet 托管;对应论文发表于 KDD 2023 |
| 首次发布 | 2023 年 9 月 15 日,版本 1.0.0 |
| 最近改动 | 2025 年 2 月 3 日,版本 1.0.1 |
| 版本 DOI | 10.13026/e6dd-cn74;PhysioNet 另列最新概念 DOI 10.13026/hbsg-tk87 |
| 问答规模 | 700,703 组问题—答案 |
| 配对规模 | 164,324 对 main/reference 纵向影像 |
| 患者数 | 官方页面与论文未单独披露,不能用上游 MIMIC-CXR 总患者数代替 |
| 问题结构 | 7 类:abnormality、presence、view、location、type、level、difference |
| 配对规则 | 同一患者、不同检查;较早检查为 reference,较晚检查为 main |
| 原始来源 | MIMIC-CXR 自由文本报告;元数据和参考标签来自 MIMIC-CXR-JPG |
| 标注方式 | 关键词库与正则抽取,经 Extract-Check-Fix 循环校正,再按模板生成问答 |
| 人工核验 | 3 名验证者随机检查 1,700 组问答及报告,其中 1,657 组判为正确 |
| 交付格式 | CSV、JSON;关键词库也以 CSV 交付,不随包提供胸片像素 |
| 数据划分 | split 字段记录 train、val、test;论文给出 8∶1∶1 的结构比例 |
| 访问条件 | PhysioNet 凭证用户、签署数据使用协议并完成指定 CITI 培训 |
| 许可 | PhysioNet Credentialed Health Data License 1.5.0 与同版数据使用协议 |
| 典型用途 | 纵向胸片差异问答、医学多模态训练与评测、时间顺序敏感性研究 |
§1 它要解决的具体麻烦
1.1 单张胸片只能回答“现在”,不能回答“变化”
单图视觉问答把问题限定在一个时点。模型可以在当前胸片上寻找肺不张、心影增大或支持装置,也可以回答位置和严重程度,但“新出现”“已经改善”“仍然存在”都不是单张图固有的属性。这些词要求一个比较基准。临床报告里的 prior study 不是装饰性上下文,而是判断治疗反应、疾病进展与装置变化的参照。
Medical-Diff-VQA 的核心动作是把时间参照写进数据结构。study_id 指向 main 检查,ref_id 指向 reference 检查,二者来自同一患者的不同就诊。前六类问题只围绕 main 图像;difference 问题才同时依赖两张图。这样的设计把“识别当前异常”和“比较前后差异”放在一个统一文件里,却没有把二者混成同一种任务。
| 问题层次 | 输入需求 | 可回答的临床式问题 | 主要风险 |
|---|---|---|---|
| 当前状态 | main 图像 | 当前是否有异常、异常在哪里、属于什么类型 | 模型可能依赖问题先验而忽视影像 |
| 时间变化 | main + reference | 与较早检查相比发生了什么变化 | 交换时间顺序会改变答案语义 |
| 报告派生信息 | 两次检查的报告与中间结构 | 哪些异常及属性被规则识别 | 报告没有写出的所见不会自动成为答案 |
1.2 报告不是现成的问答表
MIMIC-CXR 报告是为临床沟通写的自然语言。一个句子可能同时包含异常、部位、程度、否定与比较,还可能用代词或省略表达。若直接把整句当答案,任务会退回报告生成;若只抽一个病名,又会丢掉位置和程度。作者因此先建立 KeyInfo 中间层,把正性所见、否定所见以及 location、type、level 等属性组织起来,再从中间层生成不同问题。
这个中间层既是优势,也是误差入口。规则必须识别“no evidence of”这类否定,必须知道某些位置词出现在病名之前、另一些出现在之后,还要把同义变体统一到标准名称。官方没有声称这套规则覆盖所有罕见表达;Usage Notes 反而明确提醒,少见异常、位置、程度、类型和否定句仍可能被错抽。
更难的一层是比较句并不总把两个时点写全。报告可能说“仍有少量积液”,其中“仍有”暗含较早检查也存在;也可能说“间质性水肿改善”,却不重复描述基线程度;还可能只写“无显著间隔变化”,把多个稳定所见压成一句总括。规则若只找疾病词,会丢掉时间关系;若只找比较词,又不知道它修饰哪个异常。KeyInfo 的做法是先把每次研究的正性、否定与属性拆开,再比较两次结构,而不是把整段比较句原样复制成答案。这使输出更规整,也意味着原报告中的语气、置信度、因果推测和多病灶联动会被压缩。
另一个容易忽略的问题是“报告真值”和“影像真值”并不等同。放射科报告服务于当次临床问题,稳定且次要的所见可能不再重复,技术受限也可能只在正文里简略说明。由报告抽取出来的 absence,有时表达的是“报告没有识别到或明确否定”,而不是经过独立盲读确认的像素级不存在。因此,适合的建模目标是复现这套报告派生问答口径;若研究目标变成发现报告遗漏,就必须另请医师直接阅片建立参照,不能用同一份自动答案自我证明。
| 报告表达 | 规则层要处理的关系 | 可能损失的信息 |
|---|---|---|
| 明确否定某异常 | 否定词与病名的作用范围 | 否定是否受检查质量限制 |
| 描述异常改善或加重 | 比较词、异常及两个时点 | 改变幅度和临床重要性 |
| 写“无间隔变化” | 稳定状态与多项所见的关联 | 哪些所见被纳入总括 |
| 省略稳定旧所见 | 本次未提及与真正消失的区别 | 报告关注重点的变化 |
| 同一句出现多个异常 | 属性词应归属哪个病名 | 病灶之间的因果或伴随关系 |
1.3 它能给到的与给不到的
| 你的需求 | 它能给到的 | 是否足够 |
|---|---|---|
| 训练“与前片相比有什么变化” | 同患者前后检查标识、difference 问题与答案 | 够做监督学习,但图像须另行回源 |
| 同时训练单图属性问答 | 六类 main-only 问题与统一字段 | 够,需按 question_type 明确任务 |
| 获取可公开直连的胸片图包 | 不提供像素文件 | 不够,必须取得 MIMIC-CXR 或 JPG 访问权 |
| 获得逐题医师手写答案 | 答案由中间 KeyInfo 和模板生成 | 不够,不能描述成专家逐题撰写 |
| 研究报告信息抽取 | 中间 JSON、关键词库与生成代码 | 够复核流水线,重新生成不保证逐行相同 |
| 研究治疗因果效果 | 只有影像比较与报告派生问答,没有完整干预链 | 不够,变化不等于干预造成的结果 |
| 研究患者级长期轨迹 | 有同患者跨检查配对,但患者总数和完整轨迹未披露 | 只够配对任务,不是完整纵向病程表 |
| 直接用于临床诊断 | 研究数据与自动派生答案 | 不够,官方许可也不提供适用性保证 |
1.4 你的处境与它能帮到的事
| 你的处境 | 最合适的用法 | 先做的核对 |
|---|---|---|
| 已有单图胸片 VQA 模型 | 增加 reference 编码器,比较单图与双图能力 | 确认 difference 问题确实同时加载两张图 |
| 在做纵向多模态预训练 | 把前后图像与变化答案组成时间敏感监督 | 检查同一患者是否跨越训练与测试 |
| 想复现 EKAID 论文 | 使用官方固定问答文件,不先重新生成 | 锁定版本 1.0.1,并记录影像预处理 |
| 想改进规则标注 | 从关键词库、KeyInfo 和报告抽取代码入手 | 把改动后的数据命名为派生版本 |
| 只想做文本问答 | 可以读取 question/answer,但会失去视觉依据 | 不要把文本模型得分称为视觉理解能力 |
| 想做临床产品验证 | 可用于早期方法开发 | 另建独立、人工判读且符合本地流程的验证集 |
1.5 一句话判断
它不是“两张胸片已经打包并由医师逐题作答”的成品,而是一套把 MIMIC-CXR 纵向检查、报告抽取结果和模板问答连接起来的大规模研究资源;最有价值的是时间比较结构,最需要警惕的是自动派生答案。
1.6 不适合谁:五条边界
不适合没有 MIMIC-CXR 权限的人直接做视觉训练。 问答文件里的研究标识不是像素。拿不到上游影像,就只能处理文本和结构字段,无法完成真正的 VQA 输入闭环。
不适合寻找逐病灶空间标注的人。 location 是报告语义属性,不是边界框、分割掩码或像素坐标。需要病灶接地时,应转向 MS-CXR、Chest ImaGenome 或专门的检测数据。
不适合把自动答案当作临床金标准的人。 Extract-Check-Fix 降低了错误,但没有消除报告遗漏、否定误判和模板偏差。人工抽查说明了可用性,也同时证明并非每组都正确。
不适合做完整病程因果推断的人。 main 和 reference 表达时间先后,不表达两次检查之间具体发生了哪些治疗、停药或病情事件。模型答出“减轻”不等于证明某项干预有效。
不适合忽略版本的人。 1.0.1 专门修正了部分 difference 记录的 study_id 与 ref_id 顺序,并同步改写受影响答案。沿用 1.0.0 可能把过去和现在倒置。
§2 数据构成与规格
2.1 三个核心数据文件加七个词库
官方 Data Description 把主要交付分成三层。mimic_all.csv 保存 MIMIC-CXR 标识、视图、检查顺序以及供参考的 MIMIC-CXR-JPG 标签;all_diseases.json 是逐研究的 KeyInfo 中间结果;mimic_pair_questions.csv 是最终问答文件。另有 libs/ 下的七个 CSV 词库,支撑疾病、位置、后置位置、类型、程度、词性与名称标准化。
官方页面内部存在一个文件名不一致:正文将最终文件写作 mimic_pair_questions.csv,页面展示的目录树却写作 mimic_vqa_pairs.csv。官方 GitHub 的 question_gen.py 把正式输出路径写成 datasets/mimic_pair_questions.csv,因此代码与正文相互印证,目录树名称更像文档残留。使用时仍应以实际下载目录为准,不要让脚本只接受一个硬编码名称。
| 层次 | 文件或目录 | 格式 | 作用 | 是否含图像像素 |
|---|---|---|---|---|
| 上游索引层 | mimic_all.csv |
CSV | 连接患者、研究、DICOM、视图、检查顺序与参考标签 | 否 |
| 中间语义层 | all_diseases.json |
JSON | 保存正性异常、属性与否定所见 | 否 |
| 最终监督层 | mimic_pair_questions.csv |
CSV | 保存 main/reference 配对、问题、答案和划分 | 否 |
| 规则资源层 | libs/ |
7 个 CSV | 保存关键词与标准化映射 | 否 |
| 影像层 | MIMIC-CXR / MIMIC-CXR-JPG | DICOM / JPG | 提供模型真正读取的胸片 | 不在当前数据包内 |
2.2 最终问答文件字段字典
最终文件的最小语义单元是一组“主检查—参照检查—问题—答案”。不要把每一行误称为独立患者,也不要把 study_id 当作图像文件名。一个研究可能对应不止一幅影像;要取到具体 DICOM 或 JPG,还需经 mimic_all.csv 的 dicom_id 继续映射。
| 字段 | 官方含义 | 数据角色 | 使用注意 |
|---|---|---|---|
study_id |
main 检查标识 | 当前或较晚时点 | 1.0.1 对部分 difference 行修正了它与 ref_id 的方向 |
subject_id |
MIMIC-CXR 患者标识 | 患者级分组键 | 应用于防止同患者跨集合泄漏 |
ref_id |
reference 检查标识 | 较早时点 | 不能与 main 随意交换 |
question_type |
问题类别 | 任务路由 | 七类之一,difference 才需要双图语义 |
question |
英文问题文本 | 模型文本输入 | 由模板与中间信息生成 |
answer |
英文答案文本 | 监督目标 | 由 KeyInfo 决定,不是逐题自由撰写 |
split |
train、val 或 test | 官方划分 | 复现时保留,不要重新随机切行 |
2.3 mimic_all.csv 的映射职责
mimic_all.csv 不是最终标签表,而是把几个命名空间接起来的桥。subject_id 标识患者,study_id 标识一次影像研究,dicom_id 指向具体胸片对象;view 记录 AP 或 PA 视图,study_date 与 study_order 支撑时间排序,split 保留 MIMIC-CXR-JPG 的参考划分。文件还带有一组从 MIMIC-CXR-JPG 取得的胸部所见标签,官方明确说它们只供参考。
| 字段组 | 包含内容 | 主要用途 | 不能据此断言的事 |
|---|---|---|---|
| 患者键 | subject_id |
患者级分组与追踪 | 不能推出公开身份或完整临床轨迹 |
| 检查键 | study_id |
连接报告与问答 | 不能直接定位单张像素文件 |
| 图像键 | dicom_id |
回源 DICOM 或 JPG | 当前包并未复制对应图像 |
| 时间字段 | study_date、study_order |
确立检查先后 | 不提供两次检查之间的治疗事件 |
| 视图字段 | view |
生成和核对 view 问题 | 只列 AP 或 PA,不代表上游全部投照类型 |
| 参考标签 | 胸部所见与支持装置等标签列 | 自动检查与对照 | 不是本数据集新做的人工标签 |
| 划分字段 | split |
保留上游 train/val/test 信息 | 与最终问答 split 的角色需在代码中核对 |
2.4 all_diseases.json 的 KeyInfo 解剖
KeyInfo 以研究为中心,记录病名实体和相关属性。病名在对象中既有原始或标准名称,也可能有第二组位置、类型、程度与后置位置字段,用于容纳同一异常的多个描述。no_entity 则保存被识别为不存在的疾病名称。这个结构让 presence 问题可以获得否定答案,也让 location、type、level 问题有明确来源。
| KeyInfo 信息 | 含义 | 参与的问题 | 主要边界 |
|---|---|---|---|
study_id |
研究标识 | 全部类别的连接键 | 不是 DICOM 标识 |
subject_id |
患者标识 | 配对与分组 | 不是公开身份信息 |
disease name / entity_name |
异常标准名称 | abnormality、presence、difference | 依赖关键词库覆盖 |
Location / Location2 |
解剖位置 | location、difference | 是文本属性,不是坐标 |
Type / Type2 |
异常类型 | type | 取决于报告是否明确写出 |
Level / Level2 |
程度表达 | level、difference | 不是统一量化测量值 |
post_location / post_location2 |
病名之后出现的位置表达 | location | 为处理语序而单列 |
no_entity |
被识别为不存在的异常列表 | presence | 否定抽取错误会直接进入答案 |
2.5 七类问题的功能差异
七类名称不是七套彼此独立的数据。abnormality 询问看到了什么异常,presence 判断某一异常是否存在,view 询问投照方向,location、type、level 分别问部位、类型和程度;difference 比较 main 与 reference。官方论文强调,前六类面向 main,只有最后一类把两次检查共同作为语义输入。
| 类别 | 中文理解 | 所需影像 | 答案来源 |
|---|---|---|---|
| abnormality | 当前片有哪些异常 | main | main 的 KeyInfo 正性所见 |
| presence | 指定异常是否存在 | main | 正性实体与 no_entity |
| view | 当前片为何种投照视图 | main | mimic_all.csv 的 view |
| location | 异常位于哪里 | main | Location 与后置位置属性 |
| type | 异常属于何种类型 | main | Type 属性 |
| level | 异常达到何种程度 | main | Level 属性 |
| difference | 与较早检查相比有什么变化 | main + reference | 两次 KeyInfo 的比较结果 |
2.6 一组记录的完整解剖
一组 difference 数据可理解为四层连接。第一层用 subject_id 保证两次检查属于同一患者;第二层用 ref_id 和 study_id 固定时间方向;第三层分别到 mimic_all.csv 找到影像标识并回源上游胸片;第四层把问题与由两次 KeyInfo 比较得到的答案送入模型。任何一层断开,都不能完整复现视觉问答。
import pandas as pd
qa = pd.read_csv("mimic_pair_questions.csv")
meta = pd.read_csv("mimic_all.csv")
diff = qa.loc[qa["question_type"].eq("difference")].copy()
main_meta = meta[["subject_id", "study_id", "dicom_id", "view"]].rename(
columns={"dicom_id": "main_dicom_id", "view": "main_view"}
)
ref_meta = meta[["subject_id", "study_id", "dicom_id", "view"]].rename(
columns={"study_id": "ref_id", "dicom_id": "ref_dicom_id", "view": "ref_view"}
)
paired = diff.merge(main_meta, on=["subject_id", "study_id"], how="left")
paired = paired.merge(ref_meta, on=["subject_id", "ref_id"], how="left")
#-- 同一研究可能映射到多幅影像,合并后的行数不应被当成原始问答规模
print(paired[["study_id", "ref_id", "main_dicom_id", "ref_dicom_id"]].head())
这段代码只演示键关系,不宣称一个 study 固定只有一个 dicom_id。若研究含多个视图,必须事先定义选图规则,并把规则写入实验记录。把合并后重复行静默去重,会把未说明的投照选择伪装成数据清洗。
还要区分“问答行”“研究对”和“模型样本”三个单位。一对研究可以生成多种问题,因此多个问答行共享相同 main 和 reference;同一研究下若有多幅图,回源后一个研究对又可能展开成多种图像组合。训练代码通常要求每次迭代得到固定张数的图像,于是工程人员必须决定:为每个研究固定挑一幅图、把各视图分别展开,还是先在研究内聚合特征。三种做法都可行,但对应的模型样本单位不同,结果不能只用“用了官方全部数据”一句带过。
视图问题还带来一个不对称:view 类问题只询问 main,difference 类问题则可能面对前后视图不一致。若简单强制两时点都选 AP,可能排除没有同视图配对的研究;若允许 AP 与 PA 混合,模型需要把投照造成的心影大小和组织重叠变化与真正病灶变化分开。官方数据结构提供 view 供追踪,却没有替使用者规定唯一预处理答案。最稳妥的报告方式,是把选图规则作为模型定义的一部分,并保留被排除研究的标识清单,而不是把它隐藏在数据加载器里。
| 模型样本定义 | 每次输入 | 优点 | 代价 |
|---|---|---|---|
| 固定单视图配对 | main 一图 + reference 一图 | 结构简单,便于复现 | 需要声明视图优先级,可能丢弃研究内其他图像 |
| 多视图展开 | main/ref 的可用图像组合 | 保留更多像素证据 | 同一问答会重复出现,训练权重随图像数改变 |
| 研究内聚合 | 每个时点多图编码后聚合 | 更接近一次研究的完整信息 | 模型结构和显存需求更高 |
| 只用 main | main 一图 | 可作为消融对照 | 不再满足 difference 的双图定义 |
§3 它是谁的数据
3.1 作者与机构
PhysioNet 页面列出九位作者:Xinyue Hu、Lin Gu、Qiyuan An、Mengliang Zhang、Liangchen Liu、Kazuma Kobayashi、Tatsuya Harada、Ronald Summers 与 Yingying Zhu。页面所列机构跨越得克萨斯大学阿灵顿分校、RIKEN、东京大学、美国国立卫生研究院临床中心和日本国立癌症研究中心研究所。PhysioNet 是托管与发布平台,不应替代作者团队成为“原始采集医院”。原始胸片及报告来自 MIMIC-CXR,Medical-Diff-VQA 是其派生资源。
| 角色 | 实体 | 在数据链中的职责 |
|---|---|---|
| 数据集作者 | Hu 等九位研究者 | 设计任务、抽取结构、生成问答、发布代码与资源 |
| 上游数据贡献者 | MIMIC-CXR 团队及其临床来源 | 提供去标识化胸片和自由文本报告 |
| 参考标签来源 | MIMIC-CXR-JPG | 提供元数据与结构化标签供检查和连接 |
| 托管平台 | PhysioNet | 版本管理、凭证访问、许可与 DOI |
| 方法论文出版 | ACM SIGKDD 2023 | 发表任务、数据集和 EKAID 基线方法 |
3.2 名称与版本时间线
论文最初把资源称为 MIMIC-Diff-VQA,官方仓库路径也沿用旧名。PhysioNet 发布时采用 Medical-Diff-VQA,仓库 README 现已明确写出“Medical-Diff-VQA(originally MIMIC-Diff-VQA)”。两者是同一实体的名称演变,不是两个可合并的数据集。
| 日期 | 事件 | 核实意义 |
|---|---|---|
| 2023 年 7 月 22 日 | 论文预印本首版提交 | 可见最初的 MIMIC-Diff-VQA 名称 |
| 2023 年 8 月 | 论文在 KDD 2023 发表 | 给出任务设计、构建方法与基线 |
| 2023 年 9 月 15 日 | PhysioNet 1.0.0 首次发布 | 获得正式版本 DOI 与受控访问页 |
| 2024 年 8 月 27 日 | arXiv 论文更新到 v2 | 论文版本变化不等于数据版本变化 |
| 2025 年 2 月 3 日 | PhysioNet 1.0.1 发布 | 修正部分 difference 配对方向及答案 |
3.3 采集场景与来源层次
Medical-Diff-VQA 没有新拍胸片。它在已经去标识化的 MIMIC-CXR 上选择同一患者不同检查,用报告文本构造问答。患者只有一次放射检查时,无法提供 reference,因此在构建阶段被排除。官方没有公布筛选后独立患者总数,也没有把上游患者总量声明为当前数据集患者量。
| 来源层 | 原始对象 | 当前资源继承了什么 | 没有继承成什么 |
|---|---|---|---|
| MIMIC-CXR | 胸片与报告 | 患者、研究、图像标识和报告语义 | 当前包内的图像副本 |
| MIMIC-CXR-JPG | JPG 与结构化标签 | 元数据、视图、参考标签和上游划分 | 新的人工作答 |
| KeyInfo | 报告抽取结果 | 异常、属性、否定所见 | 原报告全部叙述细节 |
| 问答生成层 | 模板与配对规则 | 问题、答案、类别和最终划分 | 医师逐题自由文本 |
3.4 隐私与访问边界
数据来自去标识化的 MIMIC-CXR,但“去标识化”不等于无条件开放。PhysioNet 将其置于 Credentialed Health Data License 1.5.0 下:申请者要成为凭证用户,签署同版数据使用协议,完成 CITI Data or Specimens Only Research 培训,并遵守不得尝试识别个人或机构、不得共享访问权、妥善保护受限数据等义务。许可还要求与基于数据的论文相关的代码贡献到面向研究社区的开放仓库。
§4 它最独特的东西
4.1 稀缺的不是胸片,而是有方向的前后配对
公开胸片库并不少,带病灶标签和报告的资源也不少。稀缺之处在于把同一患者两次检查按时间方向连接,再把“变化”变成明确问答。若只给两张无序图,模型可以学相似性,却不知道哪张是过去、哪张是现在;若只给报告里的比较句,又无法保证模型真正使用图像。Medical-Diff-VQA 同时提供患者键、两个研究键、问题和答案,使时间方向成为可审计的数据结构。
| 资源形态 | 是否同患者纵向 | 是否有明确时间方向 | 是否给问答 | 适合的任务 |
|---|---|---|---|---|
| 单图胸片分类库 | 通常否 | 否 | 否 | 当前异常识别 |
| 单图医学 VQA | 否 | 否 | 是 | 单时点问答 |
| 纵向报告语料 | 是 | 常在文本中 | 否 | 报告生成与变化抽取 |
| Medical-Diff-VQA | 是 | 是,reference → main | 是 | 差异视觉问答 |
| 病灶接地数据 | 可有可无 | 不一定 | 可有 | 框、掩码或短语定位 |
4.2 七类问题把“识别”和“比较”放在同一接口
前六类问题可训练 main 图像的基本读片能力,difference 再要求比较。这个组合使研究者可以做逐级实验:只训练当前状态、只训练变化、联合训练、冻结单图编码器后增加比较模块。统一字段降低了任务切换成本,但也容易造成一个误区:若把前六类与 difference 混在一起只报一个总分,模型可能靠数量更多或语言更简单的类别掩盖差异推理不足。正确做法是预先声明评价单位与类别边界,而不是把所有行当成同质样本。
4.3 时间顺序本身就是标签的一部分
1.0.1 的修订揭示了一个关键事实:study_id 与 ref_id 不是两个可交换的输入槽。对于“与参照片相比发生了什么”,交换两张图会把“出现”变成“消失”,把“加重”变成“减轻”。作者发现部分 difference 行的两个标识顺序不符合“reference 在前、main 在后”,因此交换标识并更新答案。数据治理上,这类修订不是元数据润色,而是监督信号修复。
| 操作 | 图像内容是否相同 | 问题文本是否可不变 | 答案是否应改变 |
|---|---|---|---|
| 保持 reference → main | 是 | 是 | 保持官方答案 |
| 交换 main 与 reference | 是 | 可以相同 | 多数变化语义需要反转或重写 |
| 只输入 main | 少一张图 | difference 文本仍在 | 无法可靠回答时间变化 |
| 只输入 reference | 少一张图 | difference 文本仍在 | 回答对象与问题时点错位 |
4.4 人工参与是“规则校正”,不是“逐题创作”
作者先用 ScispaCy 从报告中提取实体,再人工筛选常见、符合临床关注点的异常与属性词;抽取阶段使用正则,并结合词性、ScispaCy 实体检测和 MIMIC-CXR-JPG 标签做检查;发现遗漏或错误后修正规则,重复 Extract-Check-Fix。完成问答后,三名验证者随机检查 1,700 组问答及相关报告,1,657 组被判为正确。
这条证据链支持“经过人工参与和抽样验证”,不支持“每个答案由专家独立撰写”,也不支持“每个答案都由放射科医师确认”。PhysioNet 页面没有披露三名验证者的职业资质。引用质量时应写清验证对象、数量与判定方式,不把未披露的身份补成专家背书。
4.5 最小可信使用单元
| 使用单元 | 必须同时保留 | 原因 |
|---|---|---|
| 单图问答 | main 图像、question、answer、question_type | 确认问题只依赖 main |
| 差异问答 | main 图像、reference 图像、时间方向、question、answer | 任一缺失都会破坏比较语义 |
| 患者级划分 | subject_id、split |
防止同患者信息跨集合 |
| 规则复现 | 报告、词库、KeyInfo、生成代码与随机种子 | 重新生成存在随机选择 |
| 版本复现 | 数据版本、上游版本、修订说明 | 1.0.0 与 1.0.1 的方向不同 |
所谓“最小可信”,还要求问题和影像在推理时同时到场。仅把 question 输入语言模型,可以测出答案先验有多强,却不能作为主结果;仅把两张图输入变化描述模型,则改成了差异描述任务,不再受具体问题约束。一个严谨的基线应至少保留三条并行路径:完整双图加问题、只给 main 加问题、只给问题。后两条不是要争取高分,而是测量数据中的捷径。若只给问题也能回答大量样本,说明模板与答案之间存在强关联;若去掉 reference 几乎不影响 difference 结果,说明模型没有真正使用时间参照。
交换前后图是另一种方向性检查,但不能机械地要求每个答案都有可直接替换的反义词。“新出现”与“消失”可以反转,“改善”与“加重”可以反转,“没有变化”则应保持,复杂答案可能同时包含多个方向。安全做法是把交换实验定位为一致性审计:观察模型输出是否随输入顺序合理变化,再由预先定义的规则或人工样本判定,而不是自动生成一份所谓反向真值。
| 对照输入 | 想检验的能力 | 结果异常时的解释 |
|---|---|---|
| 双图 + 问题 | 完整差异问答 | 同时受视觉、时间与语言影响 |
| main + 问题 | 是否依赖 reference | 与完整输入接近可能存在单图捷径 |
| 仅问题 | 是否依赖语言模板 | 表现过强说明答案先验明显 |
| 交换双图 + 问题 | 是否理解时间方向 | 输出不变可能忽略先后;稳定类答案除外 |
| 双图 + 改写问题 | 是否依赖固定措辞 | 大幅波动提示模板过拟合 |
§5 怎么拿到
5.1 先取得两层权限
第一层是 Medical-Diff-VQA 自身:登录 PhysioNet,完成凭证要求、指定培训和数据使用协议。第二层是图像上游:问答包不含像素,视觉训练还需具备 MIMIC-CXR 或 MIMIC-CXR-JPG 的合法访问权。两层都完成后,才能把问答表里的键解析成模型输入。
| 步骤 | 目标 | 完成标志 | 常见卡点 |
|---|---|---|---|
| 注册 PhysioNet | 建立账户 | 可登录个人主页 | 邮箱与身份信息未完成 |
| 完成培训 | 满足受控数据要求 | CITI 记录有效 | 培训类别选错或过期 |
| 签署协议 | 接受 1.5.0 数据使用义务 | 项目页显示有权限 | 只申请了上游,未申请派生资源 |
| 获取问答包 | 下载 CSV、JSON 与词库 | 本地文件可校验 | 地区或策略限制导致页面不可用 |
| 获取胸片 | 回源 DICOM 或 JPG | 标识可解析到图像 | 只有问答权限,没有上游权限 |
5.2 下载时保留版本目录
凭证访问不适合把密码写入脚本或笔记。命令行下载可以让工具交互式询问密码,并把版本号保留在本地目录名中。若所在地区被 PhysioNet 策略限制,应停止尝试绕过,改在获准环境中按平台流程访问。
export PHYSIONET_USER="your_username"
wget -r -N -c -np --user "$PHYSIONET_USER" --ask-password \
"https://physionet.org/files/medical-diff-vqa/1.0.1/"
下载后先列目录,不要根据文档中的单一拼法直接移动文件。尤其要检查最终问答文件究竟采用 mimic_pair_questions.csv 还是页面目录树所写的另一名称,并把观察到的真实文件名写入运行清单。
5.3 流式读取与类型控制
患者和研究标识只是键,不参与数值运算。读取 CSV 时将这些字段按字符串保留,可避免导出时出现科学计数或被误作连续变量。大文件可按块遍历;块大小属于工程参数,不应被写成数据集固有规格。
import pandas as pd
usecols = [
"subject_id", "study_id", "ref_id",
"question_type", "question", "answer", "split"
]
dtypes = {
"subject_id": "string",
"study_id": "string",
"ref_id": "string",
"question_type": "category",
"question": "string",
"answer": "string",
"split": "category",
}
for chunk in pd.read_csv(
"mimic_pair_questions.csv",
usecols=usecols,
dtype=dtypes,
chunksize=100_000,
):
#-- 这里只做结构校验,不计算类别构成或答案统计
required = set(usecols)
if set(chunk.columns) != required:
raise ValueError("unexpected columns")
5.4 回源图像不能只按 study_id 猜路径
MIMIC-CXR 的文件组织需要 subject_id、study_id 与 dicom_id 共同参与。一个研究可能含不同投照图像,模型若固定只取第一张,实际上引入了未声明的选择规则。比较任务还要处理 main 与 reference 视图不同、体位不同和成像范围不同的问题;这些变化可能比病灶变化更显眼。
| 回源决策 | 可选做法 | 必须记录的边界 |
|---|---|---|
| DICOM 还是 JPG | DICOM 保留原始信息,JPG 便于训练 | 上游版本与像素预处理不同 |
| 多图研究如何选图 | 按 AP/PA、固定优先级或全部保留 | 选择规则会改变样本单位 |
| 前后视图不一致 | 保留并建模,或按规则排除 | 不能悄悄把视图差异当病灶差异 |
| 图像尺寸处理 | 等比缩放、填充、裁剪 | 几何变换可能破坏细小异常 |
| 标识缓存 | 建立只含去标识键的映射表 | 受控文件仍须按许可保护 |
5.5 建立患者级与方向级断言
不要把行级随机切分当成新的独立划分。官方已经提供 split;若因研究问题必须重划,也应按 subject_id 分组。对 1.0.1 还应加入方向检查:reference 的检查顺序不得晚于 main。这个检查依赖 study_order 或上游日期,只用于发现结构错误,不应自动交换并覆盖官方答案。
qa = pd.read_csv("mimic_pair_questions.csv", dtype="string")
meta = pd.read_csv(
"mimic_all.csv",
dtype={"subject_id": "string", "study_id": "string"},
)
order = meta[["subject_id", "study_id", "study_order"]].drop_duplicates()
main_order = order.rename(columns={"study_order": "main_order"})
ref_order = order.rename(
columns={"study_id": "ref_id", "study_order": "ref_order"}
)
check = qa.merge(main_order, on=["subject_id", "study_id"], how="left")
check = check.merge(ref_order, on=["subject_id", "ref_id"], how="left")
#-- 发现异常时保留原行并核对版本,不在检查脚本中静默改答案
bad_direction = check.loc[
check["question_type"].eq("difference")
& check["ref_order"].gt(check["main_order"])
]
if not bad_direction.empty:
raise ValueError("reference occurs after main; verify dataset version")
5.6 六个最容易踩的坑
| 坑 | 为什么会发生 | 正确处理 |
|---|---|---|
| 把 164,324 对写成 164,324 名患者 | 配对数与独立患者数混淆 | 患者数写“官方未披露” |
| 认为数据包自带胸片 | 项目标题强调图像任务 | 明确回源 MIMIC-CXR/JPG |
把 study_id 当 dicom_id |
两者都是数字式标识 | 经 mimic_all.csv 映射 |
| 把两张图交换后仍用原答案 | 忽略时间方向 | reference 固定早于 main |
| 重跑代码后要求逐行一致 | 问题选择含随机性 | 复现论文时使用官方固定文件 |
| 用目录树拼法写死文件名 | 官方页面存在命名不一致 | 启动时探测实际文件并记录 |
§6 与库内数据集的关系
6.1 相关数据集导航
| 站内资源 | 关系 | 什么时候改用或联用 |
|---|---|---|
| MIMIC-CXR | 原始 DICOM 胸片与报告来源 | 需要原始影像与报告时必须回源 |
| MIMIC-CXR-JPG | JPG、元数据与参考标签来源 | 训练图像模型或复核 mimic_all.csv 时联用 |
| MIMIC CXR 视觉问答评测集 | 同源但走小规模专家答案路线 | 需要人工答案评测而非大规模自动监督时改用 |
| MS-CXR-T | 纵向胸片视觉语言基准 | 需要专门的时间变化评测时对照 |
| Chest ImaGenome | 胸片解剖结构和场景图 | 需要结构化解剖关系时联用 |
| MS-CXR | 放射短语接地 | 需要病灶框与短语对应时改用 |
| VQA-RAD | 经典小规模放射 VQA | 需要多模态医学问答横向基准时对照 |
| VinDr-CXR | 医师标注检测与分类胸片 | 需要独立病灶框或外部图像域时联用 |
6.2 检索路径
检索“胸片问答”会同时找到单图 VQA、专家评测集和大规模自动派生资源;检索“纵向胸片”会找到报告、配对影像和时间变化基准。Medical-Diff-VQA 位于两条路径的交叉点:它既有问答接口,又显式连接较早与较晚检查。判断候选是否同类,先看三个字段是否同时存在——患者键、两个有方向的研究键、变化问题。缺一项,就不是完全相同的任务定义。
6.3 分工判据
| 研究目标 | 首选资源 | 理由 |
|---|---|---|
| 大规模训练纵向差异问答 | Medical-Diff-VQA | 有固定问答文件与有向配对 |
| 评估答案是否接近医师表述 | MIMIC CXR 视觉问答评测集 | 参考答案由持证放射科医师撰写 |
| 对异常短语做空间定位 | MS-CXR | 提供短语接地而非仅位置词 |
| 对解剖关系建图 | Chest ImaGenome | 场景图结构更直接 |
| 读取原始报告和图像 | MIMIC-CXR | 派生资源不能替代上游 |
| 用统一 JPG 与标签快速训练 | MIMIC-CXR-JPG | 图像和标签直接对齐 |
§7 质量评估与局限性
7.0 先校正评价对象
质量评价要分三层:图像质量属于上游 MIMIC-CXR;报告语义抽取质量属于 KeyInfo;问题与答案质量属于模板生成和配对方向。看到一组错误答案时,不能立刻归咎于问句模板。病名可能在报告中就没有明确表达,抽取规则可能漏掉否定,两个研究可能方向错误,回源时也可能选了不对应的图像。定位误差层级比单纯报一个模型分数更重要。
7.1 五维判断
| 维度 | 评价 | 证据 | 使用结论 |
|---|---|---|---|
| 任务新颖性 | 强 | 显式定义医学影像差异 VQA | 适合研究时间比较机制 |
| 规模 | 强 | 700,703 组问答、164,324 对配对 | 适合深度模型监督训练 |
| 可追溯性 | 较强 | 提供患者、研究、参照键和生成代码 | 仍需上游权限完成像素回源 |
| 标注直接性 | 中等 | 来自报告抽取和模板,不是逐题医师作答 | 适合弱监督,不宜称临床金标准 |
| 复现稳定性 | 中等 | 官方固定文件可复现;重新生成含随机选择 | 必须区分“复用数据”和“重建数据” |
7.2 两层人工参与不能混写
第一层发生在规则开发:人工审阅 ScispaCy 抽出的实体,筛选异常及属性关键词,利用检查结果修正规则。第二层发生在成品抽查:三名验证者读取随机问答和相应报告,标记正确或错误。前者提高词库与规则覆盖,后者估计成品可用性。二者都不是对全部 700,703 组逐行复核。
| 人工环节 | 查看对象 | 产出 | 不能外推的结论 |
|---|---|---|---|
| 关键词审阅 | 报告实体与表达变体 | disease、location、type、level 等词库 | 词库覆盖所有罕见表达 |
| 规则修正 | 抽取遗漏与潜在错误 | 更新后的正则与 KeyInfo | 中间 JSON 完全无误 |
| 成品抽查 | 1,700 组问答及报告 | 1,657 组被判正确 | 所有问答都经人工确认 |
| 版本修订 | 部分 direction 错误 | 交换标识并更新答案 | 其他类型不存在任何残余错误 |
7.3 可枚举的偏差来源
| 偏差来源 | 形成机制 | 会影响什么 | 缓解方式 |
|---|---|---|---|
| 报告可见性偏差 | 只抽取报告写出的所见 | 影像可见但未写出的异常缺失 | 用独立医师复核子集评价 |
| 关键词覆盖偏差 | 词库偏向常见表达 | 罕见同义词或复杂修饰被漏掉 | 扩展词库并版本化 |
| 否定范围错误 | 否定词与病名关系复杂 | presence 答案可能翻转 | 单独审核否定句样本 |
| 模板语言偏差 | 问句来自有限模板 | 模型可能学习措辞捷径 | 改写问题做鲁棒性测试 |
| 视图差异混杂 | 前后图可能为不同投照 | 模型把体位变化当病灶变化 | 报告并控制 view 组合 |
| 时间方向错误 | main/ref 键顺序不正确 | difference 答案语义反转 | 使用 1.0.1 并做方向断言 |
| 患者泄漏 | 同患者数据跨集合 | 评价高估泛化 | 保留官方 split 或患者级重划 |
| 上游域限制 | 来自单一 MIMIC-CXR 生态 | 跨医院表现未知 | 在独立机构数据外部验证 |
7.4 外部使用能证明什么
后续工作把 MIMIC-Diff-VQA 用于纵向胸片预训练、差异问答和多模态模型评估,说明其字段足以支撑研究流水线,也说明旧名仍广泛存在。外部论文的更高模型分数只能证明在其训练和评价口径下方法有效,不能反向证明问答标签没有噪声,更不能把自动派生答案升级为临床共识。引用外部结果时,应连同数据版本、使用的问题类别、图像选择与划分一起说明。
7.5 为什么局限不会随模型变大而消失
语言模型可以学会模板,视觉编码器可以学会常见病灶,但上游报告没写出的事实不会因参数增多自动成为监督信号;时间方向错了,模型越强越可能忠实拟合错误答案;前后投照差异没有控制,模型也可能把几何变化当作临床进展。更大模型解决的是表示能力,不是数据含义。真正的改进来自版本修复、透明的回源规则、患者级划分和独立人工验证。
评价设计也不能只盯着字符串是否完全一致。presence 一类短答案可以使用严格匹配,但 location、type、level 和 difference 可能存在同义表达;过度宽松的语义相似度又可能把临床方向相反的句子判成接近。一个可审计的方案应保留原始模型输出,先做大小写和标点等不改变医学含义的规范化,再按问题类别选择规则;对变化问题,至少把新增、消失、改善、加重、稳定等方向概念作为不可随意合并的边界。
任何自动评价都应留一组人工错误分析。抽取样本时不应按模型置信度挑“最有趣”的案例,而应事先固定研究标识;审查者同时看到 main、reference、问题、官方答案、模型答案和原报告,并记录争议来自图像难度、报告歧义、官方答案或模型。这样得到的是错误来源清单,不是新的大规模标签统计,目的在于判断下一步应改模型、改数据连接还是回报数据问题。
| 评价层 | 适合的检查 | 不宜单独依赖的做法 |
|---|---|---|
| 键与方向 | 患者一致、reference 早于 main、图像可回源 | 只看 CSV 能否被程序读入 |
| 短答案 | 规范化后的严格匹配与类别约束 | 不看问题类型的统一相似度 |
| 开放变化答案 | 方向概念检查、语义对照、人工复核 | 把相反变化当作词面接近 |
| 模型依赖性 | 去 reference、仅问题、交换图像等对照 | 只有完整输入的单一路径 |
| 临床可用性 | 独立数据与直接阅片验证 | 用自动派生答案自证临床正确 |
§8 生态位与历史
8.1 从单图问答到差异问答
早期医学 VQA 多把单张图与问题连接,重点是异常识别和解剖知识。Medical-Diff-VQA 把通用计算机视觉里的“找不同”问题改造成临床纵向比较:背景不再固定,患者体位、投照、缩放和器官形变都可能变化,真正的病灶改变反而很细微。论文提出 EKAID,以解剖结构、语义和空间关系构建图表示,正是为了应对这种差异。
| 阶段 | 任务焦点 | Medical-Diff-VQA 的位置 |
|---|---|---|
| 单图分类 | 是否存在某异常 | 提供 presence 等单图问题作为基础 |
| 单图 VQA | 围绕一张图回答多类问题 | 保留六类 main-only 问题 |
| 纵向报告生成 | 描述两次检查及变化 | 将变化压缩成针对性问题 |
| 差异 VQA | 直接回答前后改变 | 提供有向图像对与 difference 监督 |
8.2 数据版本与论文版本分开管理
arXiv v2、KDD 论文版本和 PhysioNet 1.0.1 是三套版本轴。论文更新不自动改变 CSV;GitHub 代码提交也不等同于发布一个新的受控数据版本。复现记录应至少写出 PhysioNet 版本、论文引用、代码提交和上游 MIMIC-CXR 版本,不能只写“使用 Medical-Diff-VQA”。
8.3 生态位
它位于 MIMIC-CXR 派生生态的中间层:上接原始胸片、报告和 JPG 标签,下接差异问答模型、纵向视觉语言预训练与评测。与小规模专家问答相比,它用自动化换规模;与报告生成相比,它用问题约束目标;与病灶接地相比,它给语义位置而不给像素区域。这个位置决定了它更像训练资源和研究基准,而不是独立的临床标注标准。
8.4 谁会真正需要它
| 角色 | 主要价值 | 最应关注的边界 |
|---|---|---|
| 医学多模态研究者 | 双图编码、时间注意力与变化生成 | 模板捷径和标签噪声 |
| 胸片算法工程师 | 在同一框架比较单图与纵向能力 | 上游图像回源与视图选择 |
| 数据工程人员 | 研究键、图像键和患者键的复杂连接 | 受控数据保护和版本追踪 |
| 临床 NLP 研究者 | 报告实体与属性抽取链 | 规则覆盖和否定范围 |
| 复现研究人员 | 官方固定问答和公开生成代码 | 随机生成与 1.0.1 修订 |
§9 使用指引
9.1 三种角色路径
| 角色 | 最短路径 | 不该跳过的检查 |
|---|---|---|
| 模型训练者 | 取官方问答 → 回源图像 → 按 split 训练 | 患者隔离、时间方向、图像选择 |
| 数据审计者 | 读词库 → 读 KeyInfo → 回看报告 → 核对问答 | 否定、位置语序、罕见表达 |
| 规则改造者 | 固定上游版本 → 修改 libs/规则 → 重建 KeyInfo → 生成问答 | 随机种子、派生版本名、差异日志 |
9.2 一个可复现的最短流程
第一步,记录 PhysioNet 1.0.1、上游 MIMIC-CXR/JPG 版本和下载日期。第二步,核对核心文件名与列名,保留官方原件只读副本。第三步,按 subject_id、study_id、ref_id 建立键检查,确认 difference 的 reference 早于 main。第四步,用 dicom_id 回源图像并声明多图研究的选图规则。第五步,保留官方 split,分别评估单图类别和 difference。第六步,把自动指标之外的错误样本回查到报告、KeyInfo 与图像,区分视觉错误、抽取错误和答案模板错误。
| 阶段 | 输入 | 输出 | 验收点 |
|---|---|---|---|
| 获取 | 受控项目页 | 原始 CSV/JSON/libs | 版本目录与文件完整 |
| 连接 | 问答表 + 元数据 | main/ref 图像索引 | 键关系可追溯 |
| 校验 | 索引 + study_order |
方向异常清单 | 不静默改答案 |
| 训练 | 图像对 + 问题 + 答案 | 模型与日志 | split 和患者边界固定 |
| 评估 | 官方测试数据 | 分类别与差异任务结果 | 不用总分掩盖差异能力 |
| 审计 | 错误案例 + 报告 + KeyInfo | 错误来源说明 | 不把标签噪声算成纯模型错误 |
9.3 引用方式
使用数据时应引用 PhysioNet 版本记录、原始 KDD 论文以及上游 MIMIC-CXR;若实际读取 MIMIC-CXR-JPG,还应引用该资源。版本 1.0.1 的数据引用以 Hu 等人在 PhysioNet 的 DOI 10.13026/e6dd-cn74 为准;方法论文 DOI 为 10.1145/3580305.3599819。引用中写出版本号比只写仓库名更重要,因为 1.0.1 含有会改变 difference 答案的方向修订。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 使用生成式语言模型协助组织中文说明、表格和代码示例,由编辑流程按官方来源逐项核对 |
| 数字来源 | 问答规模、配对规模、版本日期、核验数量、结构数量均来自 PhysioNet 页面、论文或官方仓库,不含自行推导的数据构成统计 |
| 文件核验 | 核对 PhysioNet 1.0.1 的 Data Description、Release Notes、许可页与官方 GitHub README、目录和生成脚本 |
| 不一致说明 | 官方页面正文和目录树对最终问答文件名写法不一致;生成脚本支持 mimic_pair_questions.csv,使用时仍以下载文件为准 |
| 论文信息 | 核对 KDD 2023 论文、arXiv 2307.11986 的名称、作者、任务和构建描述 |
| 未核验内容 | 因当前访问环境受地区策略限制,未登录下载受控数据文件,未对文件内容做二次统计;独立患者数与独立图像数官方未披露 |
| 图像 | 未生成、下载或展示任何胸片,也未处理可识别个人的信息 |
| 免责 | 该资源用于科研与教育,不构成临床诊断建议;数据按许可“原样”提供 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| “Medical-Diff-VQA 与 MIMIC-Diff-VQA 是两个库” | 是同一实体的新旧名称 | 官方仓库 README 明确写 originally MIMIC-Diff-VQA |
| “数据里有 164,324 名患者” | 这个数字是配对数,患者总数未披露 | PhysioNet Abstract 与 Data Description |
| “数据包包含 164,324 对胸片文件” | 包内提供问答、元数据和中间结构,图像须回源 | 官方 Folder structure 与 Usage Notes |
| “每个答案都是放射科医师写的” | 答案由 KeyInfo 与模板生成,人工参与规则修正和抽查 | 官方 Methods 与 Dataset Validation |
| “七类问题都需要两张图” | 前六类只面向 main,difference 才面向图像对 | 官方 Study pairing and question generation |
“study_id 就是图像文件 ID” |
它是研究标识,具体图像用 dicom_id |
mimic_all.csv 字段说明 |
| “交换两张图不影响训练” | 时间方向改变会反转变化语义 | 1.0.1 Release Notes |
| “重新跑代码会得到完全相同的问答” | 官方提醒问题选择含随机性 | Usage Notes 与仓库 README |
| “location 可以当病灶框” | location 是报告抽出的解剖词,不是像素坐标 | KeyInfo 字段说明 |
| “版本 1.0.0 与 1.0.1 只有文档变化” | 1.0.1 交换部分标识并更新受影响答案 | Release Notes |
| “去标识化意味着可以自由分享文件” | 仍受 Credentialed Health Data License 和 DUA 约束 | PhysioNet 许可页 |
| “问答规模大就能直接用于临床” | 自动派生标签、单一上游域和许可免责都限制临床外推 | Usage Notes、Ethics 与许可正文 |
FAQ
Q1:真实实体名到底是 Medical-Diff-VQA 还是 MIMIC-Diff-VQA?
正式的 PhysioNet 发布名是“Medical-Diff-VQA: A Large-Scale Medical Dataset for Difference Visual Question Answering on Chest X-Ray Images”。2023 年论文把它称为 MIMIC-Diff-VQA,GitHub 仓库路径也保留旧名;仓库当前 README 已明确说明 Medical-Diff-VQA 原名 MIMIC-Diff-VQA。因此检索文献时两个名字都要用,下载和引用受控数据时应以 PhysioNet 正式名及版本 1.0.1 为准。
Q2:下载问答文件后,为什么还不能训练视觉模型?
因为问答包交付的是连接信息和监督文本,不是胸片像素。最终 CSV 用 subject_id、study_id 与 ref_id 指向患者和两次研究,具体图像还需经 mimic_all.csv 找到 dicom_id,再到 MIMIC-CXR 或 MIMIC-CXR-JPG 读取。两套资源都属于受控健康数据,必须分别满足相应访问条件。只用 question 和 answer 训练出的系统是文本任务,不能据此声称获得视觉问答能力。
Q3:164,324 对是否意味着共有 328,648 张互不重复的胸片?
不能这样推。官方公布的是 main/reference 配对规模,没有公布独立图像数。某次检查可能在不同问答或配对中重复出现,一个 study 也可能映射到不止一个 dicom_id。把每对乘以两只得到图像出现槽位,不等于独立胸片数量。可靠写法是保留“164,324 对”这一官方口径,并把独立图像数和独立患者数写成未披露,除非未来官方明确发布。
Q4:为什么版本 1.0.1 必须优先于 1.0.0?
差异问答对时间方向敏感。官方 Release Notes 说明,1.0.1 对 mimic_pair_questions.csv 中部分 difference 记录交换了 study_id 与 ref_id,确保 reference 研究早于 main,并更新了受影响答案。这意味着修订触及监督语义,而不只是文件说明。若复现旧论文,应报告所用版本;若开始新实验,优先使用 1.0.1,并在加载阶段增加方向断言。
Q5:人工核验能否证明标签可当临床金标准?
不能。官方说明三名验证者随机检查 1,700 组问答及其报告,其中 1,657 组被判正确;这支持数据适合神经网络训练的判断,也显示仍有错误。页面没有说明验证者都是持证放射科医师,更没有说全部问答逐行复核。答案又来自报告抽取后的 KeyInfo,受到报告遗漏和规则覆盖限制。临床验证需要独立医师直接看图、明确判定规范并处理分歧。
Q6:官方究竟提供 mimic_pair_questions.csv 还是 mimic_vqa_pairs.csv?
PhysioNet 数据说明正文和官方生成脚本都使用 mimic_pair_questions.csv,但同一页面的目录树展示为 mimic_vqa_pairs.csv。这是一处明确的官方文档内部不一致。代码不应假设两者必有其一:下载后先读取真实目录,建立候选文件名检查,并把最终采用的名称记录到运行日志。引用数据规模和字段时不受这个拼法差异影响。
Q7:可以自己修改词库并重新生成吗?
可以,官方专门提供七个词库 CSV 和生成代码,README 也给出准备 mimic_all.csv、生成 KeyInfo、再生成问答的步骤。但重新生成包含随机的问题选择,结果不会与官方固定文件逐行一致。修改后应保留原始版本、代码提交、词库差异、随机种子和生成日期,并给派生文件新的版本名,避免与 PhysioNet 1.0.1 混称。
Q8:最可信的评价方案是什么?
先保留官方划分并确认同一患者没有意外跨集合,再分别报告单图类别和 difference 任务,不用一个混合总分遮蔽时间推理。随后做三种对照:遮掉 reference 检查模型是否仍能回答,交换前后图检查答案方向是否响应,改写问题检查模板依赖。最后抽取错误案例回看两张图、原报告和 KeyInfo,把模型视觉错误、规则抽取错误、回源选图错误分别记录。
术语表
| 术语 | 含义 |
|---|---|
| Medical-Diff-VQA | PhysioNet 正式发布名,纵向胸片差异视觉问答数据集 |
| MIMIC-Diff-VQA | 论文与仓库沿用的旧名,与前者为同一实体 |
| Difference VQA | 给定主图、参照图和问题,回答两图差异的视觉问答任务 |
| main | 当前或较晚检查,最终文件以 study_id 表示 |
| reference | 较早检查,最终文件以 ref_id 表示 |
| MIMIC-CXR | 提供去标识化胸片与自由文本报告的上游数据库 |
| MIMIC-CXR-JPG | 提供 JPG、元数据与结构化参考标签的上游派生库 |
| KeyInfo | 从报告抽取的异常、位置、类型、程度和否定所见中间结构 |
| Extract-Check-Fix | 抽取、检查、修正规则并重复迭代的构建循环 |
subject_id |
去标识化患者键,用于同患者配对和划分 |
study_id |
main 放射研究键,不等同于具体图像键 |
ref_id |
reference 放射研究键 |
dicom_id |
上游具体 DICOM 图像标识 |
question_type |
七类问题的类别字段 |
split |
train、val、test 数据划分字段 |
| difference | 唯一显式要求同时比较 main 和 reference 的问题类别 |
| DUA | Data Use Agreement,受控健康数据使用协议 |
| CITI | PhysioNet 指定的人体研究数据培训体系 |
| EKAID | 论文提出的专家知识感知图表示基线方法 |
附录 A:核心数字核对表
| 数字 | 出处 |
|---|---|
| 700,703 组问答 | PhysioNet 1.0.1 Abstract、Data Description;KDD 论文摘要 |
| 164,324 对 main/reference 影像 | PhysioNet 1.0.1 Abstract、Data Description;KDD 论文摘要 |
| 7 类问题 | PhysioNet Methods 与论文数据集章节 |
| 3 个主要数据文件 | PhysioNet Data Description |
| 7 个关键词库 CSV | PhysioNet Libs 与 Folder structure;官方 GitHub 目录 |
| 7 个最终问答字段 | PhysioNet 对 mimic_pair_questions.csv 的字段说明 |
| 8∶1∶1 的 train/val/test 结构比例 | KDD 论文 MIMIC-Diff-VQA dataset 章节 |
| 3 名人工验证者 | PhysioNet Methods 与论文 Dataset Validation |
| 1,700 组随机核验问答 | PhysioNet Methods 与论文 Dataset Validation |
| 1,657 组被判正确 | 论文验证表与 PhysioNet 验证描述 |
| 2023 年 9 月 15 日首发 | PhysioNet 1.0.0 版本页 |
| 2025 年 2 月 3 日最近改动 | PhysioNet 1.0.1 版本页与官方 GitHub 提交 |
| 1.0.1 当前版本 | PhysioNet 项目页与 Release Notes |
| 10.13026/e6dd-cn74 | PhysioNet 1.0.1 版本 DOI |
| 1.5.0 许可与数据使用协议 | PhysioNet Access、License 与 DUA 页面 |
导航说明:若目标是读取原始胸片与报告,先转到 MIMIC-CXR;若需要 JPG 与结构化标签,转到 MIMIC-CXR-JPG;若需要小规模医师答案评测,转到 MIMIC CXR 视觉问答评测集;若需要像素级或框级定位,转到 MS-CXR、Chest ImaGenome 或 VinDr-CXR。Medical-Diff-VQA 最适合保留在“同患者、两时点、有方向、可提问”的纵向比较位置。

