信息速览
INFOBOX
| 数据集名称 | Fitzpatrick 17k |
| 英文全称 | Evaluating Deep Neural Networks Trained on Clinical Images in Dermatology with the Fitzpatrick 17k Dataset |
| 别名 / 简称 | Fitzpatrick17k、F17k、Fitzpatrick 17k |
| 疾病分类 | 皮肤科多疾病覆盖。核心映射:2C30 皮肤黑色素瘤 / 2C31 皮肤鳞状细胞癌 / 2C32 皮肤基底细胞癌 / EA80 银屑病 / EB00 特应性皮炎 / EB10 接触性皮炎 / EK70 痤疮 / 2B10 色素痣(良性)等 114 种 |
| SNOMED CT | 91935009 Melanoma / 254838004 Basal cell carcinoma / 76558009 Squamous cell carcinoma / 9014002 Psoriasis / 40275004 Acne / 201008003 Atopic dermatitis 等映射(详见 §2.2) |
| 数据模态 | 影像(临床皮肤病照片,2D RGB,非皮肤镜) |
| AI 任务类型 | 图像多分类(114 类)、公平性评估(跨肤色)、肤色估计、颜色不变表示学习 |
| 样本总数 | 16,577 张临床皮肤病照片(原始版)/ 11,394 张(清理版 Fitzpatrick17k-C) |
| 数据大小 | ~3 GB(原始图像 + CSV 标注) |
| 数据格式 | JPG(图像)/ CSV(标注元数据) |
| 许可证 | CC BY-NC-SA 3.0(Creative Commons Attribution-NonCommercial-ShareAlike 3.0) |
| 访问级别 | 开放(GitHub 公开标注 CSV;图像需从原始图集下载或填表索取) |
| DUO 标签 | NPUNCU |
| 语言 | 英文(标签与元数据) |
| 首发日期 | 2021-04-20(arXiv 预印本)/ 2021-06(CVPR 2021 ISIC Workshop 正式发表) |
| 最后更新 | 2022-07(Groh et al. CSCW 标注透明性论文)/ 2024-05(Abhishek et al. 清理版 Fitzpatrick17k-C) |
| 发布机构 | MIT Media Lab(麻省理工学院媒体实验室,Matthew Groh 团队) |
| 官方主页 | https://github.com/mattgroh/fitzpatrick17k |
| 下载地址 | https://github.com/mattgroh/fitzpatrick17k(标注 CSV)/ https://derm.cs.sfu.ca/critique/(清理版) |
| DOI | arXiv:2104.09957(原始论文)/ 10.5281/zenodo.11101337(清理版) |
| 引用次数 | 850+(Google Scholar,截至 2026-08) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 首个大规模跨肤色公平性标注、社区广泛采用、清理版提供标准化划分;扣分项:原始标签为非专家标注、3.4% 误标率、原始划分无独立测试集、深色皮肤严重不足 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 映射、临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-08-04
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Fitzpatrick 17k 采用 CC BY-NC-SA 3.0 许可证,禁止商业用途。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览(Overview)
§1.0 📌 30 秒速览(Executive Summary)
Fitzpatrick 17k 是麻省理工学院媒体实验室(MIT Media Lab)于 2021 年发布的皮肤病影像数据集,包含 16,577 张临床皮肤病照片,覆盖 114 种皮肤状况,每张图像均标注了 Fitzpatrick 皮肤类型(I-VI)。图像来自 DermaAmin 和 Atlas Dermatologico 两个公开在线皮肤病学图集。
它的独一无二之处在于:这是首个大规模为皮肤病 AI 公平性评估而构建的数据集。在此之前,几乎所有公开皮肤影像数据集都不包含肤色标签,导致模型在深色皮肤上的表现成了"黑箱"。Fitzpatrick 17k 的发布首次以数据驱动的方式系统揭示了深度学习模型在深色皮肤(Type V-VI)上诊断准确率显著偏低的系统性偏差,直接推动了皮肤病 AI 公平性研究成为一个独立方向。原始论文获 CVPR ISIC Workshop 荣誉提名,引用超 850 次。
你可以用它来:评估皮肤病 AI 模型在不同肤色上的公平性表现、研究颜色不变特征表示学习方法、或者开发基于重加权或对抗去偏的公平性训练策略。
§1.1 摘要
Fitzpatrick 17k 由 Matthew Groh 等人在 MIT Media Lab 创建,从两个公开在线皮肤病学图集(DermaAmin 12,672 张 + Atlas Dermatologico 3,905 张)中收集 16,577 张临床皮肤病照片,经 22 类排除后保留 114 种皮肤状况(每种至少 53 张、最多 653 张图像)。图像的诊断标签继承自图集元数据,Fitzpatrick 皮肤类型标签由 Scale AI 和 Centaur Labs 两个众包平台免费提供(动态共识协议,每张图像 2-5 名标注者)。数据集按临床性质分为三级分类:非肿瘤性(non-neoplastic,12,080 张)、良性(benign,2,234 张)、恶性(malignant,2,263 张)。数据集采用 CC BY-NC-SA 3.0 许可证,标注 CSV 在 GitHub 公开,图像需从原始图集下载或填表索取。
2022 年,Groh 等人发表于 ACM CSCW 的后续论文进一步比较了专家、众包和算法(ITA)三种肤色标注方法的可靠性,发现三位皮肤科医生之间的标注者间信度(Pearson ρ = 0.84)显著高于 ITA 算法与专家之间的信度(ρ = 0.52-0.57),证明众包动态共识协议可以达到与专家相当的可靠性,而 ITA 算法不可靠。
2024 年,SFU 团队(Abhishek et al.)发表于 Nature Scientific Data 的研究系统揭示了数据集的质量问题:6,600+ 近重复对(cosine similarity ≥ 0.90)、2,498 诊断不一致对、原始 train/validation 划分共享全部图像导致数据泄漏。清理版 Fitzpatrick17k-C 去除重复和错误标注后保留 11,394 张图像,提供标准化 70/10/20 train/val/test 划分。
§1.2 战略价值分析
公平性研究奠基维度:Fitzpatrick 17k 的核心价值不在于图像数量——16,577 张在皮肤影像领域并不算大(ISIC 2020 已超 33,000 张),而在于它首次为皮肤病 AI 研究引入了系统化的肤色标签。在此之前,评估皮肤病模型的公平性几乎不可能,因为缺乏肤色标注。Fitzpatrick 17k 填补了这一关键空白,使研究者能够定量测量模型在不同肤色群体上的表现差异,并推动了一系列公平性方法学的诞生:CIRCLe(颜色不变表示学习,2022)、FairDisCo(公平判别对比学习,2024)、PatchAlign(图最优传输跨域对齐,2024)等。该数据集已成为皮肤病 AI 公平性研究的标志性基准,几乎所有关于皮肤病 AI 偏见的研究都会引用或在 Fitzpatrick 17k 上实验。
数据质量反思维度:Fitzpatrick 17k 也是医疗 AI 数据集质量反思的典型案例。从 2021 年发布时的"公平性标杆"到 2024 年被揭示存在严重的数据泄漏(train/val 共享全部图像)、大量重复(6,600+ 对)、标签噪声(3.4% 误标率),这一过程本身就是医疗 AI 数据工程成熟化的缩影。Fitzpatrick17k-C 清理版的发布建立了皮肤病影像数据质量审计的标准方法论(deep embedding 重复检测 + 人工验证 + 泄漏无感划分),对后续医疗数据集的构建产生了深远影响。
§1.3 同类数据集横向对比
| 数据集 | 样本量 | 模态 | 肤色标注 | 标注方式 | 核心差异化 |
|---|---|---|---|---|---|
| Fitzpatrick 17k | 16,577 | 临床照片 | ✅ FST I-VI | 众包 + 专家审核 | 首个大规模跨肤色公平性基准 |
| ISIC 2020 | 33,126 | 皮肤镜 | ❌ | 竞赛标注 | 大规模黑色素瘤分类,无肤色标签 |
| HAM10000 | 10,015 | 皮肤镜 | ❌ | 组织病理学金标准 | 经典皮肤病分类入门数据集 |
| DDI (Diverse Dermatology Images) | 656 | 临床照片 | ✅ FST I-VI | 专家标注 + 组织病理确认 | 高质量但极小规模,Fitzpatrick 17k 的补充验证集 |
| PAD-USF-20 | 1,373 | 临床照片 | ✅ 部分(579/1,373) | 专家标注 | Fitzpatrick 17k 之前唯一的肤色标注数据集,规模小 |
| Derm7pt | 1,011 | 皮肤镜 | ❌ | 七点检查清单 | 可解释 AI 特征标注 |
| Fitzpatrick17k-C | 11,394 | 临床照片 | ✅ FST I-VI | 清理 + 标准化划分 | 去重去泄漏版,推荐用于最终评估 |
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2021-04-20 | arXiv 预印本发布(arXiv:2104.09957),Fitzpatrick 17k 数据集首次公开 |
| 2021-06 | CVPR 2021 ISIC Workshop 正式发表,获荣誉提名(Honorable Mention) |
| 2021-07 | GitHub 仓库公开标注 CSV 和训练脚本,Scale AI 标注完成 |
| 2022-07 | Centaur Labs 第二批 FST 标注加入,标注评估文件夹发布 |
| 2022-11 | Groh et al. CSCW 论文发表:专家 vs 众包 vs 算法标注透明性研究 |
| 2022-08 | CIRCLe 颜色不变表示学习方法发布,在 Fitzpatrick 17k 上刷新 SOTA(48.8%) |
| 2023-11 | SoftOtsuNet 数据增强方法发布,5 折平均准确率 66.9% |
| 2024-01 | Abhishek et al. arXiv 预印本:系统揭示数据质量问题(重复、泄漏、误标) |
| 2024-05 | Fitzpatrick17k-C 清理版数据集在 Zenodo 发布(11,394 张,标准化划分) |
| 2024-09 | PatchAlign 公平性框架发布,准确率 88.6%,EOM 74.8% |
| 2025-02 | Abhishek et al. 论文正式发表于 Nature Scientific Data |
§1.5 典型 AI 应用场景
- 跨肤色公平性评估:训练皮肤病分类模型后,按 Fitzpatrick 皮肤类型分组计算准确率、F1、Equality of Opportunity、Demographic Parity 等公平性指标,定量评估模型在不同肤色群体上的表现差异。
- 颜色不变表示学习:研究如何使模型学习到与肤色无关的疾病特征表示(如 CIRCLe 的颜色不变正则化、PatchAlign 的图最优传输对齐),提升深色皮肤上的泛化能力。
- 数据去偏与重平衡:开发基于重加权、过采样、对抗去偏等策略的训练方法,缓解深色皮肤样本不足导致的性能偏差。
- 标注透明性研究:比较专家标注、众包标注和算法标注(ITA)在肤色评估中的可靠性,为大规模医疗数据集的标注协议设计提供指导。
- 数据质量审计:以 Fitzpatrick17k-C 的清理流程为模板,对其他医疗影像数据集进行重复检测、泄漏检测和标签噪声分析。
§2 医学背景(Medical Context)
§2.1 ICD-11 编码映射
Fitzpatrick 17k 覆盖 114 种皮肤状况,按三级分类(非肿瘤性 / 良性 / 恶性)组织。以下列出主要疾病映射:
| 三级分类 | ICD-11 编码 | 疾病名称(英文) | 疾病名称(中文) |
|---|---|---|---|
| Malignant | 2C30 | Melanoma | 皮肤黑色素瘤 |
| Malignant | 2C31 | Squamous cell carcinoma | 皮肤鳞状细胞癌 |
| Malignant | 2C32 | Basal cell carcinoma | 皮肤基底细胞癌 |
| Malignant | 2C33 | Merkel cell carcinoma | Merkel 细胞癌 |
| Malignant | 2B33 | Mycosis fungoides | 蕈样肉芽肿(皮肤 T 细胞淋巴瘤) |
| Malignant | 2C34 | Dermatofibrosarcoma protuberans | 隆突性皮肤纤维肉瘤 |
| Benign | 2B10 | Melanocytic nevus | 色素痣 |
| Benign | 2B11 | Seborrheic keratosis | 脂溢性角化病 |
| Benign | 2B12 | Verruca (viral wart) | 疣(病毒疣) |
| Benign | 2B21 | Hemangioma | 血管瘤 |
| Benign | 2B22 | Pyogenic granuloma | 化脓性肉芽肿 |
| Benign | XH18G3 | Actinic keratosis | 日光性角化病(癌前病变) |
| Non-Neoplastic | EA80 | Psoriasis | 银屑病 |
| Non-Neoplastic | EB00 | Atopic dermatitis | 特应性皮炎 |
| Non-Neoplastic | EB10 | Contact dermatitis | 接触性皮炎 |
| Non-Neoplastic | EB11 | Seborrheic dermatitis | 脂溢性皮炎 |
| Non-Neoplastic | EK70 | Acne | 痤疮 |
| Non-Neoplastic | EA81 | Lichen planus | 扁平苔藓 |
| Non-Neoplastic | EA00-EA0Z | Impetigo | 脓疱疮 |
| Non-Neoplastic | EE01 | Rosacea | 玫瑰痤疮 |
| Non-Neoplastic | ED50 | Vitiligo | 白癜风 |
| Non-Neoplastic | EK71 | Folliculitis | 毛囊炎 |
| Non-Neoplastic | EB30 | Urticaria | 荨麻疹 |
说明:114 种皮肤状况的完整 ICD-11 映射表可在 GitHub 仓库的
fitzpatrick17k.csv文件中查阅。22 类被排除的疾病(病毒感染、真菌感染、细菌感染、自身免疫性水疱病等)未纳入数据集。
§2.1b SNOMED CT 映射
| 数据集标签 | ICD-11 | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|
| Melanoma | 2C30 | 91935009 | Malignant melanoma of skin (disorder) |
| Basal cell carcinoma | 2C32 | 254838004 | Basal cell carcinoma (disorder) |
| Squamous cell carcinoma | 2C31 | 76558009 | Squamous cell carcinoma of skin (disorder) |
| Psoriasis | EA80 | 9014002 | Psoriasis (disorder) |
| Atopic dermatitis | EB00 | 201008003 | Atopic dermatitis (disorder) |
| Acne | EK70 | 40275004 | Acne (disorder) |
| Contact dermatitis | EB10 | 402595001 | Contact dermatitis (disorder) |
| Seborrheic keratosis | 2B11 | 254842000 | Seborrheic keratosis (disorder) |
| Vitiligo | ED50 | 5633005 | Vitiligo (disorder) |
| Lichen planus | EA81 | 4364002 | Lichen planus (disorder) |
| Rosacea | EE01 | 315941004 | Rosacea (disorder) |
| Melanocytic nevus | 2B10 | 400129000 | Melanocytic nevus (morphologic abnormality) |
| Urticaria | EB30 | 126485001 | Urticaria (disorder) |
| Actinic keratosis | XH18G3 | 201101003 | Actinic keratosis (disorder) |
§2.2 疾病简介与流行病学
皮肤疾病是全球第四大非致命性疾病负担,影响约 18 亿人(WHO 2024 数据)。其中皮肤癌是最严重的皮肤疾病:全球每年新发黑色素瘤约 35 万例,非黑色素瘤皮肤癌超 100 万例。深色皮肤人群(Fitzpatrick V-VI 型)的皮肤癌确诊通常更晚、预后更差,部分原因正是 AI 诊断工具在深色皮肤上的准确率显著偏低。
银屑病全球患病率约 2-3%,特应性皮炎约 15-20%(儿童更高),痤疮影响约 85% 的青少年。这些常见皮肤病在不同肤色人群中的临床表现差异显著:深色皮肤上的红斑常呈紫色或深棕色,银屑病鳞屑可能被掩盖,这使得主要基于浅色皮肤数据训练的 AI 模型面临系统性偏差。
§2.3 临床任务定义
| 任务类型 | 描述 | 临床意义 |
|---|---|---|
| 皮肤状况多分类 | 给定一张临床皮肤病照片,在 114 种皮肤状况中预测最可能的诊断 | 辅助基层医生和远程医疗进行初步筛查 |
| 跨肤色公平性评估 | 按 Fitzpatrick 皮肤类型分组评估模型准确率和公平性指标 | 确保不同肤色人群获得同等质量的 AI 辅助诊断 |
| 良恶性鉴别 | 利用三级分类标签(非肿瘤性 / 良性 / 恶性)进行二分类或三分类 | 辅助皮肤癌筛查决策 |
| 肤色估计 | 使用 ITA 算法或训练模型从图像中估计 Fitzpatrick 皮肤类型 | 自动化数据集公平性审计 |
§2.4 患者人群特征
| 维度 | 特征 |
|---|---|
| 数据来源 | DermaAmin(国际)+ Atlas Dermatologico(巴西为主)两个公开在线图集 |
| 年龄 | 不适用(无患者级元数据) |
| 性别 | 不适用(无患者级元数据) |
| 地域 | 全球(图集来源国际),Atlas Dermatologico 以巴西为主 |
| 肤色分布 | Fitzpatrick I-VI,I-II 型占 ~47%,V-VI 型仅 ~13%(严重不平衡) |
| 入排标准 | 纳入:114 种最常见皮肤状况,每种至少 53 张图像。排除 22 类:病毒感染(HPV、疱疹、传染性软疣、发疹病)、真菌感染、细菌感染、自身免疫性水疱病、分枝杆菌感染、良性血管病变、瘢痕性脱发、非瘢痕性脱发、角皮病、鱼鳞病、血管炎、糙皮病样皮疹、Reiter 病、瘙痒性大疱性表皮松解症、淀粉样变、冻疮及类似物、内脏肿瘤皮肤转移、进行性对称性红斑角皮病、表皮松解性角化过度、感染、泛发性发疹性组织细胞瘤、干性湿疹 |
| 确认方式 | 诊断标签继承自图集元数据,未经系统组织病理学确认 |
§2.5 临床意义
皮肤病 AI 的核心临床价值在于:辅助非皮肤科医生(如基层全科医生、远程医疗平台)进行初步筛查,减少不必要的皮肤科转诊。然而,如果模型在深色皮肤上的准确率显著低于浅色皮肤,这种技术反而会加剧医疗不平等。Fitzpatrick 17k 的临床意义在于首次提供了量化评估这一不平等的工具,推动 AI 从"追求平均准确率"转向"保证跨群体公平性"。
§2.6 金标准 / 参考标准
| 标注类型 | 标注者 | 标注方式 | 可信度 |
|---|---|---|---|
| 诊断标签 | 图集原始元数据(DermaAmin / Atlas Dermatologico) | 继承自图集,未经独立确认 | 参考标准(3.4% 误标率) |
| 诊断标签质量审核 | 2 位委员会认证皮肤科医生 | 504 张随机样本(3%)独立审查 | 69% 明确诊断 / 19.2% 可能诊断 / 6.3% 特征性 / 3.4% 错误标注 |
| Fitzpatrick 皮肤类型 | Scale AI + Centaur Labs 众包标注者 | 动态共识协议,每张图 2-5 人,以 312 张专家金标准加权 | 参考标准(exact-match 25-59%,off-by-one 71-85%) |
| 专家 FST 对比 | 3 位委员会认证皮肤科医生 | 320 张图集图像独立标注(Groh 2022 CSCW) | 金标准(专家间 ρ = 0.84) |
| ITA 算法标注 | Individual Typology Angle 算法 | 从图像像素统计计算,转换为 FST | 低可信度(与专家 ρ = 0.52-0.57) |
§3 数据集规格(Specifications)
§3.0 版本抉择矩阵
| 版本 | 发布时间 | 图像数 | 划分 | 推荐用途 | 获取方式 |
|---|---|---|---|---|---|
| Fitzpatrick 17k(原始版) | 2021-04 | 16,577 | train 12,751 / val 3,826 / test 0(⚠️ 无独立测试集) | 公平性探索性研究、与历史结果对比 | GitHub CSV + 原始图集 URL |
| Fitzpatrick 17k + Centaur Labs 标注 | 2022-07 | 16,577(标注增强) | 同原始版 | 标注透明性研究、标注者间信度分析 | GitHub annotation_evaluation 文件夹 |
| Fitzpatrick17k-C(清理版) | 2024-05 | 11,394 | train 7,975 / val 1,139 / test 2,280 | ⭐ 推荐用于最终评估和论文报告 | Zenodo / SFU 项目网站 |
| Fitzpatrick17k-Renamed | 2024-05 | 16,577(重命名) | 无(仅文件重组) | 便于文件管理和诊断查找 | SFU 项目网站 ZIP 下载 |
版本选择建议:如果你要发论文报告模型性能,必须使用 Fitzpatrick17k-C,因为原始版的 train/val 划分共享全部图像(数据泄漏),且包含 6,600+ 重复对和错误标注。使用原始版进行探索性实验是可以的,但最终数字应基于 Fitzpatrick17k-C。
§3.1 数据模态
| 属性 | 规格 |
|---|---|
| 图像类型 | 2D 临床皮肤病照片(“in-the-wild”),非皮肤镜、非组织病理 |
| 色彩空间 | RGB(3 通道) |
| 拍摄设备 | 不限(图集来源多样,含手机拍摄和专业相机) |
| 光照条件 | 不统一(真实临床环境,光照变化大) |
| 拍摄部位 | 全身各部位皮肤(无部位标注) |
| 是否含病灶特写 | 是(部分图像为病灶近景,部分为全身远景) |
§3.2 图像分辨率统计
| 统计量 | 宽 × 高(像素) |
|---|---|
| 最小 | 66 × 130 |
| 中位数 | 470 × 541 |
| 最大 | 1,380 × 2,449 |
注意:分辨率跨度极大(最小仅 66×130,最大 1,380×2,449),预处理时需统一缩放。推荐缩放至 224×224(ImageNet 标准)或 384×384(更高精度)。
§3.3 数据格式与存储
| 文件 | 格式 | 大小 | 说明 |
|---|---|---|---|
fitzpatrick17k.csv |
CSV | ~2.5 MB | 主标注文件,16,577 行 |
| 图像文件 | JPG | ~3 GB | 16,577 张临床照片 |
train.py |
Python | ~5 KB | 官方训练脚本(VGG-16 基线) |
ita_fitzpatrick_analysis.ipynb |
Jupyter | ~50 KB | ITA vs FST 分析笔记本 |
annotation_evaluation/ |
文件夹 | ~10 MB | 标注者间信度分析(Groh 2022 CSCW) |
§3.4 标注管道
┌──────────────────────────────────────────────────────────────────┐
│ Fitzpatrick 17k 标注管道 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 1. 图像收集 │
│ ├─ DermaAmin ─────────────── 12,672 张(含诊断标签) │
│ ├─ Atlas Dermatologico ────── 3,905 张(含诊断标签) │
│ └─ 合计 16,577 张 │
│ │
│ 2. 疾病类别筛选 │
│ ├─ 排除 22 类(感染性、自身免疫性水疱、罕见等) │
│ ├─ 保留 114 种最常见皮肤状况 │
│ └─ 每种 53-653 张图像 │
│ │
│ 3. Fitzpatrick 皮肤类型标注 │
│ ├─ Scale AI(免费 pro bono 标注) │
│ │ └─ 动态共识协议:每张图 2-5 名标注者 │
│ ├─ Centaur Labs(第二批标注,用于信度评估) │
│ ├─ 金标准子集:312 张由委员会认证皮肤科医生标注 │
│ └─ 标注者权重:基于金标准子集的准确率加权 │
│ │
│ 4. 三级分类标注 │
│ ├─ Non-Neoplastic ──── 12,080 张(73%) │
│ ├─ Benign ───────────── 2,234 张(13%) │
│ └─ Malignant ────────── 2,263 张(14%) │
│ │
│ 5. 质量审核 │
│ ├─ 随机抽取 504 张(3%) │
│ ├─ 2 位委员会认证皮肤科医生独立审查 │
│ │ ├─ 69.0% 明确诊断(diagnostic) │
│ │ ├─ 19.2% 可能诊断(potentially diagnostic) │
│ │ ├─ 6.3% 特征性(characteristic) │
│ │ ├─ 3.4% 错误标注(wrongly labeled) │
│ │ └─ 2.0% 其他(other) │
│ └─ 误标率 3.4%(与 CV/NLP/Audio 基准数据集平均误标率一致) │
│ │
│ 6. ITA 算法标注(对照) │
│ ├─ 从图像像素计算 Individual Typology Angle │
│ ├─ ITA = arctan((L*-b*)/a*) × 180/π │
│ ├─ 转换为 FST(I-VI)用于与人工标注对比 │
│ └─ 结论:ITA 与专家标注相关性显著低于专家间相关性 │
│ (ρ=0.52-0.57 vs ρ=0.84) │
│ │
│ 7. 清理版 Fitzpatrick17k-C(Abhishek et al. 2024) │
│ ├─ fastdup + cleanvision 重复检测(cosine sim ≥ 0.90) │
│ ├─ 6,600+ 近重复对,1,400+ 高相似度对 │
│ ├─ 2,498 诊断不一致重复对 │
│ ├─ 嵌入空间异常值过滤 │
│ ├─ 标准化 70/10/20 train/val/test 划分 │
│ └─ 保留 11,394 张(去除 5,183 张重复/异常/泄漏) │
│ │
└──────────────────────────────────────────────────────────────────┘
§3.5 深度溯源链
| 层级 | 来源 | 说明 |
|---|---|---|
| L1 数据集 | Fitzpatrick 17k | Groh et al. 2021, MIT Media Lab |
| L2 图像来源 | DermaAmin (12,672) + Atlas Dermatologico (3,905) | 两个公开在线皮肤病学图集 |
| L3 诊断标签 | 图集元数据 | 继承自图集原始标注,未经独立组织病理学确认 |
| L4 肤色标签 | Scale AI + Centaur Labs | 众包动态共识协议,以专家金标准子集加权 |
| L5 质量审核 | 2 位委员会认证皮肤科医生 | 504 张随机样本独立审查,3.4% 误标率 |
| L6 清理版本 | Abhishek et al. 2024 (SFU) | fastdup 重复检测 + 异常过滤 + 标准化划分 |
§4 数据结构详解(Data Schema)
§4.0 目录树预览
fitzpatrick17k/
├── fitzpatrick17k.csv # 主标注文件(16,577 行)
├── train.py # 官方 VGG-16 基线训练脚本
├── ita_fitzpatrick_analysis.ipynb # ITA vs FST 分析笔记本
├── annotation_evaluation/ # 标注者间信度分析(Groh 2022 CSCW)
│ ├── expert_annotations.csv # 专家标注数据
│ ├── crowd_annotations.csv # 众包标注数据
│ └── ita_annotations.csv # ITA 算法标注数据
├── images/ # 图像目录(需自行下载)
│ ├── [hash1].jpg
│ ├── [hash2].jpg
│ └── ... (16,577 files)
└── README.md # 数据集说明
fitzpatrick17k-c/ # 清理版(Abhishek et al. 2024)
├── Fitzpatrick17k-C.csv # 清理后元数据(11,394 行)
├── Fitzpatrick17k_DiagnosisMapping.xlsx # 114 种诊断缩写映射
├── train/ # 7,975 张
├── val/ # 1,139 张
└── test/ # 2,280 张
§4.1 DAIMS 标准化数据字典
| 字段名 | 数据类型 | 说明 | 示例值 |
|---|---|---|---|
hash |
string (MD5) | 图像 MD5 哈希,唯一标识符 | a1b2c3d4e5f6... |
url |
URL | 原始图像 URL(DermaAmin 或 Atlas Dermatologico) | https://www.dermaamin.com/... |
fitzpatrick |
integer (1-6) | Fitzpatrick 皮肤类型标签 | 3 |
fitzpatrick_scale |
string | FST 文本标签 | Type III |
three_partition_label |
enum | 三级分类:non-neoplastic / benign / malignant |
malignant |
nine_partition_label |
string | 九级细分类 | neoplasm-malignant |
label |
string (114 classes) | 具体皮肤状况诊断标签 | melanoma |
§4.2 Fitzpatrick 皮肤类型分布
整体分布
| Fitzpatrick 类型 | 图像数 | 占比 | 描述 |
|---|---|---|---|
| Type I | ~2,960 | ~18% | 苍白肤色,极易晒伤,从不晒黑 |
| Type II | ~4,810 | ~29% | 浅色肤色,易晒伤,轻微晒黑 |
| Type III | ~3,310 | ~20% | 中等肤色,有时晒伤,逐渐晒黑 |
| Type IV | ~2,780 | ~17% | 橄榄肤色,很少晒伤,容易晒黑 |
| Type V | ~1,530 | ~9% | 棕色肤色,很少晒伤,很易晒黑 |
| Type VI | ~640 | ~4% | 深棕色/黑色肤色,从不晒伤,总是晒黑 |
| Unknown | ~565 | ~3% | 无法确定 |
⚠️ 关键偏差:Type I-II(浅色)占 ~47%,Type V-VI(深色)仅占 ~13%,比例为 3.6:1。这一严重不平衡是数据集公平性问题的根源。
按三级分类的肤色分布
| 三级分类 | 总图像数 | Type I | Type II | Type III | Type IV | Type V | Type VI | Unknown |
|---|---|---|---|---|---|---|---|---|
| Non-Neoplastic | 12,080 | 17.0% | 28.1% | 19.7% | 17.5% | 10.1% | 4.4% | 3.2% |
| Benign | 2,234 | 19.9% | 30.0% | 21.2% | 16.4% | 7.1% | 2.0% | 3.3% |
| Malignant | 2,263 | 20.2% | 32.8% | 20.2% | 13.3% | 6.5% | 2.7% | 4.6% |
⚠️ 恶性病变中的肤色偏差更严重:恶性类别中 Type I-II 占 53%,Type V-VI 仅占 9.2%。这意味着模型在深色皮肤上的皮肤癌识别能力受到更严重的制约。
§4.3 标签分布统计
| 统计量 | 值 |
|---|---|
| 诊断类别数 | 114 |
| 每类最少图像数 | 53 |
| 每类最多图像数 | 653 |
| 长尾分布 | 严重(max/min = 12.3:1) |
| 三级分类 | Non-Neoplastic 73% / Benign 13% / Malignant 14% |
| 九级细分类 | 包含 inflammatory, infection, neoplasm-benign, neoplasm-malignant 等 |
§4.4 缺失数据
| 缺失项 | 影响 | 处理建议 |
|---|---|---|
| ~565 张图像 FST 标注为 Unknown | 无法用于公平性评估 | 排除或单独评估 |
| 无患者元数据(年龄、性别、种族) | 无法分析交叉公平性 | 仅能按 FST 分组 |
| 部分原始 URL 失效 | 无法直接下载图像 | 使用 SFU 重命名版或填表索取 |
| 无独立测试集(原始版) | 评估结果不可靠 | 使用 Fitzpatrick17k-C 标准化划分 |
| 无图像采集设备/参数信息 | 无法分析成像偏差 | 无法处理 |
§5 数据划分与使用建议(Splits & Usage)
§5.1 官方划分
原始版划分(⚠️ 不推荐用于最终评估)
| 划分 | 图像数 | 占比 | 说明 |
|---|---|---|---|
| Train | 12,751 | 77% | 随机/按主题/按肤色三种策略 |
| Validation | 3,826 | 23% | ⚠️ 与 Train 共享全部图像! |
| Test | 0 | 0% | ⚠️ 无独立测试集 |
原始版提供三种划分策略:
- Random holdout:随机划分(标准基线)
- Subject-level holdout:按主题划分(模拟跨患者泛化)
- Skin-type stratified:按肤色分层(模拟跨肤色泛化)
Fitzpatrick17k-C 清理版划分(⭐ 推荐)
| 划分 | 图像数 | 占比 | 说明 |
|---|---|---|---|
| Train | 7,975 | 70% | 按诊断分层,无重复泄漏 |
| Validation | 1,139 | 10% | 与 Train 完全不相交 |
| Test | 2,280 | 20% | ⭐ 独立测试集,与 Train/Val 完全不相交 |
§5.2 数据泄漏风险
| 风险类型 | 原始版 | Fitzpatrick17k-C |
|---|---|---|
| Train/Val 图像重叠 | ⚠️ 严重(共享全部图像) | ✅ 已修复 |
| 近重复跨划分泄漏 | ⚠️ 6,600+ 对 | ✅ 已去除 |
| 诊断标签不一致重复 | ⚠️ 2,498 对 | ✅ 已去除 |
| 异常图像 | ⚠️ 存在非皮肤图像 | ✅ 已过滤 |
§5.3 推荐使用策略
| 场景 | 推荐划分 | 理由 |
|---|---|---|
| 探索性实验 | 原始版 Random holdout | 与历史结果可比 |
| 公平性研究 | 原始版 Skin-type stratified | 专门评估跨肤色泛化 |
| 最终性能报告 | ⭐ Fitzpatrick17k-C | 无泄漏、有独立测试集 |
| 跨数据集验证 | DDI(Diverse Dermatology Images) | 外部验证集 |
§6 AI 就绪指南(AI-Ready Guide)
§6.0 云端快速启动
<details>
<summary>📦 环境准备与数据加载(点击展开)</summary>
# ============================================
# Fitzpatrick 17k 快速启动
# ============================================
import pandas as pd
import os
import requests
from PIL import Image
from io import BytesIO
from sklearn.model_selection import train_test_split
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
# 1. 加载标注 CSV
df = pd.read_csv(''''''''''''''''fitzpatrick17k.csv'''''''''''''''')
print(f"总样本数: {len(df)}")
print(f"诊断类别数: {df[''''''''''''''''label''''''''''''''''].nunique()}")
print(f"FST 分布:\n{df[''''''''''''''''fitzpatrick''''''''''''''''].value_counts().sort_index()}")
# 2. 推荐使用 Fitzpatrick17k-C 清理版(如有)
# 从 https://derm.cs.sfu.ca/critique/ 下载 Fitzpatrick17k-C.csv
df_clean = pd.read_csv(''''''''''''''''Fitzpatrick17k-C.csv'''''''''''''''')
print(f"清理版样本数: {len(df_clean)}")
print(f"划分分布:\n{df_clean[''''''''''''''''partition''''''''''''''''].value_counts()}")
# 3. 基本预处理
transform_train = transforms.Compose([
transforms.Resize((224, 224)),
transforms.RandomHorizontalFlip(),
transforms.RandomVerticalFlip(),
transforms.RandomRotation(15),
transforms.ColorJitter(brightness=0.2, conevent-blocked=0.2),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
transform_eval = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
</details>
<details>
<summary>🔧 PyTorch Dataset 实现(点击展开)</summary>
class Fitzpatrick17kDataset(Dataset):
"""Fitzpatrick 17k PyTorch Dataset
Args:
csv_path: 标注 CSV 路径
image_dir: 图像目录路径
partition: ''''''''''''''''train'''''''''''''''' / ''''''''''''''''val'''''''''''''''' / ''''''''''''''''test''''''''''''''''(仅 Fitzpatrick17k-C)
transform: 图像变换
use_clean: 是否使用清理版 Fitzpatrick17k-C
"""
def __init__(self, csv_path, image_dir, partition=''''''''''''''''train'''''''''''''''',
transform=None, use_clean=True):
if use_clean:
df = pd.read_csv(csv_path)
self.df = df[df[''''''''''''''''partition''''''''''''''''] == partition].reset_index(drop=True)
else:
df = pd.read_csv(csv_path)
# 原始版无 test 划分,手动分割
train_df, val_df = train_test_split(
df, test_size=0.2, random_state=42,
stratify=df[''''''''''''''''label'''''''''''''''']
)
self.df = train_df if partition == ''''''''''''''''train'''''''''''''''' else val_df
self.image_dir = image_dir
self.transform = transform
# 创建标签映射
self.label_to_idx = {
label: idx for idx, label in
enumerate(sorted(self.df[''''''''''''''''label''''''''''''''''].unique()))
}
def __len__(self):
return len(self.df)
def __getitem__(self, idx):
row = self.df.iloc[idx]
# 加载图像
img_path = os.path.join(self.image_dir, f"{row[''''''''''''''''hash'''''''''''''''']}.jpg")
image = Image.open(img_path).convert(''''''''''''''''RGB'''''''''''''''')
if self.transform:
image = self.transform(image)
label = self.label_to_idx[row[''''''''''''''''label'''''''''''''''']]
fst = row[''''''''''''''''fitzpatrick''''''''''''''''] # 1-6
return image, label, fst
def get_fst_distribution(self):
"""返回当前划分的 FST 分布"""
return self.df[''''''''''''''''fitzpatrick''''''''''''''''].value_counts().sort_index()
# 创建数据加载器
train_dataset = Fitzpatrick17kDataset(
csv_path=''''''''''''''''Fitzpatrick17k-C.csv'''''''''''''''',
image_dir=''''''''''''''''images/'''''''''''''''',
partition=''''''''''''''''train'''''''''''''''',
transform=transform_train,
use_clean=True
)
train_loader = DataLoader(
train_dataset, batch_size=64, shuffle=True,
num_workers=4, pin_memory=True
)
# 测试
for images, labels, fsts in train_loader:
print(f"Batch: images {images.shape}, "
f"labels {labels.shape}, FSTs {fsts.shape}")
break
</details>
<details>
<summary>⚖️ 公平性评估代码(点击展开)</summary>
import numpy as np
from collections import defaultdict
from sklearn.metrics import accuracy_score, f1_score
def evaluate_fairness(model, dataloader, device, num_classes=114):
"""评估模型在不同 Fitzpatrick 皮肤类型上的表现
返回:
- overall_metrics: 整体准确率和 macro-F1
- per_fst_metrics: 按 FST 分组的准确率和 macro-F1
- fairness_metrics: EOD (Equality of Opportunity Difference)
和 DPM (Demographic Parity Difference)
"""
model.eval()
all_preds = []
all_labels = []
all_fsts = []
with torch.no_grad():
for images, labels, fsts in dataloader:
images = images.to(device)
outputs = model(images)
preds = outputs.argmax(dim=1).cpu().numpy()
all_preds.extend(preds)
all_labels.extend(labels.numpy())
all_fsts.extend(fsts.numpy())
all_preds = np.array(all_preds)
all_labels = np.array(all_labels)
all_fsts = np.array(all_fsts)
# 整体指标
overall_acc = accuracy_score(all_labels, all_preds)
overall_f1 = f1_score(all_labels, all_preds, average=''''''''''''''''macro'''''''''''''''',
zero_division=0)
# 按 FST 分组
per_fst = {}
for fst in range(1, 7):
mask = all_fsts == fst
if mask.sum() == 0:
continue
fst_acc = accuracy_score(all_labels[mask], all_preds[mask])
fst_f1 = f1_score(all_labels[mask], all_preds[mask],
average=''''''''''''''''macro'''''''''''''''', zero_division=0)
per_fst[fst] = {
''''''''''''''''count'''''''''''''''': mask.sum(),
''''''''''''''''accuracy'''''''''''''''': fst_acc,
''''''''''''''''macro_f1'''''''''''''''': fst_f1
}
# 公平性指标
# EOD: max TPR - min TPR across FST groups
# DPM: max positive prediction rate - min positive prediction rate
accs = [v[''''''''''''''''accuracy''''''''''''''''] for v in per_fst.values()]
eod = max(accs) - min(accs) # 简化的 EOD(用准确率代替 TPR)
dpm = max(accs) - min(accs) # 简化的 DPM
print(f"Overall Accuracy: {overall_acc:.4f}")
print(f"Overall Macro-F1: {overall_f1:.4f}")
print(f"\nPer-FST Performance:")
for fst, metrics in sorted(per_fst.items()):
print(f" Type {fst}: n={metrics[''''''''''''''''count'''''''''''''''']:5d}, "
f"acc={metrics[''''''''''''''''accuracy'''''''''''''''']:.4f}, "
f"f1={metrics[''''''''''''''''macro_f1'''''''''''''''']:.4f}")
print(f"\nFairness Metrics:")
print(f" EOD (Accuracy Gap): {eod:.4f}")
print(f" Gini (Accuracy Inequality): "
f"{compute_gini(accs):.4f}")
return {
''''''''''''''''overall'''''''''''''''': {''''''''''''''''accuracy'''''''''''''''': overall_acc, ''''''''''''''''macro_f1'''''''''''''''': overall_f1},
''''''''''''''''per_fst'''''''''''''''': per_fst,
''''''''''''''''fairness'''''''''''''''': {''''''''''''''''eod'''''''''''''''': eod, ''''''''''''''''dpm'''''''''''''''': dpm}
}
def compute_gini(values):
"""计算 Gini 系数,衡量跨 FST 的公平性(0=完全公平,1=完全不公)"""
values = sorted(values)
n = len(values)
cumsum = np.cumsum(values)
return (2 * sum((i + 1) * v for i, v in enumerate(values))
/ (n * cumsum[-1])) - (n + 1) / n
</details>
§6.1 已知坑点与解决方案
| # | 坑点 | 严重度 | 解决方案 |
|---|---|---|---|
| 1 | 原始版无独立测试集——train/val 共享全部图像 | 🔴 P0 | 使用 Fitzpatrick17k-C 清理版,它提供独立的 70/10/20 划分 |
| 2 | 6,600+ 近重复对跨划分泄漏 | 🔴 P0 | 使用 Fitzpatrick17k-C(已去除全部重复),或自行运行 fastdup 检测 |
| 3 | 3.4% 误标率——诊断标签未经组织病理学确认 | 🟡 P1 | 使用三级分类(non-neoplastic/benign/malignant)而非 114 类细分类,降低标签噪声影响 |
| 4 | FST 标注为非专家——exact-match 仅 25-59% | 🟡 P1 | 使用 off-by-one 容差评估(±1 FST),或在论文中同时报告严格和容差指标 |
| 5 | 深色皮肤严重不足(V-VI 仅 13%) | 🟡 P1 | 使用重加权采样、SMOTE 过采样、或公平性训练策略(CIRCLe/FairDisCo/PatchAlign) |
| 6 | 部分原始 URL 失效 | 🟢 P2 | 使用 SFU 的 Fitzpatrick17k-Renamed ZIP 归档,或填表向作者索取图像链接 |
| 7 | 分辨率跨度极大(66×130 至 1380×2449) | 🟢 P2 | 统一缩放至 224×224;极低分辨率图像可考虑过滤或单独处理 |
| 8 | 114 类分类极困难——baseline top-1 仅 20% | 🟡 P1 | 使用预训练权重(ImageNet/DERM_1M)、强数据增强、或退化为三级/九级分类 |
§6.2 数据增强策略
| 策略 | 适用性 | 说明 |
|---|---|---|
| RandomHorizontalFlip | ✅ 推荐 | 皮肤病图像通常无左右偏好 |
| RandomVerticalFlip | ✅ 推荐 | 临床照片无固定方向 |
| RandomRotation (±15°) | ✅ 推荐 | Groh 2021 官方使用 |
| ColorJitter | ⚠️ 谨慎 | 改变肤色可能影响公平性评估;若用于公平性研究应禁用 |
| Cutout / RandAugment | ⚠️ 谨慎 | SoftOtsuNet 研究表明在 F17k 上提升有限,可能增加 Gini 不公平度 |
| SoftOtsuNet 增强 | ✅ 推荐 | 专门为临床皮肤照片设计,通过 Otsu 阈值分割病灶区域增强 |
| MixUp / CutMix | ⚠️ 谨慎 | 跨肤色 MixUp 可能产生不真实的肤色混合 |
§6.3 模型推荐
| 模型 | 架构 | 预训练 | Top-1 Acc | 公平性 | 推荐场景 |
|---|---|---|---|---|---|
| VGG-16 (Groh baseline) | VGG-16 | ImageNet | 20.2% | 差(EOD 0.652) | 基线复现 |
| ResNet-50 (CIRCLe) | ResNet-50 | ImageNet | 48.8% | 好(EOD 0.474) | 公平性研究 |
| EfficientNet (SoftOtsuNet) | EfficientNet-B7 | ImageNet + Noisy Student | 66.9% | 中(Gini ~0.03) | 高精度分类 |
| FairDisCo | ResNet-50 | ImageNet | 85.1% | 好(EOM 68.1%) | 公平性 SOTA |
| PatchAlign | Transformer | ImageNet | 88.6% | 最优(EOM 74.8%) | ⭐ 公平性 + 精度 SOTA |
§6.4 计算需求
| 资源 | 最低配置 | 推荐配置 |
|---|---|---|
| GPU | 1× RTX 3060 (12GB) | 1× RTX 4090 (24GB) 或 A100 |
| 内存 | 16 GB | 32 GB |
| 存储 | 10 GB | 20 GB |
| 训练时间 | ~2 小时(ResNet-50, 20 epochs) | ~6 小时(EfficientNet-B7, 250 epochs) |
§6.5 评估指标
| 指标 | 公式 | 说明 |
|---|---|---|
| Top-1 Accuracy | 正确预测数 / 总样本数 | 整体分类准确率 |
| Top-3 Accuracy | 正确标签在 Top-3 预测中 / 总样本数 | 更宽松的评估 |
| Macro-F1 | 各类 F1 的算术平均 | 不受类别不平衡影响 |
| Per-FST Accuracy | 按 FST 分组计算准确率 | 公平性核心指标 |
| EOD (Equality of Opportunity Difference) | max TPR − min TPR across FST groups | 越低越公平 |
| DPM (Demographic Parity Difference) | max P(Ŷ=1) − min P(Ŷ=1) across FST groups | 越低越公平 |
| Gini Coefficient | 跨 FST 准确率的 Gini 系数 | 0=完全公平,1=完全不公 |
| NAR (Normalized Accuracy Range) | (max_acc − min_acc) / max_acc | 越低越公平 |
§7 质量评估与局限性(Quality & Limitations)
§7.1 已知偏倚
| # | 偏倚类型 | 描述 | 影响程度 |
|---|---|---|---|
| 1 | 肤色表示偏倚 | Type I-II 占 47%,V-VI 仅 13%,比例 3.6:1 | 🔴 严重——直接导致模型在深色皮肤上性能下降 |
| 2 | 恶性病变肤色偏倚 | 恶性类别中 V-VI 仅 9.2%,I-II 达 53% | 🔴 严重——影响皮肤癌在深色皮肤上的检测 |
| 3 | 来源偏倚 | 图像仅来自两个在线图集,Atlas Dermatologico 以巴西为主 | 🟡 中等——地理和人口分布不均 |
| 4 | 标注者偏倚 | FST 标注者为非专家,exact-match 25-59% | 🟡 中等——FST 标签噪声可能影响公平性评估 |
| 5 | 诊断标签噪声 | 3.4% 误标率,19.2% 可能诊断 | 🟡 中等——影响分类基线性能 |
| 6 | 重复偏倚 | 6,600+ 近重复对,可能同患者多角度照片 | 🟡 中等——导致评估结果虚高 |
| 7 | 选择偏倚 | 排除 22 类疾病,仅保留最常见 114 种 | 🟢 低——覆盖范围仍然广泛 |
§7.2 标注质量评估
| 评估维度 | 方法 | 结果 |
|---|---|---|
| 诊断标签准确率 | 2 位皮肤科医生审查 504 张 | 69% 明确诊断,3.4% 误标 |
| FST 标注准确率 | 312 张专家金标准对比 | exact-match 25-59%,off-by-one 71-85% |
| 专家间信度 | 3 位皮肤科医生标注 320 张 | Pearson ρ = 0.84 |
| ITA vs 专家 | ITA 算法 vs 3 位皮肤科医生 | ρ = 0.52-0.57(显著低于专家间) |
| 众包 vs 专家 | Scale AI/Centaur Labs vs 专家 | 可比(动态共识协议有效) |
| 重复检测 | fastdup cosine sim ≥ 0.90 | 6,600+ 对,98.4% 确认为真重复 |
| 标签不一致 | 重复对中诊断不一致 | 2,498 对 |
§7.3 泛化局限性
| 局限 | 说明 |
|---|---|
| 非皮肤镜 | 图像为"in-the-wild"临床照片,与皮肤镜图像(如 ISIC/HAM10000)的特征差异大,跨模态泛化困难 |
| 无组织病理确认 | 诊断标签未经金标准(组织病理学)确认,标签噪声不可避免 |
| 地理局限 | Atlas Dermatologico 以巴西为主,可能不代表全球人群 |
| 无患者元数据 | 无法分析年龄、性别、种族等交叉公平性 |
| 深色皮肤不足 | 即使有 FST 标注,V-VI 型样本量(~2,170 张)仍不足以训练高精度模型 |
| 114 类分类 | 类别数多、每类样本少,top-1 准确率天然偏低 |
§7.4 伦理考量
| 伦理问题 | 说明 | 缓解措施 |
|---|---|---|
| 肤色歧视 | 模型在深色皮肤上性能差可能加剧医疗不平等 | 强制报告 per-FST 指标,遵循 CLEAR Derm AI 标准 |
| 隐私 | 临床照片可能含可识别信息 | 原始图集应已获患者同意;使用者不应尝试反向识别 |
| 商业使用限制 | CC BY-NC-SA 3.0 禁止商业用途 | 商业产品需另获许可或使用其他数据集 |
| 标注者权益 | Scale AI/Centaur Labs 众包标注者的报酬和劳动条件 | Groh et al. 在论文中感谢标注服务"pro bono"提供 |
§7.5 DAIMS 24 项数据就绪度评估
| # | DAIMS 评估项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据集动机与目的 | ✅ | 明确:评估皮肤病 AI 跨肤色公平性 |
| 2 | 数据集组成 | ✅ | 16,577 张图像,114 种状况,FST I-VI 标注 |
| 3 | 数据收集过程 | ✅ | 两个公开图集,22 类排除标准明确 |
| 4 | 标注协议 | ✅ | 众包动态共识 + 专家金标准加权 |
| 5 | 标注者资质 | ⚠️ | FST 标注者为非专家;诊断标签继承自图集 |
| 6 | 标注者间信度 | ✅ | 专家间 ρ=0.84,ITA vs 专家 ρ=0.52-0.57 |
| 7 | 数据质量验证 | ✅ | 504 张专家审查,3.4% 误标率 |
| 8 | 已知偏倚 | ✅ | 肤色不平衡、来源偏倚、标签噪声已充分文档化 |
| 9 | 隐私保护 | ⚠️ | 依赖原始图集的去标识化,未独立验证 |
| 10 | 知情同意 | ⚠️ | 依赖原始图集的患者同意流程 |
| 11 | 许可证 | ✅ | CC BY-NC-SA 3.0,明确且可机器可读 |
| 12 | 访问机制 | ✅ | GitHub 公开 CSV,图像可索取 |
| 13 | 数据格式 | ✅ | JPG + CSV,标准格式 |
| 14 | 数据字典 | ✅ | 字段含义清晰文档化 |
| 15 | Train/Val/Test 划分 | ⚠️ | 原始版无独立测试集;清理版已修复 |
| 16 | 重复检测 | ✅ | Abhishek et al. 2024 完成系统检测 |
| 17 | 数据泄漏 | ⚠️ | 原始版严重泄漏;清理版已修复 |
| 18 | 版本管理 | ✅ | 原始版 + Centaur 标注 + 清理版,版本清晰 |
| 19 | 引用与出处 | ✅ | 完整 BibTeX,作者机构明确 |
| 20 | 使用限制 | ✅ | 非商业、研究用途,DUO: NPUNCU |
| 21 | 公平性评估 | ✅ | 数据集本身就是为公平性评估设计 |
| 22 | 外部验证 | ✅ | DDI 数据集可用于外部验证 |
| 23 | 可复现性 | ✅ | 训练脚本、分析笔记本均开源 |
| 24 | 持续维护 | ⚠️ | 原始仓库更新较少;SFU 团队提供清理版 |
DAIMS 评分:19/24(79.2%)— ⭐⭐⭐⭐(4/5)
评分理由:Fitzpatrick 17k 在公平性设计、偏倚文档化、标注协议透明性方面表现卓越,是医疗 AI 公平性数据集的标杆。扣分项集中在:标注者资质(FST 为非专家)、隐私保护依赖第三方、原始版数据泄漏问题。清理版 Fitzpatrick17k-C 的发布显著提升了数据就绪度。
§7.6 外部验证矩阵
| 外部数据集 | 样本量 | 模态 | 肤色标注 | 用途 |
|---|---|---|---|---|
| DDI (Diverse Dermatology Images) | 656 | 临床照片 | ✅ FST I-VI | 跨数据集公平性验证(推荐) |
| ISIC 2019/2020 | 25,331/33,126 | 皮肤镜 | ❌ | 跨模态泛化验证(无 FST) |
| HAM10000 | 10,015 | 皮肤镜 | ❌ | 跨模态泛化验证(无 FST) |
| Dermofit | 1,300 | 临床照片 | ❌ | 跨数据集分类验证 |
| PAD-USF-20 | 1,373 | 临床照片 | ✅ 部分 | 早期 FST 标注数据集,可交叉验证 |
§8 基准性能与生态(Benchmarks & Ecosystem)
§8.1 排行榜
| 排名 | 方法 | 骨干网络 | Top-1 Acc | EOM | DPM | 划分 | 论文 | 年份 |
|---|---|---|---|---|---|---|---|---|
| 1 | PatchAlign | Transformer | 88.6% | 74.8% | 55.5% | F17k-C In-domain | Aayushman et al. | 2024 |
| 2 | FairDisCo | ResNet-50 | 85.1% | 68.1% | 48.3% | F17k-C In-domain | Aayushman et al. | 2024 |
| 3 | SoftOtsuNet | EfficientNet-B7 | 66.9% | — | — | 原始版 5-fold | Marami et al. | 2023 |
| 4 | CIRCLe | ResNet-50 | 48.8% | — | — | 原始版 Random | Pakzad et al. | 2022 |
| 5 | Improved Baseline | ResNet-50 | 47.1% | — | — | 原始版 Random | Pakzad et al. | 2022 |
| 6 | Baseline (Groh) | VGG-16 | 20.2% | — | — | 原始版 Random | Groh et al. | 2021 |
说明:EOM = Equality of Opportunity Match(True Positive Parity),DPM = Demographic Parity Match。In-domain = train/test 同分布。准确率差异大主要因为划分方式(原始版 vs 清理版)和骨干网络不同。
§8.2 跨肤色性能详情(CIRCLe, ResNet-50)
| FST | 准确率 | 说明 |
|---|---|---|
| Type I | 37.9% | 浅色皮肤,样本量最大但准确率非最高 |
| Type II | 42.3% | |
| Type III | 52.8% | 中等肤色,准确率最高 |
| Type IV | 59.2% | |
| Type V | 51.2% | |
| Type VI | 25.2% | 🔴 深色皮肤,准确率最低,与最高差距 34pp |
| Overall | 48.8% | |
| EOD | 0.474 | 越低越公平 |
| NAR | 0.252 | 越低越公平 |
关键发现:即使使用颜色不变表示学习(CIRCLe),Type VI(最深色皮肤)的准确率(25.2%)仍远低于 Type IV(59.2%),表明仅靠算法去偏不足以消除数据不平衡带来的公平性差距。
§8.3 Groh 2021 基线结果(VGG-16)
| 划分策略 | Overall Top-1 | Top-3 |
|---|---|---|
| Random holdout | 20.2% | 38.3% |
| Subject-level | — | — |
| Skin-type stratified | — | — |
按 FST 的准确率(Random holdout):
| FST | Top-1 Acc | 说明 |
|---|---|---|
| Type I | 15.8% | 最低之一 |
| Type V | 28.9% | 最高 |
| Type VI | 15.5% | 最低 |
注意:Groh 基线结果中 Type V 准确率最高(28.9%),这看似反直觉,但可能因为 Type V 图像的病灶特征更明显或背景干扰更少。Type I 和 Type VI 准确率最低(~15.5%),前者可能因浅色皮肤上红斑干扰,后者因样本量极小。
§8.4 SOTA 方法分析
PatchAlign (2024) — 当前 SOTA:
- 核心:Graph Optimal Transport (GOT) 跨域对齐,将图像 patch 与文本标签对齐
- 创新点:MGOT 扩展预测 patch 级掩码,下权重非病灶区域
- 损失函数:L_total = L_c + α·L_conf + L_s + β·L_GOT
- 优势:同时提升精度(88.6%)和公平性(EOM 74.8%)
- Out-domain 性能:84.0-77.6%(跨肤色泛化)
CIRCLe (2022) — 颜色不变表示学习:
- 核心:颜色不变正则化损失,约束模型学习跨肤色相似表示
- 骨干:ResNet-50
- 优势:将基线准确率从 20.2% 提升至 48.8%,同时改善公平性
§8.5 评测协议
| 步骤 | 说明 |
|---|---|
| 1. 数据准备 | 使用 Fitzpatrick17k-C 清理版,70/10/20 标准划分 |
| 2. 预处理 | 缩放至 224×224,ImageNet 均值/标准差归一化 |
| 3. 数据增强 | Random crop (scale 0.8-1.0), ±15° rotation, H/V flip |
| 4. 训练 | ImageNet 预训练骨干,SGD 或 AdamW,250 epochs |
| 5. 评估指标 | Top-1 Acc, Macro-F1, Per-FST Acc, EOD, DPM, Gini |
| 6. 公平性报告 | 必须报告 per-FST 指标,遵循 CLEAR Derm AI 标准 |
| 7. 外部验证 | 在 DDI 数据集上验证跨数据集泛化 |
§8.6 相关数据集与生态
| 数据集 | 关系 | 说明 |
|---|---|---|
| DDI (Diverse Dermatology Images) | 互补验证 | 656 张专家标注 + FST + 组织病理确认,F17k 的理想外部验证集 |
| ISIC Archive | 对比 | 全球最大皮肤镜图像库,无 FST 标注 |
| HAM10000 | 对比 | 10,015 张皮肤镜图像,组织病理金标准,无 FST |
| DermaMNIST | 派生 | 基于 HAM10000 的 MedMNIST 子集 |
| Fitzpatrick17k-C | 清理版 | 去重去泄漏标准化版,推荐使用 |
| PAD-USF-20 | 前身 | F17k 之前唯一的 FST 标注皮肤数据集(579 张) |
§8.7 生态快照
┌─────────────────────────────────────────────────────────────────┐
│ Fitzpatrick 17k 生态系统 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 数据源 │
│ ├─ DermaAmin (12,672 张) ─────────────────────┐ │
│ ├─ Atlas Dermatologico (3,905 张) ────────────┤ │
│ └─ 标注:Scale AI + Centaur Labs ─────────────┤ │
│ │ │
│ 核心数据集 ──────────────────────────────────────┘ │
│ Fitzpatrick 17k (16,577 张, 114 类, FST I-VI) │
│ │ │
│ ├─→ 清理版 Fitzpatrick17k-C (11,394 张) │
│ │ └─ Abhishek et al. 2024, SFU, Nature Scientific Data │
│ │ │
│ ├─→ 公平性方法研究 │
│ │ ├─ CIRCLe (Pakzad 2022) — 颜色不变表示学习 │
│ │ ├─ FairDisCo (2024) — 公平判别对比学习 │
│ │ ├─ PatchAlign (Aayushman 2024) — 图最优传输对齐 │
│ │ └─ SoftOtsuNet (Marami 2023) — 病灶感知数据增强 │
│ │ │
│ ├─→ 标注透明性研究 │
│ │ └─ Groh et al. 2022 CSCW — 专家 vs 众包 vs 算法 │
│ │ └─ 发现 ITA 不可靠,众包动态共识可达专家水平 │
│ │ │
│ ├─→ 数据质量审计 │
│ │ └─ Abhishek et al. 2024 — 重复/泄漏/误标系统分析 │
│ │ └─ 建立皮肤病影像数据质量审计方法论 │
│ │ │
│ ├─→ 生成模型公平性 │
│ │ └─ López-Pérez et al. 2025 — 皮肤病图像生成中的种族偏差 │
│ │ │
│ └─→ 教育材料肤色表示 │
│ └─ STAR-ED — 用 F17k 训练肤色估计模型评估医学教材 │
│ │
│ 外部验证 │
│ └─ DDI (656 张, 专家+病理确认) — F17k 的理想外部验证集 │
│ │
└─────────────────────────────────────────────────────────────────┘
§8.8 社区影响
-
学术影响:Google Scholar 引用 850+(截至 2026-08),CVPR ISIC Workshop 荣誉提名
-
标准推动:推动 CLEAR Derm AI 标准要求皮肤病 AI 模型必须报告 per-demographic 指标
-
政策影响:被引用于 FDA 关于 AI/ML 医疗器械公平性评估的讨论文件
-
教育影响:STAR-ED 项目使用 F17k 训练肤色估计模型,评估医学教材中的肤色表示多样性
-
后续数据集启发:DDI 数据集的创建直接受 F17k 启发,但规模更小、质量更高
§9 相关资源与引用(Resources & Citation)
§9.1 BibTeX 引用
@inproceedings{groh2021evaluating,
title={Evaluating Deep Neural Networks Trained on Clinical Images in Dermatology with the Fitzpatrick 17k Dataset},
author={Groh, Matthew and Harris, Caleb and Soenksen, Luis and Lau, Felix and Han, Rachel and Kim, Aerin and Koochek, Arash and Badri, Omar},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW)},
pages={18201828},
year={2021}
}
@article{groh2022towards,
title={Towards Transparency in Dermatology Image Datasets with Skin Tone Annotations by Experts, Crowds, and an Algorithm},
author={Groh, Matthew and Harris, Caleb and Daneshjou, Roxana and Badri, Omar and Koochek, Arash},
journal={Proceedings of the ACM on Human-Computer Interaction},
volume={6},
number={CSCW2},
pages={126},
year={2022},
publisher={ACM}
}
@article{abhishek2025investigating,
title={Investigating the Quality of {DermaMNIST} and {Fitzpatrick17k} Dermatological Image Datasets},
author={Abhishek, Kumar and Jain, Aditi and Hamarneh, Ghassan},
journal={Scientific Data},
volume={12},
number={1},
pages={196},
year={2025},
publisher={Nature Publishing Group}
}
§9.2 官方资源
§9.3 相关论文
- Groh et al. 2021 — “Evaluating Deep Neural Networks Trained on Clinical Images in Dermatology with the Fitzpatrick 17k Dataset” (CVPRW)
- Groh et al. 2022 — “Towards Transparency in Dermatology Image Datasets with Skin Tone Annotations by Experts, Crowds, and an Algorithm” (CSCW)
- Abhishek et al. 2025 — “Investigating the Quality of DermaMNIST and Fitzpatrick17k Dermatological Image Datasets” (Scientific Data)
- Pakzad et al. 2022 — “CIRCLe: Color Invariant Representation Learning for Classifying Skin Lesions with Fairness” (ECCV)
- Aayushman et al. 2024 — “PatchAlign: Fair and Accurate Skin Disease Image Classification by Alignment with Clinical Labels” (arXiv:2409.04975)
- Marami et al. 2023 — “Unsupervised SoftOtsuNet Augmentation for Clinical Dermatology Image Classifiers” (PMC10785922)
- López-Pérez et al. 2025 — “Are generative models fair? A study of racial bias in dermatological image generation”
§9.4 许可证
- 原始数据集:CC BY-NC-SA 3.0(Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported)
- ✅ 允许:研究、教育、非商业用途、演绎作品(需同等许可)
- ❌ 禁止:商业用途
- 要求:署名 + 相同许可共享
- 清理版元数据:CC BY 4.0(元数据)/ Apache 2.0(代码)
- 原始图像:版权属于 DermaAmin 和 Atlas Dermatologico 原始图集
§9.5 变更日志
| 日期 | 变更 |
|---|---|
| 2021-04-20 | 数据集首次发布(arXiv 预印本) |
| 2021-06 | CVPR 2021 ISIC Workshop 正式发表 |
| 2022-07 | 添加 Centaur Labs 标注和评估文件夹 |
| 2022-11 | Groh 2022 CSCW 论文发表 |
| 2024-05 | Fitzpatrick17k-C 清理版发布(Zenodo) |
| 2025-02 | Abhishek et al. 正式发表于 Nature Scientific Data |
§10 AI 使用声明卡
§10.1 AI 内容声明
本页面的医学背景、技术描述、代码示例和基准性能数据由 AI 辅助生成,经千方病案医学编辑部交叉审核后发布。AI 生成的内容基于以下输入:
| 输入类型 | 来源 |
|---|---|
| 数据集论文 | Groh et al. 2021 (CVPRW), 2022 (CSCW) |
| 数据质量研究 | Abhishek et al. 2024/2025 (Scientific Data) |
| 公平性方法论文 | Pakzad et al. 2022 (CIRCLe), Aayushman et al. 2024 (PatchAlign) |
| 社区文档 | GitHub 仓库、OpenMedLab、Emergent Mind |
| PDF 基础介绍 | 《Global Medical AI Datasets》第 10-11 页 |
§10.2 人工校验
| 校验项 | 状态 |
|---|---|
| INFOBOX 数据准确性 | ✅ |
| ICD-11 / SNOMED CT 映射 | ✅ |
| 代码可运行性 | ✅ |
| 引用与链接有效性 | ✅ |
| DAIMS 评估客观性 | ✅ |
| 公平性指标正确性 | ✅ |
§10.3 页面状态
页面状态:published
本页面已通过千方病案医学编辑部交叉审核,内容基于公开学术文献和官方文档。数据集描述、性能基准和代码示例仅供研究参考,不构成医疗建议。
