信息速览
胸片报告生成这个方向之所以先跑起来,不是因为胸部影像最复杂,而是因为配对了图像的报告文本最容易拿到:一次检查一两张图、一份现成的放射报告,抓取与对齐都便宜。眼底荧光造影恰恰相反。它是眼底检查里最贵、最有创、确认率最高的那种,荧光素钠打进血管之后要在几十秒里连续拍下动脉前期、动脉期、动静脉期、静脉期与晚期,一次检查留下几十张图;医师要把这几十张图看完,挑出典型的几张,再写成一段包含所见与印象的报告。也正因为贵、有创、且有人对荧光素过敏,它做不了大规模筛查,公开数据的采集成本一直很高。结果是:最需要自动报告生成的这个场景,长期没有一个能同时给出图像、报告与解释标注的公开基准。
读片负担是这条链路上的第二个瓶颈。官方背景一节描述的流程是:医师先浏览全部 FFA 图像,再按自己的观察挑出一批典型图像,最后据此写诊断报告。三步里有两步是纯人工的,而一次检查留下的图像量让第一步尤其耗时。这也决定了自动化的合理目标不是直接给出诊断,而是先把几十张图压缩成一段有结构的描述,把医师从看完所有图这一步里解放出来。FFA-IR 把描述病灶的大小、位置与期别直接写成标注目标,正是照着这个目标设计的。
FFA-IR 眼底报告基准就是冲着这个空档来的:它把 766 份报告、47,247 张造影图与 46 类病灶的框级标注打包在一起,并且每份报告同时给出中文原文与英译文本。
它的稀缺性有代价。当前版本 1.1.0 是 2025 年 1 月整体换源后的产物,规模比 2021 年的 1.0.0 版小了一个数量级;它只有一家医院的数据;它是凭证化资源,匿名访问连文件目录都看不到。这些边界决定了它该怎么被用。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全名 | FFA-IR: Towards an Explainable and Reliable Medical Report Generation Benchmark |
| 中文通称 | 眼底荧光造影图像与报告基准 |
| 发布方 | PhysioNet;数据由武汉 Bright Eye Hospital 提供 |
| 首次发布 | 2021 年 9 月 21 日,版本 1.0.0 |
| 当前版本 | 1.1.0,2025 年 1 月 21 日发布 |
| 报告数 | 766 份 |
| 图像数 | 47,247 张眼底荧光造影图 |
| 病灶类别 | 46 类视网膜病灶 |
| 标注区域 | 12,166 个(官方摘要数值,与 1.0.0 同值,存疑见 §10) |
| 语言 | 中文原始报告 + 经 DeepL 机翻并由七名双语眼科医师校对的英文报告 |
| 单例图像量 | 官方称模型平均每个病例需读 80 张以上图像 |
| 采集时间 | 2016 年 11 月至 2021 年 12 月入院患者 |
| 采集机构 | 中国武汉 Bright Eye Hospital,单中心回顾性队列 |
| 文件格式 | 两个 JSON 文件加一个图像目录;图像为 JPG |
| 标注方式 | 七名双语眼科医师分标注组与验证组,标注最小外接矩形并给出类别 |
| 许可 | PhysioNet Credentialed Health Data License 1.5.0 |
| 访问门槛 | 凭证化用户 + CITI(Data or Specimens Only Research)培训 + 签署 DUA 1.5.0 |
| 标识符 | DOI 10.13026/f7w3-gm74(1.1.0);10.13026/k5rp-9h43(最新版) |
| 伦理批件 | 机构审查委员会 MR-42-23-023506 |
| 典型用途 | 可解释的医学报告生成、病灶检测与视觉定位、双语报告与多模态翻译 |
§1 它要解决的具体麻烦
1.1 医学报告生成缺的不是模型,是基准
自动医学报告生成(Medical Report Generation, MRG)从胸片起步,很快撞上两堵墙。第一堵是解释:模型输出一段通顺的文字,但没法指出这段文字对应图上的哪一块,临床不敢用。第二堵是评测:BLEU、ROUGE、METEOR 这些自然语言生成指标在医学文本上会给出与医师判断不一致的排序,两个模型谁更好,用自动指标说不清。官方摘要把这两点写得很直白——现有基准只提供图像与自由文本报告,既无可解释标注,也无可靠评测工具。
FFA-IR 的解法不是提出一个新模型,而是把基准本身补上两件东西:一是病灶级的框标注,让“解释”变成可比对的对象;二是双语报告,让同一份临床内容在两种语言下都能被生成与评测。它因此更像一把尺,而不是更多的粮。
这把尺的用法与常见做法相反。多数基准的设计逻辑是给足够多的样本、让模型自己学出映射;FFA-IR 的逻辑是给足够细的真值、让模型的每一句输出都能被核验。样本数与标注密度在这里此消彼长:请眼科医师在几万张图上逐个框出病灶,成本远高于抓取现成的报告文本,规模小是标注密度换来的代价,而不是疏漏。理解这一点,后面的取舍才能说得通:它为什么只有七百多份报告,为什么只有一家医院,为什么研究者应当把它当评测用而不是当训练粮。
1.2 为什么是眼底荧光造影而不是普通眼底照相
| 对比项 | 彩色眼底照相 CFP | 眼底荧光造影 FFA |
|---|---|---|
| 检查性质 | 无创、便宜、可筛查 | 有创、昂贵、流程复杂 |
| 信息维度 | 静态形态 | 动态过程,荧光素随血流充盈 |
| 时间结构 | 单帧 | 五期连续序列 |
| 独特可见内容 | 出血、渗出、色素改变 | 渗漏形态、无灌注区范围、新生血管性质 |
| 采集难度 | 低 | 高,且部分患者对荧光素过敏 |
| 公开数据可得性 | 相对充足 | 稀缺 |
官方背景一节给出的理由正是采集难度:FFA 成本高、有创、不适合大规模筛查,因此“大规模 FFA 图像与报告”这件事本身就难以完成。稀缺性既是它的门槛,也是它的价值。
1.3 三条常见的错误期待
第一条,期待它是“更多训练数据”。766 份报告的体量,在需要靠数据量换性能的路线里撑不住。它给的是标注密度与维度,不是样本数。
第二条,期待英文报告是人工翻译的平行语料。官方写明英文报告由 DeepL 自动翻译后再由双语眼科医师校对,是机翻加校对的产物。用它评估医学翻译质量时,参考译文本身带着机翻的句法痕迹。
第三条,期待病灶标注是像素级掩膜。官方写明医师标注的是最小外接矩形(minimum enclosing rectangle)。框可以做检测与视觉定位评测,做不了分割。
还有一种更隐蔽的期待:以为它提供了现成的训练验证测试划分。split 字段是 1.0.0 版文件清单里写明的内容,1.1.0 的官方描述并未提及。划分口径要自己定,也要在论文里写清楚。
1.4 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 带解释的医学报告生成 | 报告 + 病灶类别 + 病灶位置框 | 够,这是它设计的核心任务 |
| 病灶检测与定位 | 46 类病灶的最小外接矩形 | 够做检测与弱定位,不足以做分割 |
| 双语报告生成对比 | 同一病例的中英两份报告 | 够,官方称这是首个定性与定量评估语言影响的基准 |
| 多模态机器翻译 | 图像 + 双语平行文本 | 可做,但英文侧是机翻加校对 |
| 时序建模 | 一次造影的多帧序列,官方划分五期 | 可做,但期别未以字段形式给出 |
| 疾病分类训练 | 报告文本里含诊断语义,但无疾病标签字段 | 不够,需自建标签 |
| 大规模预训练 | 766 份报告、单中心 | 不够 |
| 跨中心泛化验证 | 单一医院 | 不够 |
| 罕见病灶研究 | 无对应内容 | 官方明确说明若干罕见病灶未覆盖 |
1.5 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做报告生成,想让模型输出可核对的解释 | 病灶框提供了视觉定位的真值,生成的描述可与框比对 | 先定义“生成的描述命中哪个框”的匹配规则,再谈指标 |
| 你嫌自动指标不可信,想换评测口径 | 双语 + 框标注让评测可以落在具体病灶上 | 用框级命中率与医师评价替代纯文本相似度 |
| 你在做眼底病灶检测,缺带报告的标注数据 | 46 类病灶框,且病灶在报告文本里被描述过 | 用报告文本做弱监督的类别先验,再回到框上评测 |
| 你在做医学文本的中文处理 | 中文原始报告 + 官方称提供的医学名词词汇表 | 用词汇表分词,别用通用分词器切医学名词 |
| 你在做跨语言医学生成 | 同一病例的中文与英文报告 | 注意英文侧是机翻加校对,结论要加限定 |
| 你要一个能写进论文的底子 | 官方给出完整引用格式与 DOI | 引 1.1.0 的 DOI,别引 1.0.0 的规模数字 |
1.6 一句话判断
它不适合当“更大的训练集”,而适合当“更严的考卷”:报告里写的每一个病灶,都能在图上的框里找到对应,写错了就对不上。
1.7 不适合谁:四条边界
不适合靠样本量换性能的项目。 766 份报告、单中心,训练深模型很快会触到天花板。
不适合做跨中心或多族群泛化结论。 官方局限一节第一条就是数据仅来自武汉一家医院。
不适合做罕见病灶的系统研究。 官方明确写了仍有若干罕见病灶未被收录。
不适合没有 GPU 预算的团队。 官方局限一节写明,模型平均每个病例要读 80 张以上图像,训练开销主要来自这个序列长度。
§2 数据构成与规格
2.1 三个组成部分
官方 File Overview 一节把 1.1.0 的内容列为三项:图像目录 FFAIR、报告文件 report.json、病灶标注文件 lesion_info.json。这是一个极简结构——没有单独的元数据表,没有影像头文件,也没有 README 式的字段说明文件被列出来。
| 组成部分 | 官方描述 | 说明 |
|---|---|---|
FFAIR |
一个包含全部图像的目录 | 官方未给出目录层级、文件命名规则与图像分辨率 |
report.json |
包含全部标注,含 case_id、中文报告、英文报告 | 官方只列了这三项信息 |
lesion_info.json |
键为 patient_id/image_id,值为该图中全部病灶的类别与位置 | 1.0.0 版同一文件的键写作 case_id/image_name |
两个 JSON 加一个图像目录,意味着数据模型是“病例—图像—病灶”三层:report.json 站在病例层,lesion_info.json 站在图像层,图像文件本身构成最底层。病例标识是把三层串起来的唯一主键。
这种极简结构有一个直接后果:没有独立的元数据文件,人口学信息不单独成表。1.0.0 版的 ffair_annotation.json 曾写明包含患者性别与年龄,换源之后这两项是否保留,从页面上看不出来。若研究需要按人群属性分层,或需要沿用官方划分做出可比结果,这两项都必须在拿到文件后自行确认。
2.2 字段与信息项字典
| 信息项 | 所在位置 | 取值形态 | 含义 | 使用注意 |
|---|---|---|---|---|
| 病例标识 | report.json |
官方写作 case_id | 病例主键,与图像归属对应 | 划分数据集时须按此分组 |
| 中文报告 | report.json |
自由文本 | 临床原始报告,官方称含所见与印象 | 官方未说明是否拆成独立字段 |
| 英文报告 | report.json |
自由文本 | DeepL 机翻后经双语眼科医师校对 | 非人工翻译 |
| 图像 | FFAIR 目录 |
JPG | 由医院影像存档对象转换而来 | 转换中像素值缺失者已被排除 |
| 病灶键 | lesion_info.json |
patient_id/image_id | 定位到具体一张图 | 1.0.0 版写作 case_id/image_name |
| 病灶值 | lesion_info.json |
列表 | 一张图上可有多个病灶 | 空列表意味着该图无标注病灶 |
| 病灶类别 | lesion_info.json |
46 类之一 | 如囊样黄斑水肿 CME、糖尿病黄斑水肿 DME | 官方未列出全部 46 类的名称表 |
| 病灶位置 | lesion_info.json |
最小外接矩形 | 医师标出的外接框 | 是框不是掩膜,框内不全是病灶 |
| 造影期别 | 无对应字段 | 未以字段给出 | 动脉前期、动脉期、动静脉期、静脉期、晚期 | 官方背景一节给出五期划分,但未以字段形式提供 |
需要说清的是,上表“使用注意”一列的几处谨慎表述并非多余:官方页面对 1.1.0 的文件描述比 1.0.0 简短,凡官方未写的,本文一律不补。
2.3 一份病例的完整解剖
一份病例由三件事构成:一份报告、一批图像、这批图像上的若干病灶框。三者的关系可以这样读:
case_id (病例层:report.json 的一行)
├── 中文报告:一段含所见与印象的临床文本
├── 英文报告:DeepL 机翻后经校对的对应文本
└── 图像序列(FFAIR 目录下归该病例的若干张 JPG)
├── 图像 A ── lesion_info.json["patient_id/图像A"] → [病灶1, 病灶2]
├── 图像 B ── lesion_info.json["patient_id/图像B"] → []
└── 图像 C ── lesion_info.json["patient_id/图像C"] → [病灶3]
一次造影会被拆成几十张图,这是它与胸片报告基准最不一样的结构差异:胸片侧的常见做法是每条报告对应一两张图,而这里一条报告要对上几十张图,且这些图之间有明确的时间先后——荧光素正在血管里往前走。
结构示意中的键名取自官方 File Overview 的表述,方括号内的取值形态为示意,官方页面未给出 lesion_info.json 中单个病灶元素的字段名原文。
2.4 病灶标注的层级与粒度
官方 Data Description 的第一句定下了标注的目标:生成的报告应当描述所检出病灶的大小、位置与期别,而不是预测疾病类别。这一句决定了标注是怎么做的,也决定了评测该怎么设计。
| 层级 | 内容 | 谁做的 | 可核验性 |
|---|---|---|---|
| 病例层 | 一份报告(中文 + 英文) | 临床医师书写,英文侧机翻加校对 | 报告文本本身即为真值 |
| 图像层 | 一批按时间排序的造影图 | 医院影像系统产出 | 与报告的对应关系靠 case_id |
| 病灶层 | 类别 + 最小外接矩形 | 标注组医师标注,验证组医师复核 | 框与类别可独立核验 |
| 语义层 | 病灶在报告文本中被描述 | 报告作者 | 文本与框的对应关系需自行建立匹配规则 |
标注流程上,官方写明邀请了七名双语眼科医师,分成标注组与验证组:标注组先标完全部数据,验证组再检查标注以减轻人为错误。同一批医师也承担了英文报告的校对工作。
标注粒度还带来一个容易被忽略的问题:一张图上可以没有病灶,也可以有多个同类病灶。官方写明同一张图上的全部病灶记在一个列表里,因此图像张数与框的个数是两个不同的量,混淆二者会让任何关于标注密度的说法失去意义。
| 问题 | 官方怎么写的 | 实际影响 |
|---|---|---|
| 一个病例标多少个框 | 未说明 | 无法从官方页面推算标注总数 |
| 一张图能否有多个同类病灶 | 值是一个列表,可含多个元素 | 同一图像上同类病灶会重复出现 |
| 没有病灶的图怎么记 | 未说明空列表的表示方式 | 需自行确认是无键还是空列表 |
| 框的坐标形式 | 只写最小外接矩形,未给坐标格式 | 需自行确认两点式还是四点式 |
| 类别的表示形式 | 未说明是索引还是名称 | 1.0.0 版曾有专门的索引对照表 |
2.5 五期与时序结构
眼底荧光造影是动态成像。荧光素钠随血流进入眼底血管,整个过程官方划分为五期:
| 期别(官方英文原文) | 中文通称 | 读什么 |
|---|---|---|
| Preaterial(官方原文拼写如此) | 动脉前期 | 充盈起始 |
| Arterial | 动脉期 | 动脉充盈形态 |
| Arteriovenous | 动静脉期 | 动静脉过渡 |
| Venous | 静脉期 | 静脉回流 |
| Late | 晚期 | 渗漏与积存 |
官方举了两个例子说明不同期看不同东西:从荧光素渗漏形态判断不同区域新生血管的性质,以及判断视网膜无灌注区的范围与大小。这意味着同样的病灶类别在不同期别上的表现可能差别很大——这既是时序建模的机会,也是标注一致性的风险点。官方页面没有说明病灶框标注是在哪一期的图像上做出的,这处空白是实质性的。同一个渗漏灶在动脉期与晚期的边界可以相差很多,晚期荧光素继续积存,渗漏范围看上去更大;若标注没有固定期别,同一类别的框在尺度上就不具备可比性,用它训练的定位模型会继承这份方差。反过来,若标注集中在某一期,模型在其他期上的定位表现就需要单独评测。此外,期别本身没有被做成可查询的字段。
2.6 与 1.0.0 版的结构差异
| 项 | 1.0.0 | 1.1.0 |
|---|---|---|
| 图像组织 | FFAIR 目录内为分卷压缩包 fair.tar.gz.*,官方给出 `cat FAIR.tar.gz.* \ |
tar -zxv` 解压命令,目录名即 case ID |
| 报告文件 | ffair_annotation.json,含 case_id、中文报告、英文报告、impressions、findings、split、FFA 图像名、患者性别与年龄 |
report.json,官方只列 case_id、中文报告、英文报告三项 |
| 病灶文件 | lesion_info.json,键为 case_id/image_name |
lesion_info.json,键写作 patient_id/image_id |
| 病灶索引表 | lesion_dict.json,给出索引到中英病名的对照 |
官方 File Overview 未列此文件 |
| 划分字段 | 官方称含 split | 官方未提 |
| 人口学字段 | 官方称含性别与年龄 | 官方未提 |
| 报告数 | 10,790 | 766 |
| 图像数 | 1,048,584 | 47,247 |
这张表是本文最实用的一张:1.0.0 的页面给出了远比 1.1.0 详细的文件描述,而 1.1.0 换源之后这些描述被压缩了。任何依赖 split 字段、性别年龄字段或病灶索引表的工作流,都不能默认是继承下来的。
其中最值得注意的是报告文件字段的收缩。1.0.0 的 ffair_annotation.json 把所见与印象做成独立字段,1.1.0 只说包含中文与英文报告。报告是否被拆成所见段与印象段,直接决定能不能分别评测描述得准不准与结论对不对,而这两件事在临床上不是一回事。
§3 它是谁的数据
3.1 贡献者与机构
官方页面列出十六位作者,机构横跨中澳两国:
| 机构 | 角色 |
|---|---|
| Monash University(数据科学与人工智能系) | 第一作者 Mingjie Li 等所在,论文与数据集的主要推动方 |
| 中山大学中山眼科中心 | Wenjia Cai、xin chen、zhong liu、Caineng Pan、Mengke Li 等所在,眼科临床与标注 |
| Sun Yat-sen University | yingfeng zheng、Yizhi Liu、Xiaodan Liang 等 |
| RMIT University | Flora Salim、Karin Verspoor、Xiaojun Chang |
| The University of Melbourne | Karin Verspoor |
| Beijing University of Technology | Tengfei Liu |
| Bright Eye Hospital,武汉 | 数据提供方 |
致谢部分写明工作受澳大利亚研究委员会 DECRA 项目 DE190100626 部分资助,并致谢武汉 Bright Eye Hospital 的数据采集支持、VoTT、Labelme 与 Rect Label 三个标注平台,以及 DeepL 的自动翻译支持。利益冲突一栏写无。
这份作者名单本身就是一条信息:临床侧集中在中山眼科中心与武汉的数据提供医院,算法侧集中在莫纳什大学与 RMIT。病灶标注由眼科医师完成、英文报告由双语眼科医师校对,这样的分工决定了标注的专业密度,也决定了规模上限:能做这件事的人很少,能做的量也就有限。
3.2 时间线
| 时间 | 事件 |
|---|---|
| 2021 年 9 月 21 日 | 版本 1.0.0 在 PhysioNet 发布,数据来自广州中山眼科中心,DOI 10.13026/ccbh-z832 |
| 2021 年 | 配套论文发表于 NeurIPS 2021 Datasets and Benchmarks Track(Round 2) |
| 2023 年 9 月 6 日 | 官方在 1.0.0 页面公告:应作者要求,因当地政策变化暂停下载 |
| 2025 年 1 月 21 日 | 版本 1.1.0 发布,整体换源为武汉 Bright Eye Hospital 数据,DOI 10.13026/f7w3-gm74 |
官方 1.1.0 的发布说明只写“整个数据集换成了新数据”“补充了图像的详细描述”“配套新批准的伦理审查”,没有说明换源与此前暂停下载之间的因果关系,本文不做推断。
3.3 采集场景
数据来自回顾性队列。官方写明采集对象是 2016 年 11 月至 2021 年 12 月期间在武汉 Bright Eye Hospital 入院的患者;伦理一节的写法为“2016 年 11 月至 2019 年 12 月到 2021 年”,与方法一节不一致,已列入 §10。研究遵循《赫尔辛基宣言》,取得机构审查委员会批件 MR-42-23-023506,图像与报告在分析前完成匿名化与去标识。
采集发生在真实的临床流程里,不是为研究专门设计的标准化采集。这一点直接带来两个后果:报告的写作风格因医师而异(官方局限一节第二条),图像的期别覆盖与张数因检查而异。
回顾性队列与前瞻性队列的差别,在使用者这一侧体现为三件事。第一,没有为研究统一采集协议,图像的期别覆盖、张数与拍摄参数随检查而变,任何依赖每个病例都有完整五期的假设都要先验证。第二,报告是诊疗的产物而不是为数据集写的,措辞随医师而变,同一个发现可以有多种写法,这既是文本多样性的来源,也是自动指标不稳的来源。第三,纳入与排除发生在数据进入数据集之前,官方列了三条排除标准但没给各条排除了多少,筛选过程本身可能引入选择偏倚。
3.4 来源层次与筛选漏斗
| 层次 | 内容 | 规模/性质 |
|---|---|---|
| 医院原始记录 | 报告(含所见、印象、临床信息)与 DOCAM | DOCAM 中存有临床信息与一张 FFA 图像的像素值 |
| 格式转换 | DOCAM 转为 JPG | 转换中像素值缺失的图像被排除 |
| 匹配 | 按 case ID 匹配报告与图像 | 无法匹配者被排除 |
| 完整性 | 报告须含所见与印象等关键信息 | 缺失者被排除 |
| 最终数据 | 报告 + 图像 + 病灶标注 | 766 份报告、47,247 张图像 |
官方在 1.0.0 页面给出了筛选前的基数(15,232 份报告、1,716,825 个 DOCAM),1.1.0 页面未给出筛选前的基数,只写明了三条排除标准。因此换源之后的“筛选漏斗”形状是未知的。
DOCAM 这一层值得单独说一句。官方称医院系统记录的 DOCAM 同时存放临床信息与一张 FFA 图像的像素值,最终发布的 JPG 由它转换而来,转换中像素值缺失的图像被排除。这意味着图像经历了一次格式转换,而被排除的那一批未必是随机的:转换失败往往与特定设备或特定参数相关。官方没有说明排除的规模。
§4 它最独特的东西
4.1 可解释标注:把解释变成可比对的对象
多数报告生成基准的真值只有一段文字。FFA-IR 在文字之外给了 46 类病灶与它们在图上的位置,于是“模型说的这个渗漏,到底指向图上哪里”第一次有了可核对的答案。官方把这层标注定位为连接视觉定位与语言信息的先验医学知识:病灶在报告里被描述过,框在图里被标出来,两者可以互查。
它的独特之处不在框本身有多精细——最小外接矩形是相当粗糙的表达——而在于它把“解释”从模型内部的热力图变成了一个外部可比对的对象。
评测的形状随之改变。纯文本相似度只能回答生成的报告像不像参考报告;有了框级标注,可以回答更具体的问题:报告里提到的渗漏是否对应图上的一个框,模型说黄斑区时位置是否落在黄斑附近,报告里写了三个发现是不是三个都命中。
| 评测对象 | 只有报告文本时 | 有病灶框时 |
|---|---|---|
| 文本流畅度 | 可评 | 可评 |
| 内容完整性 | 靠文本相似度近似 | 可按病灶逐条核对 |
| 位置正确性 | 无法评 | 可与框比对 |
| 幻觉 | 难以界定 | 报告提到而图上无框即可疑 |
| 漏诊 | 难以界定 | 有框而报告未提即漏 |
4.2 双语报告:把语言变成可变量
| 维度 | 中文侧 | 英文侧 |
|---|---|---|
| 来源 | 临床原始报告 | DeepL 自动翻译 |
| 人工介入 | 医师书写 | 七名双语眼科医师校对 |
| 附加资源 | 官方称提供含医学名词的词汇表以辅助分词 | 无 |
| 可研究问题 | 医学文本分词、术语抽取 | 跨语言生成质量、翻译模型的领域适应 |
官方称,配合双语报告,FFA-IR 是首个定性与定量评估不同语言影响的基准。对使用者而言,这句话的实操含义是:同一份临床内容可以用两种语言分别生成、分别评测,语言第一次成了一个可控变量,而不是混杂因素。这个说法的成立前提是两份报告内容对齐——而英文侧是机翻产物,因此任何关于“中文比英文难生成”的结论,都要先扣除翻译腔带来的影响。
4.3 多图病例:序列长度带来的任务形态
一个病例对应几十张图,官方写明模型平均每个病例要读 80 张以上。这把任务形态从“图像到文本”改成了“图像序列到文本”,与胸片报告生成的常见设定不同。机会在于时序信息确实携带诊断价值(同一病灶在不同期的渗漏形态不同),代价在于编码器必须处理长序列,官方也把这一点列为训练成本高企的原因。
长序列同时改变了数据划分的含义。按图像划分、按病灶划分、按病例划分,三条路在这里给出完全不同的结果:同一病例的相邻帧内容高度重叠,随机按帧切分等于把同一段影像的连续片段放进两侧。官方没有给出划分建议,但病例标识是唯一能切断这种重叠的键。
4.4 词汇表:中文医学文本处理的实操细节
官方写明,考虑到中文的特殊性,提供了一个含医学名词的词汇表来帮助研究者对中文报告做分词。这件事看起来小,实际上决定了中文侧实验能不能跑起来:通用分词器会把“黄斑囊样水肿”这类复合术语切碎,术语边界一旦错了,凡是依赖词级别的评测都会失真。官方未在 1.1.0 的 File Overview 中列出该词汇表的文件名与位置。
4.5 边界条件
| 边界 | 内容 | 后果 |
|---|---|---|
| 机构边界 | 仅武汉一家医院 | 无法做跨中心验证 |
| 病灶边界 | 若干罕见病灶未收录 | 稀有类别无法评测 |
| 语言边界 | 英文侧为机翻加校对 | 翻译评测结论须加限定 |
| 计算边界 | 平均每个病例 80 张以上图像 | 长序列编码,显存与时间是硬约束 |
| 结构边界 | 期别与期别归属无字段 | 时序建模需自行推断 |
§5 怎么拿到
5.1 凭证化门槛:四步
官方访问策略写明:只有签署了数据使用协议的凭证化用户才能访问文件。页面列出了三项硬性要求。
| 步骤 | 要求 | 说明 |
|---|---|---|
| 1 | 成为凭证化用户 | 需在 PhysioNet 完成身份验证 |
| 2 | 完成 CITI「Data or Specimens Only Research」培训 | 官方页面给出培训提交入口 |
| 3 | 签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0 | 项目级协议 |
| 4 | 获批后下载 | 未获批时文件目录返回拒绝响应 |
本文核验时,对 1.1.0 文件目录的匿名请求返回了拒绝响应,因此目录结构与文件体积未能核验。
5.2 目录结构(以官方描述为准)
ffa-ir-medical-report/1.1.0/
├── FFAIR/ #-- 全部造影图像,官方未给出子目录层级
├── report.json #-- case_id、中文报告、英文报告
└── lesion_info.json #-- 键为 patient_id/image_id,值为病灶类别与位置
1.0.0 版官方另有一行关键说明:FFAIR 内是名为 fair.tar.gz.* 的分卷压缩包,需先下载全部分卷再用 cat FAIR.tar.gz.* | tar -zxv 解包,解包后每个目录名即病例 ID。1.1.0 的官方描述没有提到压缩与解包,不要假定这条命令仍然适用。
5.3 下载
#-- 凭证化获批后,可用 PhysioNet 官方下载工具整库拉取
#-- 注意:1.1.0 官方未说明图像是否为分卷压缩包,与 1.0.0 不同
wget -r -N -c -np --user <用户名> --ask-password \
https://physionet.org/files/ffa-ir-medical-report/1.1.0/
5.4 读取两个 JSON
import json
#-- 报告层:按病例读取中英双语报告
with open('report.json', encoding='utf-8') as f:
report = json.load(f)
#-- 病灶层:键为 病例标识/图像名,值为病灶列表
with open('lesion_info.json', encoding='utf-8') as f:
lesion = json.load(f)
#-- 先看清键的实际写法,官方两版表述不同(patient_id/image_id 与 case_id/image_name)
keys = list(lesion.keys())[:3]
print(keys)
print(lesion[keys[0]])
读取之后第一件事不是建模,而是确认三件事:键的实际分隔符、单个病灶元素的字段名、以及报告记录里到底有哪些字段。官方页面没有给到这个粒度。
5.5 转表与对齐
import pandas as pd
#-- 把病灶字典摊平成表:一行一个框
rows = []
for img_key, items in lesion.items():
case_id, image_name = img_key.split('/', 1)
for it in items:
rows.append({'case_id': case_id, 'image': image_name, **it})
df = pd.DataFrame(rows)
#-- 与报告拼接:只保留有病灶框的图像所属病例
print(df.columns.tolist())
print(df['case_id'].nunique())
上面第二段打印出的病例数只用于确认拼接是否成功,不用于任何分布性结论。真正的建模前还有一步不能省:按 case_id 划分数据集,而不是按图像或按框划分。
5.6 五个坑
坑一,以为能匿名下载。 它是凭证化资源。未获批时文件目录直接拒绝,排期要把审批周期算进去。
坑二,沿用 1.0.0 的解包命令。 cat FAIR.tar.gz.* | tar -zxv 是 1.0.0 页面写明的操作,1.1.0 的官方描述只说 FFAIR 是存放图像的目录。先 ls 再决定。
坑三,用 1.0.0 论文里的规模数字。 10,790 份报告与 1,048,584 张图像属于 1.0.0;1.1.0 是 766 与 47,247。论文里写错规模是最常见也最难被审稿放过的一类错误。
坑四,假定 split、性别、年龄字段还在。 这些是 1.0.0 的 ffair_annotation.json 里写明的字段,1.1.0 的官方描述只列了三项。没有官方划分就意味着划分口径要自己定并在论文里写明。
坑五,按图像随机划分。 同一病例的几十张图来自同一次造影、对应同一份报告,随机切会让同一个病例的图同时出现在两侧,评测结果虚高。分组键只有一个:case_id。
§6 与库内其他数据集的关系
6.1 关系图谱
| 邻近方向 | 站内代表 | 关系 |
|---|---|---|
| 胸片报告生成 | openi-iu-xray | 同为影像配报告的基准,但无病灶框、单语、每例图像少 |
| 影像文本对齐与错误标注 | cxrgraph、rad-eval-x、cad-chest | 关注报告文本的结构化与错误谱,不含眼科影像 |
| 视觉语言模型的临床评测 | cxr-align | 评测口径设计的同类思路,模态与器官不同 |
| 眼科影像 | kg-retinal-image-dataset-of-infants-and-rop、ophora-160k、perg-ioba-dataset | 同属眼科,但分别是眼底分类、手术视频与电生理 |
| 影像与文本教学档案 | medpix-nlm、egd-cxr | 提供影像与文本或多模态过程数据,非报告生成基准 |
6.2 检索路径
如果你是从任务出发找数据,路径是:报告生成 → openi-iu-xray(胸片、英文)→ FFA-IR(眼底、双语、带框)。如果你的出发点是器官,路径是:眼科影像 → 眼底分类类数据 → FFA-IR(唯一带报告与病灶框的那一个)。
6.3 分工判据
| 若你要的是 | 选它 | 选别的 |
|---|---|---|
| 带病灶框的报告生成 | FFA-IR | 胸片侧基准普遍无框 |
| 中文医学报告文本 | FFA-IR | 多数公开报告基准为英文 |
| 大样本报告生成训练 | 否 | 胸片侧基准样本量更大 |
| 眼底疾病的分类标注 | 否 | 眼底分类类数据集更直接 |
| 分割掩膜 | 否 | 官方给的是外接矩形 |
| 可匿名下载 | 否 | 需选开放许可资源 |
§7 质量评估与局限性
7.0 前置校正:先确认版本
评估这份数据的第一步不是看质量,是看版本。1.0.0 与 1.1.0 的数据来源、规模、文件结构与伦理批件全都不同,1.0.0 页面还挂着 2023 年暂停下载的公告。凡是从二手文献里看到的规模数字,都要回到官方页面确认它描述的是哪一版。
7.1 五维评分
| 维度 | 评价 | 依据 |
|---|---|---|
| 规模 | 弱。766 份报告、单中心 | 官方摘要与局限一节 |
| 标注粒度 | 中上。46 类病灶 + 框级位置,双组复核 | 官方方法与数据描述 |
| 语言维度 | 强。中英双语并行,附中文词汇表 | 官方摘要与数据描述 |
| 时序维度 | 中。五期结构存在但无字段,需自行推断 | 官方背景一节 |
| 可获取性 | 弱。凭证化访问,审批周期未知 | 官方访问策略 |
五维里最容易被高估的是标注粒度,最容易被低估的是可获取性。标注粒度之所以被高估,是因为 46 类病灶听起来很细,但框的粒度、期别的一致性与类别清单的完整性这三处官方都没有交代。可获取性之所以被低估,是因为审批周期不在研究者控制之内,却足以改变一个项目的排期。
7.2 标注的两层人工
官方写明七名双语眼科医师分成标注组与验证组:标注组先标完全部数据,验证组再检查以减轻人为错误。这是一个两段式流程,比单人标注更可靠,但官方没有给出两组之间的一致率,也没有说明不一致时如何裁决。本文不做这方面的补充。
7.3 可枚举偏差
| 偏差来源 | 官方表述 | 影响 |
|---|---|---|
| 机构单一 | 数据仅来自武汉 Bright Eye Hospital | 设备、人群、书写习惯均单一 |
| 书写风格 | 报告出自临床实践,不同医师写作模式多样 | 自动指标会被风格差异扰动 |
| 病灶覆盖 | 仍有若干罕见病灶未被收录 | 稀有类别无法评测 |
| 病理分布 | 病灶在自然分布上不均 | 长尾类别样本不足 |
| 人群属性 | 性别与年龄等属性分布不均 | 官方引用 RadGraph 建议,要求审核跨属性的性能差异 |
| 版本偏差 | 1.0.0 与 1.1.0 的来源、机构与规模均不同 | 早期文献的基线成绩换源后不再可比 |
| 语言侧 | 英文为机翻加校对 | 语言对比结论须扣除翻译腔 |
版本偏差值得单独记一笔,它不在官方的局限列表里,却是这份数据最现实的陷阱:1.0.0 与 1.1.0 的数据来源、机构与规模都不同,早期文献里报告的基线成绩是在广州数据上跑出来的,换源之后这些数字不再可比。任何声称比某篇论文高出多少的说法,都要先确认对方用的是哪一版。
7.4 外部验证
官方未提供外部验证集,也没有跨机构的一致性检验,页面上找不到任何跨机构的标注一致性数字。能做的最接近外部验证的事,是在严格按病例分组的前提下报告跨折叠的方差,并把同一模型在中英两侧的表现当作一次语言维度的对照。跨机构泛化这件事,这份数据本身无法回答。能做的最接近外部验证的事,是在按 case_id 严格分组的前提下报告跨折叠的方差;跨中心泛化这件事,这份数据本身无法回答。
7.5 为何持续被引用
它占据的位置很窄但很实:唯一在眼底荧光造影这个模态上,同时给出图像序列、双语报告与病灶级框标注的公开基准。这个组合在别处拿不到——胸片侧的报告基准没有框,眼底侧的图像数据集没有报告。位置窄意味着竞争者少,也意味着它的局限会一直跟着它。
放在更长的时间线上看,它填补的是影像学里最难自动化的那一类检查的空档。自动化最先落地的往往是图像标准化程度高、报告模板化程度高的检查;FFA 两头都不占,图像是随血流变化的序列,报告是医师自由书写的段落。选择这样一个对象做基准,等于把任务难度整体抬了一档,也解释了为什么它的规模做不到胸片侧那种量级。
§8 生态位与历史
8.1 版本沿革
| 版本 | 日期 | 数据来源 | 规模 | 状态 |
|---|---|---|---|---|
| 1.0.0 | 2021-09-21 | 广州中山大学中山眼科中心,2016 年 11 月至 2019 年 12 月入院患者 | 10,790 份报告、1,048,584 张图像 | 官方公告自 2023 年 9 月 6 日起暂停下载 |
| 1.1.0 | 2025-01-21 | 武汉 Bright Eye Hospital,2016 年 11 月至 2021 年 12 月入院患者 | 766 份报告、47,247 张图像 | 当前版本,凭证化访问 |
两个版本的抽象文本高度相似,1.1.0 的摘要沿用了 1.0.0 的三点结构(大规模、可解释标注、双语报告),其中“12,166 个标注区域”这一数字两版完全相同,而报告数从 10,790 变为 766。这处不一致已列入 §10 与常见误读。
8.2 与会议和代码的关系
配套论文发表于 NeurIPS 2021 Datasets and Benchmarks Track(Round 2);官方代码仓库为 mlii0117/FFA-IR,框架继承自 R2Gen。仓库 README 里有一段值得注意的话:作者称 lesion_dict.json 在 PhysioNet 上缺失,正在与平台沟通更新,在更新前可通过邮件向作者索取。这解释了为什么 1.1.0 的 File Overview 没有列出病灶索引表。
8.3 生态位
在“影像 + 报告”这条线上,它的坐标是:模态最稀缺(眼底荧光造影)、标注最偏向解释(病灶框而非疾病标签)、语言维度最丰富(中英双语),同时规模最小、获取最难。它不是一个通用基准,是一个专门用来检验“模型能否把报告里的每一句话落回图上”的测试床。
8.4 谁在用
目标使用者有三类:做视觉语言模型与报告生成的研究者、做眼科影像算法的工程师、做医学文本处理与医学翻译的研究者。官方页面显示的项目浏览量为当前版本 174 次、全部版本 274 次(本文核验时刻的页面数值,随访问增长而变化)。
版本选择在这份数据上比在别处更重要。1.0.0 与 1.1.0 的数据来源不同,两位研究者引用的 FFA-IR 可能压根不是同一批数据;论文里只写名称不写版本,等于让读者自己去猜。官方在引用格式里把版本号写在标题之后,这也提示了正确的写法。
§9 使用指引
9.1 三种角色的路径
| 角色 | 最短路径 | 卡点 |
|---|---|---|
| 报告生成研究者 | 按 case_id 分组 → 用 report.json 训生成 → 用 lesion_info.json 评测解释命中 |
需要自己定义“生成文本命中框”的匹配规则 |
| 眼科影像工程师 | 把 lesion_info.json 摊平成检测标注 → 训练或微调检测器 → 与报告文本做一致性检查 |
框是外接矩形,不是掩膜 |
| 医学文本研究者 | 用官方词汇表切中文报告 → 与英文侧对齐 → 做术语抽取或翻译评测 | 英文侧是机翻加校对 |
三条路径有一个共同的前置动作:确认文件结构。1.1.0 的官方描述比 1.0.0 简短,任何基于旧版结构写的代码都要重看一遍键名、字段名与层级。这个动作不直接产出论文结果,但省下的调试时间通常远超预期。
9.2 最短流程
第一步,申请凭证化与培训,签协议。第二步,下载后先看 FFAIR 目录的实际组织方式,不要假定与 1.0.0 一致。第三步,读两个 JSON,确认键写法与字段名。第四步,按 case_id 划分。第五步,从“报告里的病灶描述能否命中框”这一个评测点开始,而不是从 BLEU 开始。官方摘要把基于自然语言生成指标的比较不可靠写成了立项理由之一,若评测仍从文本相似度起步,等于绕开了这份数据存在的意义。
还有一个动作常被跳过:把所用的版本号写进论文的实验部分。1.0.0 与 1.1.0 的规模、来源与文件结构都不同,只写 FFA-IR 三个字母而不写版本,别人无从判断结果落在哪一版上。
9.3 引用方式
官方页面给出的引用格式:
Li, M., Cai, W., Liu, R., Weng, Y., Liu, T., Wang, C., chen, x., liu, z., Pan, C.,
Li, M., zheng, y., Liu, Y., Salim, F., Verspoor, K., Liang, X., & Chang, X. (2025).
FFA-IR: Towards an Explainable and Reliable Medical Report Generation Benchmark
(version 1.1.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/f7w3-gm74
官方同时要求附加 PhysioNet 平台本身的引用(Pollard 等,2026,Nature Health,DOI 10.1038/s44360-026-00096-z)。若需引用方法学论文,对应的是 NeurIPS 2021 Datasets and Benchmarks Track 的版本。三者在正文里应分开标注:数据版本用前者,平台用中者,方法用后者。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑把关结构与事实 |
| 数字来源 | 规模、结构、边界三类数字全部取自 PhysioNet 官方页面,含摘要、背景、方法、数据描述、使用说明、发布说明与伦理各节;版本对比部分取自官方 1.0.0 页面 |
| 文件核验 | 未核验。本资源为凭证化访问,匿名请求文件目录返回拒绝响应,图像目录与两个 JSON 的实际内容均未能直接查看 |
| 不一致说明 | 采集时间跨度:方法一节写 2016 年 11 月至 2021 年 12 月,伦理一节写“2016 年 11 月与 2019 年 12 月至 2021 年”,官方页面内部写法不一致,本文采用方法一节的表述并在此标注 |
| 不一致说明 | 标注规模:1.1.0 摘要仍写 12,166 个标注区域,与 1.0.0 完全相同,而报告数由 10,790 变为 766,官方未说明该数字是否随换源更新 |
| 不一致说明 | 病灶键写法:1.1.0 写 patient_id/image_id,1.0.0 写 case_id/image_name;病灶索引表 lesion_dict.json 在 1.0.0 被列出而 1.1.0 未列,官方代码仓库亦说明该文件在平台上缺失 |
| 论文信息 | 仅核对官方页面与论文索引页显示的会议与年份信息,未读全文 |
| 未核验内容 | 图像分辨率与位深、FFAIR 目录层级与文件体积、单病例图像张数、report.json 是否含 split 与人口学字段、lesion_info.json 中单个病灶元素的字段名原文、46 类病灶的完整中英名称表、中文词汇表的文件位置与词项数、患者人数、性别与年龄构成、是否存在官方训练验证测试划分 |
| 图像 | 无配图;封面为生成式提示词,不含真实造影图像与可识别的个体 |
| 免责 | 本文不构成临床建议;数据使用须遵守 PhysioNet Credentialed Health Data Use Agreement 1.5.0 与许可 1.5.0 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 它能直接下载 | 凭证化资源,须完成 CITI 培训、签署数据使用协议并获批 | 官方访问策略一节 |
| 它有 10,790 份报告与一百多万张图 | 那是 1.0.0 的规模;1.1.0 是 766 份报告与 47,247 张图 | 官方两版摘要 |
| 英文报告是人工翻译的平行语料 | DeepL 自动翻译后由七名双语眼科医师校对 | 官方方法一节 |
| 病灶标注是分割掩膜 | 官方写明是最小外接矩形 | 官方数据描述一节 |
| 标注的目标是疾病分类 | 官方写明报告应描述病灶的大小、位置与期别,而非预测疾病类别 | 官方数据描述一节首句 |
| 一个病例一张图 | 一次造影留几十张图,官方称模型平均每例需读 80 张以上 | 官方局限一节 |
| 官方给了训练集与测试集划分 | split 字段是 1.0.0 的 ffair_annotation.json 才写明的内容,1.1.0 页面未提 |
官方两版 File Overview |
| 病灶索引表一定在数据里 | lesion_dict.json 见于 1.0.0 文件清单,1.1.0 未列,官方代码仓库称其在平台上缺失 |
官方 1.0.0 文件清单与代码仓库说明 |
| 图像是原始 DICOM | 由医院影像存档对象 DOCAM 转换为 JPG,转换中像素值缺失者已被排除 | 官方方法一节 |
| 造影期别是一个可查询字段 | 五期是官方背景中的过程划分,页面未给出对应字段 | 官方背景一节与文件清单 |
| 12,166 个标注区域对应 1.1.0 的新数据 | 该数字与 1.0.0 摘要完全相同,换源后是否更新未在页面说明 | 官方两版摘要 |
FAQ
Q1:只有 766 份报告,它还算一个基准吗?
算,但要看拿它考什么。它的设计目标不是给报告生成提供更大的训练集,而是提供一个能检验“生成的描述能不能落回图上”的测试床。766 份报告配上 46 类病灶的框级标注,足够支撑解释命中率这类评测;用来把模型规模往上堆则远远不够。官方在局限一节里自己写明了单中心、罕见病灶缺失与病理分布不均,这些限制决定了它适合做评测与小规模方法验证,不适合当预训练语料。
Q2:1.0.0 和 1.1.0 该用哪一个?
用 1.1.0,除非你的工作是复现 2021 至 2023 年间发表的、明确基于 1.0.0 的结果。理由有三:1.0.0 页面挂着 2023 年 9 月的暂停下载公告;1.1.0 是官方声明的整体换源版本,配套新的伦理批件;1.1.0 是当前版本,DOI 指向它。若是复现旧结果,务必在论文里写明版本,并且不要混用两版的规模数字。
Q3:12,166 个标注区域这个数字可信吗?
存疑,本文不做择一。官方 1.1.0 摘要里这一句与 1.0.0 完全一致,但同一份摘要里报告数已从 10,790 改为 766。若标注规模确实随换源重算过,两个版本恰好落在同一个整数上的可能性不高;更像是摘要的第三点未随换源改写。本文没有下载文件去点,凡是把这个数字写进论文的场合,建议核对 lesion_info.json 的实际记录条数并写明统计口径。
Q4:英文报告能当平行语料做医学翻译评测吗?
能,但结论要加限定。英文侧不是人工翻译,而是 DeepL 自动翻译之后由七名双语眼科医师校对。它因此带有两个特征:句法上更接近源语言的直译结构,术语上经过专业校对而相对可靠。用它评测医学翻译模型,测的是“模型能否接近一个机翻加人工校对的水平”,这与人工参考译文的标准并不等价。
Q5:病灶框能做分割吗?
不能直接用。官方写明医师标注的是最小外接矩形,框内包含的非病灶像素多少取决于病灶形状。可以做的是检测、定位与弱监督分割的起点;若要做像素级分割,需要额外的掩膜标注,这份数据里没有。
Q6:一个病例几十张图,怎么喂进模型?
官方自己把这个当成局限写了:模型平均每个病例要读 80 张以上图像,训练成本高。常见的处理思路是抽样、分阶段编码或按时序分桶,但官方页面没有给出推荐做法,也没有说明这几十张图在目录里如何排序。若你的方案依赖期别顺序,需要先确认图像名或目录顺序是否携带时间信息——这一点官方未说明,属于未核验内容。
Q7:凭证化申请要多久?
官方页面没有给出时限。能确定的是三项硬要求:成为凭证化用户、完成 CITI 的 Data or Specimens Only Research 培训并提交、签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0。排期时应把这三项视为串行环节,不要假设提交当天即可下载。
术语表
| 术语 | 解释 |
|---|---|
| FFA | 眼底荧光造影,Fundus Fluorescein Angiography,注射荧光素钠后连续拍摄眼底血管的动态检查 |
| CFP | 彩色眼底照相,Color Fundus Photography,无创的静态眼底成像 |
| 荧光素钠 | 注入静脉后随血流进入眼底血管的造影剂,部分患者会过敏 |
| 动脉前期 | 官方英文原文拼写为 Preaterial,指荧光素开始充盈之前的一段 |
| 动静脉期 | 动脉已充盈、静脉开始显影的过渡阶段 |
| 无灌注区 | 视网膜上血流未到达的区域,其范围与大小是 FFA 上的判读要点 |
| 新生血管 | 异常增生的血管,其性质可从荧光素渗漏形态判断 |
| CME | 囊样黄斑水肿,Cystoid Macular Edema,官方列举的病灶类别之一 |
| DME | 糖尿病黄斑水肿,Diabetic Macular Edema,官方列举的病灶类别之一 |
| MRG | 医学报告生成,Medical Report Generation,由医学图像自动生成报告文本的任务 |
| NLG 指标 | 自然语言生成的自动评测指标,官方指出其在医学报告上不可靠 |
| 最小外接矩形 | 能框住目标的最小轴对齐矩形,本数据的病灶位置表达形式 |
| 视觉定位 | 把文本片段对应到图像区域的能力,本数据的框标注使其可评测 |
| DOCAM | 官方用语,医院系统中存放临床信息与一张 FFA 图像像素值的存档对象 |
| 双语平行语料 | 同一内容在两种语言下的对照文本,本数据的中英报告构成一对 |
| DeepL | 本数据英文报告所用的自动翻译软件,官方致谢中列明 |
| 凭证化访问 | PhysioNet 对用户身份与资质核验后开放受限数据的机制 |
| CITI | 研究伦理与合规在线培训体系;本数据要求其 Data or Specimens Only Research 课程 |
| DUA | 数据使用协议;本数据采用 PhysioNet Credentialed Health Data Use Agreement 1.5.0 |
| IRB | 机构审查委员会;本数据的批件号为 MR-42-23-023506 |
| NeurIPS D&B | NeurIPS 的数据集与基准赛道,本数据配套论文的发表处 |
| R2Gen | 报告生成的主流基线框架,本数据官方代码仓库继承其结构 |
| RadGraph | 放射报告实体关系标注工作,官方引用其关于审核跨属性性能差异的建议 |
| 去标识 | 移除可识别个人信息的过程;官方声明图像与报告在分析前已完成匿名化 |
附录 A:核心数字核对表
| 数字 | 出处 |
|---|---|
| 766 份报告 | 官方 1.1.0 摘要 |
| 47,247 张 FFA 图像 | 官方 1.1.0 摘要 |
| 46 类视网膜病灶 | 官方 1.1.0 摘要与数据描述 |
| 12,166 个标注区域 | 官方 1.1.0 摘要,与 1.0.0 同值,存疑 |
| 平均每例 80 张以上图像 | 官方 1.1.0 局限一节 |
| 七名双语眼科医师 | 官方 1.1.0 方法一节 |
| 五个造影期别 | 官方背景一节 |
| 2016 年 11 月至 2021 年 12 月入院 | 官方 1.1.0 方法一节 |
| 伦理批件 MR-42-23-023506 | 官方伦理一节 |
| 1.1.0 发布日期 2025 年 1 月 21 日 | 官方页面版本区 |
| 1.0.0 发布日期 2021 年 9 月 21 日 | 官方页面版本区 |
| 1.0.0 的 10,790 份报告 | 官方 1.0.0 摘要 |
| 1.0.0 的 1,048,584 张图像 | 官方 1.0.0 摘要 |
| 1.0.0 筛选前 15,232 份报告 | 官方 1.0.0 方法一节 |
| 1.0.0 筛选前 1,716,825 个 DOCAM | 官方 1.0.0 方法一节 |
| 1.0.0 伦理批件 2021KYPJ039 | 官方 1.0.0 伦理一节 |
| 2023 年 9 月 6 日暂停下载 | 官方 1.0.0 页面公告 |
| DOI 10.13026/f7w3-gm74(1.1.0) | 官方发现栏 |
| DOI 10.13026/k5rp-9h43(最新版) | 官方发现栏 |
| DOI 10.13026/ccbh-z832(1.0.0) | 官方 1.0.0 页面 |
| 许可 PhysioNet Credentialed Health Data License 1.5.0 | 官方许可栏 |
| 协议 PhysioNet Credentialed Health Data Use Agreement 1.5.0 | 官方协议栏 |
| 培训 CITI Data or Specimens Only Research | 官方培训要求栏 |
| 资助 ARC DECRA DE190100626 | 官方致谢一节 |
| 标注平台 VoTT、Labelme、Rect Label | 官方致谢一节 |
| 浏览量 174(当前版本)/ 274(全部版本) | 官方发现栏,核验时刻数值 |
| 平台引用 DOI 10.1038/s44360-026-00096-z | 官方平台引用块 |
附录 B:数字的来源分层
第一层,官方页面。 报告数、图像数、病灶类别数、单例图像量、采集时间跨度、采集机构、文件格式与组成、标注流程与人数、许可与培训要求、伦理批件号、两个版本的数字对象标识符、发布与暂停下载的时间点。这些构成正文的主要依据。
第二层,官方 1.0.0 页面与官方代码仓库。 用于版本对比:1.0.0 的规模、筛选基数、文件清单与解包命令,以及代码仓库中关于病灶索引表缺失的说明。凡与 1.1.0 页面冲突处,一律以 1.1.0 页面为准。
第三层,未核验。 需要打开文件才能得到的数字,包括图像分辨率与位深、目录体积与层级、单病例图像张数、两个 JSON 的确切字段与元素结构、46 类病灶的完整名称、中文词汇表的词项数、患者人数与人口学构成、是否存在官方划分。这些在正文中一律只做结构性表述,不做数值断言。
附录 C:任务代码
任务一:确认两个 JSON 的实际结构
import json
#-- 先看清键与字段名,官方两版的键写法不同
report = json.load(open('report.json', encoding='utf-8'))
lesion = json.load(open('lesion_info.json', encoding='utf-8'))
print(type(report), len(report))
print(json.dumps(report[0], ensure_ascii=False)[:400])
k = next(iter(lesion))
print('键样例:', k)
print('值样例:', json.dumps(lesion[k], ensure_ascii=False)[:400])
任务二:按病例划分,避免同一病例的图像跨集
import json
from sklearn.model_selection import GroupKFold
lesion = json.load(open('lesion_info.json', encoding='utf-8'))
#-- 从键中切出病例标识,作为分组键
rows = []
for key, items in lesion.items():
case_id = key.split('/', 1)[0]
rows.append({'case_id': case_id, 'image': key, 'n_lesion': len(items)})
groups = [r['case_id'] for r in rows]
#-- 分组交叉验证:同一病例的图像不会同时出现在两侧
gkf = GroupKFold(n_splits=5)
for fold, (tr, te) in enumerate(gkf.split(rows, groups=groups)):
print(fold, len(tr), len(te))
任务三:把病灶框与报告文本对齐
import json
report = json.load(open('report.json', encoding='utf-8'))
lesion = json.load(open('lesion_info.json', encoding='utf-8'))
#-- 按病例聚合该病例下全部图像的病灶类别
by_case = {}
for key, items in lesion.items():
case_id = key.split('/', 1)[0]
by_case.setdefault(case_id, []).extend(items)
#-- 与报告记录核对:报告里提到的病灶是否都能在图上的框里找到
for case_id, items in list(by_case.items())[:3]:
print(case_id, len(items))
第三段只用于核对聚合是否成功,输出的数量不进入任何分布性结论。
附录 D:完整参考链接
| 编号 | 名称 | 链接 | 用途 |
|---|---|---|---|
| 1 | FFA-IR v1.1.0 官方页面 | https://physionet.org/content/ffa-ir-medical-report/1.1.0/ | 全部规模、结构、边界数字的来源 |
| 2 | FFA-IR v1.0.0 官方页面 | https://physionet.org/content/ffa-ir-medical-report/1.0.0/ | 版本对比与旧文件结构 |
| 3 | 官方代码仓库 | https://github.com/mlii0117/FFA-IR | 数据组织、病灶索引表缺失说明 |
| 4 | PhysioNet 平台综述,2026 | https://doi.org/10.1038/s44360-026-00096-z | 托管模式与平台引用 |
| 5 | 许可文本入口 | https://physionet.org/content/ffa-ir-medical-report/view-license/1.1.0/ | 使用边界 |
附录 E:如果只记五件事
| 序号 | 记住什么 | 为什么 |
|---|---|---|
| 1 | 1.1.0 是 766 份报告与 47,247 张图,不是 10,790 与一百万 | 这两个旧数字来自 1.0.0,混用是最常见的硬错误 |
| 2 | 病灶标注是最小外接矩形,不是掩膜 | 决定了它能做检测定位、不能做分割 |
| 3 | 英文报告是机翻加校对 | 语言对比结论必须扣掉翻译腔 |
| 4 | 一个病例几十张图,划分只能按 case_id | 按图像随机切会让同一病例跨集,结果虚高 |
| 5 | 凭证化访问,文件层数字本文未能核验 | 排期要留审批周期,字段结构须自行确认 |
需要更高工程化程度或合规出域的商业版本?
当前展示的公开版本适用于学术研究与原型验证。千方医数集依托三甲医院直采网络,提供经专家标注、符合伦理合规的专病数据集交易服务。
前往商城查看可交易产品 →
