信息速览
INFOBOX — OCTDL 一屏速览
维度 内容 本质 开源黄斑 OCT B-scan 单图分类数据集:2064 张 2D 图像 / 821 患者 / 7 类疾病,图级 + 病理亚型双标签 团队 FAU Erlangen-Nürnberg(德国)+ 乌拉尔联邦大学 + Professorskaya Plus 眼科诊所 + 乌拉尔国立医科大学(俄罗斯叶卡捷琳堡)+ Flinders University(澳大利亚);通讯 Mikhail Kulyabin 论文 Sci Data 11, 365 (2024),doi:10.1038/s41597-024-03182-7;PMID 38605088;PMCID PMC11009408;arXiv:2312.08255 时间线 Received 2023-12-14 / Accepted 2024-03-22 / Published 2024-04-11;arXiv v1 2023-12-13 设备 Optovue Avanti RTVue XR,黄斑光栅扫描,轴向 5 μm / 横向 15 μm,SLD 840 nm,中心凹对准 类别 AMD 1231 / DME 147 / ERM 155 / NO 332 / RAO 22 / RVO 101 / VID 76(共 2064) 亚型标签 MNV、DRIL、drusen、ME、MH(subcategory/condition 列承载) 标注 7 名医学生初标 → 2 名资深专家(A.S./A.K.)复标 → 诊所专家负责人(A.N.)终审;每 session 学生 ≤100 图 / 专家 ≤200 图、每日 1 session 基线 VGG16 ACC 0.859 / ResNet50 ACC 0.846(7 类);类平衡准确率 ≈0.979,AMD 0.963 最高、RVO 0.633 最低 划分 60:10:20 训练/验证/测试,patient 级切分防泄漏(原文如此,三项和为 90 的笔误见坑 4) 伦理 乌拉尔联邦大学伦理委员会 Conclusion No. 1(2023-02-01);全体受试者书面知情同意 获取 Zenodo concept DOI 10.5281/zenodo.10370472(当前版本 record 10839556,v2,2024-03-19)+ Mendeley 10.17632/sncdhf53xc(v4)双托管 文件 OCTDL.zip 398.6 MB(md5 dec9766f…)+ OCTDL_labels.csv 109.5 kB(md5 2fced789…),md5 下载后必验 许可 数据 CC BY 4.0|代码 Apache-2.0|论文 CC BY 4.0;Kaggle 第三方镜像误标 MIT(坑 3) 生态 论文自述第二大开源 OCT 图像数据集(仅次于 Kermany 207130 张);Table 1 对比 17 个公开 OCT 数据集 发布物 论文+预印本+数据+代码四件套,版本锚点各自独立(§2.7 对照表) 库内互链 octa-500(防混淆对照,勿混)、oct2017/Kermany、retouch、eyepacs
OCTDL 是一份"把常见视网膜疾病各拍一张标准照"的开放数据集:2064 张以中心凹为中心的黄斑 OCT B-scan,按七类疾病分好文件夹,每张图带疾病组与病理亚型双标签,全部由 Optovue Avanti RTVue XR 在同一采集协议下生成。它诞生于一个具体缺口——Kermany 2016 年的十万张级数据集虽然巨大,但设备单一(Spectralis)、类别只有四类且多年未更新;OCTDL 用七类疾病、亚型标签、patient 级划分和完整的三级人工标注流水线,为 OCT 图像分类提供了第二个大规模开源锚点,论文自述其为"第二大开源 OCT 图像数据集"。
导语读法三则:
- 只想下数据:直奔 §6 获取与许可——Zenodo/Mendeley 双托管都可用,CC BY 4.0,注意别把许可证张冠李戴(坑 3)。
- 关心标注质量:直奔 §3 三级标注流水线——七名学生、两名专家、一名终审的分工与防疲劳设计。
- 做模型评测:直奔 §5 基准实验——官方 VGG16/ResNet50 数字在此,混训跌分与 RVO 凹陷两处反直觉结果值得先读(坑 5、坑 6)。
§0 导读:这个数据集解决什么问题
OCT(光学相干断层扫描)是眼科最常用的横断面成像技术:用低相干光干涉重建视网膜深度剖面,能分辨玻璃膜疣、视网膜内囊肿、黄斑裂孔等微细形态改变,是 AMD、糖尿病视网膜病变等致盲眼病诊断与随访的支柱。深度学习做 OCT 图像分类的第一波浪潮几乎全部建立在 Kermany 数据集(2016 年挂在 Kaggle 上、2018 年发 Cell 论文、207130 张 B-scan)之上——它至今仍是规模之王,但有三个结构性问题:设备只有 Spectralis 一种;标签只有 CNV/DME/Drusen/NO 四类;标注依赖"分级评分员梯队"(tiered grading),亚型信息基本没有。
OCTDL 的回答分四层。第一层是类别扩展:从四类扩到七类,新增 ERM(视网膜前膜)、RAO(视网膜动脉阻塞)、RVO(视网膜静脉阻塞)、VID(玻璃体黄斑界面疾病)四个在 Kermany 里缺席的临床常见组。第二层是标签加深:CSV 里每张图同时携带疾病组(disease)与病理亚型(subcategory:MNV、DRIL、drusen、ME、MH),使跨数据集并类成为可能——论文演示了 DME⊂DR、MH⊂VID、drusen/MNV 为 AMD 早晚期的合并逻辑。第三层是协议透明:三级标注流水线(学生初标→专家复标→主任终审)写得可以照抄复现,连"每 session 最多标多少张"这种防疲劳细节都给全了。第四层是开放彻底:数据 CC BY 4.0 双托管(Zenodo+Mendeley)、代码 Apache-2.0 挂 GitHub、论文 CC BY 4.0 开放获取——从论文到代码到数据全链条无墙。
§0 读法三则:
- 这个条目是"数据+论文+代码"三件套:本体是 2064 张带标签 JPG,论文给基线数字,GitHub 给可跑通的训练框架(hydra+pytorch)——三者许可各不相同(§6)。
- 全文统计数字均出自论文正文/表格与 Zenodo API 实抓;两处口径异常(60:10:20 笔误、Kermany 年份正文 2019 vs 表格 2018)已在坑 4 与坑 8 存照。
- 检索时若把"OCT-500"当作独立数据集去搜,大概率撞上的是 OCTA-500 的别名——那是另一个数据集(库内 octa-500 条目),与 OCTDL 无关(坑 1)。
0.1 OCT 技术三十秒:理解数据集前的最小知识包
论文引言给出的技术脉络足以让非眼科读者建立工作模型:
- 物理原理:OCT 利用低相干光干涉(low coherent light interferometry)探测背散射的近红外光,重建生物组织样本的深度剖面。一束光射向组织,与组织表面及深层返回的反射光形成干涉图样;干涉条纹由探测器记录相位差,通过测量条纹时间延迟随深度的变化,生成组织内部结构的 2D 图像。每个像素的光强对应来自特定深度的反射波,灰度图像据此可视化组织分层(§2.6.7)。
- 历史坐标:视网膜 OCT 成像由 Huang 等人于 1991 年首次提出(论文引文 5,Science 1991)——从实验室原理到眼科标准工具的三十年里,OCT 已成为"最广泛使用、发展最快的医学成像技术之一"(论文原文)。
- 临床覆盖:OCT 已从早期仅覆盖黄斑区扩展到血管结构(OCTA),可监测与确认多种常见及致盲眼病——论文点名青光眼(glaucoma)、糖尿病视网膜病变(diabetic retinopathy)与年龄相关性黄斑变性(AMD)三大适应证。
- 设备光谱:第一代设备的分辨率已逐步改进,图像质量足以分辨更细微的视网膜形态变化——这也是"设备型号决定像素风格"的根源:不同厂商/机型的 OCT 图像在噪声、分辨率、伪影模式上存在系统性差异(§5.4 混训跌分的技术根源)。
理解了这四条,OCTDL 的设计选择都能落到实处:单设备(控制像素风格变量)、单中心(控制采集协议变量)、七类(覆盖临床主干)、亚型标签(弥合疾病分类学与病理实体语义)。
0.2 为什么这条目叫 octdl 而不是 oct-500
本条目在生产过程中经历了一次完整改道:原始派发 slug 是 oct-500(候选简介为"视网膜 OCT 与 OCTA 双模态数据集,约 500 例体数据")。三轮核验证明该简介实指 OCTA-500——决定性证据是 PMC11537946 的原句 “The OCT500 dataset can be found here: https://ieee-dataport.org/open-access/octa-500”,而库内 octa-500 条目(rid 341)已经完整覆盖该数据集。按"核验证伪即就地改道"的纪律,本任务改道至 OCTDL(SQL 查重空闲、三源齐备、CC BY 4.0),完整决策链存照于同目录 FACTS.md §0。
把这段写进条目正文而非仅留档,是因为它本身就是 OCT 域检索生态的实证案例:“OCT-500” 这个字符串在文献里确实存在,但它指向 OCTA-500 或商用设备,永远不指向一个独立数据集。任何以近名推理替代证据链的做法,在 OCT 领域都会翻车。
§1 数据集速览:速览十四问
Q1:OCTDL 的"2064 张"是什么粒度?
单张 2D OCT B-scan(横断面扫描线),不是体数据(volume)。全部图像来自黄斑光栅扫描,以中心凹为中心,扫描长度与图像分辨率按采集时动态设定——这也是它图像宽高不统一的根源(CSV 里逐张记录 image_width/image_height)。
Q2:七类疾病分别是什么、各有多少?
AMD(年龄相关性黄斑变性)1231 张/421 人;DME(糖尿病黄斑水肿)147/107;ERM(视网膜前膜)155/71;NO(正常)332/110;RAO(视网膜动脉阻塞)22/11;RVO(视网膜静脉阻塞)101/50;VID(玻璃体黄斑界面疾病)76/51。合计 2064 张/821 人。
Q3:患者是什么背景?
年龄 20-93 岁(均值 63 岁),男:女 = 3:2,采集地为俄罗斯叶卡捷琳堡(Professorskaya Plus 眼科诊所)。年龄、性别、眼别(OD 右眼/OS 左眼)只对可公开的患者提供——CSV 中相应字段可能缺失。
Q4:谁标的,怎么保证质量?
三级流水线:7 名受训医学生独立标注全数据集(分歧讨论至共识、模糊者筛出复核)→ 2 名资深临床专家(A.S.、A.K.)独立复标(分歧共识解决)→ 诊所专家负责人(A.N.)确认全部最终诊断。学生每 session 最多 100 张、专家最多 200 张,每人每天只做一个 session。
Q5:除了疾病类别还有别的标签吗?
有。subcategory 列承载病理亚型:MNV(黄斑新生血管膜)、DRIL(视网膜内层结构紊乱)、drusen(玻璃膜疣)、ME(黄斑水肿)、MH(黄斑裂孔);另有 condition 列。这些亚型标签是跨数据集并类的钥匙(论文用它们把 OCTDL 与 OCTID/Kermany 合并训练)。
Q6:官方基线跑出什么成绩?
7 类分类:VGG16 ACC 0.859 / F1 0.869 / AUC 0.977;ResNet50 ACC 0.846 / F1 0.866 / AUC 0.988。类内平衡准确率约 0.979——但 AMD 0.963 最高、RVO 0.633 最低,少数类识别远比总分难看。
Q7:和 OCTA-500 什么关系?
没有关系,只有"名字像、设备像"。OCTDL 是 OCT 结构成像 B-scan 分类(俄德团队,2064 张 2D 图);OCTA-500 是 OCTA 血管成像体数据(中国团队,500 受试者的 3D volume + 血管分割标签)。检索"OCT-500"命中的文献别名指向的是 OCTA-500(坑 1)。
Q8:在哪下、什么许可?
Zenodo(concept DOI 10.5281/zenodo.10370472,当前版本 record 10839556)与 Mendeley Data(10.17632/sncdhf53xc,v4)双托管,OCTDL.zip 398.6 MB + OCTDL_labels.csv 109.5 kB,数据许可 CC BY 4.0。代码与训练框架在 GitHub(Apache-2.0)。注册、申请、审批统统不需要。
Q9:论文里有哪些"数字要小心"?
三处:划分比例 60:10:20 三项之和为 90(原文笔误,坑 4);正文说 Kermany “published in 2019” 而 Table 1 与 Cell 论文均为 2018(坑 8);Zenodo 与 Mendeley 版本号一个 v2 一个 v4、文件大小 398.6 MB vs 380 MB(各平台独立打包,坑 7)。
Q10:数据集还在更新吗?
Zenodo 描述承诺 “will be updated periodically”,论文结论段预告将扩充遗传性视网膜营养不良与早产儿视网膜病变等稀有病——但截至本条目抓取时点(2026-09-27),2024-03-19 的正式版之后未见新版本落地。
Q11:eye/sex/year 这几列缺失怎么办?
这三列只对"信息可公开"的患者填充,属设计内缺失而非数据事故。用法上:做人口学统计时先跑缺失率(总体+按 disease 分层);做模型输入时不要用这三列当特征(缺失模式可能与疾病类别相关,会引入偏倚);论文口径的人群数字(20-93 岁/均值 63/男:女=3:2)直接引用即可,不必自行从缺失样本重算。
Q12:图像宽高不统一,会影响批量处理吗?
会——这正是 CSV 提供 image_width/image_height 两列的原因。三种处理路线:官方默认(中心裁剪+512×512 归一化,最简单);padding 到方形再缩放(保留全部视野,preprocessing.py --padding 开关);按宽高分层分析(把尺寸当作元数据特征而非噪声,适合设备协议研究)。无论哪条路,把"尺寸-标签"的关联检查放进 EDA——若某类疾病系统性对应某尺寸段,模型可能学到协议捷径。
Q13:NO(正常)类的"正常"是怎么定义的?
论文未给出"正常"入选的临床排除清单细节(如是否排除早期 drusen);NO 类由三级标注流程判定(§3),其中"ambiguous diagnoses screened out"机制负责边界案例。严谨的做法是把 NO 当"临床判读正常"而非"无任何病理改变"使用,需要在论文里做细粒度主张时先做自己的抽样复核。
Q14:可以用 OCTDL 训练后再到 OCTA-500 上测吗?
不能直接对标——两者模态不同(OCT 结构 B-scan vs OCTA 血管成像)、数据组织不同(2D 图 vs 3D 体数据)。可行的桥接方式是患者级多模态研究(同机不同模态的互补采集),或以两者为 Optovue 口径对照组做跨设备风格研究;直接迁移标签或模型权重没有意义。
§2 数据构成与规格
2.1 总量与分布(论文 Table 2 原文口径)
| 疾病 | 标签 | 图像数 | 患者数 | 占比 |
|---|---|---|---|---|
| Age-related Macular Degeneration | AMD | 1231 | 421 | 59.6% |
| Diabetic Macular Edema | DME | 147 | 107 | 7.1% |
| Epiretinal Membrane | ERM | 155 | 71 | 7.5% |
| Normal | NO | 332 | 110 | 16.1% |
| Retinal Artery Occlusion | RAO | 22 | 11 | 1.1% |
| Retinal Vein Occlusion | RVO | 101 | 50 | 4.9% |
| Vitreomacular Interface Disease | VID | 76 | 51 | 3.7% |
| 合计 | — | 2064 | 821 | 100% |
两点结构观察。其一,AMD 独占近六成——这与临床流行病学一致(AMD 是老年黄斑疾病首因),但对模型训练意味着"多数类引力":基线里 AMD 类内准确率 0.963 的光环,和 RAO 类只有 22 张图的现实,是同一枚硬币的两面。其二,每类患者数与图像数的比值(约 2.9:1 到 1.4:1 不等)说明采集是"患者级"的:同一患者的多张 B-scan 进入数据集,这既让 patient 级划分(§5.2)成为必须,也意味着按图随机划分会造成跨集泄漏。
2.2 文件组织与命名
数据以 ZIP 发布(OCTDL.zip),解压后按疾病标签分文件夹,路径模式:
OCTDL/
├── AMD/AMD_108_1.jpg
├── AMD/AMD_108_2.jpg
├── ...
├── DME/
├── ERM/
├── NO/
├── RAO/
├── RVO/
├── VID/
└── OCTDL_labels.csv(与 ZIP 平级的独立文件)
文件名三段式 [label]_[patient_id]_[n].jpg:疾病标签、患者编号、同患者图内序号。这个命名本身就是元数据——只靠文件名就能重建"患者-图像"归属,做 patient 级划分不需要打开 CSV。解析示例:
from pathlib import Path
# 格式示意(非真实文件名):AMD_108_3.jpg -> disease=AMD, patient_id=108, seq=3
def parse_name(p: Path):
stem = p.stem # 例:"<label>_<patient_id>_<n>"
parts = stem.split("_")
return {"path": str(p), "disease_from_name": parts[0],
"patient_id": parts[1], "seq": int(parts[2])}
注意:label 段本身不含下划线(七类标签均为纯字母),rsplit/split 均安全;但如自行重命名文件(如加前缀),会破坏三段式约定——保持原样是最低成本的正确做法。
2.3 OCTDL_labels.csv 十列规范
| 列名 | 类型 | 含义与用法 |
|---|---|---|
| file_name | string | 图像文件名,与 ZIP 内路径对应 |
| disease | string | 七类疾病主标签(AMD/DME/ERM/NO/RAO/RVO/VID) |
| subcategory | string | 病理亚型:MNV、DRIL、drusen、ME、MH 等;NO 类通常为空 |
| condition | string | 病理条件补充描述,跨数据集并类时与 subcategory 配合使用 |
| patient_id | string/integer | 患者编号——patient 级划分的唯一依据,禁止按图随机划分 |
| eye | string | OD(右眼)/ OS(左眼);仅对可公开患者提供 |
| sex | string | 性别;仅对可公开患者提供 |
| year | integer | 采集年份相关信息 |
| image_width | integer | 图像宽(像素)——光栅扫描动态长度导致逐张不同 |
| image_height | integer | 图像高(像素) |
亚型标签的五枚"钥匙"及其临床含义:MNV(macular neovascular membrane,黄斑新生血管膜)是 AMD 晚期的标志;drusen(玻璃膜疣)是 AMD 早期标志——两者与 AMD 主标签构成"早-晚"两级;DRIL(disorganization of retinal inner layers,视网膜内层结构紊乱)是 DME 与 RVO 共用的视力预后生物标志;ME(macular edema,黄斑水肿)在 DME 与 RVO 中均出现;MH(macular hole,黄斑裂孔)是 VID 的特例。论文正是用这组对应关系实现了与 OCTID(DR↔DME、MH↔VID)、Kermany(Drusen/MNV↔AMD)的类别桥接。
2.4 图像规格:动态扫描长度的双刃剑
设备统一(Optovue Avanti RTVue XR),但每张图的扫描长度与图像分辨率按采集时的设定动态变化——轴向分辨率 5 μm、横向分辨率 15 μm 是设备固有参数,而图像宽高像素值逐张记录在 CSV。这带来两个直接后果:一是官方预处理流水线(GitHub preprocessing.py)默认把所有图中心裁剪并缩放到 512×512(crop_ratio=1、image_dim=512),使用者要么接受这一归一化、要么自行设计尺寸策略;二是"分辨率差异"本身成为潜在的学习信号——模型可能从图像尺寸与像素密度推断采集协议而非病理,这在跨设备评测时尤其要警惕(§5.4 的混训跌分与此相关)。
光源为 840 nm 超辐射发光二极管(SLD),扫描以中心凹(fovea)为中心,可同时显示视网膜分层、后部玻璃体与脉络膜血管结构。论文正文用了整节篇幅(配图 2-7)逐类讲解各疾病的 OCT 影像学特征——drusen 在 Bruch 膜与 RPE 基底外侧膜之间呈圆顶状隆起、DME 的硬性渗出(HE)与囊腔(IRF)、RAO 急性期的内层视网膜高反射与 p-MLM 征(中界膜显影)、VID 的玻璃体黄斑牵拉与板层裂孔、ERM 的"玻璃纸样视网膜"皱褶——这组描述本身就是一份可用的标注教材。
2.5 与近缘数据集的规格对照
| 维度 | OCTDL | OCTA-500(库内 341) | Kermany/OCT2017(库内 311) | OCTID |
|---|---|---|---|---|
| 影像类型 | OCT 结构 B-scan(2D) | OCT+OCTA 体数据(3D) | OCT B-scan(2D) | OCT B-scan(2D) |
| 规模 | 2064 图/821 人 | 500 受试者 | 207130 图(Kermany 口径) | 500 图 |
| 类别 | 7 类+亚型 | 6 类+血管分割 | 4 类(CNV/DME/Drusen/NO) | 5 类(NO/MH/AMD/CSR/DR) |
| 设备 | Optovue Avanti RTVue XR | Optovue RTVue-XR | Heidelberg Spectralis | 未注明 |
| 团队地 | 俄/德/澳 | 中国 | 美国/印度 | 加拿大 |
| 许可 | CC BY 4.0(数据) | 详见表内条目 | Kaggle 平台条款 | openicpsr 开放 |
| 发表 | Sci Data 2024 | MedIA 2024 | Cell 2018 | CEE 2020 |
一句话定位:想要"比 Kermany 类别更全、比 OCTA-500 更轻量、许可最干净"的 OCT 分类起步数据,OCTDL 是当前开源光谱上的最优点之一。
2.6 七类疾病逐类影像学详解(标注教材)
论文正文用七个小节(配图 1-7)逐类讲解疾病组定义与 OCT 征象——这组描述本身就是一份可用的标注培训教材,也是理解 subcategory 标签语义的钥匙。逐类还原如下。
2.6.1 AMD——数据集的多数类与"早-晚"两级
定义:获得性视网膜变性,由非新生血管性玻璃膜疣沉积与 RPE(视网膜色素上皮)异常、新生血管异常(脉络膜新生血管膜形成)共同导致;进展可包括 RPE 局灶缺失、视网膜下(sub-RPE)出血或浆液性积液、视网膜下纤维化;临床结局是中心视力损害,从低视力到失明。
OCT 上的三阶段阶梯(论文 Fig. 2):
- 早期:孤立硬性玻璃膜疣(hard drusen)——Bruch 膜与 RPE 基底外侧膜之间的圆顶状隆起,反射均质;drusen 是 RPE 应激的指标,需定期监测。
- 中期:cuticular drusen(表皮样玻璃膜疣)——聚集于黄斑区,OCT 上呈锯齿状/双层外观(论文原文 “ribbon-like or saw-tooth pattern of hyperreflectivity”);以及 drusenoid PED——RPE 玻璃膜疣样脱离,视网膜下间隙低反射积液、RPE 自 Bruch 膜剥离。两者均不提示启动治疗,但要求更频繁随访并用血管造影等手段排除脉络膜新生血管。
- 晚期:视网膜轮廓变形、正常 fovea 结构破坏(论文 Fig. 3)——内层变薄伴外层视网膜小管增生(outer retinal tubulation)或囊性间隙;RPE 下方低反射区;RPE 萎缩下方脉络膜毛细血管高反射及局部/弥漫性变薄。
三类积液的鉴别(论文 Fig. 3b 逐一编号):视网膜下积液(subretinal fluid,RPE 与神经视网膜之间)、视网膜内积液(intraretinal fluid,高反射囊肿,内容呈颗粒状——提示细胞碎片或渗漏蛋白)、色素上皮下积液(sub-RPE fluid,Bruch 膜与 RPE 基底外侧膜之间的低反射间隙,可能与 RPE 离子通道的液体调节崩溃有关)。
subcategory 对应:drusen = 早期、MNV = 晚期——这正是附录 E 并类映射里"OCTDL 的 AMD ↔ Kermany 的 Drusen/CNV"两路桥接的病理学依据。
标注注意:AMD 是唯一带"早-晚"两级亚型语义的类别;把 MNV 样本混入"drusen 早期"子集会污染并类映射,过滤时必须走 subcategory 字段而非肉眼判别。
2.6.2 DME——三种征象与一个共享生物标志
定义:糖尿病视网膜病变患者视力丧失的最常见原因,患病率随 2 型糖尿病全球流行而上升。
OCT 征象三件套(论文 Fig. 4a):
- 硬性渗出(HE,hard exudates):高反射物质沉积、替代视网膜组织而不增加视网膜厚度——被视为不利征兆,代表内层血-视网膜屏障的破坏,具有降低视力的潜能。
- 视网膜内积液(IRF):低反射内容的大小不一囊腔;轻度视网膜增厚提示早期液体积聚(局灶性视网膜水肿),可能先于多发囊腔出现。
- 高反射灶(hyperreflective foci):散在点状高反射。
**DRIL(视网膜内层结构紊乱)**是 DME 小节的重心(论文 Fig. 4b):内层视网膜层次边界丢失,是视网膜完整性的 OCT 生物标志;见于多种视网膜血管疾病伴视网膜内积液长期存在的患者(如 DME),或血管阻塞(如 RVO)之后;DRIL 程度指示疾病严重度并与视力预后相关;可在治疗后水肿消退后持续存在,或在疾病晚期出现。
subcategory 对应:ME、DRIL。
标注注意:DME 小节的三件套(HE/IRF/高反射灶)中任何单项都不充分——同一征象可见于 RVO;这正是七类任务里 DME/RVO 混淆的结构性来源(§5.5)。
2.6.3 RVO——与 DME 的"同征异位"鉴别
定义背景:继发于视网膜中央静脉阻塞(CRVO)的黄斑水肿(ME)是此类患者视力丧失的主因;OCT 是诊断此类病因囊样黄斑水肿(CME)并制定治疗计划的关键成像方式。
与 DME 的鉴别点(论文明确写出):RVO 继发的 ME 通常为囊性且局限于内层视网膜(怒张静脉渗漏后),这与 DME 形成对照;OCT 同时显示内层视网膜因缺血导致的高反射增强。
预后判读:静脉阻塞的长期预后取决于视网膜组织缺血损伤程度,以及液体吸收后神经通路的结构性损伤;DRIL 的存在与严重度是视力预后的指标——这也是 RVO 与 DME 共享 DRIL 亚型标签的病理学基础(两者在基线实验里也是互相混淆的重灾区,§5.5)。
subcategory 对应:ME、DRIL。
标注注意:RVO 与 DME 共享两个亚型标签是设计而非噪声——但按亚型过滤样本时两者会互相"串门",任何"仅 DRIL 阳性"子集实验都要显式声明疾病口径。
2.6.4 RAO——22 张小类的临床重量
定义背景:视网膜中央动脉(CRAO)及其分支(BRAO)阻塞导致急性组织缺血,在 OCT 上形成特定影像。
OCT 征象(论文 Fig. 5b):显著的高反射、均质性丢失、含神经节细胞的内层视网膜水肿。
p-MLM 征(prominent middle limiting membrane,中界膜显影)是 RAO 小节的特殊考点:位于外丛状层与外核层交界处的高反射线/带——正常情况下不可见,在病理损伤早期出现,由中层视网膜混浊所致。它被论文列为急性缺血的进一步生物标志。
使用提示:RAO 在数据集中仅 22 张/11 人,任何以 RAO 为目标的模型实验都应报告混淆矩阵并明确小样本警示(坑 2、坑 5);但它作为"动脉阻塞"类别在开源 OCT 数据集景观中几乎独一份(§7.1),22 张的存在本身就是类别覆盖的增量。
标注注意:p-MLM 征是"急性期"标志——若数据中混入慢性期 RAO 图像,该征象缺位不代表标错;亚型/病程信息以 CSV 与论文疾病学描述为限。
2.6.5 VID——牵拉、囊肿与裂孔的连续谱
定义:VID 是描述后玻璃体脱离(posterior vitreous detachment, PVD)正常年龄相关过程走向病理的一组疾病。通常该过程完成时不伴视网膜变形;但当视网膜与玻璃体之间存在粘连时发生玻璃体视网膜牵拉,可导致黄斑撕裂、囊肿或裂孔形成。
病理机制链(论文 Fig. 6a):后玻璃体膜(posterior hyaloid)与视网膜界面的病理性粘连形成 → 进行性 PVD 对内界膜(由 Müller 细胞足板构成)产生轴向牵拉 → 视网膜组织变形。
征象续谱(论文 Fig. 6b/6c):**黄斑裂孔(macular hole)**是视网膜内层直达 RPE 的全层缺损;IRF 表现为大小不一的低反射囊腔;黄斑视网膜撕裂中,视网膜内积液被包含在撕裂边界之内。**板层撕裂(lamellar tear)**是光感受器层完整性得以保留的 MH 变体——常无症状、无需治疗,但建议由视网膜专科医生定期监测。
subcategory 对应:MH(并类时对应 OCTID 的 MH 类,附录 E)。
标注注意:VID 内部涵盖"牵拉-囊肿-全层裂孔-板层撕裂"连续谱,严重度跨度大;把它当一个同质类别做细粒度分析会抹平梯度——必要时按 MH 亚型拆子集。
2.6.6 ERM——“玻璃纸样视网膜”
定义:ERM 可特发(idiopathic),或继发于眼内手术/炎症;特征为黄斑区视网膜内表面的胶质组织增殖。病理结缔组织过度生长导致内界膜纤维化(epiretinal fibrosis,即视网膜前膜)。
临床表现与影像:内界膜增厚与皱褶——检眼镜下外观得名"玻璃纸样视网膜"(cellophane retinopathy)(论文 Fig. 7);OCT 可见 ERM、中心小凹变形(foveola deformity)与异位(ectopia)。
自然病程:ERM 成熟期的玻璃体视网膜牵拉使视网膜变形、降低视力、引起视物变形症(metamorphopsia),可导致黄斑撕裂与裂孔——此时若不及时手术(ERM peel,视网膜前膜剥离)将造成不可逆的视功能损失。
标注注意:ERM 特发与继发(术后/炎症)在数据标签层面不区分(论文未给病因字段);病因学研究会受限于此——这是 CSV 元数据的已知边界。
2.6.7 NO——正常对照与灰度读图基础
NO 类(332 张/110 人)在论文里承担"教学基线"角色,先看定义与物理语义:论文 Fig. 1 以一张健康正常视网膜 fovea 的 OCT 展示视网膜与脉络膜结构,并系统讲解 OCT 灰度成像的物理语义——低反射区(hyporeflective)对应光被吸收或散射的部位,高反射区(hyperreflective)对应发生背反射的部位;每个像素的光强对应来自特定深度的反射波;灰度图像基于不同视网膜结构及其上下组织的反射光强差异可视化组织分层。论文按编号列出图中的低反射结构(2、8、9、16)与高反射结构(1、3、13、14、15)。对标注与模型解释工作而言,这一节是把"像素亮度"翻译回"组织光学性质"的钥匙。
2.7 发布物全景:四件套对照
| 发布物 | 标识符 | 版本/日期 | 许可 | 内容 |
|---|---|---|---|---|
| 论文(正式) | doi:10.1038/s41597-024-03182-7;PMID 38605088;PMCID PMC11009408 | Published 2024-04-11 | CC BY 4.0 | 数据描述+标注协议+基线实验 |
| 预印本 | arXiv:2312.08255(DOI 10.48550/arXiv.2312.08255) | v1 2023-12-13 → v4 2024-10-01 | arXiv 默认许可 | 论文前身,版本史完整 |
| 数据 | Zenodo concept 10.5281/zenodo.10370472(版本 record 10839556)+ Mendeley 10.17632/sncdhf53xc | Zenodo v2 / Mendeley v4,均 2024-03-19 | CC BY 4.0 | OCTDL.zip + OCTDL_labels.csv(2064 图/821 人) |
| 代码 | github.com/MikhailKulyabin/OCTDL | 首 commit 2023-12-10,README 2024-04-15 | Apache-2.0 | 训练框架+预处理脚本 |
四件套的版本锚点各自独立——这是阅读任何 OCTDL 引用时的第一检查项:引论文核对发表版(2024-04-11),引数据核对 2024-03-19 版(2064 图口径),引代码核对 commit 日期。混用不同时点的版本(如引用 arXiv v1 的数字描述当前数据)会产生约 400+ 张图的规模漂移(1600+ 图时期 vs 2064 图时期)。
§3 标注协议:三级流水线的完整还原
3.1 三级分工
论文 Methods 节给出的标注流程分四步,可以直接当作 SOP 读:
- 学生层(L1):指派 7 名医学生组成初标组,每人都接受视网膜病理识别培训;每人对整个数据集独立标注;出现分歧时组织讨论直至每例达成共识;诊断存疑的患者被筛出进入进一步复核。
- 专家层(L2):两名经验丰富的临床专家(论文作者 A.S. 与 A.K.)独立标注,任何分歧通过逐例共识解决。
- 终审层(L3):诊所专家负责人(论文作者 A.N.)确认全部患者的最终诊断。
- 防疲劳约束:学生每 session 最多标注 100 张、资深专家每 session 最多 200 张;每人每天只安排一个 session,以防止疲劳并维持专注。
3.2 与库内标注流水线的横向对照
| 流水线 | 层级 | L1 构成 | L3 终审 | 防疲劳设计 |
|---|---|---|---|---|
| OCTDL(本条目) | 3 | 7 名医学生独立标注+共识讨论 | 诊所专家负责人(1 人) | 学生 ≤100 图/session、专家 ≤200 图/session、每日 1 session |
| PANDA-PLUS(库内 panda-plus) | 3 | pre-med 本科生(每周受训) | >30 年 board-certified 病理专家 | 专家每周固定 2-4 h 复核时段 |
| Kermany(库内 oct2017) | 梯队 | 分级评分员(tiered graders) | 高级评分员仲裁 | 未披露 |
OCTDL 的独特点在"集体初标":L1 用 7 人独立标注+共识讨论,而不是 PANDA-PLUS 式的"单人负责制"——前者用人力换一致性(每张图过 7 遍眼),后者用吞吐换规模。两种模式没有绝对优劣:OCTDL 全集只有 2064 张,7 倍人力投入可承受;PANDA-PLUS 的 546 张 WSI 若也走 7 人独立标注,专家复核带宽会成为瓶颈。
3.3 质量口径的边界
论文没有给出"逐类标注一致性指标"(如 Cohen’s kappa、Fleiss’ kappa),也没有披露 L1→L2→L3 各层的修订率——这些是标注质量文献的标准报告项,OCTDL 缺席。它给出的质量控制是结构性的(三级过手、共识机制、防疲劳),而非计量性的(一致性系数、修订率)。使用者应当把"三级协议+专家终审"当作过程可信度证据,而把标签质量的直接量化留给自己的抽样复标——尤其当研究涉及 RAO(22 张/11 人)这类极小类别时(坑 2)。
3.4 标注质量的落地使用建议
把上述边界转成四条可直接执行的建议:
- 分层抽样复标:按 disease 分层各抽 20-30 张(RAO 全查也只有 22 张,成本低),由一名独立眼科医生盲复标,算出每类的一致率——这是把"过程可信"转成"数字可信"的最短路径。
- 亚型标签的复查优先级:subcategory(MNV/DRIL/drusen/ME/MH)比 disease 主标签更细、更易分歧;跨数据集并类实验(附录 E)依赖它,建议在并类前对涉及的亚型做专项复核。
- 把三级结构写进自家标注规范:即便不逐字复制参数,"L1 独立+共识、L2 资深复标、L3 单人终审、session 上限"的骨架在眼科学之外的影像标注(皮肤镜、胸片、内窥镜)同样成立。
- 引用规范:论文语境下描述标注质量时用"三级标注流水线+专家终审"的过程表述,避免写出"kappa 未报告但质量高"这类无依据断言;自己的复标数字才是可引用的一致性证据。
§4 采集背景:设备、地点与伦理
4.1 设备与协议
- 设备:Optovue Avanti RTVue XR(频域 OCT)。
- 协议:黄斑光栅扫描(macular raster scan),扫描长度与图像分辨率动态设定;每条 B-scan 以中心凹为中心采集。
- 固有分辨率:轴向 5 μm、横向 15 μm。
- 光源:840 nm 超辐射发光二极管(SLD)。
- 成像内容:以中心凹为中心的视网膜分层、后部玻璃体与脉络膜血管。
值得注意的巧合:库内 octa-500 条目的设备是 Optovue RTVue-XR(同厂近系机型)。两个数据集在硬件光谱上相邻、在任务光谱上相距甚远(结构分类 vs 血管分割体数据),这使它们恰好构成"同厂设备、不同模态任务"的天然对照(§9)。
4.2 采集地与人群
全部图像采集于俄罗斯叶卡捷琳堡的 Ophthalmosurgery Clinic “Professorskaya Plus”(Vostochnaya 30)。患者年龄 20-93 岁(均值 63),男:女 = 3:2。年龄/性别/眼别三字段只对"信息可公开"的患者填充——即 CSV 里这些列存在系统性缺失,统计人口学分布时须先检查缺失模式(例如按 disease 分层后各类的缺失率未必相同)。
4.3 伦理声明(论文原文)
“The study was approved by the ethics committee of Ural Federal University Named after the First President of Russia B. N. Yeltsin (Conclusion No. 1, dated 1 February 2023). Informed written consent was obtained from all subjects involved in the study.”
三个要点:审查主体是乌拉尔联邦大学(而非采样的诊所或医科大学)伦理委员会;批准文号 Conclusion No. 1,日期 2023 年 2 月 1 日;全体受试者签署书面知情同意。对使用者的含义:数据以 CC BY 4.0 开放分发本身即二次使用的许可基础,但涉及患者级再分析(如尝试从影像+元数据反推身份)仍应遵循原伦理框架的最小必要原则——CSV 的 eye/sex/year 字段已经是"可公开口径"的筛选结果。
4.4 采集协议的可复现要素清单
把论文散落在各节的采集要素收拢成一张清单——对照它就知道 OCTDL 的采集在多大程度上可复制:
| 要素 | 论文口径 | 可复现性 |
|---|---|---|
| 设备 | Optovue Avanti RTVue XR | 明确(商用机型) |
| 扫描模式 | 黄斑光栅扫描(raster) | 明确 |
| 扫描长度/图像分辨率 | 动态设定(未给固定值枚举) | 部分——按图记录在 CSV 宽高列,协议值本身未披露 |
| 固有分辨率 | 轴向 5 μm / 横向 15 μm | 明确(设备参数) |
| 光源 | SLD 840 nm | 明确(设备参数) |
| 定位基准 | 每条扫描以中心凹为中心 | 明确 |
| 采集机构 | Professorskaya Plus(叶卡捷琳堡) | 明确 |
| 患者筛选标准 | 未披露细目(疾病定义散见疾病学各节) | 部分 |
| 时间跨度 | 未给出起止日期(CSV year 列为逐图信息) | 部分 |
结论:设备与协议层可复制性高,入组标准与时间跨度层信息不足。想完全复刻采集的研究者需要向通讯作者补充确认扫描长度枚举与入组/排除清单;只想"同机同协议补数据"的研究者至少要对齐设备、光栅模式、中心凹定位三项。
§5 基准实验:官方数字与两处反直觉
5.1 实验设置
- 模型:VGG16(16 层、138M 参数、13 卷积层+3 全连接层)与 ResNet50(50 层、48 卷积层)——论文刻意选"经典架构"以建立可对照的基线,而非刷榜。
- 划分:训练/验证/测试 = 60:10:20,按患者级切分(同一患者的图像只出现在一个子集)——原文如此;60+10+20=90,疑为笔误(坑 4),复现者建议按 60:20:20 或自定义比例处理并在论文中注明。
- 优化:Cross-Entropy 损失 + ADAM 优化器,学习率 0.0005。
- 数据增强:随机裁剪、水平/垂直翻转、旋转、平移、高斯模糊。
- 输入:经 GitHub preprocessing.py 归一化(默认中心裁剪+512×512)。
5.2 官方结果全表(论文 Table 3 原文数字)
| 模型 | 训练数据 | 标签集 | ACC | F1 | AUC | P | R |
|---|---|---|---|---|---|---|---|
| ResNet50 | OCTDL | AMD, DME, ERM, NO, RAO, RVO, VID | 0.846 | 0.866 | 0.988 | 0.898 | 0.846 |
| VGG16 | OCTDL | AMD, DME, ERM, NO, RAO, RVO, VID | 0.859 | 0.869 | 0.977 | 0.888 | 0.859 |
| ResNet50 | OCTID | AMD, CSR, DR, MH, NO | 0.923 | 0.927 | 0.979 | 0.932 | 0.923 |
| VGG16 | OCTID | AMD, CSR, DR, MH, NO | 0.932 | 0.933 | 0.970 | 0.939 | 0.932 |
| ResNet50 | Kermany | CNV, DME, Drusen, NO | 0.998 | 0.998 | 0.999 | 0.998 | 0.998 |
| VGG16 | Kermany | CNV, DME, Drusen, NO | 0.998 | 0.998 | 0.999 | 0.998 | 0.998 |
| ResNet50 | OCTID+OCTDL | AMD, DR, MH, NO | 0.957 | 0.955 | 0.996 | 0.954 | 0.957 |
| VGG16 | OCTID+OCTDL | AMD, DR, MH, NO | 0.975 | 0.977 | 0.998 | 0.979 | 0.975 |
| ResNet50 | Kermany+OCTDL | CNV, DME, Drusen, NO | 0.833 | 0.805 | 0.963 | 0.823 | 0.833 |
| VGG16 | Kermany+OCTDL | CNV, DME, Drusen, NO | 0.818 | 0.798 | 0.966 | 0.823 | 0.818 |
类内细分(论文正文):OCTDL 上的类平衡准确率(class-wise balanced accuracy)约 0.979;最高 AMD 0.963、最低 RVO 0.633;类内 recall 同型——AMD 0.975 最高、RVO 0.652 最低。
5.2.1 十组实验的口径速查
读 Table 3 前先分清三组实验的口径差异——同样的"ACC"数字在三组里含义不同:
| 实验组 | 训练域 | 测试域 | 口径本质 |
|---|---|---|---|
| 单数据集行(OCTDL/OCTID/Kermany) | 各自全集(按各自划分) | 各自测试集 | 同分布基线 |
| OCTID+OCTDL 行 | 两集混合后随机混切 | 混合测试集 | 训练域与测试域同步扩大 |
| Kermany+OCTDL 行 | 两集混合训练 | Kermany 测试子集(OCTDL 作其测试域) | 训练域扩大、测试域固定 |
因此:第二组与第三组的数字不可直接横向比较——第二组是"多样性红利"口径,第三组是"域差成本"口径。引用混训结论时必须注明是哪一组,否则会得出"混训有时好有时坏"的无信息结论;准确的说法是"测试域跟着扩则红利,测试域固定则成本"。
5.3 三个读表要点
- OCTDL 的 0.85 是"真实难度"。Kermany 0.998 的近乎满分是四类+大样本+同设备的光谱;OCTDL 七类+不平衡+动态分辨率,经典 CNN 只能到 0.85 档——这正是新数据集的价值:它把"OCT 分类"从刷分题改回了难题。
- AUC 与 ACC 的裂缝是类别不平衡的签名。ResNet50 AUC 0.988 但 ACC 0.846:排序能力强、阈值切不准,少数类是牺牲者。用这个基线时,报 ACC 不报类内指标会产生系统性乐观偏差。
- VGG16 与 ResNet50 互有胜负。VGG16 ACC 略高(0.859 vs 0.846)、ResNet50 AUC 略高(0.988 vs 0.977)——差距在千分位到百分点级,说明基线尚未触及数据集的方法论上限,后续研究者有充足空间。
5.4 反直觉结果一:混训让 Kermany 从 0.998 跌到 0.818-0.833
Kermany+OCTDL 混合训练后,Kermany 测试集成绩从 0.998 跌至 0.833(ResNet50)/0.818(VGG16),跌掉 16-18 个百分点。而 OCTID+OCTDL 混训反而上涨(OCTID 单训 0.923-0.932 → 混训 0.957-0.975)。两个混合实验方向相反,论文的解释框架是:混训"增开了疾病多样性、让模型接触不同 OCT 系统"(对 OCTID 有利),但 Kermany 是用 OCTDL 当测试子集的口径——混训把跨设备域差(Spectralis vs Optovue 的像素风格、分辨率、噪声特性)直接灌进了训练分布,测试域却没有跟着扩。对使用者的直接告诫:跨设备数据合并不是免费的多样性红利,域差管理(风格归一化、设备标签、域自适应)必须显式设计(坑 6)。
写作建议:引用这组结果时避免"混训无效/混训有效"的单值结论——正确的表述是"混训效应取决于测试域口径:测试域同步扩大时为正(0.923→0.975),测试域固定时为负(0.998→0.818-0.833)"。
5.5 反直觉结果二:RVO 的 0.633
整体 AUC 0.977+ 的成绩单下,RVO 类内准确率只有 0.633。三个叠加原因:样本少(101 张/50 人);RVO 的 OCT 表现(囊样黄斑水肿+内层高反射)与 DME 高度重叠——论文自己指出 DRIL 在两类中都是共用生物标志;类别不平衡下多数类引力。结论:在 OCTDL 上做七类任务时,RVO(以及更极端的 RAO,22 张)的任何"高分类分数"都应先查混淆矩阵——论文正文报告的是类平衡准确率与混淆矩阵(论文 Fig. 8),而不只是总体 ACC(坑 5)。
写作建议:把 RVO 0.633 与整体 AUC 0.977 并置引用,比单引任何一个都诚实;这也是本条目 INFOBOX 采用并置写法的原因。
5.6 论文预告的后续方向
论文结论段点名三条延伸:① 视网膜分层分割的手工标注(数据集将补充分割标签);② 同时用疾病+病理条件双标签训练并做投票集成;③ 半监督/无监督异常检测。加上"扩充稀有病(遗传性视网膜营养不良、早产儿视网膜病变)"的承诺——截至抓取时点(2026-09-27)这些均为"预告"状态,引用时应表述为论文计划而非已交付内容。
5.7 两个基线模型:为什么是 VGG16 与 ResNet50
论文刻意选择"经典中的经典"而非新架构,理由在正文里说得直白:VGG 与 ResNet 是被广泛认可、在多个 OCT 数据集上被反复评测过的架构,用它们建立的是可对照的基线(“strong baseline”),而非方法论上限。
VGG16:16 层、138M 参数的较大型网络;13 个卷积层+3 个全连接层,每层后接 ReLU 激活,五个 max pooling 操作,末端 softmax。它的吸引力在于结构简单直接——这也是它在 2014 年之后依然是各种医学影像论文"默认对照组"的原因。
ResNet50:基于 VGG 思路但用 shortcut connections(捷径连接)改造——跳过若干层、把普通网络转为残差网络,以此绕开梯度消失问题、支撑更深层数;50 层结构含 48 个卷积层、1 个 MaxPool 层与 1 个平均池化层。论文指出 ResNet 的滤波器更少、复杂度低于 VGG。
两者在本数据集上的互有胜负(VGG16 赢 ACC、ResNet50 赢 AUC)本身就是基线"未到顶"的证据:如果两个古老架构就能把数据集刷满,它的研究价值反而要打问号。0.85 档的 ACC 意味着留给注意力机制、基础模型微调、自监督预训练的空间都还很大。
5.7.1 实验协议的方法论评价
把论文实验协议放到数据集论文的标准下过一遍:
| 协议项 | 论文做法 | 评价 |
|---|---|---|
| 划分单位 | patient 级(同一患者单集) | 正确且关键——多数早期 OCT 论文按图随机划分,存在泄漏;这是 OCTDL 协议的加分项 |
| 划分比例 | 60:10:20(和为 90) | 笔误存照(坑 4);patient 级原则不受影响 |
| 基线选择 | VGG16/ResNet50 双经典 | 可对照性强;未含 Transformer/基础模型是时代局限而非缺陷 |
| 损失函数 | Cross-Entropy(未加权) | 未做类别加权——这解释了少数类成绩凹陷的一部分;给后续工作留了明确的改进位 |
| 优化器/学习率 | ADAM,0.0005 | 常规稳健配置 |
| 增强 | crop/flip/rotate/translate/blur | 覆盖 OCT 常见变异;未做强度消融 |
| 评测指标 | ACC/F1/AUC/P/R + 类平衡准确率 + 混淆矩阵 | 指标组合完整,尤其类内报告——比多数同期数据集论文诚实 |
| 跨数据集协议 | OCTID 混切、Kermany 作 OCTDL 测试域 | 设计合理但结果分裂(§5.4),论文如实报告了跌分 |
总评:这是一份"指标诚实、协议透明、结果如实"的基线报告——它没有回避混训跌分与 RVO 凹陷,这两处"不好看"的结果恰恰是使用者最需要的情报。
5.8 数据增强与 patient 级划分的配套逻辑
增强策略(随机裁剪、水平/垂直翻转、旋转、平移、高斯模糊)覆盖了 OCT 采集中最常见的变异源:定位偏移(平移/裁剪)、扫描方向差异(翻转)、轻度运动伪影(旋转/模糊)。值得注意两点:
- 高斯模糊增强与小样本类的互动:对 RAO(22 张)这类极小类别,激进的几何增强是标准自救手段,但增强倍数会把"同一患者的相似图"放大进训练集——这也是必须 patient 级划分的理由之一:增强在划分之后做,才不会让增强副本泄漏到测试集。
- 划分比例笔误与复现策略:60:10:20 的和为 90(坑 4)。复现者的稳妥路径是把 val/test 各取 20%(60:20:20)或自定义并在复现报告里注明差异;patient 级切分本身没有歧义。
增强与划分的执行顺序检查单:先 patient 级划分 → 再仅对 train 做增强 → 验证/测试集只做确定性预处理(中心裁剪+缩放)。顺序颠倒(先增强后划分)会让增强副本把同一患者"复制"进多个子集——这是复现论文时最常见的静默泄漏。
§6 获取与许可:双托管与三口径许可证
6.1 资产与入口总表
| 资产 | 入口 | 许可 | 门槛 |
|---|---|---|---|
| 数据本体(OCTDL.zip 398.6 MB + OCTDL_labels.csv 109.5 kB) | Zenodo:concept DOI 10.5281/zenodo.10370472(当前版本 record 10839556,v2,2024-03-19);Mendeley Data:10.17632/sncdhf53xc(v4,2024-03-19) | CC BY 4.0 | 无——匿名直下 |
| 代码与训练框架 | GitHub MikhailKulyabin/OCTDL(main.py / preprocessing.py / train.py / hydra 配置) |
Apache-2.0(LICENSE 文件实抓确认) | 无 |
| 论文 | doi:10.1038/s41597-024-03182-7(Sci Data 开放获取);arXiv:2312.08255;PMC11009408 | CC BY 4.0 | 无 |
| 第三方 Kaggle 镜像 | deepakraje/macular-oct-data |
元数据标 “MIT”——与官方冲突,勿采信 | 注册 |
文件校验(Zenodo API 精确字节):OCTDL.zip 398,564,236 B,md5 dec9766fc916202c45a333c4f5a09576;OCTDL_labels.csv 109,541 B,md5 2fced789038c6ca83283066c2f8ad289。下载后先验 md5 再解压。
下载三步实操(无注册、无 API key、约 7 分钟含下载):
# 1) 下载(二选一,Zenodo 为例)
curl -L -o OCTDL.zip "https://zenodo.org/records/10839556/files/OCTDL.zip?download=1"
curl -L -o OCTDL_labels.csv "https://zenodo.org/records/10839556/files/OCTDL_labels.csv?download=1"
# 2) 校验
md5sum OCTDL.zip OCTDL_labels.csv
# 期望 dec9766fc916202c45a333c4f5a09576 / 2fced789038c6ca83283066c2f8ad289
# 3) 解压并核对规模
unzip -q OCTDL.zip
# 七个疾病文件夹 + 各类图数合计应为 2064(附录 A 有逐类基数)
6.2 版本链的完整还原
| 平台 | 版本号 | 日期 | 说明 |
|---|---|---|---|
| arXiv | v1 | 2023-12-13 | 预印本首发,对应约 1600+ 图时期的数据 |
| Mendeley | v3 | 2023-12-27 | 论文引用的 Mendeley 口径(DOI 10.17632/sncdhf53xc.3) |
| Zenodo | (concept 建立) | 2023-12 | concept DOI 10.5281/zenodo.10370472 |
| Mendeley | v4 | 2024-03-18/19 | 扩至 2000+ 图(2064 张)正式版;论文发表同期 |
| Zenodo | v2 | 2024-03-19 | record 10839556;与 Mendeley v4 同内容同日发布 |
| arXiv | v2/v3 | 2024-03-19/31 | 论文修改期 |
| arXiv | v4 | 2024-10-01 | 定稿(18,042 KB) |
版本号陷阱:Zenodo 与 Mendeley 是两套独立编号(v2 vs v4),日期都是 2024-03-19——引用时写"Zenodo v2 / Mendeley v4"或直接写版本 DOI,不要写裸的"v2/v4"让读者猜平台。文件大小差异(Zenodo 398.6 MB vs Mendeley 页面 380 MB)是各平台打包口径不同,两者内容口径一致(均 2064 图时期)。
6.2.1 版本核验实操(自动化管线命令级)
自动化管线对双托管做版本核验的推荐步骤(curl 级):
# 1) concept DOI 解析最新版本:Zenodo API 返回 JSON,含 license/creators/files/checksum
curl -sL https://zenodo.org/api/records/10370472 | python3 -m json.tool | head -50
# 2) 校验关键字段
# metadata.license.id -> 应为 "cc-by-4.0"
# metadata.relations.version -> 版本链信息
# files[].key / size / checksum-> OCTDL.zip 398564236 md5:dec9766f...
# 3) 下载后本地校验
md5sum OCTDL.zip OCTDL_labels.csv
# 期望:dec9766fc916202c45a333c4f5a09576 / 2fced789038c6ca83283066c2f8ad289
# 4) 版本锚定:生产环境引用版本 DOI 10.5281/zenodo.10839556
# 探索环境引用 concept DOI 10.5281/zenodo.10370472(自动跟最新)
两个注意:Zenodo 访问旧 concept record 会跳最新版本页(页面上看到的是最新版元数据,版本历史要从 API 或页面版本列表区读);Mendeley 无等价开放 API 的字段全集,其页面文件大小(380 MB)是打包口径,不要与 Zenodo 字节数混用于校验逻辑。
6.3 许可证三口径的边界(重要)
- 数据 = CC BY 4.0:Zenodo API 的 license 字段为
cc-by-4.0,Mendeley 页面 Licence 亦为 CC BY 4.0。归因即可使用、修改、商用——引用建议:Kulyabin et al., Sci Data 11, 365 (2024) + 数据 DOI。 - 代码 = Apache-2.0:GitHub 仓库 LICENSE 文件为 Apache License 2.0 全文(本条目实抓确认)。注意 Kaggle 第三方镜像元数据标 “MIT”——镜像元数据与官方 LICENSE 冲突时以官方为准(坑 3)。Apache-2.0 比 MIT 多专利授权与 NOTICE 条款,商用集成时按 Apache-2.0 履行即可。
- 论文 = CC BY 4.0(© The Author(s) 2024,Springer Nature):图表可复用,注明出处。
- 患者隐私层:许可不豁免伦理。CSV 中 eye/sex/year 已是"可公开"筛选口径;任何尝试重识别的研究设计都超出原始同意范围。
6.3.1 三口径的场景化判断
不同使用场景下三口径许可的实际约束:
| 场景 | 适用许可 | 需要做什么 |
|---|---|---|
| 学术论文里用数据训练模型 | 数据 CC BY 4.0 | 引用论文+数据 DOI 即可 |
| 商业产品内部训练/推理 | 数据 CC BY 4.0 + 代码 Apache-2.0 | 归因;代码若修改并分发需保留 LICENSE/NOTICE |
| 再分发数据(镜像/打包进产品) | 数据 CC BY 4.0 | 保留归因与许可说明;建议附原始 md5 供下游校验 |
| 衍生数据集发布 | 数据 CC BY 4.0 | 注明"基于 OCTDL 修改",说明修改内容(CC BY 要求 indicate if changes were made) |
| 把训练代码改后闭源商用 | 代码 Apache-2.0 | 允许(Apache-2.0 不要求衍生代码开源);保留版权与许可声明 |
| 引用论文图表 | 论文 CC BY 4.0 | 注明出处;论文 CC BY 允许改作 |
| 依据 Kaggle 镜像元数据做合规判断 | 禁止 | 镜像 “MIT” 标注与官方冲突;一切以 GitHub LICENSE 与 Zenodo/Mendeley license 字段为准 |
6.4 论文正文与托管事实的一处错位
论文 Data availability 节写 “The OCTDL dataset is available at Mendeley”——只点名 Mendeley;Zenodo 托管是从论文页/Zenodo 侧的关联发现。对自动化采集管线的含义:按论文正文抓链接会漏掉 Zenodo;按 DOI 反查(10.5281/zenodo.10370472)或从 GitHub README/Zenodo 描述进入才能拿到双托管全貌(坑 8)。
6.4.1 双托管的采集建议
对自动化采集管线,两个托管源各取所长:
- Zenodo 走 API:结构化字段(license/creators/checksum/版本关系)一次拉全,适合做"许可-文件-版本"三项自动核验;concept record 自动跟最新版的特性让它成为默认入口。
- Mendeley 走页面:版本历史页(v3→v4 的变迁)只有它有;论文 Data availability 的正式指向也在它——引文核对场景从 Mendeley 进入更顺。
- 两者都拉:交叉验证文件口径(大小差异为打包口径,md5 才是内容真值);单源故障时互为备份。
6.5 AI-Ready 评估(对照库内检查单)
- 机器可读元数据:Zenodo API 结构化字段完整(license/creators/related identifiers/checksum)+ 论文 PMC 全文开放 + CSV 数据字典在论文中给出——良好。
- 公开直链:数据/代码/论文三层全部无墙直链——本库可获取性光谱的"公开直链"档。
- 许可明确性:三口径各自明确;唯一暗礁是第三方镜像误标(已在 6.3 拆除)。
- 可复现性:官方代码+预处理脚本+超参数全披露;唯一口径瑕疵是 60:10:20 笔误(坑 4)。
- 文档自洽:版本号跨平台不同步(坑 7)、正文 Mendeley 单点名(坑 8)、Kermany 年份笔误——均不影响主线。
综合:AI-Ready 等级"高"——无墙、有校验和、有代码、有开放论文,失分点集中在版本叙事的跨平台不同步。这是库内"开放数据集"档的代表性样本。
6.5.1 高分条目的三个共性(以本条目为例)
对照库内 AI-Ready 评估的高分条目,OCTDL 命中三个共性,可作为其他条目的自检基准:
- 许可与获取解耦于平台:CC BY 4.0 写在 API 元数据里而非只在网页描述里——平台页面可以改版,API 字段与 LICENSE 文件才是许可的机器可读锚点。
- 校验和与精确字节齐备:398,564,236 B + md5 让"下载成功"从人工确认变成断言;开放数据集的信任半径取决于这类可验证性细节。
- 代码-数据-论文三方互指:GitHub README 指论文与数据、Zenodo 描述指论文与代码仓库、论文 Data Records 指托管——闭环使任何单点进入都能找到全貌(论文正文只点名 Mendeley 是这个闭环里唯一的缺口,坑 8)。
6.6 与库内可获取性光谱的对照
| 档位 | 库内参照 | 本条目对应 |
|---|---|---|
| 注册墙(最严) | 注册+审批型条目 | — |
| 限权申请 | JHU HCMS 型(论文 Table 1 中 limited 系) | — |
| 请求制 | upon request 型条目 | — |
| 平台托管 | Zenodo 型 | 数据本体(Zenodo+Mendeley 双托管) |
| 公开直链 | HF/Zenodo 直链型 | 数据+代码+论文三层直链 |
OCTDL 落在光谱最开放端,且是库内少见的"三件套全直链"样本(数据+代码+论文无一层有墙)。与它形成光谱对照的恰是论文 Table 1 里的邻居们:17 个数据集里 9 个 limited——OCT 领域的"默认门"是关着的,这也是把本条目的开放性计入 AI-Ready 评估高分的原因。
§7 生态与影响:OCT 数据集景观中的位置
7.1 论文 Table 1 的 17 数据集全景(原文口径)
| 年份 | 数据集 | 规模 | 设备 | 标签 | 准入 |
|---|---|---|---|---|---|
| 2015 | Duke | 110 B-scan | 未注明 | Severe DME | open |
| 2016 | OPTIMA | 30 volumes | Cirrus, Topcon | IRF | open |
| 2017 | Lee | 1289 B-scan | Spectralis | ME | limited |
| 2017 | UMN | 600 B-scan | Spectralis | Exudative AMD | open |
| 2018 | Kermany | 207130 B-scan | Spectralis | CNV, DME, Drusen, NO | open |
| 2018 | Schlegl | 1200 volumes | Cirrus, Topcon | AMD, DME, RVO | limited |
| 2018 | OCTID | 500 B-scan | 未注明 | MH, AMD, CSR, DR, NO | open |
| 2018 | Venhuizen | 221 volumes | Spectralis | AMD | limited |
| 2019 | Hu | 100 volumes | 未注明 | SRF, PED | limited |
| 2019 | RETOUCH | 70 volumes | Cirrus, Triton | AMD, RVO | open |
| 2019 | HCMS | 35 volumes | Spectralis | Healthy Controls, MS | open |
| 2019 | Gao | 52 volumes | Spectralis | CSC | limited |
| 2019 | Rao | 150 volumes | Cirrus | Sub-retinal fluid segmentation | limited |
| 2020 | Yang | 103 volumes | Cirrus | CSC | limited |
| 2020 | Bao | 240 B-scan | 未注明 | AMD, PED | limited |
| 2021 | Pawan | 25 volumes | Cirrus | CSC | limited |
| 2023 | OCTDL | 2064 B-scan | Optovue Avanti | AMD, DME, ERM, NO, RAO, RVO, VID | open |
三个景观事实。其一,规模断层:Kermany(20.7 万张)与第二名之间隔着两个数量级——OCTDL 的 2064 张在"完全开源+七类+带亚型"的组合里是最大,但纯规模上只是零头。其二,open 是稀缺属性:17 个数据集里 9 个 limited,限权访问(邮件申请/机构审批)是 OCT 领域的常态而非例外,OCTDL 的无墙开放因此有真实的边际价值。其三,设备光谱:Spectralis 与 Cirrus 覆盖了景观的大半,Optovue 系(OCTDL、OCTA-500)是少数派——这让 Optovue 口径的数据集天然承担"跨设备泛化"的对照角色(§5.4 的混训跌分就是这个角色的第一课)。
7.2 OCTDL 在景观中的四个差异化卖点
- 类别最全的 open 数据集:七类覆盖动脉阻塞(RAO)——这是 Kermany/OCTID/RETOUCH 都没有的类别;RAO 虽只有 22 张,但"有没有"与"没有"是 0/1 差别。
- 亚型标签唯一:MNV/DRIL/drusen/ME/MH 的 subcategory 层在景观里独一份,是跨数据集并类的语义桥梁。
- 标注协议可复制:三级流水线+防疲劳参数全披露,景观内标注方法学写得最完整的之一。
- 许可最干净:CC BY 4.0(数据)+ Apache-2.0(代码)+ CC BY 4.0(论文),商用可用;对比 Kermany 的 Kaggle 平台条款、HCMS 的 JHU 限权,OCTDL 是"法务最省心"的一档。
四个卖点的证据强度自评:
| 卖点 | 证据 | 强度 |
|---|---|---|
| 类别最全 | Table 1 对比(7 类 vs 景观内最多 5 类的 open 数据集) | 论文口径成立;"最全"限于其对比集范围 |
| 亚型唯一 | CSV 十列 + 论文并类演示 | 论文+数据文件双证 |
| 协议可复制 | Methods 标注程序段全参数 | 论文原文 |
| 许可最干净 | Zenodo API license + Mendeley Licence + GitHub LICENSE | 三源实抓(本条目核验) |
引用"最 X"类主张时的纪律:一律带限定语(“在其 Table 1 对比集内”“截至抓取时点”),不做无边界的第一/唯一表述。
7.3 传播与使用(抓取时点快照)
Zenodo 统计(2026-09-27 API 抓取):downloads 1574、unique downloads 1012、views 1144。Mendeley 相关链接显示 IEEE DataPort 亦有 OCTDL 文档页;GitHub 仓库首 commit 2023-12-10、README 最近更新 2024-04-15。Kaggle 存在第三方镜像(deepakraje/macular-oct-data)——注意镜像元数据的许可证标注不可靠(坑 3),且镜像不跟随官方更新。这些传播数字是动态的,引用时注明"截至抓取时点"。
7.3.1 一篇 data-paper 的影响路径
从发布物结构推演 OCTDL 的引用去向(推断性框架,非实测引文统计):方法论文引它的标注协议与基准数字(作为 OCT 分类的新参照点);跨数据集论文引它的 subcategory 桥接与 patient 级划分实践;跨设备泛化论文引它作为 Optovue 口径对照(对抗 Spectralis/Cirrus 单一生态);综述引它的 Table 1 景观与"第二大"定位。四条路径的引用动机不同,对条目维度的依赖也不同——这也是本条目按"数据/协议/基准/景观"四线组织内容的原因。
7.4 与 OCTA-500 的"同厂异任务"对照
两份数据集构成一组罕见的天然对照实验素材:同厂(Optovue)、近似机型(Avanti RTVue XR vs RTVue-XR)、同是 2024 年发表的开放数据集论文(Sci Data vs MedIA),但任务光谱完全分离——OCTDL 做结构 B-scan 分类(2D、7 类、图级标签),OCTA-500 做血管成像与分割(3D volume、图级+体素级标签)。对研究者的用法建议:跨模态多任务研究(结构+血管联合诊断)可将两者作为互补模态源;跨设备泛化研究可将两者作为 Optovue 口径的"对照组"对比 Spectralis/Cirrus 系数据集。但绝不可混同:检索"OCT-500"命中的文献别名指向 OCTA-500,与 OCTDL 无关(坑 1)。
7.5 与 Kermany 的深度对比:规模之王与类别扩展者
Kermany 是理解 OCTDL 设计选择的最好参照系。两者并排看:
| 维度 | Kermany(库内 oct2017) | OCTDL(本条目) |
|---|---|---|
| 发表 | Cell 2018(Kaggle 2016 上线) | Sci Data 2024(arXiv 2023-12) |
| 规模 | 207130 B-scan | 2064 B-scan |
| 设备 | Heidelberg Spectralis 单一 | Optovue Avanti RTVue XR 单一 |
| 类别 | 4 类(CNV/DME/Drusen/NO) | 7 类(AMD/DME/ERM/NO/RAO/RVO/VID) |
| 标签粒度 | 图级疾病标签,分级评分员梯队 | 图级疾病+病理亚型(subcategory/condition) |
| 患者级元数据 | 无逐图患者 ID 公开口径 | CSV patient_id/eye/sex/year |
| 标注协议披露 | tiered grading(分级评分员),细节少 | 三级流水线全参数(人数/上限/session 约束) |
| 基线成绩 | 0.99 档(近乎饱和) | 0.85 档(远未饱和) |
| 许可 | Kaggle 平台条款 | CC BY 4.0(数据)+ Apache-2.0(代码) |
五点对比结论:
- 规模不是唯一变量:0.998 vs 0.859 的基线差距不代表"Kermany 更简单所以更好"——它代表 Kermany 的分类任务在其标签体系内已饱和,继续在它上刷分的边际信息量趋零;OCTDL 的 0.85 档才是还有研究空间的任务形状。
- 类别扩展的临床逻辑:OCTDL 新增的四类(ERM/RAO/RVO/VID)不是随机挑选——ERM 与 VID 是"玻璃体视网膜界面/手术相关"组,RAO/RVO 是"血管事件"组,加上原有的 AMD/DME 两大家族,覆盖了黄斑疾病临床谱系的主干。
- 元数据的代差:Kermany 时代的数据集通常不给患者级 CSV;OCTDL 的十列元数据(尤其 patient_id 与亚型)把"防泄漏划分"与"跨数据集并类"从研究技巧变成了开箱即用的字段。
- 评测协议的互补:论文里 Kermany 的用法是"OCTDL 作其测试子集"——即用 Kermany 训练、OCTDL 测试的跨设备泛化口径;这恰好补上了 Kermany 自身"单设备同分布"的评测盲区。
- 许可的代差:Kaggle 平台条款对商用与再分发的约束始终是灰色地带;OCTDL 的 CC BY 4.0 让"放进产品管线"第一次变得法务清晰。
一句话总结:Kermany 是 OCT 分类的"ImageNet 时刻",OCTDL 是这个领域"imagenet 之后"的标准化努力——规模让位,结构与透明补位。
7.6 更新追踪指南:如何监控"periodic update"兑现
数据集描述承诺定期更新,监控它的最低成本方案:
| 监控点 | 频率 | 方法 |
|---|---|---|
| Zenodo 版本变化 | 季度 | curl -sL https://zenodo.org/api/records/10370472,比对 files[].checksum 与 metadata.version |
| GitHub commit | 季度 | watch 仓库或检查 commits API 的最近日期 |
| 论文勘误/新版本 | 半年 | 检索 arXiv 2312.08255 的新版本与 Sci Data 页面勘误区 |
| 官方声明 | 事件驱动 | 监控通讯作者(Kulyabin)的公开渠道与 FAU 实验室页 |
触发升级的判据:md5 变化 = 内容更新(应重新下载并修订条目数字);版本 DOI 变化但 md5 不变 = 仅元数据修订;GitHub 新 commit 但无新版本 = 代码演进先行,数据未动。按此判据更新条目可以把"抓取时点快照"的时效风险压到最低。
§8 方法学启示:六条可迁移的经验
8.1 "集体初标+共识"与"单人负责+终审"是两种可切换的模式
OCTDL 的 7 人独立标注+共识讨论(L1)适合小规模高价值数据;PANDA-PLUS 式的单人负责+专家复核适合大规模流水线。切换的临界变量是"每张图的边际标注成本":当全集 <5000 张时,7 倍人力换一致性可行;超过后单人负责+强复核更现实。两者共同的不可省略项是 L3 终审的单一责任制——最后拍板的人必须唯一且权威。
8.2 防疲劳约束是标注协议的一等公民
"学生 ≤100 图/session、专家 ≤200 图/session、每日 1 session"这种参数在标注文献里罕见披露,但它直接决定标注质量的方差。可迁移的量化起点:把"每 session 上限"当作超参数写进 SOP 并记录每 session 的实际产量,让质量漂移可回溯到 session 粒度。
8.3 亚型标签是跨数据集的语义货币
OCTDL 用 subcategory/condition 实现了与 OCTID、Kermany 的类别桥接(DME⊂DR、MH⊂VID、drusen/MNV=AMD 早晚期的映射),这是"数据集孤岛"问题的工程化解法。启示:设计医学影像标签体系时,为主标签之外保留一层"病理实体"(pathological entity)标签,成本极低而互操作收益极大——这也是库内多条目(如 retouch 的 fluid 类型、octa-500 的分层标签)反复出现的主题。
8.4 "第二大"的诚实定位反而是卖点
论文没有回避 Kermany 的规模碾压,而是明确自我定位:“second largest OCT image open-access dataset”——在类别数、亚型、协议透明、许可四个维度上做增量。数据集论文的叙事策略启示:规模维度打不过时,把可比性换到"质量-结构-许可"三个仍然稀缺的维度上,比硬蹭规模更有引用价值。
8.5 双托管+校验和是开放数据的发布纪律模板
OCTDL 的发布工程有三个值得抄的细节:Zenodo 与 Mendeley 双托管(单平台故障/政策变化不至死);API 可读的精确校验和(398,564,236 B + md5,自动化管线可验证完整性);concept DOI + 版本 DOI 双轨(concept 恒指最新、版本 DOI 钉死历史,引用者各取所需)。对照它唯一的执行缺口——“will be updated periodically” 承诺未兑现——可以看出:发布纪律的工程部分(托管、校验、DOI)可以一次做对,而持续运营部分(版本迭代)才是开放数据集的真正长跑。库内派发新条目时,"发布纪律可复制、运营承诺要打折"应作为评估开放数据集可持续性的默认心理模型。
8.6 data-paper 体裁的写作模板价值
OCTDL 论文是标准的 Data Descriptor(数据论文)体裁,其章节配置可直接当作同类论文的模板:引言(领域缺口+景观对比表)→ Methods(采集协议+标注程序+疾病学背景)→ Data Records(文件组织+元数据字段+托管链接)→ Technical Validation(基线实验+指标全表)→ Limitations/后续。它做对的两件难事:把疾病学背景写成标注教材(§2.6 的内容来源,让读者能"看懂"自己的数据);把失败结果写进 Table 3(混训跌分与 RVO 凹陷都在正式表格里,不是脚注)。数据集论文的公信力恰恰来自后者。
8.7 附加观察:OCTDL 生产流程对本站条目生产的三点映射
写本条目的过程与 OCTDL 论文的生产流程有结构同构性,值得留档:其一,三级核验 ≈ 三级标注——本条目的"PMC 全文/API 实抓/LICENSE 全文"对应论文的"学生初标/专家复标/主任终审",两者都靠层级复核而非单点判断兜底;其二,口径冲突存照 ≈ 混淆矩阵——论文如实报告 RVO 0.633,条目如实存照 60:10:20 笔误,承认缺陷比掩盖更能建立信任;其三,版本化纪律——论文/arXiv/Zenodo/Mendeley 各持版本号,条目/FACTS/临时文件三件套同理,任何修订都可追溯。这三点映射不是牵强附会:它们是"小规模知识生产如何保证质量"的同一问题在两个场景的解。
§9 与库内条目的关系
| 库内条目 | 关系 | 用法建议 |
|---|---|---|
| octa-500(rid 341) | 防混淆对照:名字相近(OCT-500 别名陷阱)、设备同厂近系(Optovue RTVue-XR 系),任务完全不同(OCTA 血管分割体数据 vs OCT 结构分类 B-scan) | 跨模态联合研究可并用;条目互链时明确"两数据集无 derivation 关系" |
| oct2017(rid 311,Kermany) | 景观前任:规模之王(207130 张/4 类/Spectralis)与类别扩展者(2064 张/7 类/Optovue) | 跨设备泛化实验的对端;OCTDL 论文中 Kermany 用于"OCTDL 作测试集"口径 |
| retouch(rid 321) | 同域挑战赛:MICCAI 2017 积液分割基准(70 vol,Cirrus/Triton/Spectralis 多设备) | 任务互补(分类 vs 分割);多设备域差问题同源 |
| eyepacs(rid 58) | 模态对照:眼底彩照(fundus)vs OCT 断层;DR 筛查任务的上游模态 | "fundus 初筛 + OCT 确诊"两步临床路径的两端 |
库内检索提醒:站内已有 octa-500 与 oct2017 两个 OCT 前缀条目,本条目(octdl)上线后,"OCT"族形成"分类(OCTDL/Kermany)+血管分割(OCTA-500)+积液分割(RETOUCH)+眼底(EyePACS)"的完整任务矩阵。后续派发 OCT 新条目时应先查这四个 plus 任何新 OCT 命名的证伪(坑 1 的教训直接来自本轮派发)。
9.1 库内 OCT 族的检索决策表
| 需求 | 首选条目 | 理由 |
|---|---|---|
| OCT 图像分类入门/基线对标 | octdl(本条目) | 7 类+亚型+官方基线+无墙 |
| 最大规模 OCT 分类预训练 | oct2017(Kermany) | 207130 张,单设备大样本 |
| OCTA 血管分割/体数据分析 | octa-500 | 500 受试者 OCT+OCTA 双模态 |
| 积液分割/多设备分割基准 | retouch | MICCAI 2017 挑战,三设备 |
| 眼底彩照 DR 筛查 | eyepacs | fundus 模态,筛查路径上游 |
| "OCT-500"检索命中 | 先查 octa-500 | OCT-500 是 OCTA-500 的文献别名(坑 1) |
9.2 与本条目形成"许可光谱"的库内对照
OCTDL(CC BY 4.0 数据直链)位于库内可获取性光谱的最开放端;同族条目中 octa-500(IEEE DataPort 托管)与 oct2017(Kaggle 平台条款)分别代表"平台注册"与"平台条款"两档;retouch(挑战赛数据)为注册+条款混合档。四条并排,恰好构成 OCT 领域从"无墙"到"条款墙"的完整光谱——使用者按合规预算选条目,条目互链时按光谱位置互相背书。
9.3 引用场景指南:什么论文该引 OCTDL 的什么
| 引用场景 | 引什么 | 注意 |
|---|---|---|
| “需要一个开放 OCT 分类基准” | 数据 DOI(Zenodo/Mendeley)+ 论文 | 说明七类口径与 2064/821 规模 |
| “标注协议设计参考” | 论文 Methods 标注程序段 | 防疲劳参数可直接引(§3.1) |
| “类别不平衡的反面教材/正面应对” | Table 2 分布 + 类内准确率(0.963/0.633) | 必须连类平衡口径一起引 |
| “跨设备混合训练的风险证据” | Table 3 的 Kermany+OCTDL 行 | 注明"测试域固定"口径(坑 6) |
| “亚型标签桥接多数据集” | CSV 十列规范 + 论文并类逻辑(DME⊂DR 等) | 参考 §2.3 与附录 E |
| “OCT-500 是什么” | 不是本条目——指向 OCTA-500(库内 341) | 坑 1;引用前先做别名核对 |
| “伦理合规示例” | 论文 Ethics 原文(Conclusion No.1, 2023-02-01) | §4.3 有完整引录 |
§10 避坑清单:八个已踩过的坑
坑 1:OCT-500/OCT500 检索陷阱(本条目改道的直接原因)。
现象:外部文献确有把 OCTA-500 简写为 “OCT500” 的用法——PMC11537946 原文 “The OCT500 dataset can be found here: https://ieee-dataport.org/open-access/octa-500”;其余独立命中多为商用设备名(OpticsMED OCT-500、Zeiss Cirrus 500、Essilor OCT500 等)。如何发现:三轮精确搜索+三源互证后,"OCT-500 独立数据集"假设没有一处原始托管页支持。规避:凡检索 “OCT-500” 命中,先核对是否实指 OCTA-500;本站 oct-500 slug 已证伪弃用(改道本条目),后续派发同域新 slug 前应复跑证伪查询。
坑 2:类别 56 倍不均衡。
现象:AMD 1231 张 vs RAO 22 张(421 人 vs 11 人)。后果:任何"总体准确率"叙事都会被多数类淹没;RAO 的 22 张/11 人使该类的任何统计结论都只有提示性强度。规避:报分数必带类内指标与混淆矩阵;少数类增强/重采样/焦点损失实验先固定 patient 级划分——同一患者的图不能跨集;RAO 结论写作时明确"探索性"。
坑 3:许可证三口径。
现象:数据 CC BY 4.0(Zenodo API + Mendeley 页面双确认);代码 Apache-2.0(GitHub LICENSE 实抓);第三方 Kaggle 镜像元数据标 “MIT”——错误。风险:商用或再分发合规判断若基于镜像元数据,会得出错误许可结论。规避:一律核对官方渠道(GitHub raw LICENSE、Zenodo API license 字段、Mendeley Licence 区块);附录 K 检查单可直接复用。
坑 4:60:10:20 划分笔误。
现象:论文原文 “randomly split into training, validation, and test subsets in the proportion of 60:10:20 on a patients level”——三项之和为 90。风险:复现者按字面执行会困惑;自动化抓取可能把 60:10:20 当真实超参传播。规避:复现按 60:20:20(合理猜测)或自定义,并在文字中注明原文口径;patient 级切分本身是确定的、必须遵守。
坑 5:RVO/RAO 的分数凹陷。
现象:整体 AUC 0.977-0.988 的光泽下,RVO 类内准确率仅 0.633(recall 0.652);RAO 更因 22 张基数无法给出稳定估计。后果:只引 0.85+ 的总分会让读者高估数据集"好学"程度。规避:报告 OCTDL 基线数字时连类平衡准确率(≈0.979)与混淆矩阵一起报;模型选择指标用类宏平均而非总 ACC。
坑 6:混训跌分。
现象:Kermany+OCTDL 混训使 Kermany 测试成绩从 0.998 跌至 0.818-0.833;OCTID+OCTDL 却上涨(0.923→0.957-0.975)。机制:混训只扩了训练域没扩测试域时,跨设备域差(Spectralis vs Optovue)成为纯噪声;两个方向相反的实验正是这机制的一正一反演示。规避:跨设备合并前先做小规模域差探针实验(如风格统计对比);引入设备标签或域自适应;引用论文结论时注明两组混训口径不同(OCTID 混切 vs Kermany 测试域固定)。
坑 7:双托管版本叙事不同步。
现象:Zenodo v2(2024-03-19)与 Mendeley v4(2024-03-19)是独立编号;文件大小 398.6 MB(Zenodo 精确字节 398,564,236)vs 380 MB(Mendeley 页面)为打包口径差异。风险:引用裸版本号会让读者对不上平台;流水线按页面上展示的大小做校验会误报。规避:引用写全"平台+版本+日期+DOI";下载后以 md5 校验(dec9766… / 2fced78…)为准。
坑 8:论文正文的两个小口径漂移。
其一,Data availability 只写 “available at Mendeley”,Zenodo 托管需从 DOI/关联页发现——自动化采集按正文抓链接会漏掉 Zenodo;其二,正文称 Kermany “published in 2019” 而 Table 1 与 Cell 论文均为 2018。两者均不影响数据本体,但引文核对与元数据管线要把"论文正文"降级为"待核口径",以平台 API 与原始论文为最终依据。
§11 总结
OCTDL 的价值公式可以写成:七类疾病 × 亚型标签 × patient 级划分 × 三级标注 × 全链开放。它不是最大的 OCT 数据集,也不追求最大——它把资源集中投在 Kermany 模式最薄弱的四个维度上:类别覆盖(+ERM/RAO/RVO/VID)、标签深度(亚型/condition 双层)、协议透明(三级标注+防疲劳参数全披露)、许可清洁(CC BY 4.0 + Apache-2.0 + 无墙直链)。
对三类使用者各一句话。想做分类模型:从官方 preprocessing.py 起步,报分数时带类内指标,RVO/RAO 结论单独核。做跨设备/多数据集研究:OCTDL 的 subcategory 是并类钥匙,但混训跌分(坑 6)说明域差管理要显式设计。做数据集工程:OCTDL 的标注 SOP、版本发布纪律(Zenodo+Mendeley 双托管+md5 校验)与"诚实定位"叙事都是可直接借用的模板。
它的局限同样清晰,且多数是结构性的而非过失性的:类别不均衡是临床流行病学的直接投影(RAO 本来就少见),单中心单设备是标注一致性的代价(多中心会引入更多协议漂移),一致性系数缺席让标签质量只能"过程性背书"。这些局限没有被论文掩饰——划分笔误与混训跌分都留在正式文本里——这份坦率本身提高了它的可信度。
它同时是一份检索警示录:OCT-500 这个 slug 的证伪过程(三轮搜索、三源互证、最终改道)本身说明——在 OCT 这个缩写高度拥挤的领域,"名字像"与"是同一个"之间隔着一整条证据链。
FAQ(高频问答 48 问)
以下问答按"使用频率×坑点密度"排序,前三问对应三大入口问题(身份、混淆、下载);每问末尾的 §/坑 编号可跳转正文详读。
Q1:OCTDL 里的 “DL” 是什么意思?
Deep Learning——全称 Optical Coherence Tomography Dataset for Image-Based Deep Learning Methods,定位就是给深度学习方法用的数据集。
Q2:OCTDL 和 OCTA-500 是同一个数据集吗?
不是。OCTDL 是 OCT 结构 B-scan 分类数据集(2064 张 2D 图,俄德团队);OCTA-500 是 OCTA 血管成像体数据(500 受试者,中国团队)。设备同厂近系(Optovue),任务、团队、数据本体完全无关。文献里 “OCT500” 的别名指向的是 OCTA-500。
Q3:OCTDL 数据在哪里下载?
Zenodo:https://doi.org/10.5281/zenodo.10370472(concept DOI,自动跳最新版本 record 10839556);Mendeley Data:https://data.mendeley.com/datasets/sncdhf53xc。两处任选其一,均匿名直下。
Q4:OCTDL 可以商用吗?
数据本体 CC BY 4.0:可以商用,需归因(引用论文+数据 DOI)。代码 Apache-2.0:可以商用集成,需保留许可证与 NOTICE。注意不要依据第三方 Kaggle 镜像的 “MIT” 标注做合规判断(那标注是错的)。
Q5:数据集多大、下载要注意什么?
OCTDL.zip 398.6 MB(精确 398,564,236 字节,md5 dec9766fc916202c45a333c4f5a09576)+ OCTDL_labels.csv 109.5 kB(md5 2fced789038c6ca83283066c2f8ad289)。下载后先验 md5。
Q6:图像是 3D 体数据吗?
不是。每条记录是一张 2D B-scan(横断面图),来自黄斑光栅扫描、以中心凹为中心。没有 volume、没有血管造影(OCTA)模态。
Q7:七类疾病分别是什么?
AMD(年龄相关性黄斑变性)、DME(糖尿病黄斑水肿)、ERM(视网膜前膜)、NO(正常)、RAO(视网膜动脉阻塞)、RVO(视网膜静脉阻塞)、VID(玻璃体黄斑界面疾病)。
Q8:每类各多少张?
AMD 1231、DME 147、ERM 155、NO 332、RAO 22、RVO 101、VID 76。患者数对应为 421/107/71/110/11/50/51,共 821 人。
Q9:除了疾病类别还有什么标签?
CSV 的 subcategory 列有病理亚型(MNV 新生血管膜、DRIL 内层结构紊乱、drusen 玻璃膜疣、ME 黄斑水肿、MH 黄斑裂孔);condition 列是补充病理条件。这层亚型标签可用来跨数据集并类。
Q10:图像分辨率是多少?
设备固有分辨率轴向 5 μm、横向 15 μm(Optovue Avanti RTVue XR,840 nm SLD)。但每张图的像素尺寸(image_width/height)因扫描长度动态设定而不同,逐张记录在 CSV。官方预处理默认归一化到 512×512。
Q11:谁标注的,质量可信吗?
三级流水线:7 名受训医学生独立标注(共识机制)→ 2 名资深临床专家复标 → 诊所专家负责人终审。协议透明、含防疲劳参数;但论文未报告逐类一致性系数(kappa 等),极小类别(RAO 22 张)的标签质量建议自行抽样复核。
Q12:论文的基线成绩是多少?
7 类任务:VGG16 ACC 0.859/F1 0.869/AUC 0.977;ResNet50 ACC 0.846/F1 0.866/AUC 0.988。类平衡准确率约 0.979,但 AMD 最高 0.963、RVO 最低 0.633。
Q13:为什么我的模型达不到 Kermany 上那种 0.99+ 的分数?
OCTDL 七类+56 倍类别不均衡+动态分辨率+Optovue 设备,难度结构与 Kermany(4 类/20 万张/Spectralis)不同;0.85 档是官方经典 CNN 基线的"真实难度"参照,不是复现失败。
Q14:划分比例 60:10:20 是什么意思?为什么说它有笔误?
论文写训练/验证/测试按 60:10:20、患者级切分——但三项之和是 90 不是 100,疑为笔误。患者级切分(防泄漏)是确定的;具体比例复现时建议按 60:20:20 处理并注明。
Q15:可以直接按图随机划分训练/测试集吗?
不可以。同一患者的多张 B-scan 在数据集中,按图随机划分会造成跨集泄漏;必须按 CSV 的 patient_id 做患者级划分(官方基线也是这么做的)。
Q16:混训(OCTDL+其他数据集)效果如何?
论文结果方向相反:OCTID+OCTDL 混训上涨(0.923→0.975),Kermany+OCTDL 混训大跌(0.998→0.818-0.833)。跨设备域差管理必须显式设计,别把混训当免费红利。
Q17:代码在哪里、什么框架?
GitHub MikhailKulyabin/OCTDL:pytorch + hydra + timm 栈,preprocessing.py 负责裁剪归一化与数据集组织(默认 512×512、val 0.15/test 0.25 可调),main.py 训练。许可证 Apache-2.0。
Q18:官方还发布了什么后续?
论文预告:手工分层分割标注、双标签投票集成、半监督/无监督异常检测、扩充稀有病(遗传性视网膜营养不良、ROP)。截至 2026-09-27 均为"计划",未见落地版本。
Q19:数据集的伦理合规情况?
乌拉尔联邦大学伦理委员会批准(Conclusion No. 1,2023-02-01),全体受试者书面知情同意。CSV 中人口学字段已是"可公开"筛选口径;不应尝试重识别。
Q20:患者是什么人群?
俄罗斯叶卡捷琳堡 Professorskaya Plus 眼科诊所采集;年龄 20-93 岁(均值 63),男:女 = 3:2。年龄/性别/眼别仅对可公开患者提供,CSV 相应列有缺失。
Q21:论文发在哪里?
Scientific Data 11, 365 (2024),doi 10.1038/s41597-024-03182-7,2024-04-11 发表,CC BY 4.0 开放获取;PMID 38605088,PMCID PMC11009408;预印本 arXiv:2312.08255(v1 2023-12-13,v4 2024-10-01)。
Q22:作者团队是哪个机构?
FAU Erlangen-Nürnberg(德国,Pattern Recognition Lab,通讯 Mikhail Kulyabin 与 Andreas Maier)+ 乌拉尔联邦大学 + 叶卡捷琳堡 Professorskaya Plus 眼科诊所 + 乌拉尔国立医科大学(俄罗斯)+ Flinders University(澳大利亚,Paul A. Constable),共 11 人。
Q23:引用格式是什么?
Kulyabin, M., Zhdanov, A., Nikiforova, A. et al. OCTDL: Optical Coherence Tomography Dataset for Image-Based Deep Learning Methods. Sci Data 11, 365 (2024). https://doi.org/10.1038/s41597-024-03182-7(数据另引 Zenodo/Mendeley DOI)。
Q24:检索时用什么关键词不会踩坑?
用 “OCTDL” 精确检索最稳。避免裸搜 “OCT-500/OCT500”(那是 OCTA-500 的别名与商用设备名);“OCT dataset classification” 类泛检索会同时命中 Kermany/OCTID/本数据集,注意按设备(Optovue)与类别数(7)区分。
Q25:CSV 里的 eye 列 OD/OS 是什么意思?
眼科缩写:OD(oculus dexter)右眼、OS(oculus sinister)左眼。该列与 sex、year 一样只对"信息可公开"的患者填充,存在系统性缺失——按 disease 分层统计时先检查各类缺失率。
Q26:subcategory 里的 DRIL 为什么同时出现在 DME 和 RVO?
DRIL(视网膜内层结构紊乱)是"视网膜内积液长期存在"的共性结果:论文指出它见于 DME 等血管疾病患者,也出现在 RVO 血管阻塞之后,且其程度与视力预后相关。它是亚型层(病理实体)而非疾病层(诊断)的标签,跨诊断共享是设计而非噪声。
Q27:为什么 RVO 的成绩比 RAO 还重要?
RAO(22 张)样本太小,分数本身不稳定;RVO(101 张/50 人)勉强够做统计,0.633 的类内准确率因此成为"数据集真实难度"的最好指标——它说明困难来自病理表现重叠(与 DME 共享囊样水肿+DRIL),而不只是样本量。
Q28:官方预处理为什么用 512×512?
数据集图像尺寸逐张不同(光栅扫描动态长度),必须归一化;preprocessing.py 默认中心裁剪(crop_ratio=1)+512×512,可调 val 0.15/test 0.25/padding 等参数。想保留原生分辨率信息时可改用 padding 到方形的策略(–padding),并注意尺寸本身可能成为泄漏信号。
Q29:Zenodo 和 Mendeley 下载哪个好?
内容同源(2064 图正式版),任选。Zenodo 的优势是 API 结构化元数据+精确 md5;Mendeley 的优势是论文 Data availability 直接点名、有版本历史页。做自动化管线建议用 Zenodo API + md5 校验。
Q30:这个数据集能做分割任务吗?
原版只有图级分类标签;论文预告将发布手工分层分割标注(“manual segmentation will also be performed”)但截至抓取时点未落地。分割任务现状请用库内 retouch(积液分割)或 octa-500(分层/血管分割)条目。
Q31:论文有没有报告标注一致性系数(kappa)?
没有。论文的质量控制是结构性的(三级过手、共识机制、防疲劳约束),未报告逐类 Cohen’s/Fleiss’ kappa 或各层修订率。需要定量一致性数据的研究需自行抽样复标。
Q32:如果我要引用"第二大开源 OCT 数据集"这个说法,怎么引才严谨?
写"论文自述(Table 1 对比口径):规模仅次于 Kermany(207130 张)的开源 OCT 图像数据集"——注意它是"图像数"口径(OCT B-scan),且"第二大"随新数据集发布可能过时,引用时带上抓取时点。
Q33:论文里的 17 个数据集对比表(Table 1)现在还准吗?
该表是论文发表时点(2024)的景观快照,其中"limited/open"口径随平台政策会变;用它做叙事背景没问题,做系统性综述时应逐个复核最新状态。本条目 §7.1 忠实转录论文口径,未自行更新。
Q34:subforum 里有人说 OCTDL 是 OCTA-500 的子集,对吗?
不对,这是坑 1 的变体谣言。两者设备同厂近系(Optovue),但团队(俄德 vs 中国)、模态(OCT B-scan vs OCTA volume)、规模(2064 图 vs 500 受试者)、论文(Sci Data vs MedIA)全部不同;不存在任何派生或包含关系。见到此说法可用两篇论文的机构与设备段落直接反证。
Q35:想系统复现论文,从哪份材料开始读?
顺序建议:论文 Methods(标注程序+实验设置)→ 本条目 §5(数字与坑)→ GitHub README(参数)→ preprocessing.py 源码。论文先行容易把 60:10:20 笔误直接带进代码;代码先行容易漏掉 patient 级划分的论证理由。
Q36:这条目和 FACTS.md 里的数字打架了怎么办?
以成稿(本文件)正文为准、FACTS.md 是编辑底稿;两者都不确定时以论文 PMC 原文与 Zenodo API 为最终裁决源。发现新的口径冲突应先记录再修正,不要静默改数字——这是本站事实纪律的一部分。
Q37:CSV 里的 year 列是采集年份还是患者出生年?
列名语境(与 image_width/height 并列的图像级元数据)指向采集相关年份,但论文正文未对 year 列给出显式数据字典定义;使用它做时间趋势分析前建议先向官方确认口径,或在论文中明示"口径按列名推断"。
Q38:OCTDL 图像有 DICOM 或 NIfTI 版本吗?
官方只发布 JPG+CSV。图像尺寸动态变化的原始设计使体数据格式(NIfTI)不适用;需要 DICOM 工作流的团队需自行转换并自担元数据映射责任(DAIMS I 维度扣分点)。
Q39:我想给数据集加标注(如分层分割),许可上允许吗?
允许——CC BY 4.0 明确允许演绎(adaptation),要求是归因并注明修改。你的衍生标注可以自选许可发布;建议在衍生集中保留原 CSV 以便追溯。
Q40:数据集的 HuggingFace 版本可信吗?
官方渠道是 Zenodo/Mendeley/GitHub 三处,论文与 API 均未提及 HF 官方镜像;第三方 HF 转载的完整性与版本时效不受官方背书,生产用途请回到官方源并验 md5。
Q41:paper 里 “dynamic scan length and image resolution” 到底多动态?
论文没有披露扫描长度枚举或尺寸分布表;已知的量化痕迹只有 CSV 的 image_width/image_height 逐图值与"轴向 5 μm/横向 15 μm"的设备固参。需要精确协议的研究请直接联系通讯作者。
Q42:如何快速判断一篇第三方论文用的 OCTDL 是哪个版本?
看三处:规模数字(1600+ 图 = 预印本时期;2064 图 = 2024-03 正式版);数据 DOI(指向 concept = 最新,指向 10839556 = 正式版);发表日期(2024-03-19 前的论文只可能用到早期版本)。
Q43:标注者是论文作者吗?
L1 的 7 名医学生与 L2 的两名专家(A.S.、A.K.)、L3 的 A.N. 均为诊所/医科大学人员,其中 A.S./A.K./A.N. 三人同时是论文作者(Stepichev/Kuznetsova/Nikiforova,分工栏 data collection)——标注与写作是同一批人,无外包痕迹。
Q44:数据里有患者纵向随访吗?
CSV 只有 year 列的粗时间信息,论文未描述纵向随访设计;同一患者多图是同次或近次扫描的光栅产物,不构成治疗-随访时间线。纵向研究需另行设计采集。
Q45:可以把 OCTDL 裁成 patch 做自监督预训练吗?
许可允许(CC BY 4.0 演绎权),工程上常见;但注意 patient 级划分约束在 patch 层面同样适用(同一患者的 patch 不能跨集),且自监督用图与下游分类用图的重叠要在论文里披露。
Q46:论文的混淆矩阵(Fig. 8)能拿到数值版吗?
论文以图形式呈现,未附数值表;本条目遵守"不转录图内数字"纪律(附录 M)。确需数值者可向作者请求或自行复现后报告自己的矩阵。
Q47:OCTDL 与糖尿病视网膜病变筛查(如 EyePACS 类任务)是什么关系?
模态不同(OCT 断层 vs 眼底彩照)、任务层级不同(确诊分型 vs 初筛);OCTDL 的 DME 类与 DR 筛查在临床路径上衔接(fundus 初筛 → OCT 确诊),但两个数据集不可互相替代训练同一模型(Q14 同理)。
Q48:这篇条目里哪些数字会随时间失效?
三类:Zenodo 下载统计(动态增长)、"未见更新"与"计划状态"类表述(随官方发布失效)、"第二大"定位(随新数据集发布失效)。硬数字(2064/821/类别分布/基线成绩/时间线/校验和)对固定版本永恒成立。
事实清单(硬事实 48 条)
- 数据集全称:OCTDL: Optical Coherence Tomography Dataset for Image-Based Deep Learning Methods。
- 总量:2064 张 OCT B-scan / 821 患者 / 7 类疾病(论文 Table 2)。
- 类别分布(图/人):AMD 1231/421、DME 147/107、ERM 155/71、NO 332/110、RAO 22/11、RVO 101/50、VID 76/51。
- 论文:Kulyabin M. et al., Scientific Data 11, 365 (2024),doi 10.1038/s41597-024-03182-7。
- 论文时间线:Received 2023-12-14 / Accepted 2024-03-22 / Published 2024-04-11(PMC XML history)。
- 论文标识:PMID 38605088;PMCID PMC11009408;article-type 为 data-paper(Data Descriptor)。
- 预印本:arXiv:2312.08255,v1 2023-12-13 / v2 2024-03-19 / v3 2024-03-31 / v4 2024-10-01。
- 机构:FAU Erlangen-Nürnberg(德国)+ Ural Federal University(俄)+ Ophthalmosurgery Clinic “Professorskaya Plus”(叶卡捷琳堡)+ Ural State Medical University(俄)+ Flinders University(澳)。
- 作者 11 人;通讯 Mikhail Kulyabin(mikhail.kulyabin@fau.de,ORCID 0009-0007-0440-030X)。
- 分工:数据采集 A.N./A.S./A.K.;软件 M.K.;监督 A.M./S.K./A.B.(论文 Author contributions)。
- 设备:Optovue Avanti RTVue XR;黄斑光栅扫描、动态扫描长度与分辨率;轴向 5 μm/横向 15 μm;SLD 840 nm;中心凹对准。
- 人群:年龄 20-93(均值 63),男:女=3:2,采集地叶卡捷琳堡。
- 文件组织:JPG 按疾病分文件夹,路径 [label]/[label][patient_id][n].jpg。
- 标签文件 OCTDL_labels.csv 十列:file_name, disease, subcategory, condition, patient_id, eye, sex, year, image_width, image_height。
- 亚型标签:MNV、DRIL、drusen、ME、MH(subcategory/condition 承载)。
- Zenodo:concept DOI 10.5281/zenodo.10370472;当前版本 record 10839556(v2,2024-03-19),DOI 10.5281/zenodo.10839556。
- Zenodo 文件:OCTDL.zip 398,564,236 B md5 dec9766fc916202c45a333c4f5a09576;OCTDL_labels.csv 109,541 B md5 2fced789038c6ca83283066c2f8ad289。
- Mendeley Data:10.17632/sncdhf53xc,当前 v4(2024-03-19);页面文件口径 380 MB/107 KB;contributors 缺 Constable。
- 数据许可 CC BY 4.0(Zenodo API license 字段 + Mendeley Licence 双确认);论文许可 CC BY 4.0(© The Author(s) 2024)。
- 代码许可 Apache-2.0(GitHub LICENSE 文件实抓全文确认);Kaggle 第三方镜像(deepakraje/macular-oct-data)元数据误标 MIT。
- 伦理:乌拉尔联邦大学伦理委员会 Conclusion No. 1(2023-02-01)批准;全体受试者书面知情同意(论文原文)。
- 标注流水线:7 名医学生独立标注+共识 → 2 名资深专家(A.S./A.K.)复标 → 诊所专家负责人(A.N.)终审。
- 防疲劳约束:学生 ≤100 图/session、专家 ≤200 图/session、每日 1 session。
- 基线划分:60:10:20 训练/验证/测试、patient 级切分(原文三项之和为 90,笔误存照)。
- 基线超参:Cross-Entropy + ADAM(lr 0.0005);增强 random crop/水平垂直翻转/旋转/平移/高斯模糊。
- 基线结果:OCTDL 7 类 VGG16 0.859/0.869/0.977、ResNet50 0.846/0.866/0.988(ACC/F1/AUC);类平衡准确率 ≈0.979;AMD 0.963 最高、RVO 0.633 最低(recall 0.652)。
- 混训结果:OCTID+OCTDL VGG16 0.975(上涨);Kermany+OCTDL VGG16 0.818、ResNet50 0.833(从 0.998 大跌)。
- 景观定位:论文自述第二大开源 OCT 图像数据集(仅次于 Kermany 207130 张);Table 1 对比 17 个数据集,其中 9 个 limited。
- 论文 Data availability 原文只点名 Mendeley;正文称 Kermany “published in 2019” 而 Table 1 与 Cell 论文为 2018(两处口径漂移存照)。
- Zenodo 统计(2026-09-27 抓取):downloads 1574 / unique downloads 1012 / views 1144;GitHub 首 commit 2023-12-10、README 更新 2024-04-15。
- 论文预告的后续(未兑现状态截至 2026-09-27):手工分层分割标注、疾病+病理条件双标签投票集成、半监督/无监督异常检测、扩充遗传性视网膜营养不良与 RVP(早产儿视网膜病变)等稀有病。
- 跨数据集并类逻辑(论文原文):DME 是 DR 的特例、MH 是 VID 的特例、drusen 与 MNV 分别为 AMD 的早期与晚期;OCTDL+OCTID 随机混切、OCTDL 仅作 Kermany 的测试子集。
- 论文正文对 Kermany 的口径笔误:正文写 “published in 2019”,Table 1 与 Cell 论文均为 2018。
- 官方代码默认预处理参数:crop_ratio=1(中心裁剪)、image_dim=512、val_ratio=0.15、test_ratio=0.25、padding=False(GitHub README)。
- 论文 Fig. 1-8 结构:灰度读图基础(Fig.1)、AMD 三阶段(Fig.2-3)、DME 征象(Fig.4)、RVO/RAO(Fig.5)、VID 牵拉伸缩(Fig.6)、ERM(Fig.7)、两模型混淆矩阵(Fig.8)。
- VGG16 结构口径:16 层/138M 参数/13 卷积层+3 全连接层/五个 max pooling/softmax 输出;ResNet50 口径:50 层/48 卷积层/1 MaxPool/1 平均池化;ResNet 用 shortcut connections 解决梯度消失(论文原文)。
- Mendeley 相关链接含 IEEE DataPort 文档页(ieee-dataport.org/documents/octdl-…);Mendeley categories 为 Optical Coherence Tomography + Deep Learning。
- 论文引言的 OCT 历史锚点:视网膜 OCT 成像由 Huang 等人 1991 年首次提出(Science 1991,论文引文 5)。
- Professorskaya Plus 诊所地址:Vostochnaya 30, Yekaterinburg 620075;USMU 地址:Repina 3, Yekaterinburg 620028;UrFU 地址:Mira 32, Yekaterinburg 620078(论文 affiliations 原文)。
- Zenodo 归属社区 fau;resource_type 为 Dataset;语言 eng;related identifier 指向论文 DOI 10.1038/s41597-024-03182-7(Zenodo API metadata)。
- 论文疾病学小节覆盖七组的 OCT 定义与征象(Fig.1-7 配套);DRIL 在论文中定位为"跨 DME/RVO 的视力预后生物标志"(正文原句)。
- 监控更新触发判据:files[].checksum 变化 = 数据更新;仅版本 DOI 变化 = 元数据修订;GitHub 新 commit = 代码演进先行(本条目 §7.6 制定)。
- 版本规模锚点:arXiv v1 时期约 1600+ 图,2024-03 正式版 2064 图——跨版本引用会产生约 400+ 张的规模漂移(本条目 §2.7)。
- 论文作者贡献角色(Zenodo 口径):Kulyabin = contact person(FAU);Zhdanov/Borisov/Ronkin = research group(UrFU);Nikiforova/Stepichev/Kuznetsova = data collectors;Bogachev/Korotkich/Maier = supervisors。
- L2/L3 标注者与论文作者为同一批人(A.S.=Stepichev、A.K.=Kuznetsova、A.N.=Nikiforova,分工栏 data collection)——标注与写作同一团队,无外包。
- 官方发布物无 DICOM/NIfTI 格式,仅 JPG+CSV;官方渠道不含 HuggingFace 镜像(Q38/Q40 核验口径)。
- 会随时间失效的数字限于三类:下载统计、更新/计划状态、"第二大"定位;固定版本的硬数字(规模/分布/基线/时间线/md5)不失效。
- 本条目与 FACTS.md 的裁决次序:成稿正文 > FACTS.md > 论文正文口径 > 平台页面描述;最终事实源为 PMC 全文与 Zenodo API。
术语表(36 条)
- OCT(Optical Coherence Tomography,光学相干断层扫描):用低相干光干涉重建组织深度剖面的无创成像技术,眼科横断面成像支柱。
- OCTA(OCT Angiology/OCT 血管成像):基于 OCT 的血管血流成像模态——OCTA-500 的本体模态,OCTDL 不含。
- B-scan:OCT 的一条二维横断面扫描线图像;OCTDL 的基本数据单元。
- 黄斑(macula):视网膜中央负责精细视力的区域;OCTDL 全部扫描以其中的中心凹为基准。
- 中心凹(fovea):黄斑中央凹点,视力最锐利处;OCTDL 每条扫描以它为中心。
- AMD(Age-related Macular Degeneration):年龄相关性黄斑变性;OCTDL 最大类(1231 张)。
- DME(Diabetic Macular Edema):糖尿病黄斑水肿;糖尿病视网膜病变致盲的主因。
- ERM(Epiretinal Membrane):视网膜前膜;黄斑内表面胶质组织增殖,“玻璃纸样视网膜”。
- RAO(Retinal Artery Occlusion):视网膜动脉阻塞;急性缺血致内层视网膜高反射(OCTDL 最小类,22 张)。
- RVO(Retinal Vein Occlusion):视网膜静脉阻塞;继发囊样黄斑水肿(OCTDL 中基线成绩最差类,0.633)。
- VID(Vitreomacular Interface Disease):玻璃体黄斑界面疾病;后玻璃体脱离异常路径导致的牵拉/裂孔组。
- MNV(Macular Neovascular Membrane):黄斑新生血管膜;AMD 晚期标志(subcategory 标签)。
- DRIL(Disorganization of Retinal Inner Layers):视网膜内层结构紊乱;DME/RVO 共用的视力预后生物标志。
- drusen(玻璃膜疣):Bruch 膜与 RPE 之间的细胞外沉积物;AMD 早期标志。
- ME(Macular Edema)/ MH(Macular Hole):黄斑水肿/黄斑裂孔;两者均为 subcategory 标签,MH 是 VID 的特例。
- p-MLM(prominent middle limiting membrane):中界膜显影征;RAO 急性缺血的 OCT 生物标志(论文 Fig. 5)。
- SLD(Superluminescent Diode,超辐射发光二极管):OCT 光源;OCTDL 设备用 840 nm。
- patient 级划分:按患者(而非按图)切分训练/验证/测试,防止同一患者的图像跨集泄漏。
- tiered grading(分级评分员梯队):Kermany 数据集的标注模式;与 OCTDL 三级流水线形成方法学对照。
- CC BY 4.0:知识共享署名 4.0 许可;允许任何用途(含商用)+ 归因。OCTDL 数据与论文的许可。
- Apache-2.0:带专利授权与 NOTICE 条款的开源软件许可;OCTDL 官方代码许可。
- Concept DOI / Version DOI:Zenodo 中"概念 DOI"恒指最新版本,"版本 DOI"钉死具体版本;OCTDL concept DOI 10.5281/zenodo.10370472。
- Data Descriptor:Scientific Data 期刊的数据论文体裁(article-type=“data-paper”),描述数据而非提出科学假设。
- OCT-500 / OCT500:文献中 OCTA-500 的别名(亦为若干商用设备名)——与 OCTDL 无关的检索陷阱(本站 oct-500 slug 弃用改道的原因)。
- hard exudates(硬性渗出,HE):替代视网膜组织而不增厚视网膜的高反射沉积物;血-视网膜内屏障破坏的不利征兆(DME 征象之一)。
- IRF(Intraretinal Fluid,视网膜内积液):低反射内容的视网膜内囊腔;轻度视网膜增厚可能是其前兆。
- cuticular drusen(表皮样玻璃膜疣):聚集于黄斑区、OCT 呈锯齿状/双层外观的 drusen 变体;可并发 drusenoid PED。
- drusenoid PED:RPE 的玻璃膜疣样脱离——视网膜下间隙低反射积液、RPE 自 Bruch 膜剥离;AMD 中期征象。
- posterior vitreous detachment(PVD,后玻璃体脱离):年龄相关的玻璃体后皮质分离过程;其病理路径构成 VID 疾病组。
- lamellar tear(板层撕裂):光感受器层完整性保留的黄斑裂孔变体;常无症状、随访即可(VID 亚谱)。
- GroupShuffleSplit:按组(如 patient_id)切分的交叉验证工具;OCTDL 患者级划分的现成实现(附录 J)。
- Data Descriptor:见第 23 条——Sci Data 数据论文体裁;与 Data Descriptor 配套的 peer-review 会核验数据可用性(OCTDL 通过并发表于 2024-04-11)。
- metamorphopsia(视物变形症):ERM 成熟期牵拉引发的直线扭曲症状;论文 ERM 小节的临床关键词。
- ERM peel(视网膜前膜剥离):ERM 的手术治疗;论文指出延误手术将致不可逆视功能损失。
- data collection(数据采集角色):Zenodo/论文贡献角色字段;OCTDL 中由 Nikiforova/Stepichev/Kuznetsova 三人承担。
- 测试域固定 vs 同步扩大:跨数据集混训的两种评测口径;OCTDL 论文一正一反两组混训结果的分歧根源(§5.2.1)。
附录
附录 A:七类疾病速查表(诊断要点据论文正文)
| 类别 | 全称 | 图/人 | OCT 核心征象 | 相关亚型 |
|---|---|---|---|---|
| AMD | Age-related Macular Degeneration | 1231/421 | drusen 圆顶隆起;RPE 失调;视网膜下/内/色素上皮下积液;外层视网膜小管增生 | drusen(早)、MNV(晚) |
| DME | Diabetic Macular Edema | 147/107 | 硬性渗出(HE);囊腔(IRF);高反射灶;内层结构紊乱 | ME、DRIL |
| ERM | Epiretinal Membrane | 155/71 | 内界膜增厚皱褶(玻璃纸样);黄斑异位;牵拉变形 | — |
| NO | Normal | 332/110 | 正常 fovea 凹陷与分层;低/高反射带对照论文 Fig. 1 | — |
| RAO | Retinal Artery Occlusion | 22/11 | 急性内层缺血高反射;水肿;p-MLM 征 | — |
| RVO | Retinal Vein Occlusion | 101/50 | 囊样黄斑水肿(内层为主);内层高反射(缺血);DRIL | ME、DRIL |
| VID | Vitreomacular Interface Disease | 76/51 | 玻璃体黄斑牵拉;视网膜内囊肿/裂孔;板层撕裂;后玻璃体膜附着 | MH |
附录 B:DAIMS 评估全表
| 维度 | 评分(1-10) | 依据 |
|---|---|---|
| D 可发现性 | 8 | 论文(Sci Data/arXiv/PMC 三入口)+ Zenodo/Mendeley/GitHub 多平台可索引;但 “OCTDL” 名易被 “OCT-500” 类近名污染检索环境 |
| A 可获取性 | 10 | 数据/代码/论文三层全无墙:匿名直下 + md5 校验 + 多地域托管(Zenodo/Mendeley 双托管) |
| I 可互操作 | 8 | JPG+CSV 通用格式、文件名自含元数据、subcategory 桥接跨数据集并类;扣分:图像尺寸逐张不同需归一化,无官方 DICOM 转换 |
| M 元数据质量 | 8 | CSV 十列数据字典+论文 Table 2/3 完备+人口学披露;扣分:60:10:20 笔误、Kermany 年份正文漂移、一致性系数未报告 |
| S 可持续性 | 7 | 学术机构托管(Zenodo/Mendeley)稳定;但 “will be updated periodically” 承诺自 2024-03 后未兑现,官方更新节奏存疑 |
| 综合评级 | 8.2/10(高) | 开放性是本条目的最大资产;失分点全部集中在元数据叙事的边角与更新承诺的兑现缺口 |
逐维度说明:
- D(8/10):数据论文+预印本+PMC 三重学术入口,Zenodo/Mendeley 双托管页自带论文 DOI 关联,机器可索引性好。扣两分因为 OCT 领域近名拥挤(OCT-500/OCTA-500/OCTID/OCT2017),泛检索场景下本条目容易被误路由(坑 1 的存在本身就是 D 维度的减分证据)。
- A(10/10):库内满分档。数据 398.6 MB 直下、代码 git clone、论文开放获取,无注册、无申请、无审批;md5 齐全使获取可验证。唯一保留:Zenodo 单文件 ZIP 一次性下载,按类增量获取不支持。
- I(8/10):JPG/CSV 是最大公约数格式,文件名内嵌 label/patient_id/序号使其"脱离 CSV 仍可用";subcategory 字段是跨库互操作的稀缺资产。扣分在"动态尺寸"——所有下游必须做一次归一化决策,且没有官方 DICOM/NIfTI 转换器。
- M(8/10):十列 CSV 数据字典在论文正文有完整定义;Table 2/3 覆盖分布与基线。扣分项三处笔误/漂移(坑 4/坑 8)与缺失的一致性系数(§3.3)。
- S(7/10):Zenodo/Mendeley 是学术托管里最稳的一档,concept DOI 永久解析。扣分在运营:承诺的 periodic update 与稀有病扩充自 2024-03 起未见兑现,GitHub 也停留在 2024-04——数据本体稳定但"活数据集"预期应调低。
附录 C:逐项证据链自证
| 关键数字 | 来源 | 位置/方式 |
|---|---|---|
| 2064 图/821 人/七类分布 | 论文 Table 2 | PMC 全文(PMC11009408) |
| 轴向 5 μm/横向 15 μm/840 nm SLD | 论文方法节(数据采集段) | PMC 全文 |
| 7 名学生/2 名专家/A.N. 终审/100/200 图每 session | 论文标注程序节 | PMC 全文 |
| 伦理 Conclusion No. 1(2023-02-01) | 论文 Ethics 声明 | PMC 全文(原文引录) |
| VGG16 0.859/ResNet50 0.846 等全表 | 论文 Table 3 | PMC 全文 |
| 类平衡 0.979/AMD 0.963/RVO 0.633 | 论文结果节正文 | PMC 全文 |
| 60:10:20 划分原文 | 论文方法节(实验设置段) | PMC 全文(笔误存照) |
| 混训 0.957/0.975 与 0.833/0.818 | 论文 Table 3 | PMC 全文 |
| Zenodo concept/version DOI、cc-by-4.0、精确字节与 md5 | Zenodo API records/10370472 → 10839556 | API 实抓 2026-09-27 |
| Mendeley v4/2024-03-19/CC BY 4.0/380 MB | Mendeley Data 页面 | 页面实抓 2026-09-27 |
| Apache-2.0 LICENSE | GitHub raw LICENSE 文件 | 文件全文实抓 2026-09-27 |
| arXiv 版本链 v1-v4 与日期 | arXiv 摘要页 submission history | 页面实抓 2026-09-27 |
| PMID/PMCID/接收发表日期 | PubMed 摘要页 + PMC XML history | 实抓 2026-09-27 |
| OCT-500 别名指向 OCTA-500 | PMC11537946 原文 | 上一会话三轮搜索存证 |
| 标注者=作者同一批(A.S./A.K./A.N.) | 论文标注程序节 × Author contributions 交叉比对 | PMC 全文(事实 45) |
| Mendeley contributors 缺 Constable | Mendeley 页面 contributors 列表 vs 论文 11 人 | 页面实抓(§3) |
| 无 DICOM/NIfTI 官方版本 | Zenodo/Mendeley 文件清单仅 JPG+CSV | API/页面实抓(Q38) |
| L1 标注组 7 名医学生 | 论文标注程序步骤 1 原文 “a group of 7 medical students” | PMC 全文 |
| p-MLM 征定义 | 论文 RAO 疾病学小节 | PMC 全文(§2.6.4) |
附录 D:数据获取决策树
需求是什么?
├── 想跑分类模型
│ ├── 1) 下载 OCTDL.zip + OCTDL_labels.csv(Zenodo 或 Mendeley,验 md5)
│ ├── 2) git clone 官方仓库,python preprocessing.py(默认 512x512)
│ └── 3) python main.py 复现基线(对照 Table 3;分数带类内指标)
├── 想做跨数据集/跨设备研究
│ ├── 1) 读 CSV 的 subcategory/condition 列做并类映射(附录 E)
│ ├── 2) 按 patient_id 做患者级划分
│ └── 3) 设计域差管理(设备标签/风格归一化)——参考坑 6 跌分教训
├── 只想引用数字
│ ├── 规模/分布 → Table 2;基线 → Table 3
│ ├── 划分比例 → 引原文并注"笔误存照"(坑 4)
│ └── 伦理/许可 → §4.3/§6.3 原文引录
├── 想确认"OCT-500 是不是这个数据集"
│ └── 不是。OCT-500 是 OCTA-500 的别名(见库内 octa-500 条目与坑 1)
└── 想监控官方后续更新
├── 季度:Zenodo API 比对 files[].checksum(§7.6 表格)
├── 季度:GitHub commits 最近日期
└── 触发条目修订的判据:md5 变化 > 版本 DOI 变化 > commit 变化
附录 E:跨数据集并类映射(论文合并逻辑)
| OCTDL 标签/亚型 | OCTID 对应 | Kermany 对应 | 合并语义 |
|---|---|---|---|
| DME | DR | DME | DME 是 DR(糖尿病视网膜病变)的特例 |
| VID(MH 亚型) | MH | — | 黄斑裂孔是 VID 的特例 |
| AMD(drusen 亚型) | AMD | Drusen | 玻璃膜疣 = AMD 早期 |
| AMD(MNV 亚型) | AMD | CNV | 新生血管膜 = AMD 晚期(Kermany 的 CNV 类) |
| NO | NO | NO | 正常对照 |
附录 F:版本链与文件校验对照表
| 平台 | 版本 | 日期 | 标识符 | 文件口径 |
|---|---|---|---|---|
| arXiv | v1 | 2023-12-13 | arXiv:2312.08255v1 | 13,276 KB(约 1600+ 图时期) |
| Mendeley | v3 | 2023-12-27 | 10.17632/sncdhf53xc.3 | 论文引用的 Mendeley 早期版本 |
| Zenodo | concept | 2023-12 | 10.5281/zenodo.10370472 | 恒指最新 |
| Mendeley | v4 | 2024-03-19 | 10.17632/sncdhf53xc.4 | 380 MB / 107 KB(页面口径) |
| Zenodo | v2 | 2024-03-19 | 10.5281/zenodo.10839556 | OCTDL.zip 398,564,236 B md5 dec9766fc916202c45a333c4f5a09576;OCTDL_labels.csv 109,541 B md5 2fced789038c6ca83283066c2f8ad289 |
| arXiv | v4 | 2024-10-01 | arXiv:2312.08255v4 | 18,042 KB(定稿) |
附录 G:官方引用格式(作者提供 BibTeX)
@article{kulyabin2024octdl,
title={OCTDL: Optical Coherence Tomography Dataset for Image-Based Deep Learning Methods},
author={Kulyabin, Mikhail and Zhdanov, Aleksei and Nikiforova, Anastasia and Stepichev, Andrey
and Kuznetsova, Anna and Ronkin, Mikhail and Borisov, Vasilii and Bogachev, Alexander
and Korotkich, Sergey and Constable, Paul A and Maier, Andreas},
journal={Scientific Data},
volume={11},
number={1},
pages={365},
year={2024},
publisher={Nature Publishing Group UK London},
doi={https://doi.org/10.1038/s41597-024-03182-7}
}
数据引用建议并列:Zenodo concept DOI 10.5281/zenodo.10370472(或版本 DOI 10.5281/zenodo.10839556)与 Mendeley DOI 10.17632/sncdhf53xc。
附录 H:官方代码仓库结构与复现指南(GitHub README 口径)
仓库 MikhailKulyabin/OCTDL 是一个 2D OCT 分类的完整框架(“Framework for 2D classification of the OCT dataset”),核心文件:
| 文件/目录 | 作用 |
|---|---|
| main.py | 训练入口:python main.py,-c 指定 hydra 配置(默认 configs/default.yaml),-p 打印配置 |
| preprocessing.py | 数据预处理与划分:解压后执行 python preprocessing.py 生成 folder-form 数据集 |
| train.py | 训练循环实现 |
| modules/ utils/ | 模型与工具模块 |
| configs/ | hydra/yaml 配置(默认 default.yaml) |
| requirements.txt | 依赖清单 |
| LICENSE | Apache-2.0 全文 |
| README.md | 用法与引用说明(最近更新 2024-04-15) |
preprocessing.py 可调参数(README 原文口径):
| 参数 | 默认值 | 含义 |
|---|---|---|
| –dataset_folder | ./OCT_dataset | 数据集文件夹路径 |
| –labels_path | ./OCTDL_dataset/labels.csv | labels.csv 路径 |
| –output_folder | ./dataset | 输出路径 |
| –crop_ratio | 1 | 中心裁剪比例 |
| –image_dim | 512 | 最终图像尺寸 |
| –val_ratio | 0.15 | 验证集比例 |
| –test_ratio | 0.25 | 测试集比例 |
| –padding | False | 是否 padding 到方形 |
依赖栈:pytorch、torchvision、torcheval、timm、tqdm、munch、packaging、tensorboard、omegaconf、opencv-python、hydra-core、scikit-learn。
folder-form 目标结构(README 原文):
├── dataset
├── train
├── class1
├── image1.jpg
├── ...
├── class2
├── class3
├── ...
├── val
├── test
复现对齐提示:论文的划分口径是 60:10:20(笔误,见坑 4),而 preprocessing.py 默认 val 0.15/test 0.25(即 60:15:25)——两套数字不同源,复现论文 Table 3 时应在报告中注明采用的是哪套划分,并以"患者级切分"为不可动摇项。
附录 I:类别不平衡应对手册(基于已核验数字)
OCTDL 的分布(AMD 59.6% vs RAO 1.1%)属于重度不平衡。以下策略按"已被数据集结构支持"到"需自行验证"排序:
- 永远 patient 级划分(结构支持):patient_id 列存在且官方基线如此执行;任何策略之前先固定这一项。
- 报告口径升级(零成本):总 ACC 之外必报类平衡准确率、per-class F1、混淆矩阵(官方口径即如此:类平衡 0.979 vs 总 ACC 0.85 的差距全部藏在少数类)。
- 类别加权损失/焦点损失(常规手段):七类权重可按 1/sqrt(n_c) 或有效样本数法设定;注意 RAO 22 张给高权重会放大其标签噪声影响——权重上限与验证集表现联动。
- 增强的差异化管理(常规手段):少数类(RAO/RVO/VID)加大几何与灰度增强倍数;增强在划分后做(附录 J 骨架已保证)。
- 并类评测(论文支持):用 subcategory 映射做"血管事件组(RAO+RVO)""界面疾病组(VID+ERM 特征重叠)"等二级评测,缓解单类样本饥饿——但结论要标注并类口径。
- 不要做的:把 RAO 从训练中剔除(类别覆盖是本数据集的核心价值);在总 ACC 上做模型选择(会被多数类绑架)。
附录 J:患者级划分代码骨架
# 依赖:OCTDL_labels.csv(十列规范见 §2.3)
import pandas as pd
from sklearn.model_selection import GroupShuffleSplit
df = pd.read_csv("OCTDL_labels.csv")
groups = df["patient_id"] # 唯一切分依据:患者,不是图
# 论文口径 60:10:20 疑笔误(和为 90);此处按 60:20:20 示例并注明
gss1 = GroupShuffleSplit(n_splits=1, test_size=0.20, random_state=42)
train_idx, rest_idx = next(gss1.split(df, groups=df["patient_id"]))
df_train, df_rest = df.iloc[train_idx], df.iloc[rest_idx]
gss2 = GroupShuffleSplit(n_splits=1, test_size=0.50, random_state=42)
val_idx, test_idx = next(gss2.split(df_rest, groups=df_rest["patient_id"]))
df_val, df_test = df_rest.iloc[val_idx], df_rest.iloc[test_idx]
assert not (set(df_train.patient_id) & set(df_val.patient_id))
assert not (set(df_train.patient_id) & set(df_test.patient_id))
assert not (set(df_val.patient_id) & set(df_test.patient_id))
# 断言通过 = 无患者级泄漏;后续增强只对 train 做
要点:GroupShuffleSplit 按 patient_id 分组;分层版本可对 disease 列做 stratified group 切分(sklearn 无现成 API,需手写组内分层);增强管道必须挂在 train 子集之后。
附录 K:数据使用合规检查单
| 检查项 | 状态 | 说明 |
|---|---|---|
| 数据许可 | CC BY 4.0 | 归因即可用(含商用);引用论文 DOI+数据 DOI |
| 代码许可 | Apache-2.0 | 保留 LICENSE 与 NOTICE;勿采信 Kaggle 镜像 “MIT” 标注 |
| 论文许可 | CC BY 4.0 | 图表复用注明出处 |
| 伦理边界 | 已批准 | UrFU 伦理委员会 Conclusion No.1(2023-02-01);书面知情同意在案 |
| 隐私红线 | 注意 | 不得尝试从影像+CSV 元数据重识别患者;eye/sex/year 已是可公开筛选口径 |
| 归因格式 | 建议 | Kulyabin et al., Sci Data 11, 365 (2024) + Zenodo/Mendeley DOI |
| 再分发 | 允许 | CC BY 4.0 允许再分发(含衍生),保留归因与许可说明 |
| 版本锚定 | 建议 | 生产环境引用版本 DOI(10.5281/zenodo.10839556)而非裸 URL,防上游更新漂移 |
附录 L:论文图表导航(读论文快查)
| 编号 | 内容 | 对应本条目章节 |
|---|---|---|
| Fig. 1 | 正常视网膜 OCT 灰度读图:低反射结构(编号 2/8/9/16)与高反射结构(1/3/13/14/15)标注 | §2.6.7 |
| Fig. 2 | AMD 三阶段:硬性 drusen / cuticular drusen(锯齿状) / drusenoid PED | §2.6.1 |
| Fig. 3 | AMD 晚期:外层视网膜小管增生与三类积液(视网膜下/内/色素上皮下) | §2.6.1 |
| Fig. 4 | DME 征象(HE/IRF/高反射灶)与 DRIL | §2.6.2 |
| Fig. 5 | RVO 的 IRF+内层高反射;RAO 的缺血高反射与 p-MLM 征 | §2.6.3/§2.6.4 |
| Fig. 6 | VID:玻璃体黄斑牵拉、裂孔、板层撕裂 | §2.6.5 |
| Fig. 7 | ERM 与中心小凹变形/异位 | §2.6.6 |
| Fig. 8 | ResNet50 与 VGG16 在 OCTDL 上的混淆矩阵 | §5.2/§5.5 |
| Table 1 | 17 个公开 OCT 数据集对比景观 | §7.1 |
| Table 2 | 七类图像数/患者数分布 | §2.1 |
| Table 3 | 十组基线实验全指标 | §5.2 |
附录 M:少数类的混淆与鉴别要点(基线证据支持的定性图谱)
论文 Fig. 8 提供两模型混淆矩阵,正文给出类内准确率两极(AMD 0.963 / RVO 0.633)。结合疾病学(§2.6)可读出以下定性鉴别要点(供标注培训与误差分析用):
| 易混淆对 | 共享征象 | 鉴别锚点 |
|---|---|---|
| DME ↔ RVO | 囊样水肿(IRF/ME)、DRIL | RVO 有内层高反射(缺血)与静脉阻塞病史;DME 伴硬性渗出与高反射灶 |
| DME ↔ AMD | 视网膜内/下积液形态 | AMD 积液定位在 RPE 相关间隙(sub-RPE),伴 drusen/MNV;DME 的囊腔在内层 |
| RVO ↔ RAO | 内层高反射 | 动脉阻塞急性期水肿更弥漫伴 p-MLM 征;静脉阻塞以囊样水肿为主导 |
| VID ↔ ERM | 界面牵拉变形 | VID 谱系看后玻璃体膜附着与全层/板层裂孔;ERM 看内表面膜与皱褶 |
| NO ↔ 早期 AMD | 轻度 RPE 起伏 | 硬性 drusen 的圆顶状 Bruch 膜上隆起是 AMD 早期锚点;NO 无此结构 |
附录 A 使用说明:表中"OCT 核心征象"与"相关亚型"两列的措辞可在论文疾病学小节逐句溯源;“占位编号”(如 Fig. 1 的 2/8/9/16)是论文原图内的结构编号,本条目不重绘不转录图内标注位置。
使用警示:上表为"论文文字可支持"的定性归纳,混淆矩阵的定量单元格数值以论文 Fig. 8 原图为准——本条目不转录图中数字,避免二次失真。
附录 N:三类使用者的 60 分钟上手路线
路线 A:分类模型研究者(60 分钟)
| 时间 | 动作 | 产出 |
|---|---|---|
| 0-10 min | 下载 OCTDL.zip + OCTDL_labels.csv(Zenodo),md5 校验 | 校验通过的原始数据 |
| 10-20 min | 通读 §2(数据构成)与附录 A(疾病速查),浏览 CSV 前几十行 | 对字段与分布的心智模型 |
| 20-35 min | git clone 官方仓库,按附录 H 跑 preprocessing.py | folder-form 数据集 |
| 35-50 min | main.py 复现基线(或用附录 J 骨架自定义划分) | 可对照 Table 3 的第一次训练 |
| 50-60 min | 用附录 I 检查报告口径(类内指标+混淆矩阵) | 合格的基线报告 |
路线 B:跨数据集/跨设备研究者(60 分钟)
| 时间 | 动作 | 产出 |
|---|---|---|
| 0-15 min | 读 §5.4(混训跌分)与坑 6,理解域差机制 | 对风险的认知框架 |
| 15-30 min | 用附录 E 映射表把 OCTDL 与目标数据集(OCTID/Kermany)做并类映射 | 统一标签空间的映射脚本 |
| 30-45 min | 按附录 J 做 patient 级划分(两组数据各自执行) | 无泄漏的多源切分 |
| 45-60 min | 设计域差探针(设备标签/风格统计对比)后再混训 | 带域差管理的实验设计 |
路线 D:条目审核/事实核查者(30 分钟)
| 时间 | 动作 | 核对点 |
|---|---|---|
| 0-10 min | 附录 C 证据链逐行抽查 3 条(PMC 全文/API/README) | 数字与来源一一对应 |
| 10-20 min | 核对坑点清单(§10)与 FAQ 口径是否一致 | 无互相矛盾表述 |
| 20-30 min | 复跑一次 Zenodo API 核对 license 与 md5 未变 | 抓取时点快照仍有效 |
| 时间 | 动作 | 产出 |
|---|---|---|
| 0-15 min | 读 §3(三级标注协议)与 §3.2(横向对照) | 可借鉴的 SOP 骨架 |
| 15-30 min | 读 §6.2/§6.2.1(版本链与发布纪律)+ 附录 F | 双托管+校验和的发布清单 |
| 30-45 min | 读 §8(方法学启示 6 条) | 6 条可迁移原则 |
| 45-60 min | 对照 FACTS.md §0 的改道决策链,检查自己项目的 slug/查重流程 | 防重名工作流 |
附录 O:常见错误用法与纠正(十二条)
| # | 错误用法 | 纠正 |
|---|---|---|
| 1 | 把 OCTDL 当作 OCTA-500 的别名或子集 | 两个独立数据集:OCT 结构分类 vs OCTA 血管分割体数据(§9、坑 1) |
| 2 | 按图随机划分训练/测试集 | 必须 patient_id 级划分,否则同患者图像跨集泄漏(附录 J) |
| 3 | 把 60:10:20 当精确超参写进复现代码 | 三项和为 90,论文笔误;自行设定并注明(坑 4) |
| 4 | 只报总体 ACC 0.859 | 必须带类平衡准确率与混淆矩阵,RVO 0.633 才是难度真相(坑 5) |
| 5 | 用 Kaggle 镜像的 “MIT” 标注做商用合规判断 | 镜像标注错误;数据 CC BY 4.0/代码 Apache-2.0(坑 3) |
| 6 | 裸写 “v2” 或 “v4” 版本号 | 必须带平台:Zenodo v2 / Mendeley v4(独立编号,坑 7) |
| 7 | 把 NO 类当"无任何病理改变" | 论文未披露正常类排除细目;它是"临床判读正常"(Q13) |
| 8 | 用 eye/sex/year 缺失样本重算人口学统计 | 三列是设计内缺失,直接引用论文口径(Q11) |
| 9 | 在 Kermany 上预训练、OCTDL 上测试后宣称"跨设备 SOTA" | 论文实验口径是 OCTDL 作 Kermany 的测试域;反向口径要自己设计并说明 |
| 10 | 把论文预告(分割标注/稀有病扩充)当已交付内容引用 | 截至 2026-09-27 均为计划状态(§5.6、Q18) |
| 11 | 用 arXiv v1 时期的"1600+ 图"描述当前数据集 | 正式版 2064 图;跨版本引用产生 400+ 张漂移(§2.7) |
| 12 | 自行从 eye/sex/year 缺失样本重算人口学比例 | 三列设计内缺失;直接引论文口径 20-93 岁/均值 63/男:女=3:2(Q11) |
尾注
本条目成稿于 oct-500 证伪改道事件之后,条目结构(§0.2、坑 1、附录 O 首条)刻意保留了这次证伪的完整痕迹——它们不是编辑残留,而是 OCT 域检索生态的第一手案例记录。
- 本条目由写手代理 agentA-oct500 编写,抓取时点 2026-09-27;所有外部数字以来源页面/PMC 全文/API 实抓为准,动态数据(Zenodo 统计、版本状态)已注时点。
- 条目 slug 为 octdl(改道自已证伪的 oct-500——改道决策链与证伪证据存照见同目录 FACTS.md §0)。
- 库内互链:octa-500(rid 341)、oct2017(rid 311)、retouch(rid 321)、eyepacs(rid 58)。
- 主要来源清单:论文 PMC 全文(PMC11009408)/ PubMed(PMID 38605088)/ arXiv:2312.08255 摘要页与版本史 / Zenodo API(records/10370472 → 10839556)/ Mendeley Data(sncdhf53xc)/ GitHub MikhailKulyabin/OCTDL(README+LICENSE 实抓)/ FAU CRIS 条目页。
- 事实冲突处理规则:论文正文与表格冲突时双口径存照(坑 4/坑 8);平台元数据与官方文件冲突时以官方文件为准(坑 3 的 Kaggle MIT 标注);本条目不转录混淆矩阵图内数值,避免二次失真(附录 M)。
- 免责与时效:AI 模型成绩、版本状态、下载统计均为抓取时点快照;引用本条目结论进行生产决策前,建议复核 Zenodo API 与官方仓库的当前状态。
- 与 FACTS.md 的关系:FACTS.md 是本条目的编辑底稿与证据档案(含 §0 改道决策链);两处口径不一致时以本成稿为准,最终裁决源为论文 PMC 原文与 Zenodo API。
- 坑点追溯索引:坑 1(OCT-500 陷阱)源于本任务 slug 证伪过程;坑 4/坑 8 源于论文文本细读;坑 3 源于许可证三源交叉核验;坑 5/坑 6 源于 Table 3 与正文结果的交叉解读。
- 编写流水线存照:本成稿按 5 部分分写(/tmp/oct-500_agentA-oct500_part1-5.md)后 cat 拼接,尾部保留空行;临时文件名沿用原 slug 会话前缀以保持任务痕迹可追溯。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- rfmid — 共享标签:医学影像 / 眼科影像 / 图像分类
- oct2017 — 共享标签:医学影像 / 眼科影像 / 图像分类
- brset — 共享标签:医学影像 / 眼科影像 / 图像分类
- odir — 共享标签:医学影像 / 眼科影像 / 图像分类
- oimhs — 共享标签:医学影像 / 眼科影像 / 图像分类
- palm — 共享标签:医学影像 / 眼科影像 / 图像分类
- sics-155 — 共享标签:医学影像 / 眼科影像 / 图像分类
- cardiac-implantable-device-cxr — 共享标签:医学影像 / 图像分类
- chest-x-ray-segmentation — 共享标签:医学影像 / 图像分类
- octid — 共享标签:医学影像 / 眼科影像 / 图像分类
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

