信息速览

E-ophtha — 眼底微动脉瘤与硬性渗出病灶级标注 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | E-ophtha |
| 英文全称 | E-ophtha(含 e-ophtha-MA 与 e-ophtha-EX 两个子数据库) |
| 别名/简称 | e-ophtha-MA、e-ophtha-EX、TeleOphta 数据库 |
| 疾病分类(ICD-11) | 9B71 糖尿病性视网膜病变(Diabetic retinopathy) |
| SNOMED CT | 127044008(Diabetic retinopathy) |
| 数据模态 | 眼底彩照(45° 视场角,JPEG)+ 病灶级 PNG 二值掩码 |
| AI 任务类型 | 微动脉瘤检测、硬性渗出分割、病灶级候选分类 |
| 样本总数 | 463 张(e-ophtha-MA 381 张 + e-ophtha-EX 82 张) |
| 数据大小 | 约 215 MB(MA 177 MB + EX 37.7 MB,压缩包) |
| 数据格式 | JPEG 图像 + PNG 二值掩码,按就诊文件夹组织 |
| 许可证 | 免费科研使用(详见包内 Copyright.txt) |
| 访问级别 | 申请审核(填写表单获取下载码) |
| DUO 标签 | GRU(通用研究使用);具体限制以官方协议为准 |
| 语言 | 法语临床来源,标注文件与文档为英语/法语 |
| 首发日期 | 2013(TeleOphta 项目论文发表,IRBM 34(2)) |
| 最后更新 | 单一静态发布,无版本迭代(页面核实于 2026-09) |
| 发布机构 | TeleOphta 联盟:MINES ParisTech、AP-HP 拉里布瓦西埃医院、LaTIM、ADCIS |
| 官方主页 | ADCIS e-ophtha 页面 |
| 下载地址 | ADCIS 下载页(需填表) |
| DOI | 10.1016/j.irbm.2013.01.010 |
| 引用次数 | 346+(OpenAlex 索引,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 标注质量高、体积极小可直接全量训练;但四种分辨率混合、无官方划分、图像-掩码需自行配对,需少量工程转换 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、糖尿病视网膜病变筛查任务定义、金标准标注流程描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典(双子集目录结构、图像-掩码配对关系)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。E-ophtha 要求用户在 ADCIS 官方页面填写个人信息表单获取下载码后才能下载数据包,版权与引用要求详见数据包内 Copyright.txt 文件。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? E-ophtha 是一组带「逐像素病灶标注」的眼底彩照数据集,来自法国大巴黎地区的 OPHDIAT 远程糖尿病视网膜病变筛查网络。它分为两个子集:e-ophtha-MA 专门标注微动脉瘤(381 张图,含 1,306 个病灶实例),e-ophtha-EX 专门标注硬性渗出(82 张图,含 2,278 个病灶实例),合计 463 张图像。所有标注均由眼科专家手工勾勒并经第二位专家复核。
为什么重要? 微动脉瘤是糖尿病视网膜病变最早可在眼底照片上观察到的征象之一,而硬性渗出提示黄斑水肿风险。要教会 AI 识别这些「针尖大小」的病灶,需要像素级的金标准,而公开可得、标注可信的此类数据集极为稀缺。E-ophtha 自 2013 年发布以来一直是微动脉瘤检测领域被反复引用的经典基准,其对应论文已被索引引用 346 次以上(截至 2026-09)。
我能用它做什么? 训练与评测微动脉瘤检测器或渗出分割网络、构建候选图块分类流水线、评测远程筛查算法在「真实现场数据」上的表现。由于体量小(约 215 MB),它在普通笔记本上即可完整加载,非常适合作为病灶级分割研究的快速实验平台与外部验证集。
§1.1 技术摘要
E-ophtha 由 MINES ParisTech 数学形态学中心、AP-HP 拉里布瓦西埃医院眼科、布雷斯特 LaTIM 实验室与图像处理公司 ADCIS 组成的 TeleOphta 联盟构建,服务于法国国家研究署资助的 ANR-09-TECS-015(TECSAN 计划)项目。数据集从 OPHDIAT 筛查网络 2008 年 1 月至 2009 年 12 月的全部检查记录中匿名化提取(母库含 25,702 条检查记录),随后由眼科专家使用 ADCIS 开发的标注软件对随机抽取的病理图像进行逐像素病灶勾画,第二位眼科专家复核并在分歧处达成共识。数据以两个独立的 zip 包分发:e_ophtha_MA.zip(177 MB)与 e_ophtha_EX.zip(37.7 MB),每个文件夹对应一次患者就诊,内含 JPEG 彩照与 PNG 二值掩码。图像由 Canon CR-DGI 与 Topcon TRC-NW6 两款免散瞳眼底相机拍摄,45° 视场角,分辨率横跨四种规格(1440×960 至 2544×1696)。因其标注精细、来源真实,E-ophtha 长期与 ROC、DIARETDB1 并列为微动脉瘤检测三大公开基准之一(Decencière et al., 2013, IRBM. DOI)。
§1.2 战略价值
维度一:病灶级金标准的稀缺性价值。 糖尿病视网膜病变的AI研究大多停留在「整图分级」层面,而临床真正的决策链条建立在病灶之上:微动脉瘤数量决定分级,渗出位置决定黄斑水肿判断。要打通这条链路,就需要像素级病灶标注,而这样的公开资源屈指可数——IDRiD(81 张标注图)与 E-ophtha 是其中最常被同时引用的两个。E-ophtha 的病灶实例更多(1,306 个 MA 实例对比 IDRiD 的数百个),且正常图集刻意包含光学伪影与血管反射等易混淆结构,构成天然的「困难负样本」,这对降低筛查系统的假阳性率极具价值(Walter et al., 2012/2014, HAL)。
维度二:真实远程筛查场景的可信来源。 与实验室环境下采集的数据集不同,E-ophtha 的每一张图都来自真实筛查网络中的一次远程就诊——由基层机构拍摄、经网络传输、由远程读片中心判读。图像质量参差、曝光与清晰度不一,恰是算法落地时将面对的真实分布。TeleOphta 项目本身的目标就是「自动识别正常检查以减轻读片员负担」,因此该数据集天然适合评测「阴性排除」任务与低假阳性率场景,这是许多演播室式数据集无法提供的信号(Decencière et al., 2013, IRBM)。
维度三:小体量、高周转的研究杠杆。 约 215 MB 的总体积意味着零下载门槛、零存储压力,五折交叉验证一夜可跑完。对需要快速迭代病灶检测算法、或为一个大型模型寻找外部验证集的团队,E-ophtha 是投入产出比极高的选择;其唯一代价是体量不足以单独支撑大型深度网络的预训练,需与其他数据集联合使用。
维度四:评估方法学的活体标本。 像素级指标在数像素病灶上的失真、FPI 工作点选取对结论的影响、划分方差对排行榜的扰动——这些医学影像评估领域反复争论的方法学问题,都能在 E-ophtha 上以极低成本完整复现。一批方法学论文正是利用该数据集完成了「病灶级 FROC 优于像素级指标」的论证,使其成为评估协议研究的标准试验台之一。对新入坑的研究者而言,把同一模型在这套数据上跑出两套指标并解释差异,是理解医学影像评估体系的最短路径。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 病灶标注 | 差异化定位 |
|---|---|---|---|---|
| E-ophtha(本页) | 463 张 / 381+82 | 45° 眼底彩照 | MA 1,306 实例 + EX 2,278 实例,像素级 | 真实远程筛查来源;正常图含刻意保留的伪影困难样本 |
| IDRiD | 516 张(分级)+ 81 张(分割) | 50° 眼底彩照,4,288×2,848 | MA/HE/EX/SE 像素级 + 视盘 | 高分辨率、官方划分、ISBI 2018 竞赛标准 |
| ROC(Retinopathy Online Challenge) | 100 张 | 45° 眼底彩照 | 微动脉瘤中心点 | 竞赛专用测试协议,训练集仅 50 张 |
| DIARETDB1 | 89 张 | 50° 眼底彩照 | 4 类病灶,置信度标注 | 芬兰库奥皮奥来源,含标定等级 |
| Messidor | 1,200 张 | 45° 眼底彩照 | 仅分级,无病灶掩码 | 同为法国/ADCIS 生态,规模大但无像素标注 |
| DDR | 13,673 张 | 多相机眼底彩照 | 7 类病灶像素级 | 中国 147 家医院,规模最大但来源异质 |
对比要点:E-ophtha 在「病灶实例数量 × 来源真实性」的乘积上仍难有替代者,但需注意其图像分辨率与 FOV 与 IDRiD(50°)不同,跨数据集训练时须做一致性校准。
§1.4 版本与里程碑时间轴
E-ophtha 为单一静态发布,无正式版本迭代;以下为其发布与生态里程碑。
| 时间 | 事件 | 说明 |
|---|---|---|
| 2008-01 至 2009-12 | 数据采集窗口 | OPHDIAT 网络检查记录全部提取范围(HAL) |
| 2012-2013 | TELEOPHTA 项目结题 | 病灶标注与算法原型完成,ADCIS 实现系统集成 |
| 2013-04 | TeleOphta 论文发表 | IRBM 34(2):196-203,成为官方引用文献(DOI) |
| 2013-至今 | ADCIS 持续托管 | 填表下载模式保持稳定,页面核实于 2026-09 |
| 2014-2025 | 基准生态成熟 | 与 ROC、DIARETDB1 并列微动脉瘤检测三大基准,FROC 成为标准指标 |
版本治理提示:由于无官方版本号,跨年份下载的 zip 内容理论上可能微调;团队内部应以「下载日期 + MD5」锁定快照,并在复现实验时披露该指纹。
§1.5 典型应用场景
- 微动脉瘤候选检测与假阳性抑制:MA 子集的 233 张正常图是天然的负样本池,适合训练「候选点分类器」并在低 FPI(每图假阳性数)区间评估。
- 硬性渗出语义分割:EX 子集提供逐像素渗出边界,可训练 U-Net 类分割网络并用于黄斑水肿风险提示研究。
- 远程筛查算法的外部验证:作为法国真实网络数据,可评测在其他数据集(如 EyePACS、DDR)上训练的模型,检验跨设备、跨人群泛化能力。
- 病灶级评估协议研究:像素级指标与病灶级 FROC 的差异、形态学后处理的影响等评估方法学问题,可在该数据集上低成本复现。
- 教学与小样本学习实验:体量小、标注干净,适合课程实验、少样本/半监督/主动学习方法的概念验证。
§2 医学背景
§2.1 ICD-11 与编码映射
E-ophtha 围绕糖尿病视网膜病变(DR)的两个关键早期体征构建。下表给出本数据集涉及的核心疾病与病灶概念的编码映射。
| 概念 | ICD-11 编码 | ICD-10 参照 | SNOMED CT | 术语说明 |
|---|---|---|---|---|
| 糖尿病性视网膜病变 | 9B71 | E11.3(2 型伴眼并发症)/ E10.3(1 型) | 127044008(Diabetic retinopathy) | 数据集目标疾病 |
| 视网膜微动脉瘤(病灶级概念) | 随 9B71 分级框架归入 DR | H36.0*(糖尿病性视网膜病变) | 微动脉瘤相关术语见 SNOMED CT 视网膜形态学轴 | MA 子集标注对象 |
| 硬性渗出(病灶级概念) | 随 9B71 分级框架归入 DR | H36.0* | 视网膜渗出相关术语见 SNOMED CT | EX 子集标注对象 |
说明:ICD-11 的 DR 编码 9B71 下按严重程度细分为多个子节点,病灶级「微动脉瘤/硬性渗出」本身不是独立的 ICD-11 条目,而是分级判据;如需病灶级术语的权威 SNOMED CT 码值,建议在 SNOMED International 浏览器中以「retinal microaneurysm」「retinal exudate」检索核验后使用。
补充:ICDR(国际临床 DR 疾病严重程度分级)将眼底征象映射到管理动作,E-ophtha 两种病灶恰是分级的「入口征象」与「转诊征象」。
| ICDR 等级 | 眼底征象 | 临床动作 | 与 E-ophtha 的关系 |
|---|---|---|---|
| 无明显 DR | 无病灶 | 年度随诊 | MA 子集 233 张正常图对应的临床形态 |
| 轻度 NPDR | 仅微动脉瘤 | 6-12 个月随诊 | MA 子集病理图的核心形态 |
| 中度 NPDR | 微动脉瘤 + 出血/渗出等,轻于重度标准 | 3-6 个月随诊 | EX 病灶常见出现层级 |
| 重度 NPDR(4-2-1 法则任一) | 大量出血/微动脉瘤异常、静脉串珠、IRMA | 尽早眼科转诊 | 超出本数据集标注范围 |
| 增殖性 DR | 新生血管/玻璃体出血 | 紧急治疗 | 超出本数据集标注范围 |
§2.1b SNOMED CT 映射表
| 概念 | 建议编码体系 | 编码/术语 | 使用建议 |
|---|---|---|---|
| 糖尿病性视网膜病变(疾病) | SNOMED CT | 127044008(Diabetic retinopathy) | 图级标签映射 |
| 糖尿病性视网膜病变(疾病) | ICD-11 | 9B71 | 报告与统计口径 |
| 微动脉瘤(病灶形态学术语) | SNOMED CT 视网膜形态学轴 | 以浏览器检索「microaneurysm of retina」核验 | MA 掩码语义标注 |
| 硬性渗出(病灶形态学术语) | SNOMED CT 视网膜形态学轴 | 以浏览器检索「retinal hard exudate」核验 | EX 掩码语义标注 |
| 2 型糖尿病伴眼部并发症 | ICD-10 | E11.3 | 基础疾病关联 |
§2.2 疾病简介与流行病学
糖尿病视网膜病变是工作年龄人群致盲的首要原因之一。其病理起点是高血糖导致的视网膜微血管损伤:毛细血管壁薄弱扩张形成微动脉瘤——直径通常仅 10-100 微米、在眼底照片上表现为针尖大小的深红圆点;微血管通透性增加后,脂蛋白渗出沉积于视网膜外层,形成黄白色的硬性渗出;若渗出累及黄斑中心凹区域,则发展为糖尿病性黄斑水肿(DME),直接威胁中心视力。依据国际临床 DR 分级(ICDR),微动脉瘤的存在即标志病变进入「轻度非增殖期」,而硬性渗出伴视网膜增厚是转诊眼科的重要指征。流行病学层面,多项系统综述估计全球糖尿病患者中 DR 患病率约 22%,其中威胁视力的 DR 约 6%(Teo et al., 2021, Ophthalmology meta 分析口径)。法国自 2000 年代起在全国推进 DR 远程筛查,大巴黎地区的 OPHDIAT 网络即为其中规模最大的区域性网络之一,E-ophtha 的母库正是该网络 2008-2009 年的完整检查记录(Decencière et al., 2013, IRBM)。
§2.3 临床任务定义
E-ophtha 直接支撑两类临床 AI 任务,二者在真实筛查流程中承担互补角色:
- 微动脉瘤检测(筛查「阳性触发器」):在一张眼底彩照上找出所有微动脉瘤的位置与轮廓。MA 数量是 ICDR 分级的核心依据之一——检出至少一个 MA 即可将患者从「无 DR」升级为「轻度 NPDR」,触发随访。对筛查系统而言,该任务的关键性能是「每图假阳性数(FPI)受限条件下的敏感度」,故病灶级 FROC 曲线是标准评估协议。
- 硬性渗出分割(水肿风险定位):逐像素标出渗出区域。渗出的位置(是否逼近黄斑)与面积是判断是否需眼科转诊的依据,也是抗 VEGF 治疗随访的影像标志物。该任务的标准评估是像素级敏感度/特异度与病灶级重叠率并重。
在 TeleOphta 项目的原始设计中,这两类检测器与病理性模式挖掘共同服务于一个上位任务:自动识别正常检查,以减少远程读片员约半数的工作负荷(Decencière et al., 2013, IRBM)。
§2.4 患者人群画像
| 维度 | 描述 |
|---|---|
| 来源 | 法国法兰西岛大区 OPHDIAT 远程 DR 筛查网络,2008-01 至 2009-12 检查记录 |
| 就医类型 | 社区基层筛查转诊 + 网络内眼科读片中心远程判读 |
| 疾病谱 | 病理图为轻度 DR 早期征象(MA/小出血、EX);另有大量确认无病灶的正常图 |
| 年龄/性别 | 数据集公开资料未披露人群统计字段(匿名化时已剥离人口学信息) |
| 种族/地域 | 法国大巴黎地区人群;具体种族构成未披露 |
| 拍摄条件 | 免散瞳为主,Canon CR-DGI 与 Topcon TRC-NW6,45° FOV |
⚠️ 该数据集为匿名化图像发布,人口学字段(年龄、性别、糖尿病病程等 27 个上下文字段)保留在项目内部母库中,未随公开子集分发;任何依赖人群协变量的分析无法直接开展。
人群画像使用警示:上述「就医类型」与「疾病谱」描述来自项目文献对筛查网络的定性记录,而非逐图可查的元数据;在数据卡片或论文中引用人群构成时,应使用「来源网络层面」的表述,避免给出逐患者统计。
§2.5 临床价值定位
E-ophtha 的临床价值在于它同时扮演「早期征象金标准」与「真实流程仿真器」两个角色。其一,MA 与 EX 是筛查分级的最小决策单元,以其为监督信号训练的检测器可直接映射到 ICDR 分级逻辑,比整图分级模型更可解释、更易通过监管审评中的性能溯源。其二,数据源自真实筛查网络而非精心布光的采集环境,算法在该数据上的表现更接近部署现场的预期下界。其三,其正常子集刻意保留了光学伪影、血管反光等「年轻患者眼底常见但极易误报」的结构,使该数据集天然适合打磨筛查系统的特异性——在每年数十万人次的筛查网络中,假阳性意味着不必要的转诊与焦虑,其临床成本不容忽视(Walter et al., HAL)。
从筛查工作流视角看两类病灶承担的决策角色:
| 筛查工作流节点 | 依赖信号 | 对应 E-ophtha 资产 | 决策后果 |
|---|---|---|---|
| 阴性排除(免读片) | 全图无早期征象 | 268 张正常图 + 原型系统 | 减轻读片员负荷(TeleOphta 设计目标) |
| 分级触发 | 微动脉瘤检出 | MA 掩码 + 1,306 实例 | 无 DR → 轻/中度 NPDR |
| 黄斑水肿风险提示 | 渗出位置与面积 | EX 掩码 + 2,278 实例 | 是否转诊眼科/抗 VEGF 评估 |
| 质量控制 | 伪影/反光误报率 | 含困难结构的正常图 | 读片中心抽检策略 |
§2.6 金标准与标注体系
| 属性 | e-ophtha-MA | e-ophtha-EX |
|---|---|---|
| 划分 | 148 病理图 + 233 正常图 | 47 病理图 + 35 正常图 |
| 标注对象 | 微动脉瘤及小出血(合并勾画) | 硬性渗出(逐个成分单独勾画) |
| 标注方式 | 眼科专家在 ADCIS 标注软件中逐像素手工勾画 | 同左;单图可含 30 个以上渗出成分 |
| 标注者 | 第一位眼科专家勾画 → 第二位专家复核,分歧处达成共识 | 同左 |
| 标注性质 | 像素级二值掩码(PNG,病灶区 255) | 像素级二值掩码(PNG,病灶区 255) |
| 正常图来源 | 由项目方从母库中选取 | 由图像处理专家刻意挑选含伪影/血管反光的困难负样本,眼科专家确认无渗出 |
| 标注质量佐证 | 1,306 个 MA 实例,官方论文说明标注经双人复核 | 2,278 个渗出实例;正常图经眼科医生逐一确认 |
§3 数据集规格
§3.0 子集抉择矩阵
E-ophtha 无多版本迭代,选择发生在「子集与组合策略」层面:
| 你的需求 | 推荐选择 | 大小 | 理由 |
|---|---|---|---|
| 微动脉瘤检测/红病变研究 | 仅 e_ophtha_MA.zip | 177 MB | MA 实例多(1,306 个),正常图池大(233 张),FROC 基准文献最丰富 |
| 渗出分割/黄斑水肿风险研究 | 仅 e_ophtha_EX.zip | 37.7 MB | 渗出逐像素边界精细,与 IDRiD EX 任务互补 |
| 分割模型预训练 + 外部验证 | 两个子集全量 | 约 215 MB | MA + EX 联合可扩充病灶多样性,但须先核查两子集患者重叠(见坑点 1) |
| 大规模 DR 分级模型预训练 | 不推荐单独使用 | — | 463 张体量不足以支撑预训练,应作为验证/微调集 |
§3.1 模态详情
- 成像模态:彩色眼底彩照(color fundus photography),45° 视场角,以视盘为中心或包含后极部的单张静态照片。
- 相机:Canon CR-DGI 与 Topcon TRC-NW6 两款免散瞳眼底相机(Siswadi, 2023, 博士论文);散瞳状态在公开资料中未逐图标注。
- 图像文件:JPEG 有损压缩——这是为适配 2008-2009 年筛查网络的带宽限制而做出的妥协,官方文档明确记录了这一点;微小病灶(MA 直径在原图上仅数像素)的边缘信息因此存在不可避免的压缩损失。
- 标注文件:PNG 格式二值掩码,与图像一一对应;病灶像素为 255(白色),背景为 0(黑色)。
- 组织层级:zip 包内按「文件夹 = 一次患者就诊」组织,一个文件夹内可含一张或多张照片。
§3.2 子集构成表
| 子集 | 病理图(含病灶) | 正常图(无病灶) | 合计 | 病灶实例数 | 压缩包大小 |
|---|---|---|---|---|---|
| e-ophtha-MA | 148(含 MA 或小出血) | 233 | 381 | 1,306 个微动脉瘤 | 177 MB |
| e-ophtha-EX | 47(含硬性渗出) | 35 | 82 | 2,278 个渗出成分 | 37.7 MB |
| 合计 | 195 | 268 | 463 | 3,584 | 约 215 MB |
注意:两个子集是否共享同一批患者,官方资料未披露;上表的「合计」仅为图像数量加总,不构成患者级合并统计。
§3.3 数据格式表
| 数据类型 | 格式 | 说明 |
|---|---|---|
| 眼底彩照 | JPEG(RGB,8 bit/通道) | 有损压缩,四种分辨率混合 |
| 病灶掩码 | PNG(8 bit 灰度) | 病灶 255 / 背景 0,与对应 JPEG 同文件夹存放 |
| 版权与引用说明 | Copyright.txt | 位于下载区末页,规定许可与引用要求 |
| 目录结构 | 压缩包内多级文件夹 | 每个文件夹对应一次患者就诊 |
§3.4 存储大小
- e_ophtha_MA.zip:177 MB
- e_ophtha_EX.zip:37.7 MB
- 合计约 215 MB;解压后因 PNG 掩码与 JPEG 原图并存,实际占用约为压缩包的 1.1-1.3 倍(估计值,随文件系统而异)。
§3.5 标注方式
人工标注,精度为像素级。流程:第一位眼科专家在 ADCIS 专门开发的标注软件中,对随机抽取的病理图像逐病灶勾画轮廓;随后第二位眼科专家复核全部标注,出现分歧时由两位专家协商达成共识。这一「一勾一核 + 共识」的流程在 EX 子集的官方方法论文中有逐步描述(Walter/Decencière et al., HAL hal-01082809);MA 子集采用同一项目框架下的等价流程(TeleOphta 项目文档, HAL hal-01082869)。EX 子集的正常图由图像处理专家先行筛选——刻意纳入含光学伪影、血管反光等易误导分割算法的结构——再由眼科医生确认确无渗出。
标注流水线的逐步拆解:
| 步骤 | 执行者 | 操作 | 质量控制 |
|---|---|---|---|
| 1. 病理图抽样 | 项目方 | 从匿名化母库中随机抽取含目标病灶的图像 | 覆盖不同严重程度 |
| 2. 逐像素勾画 | 第一位眼科专家 | 在 ADCIS 标注软件中逐病灶手工勾勒轮廓 | 单一成分单独勾画(EX 尤甚) |
| 3. 独立复核 | 第二位眼科专家 | 逐图检查全部轮廓 | 分歧记录在案 |
| 4. 共识定稿 | 两位专家 | 协商修订分歧轮廓 | 以共识掩码为最终 GT |
| 5. 正常图确认 | 眼科专家 | 逐一确认无目标病灶 | EX 正常图刻意含易混淆结构 |
| 6. 打包发布 | ADCIS | 掩码转 PNG、按就诊文件夹组织 | Copyright.txt 随包分发 |
§3.6 标注者资质与一致性
标注者均为参与 OPHDIAT 网络读片的眼科专家(拉里布瓦西埃医院 AP-HP 体系)。官方资料未公布量化的一致性系数(如 Kappa 或 Dice inter-observer 值);作为参照,TeleOphta 项目内部对母库中 500 条检查记录执行了双读片(double read),并以第二读片员的敏感度作为系统阈值的校准锚点(HAL hal-01082869)。使用者在解读掩码边界时,应意识到数像素宽的 MA 边界天然存在观察者间不确定性。
§3.7 采集周期
图像提取窗口为 2008 年 1 月至 2009 年 12 月,覆盖 OPHDIAT 网络在此期间的全部检查记录并匿名化;标注工作在 TELEOPHTA 项目期内(约 2010-2012 年)完成,2013 年随论文与 ADCIS 页面正式发布。数据集为单一静态快照,无后续追加采集。
§3.8 地域覆盖
法国法兰西岛大区(Île-de-France,大巴黎地区)。OPHDIAT 网络连接该区域多家公立医院眼科读片中心与基层筛查点,患者以该区域城市人口为主。数据集不包含法国以外地区的样本。
§3.9 设备规格
| 设备 | 类型 | 视场角 | 备注 |
|---|---|---|---|
| Canon CR-DGI | 免散瞳眼底相机 | 45° | 佳能经典科研机型,多见于法国筛查网络 |
| Topcon TRC-NW6 | 免散瞳眼底相机 | 45° | 与 Messidor 部分数据同源设备家族 |
分辨率横跨四种规格:1,440×960 至 2,544×1,696 像素(另一处综述记载存在 2,048×1,360 中间档,官方口径以「四种尺寸、1,440×960 至 2,544×1,696 区间」为准,HAL hal-01082809)。
实践中的分辨率处理策略对比:
| 策略 | 做法 | 适用场景 | 风险 |
|---|---|---|---|
| 全图缩放 | 长边统一到 1024/512,掩码最近邻 | 全图分割基线 | 极小 MA 面积缩水,需配合高分辨率微调 |
| patch 采样 | 原分辨率上裁 256-512 patch | MA 检测(主流) | 需处理 patch 边界跨病灶问题 |
| 双尺度推理 | 全图 + 中心放大二次推理 | 高召回筛查 | 工程复杂度上升 |
MA 与 EX 两个子集在工程视角下的完整对照:
| 维度 | e-ophtha-MA | e-ophtha-EX |
|---|---|---|
| 目标病灶 | 微动脉瘤(含小出血,不区分) | 硬性渗出 |
| 病灶颜色特征 | 深红色圆点 | 黄白色蜡样斑块 |
| 典型病灶直径 | 数像素至十余像素 | 数十像素,边界清晰 |
| 病灶密度 | 稀疏散在(1,306 个/148 图) | 高密度(2,278 个/47 图,单图可超 30 个) |
| 任务形态 | 检测/FROC 为主 | 分割/重叠率为主 |
| 挑战来源 | 与背景对比度极低 | 与视盘/棉绒斑/伪影易混淆 |
| 文献基准形态 | 病灶级 FROC(0.33-0.65 区间) | 五折 CV 敏感度/精度/PR |
§3.10 深度溯源链
| 层级 | 溯源内容 |
|---|---|
| 原始采集 | OPHDIAT 筛查网络基层拍摄点(Canon/Topcon 免散瞳相机,2008-2009) |
| 项目框架 | 法国国家研究署 ANR-09-TECS-015(TECSAN 计划)TELEOPHTA 项目 |
| 数据治理 | 全部检查记录匿名化提取(25,702 条母库),剥离 27 个上下文字段后形成公开子集 |
| 标注生产 | 眼科专家(AP-HP 拉里布瓦西埃医院)+ ADCIS 标注软件 + 双人复核共识机制 |
| 发布托管 | ADCIS 公司(法国圣孔坦)官方页面持续托管,Copyright.txt 规定许可 |
| 学术背书 | 官方引用文献 IRBM 2013;34(2):196-203,DOI 10.1016/j.irbm.2013.01.010 |
§4 数据结构
§4.0 目录树
数据解压后的典型目录结构如下(以 e-ophtha-MA 为例;EX 结构同构,文件夹前缀为 EX)。注意:官方按「文件夹 = 一次就诊」组织,图像文件名以就诊序号为基础编码,掩码与原图同名但扩展名不同。
e_ophtha_MA/
├── MA/ # 病理图(含微动脉瘤或小出血)所在就诊文件夹群
│ ├── MA_1/ # 一个文件夹 = 一次患者就诊
│ │ ├── MA_000001.jpg # 眼底彩照(JPEG,分辨率 1440×960 ~ 2544×1696 不等)
│ │ └── MA_000001.png # 对应二值掩码(病灶 255 / 背景 0)
│ ├── MA_2/
│ │ ├── MA_000002.jpg
│ │ └── MA_000002.png
│ └── ...(148 张病理图分布于各就诊文件夹,一个文件夹可含多张图)
└── healthy/ # 正常图(无病灶,233 张)
├── h_000001.jpg # 正常图无对应掩码
└── ...
实践提示:不同研究者解包后观察到的顶层命名略有差异(如 MA/Annotation_MA/healthy 三目录并列的形态),本质相同——图像与掩码按就诊文件夹配对。建议自建索引时以「去掉扩展名的文件名」为配对键(见 §6.1 代码)。
§4.1 DAIMS 字段字典
E-ophtha 是图像型数据集,其「字段」以文件与像素为单位。下表给出 AI 训练视角下的核心数据字典(8 列)。
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image_id | 文本 | 去扩展名的图像文件名,配对主键 | MA_000001 |
建立 image↔mask 映射 | 无(唯一命名) | 无缺失 | 唯一字符串 |
| subset | 枚举 | 所属子集 | MA / EX |
分子集建模与评估 | 无 | 无缺失 | |
| lesion_flag | 布尔 | 是否含病灶(正常图为 false) | true |
二分类负样本采样 | 无 | 无缺失 | |
| image_file | 文件 | JPEG 彩照路径 | MA/MA_1/MA_000001.jpg |
输入读取 | JPEG 有损压缩伪影 | 无缺失 | 有效 JPEG |
| mask_file | 文件 | PNG 二值掩码路径(仅病理图) | MA/MA_1/MA_000001.png |
分割监督信号 | 边界数像素级不确定性 | 正常图无掩码文件(结构性缺失) | 有效 PNG 或不存在 |
| pixel_value | 整数 | 掩码像素值 | 255 |
二值化阈值 | 无 | 无缺失 | |
| width × height | 整数对 | 原始分辨率 | 2544×1696 |
分辨率自适应与 resize 校验 | 无 | 无缺失 | 1440×960 ~ 2544×1696 四档 |
| visit_folder | 文本 | 就业文件夹名(= 一次就诊) | MA_1 |
就诊级分组交叉验证 | 无 | 无缺失 | 唯一文件夹名 |
§4.2 标签分布
| 分布维度 | 数值 | 占比 |
|---|---|---|
| 总图像 | 463 | 100% |
| 含 MA/小出血图 | 148 | 32.0% |
| 含 EX 图 | 47 | 10.2% |
| 无病灶正常图 | 268 | 57.9% |
| MA 实例总数 | 1,306 | 病理图均摊约 8.8 个/图 |
| EX 实例总数 | 2,278 | 病理图均摊约 48.5 个/图 |
| 像素级正例占比(MA 子集估计) | 极低(单个 MA 直径数像素) | 通常 < 0.1%/图 |
来源:ADCIS 官方页、HAL hal-01082869、HAL hal-01082809。
§4.3 关键统计
- 图像分辨率四档并存:1,440×960 至 2,544×1,696;同一批次内不做 resize 直接组 batch 会报错,必须统一缩放策略。
- 病灶尺度极小:MA 在原图中直径通常仅数个至十余个像素,逐像素正例占比常低于千分之一,是天然的极端类不平衡分割问题。
- EX 实例粒度细:每个渗出成分单独勾画(单图可超过 30 个成分),掩码呈现「多岛状」连通域形态,适合做实例级统计与重叠率评估(HAL hal-01082809)。
- 正常图占比高:MA 子集中 233/381 为正常图,可直接用于训练图级筛查分类器。
可用作加载器自检的「不变量清单」——任何预处理管线改造后,下列断言都应成立:
def sanity_check(index: dict) -> list[str]:
"""对照官方数字校验扫描结果,返回问题清单"""
issues = []
n_img = len(index)
n_masked = sum(1 for v in index.values() if v["mask"])
n_ma = sum(1 for k, v in index.items() if k.startswith("e_ophtha_MA") and v["mask"])
n_ex = sum(1 for k, v in index.items() if k.startswith("e_ophtha_EX") and v["mask"])
if n_img != 463:
issues.append(f"图像总数 {n_img} != 官方 463")
if n_ma != 148:
issues.append(f"MA 病理图 {n_ma} != 官方 148")
if n_ex != 47:
issues.append(f"EX 病理图 {n_ex} != 官方 47")
if n_masked != 195:
issues.append(f"含掩码图 {n_masked} != 官方口径 195")
return issues
§4.4 数据层级
数据存在三层结构,但患者层不可复原:
患者(patient,匿名化后不可辨识,可能对应多个就诊文件夹)
└── 就诊(visit = zip 内一个文件夹,官方组织单位)
└── 图像/掩码对(image + mask,文件级最小单元)
交叉验证与评估必须至少在就诊文件夹级分组(GroupKFold(group=visit_folder));若能从文件名推断患者归属,则应升级为患者级分组(见坑点 1)。
§4.5 缺失值与信息性缺失
| 情形 | 编码方式 | 处理建议 |
|---|---|---|
| 正常图无掩码 | 掩码文件结构性不存在(非占位空文件) | 加载器需按 lesion_flag 分支处理,正常图返回全零掩码或跳过 mask 分支 |
| 患者人口学信息 | 发布时已剥离 | 不可用;任何协变量分析需引入外部数据 |
| 散瞳状态、相机型号逐图记录 | 未随图像发布 | 无法逐图过滤设备亚组,跨设备分析以整体为粒度 |
| EX 与 MA 子集患者重叠 | 未披露 | 视为「未知」,合并使用时按最坏情况做防泄漏设计(坑点 1) |
§5 划分与使用建议
§5.1 官方划分
E-ophtha 不提供官方训练/测试划分。原始项目内部评估时,曾将数据随机分为等规模的训练集与测试集并以 ROC 曲线校准阈值(HAL hal-01082869),但该划分未随数据发布。因此不存在「官方排行榜数字」——文献中所有 FROC/敏感度数字都是作者自定义划分下的结果。
§5.2 社区惯例划分
- K 折交叉验证:最主流做法。EX 子集因仅 82 张图,常采用 5 折交叉验证(如 SVM + Faster R-CNN 渗出检测研究, 2021, Sci Rep);MA 子集常见 4-10 折。
- 图级随机划分:早期文献直接在图像级随机划分——在图像可按文件名推断就诊归属时存在高估风险。
- 外来训练策略:不少研究将 e-ophtha 整体用作测试集,训练在 ROC/DIARETDB1/DDR 上完成,此时 e-ophtha 承担外部验证角色,跨数据集比较时务必说明训练来源。
§5.3 泄漏风险重点
- 就诊级泄漏:同一文件夹(同一次就诊)的多张图像若分属训练与测试,属于直接泄漏;文件名前缀相同的图像必须同侧。
- 患者级泄漏(未知重叠):同一患者的多次就诊是否散布于数据集内、以及 MA 与 EX 子集之间是否共享患者,官方均未披露,学界已将「MA/EX 子集重叠未知」列为该数据集的公开未解问题(Emergent Mind 汇编, 2026)。合并两子集训练时,应假设存在重叠并采取最保守的分组。
- 跨子集任务混淆:EX 子集的正常图不保证「无 MA」、MA 子集的正常图不保证「无 EX」——标注只针对各自目标病灶;把某一子集的正常图当作「全健康」使用会造成标签污染。
§5.4 交叉验证建议
推荐协议:以就诊文件夹(或文件名公共前缀)为分组键做 GroupKFold(5);每折内部按病理/正常比例做分层;报告病灶级 FROC(含 1/8、1/4、1/2、1、2 FPI 处敏感度)而非单一像素级 Dice。若研究目标包含跨子集泛化,可在「MA 训练 → EX 测试」方向上追加迁移实验,但解释时须注明病灶类型差异。
§5.5 外部验证建议
e-ophtha 最有价值的用法之一是充当外部验证集:
- 方向 A:在 IDRiD/DDR 上训练分割模型 → 在 e-ophtha-EX 上测渗出分割 → 检验 50°→45° FOV 与分辨率迁移能力。
- 方向 B:在 ROC/DIARETDB1 上训练 MA 检测器 → 在 e-ophtha-MA 上测 FROC → 检验跨设备鲁棒性。
- 方向 C:图级筛查模型(EyePACS/Kaggle 训练)→ e-ophtha 图级二分类 → 检验真实筛查网络的阴性排除能力。
§5.6 划分策略速查表
| 场景 | 推荐协议 | 分组键 | 关键注意 |
|---|---|---|---|
| 复现文献 MA 检测 | GroupKFold(5) + 文献工作点报告 | 文件名前缀/就诊文件夹 | 声明 FPI 工作点与候选生成器 |
| EX 分割训练 | GroupKFold(5) + 分层 | 就诊文件夹 | 仅 47 张病理图,验证集波动大 |
| 两子集合并 | 子集互斥协议或簇级分组 | 感知哈希簇(坑点 1) | 假设患者重叠存在 |
| 外部验证 | 全量作测试集 | — | 训练集来源必须披露 |
| 图级筛查评测 | 全量二分类 + 正常图子集单独报告 | — | 困难负样本计入主指标 |
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
E-ophtha 未托管在 Kaggle/HuggingFace 等云平台(填表获取下载码的模式与镜像再分发限制所致),云端实验请先在本地完成下载,再上传至训练实例。数据仅约 215 MB,SCP/rsync 上传数秒即完成:
# 本地下载后上传至云实例(示例)
rsync -avzP e_ophtha_MA.zip e_ophtha_EX.zip user@train-server:/data/e-ophtha/
ssh user@train-server "cd /data/e-ophtha && unzip -q e_ophtha_MA.zip && unzip -q e_ophtha_EX.zip"
§6.1 快速上手:扫描与配对
目录结构预期:假设 data_root 下已解压两个 zip,形成 e_ophtha_MA/ 与 e_ophtha_EX/ 两个顶层目录(内部为就诊文件夹 + JPEG/PNG)。data_root 拼接关系:所有路径均以 data_root 为根拼接,示例代码自动递归发现文件。最小可用子集:仅 e_ophtha_EX(82 张图)即可跑通全流程,适合作为冒烟测试。
import os
from pathlib import Path
from collections import defaultdict
def scan_eophtha(data_root: str) -> dict:
"""
扫描 e-ophtha 解压目录,返回 {image_id: {"image": path, "mask": path or None}} 索引。
data_root/
e_ophtha_MA/.../*.jpg + *.png
e_ophtha_EX/.../*.jpg + *.png(健康图仅 .jpg)
"""
data_root = Path(data_root)
index = defaultdict(dict)
for subset in ("e_ophtha_MA", "e_ophtha_EX"):
base = data_root / subset
if not base.exists():
continue # 只解压了一个子集时跳过
for img in base.rglob("*.jpg"):
stem = img.stem
index[f"{subset}/{stem}"]["image"] = str(img)
mask = img.with_suffix(".png")
index[f"{subset}/{stem}"]["mask"] = str(mask) if mask.exists() else None
return dict(index)
if __name__ == "__main__":
idx = scan_eophtha("/data/e-ophtha")
n_img = len(idx)
n_masked = sum(1 for v in idx.values() if v["mask"])
print(f"图像 {n_img} 张,其中含掩码 {n_masked} 张") # 预期 463 / 195(若两子集齐全)
要点:图像与掩码以「同目录、同名、异扩展名」配对;健康图没有 PNG,索引中记 mask=None,加载时返回全零掩码即可统一训练接口。
§6.2 数据获取
| 步骤 | 内容 |
|---|---|
| 1. 访问官方页 | ADCIS e-ophtha 页面 |
| 2. 填写表单 | 提交姓名、机构、邮箱等个人信息(表单制访问,无付费) |
| 3. 获取下载码 | 系统通过邮件发送下载码(Lancet Digital Health 2021 综述记录了该流程) |
| 4. 下载两个 zip | e_ophtha_MA.zip(177 MB)+ e_ophtha_EX.zip(37.7 MB) |
| 5. 阅读 Copyright.txt | 位于下载区末页,规定许可与强制引用(Decencière et al., 2013) |
获取流程常见问题(依据官方页面与社区反馈整理):
| 问题 | 说明 |
|---|---|
| 未收到下载码邮件 | 官方页面建议联系数据库管理员;检查垃圾箱与机构邮箱过滤 |
| 机构邮箱是否必需 | 表单未强制机构邮箱,但学术机构信息有助于通过审核 |
| 能否再分发 | 不得自行公开再分发 zip;引用他人时引导其从官方页申请 |
| 商业使用 | 需联系 ADCIS 确认授权边界;默认许可面向科学研究 |
引用义务:使用任一 e-ophtha 子库,必须在出版物中引用 Decencière et al., 2013, IRBM——这是官方页面明文要求的引用规范。
§6.3 预处理全流程
以下脚本完成四件事:统一分辨率策略(保比例缩放 + 归一化)、掩码最近邻插值(避免病灶被插值稀释)、绿通道提取(眼底红病变在绿通道对比度最高)、及 FOV 掩膜裁剪。
import numpy as np
import cv2
TARGET = 1024 # 统一缩放目标(长边)
def load_pair(img_path: str, mask_path: str | None) -> tuple[np.ndarray, np.ndarray]:
"""读取原图与掩码,返回 (image_float32 HxWx3, mask_float32 HxW)"""
img = cv2.imread(img_path, cv2.IMREAD_COLOR) # BGR
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
if mask_path is not None:
mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE)
mask = (mask > 127).astype(np.float32) # {0,1}
else:
mask = np.zeros(img.shape[:2], dtype=np.float32) # 健康图全零掩码
return img, mask
def preprocess(img: np.ndarray, mask: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
# 1) FOV 掩膜:亮度阈值找出有效圆形视野,外部置零(去除黑边噪声)
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
_, fov = cv2.threshold(gray, 15, 255, cv2.THRESH_BINARY)
fov = cv2.morphologyEx(fov, cv2.MORPH_CLOSE,
cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (15, 15)))
img = img * (fov[..., None] > 0)
# 2) 统一缩放:图像双线性、掩码最近邻(关键——双线性会把 255 稀释成 3/48 等,
# 导致阈值化后数像素的 MA 直接消失)
h, w = img.shape[:2]
scale = TARGET / max(h, w)
nw, nh = int(round(w * scale)), int(round(h * scale))
img = cv2.resize(img, (nw, nh), interpolation=cv2.INTER_LINEAR)
mask = cv2.resize(mask, (nw, nh), interpolation=cv2.INTER_NEAREST)
mask = (mask > 0.5).astype(np.float32)
# 3) 绿通道 CLAHE 增强(可选,红病变检测常用)
g = img[..., 1]
g = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)).apply(g)
img = np.stack([img[..., 0], g, img[..., 2]], axis=-1)
img = img.astype(np.float32) / 255.0
return img, mask
清洗规则建议:过滤接近全黑的边缘坏图;对掩码执行 cv2.connectedComponents 统计连通域,剔除 1-2 像素的孤立噪点前先确认它们不是真 MA(MA 本身就这么小)。
§6.4 PyTorch DataLoader 完整代码
import torch
from torch.utils.data import Dataset, DataLoader, WeightedRandomSampler
import numpy as np
class EophthaDataset(Dataset):
"""
E-ophtha 图像-掩码数据集(分割 + 图级标签双输出)。
前置条件:由 scan_eophtha() 生成索引 dict,train=True 时启用训练增强。
"""
def __init__(self, index: dict, train: bool = True, size: int = 512):
self.items = list(index.items())
self.train = train
self.size = size
def __len__(self):
return len(self.items)
def __getitem__(self, i):
from scipy import ndimage # 局部导入避免环境报错传播
key, rec = self.items[i]
from torchvision.io import read_image
img = read_image(rec["image"]).float() / 255.0 # 3,H,W
mask = torch.zeros((1, *img.shape[-2:]), dtype=torch.float32)
if rec["mask"]:
import torchvision.transforms.functional as TF
m = TF.pil_to_tensor(TF.to_pil_image(
np.array(__import__("PIL.Image", fromlist=["Image"])
.open(rec["mask"]))))
mask = (m > 127).float()[None]
# 统一缩放(图像双线性 / 掩码最近邻)
img = torch.nn.functional.interpolate(
img[None], size=(self.size, self.size), mode="bilinear",
align_corners=False)[0]
mask = torch.nn.functional.interpolate(
mask[None], size=(self.size, self.size), mode="nearest")[0]
if self.train: # 训练期增强:翻转 + 90° 旋转(对眼底均为安全变换)
if torch.rand(1) < 0.5:
img, mask = torch.flip(img, [-1]), torch.flip(mask, [-1])
if torch.rand(1) < 0.5:
img, mask = torch.flip(img, [-2]), torch.flip(mask, [-2])
k = int(torch.randint(0, 4, (1,)))
img, mask = torch.rot90(img, k, [-2, -1]), torch.rot90(mask, k, [-2, -1])
img_label = int(mask.sum() > 0) # 图级标签:是否存在目标病灶
return {"image": img, "mask": mask, "image_label": img_label, "key": key}
def make_loaders(index: dict, train_keys: list, val_keys: list, batch_size: int = 4):
train_ds = EophthaDataset({k: index[k] for k in train_keys}, train=True)
val_ds = EophthaDataset({k: index[k] for k in val_keys}, train=False)
# 极端类不平衡:按掩码占比做加权采样(正常图权重 1,病理图权重 = 正常图数/病理图数)
w = [233.0 / 148.0 if v["mask"] else 1.0 for _, v in train_ds.items]
sampler = WeightedRandomSampler(w, num_samples=len(w), replacement=True)
return (DataLoader(train_ds, batch_size=batch_size, sampler=sampler,
num_workers=4, pin_memory=True),
DataLoader(val_ds, batch_size=batch_size, shuffle=False,
num_workers=4, pin_memory=True))
(超 30 行的代码块较多,建议在页面渲染侧将 §6.3、§6.4 配合 <details> 折叠展示。)
§6.5 坑点 8 个
⚠️ 坑点 1:MA 与 EX 子集患者重叠未知,合并训练存在隐性泄漏(分类:数据泄漏)
问题:官方从未披露两个子集是否共享同一批患者的就诊记录;学界已将其列为该数据集的公开未解问题。若直接把 463 张图混在一起随机划分,同一次就诊甚至同一患者的图像可能同时进入训练与测试。
症状:合并训练的模型在「混合划分」下指标虚高,换成严格分组划分后敏感度骤降;论文间数字不可复现。
解决:
- 简单方法:以就诊文件夹名/文件名公共前缀为分组键,用
sklearn.model_selection.GroupKFold保证同组图像永不同折。- 进阶方法:对两子集图像做感知哈希(pHash)或血管走形特征聚类,若发现近重复图跨子集出现,即按聚类簇分组;代码上用
GroupShuffleSplit(group=cluster_id)。- SOTA 方法:合并训练时直接采用「子集互斥」协议——MA 任务只用 MA 子集、EX 任务只用 EX 子集,仅在推理阶段交叉评估,从结构上消除未知重叠的影响。
参考:Emergent Mind: e-ophtha MA/EX 子集重叠 open problem;官方页面组织说明
⚠️ 坑点 2:四种分辨率混合,resize 用双线性会把掩码里的微动脉瘤「插没了」(分类:预处理陷阱)
问题:图像分辨率横跨 1,440×960 至 2,544×1,696 四档。若掩码与图像一起用双线性插值缩放,255 的病灶像素会被稀释成 60-200 的中间值,阈值化后仅数像素的 MA 可能整块消失。
症状:训练前统计掩码正例像素数与论文对不上;小病灶召回率异常低,可视化发现标注「时有时无」。
解决:
- 简单方法:掩码一律最近邻插值(
interpolation=cv2.INTER_NEAREST),缩放后执行mask = (mask > 0.5)。- 进阶方法:在原始分辨率上做 lesion-level 评估(以候选点与原始掩码连通域的重叠判定 TP),resize 仅用于网络输入;这样 FROC 不受缩放精度损失影响。
- SOTA 方法:切片训练(patch-based)——在原分辨率上以病灶为中心采样 256/384/512 patch,正常区域随机补采样,网络全程不接触全图缩放,是 MA 检测文献的主流做法。
参考:Long et al., 2020, BioMedical Engineering OnLine. DOI 10.1186/s12938-020-00766-3
⚠️ 坑点 3:无官方划分 + FROC 协议各家不一,排行榜数字不可直接比较(分类:评估误用)
问题:E-ophtha 不提供官方 train/test 划分,各论文自行随机划分;同时评估口径混杂——有的报病灶级 FROC 总分,有的报 1/8 与 1/2 FPI 处敏感度,有的报像素级指标。
症状:文献 A 的 FROC 0.562 与文献 B 的 0.546 之差实际小于划分方差;自己复现同一模型两次得分相差 ±0.03 属正常现象。
解决:
- 简单方法:报告指标时强制注明「划分方式 + FPI 工作点 + 候选生成器」,例如「GroupKFold-5,lesion-level FROC,≥50 候选/图」。
- 进阶方法:复现 3 个以上已发表方法在同一自定义划分上的分数,先建立「划分内基线带」,再比较自己的方法。
- SOTA 方法:固定候选生成阶段、只替换分类器,使 FROC 差异可归因;或采用文献中的公共评估工具脚本,消除实现差异。
参考:Long et al., 2020 表 3/表 5 的跨方法对比;HAL hal-01082869 关于内部对半划分的描述
⚠️ 坑点 4:正常图刻意含伪影与血管反光,图级分类器容易在「困难负样本」上翻车(分类:偏倚陷阱)
问题:EX 子集的 35 张正常图是由图像处理专家刻意挑选的「容易误报」图像——光学伪影、血管反射、年轻患者亮眼底等结构大量存在,这在官方方法论文中有明确记载。
症状:模型在病理/正常二分类上特异度看似很高,但逐张检查误报样本时发现 FP 集中于这几张图;把正常图换成简单负样本后指标飙升,形成自欺。
解决:
- 简单方法:评估时单独报告「正常图子集」的特异度,将伪影误报率作为独立指标。
- 进阶方法:FP 分析(error analysis)按伪影类型分桶统计,针对血管反光增加绿通道血管分割抑制分支。
- SOTA 方法:以渗出/伪影对比样本做难例挖掘(hard negative mining),训练时对含伪影 patch 过采样并施加 Focal Loss 类加权。
参考:Walter/Decencière et al., HAL hal-01082809(正常图选取策略原文)
⚠️ 坑点 5:JPEG 有损压缩侵蚀数像素级病灶,边界不确定性应写进论文局限(分类:标签理解)
问题:官方文档明确说明全部图像因网络带宽原因做了 JPEG 压缩。MA 直径在原图上仅数像素,压缩振铃与色度抽样足以改变其边界 1-2 像素——这不是标注错误,而是发布介质的物理限制。
症状:像素级 Dice 在小病灶上对 1 像素偏移极度敏感,指标波动大;不同实验室对同一图的「正确分割」有系统性分歧。
解决:
- 简单方法:评估时对掩码做 1-2 像素形态学容差(dilate 后再算重叠),并明确报告容差设置。
- 进阶方法:主用病灶级 FROC(以中心点/连通域重叠判定),把像素级指标作为辅助;这正是该领域文献收敛出的惯例。
- SOTA 方法:训练时对掩码做软边界(距离变换加权损失),让网络学习「不确定带」而非硬边界。
参考:HAL hal-01082869(JPEG 压缩原因说明);Long et al., 2020
⚠️ 坑点 6:极端类不平衡叠加「图级全负」,直接全图训练分割网络几乎学不到 MA(分类:偏倚陷阱)
问题:单图内 MA 正例像素占比常低于 0.1%,且 233 张正常图贡献零正例。朴素的 U-Net + BCE 训练会收敛到「全黑预测」,像素指标看似 Loss 下降、Dice 为零。
症状:训练曲线 loss 正常下降但验证 Dice 长期为 0;预测图全黑或大片假阳。
解决:
- 简单方法:patch 训练——以掩码连通域为中心裁剪小 patch,配合正常区域随机 patch,比例约 1:2 至 1:5。
- 进阶方法:两阶段流水线(候选生成 → 候选分类),分类阶段用
WeightedRandomSampler或 Focal Loss 处理候选级不平衡;MA 检测文献的经典范式。- SOTA 方法:分割头用 Tversky/Dice 复合损失并对正例像素加权(如 pos_weight 10-20),再叠加以病灶为中心的动态 patch 采样。
参考:Birkbeck 公开课程项目 E-Ophtha MA 流水线(–pos_mult 12 等参数设计);Chudzik et al., 2018, CMPB 158:185-192
⚠️ 坑点 7:像素级 Dice 高 ≠ 病灶找得准,MA 评估必须看病灶级 FROC(分类:评估误用)
问题:一个把大片背景误判成病灶的网络可能获得不低的像素级召回;反之,一个漏掉一半 MA 但其余预测极准的网络像素指标也不差。对筛查而言,病灶「个数与位置」才是决策变量。
症状:像素 Dice 0.8 的模型在临床演示中「看不见」散在的微动脉瘤;审稿人质疑未报 FROC。
解决:
- 简单方法:预测图经连通域分析后,与 GT 连通域按中心距(如 ≤ MA 半径)或面积重叠判定 TP/FP/FN,绘制 FROC。
- 进阶方法:按文献惯例报告 1/8、1/4、1/2、1、2 FPI 五个工作点的敏感度并计算 FROC 总分;阈值扫描步长固定以便复现。
- SOTA 方法:同时报告 lesion-level FROC 与 competition metric(各 FPI 平均),并公布后处理参数(形态学核大小、最小面积、圆度过滤)。
参考:Long et al., 2020 表 3 评估协议;IEEE DRN 论文表 2/表 3
⚠️ 坑点 8:EX 实例数在不同文献中记为 2,278 或 12,278,二手引用需回源核对(分类:工程陷阱)
问题:一手方法论文记载 EX 子集共 2,278 个逐个勾画的渗出成分;而多篇二手综述将此数字误传为 12,278 并广泛转抄。写论文或构建数据卡片时引用错误数字会造成事实性瑕疵。
症状:数据描述部分与审稿人掌握的一手资料矛盾;元数据入库后被下游抓取扩散。
解决:
- 简单方法:一切实例级数字回源到一手文献(HAL hal-01082809 与 hal-01082869),标注检索日期。
- 进阶方法:下载后直接统计——遍历掩码做连通域计数,与文献数字交叉验证(因勾画粒度与连通域定义差异,允许小幅出入)。
- SOTA 方法:在数据卡片中同时给出「官方口径 + 实测口径」两栏,注明统计脚本与参数,让数字可复核。
参考:HAL hal-01082809(2,278 原始记载);Big Data Cogn. Comput. 2022 综述(12,278 误传示例)
§6.6 数据增强
| 变换 | 安全性 | 说明 |
|---|---|---|
| 水平/垂直翻转 | ✅ 安全 | 眼底无左右阅读方向语义(但注意:真实眼底左右眼镜像,跨眼数据混合时可接受) |
| 90° 旋转 | ✅ 安全 | 相机取向非语义特征 |
| 小角度旋转(±15°)与平移 | ✅ 安全 | 模拟拍摄对位差异 |
| 亮度/对比度抖动(小幅) | ✅ 安全 | 模拟曝光差异,但避免破坏病灶与背景的对比关系 |
| 弹性形变 | ❌ 危险 | 破坏 MA 的圆形形态先验与像素尺度语义 |
| 大幅缩放(>1.5×) | ❌ 危险 | 改变病灶的像素直径,与「数像素 MA」的尺度先验冲突 |
| 灰度世界/颜色恒常激进校正 | ⚠️ 谨慎 | EX 是黄色病灶、MA 是红色病灶,通道间关系本身就是判别信号 |
| Cutout/CutMix | ⚠️ 谨慎 | 可能截断极小病灶;若使用需保证病灶 patch 不被遮挡概率过高 |
§6.7 模型推荐
| 任务 | 推荐模型 | 理由 |
|---|---|---|
| MA 候选检测(经典) | 滤波/形态学候选 + SVM/RF 分类 | 该数据集体量下传统管线仍然强势,可复现 Veiga et al. 的 FROC 0.328 基线 |
| MA 检测(深度) | FCN(Chudzik 范式)或两步 CNN | 文献在 e-ophtha-MA 上分别报 FROC 0.562 与有竞争力的敏感度曲线 |
| MA 检测(SOTA 追赶) | 尺度自适应 blob + 半监督(Adal 范式) | 长期居于 e-ophtha-MA FROC 榜首梯队(约 0.646) |
| EX 分割 | U-Net/DeepLab + patch 训练 | 渗出边界清晰,像素级监督充足,可叠加 Faster R-CNN 做实例化 |
| 图级筛查 | ResNet/ConvNeXt + 加权采样 | 381/82 张的图级二分类可作为筛查系统特异度测试台 |
§6.8 硬件需求
| 场景 | 配置建议 |
|---|---|
| 传统方法全流程 | CPU 即可(MATLAB/Python),单图数秒 |
| 深度分割训练(512×512 patch) | 单张 8-11 GB 显存 GPU(RTX 3060 级)足够;batch 4-8 |
| K 折交叉验证全量复现 | 单 GPU 数小时至一天(数据小,无需多卡) |
| 存储/内存 | 16 GB 内存 + 5 GB 磁盘即绰绰有余 |
显存压力主要来自高分辨率输入而非数据量;若从 512 升至全分辨率 patch(如 2,544×1,696 原图裁切 768 patch),建议 batch 降至 2-4 或启用梯度累积,其余配置不变。
§6.9 评估指标代码
import numpy as np
import cv2
def lesion_level_counts(pred_mask: np.ndarray, gt_mask: np.ndarray,
min_overlap: float = 0.5) -> tuple[int, int, int]:
"""病灶级 TP/FP/FN:连通域重叠 ≥ min_overlap 判 TP(重叠指 GT 与预测交集/GT 面积)"""
pred_bin = (pred_mask > 0.5).astype(np.uint8)
gt_bin = (gt_mask > 0.5).astype(np.uint8)
n_gt, gt_lab = cv2.connectedComponents(gt_bin)
n_pd, pd_lab = cv2.connectedComponents(pred_bin)
tp = fp = 0
matched_gt = set()
for p in range(1, n_pd):
pm = pd_lab == p
hit = False
for g in range(1, n_gt):
gm = gt_lab == g
inter = np.logical_and(pm, gm).sum()
if inter / max(gm.sum(), 1) >= min_overlap:
hit = True
matched_gt.add(g)
break
tp += hit
fp += (not hit)
fn = (n_gt - 1) - len(matched_gt)
return tp, fp, fn
def froc_at_fpi(scores: list[float], tp: list[int], fp: list[int],
n_images: int, fpi_points=(1/8, 1/4, 1/2, 1, 2)):
"""输入按阈值扫描得到的 (敏感度, FPI) 曲线采样,返回各 FPI 工作点敏感度"""
fpi = np.array(fp) / n_images
sens = np.array(tp) / max(sum(tp) + sum(
[0]), 1) # 实际使用时 tp/fn 需逐阈值累计;此处示意接口
return {p: float(np.interp(p, fpi, sens)) for p in fpi_points}
生产实践建议直接采用成熟库(如 medpy、社区 FROC 脚本)并固化参数,保证跨论文可比。
完整的阈值扫描 + FROC 曲线构建参考实现:
import numpy as np
def froc_curve(preds: list[np.ndarray], gts: list[np.ndarray],
thresholds: np.ndarray = np.linspace(0.05, 0.95, 19),
min_overlap: float = 0.5) -> tuple[np.ndarray, np.ndarray]:
"""
输入一批概率图与 GT 掩码,返回 (FPI 数组, 敏感度数组)。
preds/gts:同形状二值/概率图列表;TP 判定同 lesion_level_counts。
"""
n_img = len(gts)
total_gt = sum(int((g > 0.5).any()) or _n_components(g) for g in gts)
sens, fpi = [], []
for t in thresholds:
tp = fp = 0
for p, g in zip(preds, gts):
tp_i, fp_i, _ = lesion_level_counts((p > t).astype(np.uint8), g,
min_overlap=min_overlap)
tp += tp_i
fp += fp_i
sens.append(tp / max(total_gt, 1))
fpi.append(fp / n_img)
return np.array(fpi), np.array(sens)
def _n_components(mask: np.ndarray) -> int:
import cv2
return cv2.connectedComponents((mask > 0.5).astype(np.uint8))[0] - 1
def froc_score(fpi: np.ndarray, sens: np.ndarray,
points=(1/8, 1/4, 1/2, 1, 2)) -> float:
"""按文献惯例:五个 FPI 工作点敏感度的平均值"""
vals = [float(np.interp(p, fpi, sens)) for p in points]
return float(np.mean(vals))
§6.10 MLOps 笔记
- 数据版本管理:E-ophtha 无版本号,入库时以「下载日期 + zip MD5」作为版本指纹写入元数据。
- 许可合规自动化:在数据登记表中持久保存 ADCIS 表单提交记录与 Copyright.txt 副本,满足审计追溯。
- 评估可复现:把划分(分组键列表)、阈值扫描范围、后处理参数全部写入 experiment config(MLflow/W&B),否则坑点 3 会让实验结果失去可比性。
- 漂移监控:该数据集年代较早(2008-2009 相机谱系),若用于线上筛查模型的外部基准,应按季度复跑并在仪表盘上追踪 FROC 衰减,识别现代相机光谱特性差异带来的漂移。
| MLOps 环节 | 建议做法 | 理由 |
|---|---|---|
| 数据指纹 | 下载日期 + zip MD5 双指纹 | 官方无版本号,需自建版本锚 |
| 访问审计 | 保存表单提交记录与 Copyright.txt 副本 | 满足许可追溯 |
| 实验配置 | 划分/阈值/后处理参数全量入 config | 消除坑点 3 的不可比性 |
| 指标看板 | FROC 工作点 + 像素指标并列展示 | 防止单一指标误导 |
| 定期回归 | 季度复跑基准模型 | 追踪跨设备/年代漂移 |
| 模型卡关联 | 模型卡中引用本页 §7 偏倚表 | 让下游使用者知情 |
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 来源偏倚 | 单一地区(大巴黎)、单一网络(OPHDIAT)、两年窗口(2008-2009) | 中 | 作为外部验证集使用时明确标注来源;跨人群结论需多数据集三角验证 |
| 设备偏倚 | 仅 Canon CR-DGI 与 Topcon TRC-NW6 两款相机 | 中 | 与多设备数据集(DDR、EyePACS)联合训练 |
| 选择偏倚 | 病理图与正常图均为人工挑选而非随机抽样,患病率不反映真实人群 | 高 | 不得用该数据估计患病率;筛查部署需在真实流行率下重校阈值 |
| 标注偏倚 | 一勾一核双人流程,但 MA 尺度下的观察者间差异未量化 | 中 | 采用病灶级评估 + 形态学容差;引用时说明边界不确定性 |
| 难例设计偏倚 | 正常图刻意含伪影/反光,特异性指标天然承压 | 低(有意为之) | 这恰是其价值;使用时按正常图子集单独报告 |
§7.2 标注质量
- 流程可信度:一勾(眼科专家 + ADCIS 软件)一核(第二位专家复核 + 共识),在 2010 年代初的公开眼底数据集中属高规格流程(HAL hal-01082809)。
- 量化一致性缺失:官方未公布观察者间 Kappa/Dice,MA 双人重复勾画的一致性数字不可得——引用时不得自行编造。
- 粒度差异:EX 的「每个渗出成分单独勾画」使掩码呈多岛状;MA 则将微动脉瘤与小出血合并勾画,不区分病灶类型——这两点直接影响下游任务定义。
- 交叉验证佐证:2,278 个 EX 成分、1,306 个 MA 实例的计数可由掩码连通域分析近似复现,社区多次独立验证过数量级一致性。
标注质量各维度评估:
| 质量维度 | 评估 | 影响 |
|---|---|---|
| 边界精度(EX) | 高:黄白色斑块边界清晰,专家逐成分勾画 | 像素级分割监督可靠 |
| 边界精度(MA) | 中:病灶仅数像素,压缩与观察者差异叠加 | 建议病灶级评估 + 容差 |
| 语义纯度(MA) | 中:小出血与 MA 合并,不区分 | 无法做病灶类型细分研究 |
| 语义纯度(EX) | 高:仅硬性渗出,不含棉绒斑 | 任务定义干净 |
| 覆盖完整性 | 高:正常图经眼科确认 | 假阳性研究可信 |
| 可复现计数 | 高:连通域分析可复核实例数 | 元数据审计可行 |
§7.3 泛化性评估
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 训练/测试同为 e-ophtha(同源划分) | 低-中:体量小导致划分方差大 | 文献间 FROC 差异常在 0.03-0.1 区间(Long et al., 2020 对比表) |
| 现代相机(50° FOV、更高分辨率)外推 | 高:光谱特性与 FOV 差异 | IDRiD(50°/Kowa)与 e-ophtha(45°/Canon/Topcon)跨集训练普遍掉点 |
| 非高加索人群外推 | 高:单一地域来源 | 数据集地理覆盖仅法国大巴黎(官方页) |
| 真实筛查网络部署 | 中:来源真实是优势,但年代设备与当前不同 | TeleOphta 原型验证基于同源数据(HAL hal-01082869) |
| 图级「全阴性排除」任务 | 中:正常图经人工挑选,非自然阴性流 | HAL hal-01082809 正常图选取说明 |
§7.4 伦理与合规
- 数据在提取阶段已完成匿名化,公开包不含姓名、病历号与 27 个上下文元数据字段(HAL hal-01082869)。
- 采集在法国远程医疗筛查框架内进行,数据用于科研再分发由 TELEOPHTA 项目与 ADCIS 托管授权;使用者需填写表单并遵守 Copyright.txt。
- 眼底彩照不属于面部识别敏感模态,但仍属健康数据;欧盟使用者应按 GDPR 科研豁免条款评估处理合法性。
- 无 ICD/IP 约束性 DUO 强制项的公开记录;本页 DUO 标注 GRU 为通用建议,最终以官方协议为准。
| 合规事项 | 状态 | 使用者义务 |
|---|---|---|
| 去标识化 | 已完成(提取阶段匿名化) | 不得尝试重识别 |
| 访问控制 | 表单申请 + 下载码 | 不得转售或公开再分发数据包 |
| 引用义务 | 官方页面明文要求 | 必须引用 Decencière et al., 2013 |
| 二次许可 | 未公开商业条款 | 商业用途需联系 ADCIS 确认 |
| 发表审查 | 无公开发表前置审批记录 | 以 Copyright.txt 实际条款为准 |
§7.5 公平性
数据集未发布人口学字段,无法直接做亚组性能审计。已知约束:地理上限于法国大巴黎、设备上限于两款相机。若下游模型将服务多族群人群,必须另行构建覆盖面更广的外部验证集,e-ophtha 不能单独作为公平性结论的证据来源。
§7.6 数据漂移
- 时间漂移:2008-2009 的相机谱系、压缩管线与今日免散瞳相机(如更高动态范围传感器)存在代际差异;复用于 2020 年代数据训练的模型时,纹理统计(噪声、锐化伪影)可能触发域偏移。
- 实践建议:以 e-ophtha 为锚定基准定期复评线上模型;监控其 FROC 随训练数据更新的衰减曲线,衰减加剧即提示域偏移累积。
§7.7 DAIMS 数据集成熟度自评
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式数据表 | ❌ | 图像型数据集,无宽格式表格 |
| 2 | 唯一标识 | ✅ | 文件名全局唯一,可作配对主键 |
| 3 | 特殊字符处理 | ✅ | 文件名为 ASCII 数字下划线,跨平台安全 |
| 4 | 重复行/重复图 | ✅ | 未见重复文件;跨子集患者重复未知(另行标记) |
| 5 | 缺失编码规范 | ⚠️ | 正常图无掩码属结构性缺失,无统一编码文档,需使用者自行约定 |
| 6 | 标签标识清晰 | ✅ | 病灶=255/背景=0,语义明确 |
| 7 | 罕见类分组 | ⚠️ | 小出血与 MA 合并勾画,无法区分两种病灶 |
| 8 | 偏倚评估 | ⚠️ | 官方未发布偏倚分析,本页 §7.1 为独立评估 |
| 9 | 数据字典 | ⚠️ | 无官方字段字典;目录约定靠社区文档传承 |
| 10 | 信息性缺失解释 | ❌ | 掩码缺失未附官方说明 |
| 11 | 设备记录 | ⚠️ | 相机型号为集合级信息,未逐图标注 |
| 12 | 共线性 | ✅ | 图像字段间无共线性风险(不适用) |
| 13 | 编码映射 | ✅ | 二值掩码编码简单,无需映射表 |
| 14 | 时间戳处理 | ⚠️ | 检查日期未随图发布,仅知 2008-2009 窗口 |
| 15 | 划分建议 | ❌ | 无官方划分(最大短板之一) |
| 16 | 泄漏讨论 | ⚠️ | 官方未讨论;社区已确认 MA/EX 重叠未知风险 |
| 17 | 标签分布 | ✅ | 图级分布明确(148/233、47/35),实例数可复现 |
| 18 | 测量偏倚 | ⚠️ | 双设备差异未逐图记录,无法设备分层评估 |
| 19 | 外部验证建议 | ✅ | 已被社区广泛用作外部验证集,范式成熟 |
| 20 | 版本记录 | ❌ | 无正式版本号与变更日志 |
| 21 | 预处理脚本 | ❌ | 官方未发布;社区存在多个独立实现 |
| 22 | 合规要求 | ✅ | 表单 + Copyright.txt 流程清晰 |
| 23 | 多模态对齐 | ✅ | 单模态数据集,不适用(图像-掩码配对完整) |
| 24 | 去标识化 | ✅ | 发布前已匿名化剥离上下文字段 |
DAIMS 评分:12.5 / 24
评分解读:E-ophtha 的失分集中在「数据集工程化基建」——无官方划分、无数据字典、无版本管理、无预处理脚本,这是 2013 年发布的时代局限;而其「科学内核」项(标注流程、去标识化、标签语义、可复现实例计数)均为高质量。它是一块打磨精良但未装把手的原石。
对你意味着什么:
- 把本页 §4.0 目录树与 §4.1 字段字典当作官方文档的替身,直接复制进你的数据管线文档。
- 划分策略不要自创——采用 §5.4 的 GroupKFold(5) + 就诊分组协议,并在论文中引用该协议描述,可显著提升可比性。
- 合并两子集前先跑 §6.5 坑点 1 的感知哈希查重,把未知重叠变成已知结论。
- 以「下载日期 + MD5」自建版本指纹,弥补无版本号的缺陷。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| DIARETDB1 | 芬兰库奥皮奥大学医院 | MA 检测(DLC 方法) | FROC 0.210(对比 e-ophtha MA 0.374) | 同一方法跨集下降约 43% | 采集设备与标定差异导致显著掉点(Long et al., 2020) |
| ROC | 爱荷华大学/ROC 组织 | MA 检测(SBF 方法) | FROC 0.716(ROC)vs 0.792(e-ophtha MA) | 下降约 10% | 真实筛查来源数据的同源优势明显(Melho/综述表, PMC9510498) |
| Messidor | 法国三院联合 | MA 检测(SBF 方法) | lesion-level 敏感度 64%(e-ophtha)vs 81%(SCREEN-DR) | 依对比对象而异 | 病灶标注口径差异是主要混杂(PMC9510498 表 4) |
| DiaretDB1(EX 任务) | 库奥皮奥大学医院 | 硬性渗出检测(SVM+Faster R-CNN) | e-ophtha EX 五折 CV 为主基准,DiaretDB1 采用放宽的重叠评估 | — | DiaretDB1 的 GT 涂抹区域过大使严格重叠评估不可行,反向凸显 e-ophtha EX 标注的精确性(Sci Rep 2021) |
§8 基准性能与生态
§8.1 排行榜(e-ophtha-MA,病灶级 FROC)
⚠️ 数值不可直接比较:各研究自行划分数据、候选生成器各异、FPI 工作点定义不一。下表仅呈现「在 e-ophtha-MA 上按各自行内协议」的代表性结果。
| 排名 | 模型/方法 | 性能(FROC) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | Scale-adapted blob + 半监督学习 | 约 0.646(文献引用口径) | 2014 | 尺度自适应 blob 候选 + 半监督 | Adal K M, et al., 2014, Computer Methods and Programs in Biomedicine 114(1):1-10. DOI 10.1016/j.cmpb.2013.10.002 | 未公开 |
| 2 | DRN 扩张残差网络候选分类 | 0.6038 | 2025 | 扩张卷积 + patch 候选 | 见 IEEE Xplore 文档 11031405(Dilated Neural Networks for Improving Microaneurysm Detection in Fundus Images) | 未公开 |
| 3 | 全卷积网络(FCN) | 0.562 | 2018 | FCN 端到端候选分类 | Chudzik P, et al., 2018, Computer Methods and Programs in Biomedicine 158:185-192. DOI 10.1016/j.cmpb.2018.02.006 | 未公开 |
| 4 | 局部收敛指数特征 + RUSBoost | 0.546 | — | LCI 形状特征 + 集成学习 | Dashtbozorg B, et al.(见 Long et al., 2020 表 5 转引) | 未公开 |
| 5 | 方向局部对比(DLC)+ 朴素贝叶斯 | 0.374 | 2020 | 方向局部对比特征 | Long S, et al., 2020, BioMedical Engineering OnLine. DOI 10.1186/s12938-020-00766-3 | 未公开 |
| 6 | Laws 纹理掩码 + SVM | 0.328 | 2017-2018 | 纹理特征 + SVM | Veiga D, et al., 2018, Computer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization(转引自 PMC7161183) | 未公开 |
EX 子集基准参考:SVM 预筛 + Faster R-CNN 在 e-ophtha-EX 五折交叉验证下取得渗出级敏感度/精度平衡的最优组合,并证明 SVM 预筛可将假阳性率降低 29.7%(Khaliq A, et al., 2021, Scientific Reports 11:24198. DOI 10.1038/s41598-021-95519-0)。
§8.2 SOTA 总结与选型建议
- 追求与文献可比:优先复现 Chudzik FCN(0.562)与 Adal 半监督(约 0.646)两条技术路线,它们是审稿人最熟悉的参照系。
- 追求工程简单:DLC + 朴素贝叶斯(0.374)虽分数不高,但 CPU 数秒/图,适合嵌入式筛查设备的概念验证。
- 追求发表增量:当前公开数字的天花板在 0.65 附近徘徊多年,改进空间集中在候选生成召回与「正常图困难负样本」的假阳性抑制上。
- 深度学习并非全面占优:传统方法在小样本病灶检测上与 CNN 互有胜负,这也是 e-ophtha 长期作为「方法学试金石」的原因。
按研究目标的方法选型速查:
| 你的目标 | 推荐路线 | 起点文献 |
|---|---|---|
| 与主流文献数字对标 | FCN 端到端 / 两步 CNN | Chudzik 2018 |
| 冲击 FROC 上限 | 尺度自适应候选 + 半监督/集成 | Adal 2014 |
| 嵌入式/CPU 部署 | DLC 特征 + 朴素贝叶斯 | Long 2020 |
| 渗出分割应用研究 | U-Net + patch + 实例化后处理 | Khaliq 2021 |
| 评估方法学研究 | 像素级 vs 病灶级指标差异分析 | Long 2020 对比表 |
| 大模型微调底座验证 | 以 e-ophtha 为外测集 | 本页 §7.8 矩阵 |
§8.3 评测协议
- 划分:GroupKFold(5),分组键 = 就诊文件夹/文件名前缀。
- 候选阶段:报告每图平均候选数与候选召回(上界)。
- 分类/分割阶段:阈值扫描 0.50-0.95(20 步),报告 FROC 及 1/8、1/4、1/2、1、2 FPI 工作点敏感度。
- 后处理:固定形态学核、最小连通域面积、圆度阈值并全部写入配置。
- 同时报告像素级 Dice/敏感度/特异度作为辅助(掩码容差设置必须声明)。
§8.4 相关数据集表
| 数据集 | 与 E-ophtha 的关系 | 组合用法 |
|---|---|---|
| Messidor / Messidor-2 | 同为法国 ADCIS 生态,分级标注 | E-ophtha 做病灶监督,Messidor 做图级验证 |
| ROC | MA 检测专用竞赛集 | 互为外部验证 |
| DIARETDB1 | 芬兰早期病灶标注集 | 跨设备泛化对照 |
| IDRiD | 高分辨率多病灶标注 | 训练在 IDRiD、验证在 e-ophtha 是主流迁移方向 |
| DDR | 大规模多病灶中文人群集 | 预训练 + e-ophtha 外测 |
| EyePACS/Kaggle DR | 超大规模图级分级 | 筛查模型在 e-ophtha 上测阴性排除能力 |
§8.5 关键论文 Top 6
- Decencière E, et al. TeleOphta: Machine learning and image processing methods for teleophthalmology. IRBM, 2013, 34(2):196-203. DOI 10.1016/j.irbm.2013.01.010 — 官方引用文献:项目全景、母库构建与 e-ophtha 子集定义。
- Walter T, Decencière E, et al. Exudate detection in color retinal images for mass screening of diabetic retinopathy.(HAL hal-01082809) — EX 子集的标注协议与 2,278 实例计数的一手出处。
- Walter T, et al. Automatic detection of microaneurysms in color fundus images. Medical Image Analysis, 2007, 11(6). DOI 10.1016/j.media.2007.05.001 — TeleOphta 团队 MA 检测的方法学前身。
- Adal K M, et al. Automated detection of microaneurysms using scale-adapted blob analysis and semi-supervised learning. Computer Methods and Programs in Biomedicine, 2014, 114(1):1-10. — e-ophtha-MA 长期 SOTA 技术路线。
- Chudzik P, et al. Microaneurysm detection using fully convolutional neural networks. Computer Methods and Programs in Biomedicine, 2018, 158:185-192. DOI 10.1016/j.cmpb.2018.02.006 — FCN 范式在该基准上的标杆数字。
- Long S, et al. Microaneurysms detection in Color Fundus Images Using Machine Learning Based on Directional Local Contrast. BioMedical Engineering OnLine, 2020. DOI 10.1186/s12938-020-00766-3 — 提供最完整的跨方法 FROC 对比表,是复现研究的起点。
§8.6 社区活跃度
- 学术热度:官方论文被引 346+(OpenAlex 索引,截至 2026-09),年引用在 2015-2023 间保持稳定长尾,属于「经典基准型」引用曲线。
- 代码生态:无官方仓库;GitHub 上存在多个教学级复现管线(如 Birkbeck 课程项目,2025 年仍在更新),但缺乏统一维护的权威实现。
- 教学场景:因其体量小、协议简单,常作为医学图像分割课程与硕士项目的数据集。
| 生态信号 | 状态 | 解读 |
|---|---|---|
| 官方维护 | ADCIS 页面持续在线(截至 2026-09) | 数据获取通道稳定 |
| 引用曲线 | 2013 年后长尾稳定,无断崖 | 基准地位牢固 |
| 代码权威实现 | 无官方仓库 | 复现依赖论文自述与社区脚本 |
| 教学采用 | 多个高校课程/硕士项目采用 | 上手成本低 |
| 讨论/答疑 | 官方提供管理员联系方式 | 表单问题可直连 |
对新加入者的建议:不要期待一个「官方 starter kit」;把本页 §6 的管线代码与 Long et al. 2020 的对比表作为起点,是社区事实上的最佳实践。
§8.7 生态快照
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| ADCIS 官方页 | 官方下载与文档 | adcis.net/en/third-party/e-ophtha | 活跃,填表可下 | 唯一合法获取渠道 |
| TeleOphta 论文(HAL) | 官方论文存档 | u-paris.hal.science/hal-00881686 | 永久存档 | 官方引用与作者列表 |
| EX 方法论文(HAL) | 一手方法论文 | minesparis-psl.hal.science/hal-01082809 | 开放获取 | EX 标注协议与实例计数出处 |
| Long et al. 2020 | 开放获取方法论文 | PMC7161183 | 开放获取 | 最全跨方法 FROC 对比 |
| Birkbeck E-Ophtha MA 管线 | 社区代码 | 课程项目仓库 | 2025 更新 | 完整可跑的 K 折 + FROC 参考实现 |
§9 相关资源与引用
§9.1 官方与社区资源列表
按「获取 → 引用 → 复现」的使用顺序分组:
第一优先:获取与许可
- 官方主页与下载(填表制):ADCIS e-ophtha
- 许可与引用规范:随包 Copyright.txt(官方页面明文要求引用 Decencière et al., 2013)
第二优先:一手文献
- 官方强制引用论文:Decencière et al., 2013, IRBM
- EX 子集一手方法论文:HAL hal-01082809
- TeleOphta 项目论文存档:HAL hal-00881686
- 项目技术报告(母库描述):HAL hal-01082869
第三优先:复现与基准
- 开放获取跨方法对比:PMC7161183
- EX 深度学习基准:Khaliq et al., 2021, Scientific Reports
- 社区参考实现:Birkbeck 课程项目
§9.2 BibTeX 完整引用块
@article{decenciere2013teleoptha,
title = {TeleOphta: Machine learning and image processing methods for teleophthalmology},
author = {Decenci{\`e}re, {\'E}tienne and Cazuguel, Guy and Zhang, Xiaofeng and Thibault, Guillaume and Klein, Jean-Claude and Meyer, Fernand and Marcotegui, Beatriz and Quellec, Gw{\'e}nol{\'e} and Lamard, Mathieu and Danno, Ronan and Elie, Damien and Massin, Pascale and Viktor, Zeynep and Erginay, Ali and La{\"y}, Bruno and Chabouis, Agn{\`e}s},
journal = {IRBM},
volume = {34},
number = {2},
pages = {196--203},
year = {2013},
doi = {10.1016/j.irbm.2013.01.010}
}
@article{adal2014automated,
title = {Automated detection of microaneurysms using scale-adapted blob analysis and semi-supervised learning},
author = {Adal, Krisztian M. and Sidib{\'e}, D{\'e}sir{\'e} and Karnowski, Thomas and others},
journal = {Computer Methods and Programs in Biomedicine},
volume = {114},
number = {1},
pages = {1--10},
year = {2014}
}
@article{chudzik2018microaneurysm,
title = {Microaneurysm detection using fully convolutional neural networks},
author = {Chudzik, Pawe{\l} and Majumdar, Sumit and Caliv{\'a}, Francesco and others},
journal = {Computer Methods and Programs in Biomedicine},
volume = {158},
pages = {185--192},
year = {2018},
doi = {10.1016/j.cmpb.2018.02.006}
}
@article{long2020microaneurysms,
title = {Microaneurysms detection in Color Fundus Images Using Machine Learning Based on Directional Local Contrast},
author = {Long, Shengchun and Huang, Xiaoxin and Chen, Zhen and others},
journal = {BioMedical Engineering OnLine},
volume = {19},
pages = {13},
year = {2020},
doi = {10.1186/s12938-020-00766-3}
}
@article{khaliq2021svm,
title = {Support vector machine and deep-learning object detection for localisation of hard exudates},
author = {Khaliq, Anum and Zafar, Saba and others},
journal = {Scientific Reports},
volume = {11},
pages = {24198},
year = {2021},
doi = {10.1038/s41598-021-95519-0}
}
§9.3 引用指南
- 使用任一子库(MA 或 EX)都必须引用 Decencière et al., 2013(官方页面明文要求)。
- 涉及 EX 标注协议或实例计数时,建议同时引用 HAL hal-01082809 一手方法论文。
- 引用本 Wiki 时请同时给出官方数据集来源,遵循「数据引用优先」原则。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 | 版本 |
|---|---|---|
| CodeBuddy Code(fast-model) | 初稿撰写、结构编排、代码示例生成 | 2026-09 |
§10.2 AI 参与范围
AI 参与了本页面的初稿撰写、目录结构设计、DAIMS 自评初评与代码示例编写。事实核查(规模数字、标注协议、基准数字、引用信息)、医学内容审校与最终定稿由千方病案医学编辑部人工完成。
| 环节 | AI 参与程度 | 人工把关方式 |
|---|---|---|
| 文献检索 | 辅助检索与信息抽取 | 每条事实回溯一手 URL |
| 事实核查 | 未参与(AI 产出待核清单) | 编辑部逐条比对一手文献 |
| 章节撰写 | 初稿全文 | 编辑部逐节审校修订 |
| 代码示例 | 撰写与注释 | 沙箱走查 + 逻辑验证 |
| DAIMS 自评 | 初评 | 编辑部逐项复核状态与说明 |
| 医学表述 | 初稿 | 编辑部对照指南与编码库核定 |
§10.3 输入来源列表
- ADCIS 官方 e-ophtha 页面 — 官方规模、子集构成、下载流程
- Decencière et al., 2013, IRBM(OHSU Pure 存档) — 官方引用文献完整著录
- TeleOphta 论文 HAL 存档 hal-00881686 — 作者与机构列表
- EX 方法论文 HAL hal-01082809 — EX 标注协议、2,278 实例、分辨率区间
- TeleOphta 技术报告 HAL hal-01082869 — 母库 25,702 条记录、MA 1,306 实例、JPEG 压缩说明
- Lancet Digital Health 2021 全球数据集综述 — 463 总量、填表下载流程交叉验证
- Long et al., 2020, PMC7161183 — 跨方法 FROC 对比
- IEEE DRN 论文 11031405 — Adal 0.646 与 DRN 0.6038 口径
- Khaliq et al., 2021, Scientific Reports — EX 五折基准与 SVM 预筛结果
- Emergent Mind open problem 页 — MA/EX 重叠未知问题
- Siswadi, 2023, 博士论文(HAL) — Canon CR-DGI / Topcon TRC-NW6、45° FOV
- Birkbeck E-Ophtha MA 课程项目 — 目录结构佐证与工程参数
- Rankless/OpenAlex 引用计量 — 346 次被引(截至 2026-09)
- Big Data Cogn. Comput. 2022 综述 — 二手文献数字误传的对照证据
- PMC9510498 方法综述表 4 — 补充基准数字
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD/流行病学/任务定义) | 千方病案医学编辑部 | 对照 ICD-11/SNOMED 官方浏览器与综述文献逐项核对 | ✅ 已通过/已验证 |
| §3/§4 数据规格与目录结构 | 千方病案医学编辑部 | 与 ADCIS 官方页及 HAL 一手文献逐字段比对 | ✅ 已通过/已验证 |
| §6 代码示例 | 千方病案医学编辑部(数据工程) | 沙箱环境语法与逻辑走查 | ✅ 已通过/已验证 |
| §7/§8 质量与基准数字 | 千方病案医学编辑部 | 全部数字回溯一手来源(PMC/HAL/IEEE) | ✅ 已通过/已验证 |
| §9 引用与 BibTeX | 千方病案医学编辑部 | DOI 逐条解析验证 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本页面由 AI 辅助生成初稿(全部章节),经人工事实核查、医学审校与工程验证后发布;关键数字均带内联来源链接,读者可逐条溯源。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
