信息速览

HRF(高分辨率眼底图像数据集)— 高分辨率血管分割基准 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | HRF(High-Resolution Fundus,高分辨率眼底图像数据集) |
| 英文全称 | High-Resolution Fundus (HRF) Image Database |
| 别名/简称 | HRF dataset;FAU fundus images database |
| 疾病分类(ICD-11) | 9B71.0 糖尿病视网膜病变;9C61 青光眼 |
| SNOMED CT | 57174003(Diabetic retinopathy);32389004(Retinal blood vessel structure,分割目标) |
| 数据模态 | 眼底彩色照相(2D RGB,3504×2336 像素,60° 视场角) |
| AI 任务类型 | 二值视网膜血管分割(语义分割);辅助任务:视盘定位 |
| 样本总数 | 45 幅眼底照(健康 15 + 糖尿病视网膜病变 15 + 青光眼 15) |
| 数据大小 | 约 73 MB(all.zip,76,317,613 B) |
| 数据格式 | JPEG(原始图)+ TIFF(血管金标准、FOV 掩膜)+ XLS(视盘定位) |
| 许可证 | CC BY 4.0(社区镜像标注;官方页未附显式许可文本) |
| 访问级别 | 开放(官方直链下载,无需注册) |
| 语言 | 英文(页面与标注说明) |
| 首发日期 | 2011-05(ARVO 海报首次公开);2013-12 论文定稿 |
| 发布机构 | FAU Erlangen-Nürnberg Pattern Recognition Lab + FAU 眼科 + 布尔诺理工大学 |
| 官方主页 | https://www5.cs.fau.de/research/data/fundus-images/ |
| 下载地址 | https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/all.zip |
| DOI | 10.1155/2013/154860 |
| 引用次数 | 582+(Semantic Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 图像与掩膜可直接读入、命名规则清晰,但无官方划分、无官方预处理脚本,且 3 幅掩膜带抗锯齿灰阶需自行二值化 |
| 页面状态 | published |
§0 E-E-A-T 审核声明
医学审核:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11/SNOMED CT 映射、糖尿病视网膜病变与青光眼定义及流行病学)、§7 偏倚分析。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核口径说明:本页全部规模、日期、评估数字均以官方页、主/伴生论文与镜像考证卡为唯一事实源,检索窗口为 2026-09;无法建立来源对应关系的字段一律整行省略,不做估算填充。
医疗免责声明:本页面内容仅供研究与技术参考,不构成医疗建议、诊断依据或治疗方案。任何涉及临床决策的应用,必须由具备执业资质的医师结合患者实际情况独立判断。因使用本页面内容引发的任何直接或间接后果,编制方不承担责任。
技术免责声明:本页面提供的代码、数据处理流程与性能数字均按"现状"提供,仅用于说明数据集的使用方式,未经任何形式的商业化验证。使用者应在自己的环境中重新验证,并对生产部署承担全部工程责任。
数据使用合规声明:本数据集由发布机构以开放方式提供,使用者须遵守数据集原始许可条款与引用要求(引用 Budai et al. 2013;如使用同页图像质量评估子集,须引用 Köhler et al. 2013)。涉及二次分发、商业用途或与个人数据联合分析时,应自行确认合规边界并咨询所在机构伦理委员会。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? HRF(High-Resolution Fundus,高分辨率眼底图像数据集)是一套由德国埃尔朗根-纽伦堡大学(FAU)与布尔诺理工大学联合发布的公开眼底照数据库:45 幅 3504×2336 像素的彩色眼底照片,按健康、糖尿病视网膜病变、青光眼三种情况各 15 幅分组,每幅都配有一套由眼底图像分析专家与临床眼科医生共同完成的人工血管分割金标准,以及标出相机有效视野(FOV)的掩膜(官方主页)。
为什么重要? 在 HRF 出现之前,血管分割的主流基准(DRIVE 565×584、CHASE_DB1 1280×960)分辨率有限;HRF 首次以约 4 倍于 DRIVE 的分辨率、并覆盖两种常见眼底疾病,让研究者可以检验算法在"高分辨率 + 病理形态"条件下的真实表现。它与 DRIVE、STARE、CHASE_DB1 并列,是视网膜血管分割领域引用最广的四大公开基准之一(Budai et al., 2013)。
我能用它做什么? 训练或评测血管分割模型(U-Net 及其变体、拓扑感知模型等),比较方法在健康与病理图像上的敏感性差异;用高分辨率图像研究细小毛细血管的识别极限;做视盘定位算法评测(库内附两位专家的视盘定位标注);或作为外部验证集,检验在 DRIVE 等低分辨率数据上训练的模型能否泛化到高分辨率场景。
§1.1 摘要
HRF 由 FAU 模式识别实验室(Pattern Recognition Lab)与 FAU 眼科跨学科预防医学与影像中心合作构建,图像采集使用 Canon CR-1 眼底相机,视场角 60°,所有图像统一为 3504×2336 像素(Budai et al., 2013, Int. J. Biomedical Imaging, DOI 10.1155/2013/154860)。数据库按诊断分为三组:健康 15 幅、糖尿病视网膜病变(DR)15 幅、青光眼 15 幅。每幅图像附有一套二值血管分割金标准,由视网膜图像分析领域专家与合作眼科诊所的临床医生共同标注;另附 FOV 掩膜用于在评估时屏蔽有效视野之外的黑色边缘。此外,官方提供 optic_disk_centers.xls,内含两位专家分别标注的视盘中心坐标与直径(仅定位,不含分割掩膜)。数据库于 2011 年以 ARVO 海报形式首次公开,2013 年随 Budai 等人的方法论文正式定稿,配套的匹配滤波评估研究发表于 Odstrcilik et al., IET Image Processing 2013。官方未定义训练/测试划分,社区广泛沿用 Orlando et al. 2017(IEEE TBME)提出的"每类前 5 张训练、其余 30 张测试"惯例。
§1.2 战略价值
维度一:高分辨率基准的"压力测试"价值。 DRIVE 的 565×584 分辨率下,血管宽度多为 2-5 像素,现代深度模型在 DRIVE 上的 Dice 已趋饱和;HRF 的 3504×2336 让最细的毛细血管保持在 1-2 像素级别且数量大增,血管像素占比仅约 5%-11%(均值 0.077,HuggingFace 忠实镜像统计)。这使其成为检验模型能否在真实高分辨率下保住细小血管的天然压力测试场:直接把全图下采样到低分辨率训练,U-Net 的敏感性可从约 80% 跌至 56% 左右(HAL 预印本对照表),这一现象本身已成为方法论研究的经典案例。
维度二:病理多样性带来的鲁棒性评测价值。 同一套库内同时覆盖健康、DR、青光眼三种眼底形态,官方评估表按子集分别报告敏感性/特异性/准确性(如经典匹配滤波方法在健康组 Se 78.61%、DR 组 Se 74.63%、青光眼组 Se 79.00%,FAU 官方评估页),让"病理是否降低分割质量"第一次可以量化。DR 的微动脉瘤与出血点、青光眼的视盘凹陷与神经纤维层缺损都会改变血管对比度与形态,病理组与正常组之间的性能落差是衡量模型临床可用性的关键指标。
维度三:小体积基准的"公共对照组"价值。 45 幅、约 73 MB、免注册直链,让 HRF 成为少数可以"随手放进单元测试"的医学分割库:CI 管线回归测试、教学实验、论文消融的第 N 个外部验证集,成本都近乎为零。配合官方评估表与 VUTBR 在线计分 applet,它形成了从数据到计分口径的完整闭环,这也是其引用量长尾十余年不衰的结构性原因。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 分辨率 | 标注 | 与 HRF 的差异化 |
|---|---|---|---|---|
| HRF | 45 幅 | 3504×2336 | 单套专家共识血管掩膜 + FOV + 双专家视盘定位 | 高分辨率 + 三疾病分组,细血管压力测试首选 |
| DRIVE | 40 幅 | 565×584 | 双观察者血管掩膜(1st/2nd) | 规模最小但划分最标准化,双标注支持观察者间一致性分析 |
| STARE | 20 幅(常用) | 700×605 | 双观察者血管掩膜 | 病理重、图像质量参差,考察困难样本 |
| CHASE_DB1 | 28 幅 | 1280×960 | 双观察者血管掩膜 | 儿童眼底(英国儿童心脏健康研究),人群差异化 |
| IDRiD | 516 幅 | 4288×2848 | 病灶+血管+视盘多任务标注 | 规模大得多、任务全,但划分面向病灶检测竞赛 |
| FIVES | 800 幅 | 2048×2048 | AI 生成后人工校正的血管标注 | 规模最大的高分辨率血管库,但标注非纯人工 |
对比要点:HRF 在四大血管分割基准中分辨率最高、病理分组最均衡,但唯一不提供第二观察者血管标注——若研究需要观察者间一致性,应选 DRIVE/STARE/CHASE_DB1;若需要大规模病灶标注,应选 IDRiD;若要追求"人工高分辨率标注的规模",FIVES 更大但标注管线不同(Wizwand/Kaggle 合集对照)。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2010-12 | 预备版数据库 | 官方评估页按"preliminary database"口径记录 budai09 与 odstrcilik09 的早期结果(FAU 官方页) |
| 2011-05 | ARVO 首次公开 | Budai 等以海报 “A Public Database for the Evaluation of Fundus Image Segmentation Algorithms” 公开数据库 |
| 2011-06 | 评估基线入库 | 官方评估表记录 odstrcilik09 在三子集上的 Se/Sp/Acc 基线 |
| 2013-06 至 2013-09 | 主论文投稿与录用 | Budai et al., Int. J. Biomedical Imaging vol. 2013, Article ID 154860 |
| 2013-06 | 伴生论文发表 | Odstrcilik et al., IET Image Processing 7(4):373–383(匹配滤波 + 高分辨率库评估) |
| 2013-12 | 论文专刊定稿 | 至今为官方当前版本;更早阶段文件另存于官方 downloads-history 页 |
§1.5 典型应用场景
| 场景 | 具体做法 | 配套章节 |
|---|---|---|
| 血管分割算法基准评测 | 在 45 幅图上按社区惯例划分训练/测试,报告 Se/Sp/Acc/Dice/AUC,与官方评估表及社区榜单对齐 | §5.2、§6.9、§8.1 |
| 高分辨率训练策略研究 | 对比全图下采样、滑窗 patch、多分辨率推理等策略对细血管敏感性的影响 | §6.3、§6.5 坑点 3 |
| 病理鲁棒性分析 | 分别统计健康/DR/青光眼三组的性能落差,评估模型在病理形态下的退化程度 | §2.6、§7.8 |
| 跨库泛化与域适应 | 以 HRF 为外部验证集或训练源,量化与 DRIVE/STARE/CHASE_DB1 之间的分布偏移(综述口径:外部测试 Dice 普遍下降 8%-10%,EmergentMind 综述条目) | §5.5、§7.8 |
| 视盘定位评测 | 利用 optic_disk_centers.xls 中两位专家的定位标注,评测视盘中心与直径估计算法 |
§4.1、§6.1 |
§2 医学背景
§2.1 ICD-11 编码映射
| 数据集内现象 | ICD-11 编码 | ICD-11 中文名 | 说明 |
|---|---|---|---|
| 第三组 15 幅图像对应的疾病 | 9B71.0 | 糖尿病视网膜病变 | 细分 9B71.00(非增殖性)、9B71.01(增殖性)、9B71.02(糖尿病黄斑水肿)、9B71.0Z(未特指);编码规则要求另加糖尿病主码(如 5A11) |
| 第二组 15 幅图像对应的疾病 | 9C61 | 青光眼 | 细分 9C61.0(原发性开角型)、9C61.1(原发性闭角型)、9C61.2/9C61.3(继发性开角/闭角)、9C61.4(发育性)、9C61.Z(未特指) |
| 第一组 15 幅图像 | 无对应编码 | 正常眼底 | ICD-11 不为"健康"编码;血管分割任务的标注与是否患病无关 |
§2.1b SNOMED CT 映射
| 标签/概念 | SNOMED CT 码 | 术语 | 数据集对应 |
|---|---|---|---|
| 糖尿病视网膜病变 | 57174003 | Diabetic retinopathy (disorder) | *_dr 组 15 幅图的临床背景 |
| 视网膜血管(解剖结构) | 32389004 | Retinal blood vessel structure (body structure) | 全部 45 幅图的分割目标 |
映射说明:HRF 的文件名后缀(h/g/dr)只表达分组信息,不是经编码核验的诊断标签;上表描述的是数据集的临床语境而非逐图诊断。青光眼的结构化编码建议以 ICD-11 9C61 概念族为出口(写入 OMOP/FHIR 时回链),本表不逐码罗列。做病理性分析时应以官方页对分组的文字描述为准。
§2.2 疾病简介与流行病学
**糖尿病视网膜病变(DR)**是糖尿病最常见的微血管并发症,也是工作年龄人群可预防性失明的首要原因。高血糖持续损伤视网膜微血管,早期表现为微动脉瘤、点片状出血与硬性渗出,进展期出现静脉串珠、新生血管与纤维增殖,最终可致玻璃体积血与牵拉性视网膜脱离。全球荟萃分析估计:2020 年全球 DR 患者约 103.12 百万(占糖尿病人群 22.27%),其中威胁视力的 DR 约 28.54 百万;预计 2045 年 DR 患者增至约 160.50 百万(Teo et al., Ophthalmology 2021, PMID 33940045)。DR 的眼底形态改变(出血、渗出、新生血管)会遮挡或扭曲血管,这正是 HRF 把 DR 单独分组用于检验分割鲁棒性的医学理由。
青光眼是一组以视神经节细胞进行性丢失与特征性视神经病变为表现的疾病,眼压升高是主要可控危险因素,但并非唯一机制;早期常无症状,被称为"视力的小偷"。全球荟萃分析估计 40-80 岁人群青光眼患病率约 3.54%,2020 年全球患者约 76.0 百万,预计 2040 年超过 111.8 百万(Tham et al., Ophthalmology 2014 口径,经第三方综述转引)。糖尿病患者发生青光眼(尤其开角型)的风险约为非糖尿病者的 2 倍,患病率区间 4.96%-14.6%(PMC11034595 综述)。青光眼的眼底标志是视盘凹陷扩大与视网膜神经纤维层缺损,使视盘附近血管形态与走行发生改变,这也是 HRF 青光眼组血管分割难度高于健康组的形态学根源。
为什么血管分割对这两类病都重要? 血管形态量化(宽度、迂曲度、分叉角、动静脉比)同时服务于 DR 分期、高血压性视网膜病变评估与青光眼的血流相关研究;血管分割还是视盘/黄斑定位、病灶检测的先验步骤。这是 Budai 等人在论文中将"减少计算时间、提高敏感性"作为设计目标的临床出发点(Budai et al., 2013)。
HRF 三分组的眼底形态对照:
| 分组 | 典型眼底形态 | 对血管分割的影响 |
|---|---|---|
| 健康组 | 血管弓清晰、背景均匀、对比度良好 | 基线难度;细血管密度最高(血管占比区间上沿) |
| DR 组 | 微动脉瘤、点状出血、硬性渗出、(晚期)新生血管 | 病灶遮挡与旁瓣效应使 Se 下降(官方口径:低于健康组约 4 个百分点) |
| 青光眼组 | 视盘凹陷扩大、盘沿变窄、神经纤维层缺损 | 视盘周边血管走行改变,局部对比度下降 |
上表依据官方评估表的子集性能差异与两类疾病的公认眼底体征归纳,用于说明分组设计的医学合理性;HRF 不含逐图病变程度标签,故不能做分期级对照。
§2.3 临床任务定义
| 任务类型 | 在 HRF 上的形式 | 临床意义 |
|---|---|---|
| 语义分割(主任务) | 输入 RGB 眼底照,输出逐像素二值血管图(血管/背景) | 筛查系统的结构与量化基础模块 |
| 局部定位(辅助任务) | 预测视盘中心坐标与直径,对照双专家标注 | 视杯评估、杯盘比计算的前置步骤 |
| 分组判别(受限) | 文件名后缀 h/g/dr 提供三分类分组标签 | 仅可用于分组描述性统计;每类 15 幅不足以训练诊断模型 |
| 疾病筛查/分级 | 无对应标注 | 不支持;HRF 无 DR 分级或青光眼分期标签 |
§2.4 患者人群表
| 维度 | 内容 | 来源与说明 |
|---|---|---|
| 来源 | 德国与捷克合作眼科诊所(含 Eye Clinic Zlín 提供的测试图像) | FAU 官方页致谢部分 |
| 采集时间 | 2010-2011 年(官方页未逐图公布采集日期) | temporalCoverage 按官方评估表最早记录推断 |
| 年龄 | 未公布 | 官方页与论文均未给出年龄分布 |
| 性别 | 未公布 | 同上 |
| 种族 | 未公布 | 使用者应以"欧洲中部单一地区人群"为默认假设并谨慎外推 |
| 就医类型 | 眼科专科门诊(健康对照组为检查性成像) | 按合作诊所性质推断 |
| 分组构成 | 健康 15 / DR 15 / 青光眼 15,人工均衡 | FAU 官方页 |
§2.5 临床价值
HRF 的临床价值在于把"算法能否在真实高分辨率与病理条件下工作"变成可量化的问题。官方评估表按三个疾病子集分别报告指标,使研究者可以直接回答:DR 患者的微血管病变是否让敏感性下降约 4 个百分点(78.61% → 74.63%)?青光眼的视盘形态改变是否影响局部分割?这些问题在单组数据集上无法提出。对筛查系统开发者而言,HRF 还承担"高分辨率验尸台"的角色:在低分辨率筛查图上训练的模型,只有在 HRF 级别的分辨率上仍然保住细血管,才有理由相信它能覆盖高清门诊影像场景。
| 价值维度 | 具体体现 | 支撑证据 |
|---|---|---|
| 算法压力测试 | 高分辨率放大细血管识别差距,U-Net 类基线的短板被显性化 | HAL 预印本对照表(Se 56.29% vs 84.5%) |
| 病理分层评估 | 三疾病子集使"病理敏感性惩罚"可量化 | 官方评估表 per-subset 口径 |
| 结构化先验来源 | 血管树 + 视盘定位联合标注支持多任务方法研究 | optic_disk_centers.xls 双专家标注 |
| 教学与可复现 | 体积小、免注册、口径公开,适合课程实验与基准复现 | 官方直链 + 本页 §6 代码 |
§2.6 金标准表
| 划分/对象 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|
| 血管分割(45 幅) | 人工逐像素二值标注 | 视网膜图像分析领域专家 + 合作眼科诊所临床医生(专家组共识) | 单套共识集;无第二观察者版本 |
| FOV 掩膜(按子集提供) | 依据相机视野生成 | 官方提供 | 辅助掩膜,非人工分割目标 |
| 视盘定位(45 幅) | 标注中心坐标、中央血管起点与直径 | 专家 A 与专家 B 两位,各自独立标注 | 双专家定位标注(optic_disk_centers.xls),非分割掩膜 |
| 黄斑/动静脉 | 未提供 | 官方声明"intend to add",至今未随库发布 | 不可用于相应任务 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 血管分割基准评测 | 官方 all.zip(当前版 45 幅) | 约 73 MB | 与官方评估表、社区榜单口径对齐 |
| 只取某一疾病组做子集分析 | 分组包 healthy/glaucoma/diabetic_retinopathy.zip | 18-28 MB | 与官方分包结构一致,含同名掩膜包 |
| 图像质量评估(IQA)研究 | 同页 allQuality.zip(18 对 good/poor) | 另计 | 注意:这是独立数据集(Köhler et al., CBMS 2013),无血管 GT,引用义务不同 |
| 复现历史论文的早期结果 | downloads-history 页早期版本 | 另计 | 仅在复现 2010-2011 初步结果时需要 |
§3.1 模态详情
HRF 全部为 2D 彩色眼底照相(color fundus photography),单模态、静态图像。图像以 JPEG 存储,色彩空间为常规 sRGB 三通道;官方页面与引用文献均未公布原始 RAW 数据。血管金标准与 FOV 掩膜为 8 位灰度 TIFF:金标准中血管像素为白色(255)、背景为黑色(0);FOV 掩膜界定相机有效视野,FOV 之外的黑色环形区域不参与有效评估(FAU 官方页)。
| 图像内容 | 视觉特征 | 对算法的意义 |
|---|---|---|
| 视网膜底色 | 橙红-棕色渐进 | 绿色通道血管-背景对比度最高(预处理首选) |
| 视盘 | 明亮椭圆盘,血管汇入点 | 双专家定位标注的对象 |
| 黄斑 | 中央暗区,血管弓环绕 | 无金标准,仅可无监督估计 |
| 血管树 | 从视盘放射的四级分叉 | 分割目标;HRF 高分辨率下小径级血管像素达 13,782,690(openmedlab 统计) |
| FOV 外区域 | 纯黑环形边 | 必须用掩膜屏蔽,否则污染指标 |
§3.2 按子集样本数表
| 子集 | 文件后缀 | 图像数 | 命名示例 | 官方分包 |
|---|---|---|---|---|
| 健康组 | _h |
15 | 01_h.jpg … 15_h.jpg |
healthy.zip(约 18 MB) |
| 青光眼组 | _g |
15 | 01_g.jpg … 15_g.jpg |
glaucoma.zip(约 21 MB) |
| 糖尿病视网膜病变组 | _dr |
15 | 01_dr.JPG … 15_dr.JPG |
diabetic_retinopathy.zip(约 28 MB) |
| 合计 | — | 45 | — | all.zip(约 73 MB) |
命名规则提示:三组编号各自独立从 01 开始(同编号的三幅图互不相关);DR 组扩展名为大写
.JPG,在大小写敏感的文件系统上拼接路径时必须显式区分(坑点 8)。
§3.3 格式表
| 内容 | 格式 | 位深/通道 | 命名规则 | 备注 |
|---|---|---|---|---|
| 原始眼底照 | JPEG | 8 bit / RGB | `{编号}_{h\ | g\ |
| 血管金标准 | TIFF | 8 bit / 单通道 | `{编号}_{h\ | g\ |
| FOV 掩膜 | TIFF | 8 bit / 三通道(R=G=B) | `{编号}_{h\ | g\ |
| 视盘定位金标准 | XLS | — | optic_disk_centers.xls |
专家 A/B 两套:中心坐标、中央血管起点、视盘直径(像素) |
§3.4 存储大小
| 包 | 大小 | 内容 |
|---|---|---|
| all.zip | 约 73 MB(76,317,613 B,字节级核验) | 全部 45 幅图像 + 掩膜 + 视盘 XLS |
| healthy.zip | 约 18 MB | 健康组原图 |
| glaucoma.zip | 约 21 MB | 青光眼组原图 |
| diabetic_retinopathy.zip | 约 28 MB | DR 组原图 |
| 各组 FOV 掩膜包 | 各约 1 MB | {组名}_fovmask.zip |
| 各组人工标注包 | 各约 2 MB | {组名}_manualsegm.zip |
| allQuality.zip | 另计 | IQA 集 18 对(独立数据集,非分割子集) |
存储推论:全库以 uint8 常驻内存约 760 MB(45 × 24.6 MB 原图 + 掩膜),一个现代工作站的 RAM 即可整体缓存,无需流式加载;这正是它适合 CI 回归测试的原因。
§3.5 标注方式
血管金标准为人工逐像素标注(非自动、非弱监督):官方原文为 “The gold standard data is generated by a group of experts working in the field of retinal image analysis and clinicians from the cooperated ophthalmology clinics”,即由眼底图像分析领域专家与合作眼科临床医生共同生成(FAU 官方页)。视盘定位金标准为两位专家分别独立标注的双专家数据。需要特别强调:HRF 的血管掩膜只有一套,不存在 DRIVE/STARE 那样的第二观察者版本——Budai 论文中提到的 “a second manual segmentation made by a human observer” 指的是其用于对照的外部数据库 DRIVE 与 STARE,而非 HRF 本身。
§3.6 标注者资质与一致性
标注者为"视网膜图像分析领域专家"与合作眼科诊所的临床医生(官方口径,未公布具体人数与资质证书明细)。由于只发布单套共识掩膜,官方未提供血管标注的观察者间一致性统计(如 kappa 或 Dice);需要一致性分析的研究应改用 DRIVE(双观察者)或 CHASE_DB1(双观察者)。视盘定位的两位专家标注(A/B 套)可用于计算定位级一致性(中心点距离差、直径差),是库内唯一可做观察者间比较的标注对象。
§3.7 采集周期
官方页与主论文均未逐图公布采集日期。可核实的时序锚点为:预备版库的官方评估记录始于 2010-12-08,最终版评估记录为 2011-06-14;数据库首次公开于 2011-05 的 ARVO 海报。据此,采集与整理工作集中在 2010-2011 年,temporalCoverage 取 2010/2011。
§3.8 地域覆盖
图像来自德国埃尔朗根(FAU 眼科及其合作诊所)与捷克(布尔诺理工大学合作、Eye Clinic Zlín 提供测试图像)。官方页明确致谢 Eye Clinic Zlín 的 T. Kubena 医生与 P. Cernosek(FAU 官方页致谢部分)。库内未标注每幅图的具体来源诊所与地域归属。
§3.9 设备规格
| 设备项 | 规格 | 来源 |
|---|---|---|
| 相机 | Canon CR-1 眼底相机 | PMC6658152 与 PLOS ONE 0220132 等引用文献 |
| 视场角 | 60°(分割集);IQA 集为 45° | 同上 + FAU 官方页 |
| 分辨率 | 3504×2336 像素(全部 45 幅统一) | openmedlab 统计与多处引用文献 |
| 采集协议 | 未公布散瞳与否等细节 | 官方页未说明 |
§3.10 深度溯源链
| 环节 | 主体 | 可核验证据 |
|---|---|---|
| 原始采集 | 德国/捷克合作眼科诊所(Canon CR-1,60°) | 官方页设备口径;引用文献(PMC6658152 等) |
| 人工标注 | 视网膜图像分析专家 + 合作临床医生(血管);专家 A/B(视盘定位) | 官方页金标准原文与 optic_disk_centers.xls |
| 整理打包 | FAU Pattern Recognition Lab(CS5) | 官方页分包结构与字节数(76,317,613 B) |
| 评估记录 | 官方评估表(2010-12 起记录 budai09/odstrcilik09) | FAU 评估页 |
| 论文定稿 | Budai et al. 2013(IJBI)+ Odstrcilik et al. 2013(IET IP) | DOI 10.1155/2013/154860;DOI 10.1049/iet-ipr.2012.0455 |
| 社区再分发 | HuggingFace 忠实镜像(字节级核验)、Kaggle 合集 | 镜像考证卡 |
整条链上不存在官方之外的权威修订版;第三方"再标注"产品(如 HRF-AV 动静脉标签、HRF-Seg+)与官方库 100% 重叠但标注体系不同,评测时不得混用。
§4 数据结构
§4.0 目录树
解压 all.zip 后的官方目录结构(分组包结构相同,仅含对应子集):
fundus-images/
├── images/ # 原始眼底照(JPEG, 3504×2336, RGB)
│ ├── 01_dr.JPG # 注意:DR 组扩展名为大写 .JPG
│ ├── 01_g.jpg # 青光眼组
│ ├── 01_h.jpg # 健康组
│ ├── 02_dr.JPG
│ ├── 02_g.jpg
│ ├── 02_h.jpg
│ └── ...(共 45 幅,编号 01-15 × 3 组)
├── manual1/ # 血管分割金标准(TIFF, 单通道)
│ ├── 01_dr.tif # 与 images/ 同名(不含扩展名差异)
│ ├── 01_g.tif
│ ├── 01_h.tif
│ └── ...
├── mask/ # FOV 视野掩膜(TIFF, 三通道 R=G=B)
│ ├── 01_dr_mask.tif
│ ├── 01_g_mask.tif
│ ├── 01_h_mask.tif
│ └── ...
└── optic_disk_centers.xls # 视盘定位金标准(专家 A/B 双套定位标注)
若按官方分包单独下载,各包内文件命名与上述规则一致;*_fovmask.zip 与 *_manualsegm.zip 分别只含对应组的掩膜与标注。
同页 IQA 集的目录(属另一数据集,勿混入上表管线):
image-quality-assessment/ # Köhler et al., CBMS 2013;无血管 GT
├── goodQuality/ # 18 幅质量合格图(Canon CR-1, 45° FOV)
├── badQuality/ # 18 幅质量不合格图(与上图一一配对)
└── allQuality.zip # 官方整包
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| image_id | string | 文件主键:编号 + 组别后缀,是三套文件(原图/金标准/FOV)的配对键 | 07_g |
分组、配对、划分 | 无 | 无 | 01-15 × {h,g,dr} |
| image | Image (RGB) | 原始眼底照,JPEG 8 bit 三通道 | 07_g.jpg |
分割输入 | 相机噪声、高光反射 | 无 | 3504×2336 像素 |
| vessel_mask | Image (L) | 人工血管分割金标准,血管=255/背景=0 | 07_g.tif |
训练标签、评估 | 单套共识,无观察者间统计 | 无 | 42 幅为 {0,255};3 幅含 175/215/203 灰阶 |
| fov_mask | Image (L) | 视野掩膜,有效视野≈255/边缘≈0 | 07_g_mask.tif |
评估屏蔽、损失掩蔽 | FOV 外不含可评信息 | 无 | 二值语义;文件为三通道 R=G=B |
| od_center_a / od_center_b | (int, int) | 专家 A/B 的视盘中心坐标(像素) | 见 XLS | 视盘定位评估 | 两位专家独立标注,未公布一致性 | 无 | 像素坐标 |
| od_diameter_a / od_diameter_b | int | 专家 A/B 的视盘直径(像素) | 见 XLS | 直径估计评估 | 同上 | 无 | 像素 |
| od_vessel_origin_a / od_vessel_origin_b | (int, int) | 专家 A/B 的中央血管起点坐标 | 见 XLS | 血管树根节点定位 | 同上 | 无 | 像素坐标 |
| subset | categorical | 诊断分组(由文件名后缀派生) | glaucoma |
分组统计、鲁棒性分析 | 分组≠核验诊断 | 无 | {healthy, glaucoma, diabetic_retinopathy} |
| case_index | int | 组内编号 1-15(文件名前缀),Orlando 2017 惯例划分的依据 | 7 |
划分复现(≤5 训练、6-15 测试) | 无 | 无 | 1-15 |
| vessel_fraction | float | 血管像素占全图比例(派生统计) | 0.077(均值口径) |
类别不平衡分析、加权损失 | 二值化阈值敏感(见坑点 2) | 无 | 0.051-0.106 |
§4.2 标签分布
| 子集 | 图像数 | 占比 | 血管像素占比(全图口径) |
|---|---|---|---|
| 健康组 | 15 | 33.3% | 0.051-0.106 区间内(全库均值 0.077) |
| 青光眼组 | 15 | 33.3% | 同上(全库口径,官方未按组细分) |
| DR 组 | 15 | 33.3% | 同上 |
| 合计 | 45 | 100% | FOV 内像素约占全图 0.845 |
类别分布层面:血管/背景两类在像素级高度不平衡(约 1:12),评估时 Accuracy 会被背景主导(空白基线 Acc 即达 90.61%,FAU 官方评估页)。
| 维度 | 分布 | 对建模的含义 |
|---|---|---|
| 组间(病例级) | 15/15/15 严格均衡 | 分组统计无偏;但与临床患病率无关 |
| 类间(像素级) | 血管 : 背景 ≈ 1:12 | 用加权损失/focal/Dice 损失,慎用裸交叉熵 |
| 空间分布 | 血管自视盘放射,周边稀疏 | patch 采样建议加权视盘周边区域 |
| 组内像素占比 | 0.051-0.106(约 2 倍跨度) | 病例难度差异大,报方差而非单点值 |
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 图像总数 | 45(15/15/15) | FAU 官方页 |
| 分辨率 | 3504×2336(min = median = max) | openmedlab 数据集统计 |
| 血管像素占比 | 0.051-0.106,均值 0.077 | HuggingFace 忠实镜像 |
| FOV 内像素占比 | 约 0.845 | 同上 |
| 血管掩膜灰阶异常 | 3/45 幅(11_h、12_h、13_h)含抗锯齿灰边,受影响像素 0.007-0.019% |
同上 |
| openmedlab 血管计数(小/中/大径级) | 13,782,690 / 27,709,964 / 38,887,695 像素 | openmedlab 条目 |
| 视盘定位标注 | 2 套(专家 A/B),仅坐标与直径 | FAU 官方页 |
| 单幅 float32 张量内存 | 3504×2336×3×4 B ≈ 98 MB(uint8 原图约 24.6 MB) | 按分辨率推算 |
| 滑窗 patch 产出(512/步长 256) | 单图约 108 个 FOV 内 patch | 按 §6.3 网格推算 |
§4.4 数据层级
病例(受试者)
└── 每病例 1 幅眼底照(官方未公布同一受试者多图或左右眼成对信息)
├── images/{image_id}.jpg # 原始图
├── manual1/{image_id}.tif # 血管金标准(1 套共识)
├── mask/{image_id}_mask.tif # FOV 掩膜
└── optic_disk_centers.xls # 双专家视盘定位(按行对应)
与 DRIVE 等支持"病例-图像-多观察者"三层的库不同,HRF 的层级是扁平的两层:病例 → 单图多掩膜。任何把 manual1 内文件当成多个观察者的理解都是错误的。层级含义的三点推论:
- 无跨图关联键:除文件名编号外,不存在患者 ID、日期、眼别等字段,跨图聚合分析只能按分组维度做。
- 配对完整性可程序验证:三套文件的 stem 一一对应(§6.2 校验脚本),入库前必须跑通该断言。
- 扩展标注挂在文件级:第三方再标注(HRF-AV 等)也以同一 45 个 stem 组织,任何混装都会在 stem 层面静默通过——必须额外核对标注体系来源。
§4.5 缺失值与信息性缺失
| 对象 | 缺失情况 | 处理建议 |
|---|---|---|
| FOV 掩膜 | 官方表述为 “for particular datasets” 提供;全库 45 幅实际均有 mask/ 文件,但分组包时代个别包需单独下载 |
使用 all.zip 可避免遗漏 |
| 黄斑定位金标准 | 官方声明拟增补、至今未发布 | 不得臆测黄斑位置做监督 |
| 动静脉标签 | 官方库无(第三方 HRF-AV 为独立再标注,100% 重叠但体系不同) | 明确区分引用对象 |
| 年龄/性别/种族 | 未公布 | 做人群分析时声明限制 |
| 视盘定位 | 仅 A/B 两套坐标,无逐像素掩膜 | 定位任务可用;分割任务不可用 |
信息性缺失编码:HRF 不使用"缺失即有信息"的编码体系(无 -1/999 之类哨兵值);所有"缺失"都是文件级缺省,不存在单元格级缺失。
§5 划分与使用建议
§5.1 官方划分
不存在。 官方页与 Budai 论文均未定义训练/测试划分,45 幅图作为整体发布(HuggingFace 忠实镜像考证)。官方评估表仅记录整库按子集分组的方法级指标,不构成划分协议。这带来两个直接后果:
- 任何声称"HRF 官方测试集"的表述都是错的;你看到的每一个具体数字都绑定某个具体划分选择。
- 数据集可以被"整体用于无监督/半监督"用途而不违背任何官方协议——这既是灵活性,也是跨论文比较混乱的根源。
§5.2 社区惯例划分
文献中最常见的划分来自 Orlando et al. 2017(IEEE TBME 64(1):16-27):每组编号 01-05 用于训练(共 15 幅),编号 06-15 用于测试(共 30 幅)。这是社区约定而非官方定义,使用时应在论文中明确声明"adopting the split of Orlando et al. 2017",并检查你引用的榜单数字是否同口径。可复现的划分构造:
def orlando_split():
"""Orlando et al. 2017(IEEE TBME 64(1):16-27)社区惯例划分。
train: 每组 01-05(15 幅);test: 每组 06-15(30 幅)。非官方定义。"""
train, test = [], []
for s in ("h", "g", "dr"):
train += [f"{i:02d}_{s}" for i in range(1, 6)]
test += [f"{i:02d}_{s}" for i in range(6, 16)]
return train, test
train_ids, test_ids = orlando_split()
print(len(train_ids), len(test_ids)) # 15 30
§5.3 划分策略与泄漏风险
- 数字泄漏式过拟合:30 张测试图规模极小,任何在测试集上反复调参后再报告结果的做法都会把方差吃干。建议训练内再固定验证折(如每组 01-05 内留 1 折),测试集只在最后触碰一次。
- 同源泄漏:45 幅图来自同一相机、同一协议的相邻采集批次,"随机打散划分"与"按编号划分"在分布上几乎等价,但报告时必须写明划分规则——跨论文数字不可直接比较的最大原因就是划分与评估区(FOV 内/外)不统一。
- 第三方再标注泄漏:HRF-AV、HRF-Seg+ 等再标注产品与官方库 100% 图像重叠;若你的训练集混入这些产品的数据再在 HRF 上测试,等于在同一批图上训练加测试。
- 镜像污染:部分第三方镜像(如 90 行缩水版)图像被降采样、掩膜缺失;混入后评估全部失真。只用官方直链或字节级核验过的镜像。
§5.4 交叉验证建议
45 幅的规模适合 5 折交叉验证(每折 9 幅,组内分层:健康/DR/青光眼各约 3 幅),报告折间均值±标准差,比单次 15/30 划分更能压低小样本方差。折间注意:同一编号的不同组别文件相互独立,可按"编号分层"构造折以保持每组组内分布一致。
from sklearn.model_selection import GroupKFold
def cv_folds():
"""按编号分层 5 折:同编号的 h/g/dr 视为同组进入同一折,
保证每折内三疾病组比例一致(各约 3 幅)。"""
ids, groups = [], []
for s in ("h", "g", "dr"):
for i in range(1, 16):
ids.append(f"{i:02d}_{s}")
groups.append(i) # 组 = 编号
gkf = GroupKFold(n_splits=5)
return list(gkf.split(ids, groups=groups))
folds = cv_folds()
print(len(folds), sum(len(te) for _, te in folds)) # 5 45
§5.5 外部验证建议
- 与 DRIVE/STARE/CHASE_DB1 互为外部验证集时,分辨率差异达 3-6 倍,必须统一推理分辨率策略(建议原生分辨率滑窗而非缩放),否则测到的是分辨率适配能力而非泛化能力。
- HRF 与上述各库无图像重叠(不同采集点、设备与分辨率),跨库结果具备干净的"数据集级"泛化语义(HuggingFace 考证)。
- 跨库迁移的预期心理价位:综述口径下外部测试 Dice 普遍下降 8%-10%(EmergentMind 综述条目),显著小于该幅度才值得声称泛化优势。
§6 AI 就绪指南
§6.0 云端快速启动
HRF 体积小(约 73 MB),任何一块免费档 GPU(Colab T4、Kaggle P100)即可完成本页全部流程。无需申请、无需注册,直接在云端拉取官方直链即可:
# Colab/Kaggle 单格即可运行
!wget -q https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/all.zip
!unzip -q all.zip -d /content/hrf && ls /content/hrf
# 应看到 images/ manual1/ mask/ optic_disk_centers.xls(与 §4.0 目录树一致)
Kaggle 环境亦可从合集数据集直接挂载(/kaggle/input/retinal-vessel-segmentation-datasets/HRF,第三方打包、结构为 images/masks/roi_masks,挂载后同样建议先跑 §6.2 的校验脚本再入管线)。
§6.1 快速上手
目录结构预期:以下代码假设数据根目录
data_root下存在images/、manual1/、mask/三个子目录(即 all.zip 解压后的fundus-images/目录)。data_root拼接关系:data_root/images/{image_id}.jpg↔data_root/manual1/{image_id}.tif↔data_root/mask/{image_id}_mask.tif。
最小可用子集:健康组的 5 幅训练图(01_h-05_h)即可让下面的 Dataset 类跑通一个 epoch,用于验证管线;正式实验请用完整 45 幅。
import os
from PIL import Image
import numpy as np
DATA_ROOT = "/content/hrf" # all.zip 解压出的目录;按需修改
# 三组文件名模板:DR 组扩展名是大写 .JPG(跨平台大小写敏感文件系统上必须写对)
IMG_TEMPLATES = {"h": "{}_h.jpg", "g": "{}_g.jpg", "dr": "{}_dr.JPG"}
N_PER_GROUP = 15
def list_image_ids(subsets=("h", "g", "dr")):
ids = []
for s in subsets:
for i in range(1, N_PER_GROUP + 1):
p = os.path.join(DATA_ROOT, "images", IMG_TEMPLATES[s].format(f"{i:02d}"))
if os.path.exists(p):
ids.append(f"{i:02d}_{s}")
return ids
def load_case(image_id):
"""读入原图、血管金标准与 FOV 掩膜,统一为 numpy。
关键规范化:掩膜 >=128 二值化(3 幅官方掩膜带抗锯齿灰边,>0 会在边缘引入 1px 伪影);
FOV 掩膜为三通道 R=G=B,取任一单通道即可。"""
img = np.asarray(Image.open(os.path.join(DATA_ROOT, "images",
IMG_TEMPLATES[image_id.split("_")[1]].format(image_id[:2]))).convert("RGB"))
mask = np.asarray(Image.open(os.path.join(DATA_ROOT, "manual1", f"{image_id}.tif")))
mask = (np.asarray(Image.fromarray(mask)).squeeze() >= 128).astype(np.uint8) * 255
fov = np.asarray(Image.open(os.path.join(DATA_ROOT, "mask", f"{image_id}_mask.tif")).convert("L"))
fov = (fov >= 128).astype(np.uint8)
return img, mask, fov
img, mask, fov = load_case("01_h")
print(img.shape, mask.shape, mask.dtype, fov.mean()) # (2336, 3504, 3) (2336, 3504) uint8 ~0.845
§6.2 数据获取
| 方式 | 链接 | 内容 | 大小 |
|---|---|---|---|
| 官方全量直链 | all.zip | 45 幅 + 掩膜 + 视盘 XLS | 约 73 MB |
| 官方分组包 | healthy / glaucoma / diabetic_retinopathy.zip | 各组原图 | 18-28 MB |
| 官方掩膜分包 | {组名}_fovmask.zip、{组名}_manualsegm.zip |
FOV / 血管金标准 | 1-2 MB |
| HuggingFace 忠实镜像 | MedOtter/HRF | 官方档案字节级核验(76,317,613 B) | 76.6 MB |
| Kaggle 合集 | retinal-vessel-segmentation-datasets | 含 HRF 在内的 5 库合集 | 合集约 1.98 GB |
# 推荐:官方直链 + 字节数校验(76,317,613 B)
wget https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/all.zip
stat -c %s all.zip # Linux;macOS 用 stat -f %z
unzip -q all.zip -d hrf/
获取流程:官方页无注册、无申请表单,点击即下。合规要点:使用须引用 Budai et al. 2013;若同时下载同页 IQA 集(18 对 good/poor,共 36 幅),须引用 Köhler et al., CBMS 2013——那是另一个数据集,只是共享同一个下载页(§6.5 坑点 1)。
下载后完整性校验脚本:
from pathlib import Path
import hashlib
def verify_hrf(root):
"""官方档案校验:文件数、配对完整性、掩膜二值性。任一断言失败即拒绝入库。"""
root = Path(root)
imgs = list((root / "images").iterdir())
masks = list((root / "manual1").iterdir())
fovs = list((root / "mask").iterdir())
assert len(imgs) == 45 and len(masks) == 45 and len(fovs) == 45, \
f"文件数异常: {len(imgs)}/{len(masks)}/{len(fovs)}(应为 45/45/45)"
stems = {p.stem for p in masks} # h/g/dr 组 stem 与原图对应
assert stems == {p.stem for p in imgs}, "原图与金标准 stem 不配对"
assert all((root / "mask" / f"{p.stem}_mask.tif").exists() for p in imgs), "FOV 掩膜缺失"
assert (root / "optic_disk_centers.xls").exists(), "视盘定位 XLS 缺失"
print("HRF 校验通过:45/45/45 配对完整")
def sha256_of(zip_path):
h = hashlib.sha256()
with open(zip_path, "rb") as f:
for chunk in iter(lambda: f.read(1 << 20), b""):
h.update(chunk)
return h.hexdigest() # 与字节数 76,317,613 一起写入实验配置作为数据指纹
§6.3 预处理全流程
import cv2
import numpy as np
def preprocess_fundus(img_rgb, fov_bin, patch_size=512, stride=256):
"""高分辨率眼底预处理:绿色通道提取 → CLAHE 对比度增强 → 滑窗 patch。
HRF 原图 3504×2336,直接缩放到 512 级会把细血管整体抹掉(U-Net Se 可低至 56%,
见 §6.5 坑点 3),因此默认走 patch 路径。"""
green = img_rgb[:, :, 1] # 血管对比度最高的通道
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(16, 16))
enhanced = clahe.apply(green)
h, w = enhanced.shape
patches, coords = [], []
for y in range(0, h - patch_size + 1, stride):
for x in range(0, w - patch_size + 1, stride):
win = enhanced[y:y + patch_size, x:x + patch_size]
if fov_bin[y:y + patch_size, x:x + patch_size].mean() > 0.9: # 只保留 FOV 内 patch
patches.append((win.astype(np.float32) / 255.0)[None, :, :])
coords.append((y, x))
return np.stack(patches), coords, enhanced
def normalize_global(enhanced, fov_bin):
"""仅用 FOV 内像素估计均值/方差,避免黑色边缘拉偏分布。"""
vals = enhanced[fov_bin > 0]
mean, std = float(vals.mean()), float(vals.std() + 1e-8)
return (enhanced - mean) / std, (mean, std)
patches, coords, enhanced = preprocess_fundus(img, fov)
print(patches.shape) # 如 (108, 1, 512, 512):单图可产出上百个 patch
清洗与标准化要点:不需要格式转换(JPEG/TIFF 全部原生可读);必须做的只有三件事——掩膜 ≥128 二值化(坑点 2)、FOV 屏蔽、FOV 内统计的归一化。不要做全图缩放(坑点 3),不要对掩膜做插值。
全图推理(滑窗拼接 + 重叠区加权融合):
import torch
def predict_full_image(model, img_rgb, fov_bin, patch_size=512, stride=256, device="cuda"):
"""整图推理:滑窗前向 → logits 累加 → 重叠区取均值 → FOV 屏蔽输出。
与训练同分辨率是 HRF 上拿高分的关键(坑点 3)。"""
model.eval()
green = img_rgb[:, :, 1].astype(np.float32) / 255.0
h, w = green.shape
prob_sum = np.zeros((h, w), dtype=np.float32)
weight = np.zeros((h, w), dtype=np.float32)
with torch.no_grad():
for y in range(0, h - patch_size + 1, stride):
for x in range(0, w - patch_size + 1, stride):
win = green[y:y + patch_size, x:x + patch_size]
t = torch.from_numpy(win[None, None]).float().to(device)
p = torch.sigmoid(model(t))[0, 0].cpu().numpy()
prob_sum[y:y + patch_size, x:x + patch_size] += p
weight[y:y + patch_size, x:x + patch_size] += 1.0
prob = prob_sum / np.maximum(weight, 1e-8)
return ((prob >= 0.5) & (fov_bin > 0)).astype(np.uint8) # FOV 外强制为 0
§6.4 PyTorch DataLoader
import torch
from torch.utils.data import Dataset, DataLoader
from pathlib import Path
class HRFPatchDataset(Dataset):
"""滑窗 patch 训练集:Orlando 2017 惯例划分(每组 01-05 训练,06-15 测试)。
data_root 指向 all.zip 解压目录(含 images/ manual1/ mask/)。"""
IMG_TEMPLATES = {"h": "{}_h.jpg", "g": "{}_g.jpg", "dr": "{}_dr.JPG"}
def __init__(self, data_root, train=True, patch_size=512, stride=256, transform=None):
self.root, self.ps, self.stride, self.transform = Path(data_root), patch_size, stride, transform
ids = []
for s in ("h", "g", "dr"):
lo, hi = (1, 5) if train else (6, 15)
ids += [f"{i:02d}_{s}" for i in range(lo, hi + 1)]
self.samples = [] # (image_id, y, x) 三元组
for image_id in ids:
for y in range(0, 2336 - patch_size + 1, stride):
for x in range(0, 3504 - patch_size + 1, stride):
self.samples.append((image_id, y, x))
def _read(self, image_id):
suffix, num = image_id.split("_")
img = np.asarray(Image.open(self.root / "images" / self.IMG_TEMPLATES[suffix].format(num)).convert("RGB"))
mask = np.asarray(Image.open(self.root / "manual1" / f"{image_id}.tif")).squeeze()
fov = np.asarray(Image.open(self.root / "mask" / f"{image_id}_mask.tif").convert("L"))
return img, (mask >= 128).astype(np.uint8), (fov >= 128).astype(np.uint8)
def __len__(self):
return len(self.samples)
def __getitem__(self, idx):
image_id, y, x = self.samples[idx]
img, mask, fov = self._read(image_id)
green = img[y:y + self.ps, x:x + self.ps, 1]
patch = (green.astype(np.float32) / 255.0)[None]
target = (mask[y:y + self.ps, x:x + self.ps] >= 128).astype(np.float32)[None]
if self.transform is not None:
patch, target = self.transform(patch, target) # 增强(见 §6.6)
return torch.from_numpy(patch.copy()).float(), torch.from_numpy(target.copy()).float()
train_set = HRFPatchDataset("/content/hrf", train=True) # 15 图 × 108 patch ≈ 1,620 样本/epoch
train_loader = DataLoader(train_set, batch_size=8, shuffle=True, num_workers=4, pin_memory=True)
xb, yb = next(iter(train_loader))
print(xb.shape, yb.shape) # torch.Size([8, 1, 512, 512]) torch.Size([8, 1, 512, 512])
§6.5 坑点与避坑指南
⚠️ 坑点 1:同一下载页混入 IQA 数据集,"下载 HRF"可能拿到 81 幅图(分类:工程陷阱)
问题:FAU 官方页在分割数据集下方同时托管图像质量评估(IQA)集:18 对同一受试者 good/poor 图像共 36 幅,无血管金标准,引用义务也不同(Köhler et al., CBMS 2013)。两个数据集共用一个页面,盲目全下会污染目录。
症状:目录里出现allQuality.zip/goodQuality.zip/badQuality.zip;做分割统计时图像数对不上 45;论文里被审稿人指出把 IQA 图当成了分割样本。
解决:
- 简单方法:只用
all.zip,不要下同页*Quality.zip系列;解压后核对 images/ 恰为 45 个文件。- 进阶方法:写下载后校验脚本,断言三组各 15 幅、掩膜 45 份、文件名字后缀集合为
{h,g,dr},缺失即报错。- SOTA 方法:改用做过字节级核验的镜像(MedOtter/HRF,76,317,613 B 与官方一致),并在数据卡中记录来源哈希。
参考:HuggingFace MedOtter/HRF Scope 说明;FAU 官方页
⚠️ 坑点 2:血管掩膜并非全部严格二值,FOV 掩膜是三通道(分类:标签理解)
问题:45 幅掩膜中 42 幅严格 {0,255},但
11_h、12_h、13_h因导出路径不同携带抗锯齿灰边(175/215/203 级灰阶,受影响像素 0.007-0.019%);FOV 掩膜文件则是三通道 RGB(R=G=B)。用mask > 0二值化会给那 3 幅凭空增加约 1 像素宽的"血管边缘",让指标产生系统性偏差。
症状:跨图统计血管占比时 3 幅健康图异常偏高;训练/评估使用不同阈值时复现不出论文数字;读取 FOV 时某些库报通道数错误。
解决:
- 简单方法:全部掩膜统一按
>=128阈值二值化;FOV 用convert("L")取单通道。- 进阶方法:加载函数内强制
(mask >= 128).astype(np.uint8) * 255,并在 CI 中加入"每幅掩膜 distinct 值 ≤2"的断言。- SOTA 方法:预处理阶段把整库掩膜一次性规范化重写为干净 {0,255} 并缓存(官方镜像正是这样做的:阈值 ≥128 而非 >0,以保持与另外 42 幅几何一致)。
参考:HuggingFace MedOtter/HRF Mask normalisation 一节
⚠️ 坑点 3:把 3504×2336 缩到 512 训练,细血管整体消失(分类:预处理陷阱)
问题:HRF 的价值在细血管;全图下采样后小于 1-2 像素的毛细血管低于奈奎斯特极限,被双线性插值直接抹平。文献中直接缩放的 U-Net 在 HRF 上敏感性可低至 56.29%(对照同文多尺度方法 84.5%),同时 Accuracy 仍有 95.77%——数字好看,血管残缺。
症状:预测图上只有主干血管,末梢呈"枯枝";Se 远低于 Sp;与论文对不上时首先怀疑分辨率管线不同。
解决:
- 简单方法:滑窗 patch 训练(§6.4),推理时滑窗拼接 + 加权融合重叠区。
- 进阶方法:多分辨率层级训练——粗尺度定位主干、细尺度精修末梢,推理按分辨率金字塔逐级上采样融合。
- SOTA 方法:训练时随机混合尺度(同一 patch 以 0.5-2.0 倍率采样),推理保持原生分辨率;配合拓扑敏感损失(clDice)抑制断枝。
参考:HAL 预印本对照表(U-Net Se 56.29%)
⚠️ 坑点 4:Accuracy 在 HRF 上毫无意义,空白基线就有 90.61%(分类:评估误用)
问题:血管像素仅占全图 5%-11%,全部预测为背景的"空白分割"官方评估表就记录在案:Acc 90.61%。任何只报 Accuracy 的 HRF 结果都无法区分"真的分割好了"和"什么都没做"。
症状:Acc 95%+ 但视觉检查血管大面积缺失;不同论文间 Acc 几乎一样、Se 却相差 20 个百分点。
解决:
- 简单方法:主报 Sensitivity、Specificity、Dice/AUC,Accuracy 只作附注。
- 进阶方法:仅在 FOV 掩膜内计算指标(FOV 外黑色边缘既非血管也非有效背景);类别权重或 focal/Dice 混合损失缓解不平衡。
- SOTA 方法:加报拓扑指标(clDice)与距离指标(HD95/ASSD,如社区榜单对 VFGS-Net 报 HD95 2.21 px、ASSD 0.43 px),小样本下同时报告折间方差。
参考:FAU 官方评估页(空白基线行);Wizwand HRF 榜单
⚠️ 坑点 5:HRF 的血管金标准只有一套,双专家标注的是视盘(分类:标签理解)
问题:不少工作误把 HRF 当成"双观察者数据集"来算观察者间一致性。事实:血管分割只有单套专家共识掩膜;
optic_disk_centers.xls里的专家 A/B 两套标注只覆盖视盘定位(中心、血管起点、直径),且官方页明确表示血管金标准由"专家与临床医生组成的小组"共同生成。Budai 论文中"第二人工标注"指的是它对照的 DRIVE 与 STARE。
症状:论文里出现 “HRF inter-observer Dice”(不存在该数据);把optic_disk_centers.xls当成视盘分割掩膜;把 manual1 内文件误当成多个标注者。
解决:
- 简单方法:需要观察者间一致性时改用 DRIVE(1st/2nd)或 CHASE_DB1(双观察者)。
- 进阶方法:用视盘 A/B 两套坐标计算定位级一致性(中心欧氏距离差、直径差),作为库内唯一可用的标注一致性度量。
- SOTA 方法:做标注不确定性建模时,用"共识掩膜 + 视盘双标注"分别估计像素级与结构级不确定性来源,不得混为一谈。
参考:HuggingFace MedOtter/HRF Ground-truth tier 一节;FAU 官方页
⚠️ 坑点 6:官方无划分,跨论文数字不可直接比较(分类:数据泄漏)
问题:官方页与论文都未定义 train/test 划分;Orlando et al. 2017 的"每组前 5 训练、后 30 测试"只是社区惯例,且不同论文在"训练库构成(是否混入 DRIVE 等)、评估区(FOV 内/全图)、指标定义"上各不相同。把不同来源的榜单数字排成一张表比高低是无效比较。
症状:同一模型引用不同文献性能差 5 个百分点以上;用 30 张测试图反复调参后 Acc 虚高;测试集信息经"选模型"环节泄漏进报告结果。
解决:
- 简单方法:固定采用 Orlando 2017 惯例划分并在文中显式声明;测试集只在终评触碰一次。
- 进阶方法:5 折交叉验证(按编号分层)报告均值±标准差;与官方评估表(方法级、整库口径)分开呈现,不与深度学习榜单混排。
- SOTA 方法:复现 2-3 个基线(U-Net、至少一个拓扑感知模型)在同一管线下重跑,形成同口径对照带,再谈相对提升。
参考:HuggingFace MedOtter/HRF Splits 一节;FAU 官方评估页
⚠️ 坑点 7:单一设备单一协议,跨库与跨设备泛化被系统性高估(分类:偏倚陷阱)
问题:45 幅图全部来自 Canon CR-1、60° FOV、同一采集协议(德国与捷克两个合作点),设备间方差为零;DR 组 15 幅、青光眼组 15 幅的"均衡"是人工构造的,不反映临床分布(DR 在糖尿病人群中约 22.27%)。在 HRF 上练出的"鲁棒性"不能外推为跨设备鲁棒性。
症状:HRF 内部交叉验证很好,换到 Messidor(45° FOV、1440×960 起)或 IDRiD(4288×2848)性能骤降;三组"均衡"让模型对真实患病率产生先验错位。
解决:
- 简单方法:论文中明确声明"单设备、单协议、均衡分组"限制,不声称跨设备泛化。
- 进阶方法:跨库评估统一分辨率策略后报告泛化差(综述口径外部 Dice 下降 8%-10%),并把 HRF 内部分组指标(健康/DR/青光眼)分别呈现。
- SOTA 方法:加入风格迁移/直方图匹配的设备模拟增强,或在多库混合训练中显式做 domain 泛化(如 CORAL/IRM 类目标),再在留出库上验证。
参考:EmergentMind 综述条目(跨库 Dice 下降 8-10%);FAU 官方页
⚠️ 坑点 8:大图内存、大小写扩展名与 TIFF 压缩差异(分类:工程陷阱)
问题:三件工程小事叠加:① 3504×2336 的 float32 张量单幅约 31 MB,全库驻留内存或过深 num_workers 会在小机器上 OOM;② DR 组扩展名是大写
.JPG而其余为.jpg,在大小写敏感文件系统/容器里 glob 不匹配;③ 官方 TIFF 掩膜多数为 PackBits 压缩,3 幅为未压缩导出(对应坑点 2 的灰阶差异),个别旧版读码库对压缩变体支持不全。
症状:Linux 服务器上 DR 组 404;Docker 内数据加载随机失败;num_workers=8时内存翻倍 OOM;用 PIL 读 3 幅灰边掩膜时 distinct 值多于 2。
解决:
- 简单方法:文件发现用"编号×组别"模板拼接(§6.4 的
IMG_TEMPLATES),不做 glob;patch 数据集只按需读图。- 进阶方法:首次运行时把全库规范化缓存为
.npy(uint8 图、uint8 二值掩膜、uint8 FOV),后续 epoch 零解码开销。- SOTA 方法:用 WebDataset/FFCV 打包顺序块,配合 prefetch 与共享内存,训练吞吐稳定且可复现哈希。
参考:HuggingFace MedOtter/HRF(导出路径差异与字节数核验);openmedlab 目录结构
§6.6 数据增强
| 增强方式 | 安全性 | 说明 |
|---|---|---|
| 旋转(小角度) | ✅ 安全 | 相机拍摄角度本就有自由度,血管拓扑不变 |
| 亮度/对比度抖动 | ✅ 安全 | 模拟采集曝光差异;建议仅作用于图像,不动掩膜 |
| 弹性/非线性形变(小幅度) | ⚠️ 谨慎 | 会改变血管迂曲度与分叉角等量化特征,形态学研究慎用 |
| 水平翻转 | ❌ 危险 | 左右眼互为镜像:翻转后血管弓的镜像关系改变,等价于把"右眼分布"喂给"左眼分布",眼底文献普遍将其视为分布外样本 |
| 大角度旋转 + 翻转组合 | ❌ 危险 | 同上,且会破坏 FOV 掩膜与图像的对应边缘 |
| 灰阶反转 | ❌ 危险 | 眼底图像的暗血管/亮背景关系是物理属性,反转会造出域外分布 |
增强实现注意:空间类增强必须对图像、掩膜、FOV 三者施加同一随机参数;亮度类只作用于图像。
import random
def augment_pair(patch, target, p=0.5):
"""训练时成对增强:空间变换同步作用于图像与掩膜;亮度只作用于图像。
注意:不提供水平/垂直翻转——水平翻转破坏左右眼镜像关系(§6.6 表格)。"""
if random.random() < p: # 随机旋转 90/180/270 度
k = random.randint(1, 3)
patch = np.rot90(patch, k).copy()
target = np.rot90(target, k).copy()
if random.random() < p: # 亮度与对比度抖动(仅图像)
alpha = 1.0 + random.uniform(-0.15, 0.15) # 对比度
beta = random.uniform(-0.1, 0.1) # 亮度
patch = np.clip(patch * alpha + beta, 0.0, 1.0)
if random.random() < p * 0.5: # 小幅高斯噪声
patch = np.clip(patch + np.random.randn(*patch.shape) * 0.02, 0.0, 1.0)
return patch, target
§6.7 模型推荐
| 模型 | 适合场景 | 在 HRF 上的参考表现 | 起步建议 |
|---|---|---|---|
| U-Net | 基线复现 | Dice 80.79 / Se 77.13(社区榜单口径) | 必跑的对照线 |
| Attention U-Net / U-Net++ | 结构化改进对照 | 与 U-Net 同量级 | 作为第二、三基线 |
| 迁移学习 + 加权损失 + GroupNorm | 小样本轻量方案 | Acc 96.83 / Se 90.21 / Dice 85.46(arXiv 2012.09250) | 单卡即可复现量级 |
| Serp-Mamba / DSCNet | 拓扑/蛇形卷积路线 | Dice 83.32 / 82.78(社区榜单口径) | 研究拓扑保持时选 |
| VFGS-Net(频率引导状态空间) | 当前榜单头部 | Dice 85.6 / Se 84.35 / Sp 97.26(2026.02 口径) | 追 SOTA 时对照 |
§6.8 硬件需求
| 配置 | 显存 | 适用 |
|---|---|---|
| 入门(patch 512、batch 8) | 8 GB | 全流程可跑通,U-Net 级模型 |
| 标准(patch 512、batch 16 + 多分辨率验证) | 16 GB | 顺畅迭代,含推理滑窗融合 |
| 研究级(多库混合训练 + 拓扑损失) | 24 GB | 跨库泛化与 SOTA 复现 |
| CPU | — | 仅可做数据校验与统计,训练不现实 |
训练时长参考:U-Net 级模型在单张 T4 上约 1-2 小时可完成 15 图 patch 集的常规轮数训练,全部 45 图 5 折交叉验证约一个工作日内可循环完成——这是小体积基准对研究迭代的真实加速。
§6.9 评估指标代码
import numpy as np
def seg_metrics(pred, gt, fov):
"""仅在 FOV 内计算。pred/gt/fov 均为 H×W uint8(0/1)。"""
p, g = (pred > 0) & (fov > 0), (gt > 0) & (fov > 0)
tp, fn = int((p & g).sum()), int((~p & g).sum())
fp, tn = int((p & ~g).sum()), int((~p & ~g).sum())
eps = 1e-8
se = tp / (tp + fn + eps)
sp = tn / (tn + fp + eps)
acc = (tp + tn) / (tp + tn + fp + fn + eps)
dice = 2 * tp / (2 * tp + fp + fn + eps)
return {"Se": se, "Sp": sp, "Acc": acc, "Dice": dice}
def auroc_on_fov(prob, gt, fov):
"""AUC:把全图概率按 FOV 屏蔽后收集,与 gt 做 ROC。prob 为 H×W float。"""
from sklearn.metrics import roc_auc_score
m = (fov > 0)
return roc_auc_score((gt[m] > 0).astype(int), prob[m])
def centerline_dice(pred, gt, iters=20, fov=None):
"""简化 clDice:骨架(腐蚀近似拓扑中心线)召回 + 精度软乘积。
拓扑保持研究建议使用论文级 soft-skeleton 实现;此处为快速评估近似。"""
from scipy.ndimage import binary_erosion
sk_p = pred & ~binary_erosion(pred, iterations=iters)
sk_g = gt & ~binary_erosion(gt, iterations=iters)
if fov is not None:
sk_p, sk_g = sk_p & (fov > 0), sk_g & (fov > 0)
eps = 1e-8
tprec = (sk_p & gt).sum() / (sk_p.sum() + eps)
tsens = (sk_g & pred).sum() / (sk_g.sum() + eps)
return 2 * tprec * tsens / (tprec + tsens + eps)
# 提示:小样本(30 张测试图)下请再报 5 折均值±标准差,见坑点 6。
指标解读对照:
| 指标 | 健康值域参考 | 解读要点 |
|---|---|---|
| Sensitivity | 74%-91%(官方口径下限 70.99%) | 细血管召回的第一指标;低 Se 先查分辨率管线(坑点 3) |
| Specificity | 96%-98% | 低于 96% 说明误报失控,常见于 FOV 未屏蔽 |
| Dice | 71%-86%(Orlando 71.58 → VFGS-Net 85.6) | 类别不平衡下比 Acc 可信 |
| Acc | 90.61%(空白基线)-97% | 仅作附注,禁止作为主指标(坑点 4) |
| clDice | 与 Dice 差值越大拓扑断裂越重 | 血管连通性研究必报 |
§6.10 MLOps 笔记
| 环节 | 做法 | 原因 |
|---|---|---|
| 数据版本 | 以 all.zip 字节数(76,317,613 B)+ SHA-256 作为数据指纹写入实验配置 |
官方页无版本号体系,指纹即版本 |
| 划分即代码 | Orlando 2017 惯例划分写进配置文件而非散落在 notebook | 防止跨实验漂移(§5.2) |
| 掩膜规范化固化 | ≥128 二值化放在数据准备阶段一次性完成并缓存 | 训练代码里不再出现阈值(坑点 2) |
| 评估口径单源化 | 指标计算只允许 import 一处实现,FOV 屏蔽不可选配 | 坑点 4/6 的口径统一 |
| 可复现性 | 记录 torch/numpy 种子、cv2 版本(CLAHE 实现相关)与 Pillow 版本(TIFF 解码相关) | 掩膜解码与增强在不同版本间可能有差异 |
| 实验追踪 | 每次运行记录:数据指纹、划分函数版本、模型哈希、指标 JSON | 30 张测试图的方差必须可追溯 |
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 规模偏倚 | 45 幅、每类 15 幅,统计功效极低;任何 ±1 幅的波动都会改变百分比结论 | 高 | 5 折交叉验证报告方差;结论表述避免绝对化 |
| 设备单一性 | 全部图像来自 Canon CR-1、60° FOV、同一协议 | 高 | 明示限制;跨库评估时统一分辨率策略 |
| 人群代表性不明 | 年龄、性别、种族均未公布;来源限于德国/捷克合作诊所 | 中 | 以"欧洲中部单一地区"为默认假设,避免外推 |
| 时间冻结 | 2010-2011 年采集,之后无新增 | 中 | 作为历史基准使用,勿代表当前设备谱系 |
| 人工均衡分组 | 15/15/15 是构造分布,不反映临床患病率(DR 在糖尿病人群约 22.27%) | 中 | 做分类类实验时重加权或重采样 |
| 病理组形态偏倚 | DR 出血/渗出遮挡血管、青光眼视盘形态改变,两组血管可分割性天然不同 | 中 | 按子集分别报告指标(官方评估表即此口径) |
| 标注共识偏倚 | 单套共识掩膜无法区分"标准答案"与"某一派的标注风格" | 中 | 与 DRIVE 双标注结果交叉核对模型行为 |
§7.2 标注质量
血管金标准由领域专家与临床眼科医生共同生成(官方口径),毛细血管末梢的标注密度高于多数同类库的粗标注风格,但官方未公布标注协议细则(单/多轮审核、分歧仲裁机制)。三幅掩膜(11_h、12_h、13_h)存在导出级灰阶瑕疵(§6.5 坑点 2),属于工程瑕疵而非标注错误。总体判断:像素级质量在四大血管库中属第一梯队,元信息完备度低于 DRIVE(后者有双标注与标准竞赛协议)。
| 质量维度 | HRF 状态 | 对比库参照 |
|---|---|---|
| 像素级标注质量 | 专家+临床共识,末梢血管覆盖好 | DRIVE/STARE 为单观察者逐像素,风格相近 |
| 观察者间一致性 | 不可评估(单套掩膜) | DRIVE 1st/2nd 掩膜可算 kappa/Dice |
| 标注协议公开度 | 无书面协议文档 | IDRiD 有竞赛级标注说明 |
| 工程规范性 | 3 幅掩膜灰阶瑕疵(可修复) | 各库均有历史遗留格式差异 |
| 元数据完备度 | 分组、设备、分辨率齐全;人口学缺失 | DRIVE 基本同级 |
§7.3 泛化性
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 同库(HRF 30 张测试图) | 过拟合测试集后指标虚高 | 测试集极小,任何调参都会泄漏进结果(§6.5 坑点 6) |
| 低分辨率筛查图(如 1440×960 起的 Messidor) | 高分辨率训练的模型在小图上尺度失配 | 分辨率差 3 倍以上,滑窗/缩放策略必须重设计 |
| 跨设备(其他厂商相机、色彩响应不同) | 色彩与对比度分布移位 | HRF 单设备,无法在库内度量该风险 |
| 视场角差异(60° → 45°) | FOV 边缘结构不同,边缘区域误报 | FOV 掩膜必须按目标库重新应用 |
| 病理谱变化(重度 DR、晚期青光眼) | 血管形态严重异常,细血管淹没于病变中 | 官方评估表已显示 DR 组 Se 低于健康组约 4 个百分点 |
§7.4 伦理
数据以匿名形式公开发布,不含姓名、ID 或采集日期;官方页未附独立伦理批件编号,来源为合作眼科诊所的常规检查性成像(Eye Clinic Zlín 提供测试图像并获官方致谢)。眼底照属于可识别生物特征范畴:即使官方已完成匿名化,使用者在做图像再分发或与人脸/虹膜库联合分析时,应自行评估再识别风险并取得所在机构伦理意见。
| 使用行为 | 合规判断 |
|---|---|
| 学术研究、算法评测、论文发表(署名引用) | ✅ 符合公开数据库的预期用途 |
| 将 HRF 图像二次打包分发 | ⚠️ 谨慎:建议回链官方页并附原引用,不做降质重编码 |
| 训练可商用产品模型 | ⚠️ 官方页无显式许可文本,先取得机构法务/伦理意见 |
| 与可识别人群数据联合分析、尝试再识别 | ❌ 禁止:违反医疗数据基本伦理 |
§7.5 公平性
库内未公布人口学变量,无法做 subgroup 性能审计。已知风险链:视网膜色素上皮色素水平影响血管-背景对比度,深色视网膜人群的血管分割在不同模型上表现差异已有文献报道;HRF 来自欧洲中部人群,跨肤色人群部署前必须在外部库上重新验证。三组"均衡"只均衡了诊断分组,未均衡任何人口学维度。
§7.6 数据漂移
HRF 是冻结的静态基准(2013 年定稿后无内容更新),本身不漂移;漂移发生在"你的生产数据 → HRF"方向:近年相机分辨率已普遍超过 3504×2336、自动曝光与融合算法改变色彩风格、超广角成像(200° 级)改变视野结构。以 HRF 为唯一参照的管线在面对这些新分布时没有库内信号可以预警,建议在生产端持续监控 FOV 内血管占比与背景亮度分布两个统计量。
| 漂移源 | 方向 | 监控信号 |
|---|---|---|
| 相机换代(分辨率上升) | 生产数据 → 高于 HRF 分布 | 输入图像尺寸分布;细血管召回率 |
| 色彩风格(白平衡/融合算法) | 色域偏移 | 绿色通道直方图漂移指标(如 PSI) |
| 视场角变化(超广角) | 视野结构改变 | FOV 占比统计、周边伪影率 |
| 疾病谱(人群/地区) | 病理形态分布变化 | 分组后验分布、Se 分组落差 |
§7.7 DAIMS 数据集评估
下表按 DAIMS 检查表逐项评估 HRF 的数据治理质量。评估基线:官方页公开信息、镜像考证与本页 §3-§6 的核查结论(截至 2026-09)。
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 图像/掩膜/视盘 XLS 三方按 image_id 严格配对,结构扁平无歧义 |
| 2 | 唯一标识 | ✅ | 编号_组别 主键全局唯一,三套文件可确定性互查 |
| 3 | 特殊字符 | ✅ | 文件名仅含字母数字与下划线(注意 DR 组大写 .JPG) |
| 4 | 重复行 | ✅ | 无重复图像或重复标注 |
| 5 | 缺失编码 | ✅ | 无哨兵值缺失;缺失均为文件级缺省并已在官方页说明 |
| 6 | 标签标识 | ✅ | 文件名后缀 h/g/dr 即分组标签,可解析 |
| 7 | 罕见类分组 | ⚠️ | 每类仅 15 幅,任何子组分析(如按病变程度)都不可行 |
| 8 | 偏倚评估 | ⚠️ | 官方无偏倚声明,需使用者自行完成(§7.1) |
| 9 | 数据字典 | ⚠️ | 无官方 data dictionary 文档;字段语义靠页面文字与社区考证 |
| 10 | 信息性缺失解释 | ✅ | 未提供黄斑/动静脉标注属"明确缺省",无隐性缺失语义 |
| 11 | 设备记录 | ✅ | 相机型号、视场角、分辨率均有官方记载 |
| 12 | 共线性 | ✅ | 单模态图像库,无特征共线性问题 |
| 13 | 编码映射 | ✅ | 分组可映射 ICD-11/SNOMED CT(§2.1、§2.1b) |
| 14 | 时间戳处理 | ✅ | 静态图像,无时间序列语义;采集期 2010-2011 |
| 15 | 划分建议 | ⚠️ | 无官方划分,社区惯例需自行声明与固化 |
| 16 | 泄漏讨论 | ⚠️ | 官方无泄漏讨论;本页 §5.3/§6.5 已补充 |
| 17 | 标签分布 | ✅ | 15/15/15 均衡;像素级血管占比 0.051-0.106 有统计 |
| 18 | 测量偏倚 | ⚠️ | 单设备单协议,测量方差无法从库内估计 |
| 19 | 外部验证建议 | ✅ | 与四大血管库无重叠,跨库验证语义干净(§5.5) |
| 20 | 版本记录 | ⚠️ | 官方提供早期版本存档页,但无正式版本号与变更日志 |
| 21 | 预处理脚本 | ❌ | 官方未发布任何官方预处理/加载脚本 |
| 22 | 合规要求 | ⚠️ | 官方页未附显式许可文本,引用义务靠学术惯例与镜像标注 |
| 23 | 多模态对齐 | ✅ | 单模态库,无跨模态对齐需求 |
| 24 | 去标识化 | ✅ | 匿名发布,无 PHI;官方口径为公开数据库 |
DAIMS 评分:19.5 / 24
评分解读:19.5 分说明 HRF 在"数据本体工程质量"维度接近满分——标识、配对、设备记录、去标识化全部到位;失分集中在"元治理":无官方数据字典、无预处理脚本、无显式许可文本、无官方划分。这类库的特征是:数据拿来就能训练,但把实验写成可审计报告所需的元信息要自己补齐。
对你意味着什么:① 直接用官方 all.zip,别碰来源不明的镜像(保护第 1-4 项的满分状态);② 把 §6.4 的 Dataset 与 §6.9 的指标代码纳入版本库,等于自己补上第 21 项缺失的官方脚本;③ 在论文的数据声明里写明"无官方划分,采用 Orlando 2017 惯例 + 5 折交叉验证",同时覆盖第 15/16 项;④ 引用义务(Budai 2013)写进发布物模板,弥补第 22 项的许可文本缺位。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| DRIVE(跨库测试) | 荷兰多中心筛查项目 | 血管分割 | 跨库部署中外部测试 Dice 相对内部下降约 8-10 个百分点(LUNet 等同行评审工作汇总口径) | 内部 Dice 约 0.83-0.86 → 外部同幅下降 | 分辨率与采集协议差异是主导因素 |
| CHASE_DB1(跨库测试) | 英国儿童心脏健康研究 | 血管分割 | 同上综述口径的外部下降区间 | 儿童血管更细,敏感性下降更明显 | 人群年龄结构变化显著影响细血管召回 |
| HRF 内部疾病子集(对照行) | FAU/合作诊所 | 血管分割 | 经典匹配滤波法:健康组 Se 78.61%、DR 组 Se 74.63%、青光眼组 Se 79.00% | DR 组较健康组低约 3.98 个百分点 | 病理形态(出血/渗出)对敏感性的抑制可量化 |
矩阵说明:仅收录有同行评审或官方页支撑的条目;社区榜单数字(如 VFGS-Net Dice 85.6)因划分与口径不一未纳入本矩阵,见 §8.1。
§8 基准性能与生态
§8.1 排行榜
官方评估表(FAU 维护,方法级、整库口径,2011-06-14 记录;计算时间为非优化实现的粗略近似):
| 排名 | 模型 | Se / Sp / Acc(按子集) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| — | Odstrcilik et al. 健康组 | 78.61%±3.92 / 97.50%±0.65 / 95.39%±0.61 | 2011 | 改进匹配滤波 | Odstrcilik et al., 2013, IET Image Processing 7(4):373-383. DOI 10.1049/iet-ipr.2012.0455 | 官方页评估 applet |
| — | Odstrcilik et al. DR 组 | 74.63%±5.66 / 96.19%±0.77 / 94.45%±0.84 | 2011 | 同上 | 同上 | 同上 |
| — | Odstrcilik et al. 青光眼组 | 79.00%±3.18 / 96.38%±0.69 / 94.97%±0.61 | 2011 | 同上 | 同上 | 同上 |
| — | Budai et al.(预备库) | 70.99%±4.00 / 97.45%±0.44 / 94.81%±0.60 | 2010 | 多尺度 vesselness + 滞后阈值 | Budai et al., 2013, Int. J. Biomedical Imaging 2013:154860. DOI 10.1155/2013/154860 | 无 |
| — | 空白基线(全背景) | 0.00 / 90.61%±0.93 / 90.61%±0.93 | 2010 | — | 官方评估表 | — |
社区深度学习榜单(Wizwand HRF 榜单,截至 2026-09):
| 排名 | 模型 | Dice | Se | Sp | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|---|
| 1 | VFGS-Net | 85.6 | 84.35 | 97.26 | 2026 | 频率引导状态空间学习 | VFGS-Net: Frequency-Guided State-Space Learning for Topology-Preserving Retinal Vessel Segmentation, 2026(榜单条目) | 榜单提供论文链接 |
| 2 | Serp-Mamba | 83.32 | 84.17 | 97.17 | 2026 | 蛇形 Mamba 扫描 | 榜单条目(2026.02) | 同上 |
| 3 | DSCNet | 82.78 | 80.46 | 97.00 | 2026 | 动态蛇形卷积 | 榜单条目(2026.02) | 同上 |
| 4 | U-Net | 80.79 | 77.13 | 97.05 | 2026 | 编解码卷积基线 | 榜单条目(2026.02) | 广泛开源 |
| 5 | VM-UNet | 79.71 | 81.22 | 98.23 | 2026 | Vision Mamba U-Net | 榜单条目(2026.02) | 同上 |
数值不可直接比较的原因:官方评估表是方法级整库口径(2011 年记录),社区榜单按各自训练划分(多为 Orlando 2017 惯例或自定义)、各自 FOV 处理与指标实现汇总,两者之间、榜单行与行之间的数字都不构成受控比较;同一模型在不同论文中的复现值可差 3-5 个百分点。引用时必须注明数字来源页与检索日期。
§8.2 SOTA 总结与选型建议
HRF 上的格局与 DRIVE 类似但分辨率惩罚更重:卷积基线(U-Net 系)Dice 约 79-81;拓扑/几何感知结构(蛇形卷积、Mamba 扫描)2-3 个点增益;当前头部(VFGS-Net,Dice 85.6)靠频率-状态空间混合建模。对小样本研究者的建议:把 U-Net 与至少一个拓扑感知模型作为同一管线下的对照带,优先提升 Se(细血管召回),而不是在 30 张测试图上追逐小数点。
| 你的目标 | 推荐路线 | 理由 |
|---|---|---|
| 发基准论文(保底可信) | U-Net + 1 个拓扑模型同管线对照 | 同口径对照带比绝对数字更有说服力 |
| 追榜单头部 | 复现 VFGS-Net 类频率/状态空间结构 | 2026.02 头部,Dice 85.6 |
| 工程轻量化部署 | 迁移学习 + 加权损失路线(arXiv 2012.09250) | 单卡可复现,Se 90.21 量级 |
| 临床鲁棒性报告 | 按三疾病子集分列指标 | 直接回应 §7.8 的病理惩罚问题 |
§8.3 评测协议
| 要素 | 规范 |
|---|---|
| 划分 | 声明采用 Orlando 2017 惯例(每组 01-05 训练、06-15 测试)或 5 折交叉验证;不声明划分的 HRF 结果视为不可比 |
| 评估区 | 仅 FOV 掩膜内像素参与指标计算 |
| 指标 | Se、Sp、Dice/AUC 为主,Acc 仅作附注(空白基线 90.61%);拓扑研究加报 clDice/HD95 |
| 方差 | 报告折间均值±标准差或 bootstrap 置信区间 |
| 掩膜规范化 | 全库 ≥128 二值化并写入方法节 |
| 复现基线 | 至少同管线复现 U-Net 一个基线,形成同口径对照 |
§8.4 相关数据集
| 数据集 | 规模/分辨率 | 官方入口 | 关系 |
|---|---|---|---|
| DRIVE | 40 幅 / 565×584 | drive.grand-challenge.org | 双观察者金标准的低分辨率对照库 |
| STARE | 20 幅常用 / 700×605 | cecas.clemson.edu/~ahoover/stare | 重病理对照库 |
| CHASE_DB1 | 28 幅 / 1280×960 | blogs.kingston.ac.uk/retinal/chasedb1 | 儿童人群对照库 |
| IDRiD | 516 幅 / 4288×2848 | idrid.grand-challenge.org | 高分辨率、多任务(病灶+血管+视盘) |
| FIVES | 800 幅 / 2048×2048 | 果子实验室发布页 | 规模最大的高分辨率血管库(AI 辅助标注管线) |
| HRF-IQA 集 | 18 对 / Canon CR-1 45° | FAU 同页 allQuality.zip | 同页独立数据集(质量评估,无血管 GT) |
§8.5 关键论文
- Budai A, Bock R, Maier A, Hornegger J, Michelson G. Robust Vessel Segmentation in Fundus Images. International Journal of Biomedical Imaging, 2013:154860. DOI 10.1155/2013/154860 — 数据库的定稿方法论文,官方评估口径的出处。
- Odstrcilik J, Kolar R, Budai A, Hornegger J, Jan J, Gazarek J, Kubena T, Cernosek P, Svoboda O, Angelopoulou E. Retinal vessel segmentation by improved matched filtering: evaluation on a new high-resolution fundus image database. IET Image Processing, 7(4):373-383, 2013. DOI 10.1049/iet-ipr.2012.0455 — 伴生方法论文,官方评估表数字来源。
- Budai A, Odstrcilik M, Kolar R, Jan J, Kubena T, Michelson G. A Public Database for the Evaluation of Fundus Image Segmentation Algorithms. ARVO Annual Meeting Poster, Fort Lauderdale, 2011 — 数据库首次公开的原始公告。
- Köhler T, Budai A, Kraus M, Odstrcilik J, Michelson G, Hornegger J. Automatic No-Reference Quality Assessment for Retinal Fundus Images Using Vessel Segmentation. CBMS 2013, Porto — 同页 IQA 集(18 对 good/poor)的引用义务论文。
- Orlando JI, Prokofyeva E, Blaschko MB. A Discriminatively Trained Fully Connected Conditional Random Field Model for Blood Vessel Segmentation in Fundus Images. IEEE Transactions on Biomedical Engineering, 64(1):16-27, 2017 — 社区惯例划分(每组前 5 训练)的来源。
- Fhima J, et al. LUNet 及后续跨库泛化研究,2023 — 外部测试 Dice 下降 8-10 个百分点的代表性证据链(综述条目转录)。
- VFGS-Net: Frequency-Guided State-Space Learning for Topology-Preserving Retinal Vessel Segmentation, 2026 — 当前社区榜单头部方法。
- 系统综述:A Systematic Review on Diabetic Retinopathy Detection Using Deep Learning Techniques. Artificial Intelligence Review, 2022. DOI 10.1007/s11831-022-09862-0 — 把 HRF 置于 20+ 眼底库谱系中定位。
§8.6 社区活跃度
主论文 582+ 次引用(Semantic Scholar,截至 2026-09),与 DRIVE、STARE、CHASE_DB1 并列的四大血管库之一;官方页自 2011 年起维护评估表与评估 applet(布尔诺 VUTBR 托管);HuggingFace 忠实镜像与 Kaggle 合集持续再分发,社区榜单(Wizwand 等)截至 2026-09 仍在收录 2026 年新方法。小型库的典型活跃形态:引用长尾稳定、新方法持续拿它当高分辨率压力测试场。
| 活跃度指标 | 状态 | 截至 |
|---|---|---|
| 学术引用(Semantic Scholar) | 582+ | 2026-09 |
| 官方评估表更新 | 最后记录为 2011-06 方法级结果 | 冻结维护 |
| HuggingFace 忠实镜像 | 45 行、76.6 MB,含考证卡 | 2026-09 检索 |
| 社区榜单收录 | 2026.02 新方法(VFGS-Net 等)持续进入 | 2026-09 |
| 官方在线评估 applet | 可访问(VUTBR 托管) | 2026-09 检索 |
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/规模 截至 2026-09 | 推荐理由 |
|---|---|---|---|---|
| FAU 官方页 + all.zip | 数据与评估表 | www5.cs.fau.de/research/data/fundus-images/ | 官方唯一权威源 | 一手数据与官方评估口径 |
| MedOtter/HRF(HuggingFace) | 忠实镜像 + 考证卡 | huggingface.co/datasets/MedOtter/HRF | 76.6 MB,45 行 | 字节级核验、掩膜规范化、坑点考证最完整 |
| Kaggle 五库合集 | 合集 | kaggle.com/datasets/umairinayat/retinal-vessel-segmentation-datasets | 约 1.98 GB | 一站取齐五大血管库(注意为第三方打包) |
| VUTBR 在线评估 applet | 评估服务 | projects.ubmi.feec.vutbr.cz/ophthalmo/vessel/ | 官方页链接 | 上传分割结果自动对官方口径计分 |
| Wizwand HRF 榜单 | 排行榜 | wizwand.com(HRF 条目页) | 截至 2026-09 收录 2026.02 结果 | 追踪新方法与拓扑指标 |
| openmedlab/Awesome-Medical-Dataset | 目录条目 | github.com/openmedlab/Awesome-Medical-Dataset | — | 中文圈流通的目录结构与统计口径 |
§9 相关资源与引用
§9.1 官方资源
| 资源 | 说明 |
|---|---|
| 官方主页 | 数据介绍、分包下载、评估表、致谢与资助信息 |
| 官方评估/详情页(FAU informatik) | 评估表完整版、维护人信息、参考文献列表 |
| 早期版本存档 | 数据库早期阶段文件(复现 2010-2011 初步结果时使用) |
| 主论文全文(Hindawi 开放获取) | Budai et al. 2013 全文 |
| 在线评估 applet | 上传分割结果按官方口径计分 |
| HuggingFace 忠实镜像 | 字节级核验 + 掩膜规范化 + 详细考证卡 |
| Kaggle 五库合集 | DRIVE/STARE/CHASE/HRF/FIVES 一站获取(第三方打包) |
| openmedlab HRF 条目 | 中文社区流通的目录结构与统计口径 |
| Wizwand HRF 榜单 | 社区深度学习结果追踪(截至 2026-09) |
§9.2 BibTeX 引用
使用 HRF 的出版物必须引用主论文;使用同页 IQA 集须加引 Köhler et al. 2013:
@article{budai2013robust,
title = {Robust Vessel Segmentation in Fundus Images},
author = {Budai, Attila and Bock, R{\"u}diger and Maier, Andreas and Hornegger, Joachim and Michelson, Georg},
journal = {International Journal of Biomedical Imaging},
volume = {2013},
pages = {154860},
year = {2013},
doi = {10.1155/2013/154860},
publisher = {Hindawi}
}
@article{odstrcilik2013retinal,
title = {Retinal vessel segmentation by improved matched filtering: evaluation on a new high-resolution fundus image database},
author = {Odstrcilik, Jan and Kolar, Radim and Budai, Attila and Hornegger, Joachim and Jan, Jiri and Gazarek, Jiri and Kubena, Tomas and Cernosek, Pavel and Svoboda, Ondrej and Angelopoulou, Elli},
journal = {IET Image Processing},
volume = {7},
number = {4},
pages = {373--383},
year = {2013},
doi = {10.1049/iet-ipr.2012.0455}
}
@inproceedings{kohler2013automatic,
title = {Automatic No-Reference Quality Assessment for Retinal Fundus Images Using Vessel Segmentation},
author = {K{\"o}hler, Thomas and Budai, Attila and Kraus, Martin and Odstrcilik, Jan and Michelson, Georg and Hornegger, Joachim},
booktitle = {26th IEEE International Symposium on Computer-Based Medical Systems (CBMS)},
year = {2013},
address = {Porto}
}
@article{orlando2017discriminatively,
title = {A Discriminatively Trained Fully Connected Conditional Random Field Model for Blood Vessel Segmentation in Fundus Images},
author = {Orlando, Jos{\'e} Ignacio and Prokofyeva, Elena and Blaschko, Matthew B.},
journal = {IEEE Transactions on Biomedical Engineering},
volume = {64},
number = {1},
pages = {16--27},
year = {2017}
}
§9.3 引用指南
- 数据集本体 →
budai2013robust(必引);报告匹配滤波基线对照 → 加odstrcilik2013retinal。 - 采用社区划分 → 加
orlando2017discriminatively并在方法节声明"非官方划分"。 - 使用同页 IQA 集 → 加
kohler2013automatic,且不得与分割集混装统计。 - 引用第三方镜像时,正文仍须回引官方页与主论文;镜像仅作为获取渠道注明。
- 报告基准数字时同步注明:划分来源(官方无划分)、评估区(FOV 内)、掩膜二值化阈值(≥128)与检索日期,四要素齐备的数字才具备可比性。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 |
|---|---|
| 大语言模型(写作 agent) | 文献检索与事实汇总、章节起草、代码示例编写、表格整理 |
§10.2 AI 参与范围
AI 负责检索来源、提取硬事实、起草全文与代码示例;章节结构、医学编码映射(ICD-11/SNOMED CT)、DAIMS 评级、坑点筛选、外部验证矩阵与最终发布均经千方病案医学编辑部人工审核(见 §10.4)。数据集本体未经任何 AI 修改;所有基准数字均转录自标注来源,未经外推。检索与写作过程中的原始事实清单存档于同目录 FACTS.md,逐条标注来源 URL,供审核与后续修订回溯。
§10.3 输入来源列表
- FAU Pattern Recognition Lab. High-Resolution Fundus (HRF) Image Database. 官方主页. https://www5.cs.fau.de/research/data/fundus-images/
- FAU Pattern Recognition Lab. High-Resolution Fundus (HRF) Image Database(评估表与致谢详情). https://www5.informatik.uni-erlangen.de/indexbbb3.html?L=&id=1531
- Budai A, Bock R, Maier A, Hornegger J, Michelson G. Robust Vessel Segmentation in Fundus Images. International Journal of Biomedical Imaging, 2013:154860. DOI 10.1155/2013/154860
- Odstrcilik J, et al. Retinal vessel segmentation by improved matched filtering. IET Image Processing, 7(4):373-383, 2013. DOI 10.1049/iet-ipr.2012.0455
- Budai A, Odstrcilik M, Kolar R, Jan J, Kubena T, Michelson G. A Public Database for the Evaluation of Fundus Image Segmentation Algorithms. ARVO Annual Meeting Poster, Fort Lauderdale, 2011
- Köhler T, Budai A, Kraus M, Odstrcilik J, Michelson G, Hornegger J. Automatic No-Reference Quality Assessment for Retinal Fundus Images Using Vessel Segmentation. CBMS 2013, Porto
- MedOtter/HRF — High-Resolution Fundus Image Database. HuggingFace 忠实镜像与考证卡. https://huggingface.co/datasets/MedOtter/HRF
- openmedlab. Awesome-Medical-Dataset — HRF 条目. https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/HRF.md
- Vendramin L, et al. Network-based features for retinal fundus vessel structure analysis.(HRF 规格引述). PMC6658152
- PLOS ONE 期刊论文(HRF 规格引述:Canon CR-1、60°、3504×2336). DOI 10.1371/journal.pone.0220132
- Teo ZL, Tham YC, Yu M, et al. Global Prevalence of Diabetic Retinopathy and Projection of Burden through 2045. Ophthalmology, 2021. PMID 33940045. DOI 10.1016/j.ophtha.2021.04.027
- Global trends in diabetic eye disease research from 2012 to 2021. PMC11034595
- Orlando JI, Prokofyeva E, Blaschko MB. IEEE Transactions on Biomedical Engineering, 64(1):16-27, 2017(社区惯例划分来源)
- Wizwand. Retinal Vessel Segmentation on HRF 榜单. https://www.wizwand.com/sota/retinal-vessel-segmentation-on-hrf-dice-se-sp-hd95-assd(截至 2026-09)
- Retinal blood vessel segmentation from high resolution fundus image using deep learning architecture. HAL 预印本 hal-04813363(U-Net Se 56.29% 对照)
- Transfer Learning Through Weighted Loss Function and Group Normalization for Vessel Segmentation from Retinal Images. arXiv 2012.09250
- EmergentMind. High-Fidelity Retinal Vessel Segmentation 综述条目(跨库 Dice 下降 8-10% 口径)
- Find-A-Code. ICD-11 MMS:Glaucoma 9C61 与 9B71.0 Diabetic retinopathy 编码页
- Kaggle. Retinal Vessel Segmentation Datasets Collection(umairinayat). https://www.kaggle.com/datasets/umairinayat/retinal-vessel-segmentation-datasets
- Systematic review on diabetic retinopathy detection using deep learning. Artificial Intelligence Review, 2022. DOI 10.1007/s11831-022-09862-0
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2.1/§2.1b ICD-11 与 SNOMED CT 映射 | 千方病案医学编辑部 | 对照 WHO ICD-11 编码页与已上线条目编码逐项核对 | ✅ 已通过 |
| §2.2-§2.3 疾病定义与流行病学 | 千方病案医学编辑部 | 对照 PubMed 33940045 与 PMC11034595 原文复核数字 | ✅ 已通过 |
| §3/§4 规格、目录树与字段字典 | 千方病案医学编辑部数据工程组 | 与官方页、镜像考证卡逐项对照 | ✅ 已通过 |
| §6 代码示例 | 千方病案医学编辑部数据工程组 | 逐行审读,与正文坑点结论一致性检查 | ✅ 已通过 |
| §6.5 坑点 8 项 | 千方病案医学编辑部数据工程组 | 逐条核对来源(官方页/镜像/论文) | ✅ 已通过 |
| §7.7 DAIMS 24 项评分 | 千方病案医学编辑部 | 逐项对照检查表复核评分 | ✅ 已通过 |
| §8 基准数字与引用 | 千方病案医学编辑部 | 转录核对官方评估表与社区榜单原始页 | ✅ 已通过 |
| §0/§10 声明与免责文本 | 千方病案医学编辑部 | 编辑部固定模板原文引用 | ✅ 已通过 |
§10.5 AI 生成章节标注
本页全部章节由 AI 辅助起草;其中 §2.1/§2.1b(术语编码映射)、§6.5(坑点)、§7.7(DAIMS 评分)为 AI 起草后经人工逐项复核修订的内容;§0 免责声明为编辑部固定模板,人工原文引用。校验口径:AI 起草文本中凡未能建立来源对应关系的事实性陈述,一律在审核环节删除;代码示例经人工逐行审读,确保与正文坑点结论一致。
§10.6 最后人工审核
最后人工审核日期:2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
