信息速览
Harvard-FairVision — 首个 2D+3D 眼科公平性大规模数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | Harvard-FairVision(FairVision) |
| 英文全称 | Harvard-FairVision: The First Large-Scale Medical Fairness Dataset with 30,000 Subjects Featuring Both 2D and 3D Imaging Data and Six Demographic Identity Attributes |
| 别名/简称 | FairVision、Harvard FairVision、harvardairobotics/FairVision |
| 疾病分类 | 年龄相关性黄斑变性(AMD)、糖尿病视网膜病变(DR)、青光眼(Glaucoma)(ICD-11 见 §2.1) |
| 数据模态 | 扫描激光检眼镜(SLO)眼底照片(2D)+ 光学相干断层扫描(OCT)B-scan(3D) |
| AI 任务类型 | 眼部疾病分类/筛查、公平性学习、2D 与 3D 模型偏倚评测 |
| 样本总数 | 30,000 名受试者(AMD 10,000 + DR 10,000 + Glaucoma 10,000) |
| 数据大小 | 约 600 GB |
| 数据格式 | NPZ(oct_bscans + slo_fundus + 属性字段)、JPG(SLO 眼底照)、CSV(data_summary_<病种>.csv) |
| 许可证 | CC BY-NC-ND 4.0 |
| 访问级别 | 开放获取(Hugging Face 数据集仓库直接下载) |
| DUO 标签 | NCU(非商业使用)、ND(禁止再分发衍生数据) |
| 语言 | 英文(文档与标注) |
| 首发日期 | 2023-10-03(arXiv v1 提交) |
| 最后更新 | 2024-04-12(arXiv v3,本页口径) |
| 发布机构 | Harvard Ophthalmology AI Lab(哈佛医学院眼科系) |
| 官方主页 | https://ophai.hms.harvard.edu/datasets/harvard-fairvision30k (本轮未直接核到,详见 §7 说明) |
| 下载地址 | https://huggingface.co/datasets/harvardairobotics/FairVision |
| 论文 | arXiv:2310.02492(DOI: 10.48550/arXiv.2310.02492) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 有官方三类划分目录、统一 NPZ 格式、data_summary CSV 与完整训练脚本;扣分项:属性分布未在 README 披露、掩膜/标签映射需自行转换、官方页本轮不可达 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 编码映射、三病临床任务定义、标签语义)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(NPZ 字段与属性编码、条件到标签映射)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-10-07
审核方式:交叉审核
利益冲突声明:千方病案医数集与 Harvard Ophthalmology AI Lab、哈佛医学院无任何商业利益关联。本页面不销售 Harvard-FairVision 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受哈佛大学、哈佛医学院及其附属机构的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Harvard-FairVision 采用 CC BY-NC-ND 4.0 许可,仅限非商业研究使用,任何时候不得用于临床决策或患者护理,且不得再分发衍生数据;官方 README 声明"Harvard"一词仅表明数据来自哈佛医学院眼科系,不代表哈佛大学或哈佛医学院作为法律主体的背书、赞助或责任承担。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? Harvard-FairVision(常简称 FairVision)是首个大规模、同时提供 2D 与 3D 医学影像的医学影像公平性数据集,由哈佛医学院眼科系的 Harvard Ophthalmology AI Lab 构建。它包含 30,000 名受试者——年龄相关性黄斑变性(AMD)、糖尿病视网膜病变(DR)与青光眼(Glaucoma)各 10,000 名——每名受试者配有一张扫描激光检眼镜(SLO)眼底照片与一份光学相干断层扫描(OCT)B-scan 样本,并携带年龄、性别、种族、族裔、首选语言、婚姻状况共 6 个身份属性(arXiv:2310.02492)。
为什么重要? 在 FairVision 之前,医学影像公平性研究几乎全部停留在 2D 层面,3D 模型的公平性长期缺乏大规模数据集支撑——而 3D 影像(如 OCT)在临床诊疗中的地位实际上高于 2D。论文明确指出,3D 影像公平性研究不足的根本原因是 3D 公平性数据集规模太小。Harvard-FairVision 用 30,000 名受试者的体量填补了这一空白,并在五种架构上量化了种族、性别、族裔带来的显著偏倚(GitHub README)。
我能用它做什么? 在官方三类划分上训练与评测 2D 眼底分类模型(如 ViT)与 3D OCT 分类模型(如 3D ResNet);按 6 个属性分组测量模型在 AMD/vtDR/青光眼筛查上的性能差距;复现与对比官方提出的 FIS(Fair Identity Scaling) 公平性方法;研究 2D↔3D 模态之间的公平性迁移。论文明确该数据集覆盖的三种眼病影响全球约 3.8 亿人口。注意:它只能用于非商业研究,且数据量约 600 GB,需提前规划存储。
§1.1 摘要
Harvard-FairVision 的核心工程决策有四点。第一,双模态同期采集:每名受试者同时提供 2D SLO 眼底照与 3D OCT B-scan,使同一个体可在两种影像维度上被公平性审计,这在同类数据集中是首创。第二,三病种 × 万级规模:AMD、DR、青光眼各 10,000 名,合计 30,000 名,覆盖全球约 3.8 亿患者所患的主要致盲眼病谱。第三,六维身份属性:年龄、性别、种族、族裔、首选语言、婚姻状况全部标注,兼顾人口学因素与社会经济代理因素。第四,方法与数据配套:论文提出 Fair Identity Scaling(FIS)训练方法,声称同时提升总体性能与公平性,并优于多种 SOTA 公平性方法;官方同步开源了 ViT(2D)与 3D ResNet(3D)两套骨干、含/不含 FIS 共四类训练脚本(GitHub README、arXiv:2310.02492)。
与 FairSeg 的对照阅读:FairSeg 面向分割任务(视盘/视杯像素级掩膜),FairVision 面向分类/筛查任务(疾病条件与标签);两者同属 Harvard Ophthalmology AI Lab,属性编码体系一致,可视为该实验室公平性数据集家族的两个支点。
§1.2 战略价值
3D 公平性研究基础设施维度:论文开篇即点明"2D 医学影像公平性已有进展,但 3D 模型的公平性仍未充分探索,受制于 3D 公平性数据集规模过小"。Harvard-FairVision 是第一个明确以"2D + 3D 双模态、大规模、多属性"为设计目标发布的公开数据集,使研究者能够回答"同一个 3D OCT 分类模型在种族/性别/族裔分组上的性能差距有多大"这类此前无法系统研究的问题(arXiv:2310.02492)。
多病种公平性基准维度:多数医学公平性数据集聚焦单一疾病或单一模态;FairVision 用同一套属性体系与统一格式横跨三种疾病,使得"偏倚是否随疾病类型变化"成为可实验变量。这对理解偏倚的普适机制(而非某个疾病的特例)具有方法论价值。
健康公平的政策与伦理维度:三种目标眼病影响约 3.8 亿人,且已有研究表明眼科 AI 模型对不同人口学群体的表现存在系统性差异。Harvard-FairVision 提供的数据与 FIS 方法,为"在部署前量化并缓解筛查算法的人群偏倚"提供了可复现的工具链,是医疗 AI 公平性从概念讨论走向工程实践的一环。
数据工程教学维度:数据集采用"NPZ 容器 + 独立 JPG 副本 + 元数据 CSV"的混合分发设计——NPZ 内含全部所需字段,使 dataloader 无需访问其他文件;独立 JPG 副本供人工可视化核查。这种"一份数据两种访问路径"的设计同时满足了训练效率与人工审计需求,是可借鉴的工程范式。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 敏感属性 | 任务 | 与 FairVision 的差异 |
|---|---|---|---|---|---|
| Harvard-FairVision | 30,000 名受试者 | SLO 眼底(2D)+ OCT B-scan(3D) | 6 个(年龄、性别、种族、族裔、语言、婚姻状况) | 三病种疾病分类/筛查 | 唯一同时具备 2D+3D 双模态、万级规模和 6 属性的公平性数据集 |
| Harvard-FairSeg | 10,000 名受试者 | SLO 眼底(2D) | 6 个(同上,编码一致) | 视盘/视杯像素级分割 | 同团队姊妹集;FairSeg 做分割、FairVision 做分类,属性体系一致 |
| EyePACS | 约 88,702 张 | 彩色眼底照(2D) | 有限(无系统公平性属性) | DR 分级 | 规模大但属性少、无 3D、非为公平性设计 |
| Messidor | 1,200 张 | 彩色眼底照(2D) | 极少 | DR 分级 | 规模小、属性稀疏,常用于 DR 分类基准 |
| APTOS 2019 | 3,662 张 | 彩色眼底照(2D) | 无系统属性 | DR 分级 | 竞赛型数据集,公平性属性缺失 |
| OCTDL / OCTID | 千级 | OCT 图像(2D 切片) | 无系统属性 | OCT 疾病分类 | 提供 OCT 影像但无 3D 体数据与公平性属性 |
上表的解读要点:公平性眼科数据集的"稀缺资源"不是影像数量,而是 3D 体数据 × 大规模 × 系统身份属性的三元组合。EyePACS 体量最大却无系统公平性属性;FairSeg 属性最全却只有 2D 分割;OCT 系列有影像但无 3D 体数据与属性。Harvard-FairVision 用"2D+3D 双模态 × 三万受试者 × 六属性"的组合,占据了这个此前空缺的生态位。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2023-10-03 | arXiv v1 提交 | 论文 “FairVision: Equitable Deep Learning for Eye Disease Screening via Fair Identity Scaling”(arXiv:2310.02492)首次公开 |
| 2023-10-05 | arXiv v2 | 首次提交两天后更新(文件大小未变) |
| 2024-04-12 | arXiv v3(最新) | 本页面采用的论文口径 |
| 2024 | BibTeX 引用年份 | 官方 README 引用的 citation year 为 2024 |
| 持续 | HF 数据仓库在线 | harvardairobotics/FairVision 提供逐文件下载 |
§1.5 典型应用场景
- 2D 与 3D 公平性基准评测:在官方 Training/Validation/Test 划分上训练 ViT(2D)与 3D ResNet(3D)分类模型,按 race/gender/ethnicity 分组报告性能差距。
- 公平性学习方法研究:复现与对比 FIS 与其他公平性方法,验证 3D 模型上偏倚缓解方法的有效性。
- 多病种偏倚普适性研究:在 AMD/DR/Glaucoma 三病种上重复同一公平性评测协议,检验偏倚模式是否具有跨疾病一致性。
- 模态迁移公平性研究:对比同一受试者的 2D 眼底模型与 3D OCT 模型的组间公平性表现,研究模态选择对公平性的影响。
- 眼科筛查算法部署前的公平性审计:在临床转化前评估模型在少数组上的性能下限,为模型选型提供分组证据。
§2 医学背景
§2.1 ICD-11 编码映射
Harvard-FairVision 横跨三种主要致盲眼病,核心相关 ICD-11 编码如下:
| 标签 | ICD-11 编码 | 中文名称 |
|---|---|---|
| 年龄相关性黄斑变性(AMD,总类) | 9B75 | 年龄相关性黄斑变性 |
| 干性 AMD(萎缩性) | 9B75.0 | 干性年龄相关性黄斑变性(含地图样萎缩) |
| 湿性 AMD(新生血管性) | 9B75.1 | 湿性年龄相关性黄斑变性 |
| 糖尿病视网膜病变(DR,总类) | 9B71 | 糖尿病视网膜病变 |
| 非增殖型 DR(NPDR) | 9B71.0 | 非增殖型糖尿病视网膜病变 |
| 增殖型 DR(PDR) | 9B71.1 | 增殖型糖尿病视网膜病变 |
| 糖尿病性黄斑水肿 | 9B71.2 | 糖尿病性黄斑水肿 |
| 青光眼(总类) | 9C61 | 青光眼 |
| 原发性开角型青光眼 | 9C61.0 | 原发性开角型青光眼 |
| 青光眼疑似 | 9C60 | 青光眼疑似状态 |
(编码依据:ICD-11 第 9 章"视觉系统疾病"体系;ICD-11 编码以世界卫生组织官方版本为准,部分细目编码在不同小版本间可能有调整,正式引用前请核对官方 ICD-11 浏览器。)
§2.2 三病种简介与流行病学
年龄相关性黄斑变性(Age-Related Macular Degeneration, AMD):黄斑区视网膜色素上皮与光感受器的退行性病变,是发达国家老年人不可逆中心视力丧失的首要原因。临床上分为干性(萎缩性,占绝大多数)与湿性(新生血管性,虽占比小但进展快、视力损害重)两大类。本数据集将 AMD 临床条件细分为 9 种形态(从"未诊断"到"晚期末日"),并通过条件到标签映射压缩为 4 级标签(详见 §4)。
糖尿病视网膜病变(Diabetic Retinopathy, DR):糖尿病微血管并发症在视网膜的表现,是工作年龄人群致盲的首要原因。按病理进展分为非增殖型(NPDR,含轻/中/重度)与增殖型(PDR)。本数据集关注 vision-threatening DR(vtDR,威胁视力的 DR) 二分类任务,将重度 NPDR 与 PDR 归为阳性(详见 §4)。
青光眼(Glaucoma):以视神经进行性损害与特征性视野缺损为特征的视神经病变,是全球首位不可逆性致盲眼病。其解剖学评估核心是视盘(optic disc)与视杯(optic cup),杯盘比(CDR)是广用的形态学指标。本数据集的青光眼任务为二分类(0=非青光眼,1=青光眼),3D OCT 体数据在青光眼方向分辨率最高(200 层)。
三种疾病共同影响全球约 3.8 亿人口,是眼科 AI 筛查最具公共卫生价值的疾病谱(arXiv:2310.02492)。
§2.3 临床任务定义
| 任务类型 | 具体内容 | 与本数据集的关系 |
|---|---|---|
| 筛查 | 基于 2D 眼底照或 3D OCT 自动识别需转诊的 AMD/vtDR/青光眼 | 数据集核心任务,三种疾病各提供标签 |
| 诊断辅助 | 基于 OCT B-scan 定量分析视网膜层结构,辅助判断疾病类型与严重度 | 3D OCT 体数据是主要输入 |
| 分级/监测 | DR 的 NPDR/PDR 分级、AMD 的干湿分型 | 数据集提供条件字符串,需经映射转换为分级标签 |
三项任务对模型能力的要求不同:筛查任务关注二分类的敏感度与转诊阈值;诊断辅助要求模型捕捉 OCT 层结构的细微变化;分级/监测则对标签的序数语义敏感。本数据集对 AMD 保留了原始条件字符串(9 种),使研究者既可做二分类/多分类,也可自行设计更细的分级方案——这是它相对"仅给分级标签"数据集的设计灵活性。
§2.4 受试者人群画像
| 维度 | 取值/说明 | 来源 |
|---|---|---|
| 来源机构 | 单中心:哈佛医学院眼科系所属大型学术眼科医院 | GitHub README |
| 样本构成 | 30,000 名受试者,每病种 10,000 名 | 三源一致 |
| 每人样本 | 1 张 SLO 眼底照 + 1 个 OCT B-scan 样本 | GitHub README |
| 身份属性 | 年龄、性别、种族、族裔、首选语言、婚姻状况 | 三源一致 |
| 种族编码 | 0=Asian、1=Black、2=White(3 类) | GitHub README |
| 性别编码 | 0=Female、1=Male(2 类) | GitHub README |
| 族裔编码 | 0=Non-Hispanic、1=Hispanic(2 类) | GitHub README |
| 语言编码 | 0=English、1=Spanish、2=Others(3 类) | GitHub README |
| 婚姻状况编码 | 0=Married、1=Single、2=Divorced、3=Widowed、4=Leg-Sep(5 类) | GitHub README |
重要说明:官方 README 与本轮可核到的三个来源均未公布各属性组的具体人数分布(不同于 FairSeg 有第三方解读披露过组分布)。因此本页面不虚构任何组比例数字;研究者应下载
data_summary_amd.csv/data_summary_dr.csv/data_summary_glaucoma.csv后自行统计组分布,并在论文中披露。
§2.5 临床价值
对临床研究者而言,Harvard-FairVision 的价值在于把眼科筛查模型从"总体 AUC/准确率报告"推向"分人群性能报告"。三种目标疾病都具有明确的公共卫生人群差异特征:DR 在特定人群中的疾病负担更高、青光眼在黑人群体中的发病风险约为其他群体的两倍、AMD 的患病率随年龄与人群结构变化。当自动筛查模型在这些群体上系统性偏倚时,筛查项目可能反而扩大而非缩小健康差距。
数据集提供的六维属性使研究者能够在模型定型前定位差距来源(真实解剖/病理差异、样本失衡,或语言等社会经济代理因素),并结合 FIS 方法在训练阶段进行校正。论文的核心发现——跨 race、gender、ethnicity 均存在显著偏倚,且 FIS 能同时改善总体性能与公平性——为"公平性可与准确性共赢"提供了实证支持(arXiv:2310.02492)。
§2.6 金标准与标签来源
| 项目 | 内容 |
|---|---|
| 影像来源 | 临床常规 SLO 眼底成像与 OCT 成像(回顾性) |
| AMD 标签来源 | 临床条件字符串(amd_condition,9 种 ICD 表相关取值)经条件-疾病映射转为 4 级标签 |
| DR 标签来源 | 临床亚型字符串(dr_subtype,6 种取值)经映射转为 vtDR 二分类(0/1) |
| 青光眼标签来源 | 直接给出二分类标签(glaucoma,0=非青光眼,1=青光眼) |
| 属性来源 | 受试者级人口学登记信息(含 age 连续值与 5 个分类属性) |
| 标注性质 | 基于临床诊断记录(回顾性),非独立专家双盲重标注 |
金标准视角的关键提示:数据集的标签直接来自临床诊断体系,具有"真实世界标签"的价值,但也意味着标签质量受原始临床记录与 ICD 编码流程影响。AMD 与 DR 的标签是二次映射产物(条件字符串 → 数值标签),使用者若需细粒度分级,应直接使用条件字符串而非映射后的标签(详见 §4 与坑点)。
§3 数据集规格
§3.0 获取渠道说明
Harvard-FairVision 主分发渠道为 Hugging Face 数据集仓库,官方未设多个版本号(唯一版本随 arXiv:2310.02492 论文发布)。各获取路径对比:
| 你的需求 | 推荐渠道 | 说明 |
|---|---|---|
| 下载官方原始数据 | Hugging Face: harvardairobotics/FairVision | 官方指定分发渠道;沙箱环境请走 hf-mirror.com |
| 查看论文与方法 | arXiv:2310.02492(v3,2024-04-12) | 数据集描述与 FIS 方法的权威出处 |
| 复现官方实验 | GitHub: Harvard-AI-and-Robotics-Lab/FairVision | 含 ViT/3D ResNet × 含/不含 FIS 训练脚本 |
| 核对字段与许可 | GitHub README | NPZ 键定义、编码表、许可与免责声明 |
§3.1 模态详情
数据模态包含两类互补的眼底成像:
| 成像方式 | 维度 | 在本数据集中的角色 | 尺寸 |
|---|---|---|---|
| 扫描激光检眼镜(SLO)眼底照 | 2D | 2D 分类模型输入;人工可视化核查 | 512 × 664(文件夹 JPG);200 × 200(NPZ 内副本) |
| 光学相干断层扫描(OCT)B-scan | 3D 体数据 | 3D 分类模型输入 | 200 × 200 × 200(青光眼);128 × 200 × 200(AMD、DR) |
两类影像的技术差异值得注意:SLO 使用激光逐点扫描成像,与彩色眼底照相的强度分布不同;OCT 通过干涉测量获得视网膜断层层析,其 B-scan 序列构成 3D 体数据。OCT 的轴向分辨率在不同病种间不一致——青光眼为 200 层,AMD 与 DR 为 128 层,混训三病种 3D 模型时必须先统一该维度(详见坑点)。NPZ 内的 SLO 副本由文件夹 JPG 缩放而来并归一化到 [0, 255],而文件夹内的 JPG 为 512×664 原生尺寸。
§3.2 子集与样本数分布
| 病种 | 子集 | 目录 | 受试者数 |
|---|---|---|---|
| AMD | Training / Validation / Test | AMD/Training、AMD/Validation、AMD/Test |
合计 10,000 |
| DR | Training / Validation / Test | DR/Training、DR/Validation、DR/Test |
合计 10,000 |
| Glaucoma | Training / Validation / Test | Glaucoma/Training、Glaucoma/Validation、Glaucoma/Test |
合计 10,000 |
| 合计 | — | — | 30,000 |
官方把每个病种的数据组织为 Training/Validation/Test 三个可读目录(README 明确此命名"for readability"),但未公布三者在各病种内的具体数量比例。第三方镜像与论文未给出逐划分的样本数,因此本页面不虚构划分比例;使用前应先统计各目录下的文件数(见 §6 校验代码)。
§3.3 数据格式
| 格式 | 用途 | 说明 |
|---|---|---|
| NPZ | 单受试者数据容器 | 每 npz 含 oct_bscans、slo_fundus 与疾病标签/条件字段 + 6 个属性字段 |
| JPG | SLO 眼底照独立副本 | 命名 slo_xxxxx.jpg,512×664,供人工可视化检查 |
| CSV | 元数据总览 | data_summary_amd.csv / data_summary_dr.csv / data_summary_glaucoma.csv,含 race/gender/ethnicity/marital status/age/preferred language |
| 目录 | 分发容器 | 解压后为 AMD/DR/Glaucoma 三个顶层文件夹,各含 Training/Validation/Test |
NPZ 文件命名规则为 data_xxxxx.npz,SLO 副本为 slo_xxxxx.jpg,其中 xxxxx 为唯一数字 ID(例:07777)。
§3.4 存储大小
| 形态 | 大小 | 备注 |
|---|---|---|
| 数据集总量 | 约 600 GB | 官方 README 与 HF 页面一致 |
| 单病种(估算) | 约 200 GB | 三万受试者均分为三病种 |
| 磁盘预留建议 | ≥ 1 TB | 解压冗余 + 预处理中间产物 + 3D 体数据训练缓存 |
3D OCT 体数据是体积的主要来源:青光眼每样本 200×200×200,AMD/DR 每样本 128×200×200,远大于 2D 眼底照。规划存储时应对 3D 数据的处理与缓存单独估算。
§3.5 标签获取方式
Harvard-FairVision 的标签来自临床诊断记录,而非独立标注流水线。AMD 与 DR 提供的是临床条件/亚型字符串,需经官方给出的条件-疾病映射转换为模型可用的数值标签;青光眼直接提供二分类数值标签。这意味着:
- 数据的"标注"本质是临床诊断的结构化提取,质量取决于原始临床记录的完整性与编码一致性;
- AMD/DR 的标签粒度可通过不同映射方案自行调整(数据集保留了原始条件字符串);
- 官方未公布标注者间一致性系数(因为标签非多标注者产物),也未公布条件字符串的提取规则细节。
§3.6 属性采集方式
| 属性 | 采集/存储位置 | 说明 |
|---|---|---|
| race | NPZ 字段 + data_summary CSV | 受试者级,3 类(Asian/Black/White) |
gender(male) |
NPZ 字段 + CSV | 受试者级,2 类(Female/Male) |
ethnicity(hispanic) |
NPZ 字段 + CSV | 受试者级,2 类(Non-Hispanic/Hispanic) |
| language | NPZ 字段 + CSV | 受试者级,3 类(English/Spanish/Others) |
| maritalstatus | NPZ 字段 + CSV | 受试者级,5 类(Married/Single/Divorced/Widowed/Leg-Sep) |
| age | data_summary CSV | 受试者级,连续值 |
README 明确将 race, gender, ethnicity, marital status, age, preferred language 六项写入每病种的元数据 CSV。属性为受试者级(同一受试者的 1 张 SLO 与 1 个 OCT 共享同一套属性),不存在图级独立变化。
§3.7 采集周期
官方论文、GitHub README 与 HF 数据页均未公布影像采集的起止年份,仅说明数据回顾性来源于哈佛医学院眼科系的临床影像。引用"采集时间"时应表述为"官方未公布",禁止推断具体年份。
§3.8 地域覆盖
单中心数据,来源于美国马萨诸塞州波士顿的哈佛医学院眼科系所属大型学术眼科医院。这决定了它的泛化性边界(详见 §7.3):跨设备、跨地域、跨人群的失效风险需在使用前评估。
§3.9 设备规格
官方未公布 SLO 与 OCT 的具体厂商、型号与采集参数。已知与未知清单:
| 项目 | 状态 |
|---|---|
| 成像类型(SLO + OCT) | 官方明确 |
| 设备厂商/型号 | 官方未公布 |
| SLO 原生分辨率 | 文件夹 JPG 为 512×664;NPZ 副本为 200×200 |
| OCT 体数据尺寸 | 青光眼 200×200×200;AMD/DR 128×200×200 |
| OCT 采集协议(层距/扫描范围) | 官方未公布 |
| 单/双眼归属 | README 表述为每受试者 1 个样本,未逐样本标注眼别 |
§3.10 深度溯源链
| 层级 | 实体 | 说明 |
|---|---|---|
| 构建机构 | Harvard Ophthalmology AI Lab(哈佛医学院眼科系) | 官方来源 |
| 原始数据 | 临床常规 SLO + OCT 影像(单中心,回顾性) | 脱敏后使用 |
| 疾病谱 | AMD、DR、Glaucoma(各 10,000 名) | 覆盖三种主要致盲眼病 |
| 属性采集 | 临床人口学登记(6 个属性) | 受试者级 |
| 学术发表 | arXiv:2310.02492(v1 2023-10-03 / v3 2024-04-12) | 方法与数据集的权威出处 |
| 分发渠道 | Hugging Face(harvardairobotics/FairVision)/ GitHub 代码库 | 见 §6.2 |
§4 数据结构
§4.0 目录树
以下为数据解压后的典型目录结构(依据官方 GitHub README):
FairVision/
├── AMD/
│ ├── Training/ # 含 slo_xxxxx.jpg 与 data_xxxxx.npz
│ ├── Validation/
│ └── Test/
├── data_summary_amd.csv # AMD 全部受试者属性与标签概览
├── DR/
│ ├── Training/
│ ├── Validation/
│ └── Test/
├── data_summary_dr.csv
├── Glaucoma/
│ ├── Training/
│ ├── Validation/
│ └── Test/
└── data_summary_glaucoma.csv
Training/Validation/Test 目录内同时存放两类文件:slo_xxxxx.jpg(SLO 眼底照,供人工核验)与 data_xxxxx.npz(含 OCT B-scans、SLO 副本与属性)。README 明确此设计的用意:SLO 独立副本服务可视化,NPZ 内的副本则让 dataloader 无需访问除 NPZ 外的任何文件。
官方代码仓库 Harvard-AI-and-Robotics-Lab/FairVision 提供训练入口:
FairVision/ # GitHub: Harvard-AI-and-Robotics-Lab/FairVision
├── README.md # 下载、字段编码、许可、BibTeX
├── requirements.txt # 依赖清单
├── scripts/
│ ├── train_amd_vit.sh # ViT(2D)+ SLO 眼底,AMD 检测基线
│ ├── train_amd_vit_fis.sh # ViT(2D)+ FIS
│ ├── train_amd_3d.sh # 3D ResNet + OCT B-scan,AMD 检测基线
│ └── train_amd_3d_fis.sh # 3D ResNet + FIS
└── ... # DR / Glaucoma 通过改目录与脚本名复用
§4.1 DAIMS 字段字典
每个 NPZ 文件包含以下字段(编码表来自官方 GitHub README):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| oct_bscans | 数组(3D 体数据) | OCT B-scan 序列 | 青光眼 200×200×200;AMD/DR 128×200×200 | 3D 分类模型输入 | OCT 成像噪声、分层质量波动 | 无(图像必含) | 尺寸随病种而定(见 §3.1) |
| slo_fundus | 数组(图像) | SLO 眼底照(由 JPG 缩放并归一化到 [0,255]) | 200×200 二维数组 | 2D 分类模型输入 | SLO 成像噪声、屈光间质影响 | 无(图像必含) | 200×200,值域约 [0,255] |
| amd_condition | 字符串 | AMD 临床条件(仅 AMD 病种) | “intermediate.dry” | 派生 4 级 AMD 标签 | 临床编码误差 | 无 | 9 种取值(见 §4.2) |
| dr_subtype | 字符串 | DR 临床亚型(仅 DR 病种) | “moderate.npdr” | 派生 vtDR 二分类标签 | 临床编码误差 | 无 | 6 种取值(见 §4.2) |
| glaucoma | 整数码 | 青光眼标签(仅 Glaucoma 病种) | 1 | 青光眼二分类 | 临床诊断误差 | 无 | 0=非青光眼,1=青光眼 |
| race | 整数码 | 种族 | 2 | 分组公平性评测(核心轴) | 自报/登记误差 | 无 | 0=Asian,1=Black,2=White |
| male | 整数码 | 性别 | 0 | 分组公平性评测 | 登记误差 | 无 | 0=Female,1=Male |
| hispanic | 整数码 | 族裔(西班牙裔) | 0 | 分组公平性评测 | 自报/登记误差 | 无 | 0=Non-Hispanic,1=Hispanic |
| language | 整数码 | 首选语言 | 0 | 分组公平性评测(社会经济代理) | 登记误差 | 无 | 0=English,1=Spanish,2=Others |
| maritalstatus | 整数码 | 婚姻状况 | 0 | 分组公平性评测(社会经济代理) | 登记误差 | 无 | 0=Married,1=Single,2=Divorced,3=Widowed,4=Leg-Sep |
| age | 数值 | 受试者年龄 | 58.42 | 分组公平性评测(连续/分箱) | 登记误差 | 无 | 连续值(存于 data_summary CSV) |
字段使用的注意事项:其一,oct_bscans 与 slo_fundus 在不同病种间可能存在尺寸差异,跨病种混训必须统一尺寸;其二,amd_condition / dr_subtype 是字符串条件,非数值标签,需经官方映射转换(见 §4.2);其三,glaucoma、race、male、hispanic、language、maritalstatus 各字段的键名承载属性语义(male 承载 gender、hispanic 承载 ethnicity);其四,age 不在 NPZ 内而在 data_summary_*.csv。
§4.2 标签映射与分布
AMD 条件 → 标签映射(官方 README):
| amd_condition | 标签值 |
|---|---|
| not.in.icd.table | 0.0 |
| no.amd.diagnosis | 0.0 |
| early.dry | 1.0 |
| intermediate.dry | 2.0 |
| advanced.atrophic.dry.with.subfoveal.involvement | 3.0 |
| advanced.atrophic.dry.without.subfoveal.involvement | 3.0 |
| wet.amd.active.choroidal.neovascularization | 3.0 |
| wet.amd.inactive.choroidal.neovascularization | 3.0 |
| wet.amd.inactive.scar | 3.0 |
DR 条件 → 标签映射(官方 README,vtDR 二分类):
| dr_subtype | 标签值 |
|---|---|
| not.in.icd.table | 0.0 |
| no.dr.diagnosis | 0.0 |
| mild.npdr | 0.0 |
| moderate.npdr | 0.0 |
| severe.npdr | 1.0 |
| pdr | 1.0 |
Glaucoma 标签:glaucoma = 0(非青光眼)或 1(青光眼)。
三个映射的语义提示:AMD 映射把四种"晚期/湿性"条件全部折叠为标签 3,损失了更细的严重度区分;DR 映射把"威胁视力"边界设在 severe.npdr 与 pdr 之间;青光眼不使用条件字符串,直接二分类。这些折叠是官方为分类任务做的简化,若研究需要细粒度分级,应使用原始条件字符串。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 受试者总数 | 30,000 | 三源一致 |
| 每病种受试者数 | 10,000 | 三源一致 |
| 病种数 | 3(AMD / DR / Glaucoma) | 三源一致 |
| 受影响人口(论文口径) | 约 3.8 亿人 | arXiv / GitHub README |
| 数据集总量 | 约 600 GB | HF 页面 / GitHub README |
| 身份属性数 | 6 | 三源一致 |
| AMD 条件类别数 | 9 | GitHub README |
| DR 亚型类别数 | 6 | GitHub README |
| 青光眼 OCT 体尺寸 | 200×200×200 | GitHub README |
| AMD/DR OCT 体尺寸 | 128×200×200 | GitHub README |
§4.4 数据层级
病种(3 个:AMD / DR / Glaucoma)
└── 受试者(每病种 10,000 名,唯一编号 data_xxxxx)
├── 1 张 SLO 眼底照(独立 JPG + NPZ 内副本)
├── 1 个 OCT B-scan 样本(3D 体数据)
├── 疾病标签/条件(amd_condition / dr_subtype / glaucoma)
└── 6 个属性(race/male/hispanic/language/maritalstatus + age)
层级为"病种 → 受试者 → 单样本"的两级结构。三个病种之间受试者是否重叠,官方未明确说明;使用时应假设可能存在跨病种同一受试者,做严格研究前应向官方确认(见坑点)。
§4.5 缺失值与信息性缺失编码
| 字段 | 缺失编码 | 说明 | 对建模的含义 |
|---|---|---|---|
| race / male / hispanic / language / maritalstatus | 官方 README 未公布缺失编码 | README 仅给出各码值含义,未说明是否有 Unknown 类 | 使用前应统计各字段唯一值,确认是否存在未列出的码 |
| age | 未说明 | age 存于 CSV,README 未说明缺失处理 | 统计 CSV 缺失率后再决定处理策略 |
| oct_bscans / slo_fundus | 无 | 图像必含 | 需核查图像数组尺寸与取值范围 |
| amd_condition / dr_subtype / glaucoma | 无 | 标签字段必含 | 注意条件字符串需映射 |
关键提醒:与 FairSeg 不同,Harvard-FairVision 的 README 未为属性字段列出显式的 “-1 = Unknown” 编码,也未说明是否存在未知值。因此使用者的第一步数据审计应当是逐字段统计唯一值集合,确认实际出现的码值是否与 README 完全一致——若出现未列出的值(如 -1),应视为信息性缺失并单独处理,而非静默丢弃或并入多数组。
§5 数据划分与使用建议
§5.1 官方划分
官方将每个病种的数据组织到 Training / Validation / Test 三个目录(README 明确此命名"for readability")。这是本数据集相对 FairSeg 的一个优势——它原生提供了独立验证集,无需自行从训练集切分。但官方未公布三者的具体数量与比例,也未提供类似 FairSeg 的 lists 文件。
第三方镜像与论文未给出逐划分样本数,因此本页面不虚构比例。使用前应首先统计各目录下文件数:
§5.2 划分统计与验证
由于官方未公布划分比例,第一次接触数据时必须自行统计。以 AMD 为例(其他病种同理替换目录名):
from pathlib import Path
for split in ("Training", "Validation", "Test"):
d = Path(f"FairVision/AMD/{split}")
npz = sorted(d.glob("data_*.npz"))
jpg = sorted(d.glob("slo_*.jpg"))
print(f"{split}: npz={len(npz)}, jpg={len(jpg)}")
# 断言 npz 与 jpg 数量一致,且三划分之和等于该病种样本数(应为 10,000)
社区与第三方解读未特别指出划分相关的已知缺陷,但鉴于官方未提供 lists 文件,任何"直接按编号前缀(如 data_00001–08000 训练)"的做法都是未经证实的假设,不应作为复现协议的基础。
§5.3 划分策略与泄漏风险
| 风险点 | 场景 | 防范 |
|---|---|---|
| 跨病种受试者重叠 | 三病种可能存在同一受试者(官方未声明互斥) | 严格研究前向官方确认;若无法确认,跨病种实验应声明此不确定性 |
| 预处理统计泄漏 | 在全量数据上计算归一化均值/方差后再划分 | 统计量只在 Training 上计算,Validation/Test 只应用 |
| 增强策略泄漏 | 用 Test 分布调增强超参 | Validation/Test 不参与任何超参选择 |
| 2D↔3D 交叉泄漏 | 同一受试者的 2D 与 3D 数据被分到不同划分 | 若同时研究两模态,应以受试者为单位对齐划分 |
| 分组指标泄漏 | 在 Test 上按组选择模型/阈值 | 组间差距只做报告,不做选择依据 |
受试者级泄漏:由于官方未明确说明三病种之间受试者是否互斥,也不能排除同一受试者在不同病种内重复出现的可能。同病种内部的 Training/Validation/Test 划分由官方给出,假设其已按受试者隔离;但跨病种实验应谨慎。
§5.4 交叉验证建议
若做方法学论文且希望降低少数组方差影响,建议在 Training 集内再做分层 k 折(分层键推荐 race × gender 交叉格),报告的公平性指标(如 worst-group 性能、组间极差)应给出折间均值与标准差。由于官方未公布组分布,分层前需先统计各组样本量。
§5.5 外部验证建议
截至本页审核日,未见第三方机构发布在 Harvard-FairVision 上训练、在其他眼科数据上验证的同行评审公平性研究。自然的外部验证候选是库内其他眼底数据集(如 EyePACS、Messidor、APTOS 2019 用于 DR;GRAPE 用于青光眼;OCTDL/OCTID 用于 OCT),但需注意这些数据集的模态(多为彩色眼底照而非 SLO)、属性体系与人群来源均不同,跨数据集公平性比较时须明确"哪些差异来自数据分布、哪些来自属性定义"。
§6 AI 就绪指南
§6.0 云端快速启动
数据托管于 Hugging Face 数据集仓库,无官方 Colab 一键笔记本。云端最小路径:通过 Hugging Face datasets 库或 huggingface-cli 下载(沙箱/跨境环境请将域名替换为 hf-mirror.com),按 §6.1 加载单个 NPZ 跑通链路,再决定是否下载全量 600 GB。由于数据量巨大,建议先用 10 个 NPZ 验证预处理链路,再规划全量下载与存储。
§6.1 快速上手
下方代码假设目录结构为 data_root/AMD/{Training,Validation,Test}/data_xxxxx.npz;最小可用子集是任意若干 NPZ 文件(无需先下载全量即可跑通加载链路)。
import numpy as np
# 最小加载示例:单个受试者的完整数据(以 AMD 为例)
npz = np.load("FairVision/AMD/Training/data_00001.npz")
oct_vol = npz["oct_bscans"] # 3D 体数据:AMD/DR 为 128×200×200
slo = npz["slo_fundus"] # 2D SLO 眼底:200×200,约 [0,255]
cond = npz["amd_condition"] # 字符串条件,非数值标签
race = npz["race"] # 0=Asian, 1=Black, 2=White
male = npz["male"] # 0=Female, 1=Male
hispanic = npz["hispanic"] # 0=Non-Hispanic, 1=Hispanic
lang = npz["language"] # 0=English, 1=Spanish, 2=Others
ms = npz["maritalstatus"] # 0=Married ... 4=Leg-Sep
print(oct_vol.shape, slo.shape, slo.dtype) # 先看形状与取值范围
print(cond) # 条件字符串,需自行映射为标签
关键提醒:amd_condition 与 dr_subtype 是字符串,必须先经 §4.2 的映射转换为数值标签;age 不在 NPZ 内,需从 data_summary_amd.csv 按文件名/编号 join。
§6.2 数据获取
| 渠道 | 链接 | 形式 | 说明 |
|---|---|---|---|
| Hugging Face 官方仓库 | https://huggingface.co/datasets/harvardairobotics/FairVision | 数据集仓库 | 官方主分发渠道;沙箱环境请走 hf-mirror.com |
| 镜像(沙箱可用) | https://hf-mirror.com/datasets/harvardairobotics/FairVision | 数据集仓库镜像 | 与主站内容一致,跨境受限时的替代 |
| 官方代码仓库 | https://github.com/Harvard-AI-and-Robotics-Lab/FairVision | Git 仓库 | ViT/3D ResNet × 含/不含 FIS 训练脚本 |
| 论文 | https://arxiv.org/abs/2310.02492 | 论文 | 数据集与方法权威出处 |
| 联系邮箱 | harvardophai@gmail.com / harvardairobotics@gmail.com | 邮件 | 数据/代码问题官方通道 |
Hugging Face 下载的实用命令(含镜像域名):
# 官方主站
huggingface-cli download harvardairobotics/FairVision --repo-type dataset --local-dir ./FairVision
# 沙箱/跨境受限:走镜像
HF_ENDPOINT=https://hf-mirror.com \
huggingface-cli download harvardairobotics/FairVision --repo-type dataset --local-dir ./FairVision
下载后校验文件计数与结构(见 §5.2)。
§6.3 预处理全流程
以下流水线覆盖:NPZ 解包 → 条件字符串映射 → 尺寸统一 → 标准化 → 保存为训练就绪格式。核心难点是跨病种 OCT 体尺寸不一致与条件到标签的映射。
import numpy as np
# AMD 条件 → 标签(官方映射,见 §4.2)
AMD_MAP = {
"not.in.icd.table": 0.0, "no.amd.diagnosis": 0.0,
"early.dry": 1.0, "intermediate.dry": 2.0,
"advanced.atrophic.dry.with.subfoveal.involvement": 3.0,
"advanced.atrophic.dry.without.subfoveal.involvement": 3.0,
"wet.amd.active.choroidal.neovascularization": 3.0,
"wet.amd.inactive.choroidal.neovascularization": 3.0,
"wet.amd.inactive.scar": 3.0,
}
# DR → vtDR 二分类
DR_MAP = {
"not.in.icd.table": 0.0, "no.dr.diagnosis": 0.0,
"mild.npdr": 0.0, "moderate.npdr": 0.0,
"severe.npdr": 1.0, "pdr": 1.0,
}
def load_amd(npz_path):
"""加载单个 AMD 样本:解码条件、探测形状、归一化 SLO。"""
npz = np.load(npz_path, allow_pickle=True)
cond = str(npz["amd_condition"])
label = AMD_MAP.get(cond)
if label is None:
raise ValueError(f"未知 AMD 条件: {cond}") # 见坑点 3
oct_vol = npz["oct_bscans"].astype(np.float32) # (128, 200, 200)
slo = npz["slo_fundus"].astype(np.float32)
if slo.max() > 1.5:
slo = slo / 255.0
attrs = {"race": int(npz["race"]), "male": int(npz["male"]),
"hispanic": int(npz["hispanic"]), "language": int(npz["language"]),
"maritalstatus": int(npz["maritalstatus"])}
return oct_vol, slo, label, attrs
# 跨病种混训:统一 OCT 轴向层数(AMD/DR 128 → Glaucoma 200,需重采样或截断)
def unify_oct_depth(vol, target_depth=200):
"""把 OCT 体数据轴向统一到 target_depth(线性插值示例)。"""
if vol.shape[0] == target_depth:
return vol
idx = np.linspace(0, vol.shape[0] - 1, target_depth)
lo, hi = np.floor(idx).astype(int), np.ceil(idx).astype(int)
w = (idx - lo)[:, None, None]
return (vol[lo] * (1 - w) + vol[hi] * w).astype(np.float32) # 见坑点 1
§6.4 PyTorch DataLoader 完整代码
<details>
<summary>展开完整 Dataset + DataLoader 代码(约 55 行)</summary>
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
from pathlib import Path
AMD_MAP = { # 见 §6.3
"not.in.icd.table": 0., "no.amd.diagnosis": 0., "early.dry": 1.,
"intermediate.dry": 2.,
"advanced.atrophic.dry.with.subfoveal.involvement": 3.,
"advanced.atrophic.dry.without.subfoveal.involvement": 3.,
"wet.amd.active.choroidal.neovascularization": 3.,
"wet.amd.inactive.choroidal.neovascularization": 3.,
"wet.amd.inactive.scar": 3.,
}
class FairVisionDataset(Dataset):
"""Harvard-FairVision NPZ 数据集(以 AMD + 3D OCT 为例)。
目录预期:data_root/AMD/{split}/data_xxxxx.npz。
模态可选 'oct'(3D)或 'slo'(2D)。"""
def __init__(self, data_root, split="Training", modality="oct", target_depth=200):
self.files = sorted((Path(data_root) / "AMD" / split).glob("data_*.npz"))
self.modality = modality
self.target_depth = target_depth
def __len__(self):
return len(self.files)
def _unify_depth(self, vol):
if vol.shape[0] == self.target_depth:
return vol
idx = np.linspace(0, vol.shape[0] - 1, self.target_depth)
lo, hi = np.floor(idx).astype(int), np.ceil(idx).astype(int)
w = (idx - lo)[:, None, None]
return (vol[lo] * (1 - w) + vol[hi] * w).astype(np.float32)
def __getitem__(self, idx):
npz = np.load(self.files[idx], allow_pickle=True)
label = AMD_MAP[str(npz["amd_condition"])]
if self.modality == "oct":
x = self._unify_depth(npz["oct_bscans"].astype(np.float32))
x = (x - x.mean()) / (x.std() + 1e-8)
x = torch.from_numpy(x[None].copy()) # (1, D, H, W)
else: # 'slo'
x = npz["slo_fundus"].astype(np.float32)
if x.max() > 1.5:
x = x / 255.0
x = (x - x.mean()) / (x.std() + 1e-8)
x = torch.from_numpy(x[None].copy()) # (1, H, W)
attrs = {k: int(npz[k]) for k in
("race", "male", "hispanic", "language", "maritalstatus")}
return x, torch.tensor(label), attrs
ds = FairVisionDataset("FairVision", split="Training", modality="oct")
dl = DataLoader(ds, batch_size=8, shuffle=True, num_workers=4, pin_memory=True)
x, y, a = next(iter(dl))
print(x.shape, y.shape, a["race"]) # 验证一个 batch
</details>
§6.5 坑点清单(8 个)
⚠️ 坑点 1:OCT 体数据在病种间轴向层数不一致(200 vs 128)(分类:工程陷阱)
问题:青光眼的 OCT B-scan 体数据为 200×200×200,而 AMD 与 DR 为 128×200×200。若直接把三病种数据混合训练一个 3D 模型,或将同一模型权重在病种间迁移,张量形状不匹配会导致报错;即使强制 reshape 也会破坏体数据的物理语义。
症状:DataLoader 报 “stack expects each tensor to be equal size”;或强行 resize 后模型性能异常。
解决:
- 简单方法:按病种分别训练独立模型,不做跨病种混训(官方训练脚本即按病种拆分)。
- 进阶方法:混训前对 OCT 体做轴向统一(线性插值重采样到 target_depth,见 §6.3
unify_oct_depth),并在论文中披露重采样方法。- SOTA 方法:把"轴向分辨率差异"作为实验变量而非麻烦——设计与病种无关的 3D 骨干(如支持可变深度的 3D CNN/Transformer),使模型对轴向层数鲁棒,并将鲁棒性作为公平性研究的一部分报告。
参考:官方 GitHub README 尺寸说明
⚠️ 坑点 2:属性分布未公开,分组评测无先验(含少数组方差风险)(分类:偏倚陷阱)
问题:官方 README、HF 数据页与论文摘要均未公布 race/gender/ethnicity 各组的具体人数分布。这意味着在使用前无法预知哪些组是少数组,也无法评估分组指标的先验方差。若直接报告分组性能而不检查组样本量,可能对只有几十个样本的格子做出过度解读。
症状:分组指标随随机种子剧烈波动;某组指标异常但样本量极小;无法判断组间差距是否统计显著。
解决:
- 简单方法:加载
data_summary_amd.csv/data_summary_dr.csv/data_summary_glaucoma.csv,先统计各属性的组分布与各划分的组覆盖,再决定评测方案。- 进阶方法:对样本量小于阈值的组报告自助法 95% 置信区间,而非单点指标;评测同时报告总体性能、最差组性能与组间极差三个数字。
- SOTA 方法:把"组分布未知"作为数据审计的第一步制度化——在论文的数据描述章节披露自统计的组分布表,并做样本量加权敏感性分析,将失衡本身作为实验变量讨论。
参考:官方 GitHub README 属性说明
⚠️ 坑点 3:标签是条件字符串的二次映射,直接读 npz 会拿到非数值标签(分类:标签理解)
问题:
amd_condition与dr_subtype是字符串(如 “intermediate.dry”、“moderate.npdr”),不是模型可直接使用的数值标签。若假设字段是整数直接转 tensor 会报错;若使用未在官方映射表中的字符串会静默得到错误标签。同时,官方映射把 AMD 的四种晚期/湿性条件全部折叠为标签 3,丢失了细粒度区分。
症状:int(npz["amd_condition"])抛 ValueError;或映射缺失导致标签与输入错位;或研究"晚期 AMD"时发现标签无法区分萎缩型与湿性。
解决:
- 简单方法:严格使用 §4.2 的官方映射表,并对未知条件字符串显式抛错(见 §6.3
load_amd)。- 进阶方法:若研究需要细粒度分级,直接使用条件字符串自建映射(如把萎缩型与湿性分开),并在论文中披露自定义映射规则。
- SOTA 方法:把标签映射本身纳入可复现链条——将映射表版本化(哈希),并在数据卡中记录映射决策,便于他人按同口径复现或按不同口径重评。
参考:官方 GitHub README 条件-疾病映射
⚠️ 坑点 4:600 GB 体量与 3D 数据处理的内存/显存压力(分类:工程陷阱)
问题:数据集总量约 600 GB,且 3D OCT 体数据单样本即 200×200×200(青光眼)或 128×200×200(AMD/DR)。全量下载耗时长、磁盘压力大;3D 模型训练时若一次性加载多个体数据,显存与内存易溢出。
症状:下载反复中断;磁盘写满;训练时 CUDA OOM;dataloader 成为瓶颈。
解决:
- 简单方法:先用 10 个 NPZ 跑通链路,再规划全量下载;磁盘预留 ≥ 1 TB;dataloader 使用较小 batch(如 3D 用 batch 4-8)。
- 进阶方法:把 3D 体数据预处理为内存映射格式(如预缩放后的
.npy+np.load(mmap_mode='r')),避免每次读取都解压 NPZ;或使用 LMDB/HDF5 等高效随机读取容器。- SOTA 方法:建立数据流水线与训练流水线解耦的架构——离线做一次体数据重采样与缓存,训练侧只读缓存;对显存受限场景采用梯度累积或混合精度,把"体量"问题转化为工程配置问题。
参考:官方 GitHub README 数据大小说明
⚠️ 坑点 5:Hugging Face 主站被沙箱/跨境网络封锁(分类:工程陷阱)
问题:主分发渠道为 Hugging Face,但在部分沙箱或跨境网络环境中主站不可达,导致官方推荐的下载命令失败。
症状:huggingface-cli download连接超时;datasets.load_dataset报连接错误。
解决:
- 简单方法:设置
HF_ENDPOINT=https://hf-mirror.com后重试(见 §6.2 命令),或直接把下载 URL 域名替换为 hf-mirror.com。- 进阶方法:在团队内部镜像仓库中固化一份数据副本(记录来源 URL、下载日期与文件计数三要素),避免每人重复跨网下载。
- SOTA 方法:将数据获取纳入 CI/CD 的数据准备阶段,用镜像 + 校验(文件计数/哈希)自动化,任何实验都从固化副本出发,消除网络不稳定性对实验的影响。
参考:HF Mirror
⚠️ 坑点 6:跨病种受试者重叠未知,跨病种实验存在潜在泄漏(分类:数据泄漏)
问题:官方未明确说明 AMD/DR/Glaucoma 三个病种的受试者是否互斥。若存在同一受试者跨病种出现,跨病种实验(如用 AMD 训练的模型评测 DR,或多病种联训)可能引入受试者级泄漏。
症状:跨病种迁移性能异常高;多病种联训的验证指标与测试指标出现不合理的接近。
解决:
- 简单方法:跨病种实验前向官方邮箱(harvardophai@gmail.com)确认受试者是否互斥;未确认前,跨病种实验声明此不确定性。
- 进阶方法:按文件名/编号检查三病种之间是否存在相同的
xxxxx编号,若存在重叠则记录重叠规模。- SOTA 方法:以受试者为单位重新组织跨病种实验的划分,或在论文中把"跨病种受试者重叠程度"作为数据描述的一部分披露,使读者能评估泄漏风险。
参考:官方 GitHub README
⚠️ 坑点 7:SLO 文件夹副本与 NPZ 副本不同尺寸,混淆会引入偏差(分类:标签理解)
问题:SLO 眼底照存在两个版本——文件夹内的 JPG 为 512×664 原生尺寸,NPZ 内的
slo_fundus为 200×200 且已归一化到 [0, 255]。README 明确 NPZ 副本是"由文件夹图像缩放后归一化"而来。若在实验中混用两个版本,或误以为两者等价,会导致 2D 模型输入分布不一致。
症状:用 JPG 训练、用 NPZ 评测(或反之)时性能异常;不同来源的 SLO 特征分布不一致。
解决:
- 简单方法:固定使用一个来源——追求高分辨率用文件夹 JPG,追求与官方脚本一致用 NPZ 副本;全实验统一。
- 进阶方法:在使用文件夹 JPG 时,自行复现"[0,255] 归一化 + 缩放到 200×200"的官方流程,确保与 NPZ 副本可比。
- SOTA 方法:在实验配置中显式记录 SLO 来源(JPG/NPZ)与其预处理链,使任何复现者能确定输入口径;若研究分辨率对公平性的影响,把两版本作为对照实验变量。
参考:官方 GitHub README SLO 尺寸说明
⚠️ 坑点 8:CC BY-NC-ND 4.0 的使用边界——非商业、禁衍生再分发、禁临床(分类:合规要求)
问题:许可为 CC BY-NC-ND 4.0。ND(禁止演绎再分发)意味着不能把预处理后的影像/体数据重新打包公开分发;NC(非商业)禁止商业化训练与产品集成;官方反复强调任何时点不得用于临床决策或患者护理。此外官方声明"Harvard"仅表明数据来源,不构成机构背书——不实宣传可能触线。
症状:开源仓库收到许可质疑;论文投稿被问数据再分发授权;商业项目评审卡在合规环节。
解决:
- 简单方法:发布成果时只分发"加载与预处理代码 + 官方下载指引",不托管任何影像/体数据文件;论文与文档明确署名来源与许可。
- 进阶方法:为衍生工件(清洗清单、分组划分、缓存索引)建立合规审查——逐项确认不含受 ND 约束的原始像素/体数据,仅含统计与索引信息。
- SOTA 方法:面向产品化的团队应在立项阶段评估替代路径(自采数据或机构商业授权),把 Harvard-FairVision 严格限定为研究基线;任何"哈佛背书"暗示的表述都必须删除。
参考:官方 GitHub README 许可与免责声明、CC BY-NC-ND 4.0
§6.6 数据增强策略
| 类别 | 增强方式 | 说明 |
|---|---|---|
| 安全 ✅ | 水平翻转 + 标签不变(分类任务) | 眼底照近似左右对称;分类任务无需同步掩膜 |
| 安全 ✅ | 随机旋转(小角度) | 模拟拍摄角度差异 |
| 安全 ✅ | 轻度亮度/对比度抖动(±10%) | 模拟激光功率/曝光差异 |
| 谨慎 ⚠️ | 3D 体数据的轴向翻转 | OCT 轴向有解剖方向含义(视网膜层序),翻转改变语义,禁用轴向翻转 |
| 危险 ❌ | 强度直方图均衡到极端 | SLO 激光成像强度分布携带组织信息,激进均衡可能抹掉组间差异(公平性信号所在) |
| 危险 ❌ | 跨病种混样增强 | 不同病种的 OCT 尺寸与解剖特征不同,混样可能污染标签语义 |
§6.7 模型推荐
| 模型 | 类型 | 适用场景 | 官方支持 | 备注 |
|---|---|---|---|---|
| ViT | 2D Transformer | SLO 眼底 2D 分类主骨干 | 官方脚本内置 | train_amd_vit.sh / train_amd_vit_fis.sh |
| 3D ResNet | 3D CNN | OCT 体数据 3D 分类主骨干 | 官方脚本内置 | train_amd_3d.sh / train_amd_3d_fis.sh |
| FIS(方法) | 公平性训练方法 | 与任一骨干组合提升公平性 | 官方实现 | 论文核心方法 |
| 轻量 2D CNN | 卷积基线 | 快速迭代与分组消融 | 需自行适配 | 注意按组报告而非只调总体准确率 |
官方仓库提供 train_amd_vit.sh、train_amd_vit_fis.sh、train_amd_3d.sh、train_amd_3d_fis.sh 四类脚本;README 说明 DR 与 Glaucoma 任务可通过修改数据集目录(如 FairVision/AMD → FairVision/DR)与脚本/Python 文件名复用同一套流程。
§6.8 硬件需求
| 场景 | 显存 | 存储 | 说明 |
|---|---|---|---|
| 数据加载与审计 | 无 GPU 要求 | ≥ 1 TB | 全量 600 GB + 预处理缓存 |
| 2D ViT 训练 | ≥ 16 GB | ≥ 1 TB | SLO 输入,batch 可较大 |
| 3D ResNet 训练 | ≥ 24 GB(建议) | ≥ 1 TB | OCT 体数据,batch 较小(4-8) |
| 分组消融批量实验 | ≥ 24 GB | ≥ 1 TB | 多属性 × 多配置 |
§6.9 评估指标代码
import numpy as np
def group_metrics(y_true, y_pred, group_ids):
"""按身份组报告准确率、最差组准确率与组间极差。
group_ids: 与 y_true 等长的组标签数组。"""
accs = {}
for g in np.unique(group_ids):
m = group_ids == g
accs[int(g)] = float((y_true[m] == y_pred[m]).mean())
worst = min(accs.values())
spread = max(accs.values()) - min(accs.values())
return accs, worst, spread
# 示例:按 race 分组(0=Asian, 1=Black, 2=White)
# accs, worst, spread = group_metrics(y_true, y_pred, race_array)
# print("各组准确率:", accs, "最差组:", worst, "组间极差:", spread)
§6.10 MLOps 笔记
- 数据版本化:以"文件计数(每病种 10,000)+ 下载日期 + 来源 URL"作为数据集指纹写入实验配置;本数据集无官方 MD5,文件计数是最可靠的轻量指纹。
- 组分布审计入流水线:由于官方未公布组分布,把"统计各属性组分布并生成报表"作为数据准备的标准步骤,产物作为 model card 固定附件。
- 公平性指标入 CI:把 worst-group 准确率与组间极差加入回归测试,差距劣化超阈值即阻断合并。
- 许可合规即流水线:ND 条款禁止再分发衍生数据——训练产物只入模型权重与指标,不落原始影像/体数据副本到共享存储。
- 屏蔽临床误用:在推理服务的 README 与接口文档中显式声明"非临床用途",与许可条款保持一致。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解建议 |
|---|---|---|---|
| 属性分布未公开 | 官方未公布各属性组人数,无法预知少数组 | 高 | 使用前自统计组分布;少数组指标报置信区间 |
| 种族类别受限 | 仅 3 类(Asian/Black/White),非包容性类别体系 | 中 | 跨人群迁移需重新映射;勿假设可通用于全球 |
| 单中心设备偏倚 | 全部影像来自同一学术眼科医院 | 高 | 外部验证前不宣称跨设备泛化 |
| 标签折叠偏倚 | AMD 四种晚期/湿性条件折叠为同一标签,丢失严重度梯度 | 中 | 需细粒度分级时改用条件字符串 |
| 跨病种受试者重叠未知 | 官方未声明三病种受试者是否互斥 | 中 | 跨病种实验前确认或声明不确定性 |
| 回顾性标签 | 标签来自临床记录结构化提取,非独立双盲重标注 | 中 | 高精度需求场景先做标签一致性抽检 |
§7.2 标签质量
标签质量的制度特征:标签直接源于临床诊断体系(amd_condition / dr_subtype / glaucoma),具有"真实世界标签"的价值——它反映的是临床实际编码的疾病状态,而非受控实验条件下的标准分级。局限同样明确:官方未公布标注者间一致性系数(标签非多标注者产物),也未公布条件字符串的提取规则与映射的校验流程。
按研究用途的标签质量置信分级:
| 用途 | 标签质量置信度 | 依据与建议 |
|---|---|---|
| 二分类筛查研究(有无病 / vtDR) | 高 | 二分类对细粒度折叠不敏感,临床标签足以支撑 |
| AMD 4 级分类基准 | 中 | 官方映射已定义 4 级,但级间边界依赖临床编码一致性 |
| vtDR 二分类复现 | 高 | 官方映射明确(severe.npdr + pdr 为阳性) |
| 细粒度严重度研究 | 低 | 官方映射折叠了严重度;如需细粒度须用条件字符串自建标签 |
§7.3 泛化性评估
| 外推场景 | 失效风险 | 证据/理由 |
|---|---|---|
| 学术眼科医院 → 社区/基层设备 | 高 | 单中心设备分布与基层不同(论文动机含筛查,但数据未含基层影像) |
| SLO → 彩色眼底彩照 | 高 | 成像物理机制不同,强度分布不可互换 |
| 美国人群 → 其他地域人群 | 高 | 种族/族裔类别为美式登记口径,跨地域迁移需重新映射 |
| 2D SLO 模型 → 3D OCT 任务 | 高 | 模态不同,模型不能直接迁移(需重训练) |
| 静态单时点 → 疾病进展建模 | 高 | 无随访时序,无法学习进展轨迹 |
| AMD 模型 → DR/Glaucoma | 中 | 不同疾病的病理与影像特征不同,可作迁移实验但需重训练 |
§7.4 伦理考量
数据含 6 个敏感人口学属性,属于"有意保留敏感信息"的设计——这是其研究价值所在,也构成伦理责任:使用者应防止属性被用于区分性对待的下游应用,发布结果时应避免对少数组形成污名化叙述。数据经脱敏处理,不含姓名与病历号,SLO 眼底照与 OCT B-scan 不暴露面部特征。官方许可与声明均明确禁止临床决策与患者护理用途,并声明"Harvard"不构成机构背书。
§7.5 公平性设计
Harvard-FairVision 是"为公平性而生"的数据集:6 属性覆盖人口学(race/ethnicity/gender/age)与社会经济代理(language/marital status)两大类轴。其独特之处在于把公平性评测同时置于 2D 与 3D 两个模态维度上,使"偏倚是否随影像维度变化"成为可实验问题。论文提出的 FIS 方法以"同时提升总体性能与公平性"为目标,是数据集的方法学配套。
六轴公平性审计最小清单:
| 审计轴 | 分组数 | 检查要点 |
|---|---|---|
| race | 3(Asian/Black/White) | 各组准确率、最差组、组间极差 |
| gender(male) | 2 | Female/Male 组差距 |
| ethnicity(hispanic) | 2 | Hispanic 组样本可能较少,报置信区间 |
| language | 3(English/Spanish/Others) | 社会经济代理轴,论文发现语言轴值得关注 |
| maritalstatus | 5 | Leg-Sep 组样本可能极少,仅做探索性分析 |
| age | 连续 → 自定分箱 | 分箱边界须全实验冻结;官方未给标准分箱 |
§7.6 数据漂移风险
数据为单时点横断面切片,无采集年份与随访序列;SLO/OCT 设备迭代会带来强度分布与分辨率漂移,而本数据集无法用于量化这类漂移。长期项目应将 Harvard-FairVision 定位为"算法公平性研究的静态基准",对生产环境的漂移监测另行建设数据源。
§7.7 DAIMS 数据质量评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式数据 | ✅ | 每受试者单 NPZ,字段扁平,无需多表 join |
| 2 | 唯一标识 | ✅ | data_xxxxx 编号唯一,三病种目录清晰 |
| 3 | 特殊字符处理 | ✅ | 字段名全小写无空格,跨平台加载无障碍 |
| 4 | 重复行检测 | ⚠️ | 病种内一对一结构;但跨病种受试者重叠未知 |
| 5 | 缺失编码 | ⚠️ | README 未为属性字段列出显式缺失编码(不同于 FairSeg 的 -1) |
| 6 | 标签标识 | ⚠️ | AMD/DR 标签为字符串条件,需经官方映射转换 |
| 7 | 罕见类分组 | ⚠️ | 组分布未公布,无法预判罕见组 |
| 8 | 偏倚评估 | ✅ | 论文以公平性为核心命题,六属性设计完整 |
| 9 | 数据字典 | ✅ | README 编码表 + data_summary_*.csv |
| 10 | 信息性缺失解释 | ❌ | 未说明属性是否存在未知值及其含义 |
| 11 | 设备记录 | ❌ | SLO/OCT 厂商型号与采集参数均未公布 |
| 12 | 共线性检查 | ⚠️ | 官方未披露属性间共线性分析 |
| 13 | 编码映射 | ✅ | 每个整数码与条件字符串在 README 中有明确定义 |
| 14 | 时间戳处理 | ❌ | 无采集日期、无随访时点 |
| 15 | 划分建议 | ✅ | 官方提供 Training/Validation/Test 三目录划分 |
| 16 | 泄漏讨论 | ⚠️ | 病种内划分明确;跨病种重叠未声明 |
| 17 | 标签分布 | ⚠️ | 属性分布与类分布均未在 README 公布 |
| 18 | 测量偏倚 | ⚠️ | 回顾性临床标签,未公布标注一致性 |
| 19 | 外部验证建议 | ⚠️ | 未见第三方外部验证研究 |
| 20 | 版本记录 | ⚠️ | 官方未设数据版本号,仅论文版本可考(arXiv v1–v3) |
| 21 | 预处理脚本 | ✅ | 官方提供 ViT/3D ResNet 完整训练脚本 |
| 22 | 合规要求 | ✅ | CC BY-NC-ND 4.0 + 非商业/禁临床声明清晰 |
| 23 | 多模态对齐 | ✅ | 同一受试者的 SLO 与 OCT 同封装于单 NPZ |
| 24 | 去标识化 | ✅ | 无姓名/病历号/面部特征 |
DAIMS 评分:16.5 / 24
评分解读:这是一个"研究定位清晰、元数据留白较多"的数据集。其强项是双模态对齐、格式统一、划分明确、官方训练脚本齐全、合规严谨(多项 ✅);失分集中在三类:属性与标签分布未公开(7/10/17 连锁扣分,且直接影响公平性研究的可规划性)、元数据缺失(设备、时间戳、标注一致性),以及跨病种受试者重叠与数据版本记录的不确定性(4/16/20)。它足以支撑 2D+3D 公平性方法学研究,但不足以直接支撑多中心临床级评估。
对你意味着什么:
- 若你做公平性方法研究:可以直接开跑,但第 1 周请先完成三件事——统计组分布(坑点 2)、确认标签映射(坑点 3)、规划存储与体数据处理(坑点 4)。
- 若你做临床转化前的模型验证:16.5 分意味着 Harvard-FairVision 只能作为"内部基准",不能替代多中心验证;设备与人群外推风险(§7.3)需在研究设计阶段就写入局限声明。
- 若你做数据工程/基准建设:把本表 10 个 ⚠️/❌ 项当作你的预处理 checklist——补齐组分布、缺失编码说明与设备元数据,就能显著提升你自己的衍生基准质量。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| (暂无同行评审的外部验证研究) | — | — | — | — | 截至本页审核日,未见第三方在 Harvard-FairVision 上训练、在其他眼科数据上验证的公开同行评审研究;论文自身跨五种架构的内部评测已确认偏倚存在 |
§8 基准性能与生态
§8.1 基准概览
论文的核心基准工作是在五种架构上跨 2D 与 3D 评估公平性,覆盖三种眼病与 race/gender/ethnicity 三个受保护属性,揭示显著偏倚;并提出 FIS 方法。由于本页面未能核到逐架构、逐病种的完整数值表(论文正文表格未在一手摘要/README 中展开),此处不列具体排名数字,仅记录定性的基准结论:
| 结论 | 内容 | 来源 |
|---|---|---|
| 偏倚存在 | 跨 race、gender、ethnicity 均观察到显著性能差距 | 论文摘要 |
| 模态差异 | 2D 与 3D 模型均被测,3D 公平性此前研究不足 | 论文摘要 |
| 架构覆盖 | 五种架构被评测 | 论文摘要 |
| FIS 效果 | FIS 同时提升总体性能与公平性,优于多种 SOTA 公平性方法 | 论文摘要 |
数值引用警示:本页面不提供未经一手核实的精确性能数字。引用任何精度/公平性数值前,务必查阅论文原文(arXiv:2310.02492 v3)对应表格,禁止跨口径比较。
§8.2 方法总结与选型建议
截至本页审核日,Harvard-FairVision 上公开可考的公平性方法仍以论文提出的 FIS(Fair Identity Scaling) 为核心。选型建议:方法学论文优先复现 FIS 作为主对照,并与其他公平性方法(如 GroupDRO 系方法)对比;工程实践优先在轻量骨干 + 分组审计下迭代,避免一开始就卷总体准确率。
结果的合理解读框架:公平性方法的增益应拆成"总体性能变化"与"组间差距变化"两个维度报告,而非仅看总体指标——这既符合 FIS 的设计目标(两者兼顾),也让复现者能识别"提升公平性是否以牺牲总体性能为代价"。
§8.3 评测协议
官方评测协议要点:划分用官方 Training/Validation/Test 三目录;骨干为 ViT(2D SLO)与 3D ResNet(3D OCT)两条;方法对照为含/不含 FIS;分组轴覆盖 race/gender/ethnicity;任务为 AMD 检测、DR 的 vtDR 检测、Glaucoma 检测。复现时建议追加:多随机种子均值、少数组置信区间(见坑点 2)。
协议参数速查表:
| 参数 | 官方设定 | 备注 |
|---|---|---|
| 划分 | Training / Validation / Test 三目录 | 每病种独立组织 |
| 2D 骨干 | ViT | 输入 SLO 眼底照 |
| 3D 骨干 | 3D ResNet | 输入 OCT B-scan 体数据 |
| 方法 | FIS vs 基线 | 官方四类脚本 |
| 分组轴 | race / gender / ethnicity | 论文评测轴 |
| 任务 | AMD / vtDR / Glaucoma 检测 | 三病种 |
§8.4 相关数据集
| 数据集 | 机构 | 关系 | 差异要点 |
|---|---|---|---|
| Harvard-FairSeg | Harvard Ophthalmology AI Lab | 同团队姊妹集(首要互链) | 分割任务(视盘/视杯)、10,000 受试者、2D SLO、属性编码一致 |
| EyePACS | EyePACS 平台 | DR 分级参照 | 规模大但无系统公平性属性、2D 彩色眼底照 |
| Messidor | 法国 Messidor 项目 | DR 分级基准 | 1,200 张、属性稀疏、2D 彩色眼底照 |
| APTOS 2019 | APTOS 竞赛 | DR 分级基准 | 3,662 张、无系统属性 |
| GRAPE | 公开青光眼集 | 青光眼参照 | 用于青光眼分析;与本集 3D OCT 任务互补 |
| OCTA-25K / AGE-AS-OCT / OCTDL / OCTID | 多机构 | OCT 影像参照 | 提供 OCT 影像但多为 2D 切片、无 3D 体数据与公平性属性 |
数据集选择的实用建议:做 2D+3D 分类公平性方法研究,Harvard-FairVision 是唯一选择级基准,FairSeg 作分割方向的姊妹延伸;做 DR 分级对照,EyePACS/Messidor/APTOS 更合适;做 OCT 模态研究,OCTA-25K/AGE-AS-OCT/OCTDL/OCTID 可作外部参照,但需注意维度与属性差异。
§8.5 关键论文 Top 6
- Luo, Y., Khan, M. O., Tian, Y., Shi, M., Dou, Z., Elze, T., Fang, Y., & Wang, M. (2024). “FairVision: Equitable Deep Learning for Eye Disease Screening via Fair Identity Scaling.” arXiv:2310.02492 — 数据集与 FIS 方法的原始出处,一切引用的锚点。
- Tian, Y., Shi, M., Luo, Y., Kouhana, A., Elze, T., & Wang, M. (2024). “FairSeg: A Large-Scale Medical Image Segmentation Dataset for Fairness Learning Using Segment Anything Model with Fair Error-Bound Scaling.” ICLR 2024. arXiv:2311.02189 — 同团队姊妹数据集与方法(FEBS/ES-Dice),分割方向参照。
- He, K., et al. (2021). “An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.” ICLR 2021. arXiv:2010.11929 — ViT 骨干出处,官方 2D 基线。
- He, K., Zhang, X., Ren, S., & Sun, J. (2016). “Deep Residual Learning for Image Recognition.” CVPR 2016. arXiv:1512.03385 — ResNet 骨干出处,官方 3D 基线(3D ResNet)的 2D 基础。
- Sagawa, S., Koh, P. W., Hashimoto, T. B., & Liang, P. (2020). “Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization.” ICLR 2020. arXiv:1911.08731 — GroupDRO,公平性方法学的重要对照。
- Gulshan, V., et al. (2016). “Development and Validation of a Deep Learning Algorithm for Detection of Diabetic Retinopathy in Retinal Fundus Photographs.” JAMA 316(22):2402-2410 — DR 眼底 AI 筛查的里程碑研究,理解本数据集临床任务的背景文献。
§8.6 社区活跃度
官方 GitHub 仓库(Harvard-AI-and-Robotics-Lab/FairVision)收录 ViT/3D ResNet 双骨干与 FIS 实现,提供四类训练脚本;Hugging Face 数据集仓库(harvardairobotics/FairVision)提供在线下载。相比 FairSeg,本数据集可见的社区讨论较少(在本轮可核范围内未见大量 issue 讨论),属"研究级发布、社区规模待增长"状态。使用建议:研究者从论文 + GitHub README 入手(字段编码与映射最权威);工程实现从官方 four 脚本入手。
§8.7 生态快照
| 资源 | 类型 | 链接 | 活跃度(截至 2026-10) | 推荐理由 |
|---|---|---|---|---|
| Hugging Face 数据仓库 | 官方分发 | https://huggingface.co/datasets/harvardairobotics/FairVision | 在线可访问 | 数据下载第一入口 |
| 镜像(沙箱可用) | 镜像 | https://hf-mirror.com/datasets/harvardairobotics/FairVision | 镜像维护 | 跨境受限时的替代 |
| GitHub 仓库 | 官方代码 | https://github.com/Harvard-AI-and-Robotics-Lab/FairVision | 官方维护 | FIS + 双骨干唯一官方实现 |
| arXiv 论文 | 论文 | https://arxiv.org/abs/2310.02492 | 稳定 | 数据集与方法权威出处 |
| 实验室数据集页 | 官方入口 | https://ophai.hms.harvard.edu/datasets | 本轮未直接核到 | 实验室数据集家族总览 |
§9 相关资源与引用
§9.1 官方资源
- Hugging Face 数据仓库(官方下载入口):huggingface.co/datasets/harvardairobotics/FairVision
- 镜像(沙箱可用):hf-mirror.com/datasets/harvardairobotics/FairVision
- 官方 GitHub 代码仓库(ViT + 3D ResNet + FIS):github.com/Harvard-AI-and-Robotics-Lab/FairVision
- arXiv 预印本:arxiv.org/abs/2310.02492
- 实验室数据集家族总览:ophai.hms.harvard.edu/datasets
- 官方联系邮箱:harvardophai@gmail.com / harvardairobotics@gmail.com
- 许可正文:creativecommons.org/licenses/by-nc-nd/4.0/
§9.2 BibTeX 引用
@misc{luo2024fairvisionequitabledeeplearning,
title = {FairVision: Equitable Deep Learning for Eye Disease Screening
via Fair Identity Scaling},
author = {Luo, Yan and Khan, Muhammad Osama and Tian, Yu and Shi, Min and
Dou, Zehao and Elze, Tobias and Fang, Yi and Wang, Mengyu},
year = {2024},
eprint = {2310.02492},
archivePrefix= {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2310.02492}
}
@inproceedings{tianfairseg,
title = {FairSeg: A Large-Scale Medical Image Segmentation Dataset for
Fairness Learning Using Segment Anything Model with Fair
Error-Bound Scaling},
author = {Tian, Yu and Shi, Min and Luo, Yan and Kouhana, Ava and
Elze, Tobias and Wang, Mengyu},
booktitle = {The Twelfth International Conference on Learning Representations
(ICLR)},
year = {2024},
note = {arXiv:2311.02189}
}
@inproceedings{sagawa2020groupdro,
title = {Distributionally Robust Neural Networks for Group Shifts: On the
Importance of Regularization for Worst-Case Generalization},
author = {Sagawa, Shiori and Koh, Pang Wei and Hashimoto, Tatsunori B. and
Liang, Percy},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2020}
}
§9.3 引用指南
使用本数据集时:论文正文引用 @misc{luo2024fairvisionequitabledeeplearning}(官方 README 提供的 BibTeX);同时使用官方代码时请保留仓库链接与许可声明;若在论文中报告分组指标,建议注明自统计的组分布、标签映射口径与划分来源,以便他人按同口径复现。引用本百科页面时,请以页面脚注所示审核日期为准。
§9.4 相关条目导航
| 条目 | 关系 | 说明 |
|---|---|---|
| Harvard FairSeg | 同团队姊妹集(首要互链) | 分割任务、属性编码一致,与本集构成"分类 + 分割"双支点 |
| Messidor | DR 分级基准 | 2D 彩色眼底照,可作 DR 对照 |
| APTOS 2019 | DR 分级基准 | 竞赛型数据集,无系统公平性属性 |
| EyePACS | DR 分级基准 | 大规模 2D 眼底照,DR 任务重要参照 |
| GRAPE | 青光眼参照 | 青光眼分析方向互补 |
| OCTA-25K | OCT/OCTA 参照 | OCT 系列影像数据集 |
| AGE-AS-OCT | OCT 参照 | 与 AMD/年龄相关的 OCT 数据 |
| OCTDL | OCT 分类参照 | OCT 图像疾病分类 |
| OCTID | OCT 分类参照 | OCT 图像分类基准 |
§10 AI 使用声明卡
§10.1 AI 模型使用
| AI 模型 | 版本 | 用途 |
|---|---|---|
| fast-model(CodeBuddy) | 2026-10 | 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建 |
§10.2 AI 参与范围
AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。
AI 在本页面的工作中负责:(1) 从 arXiv:2310.02492、Hugging Face 数据仓库、GitHub README 与官方脚本中整理结构化信息;(2) 生成 §6 的 Python 代码示例;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 JSON-LD @graph。
§10.3 输入来源
- Luo, Y., Khan, M. O., Tian, Y., Shi, M., Dou, Z., Elze, T., Fang, Y., & Wang, M. (2024). “FairVision: Equitable Deep Learning for Eye Disease Screening via Fair Identity Scaling.” arXiv:2310.02492(v1 2023-10-03 / v2 2023-10-05 / v3 2024-04-12)
- Harvard-AI-and-Robotics-Lab/FairVision 官方 GitHub README(30,000 受试者、三病种各 10,000、SLO/OCT 双模态、六属性编码表、AMD/DR 条件-标签映射、目录结构、命名约定、许可与免责声明、BibTeX)
- hf-mirror.com/datasets/harvardairobotics/FairVision 数据集页(30,000 受试者、约 600 GB、CC BY-NC-ND 4.0、SLO 512×664 / 200×200、OCT 200×200×200 与 128×200×200、策划者名单)
- arXiv:2310.02492 摘要(2D+3D 公平性研究、五种架构、三病种、race/gender/ethnicity 偏倚、FIS 方法、3.8 亿受影响人口)
- cc-by-nc-nd 4.0 许可正文(creativecommons.org)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11 映射、三病种、临床任务) | 千方病案医学编辑部 | 与 WHO ICD-11 体系及论文原文交叉比对 | ✅ 已验证 |
| §3 数据集规格(样本数、格式、大小、溯源链) | 千方病案医学编辑部 | 与 Hugging Face、GitHub README 三源交叉比对 | ✅ 已验证 |
| §4 数据结构(目录树、DAIMS 字段字典、条件映射) | 千方病案医学编辑部 | 与官方 README 编码表与映射表逐项比对 | ✅ 已验证 |
| §5 数据划分策略 | 千方病案医学编辑部 | 与官方三目录结构说明交叉比对 | ✅ 已验证 |
| §6 代码示例与坑点 | 千方病案医学编辑部 | 逻辑审查 + 与官方脚本结构比对 | ✅ 已通过 |
| §7 质量评估与 DAIMS 评分 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 基准结论与引用表述 | 千方病案医学编辑部 | 与论文摘要定性结论交叉比对 | ✅ 已验证 |
| JSON-LD @graph | 千方病案医学编辑部 | Schema 字段逐项校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
本页面 §1-§9 正文与 JSON-LD 由 AI 生成初稿;§2 医学编码、§3 规格数字、§4 字段编码与条件映射均逐项溯源至 §10.3 所列来源,并经 §10.4 所列人工校验流程核验。
§10.6 最后人工审核日期
最后人工审核日期:2026-10-07(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- olives — 共享标签:眼科影像 / 多模态影像 / 图像分类 / 糖尿病视网膜病变
- papila — 共享标签:眼科影像 / 图像分类 / 青光眼
- octid — 共享标签:眼科影像 / 图像分类 / 糖尿病视网膜病变
- fives — 共享标签:眼科影像 / 青光眼 / 糖尿病视网膜病变
- g1020 — 共享标签:眼科影像 / 图像分类 / 青光眼
- hygd-hillel-yaffe — 共享标签:眼科影像 / 图像分类 / 青光眼
- fgadr — 共享标签:眼科影像 / 图像分类 / 糖尿病视网膜病变
- justraigs — 共享标签:眼科影像 / 图像分类 / 青光眼
- origa-light — 共享标签:眼科影像 / 图像分类 / 青光眼
- refuge2 — 共享标签:眼科影像 / 图像分类 / 青光眼
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

