信息速览
INFOBOX
| 数据集名称 | Kvasir & HyperKvasir |
| 英文全称 | Kvasir: A Multi-Class Image Dataset for Computer Aided Gastrointestinal Disease Detection; HyperKvasir: A Comprehensive Multi-Class Image and Video Dataset for Gastrointestinal Endoscopy |
| 别名 / 简称 | Kvasir、Kvasir v1/v2、Kvasir-SEG、HyperKvasir、Kvasir-Capsule、Kvasir 家族 |
| 疾病分类 | 多疾病覆盖。核心映射:DB90.Z 结肠息肉 / DD71 溃疡性结肠炎 / DA22 食管炎 / DA21 Barrett 食管 / DA40 胃十二指肠溃疡 |
| SNOMED CT | 64766003 Polyp / 68566008 Ulcerative colitis / 235919004 Esophagitis / 307731004 Barrett’‘’‘’‘’‘’‘’‘’‘’'s esophagus / 74400008 Esophageal varices 等 47 类映射(详见 §2.2) |
| 数据模态 | 影像(内窥镜静态图像 + 内窥镜动态视频 + 胶囊内镜视频) |
| AI 任务类型 | 图像分类、语义分割、目标检测、视频时序识别、半监督学习、异常检测 |
| 样本总数 | HyperKvasir: 110,079 张图像 + 374 条视频;Kvasir-Capsule: 117 条视频 / 47,238 张标注帧;Kvasir 原始: 8,000 张图像;Kvasir-SEG: 1,000 张息肉分割图像 |
| 数据大小 | ~158 GB(全家族): HyperKvasir ~66.4 GB + Kvasir-Capsule ~90.6 GB + Kvasir 原始 ~1.2 GB + Kvasir-SEG ~0.1 GB |
| 数据格式 | JPEG / PNG(图像)/ MP4(视频)/ CSV(标签 + 边界框)/ MAT(分割掩码) |
| 许可证 | Creative Commons Attribution 4.0 International (CC BY 4.0) |
| 访问级别 | 开放(免费直接下载,无需注册) |
| DUO 标签 | NRES, GRU |
| 语言 | 英文(类名与元数据) |
| 首发日期 | 2017-06-20(Kvasir 原始,ACM MMSys 2017) |
| 最后更新 | 2021-05-27(Kvasir-Capsule 发布,Scientific Data) |
| 发布机构 | Simula Metropolitan Center for Digital Engineering (SimulaMet) & Bærum Hospital, Vestre Viken Hospital Trust, Norway |
| 官方主页 | https://datasets.simula.no/hyper-kvasir/ |
| 下载地址 | https://doi.org/10.17605/OSF.IO/MH9SJ (HyperKvasir) / https://osf.io/dv2ag/ (Kvasir-Capsule) / https://datasets.simula.no/kvasir/ (Kvasir 原始) |
| DOI | 10.1038/s41597-020-00622-y (HyperKvasir) / 10.1038/s41597-021-00920-z (Kvasir-Capsule) / 10.1145/3083187.3083212 (Kvasir 原始) |
| 引用次数 | 4,700+(Google Scholar 全家族合计,截至 2026-08):Kvasir-SEG 2,485+ / Kvasir 原始 1,044+ / HyperKvasir 693+ / Kvasir-Capsule 325+ |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 大规模多模态数据 + 专家标注 + CC BY 4.0 完全开放;扣分项:无官方 train/test 划分、单中心来源、类别严重不平衡 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 映射、临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部]交叉审核:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-08-06
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Kvasir 家族采用 CC BY 4.0 许可,允许商业用途但须署名引用。Kvasir-Capsule 额外声明:竞赛和商业用途需事先书面许可。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
Kvasir & HyperKvasir 是由挪威 SimulaMet 研究中心与 Bærum 医院于 2017–2021 年间持续发布的胃肠道内窥镜 AI 数据集家族,包含超过 11 万张内窥镜图像和 491 条视频,覆盖上下消化道全解剖区域的 47 个精细标注类别,是全球规模最大的公开胃肠道内窥镜数据集。
它的独特价值在于构建了一个从"小规模分类基准"到"超大规模多模态训练库"的完整阶梯——Kvasir 原始数据集(8 类 8,000 张)定义了消化道 AI 分类的起点标准;Kvasir-SEG(1,000 张息肉像素级分割)催生了息肉分割领域的事实标准基准;HyperKvasir(11 万张 + 374 条视频)填补了上消化道和视频时序分析的空白;Kvasir-Capsule(117 条胶囊内镜视频)则为无线胶囊内镜 AI 开辟了新赛道。全家族论文合计被引用 4,700 余次。
你可以用它来:训练一个胃肠道内窥镜多病变分类 AI 系统、开发息肉自动检测与像素级分割模型、或者利用 99,417 张未标注图像进行半监督/自监督预训练。
§1.1 摘要
Kvasir 数据集家族由四个递进发布的子数据集构成:(1) Kvasir 原始数据集(Pogorelov et al., 2017),8 个类别共 8,000 张内窥镜图像,覆盖下消化道解剖标志(Z 线、幽门、盲肠)、病理发现(食管炎、息肉、溃疡性结肠炎)和治疗操作(染色提升息肉、染色切除边缘),由经验丰富的内镜医生标注并验证;(2) Kvasir-SEG(Jha et al., 2020),从 Kvasir v2 中提取 1,000 张息肉图像,由胃肠病学专家在 Labelbox 平台上完成像素级分割标注和边界框标注,成为息肉分割领域的标准基准;(3) HyperKvasir(Borgli et al., 2020),发表于 Nature Scientific Data,包含 110,079 张图像(10,662 张标注 + 99,417 张未标注)和 374 条标注视频,涵盖上消化道(16 类)和下消化道(24 类)共 40 个类别,是 Kvasir 家族的核心数据集;(4) Kvasir-Capsule(Smedsrud et al., 2021),117 条胶囊内镜视频(43 条标注 + 74 条未标注),47,238 张标注帧(14 类),总计 474 万帧,是全球最大的公开胶囊内镜数据集。
全部数据在挪威 Bærum 医院的实际临床检查中采集,使用 Olympus 内窥镜系统(含 ScopeGuide 电磁成像)和 Medtronic PillCam 胶囊内镜系统。标注流程采用"初级医生预标注 → 资深胃肠病学专家审核修正"的两级流程。数据遵循 GDPR 和挪威健康数据法规完全匿名化处理,以 CC BY 4.0 许可证公开发布,免费直接下载,无需注册。
§1.2 为什么重要
技术创新维度:Kvasir 家族代表了内窥镜 AI 数据从"小样本分类"到"超大规模多模态"的完整演进路径。2017 年 Kvasir 原始数据集发布时,公开的消化道内窥镜 AI 数据仅有数百张图像的规模;HyperKvasir 将这一数字推高到 11 万张并首次大规模纳入视频数据,使得视频时序识别、半监督学习等此前在消化道 AI 领域无法开展的研究方向成为可能。Kvasir-SEG 催生了息肉分割领域以 PraNet → PolypPVT → BetterNet 为代表的系列突破,mDice 从 U-Net 的 0.818 提升至 BetterNet 的 0.969(2024 年)。
应用影响维度:消化道癌症(结直肠癌、胃癌、食管癌)是全球第二大癌症死因,早期筛查依赖内窥镜检查但面临内镜医生短缺和阅片疲劳问题。Kvasir 家族为开发 AI 辅助检测和诊断系统提供了最大规模的公开训练数据,直接推动了 GI Genius(Medtronic)、ENDO-AID(Olympus)等 FDA/CE 获批的商业 AI 辅助内窥镜系统的研发。胶囊内镜方向,Kvasir-Capsule 的 474 万帧数据为解决胶囊内镜阅片耗时(每例 30–120 分钟)的痛点提供了唯一的超大规模公开基准。
生态推动维度:Kvasir 家族构建了消化道 AI 领域最完整的数据基础设施——Kvasir 原始定义了 8 类分类标准、Kvasir-SEG 定义了息肉分割标准划分(900/100 train/test)、HyperKvasir 扩展到 23 类图像分类 + 视频分析、Kvasir-Capsule 覆盖胶囊内镜赛道。SimulaMet 团队同步开源了完整的代码仓库和实验配置(GitHub: simula/kvasir-capsule),建立了可复现的实验框架。
§1.3 与同类数据集的横向对比
| 数据集 | 样本量 | 模态 | 标注方式 | 核心差异化 |
|---|---|---|---|---|
| HyperKvasir | 110,079 张 + 374 视频 | 内窥镜图像 + 视频 | 胃肠病学专家逐帧标注 + 像素级分割 | 全球最大 GI 内窥镜多模态数据集,含上消化道 |
| Kvasir-Capsule | 117 视频 / 47,238 标注帧 | 胶囊内镜视频 | 医学专业人员标注 + 边界框 | 全球最大公开胶囊内镜数据集 |
| Kvasir 原始 | 8,000 张 | 内窥镜图像 | 内镜医生标注验证 | 消化道 AI 分类的起点标准 |
| Kvasir-SEG | 1,000 张 | 内窥镜图像 + 掩码 | 像素级分割 + 边界框 | 息肉分割事实标准基准 |
| CVC-ClinicDB | 612 张 | 内窥镜图像 + 掩码 | 像素级分割 | 经典息肉分割基准(配合 Kvasir-SEG 使用) |
| ETIS-LaribPolyDB | 196 张 | 内窥镜图像 + 掩码 | 像素级分割 | 息肉分割泛化性测试集 |
| CVC-ColonDB | 380 张 | 内窥镜图像 + 掩码 | 像素级分割 | 息肉分割泛化性测试集 |
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2017-06 | Kvasir 原始数据集发布(ACM MMSys 2017,Pogorelov et al.),v1 含 4,000 张图像 / 8 类 |
| 2017-06 | Kvasir v2 扩展至 8,000 张图像(每类 1,000 张) |
| 2020-01 | Kvasir-SEG 发布(MMM 2020,Jha et al.),1,000 张息肉分割图像 + 像素级掩码 |
| 2020-08 | HyperKvasir 发布(Nature Scientific Data,Borgli et al.),110,079 张图像 + 374 条视频 |
| 2021-05 | Kvasir-Capsule 发布(Nature Scientific Data,Smedsrud et al.),117 条胶囊内镜视频 |
§1.5 典型 AI 应用场景
- 多病变内窥镜图像分类:在 HyperKvasir 23 个标注类别上训练分类模型,自动识别息肉、溃疡、出血、Barrett 食管等病变
- 息肉自动检测与分割:利用 Kvasir-SEG 1,000 张像素级标注图像训练分割网络,实时检测并勾勒息肉边界
- 胶囊内镜异常检测:在 Kvasir-Capsule 47,238 张标注帧上训练模型,自动筛查血管发育不良、出血、溃疡等小肠病变
- 半监督/自监督预训练:利用 HyperKvasir 99,417 张未标注图像进行自监督预训练(MAE、SimCLR),再在小规模标注数据上微调
- 内窥镜视频时序分析:利用 HyperKvasir 374 条标注视频开发视频级病变检测和关键帧提取模型
§2 医学背景
§2.1 ICD-11 编码映射
Kvasir 家族覆盖消化道全段多种病变,以下为核心映射:
| 数据集标签 | ICD-11 编码 | ICD-11 中文疾病名 |
|---|---|---|
| Polyps (息肉) | DB90.Z | 结肠息肉 |
| Ulcerative colitis (溃疡性结肠炎) | DD71 | 溃疡性结肠炎 |
| Esophagitis (食管炎) | DA22 | 食管炎 |
| Barrett’‘’‘’‘’‘’‘’‘’‘’'s esophagus (Barrett 食管) | DA21 | Barrett 食管 |
| Z-line (Z 线/齿状线) | DA40.Z | 胃食管连接处正常解剖标志 |
| Pylorus (幽门) | DA60.Z | 幽门正常解剖标志 |
| Cecum (盲肠) | DB50.Z | 盲肠正常解剖标志 |
| Hemorrhoids (痔疮) | DB60 | 痔 |
| Angiectasia (血管发育不良) | DK60 | 消化道血管发育不良 |
| Ulcer (溃疡) | DA41 | 胃溃疡 / DB61 结肠溃疡 |
§2.1b SNOMED CT 映射
| 数据集标签 | ICD-11 | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|
| Polyp | DB90.Z | 64766003 | Polyp (morphologic abnormality) |
| Ulcerative colitis | DD71 | 68566008 | Ulcerative colitis (disorder) |
| Esophagitis | DA22 | 235919004 | Esophagitis (disorder) |
| Barrett’‘’‘’‘’‘’‘’‘’‘’'s esophagus | DA21 | 307731004 | Barrett’‘’‘’‘’‘’‘’‘’‘’'s esophagus (disorder) |
| Hemorrhoids | DB60 | 34756006 | Hemorrhoid (disorder) |
| Angiectasia | DK60 | 403619004 | Vascular ectasia of colon |
§2.2 疾病简介与流行病学
消化道肿瘤(结直肠癌、胃癌、食管癌)是全球第二大癌症死亡原因,每年导致超过 170 万人死亡。结直肠癌(CRC)尤其值得关注:全球每年新发病例约 190 万,死亡约 93 万。结肠镜筛查是 CRC 早期发现和预防的金标准——通过检测和切除癌前息肉可降低 CRC 发病率 70–90%。然而,结肠镜的腺瘤检出率(ADR)高度依赖内镜医生经验, miss rate 可达 20–28%。AI 辅助检测系统可将 ADR 提高 5–15%,Kvasir 家族为训练此类系统提供了最大规模的公开数据。
胶囊内镜(VCE)用于检查小肠(传统胃肠镜无法到达的区域),每次检查产生 5–8 小时视频(约 5–8 万帧),医生需逐帧审阅,耗时 30–120 分钟/例,漏诊率约 10–15%。Kvasir-Capsule 的 474 万帧数据为开发自动筛查系统提供了关键训练资源。
§2.3 临床任务定义
| 任务类型 | 临床场景 | 数据集 | AI 目标 |
|---|---|---|---|
| 筛查 | 结肠镜检查中实时息肉检测 | Kvasir-SEG, HyperKvasir | 高灵敏度检测息肉,降低 miss rate |
| 诊断 | 内窥镜图像多病变分类 | HyperKvasir | 区分 23 类病变,辅助诊断决策 |
| 分割 | 息肉边界勾勒 | Kvasir-SEG | 像素级精确分割,辅助切除规划 |
| 筛查 | 胶囊内镜异常检测 | Kvasir-Capsule | 自动标记异常帧,减少人工阅片时间 |
| 质控 | 肠道准备质量评估 | HyperKvasir (BBPS) | 自动评分 Boston 肠道准备量表 |
§2.4 患者人群特征
| 维度 | 特征 |
|---|---|
| 数据来源 | 挪威 Bærum Hospital (Vestre Viken Hospital Trust),单中心 |
| 采集时间 | 2016–2020 年(回顾性采集) |
| 年龄分布 | 成人患者(具体年龄未公开释放,数据已匿名化) |
| 性别比例 | 未公开释放性别信息(GDPR 匿名化) |
| 种族分布 | 以挪威/北欧白人为主(单中心局限性) |
| 就医类型 | 门诊和住院胃肠内窥镜检查 + 胶囊内镜检查 |
§2.5 临床意义
消化道 AI 的核心价值在于解决"看不过来"和"看不准"两个痛点。结肠镜检查中,息肉漏检率高达 20–28%,尤其小型扁平息肉(< 5mm)和位于盲肠褶皱后的息肉。胶囊内镜面临更严峻的挑战——每例 5–8 万帧图像使医生疲劳导致漏诊。AI 辅助系统可将息肉检出率提高 5–15%(GI Genius 临床试验数据),胶囊内镜阅片时间可缩短 50–70%。Kvasir 家族作为全球最大的公开消化道内窥镜数据集,是训练和验证此类 AI 系统的首选基准。
§2.6 金标准
| 数据子集 | 标注方式 | 标注者 | 金标准性质 |
|---|---|---|---|
| Kvasir 原始 (8 类) | 图像级分类标签 | 经验丰富的内镜医生标注并验证 | 专家共识参考标准 |
| Kvasir-SEG (1,000 张) | 像素级分割掩码 + 边界框 | 初级医生预分割 → 胃肠病学专家审核修正 (Labelbox) | 专家审核参考标准 |
| HyperKvasir 标注图像 (10,662 张) | 图像级分类标签 (23 类) | 初级医生/PhD 学生预标注 → 胃肠病学专家审核修正 | 专家审核参考标准 |
| HyperKvasir 分割 (1,000 张) | 像素级分割掩码 + 边界框 | 初级医生预分割 → 胃肠病学专家审核 (Labelbox) | 专家审核参考标准 |
| HyperKvasir 视频 (374 条) | 视频级分类标签 (30 类) | 经验丰富的胃肠病学专家在 Augere Medical 平台标注 | 专家标注参考标准 |
| Kvasir-Capsule 标注帧 (47,238 张) | 图像级分类标签 (14 类) + 边界框 | 医学专业人员标注并验证 | 专家标注参考标准 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 快速分类 baseline / 论文复现 | Kvasir 原始 v2 | ~1.2 GB | 8 类 8,000 张,训练快,文献基准丰富 |
| 息肉分割研究 | Kvasir-SEG | ~0.1 GB | 1,000 张像素级标注,标准 900/100 划分,可与 CVC-ClinicDB 联合使用 |
| 大规模分类 / 半监督预训练 | HyperKvasir | ~66.4 GB | 110,079 张图像(含 99,417 张未标注)+ 374 条视频,23 类标注 |
| 胶囊内镜 AI | Kvasir-Capsule | ~90.6 GB | 117 条视频 / 47,238 标注帧,全球最大公开 VCE 数据集 |
| 全消化道覆盖 | 全家族组合 | ~158 GB | 上下消化道 + 小肠全段覆盖,最完整训练数据 |
§3.1 模态详细说明
Kvasir 家族覆盖三种内窥镜模态:
-
电子胃肠内窥镜图像(Kvasir 原始 + Kvasir-SEG + HyperKvasir 图像):使用 Olympus 内窥镜系统在胃镜和结肠镜检查中采集。部分图像包含 Olympus ScopeGuide 电磁成像系统的绿色画中画(显示内窥镜在肠道内的位置和配置),位于图像左下角。图像分辨率从 720×576 到 1920×1072 不等(Kvasir 原始)和 528×528 到 1920×1072 不等(HyperKvasir),JPEG 格式存储。
-
电子胃肠内窥镜视频(HyperKvasir 视频):374 条从实际胃镜/结肠镜检查中提取的视频片段,时长从数秒到数分钟不等,存储为 MP4 格式。每条视频由经验丰富的胃肠病学专家在 Augere Medical AS 视频标注平台上标注,标注代表视频中的主要发现。视频帧率从 5 fps 到 60 fps 不等。
-
胶囊内镜视频(Kvasir-Capsule):117 条 PillCam 胶囊内镜视频(Medtronic),包含 43 条标注视频(约 19 小时 / 1,955,675 帧)和 74 条未标注视频(约 25 小时 / 2,785,829 帧),总计 4,741,621 帧。标注帧以 PNG 格式存储,视频以原始格式存储。
§3.2 样本总数
| 子数据集 | 组成 | 样本数 | 类别数 |
|---|---|---|---|
| Kvasir 原始 v1 | 图像 | 4,000 张 | 8 类 |
| Kvasir 原始 v2 | 图像 | 8,000 张 | 8 类 |
| Kvasir-SEG | 图像 + 分割掩码 | 1,000 张 | 1 类(息肉) |
| HyperKvasir 标注图像 | 图像 | 10,662 张 | 23 类 |
| HyperKvasir 未标注图像 | 图像 | 99,417 张 | — |
| HyperKvasir 分割图像 | 图像 + 分割掩码 | 1,000 张 | 1 类(息肉) |
| HyperKvasir 标注视频 | 视频 | 374 条 | 30 类 |
| Kvasir-Capsule 标注帧 | 图像 | 47,238 张 | 14 类 |
| Kvasir-Capsule 未标注帧 | 视频 | 4,694,266 帧 | — |
| Kvasir-Capsule 视频 | 视频 | 117 条 | — |
§3.3 数据格式
| 文件类型 | 格式 | 尺寸/规格 | 说明 |
|---|---|---|---|
| 图像(Kvasir 原始) | JPEG | 720×576 ~ 1920×1072 | 按类别文件夹组织 |
| 图像(HyperKvasir) | JPEG | 528×528 ~ 1920×1072 | 按类别文件夹组织 |
| 图像(Kvasir-Capsule) | PNG | 可变分辨率 | 按类别文件夹组织 |
| 分割掩码(Kvasir-SEG) | PNG/MAT | 与原图同尺寸 | 像素级二值掩码 + 边界框 |
| 分割掩码(HyperKvasir) | PNG | 与原图同尺寸 | 像素级掩码 + 边界框 |
| 视频(HyperKvasir) | MP4 | 5–60 fps, 可变分辨率 | 按类别文件夹组织 |
| 标签(HyperKvasir) | CSV | image-labels.csv / video-labels.csv | 文件名 → 类别映射 |
| 标签(Kvasir-Capsule) | CSV | metadata.csv | 文件名 → 类别 + 边界框坐标 |
| 标签(Kvasir-SEG) | 文件夹结构 | — | 图像与掩码同名配对 |
§3.4 存储大小
| 子数据集 | 压缩大小 | 解压后大小 | 说明 |
|---|---|---|---|
| Kvasir 原始 v2 | ~1.2 GB | ~1.5 GB | kvasir-dataset.zip |
| Kvasir-SEG | ~115 MB | ~200 MB | 图像 + 掩码 |
| HyperKvasir 图像 | ~33.9 GB | ~40 GB | 110,079 张 JPEG |
| HyperKvasir 视频 | ~32.5 GB | ~35 GB | 374 条 MP4 |
| HyperKvasir 分割掩码 | ~57 MB | ~100 MB | 1,000 张掩码 |
| Kvasir-Capsule 标注图像 | ~521 MB | ~700 MB | 47,238 张 PNG |
| Kvasir-Capsule 标注视频 | ~32.2 GB | ~35 GB | 43 条视频 |
| Kvasir-Capsule 未标注视频 | ~58.2 GB | ~62 GB | 74 条视频 |
§3.5 标注方式
HyperKvasir 图像标注流程(三级标注):
- 类别定义:经验丰富的胃肠病学专家根据医学相关性和采集数据决定纳入的类别,并对每个类别进行详细医学描述
- 预标注:2 名初级医生/PhD 学生在类别定义指导下对图像子集进行预分类
- 审核修正:医学专家检查预标注结果并进行必要的调整
- 知情同意核查:无法找到知情同意的病例被丢弃并替换
Kvasir-SEG 分割标注流程:
- 上传 1,000 张息肉图像至 Labelbox 平台(支持像素级精确标注)
- 1 名初级医生和 1 名 PhD 学生进行预分割
- 1 名胃肠病学专家审核并修正所有预标注分割掩码
HyperKvasir 视频标注流程:
- 上传视频数据至 Augere Medical AS(挪威奥斯陆)视频标注平台
- 每条视频由 1 名经验丰富的胃肠病学专家分析并标注
- 标注代表视频中的主要发现;如视频包含多种发现,详细描述记录在 video-labeling.csv
§3.6 标注者信息
| 标注角色 | 人数 | 资质 | 一致性检验 |
|---|---|---|---|
| 类别定义者 | 多名 | 经验丰富的胃肠病学专家 | — |
| 图像预标注者 | 2 名 | 初级医生 / PhD 学生(消化道方向) | 由专家审核修正 |
| 分割预标注者 | 2 名 | 1 名初级医生 + 1 名 PhD 学生 | 由专家审核修正 |
| 视频标注者 | 多名 | 经验丰富的胃肠病学专家 | — |
| 审核者 | 多名 | 胃肠病学专家 | 逐张/逐条审核 |
§3.7 采集时间
数据采集于 2016–2020 年间,从挪威 Bærum 医院的常规胃肠内窥镜检查和胶囊内镜检查中回顾性提取。
§3.8 地域覆盖
单一中心:挪威 Bærum Hospital(Vestre Viken Hospital Trust)。数据来源为挪威人群,以白种人为主,可能存在种族代表性局限。
§3.9 采集设备规格
| 设备 | 用途 | 说明 |
|---|---|---|
| Olympus 内窥镜系统 | 胃镜/结肠镜 | 含 ScopeGuide 电磁成像(绿色画中画显示内窥镜位置) |
| Medtronic PillCam | 胶囊内镜 | Kvasir-Capsule 使用,无线胶囊内镜系统 |
| Augere Medical AS 标注平台 | 视频标注 | 专业内窥镜视频标注工具 |
§3.10 深度溯源链
患者检查 (Bærum Hospital, Norway)
│
├── 胃镜/结肠镜检查 → Olympus 内窥镜系统 → 视频采集
│ │
│ ├── 帧提取 → JPEG 图像 → 类别标注 → HyperKvasir 标注图像
│ ├── 帧提取 → JPEG 图像 → 无标注 → HyperKvasir 未标注图像
│ ├── 视频片段 → MP4 → 视频标注 → HyperKvasir 标注视频
│ └── 息肉帧提取 → Labelbox 像素级标注 → HyperKvasir 分割图像
│
└── 胶囊内镜检查 → Medtronic PillCam → 视频采集
│
├── 关键帧提取 → PNG 图像 → 类别+边界框标注 → Kvasir-Capsule 标注帧
└── 完整视频 → 未标注 → Kvasir-Capsule 未标注视频
标注流程:
初级医生/PhD 学生预标注 → 胃肠病学专家审核修正 → 知情同意核查 → 最终标签
发布流程:
GDPR 合规匿名化 → CC BY 4.0 许可 → OSF 开放存储 → datasets.simula.no 公开
§4 数据结构详解
§4.0 目录树预览
<details>
<summary>HyperKvasir 目录结构(点击展开)</summary>
hyper-kvasir/
├── labeled-images/
│ ├── lower-gi-tract/
│ │ ├── anatomical-landmarks/
│ │ │ ├── cecum/
│ │ │ │ ├── 00a1f613-8a10-4e70-a0b5-...
│ │ │ ├── ileocecal-valve/
│ │ │ ├── retroflex-rectum/
│ │ │ └── retroflex-sigmoid/
│ │ ├── pathological-findings/
│ │ │ ├── hemorrhoids/
│ │ │ ├── polyp/
│ │ │ ├── polyp-resection/
│ │ │ └── ulcerative-colitis/
│ │ ├── quality-of-mucosal-views/
│ │ │ ├── bbps-0-1/
│ │ │ ├── bbps-2-3/
│ │ │ └── clean-mucosa/
│ │ └── therapeutic-interventions/
│ │ ├── dyed-lifted-polyps/
│ │ └── dyed-resection-margins/
│ └── upper-gi-tract/
│ ├── anatomical-landmarks/
│ │ ├── pylorus/
│ │ ├── retroflex-stomach/
│ │ └── z-line/
│ ├── pathological-findings/
│ │ ├── barretts/
│ │ ├── barretts-short-segment/
│ │ ├── esophagitis-a/
│ │ ├── esophagitis-b-d/
│ │ └── esophagitis/
│ ├── quality-of-mucosal-views/
│ │ ├── impacted-stool/
│ │ └── retroflex-stomach/
│ └── therapeutic-interventions/
│ ├── bleeding/
│ └── foreign-body/
├── segmented-images/
│ └── polyps/ # 1,000 张息肉图像 + 分割掩码
├── unlabeled-images/
│ └── [按文件夹组织] # 99,417 张未标注图像
├── videos/
│ └── [按类别文件夹组织] # 374 条标注视频
├── image-labels.csv # 标注图像的文件名→类别映射
├── video-labels.csv # 标注视频的文件名→类别映射 + 详细描述
└── find-a-specialist.pdf
</details>
<details>
<summary>Kvasir 原始数据集目录结构(点击展开)</summary>
kvasir-dataset/
├── dyed-lifted-polyps/ # 1,000 张 (v2)
├── dyed-resection-margins/ # 1,000 张 (v2)
├── esophagitis/ # 1,000 张 (v2)
├── normal-cecum/ # 1,000 张 (v2)
├── normal-pylorus/ # 1,000 张 (v2)
├── normal-z-line/ # 1,000 张 (v2)
├── polyps/ # 1,000 张 (v2)
└── ulcerative-colitis/ # 1,000 张 (v2)
</details>
<details>
<summary>Kvasir-SEG 目录结构(点击展开)</summary>
kvasir-seg/
├── images/ # 1,000 张息肉原图 (JPEG)
├── masks/ # 1,000 张分割掩码 (PNG, 二值)
└── metadata.json # 边界框坐标等信息
</details>
§4.1 DAIMS 标准化字段描述表
| 字段名 | 数据类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| filename | string | 图像/视频文件名 | 00a1f613-8a10-4e70-...jpg |
文件定位 | — | — | UUID 格式 |
| class | string | 类别标签 | polyp |
分类目标 | 标注者间差异 | — | 23 类 (HyperKvasir) / 14 类 (Capsule) / 8 类 (Kvasir) |
| category | string | 大类分组 | pathological-findings |
分层分析 | — | — | 4 大类 |
| gi_tract | string | 消化道段 | lower-gi-tract |
分段分析 | — | — | upper / lower |
| bbox_x | integer | 边界框左上角 x 坐标 | 120 |
目标检测 | 1 px | — | 0 ~ 图像宽度 |
| bbox_y | integer | 边界框左上角 y 坐标 | 85 |
目标检测 | 1 px | — | 0 ~ 图像高度 |
| bbox_w | integer | 边界框宽度 | 350 |
目标检测 | 1 px | — | > 0 |
| bbox_h | integer | 边界框高度 | 280 |
目标检测 | 1 px | — | > 0 |
| mask | image | 像素级分割掩码 | 二值 PNG | 语义分割 | 边界标注误差 1–2 px | — | 0 (背景) / 255 (息肉) |
| video_id | string | 视频标识符 | video_042 |
视频分组 | — | — | — |
| frame_idx | integer | 视频帧索引 | 1234 |
时序定位 | — | — | 0 ~ 视频总帧数 |
§4.2 标签分布统计
<details>
<summary>HyperKvasir 标注图像 23 类分布(点击展开)</summary>
| 大类 | 子类 | 图像数 |
|---|---|---|
| 下消化道 - 解剖标志 | cecum | — |
| ileocecal-valve | — | |
| retroflex-rectum | — | |
| retroflex-sigmoid | — | |
| 下消化道 - 病理发现 | hemorrhoids | — |
| polyp | — | |
| polyp-resection | — | |
| ulcerative-colitis | — | |
| 下消化道 - 黏膜视野质量 | bbps-0-1 | — |
| bbps-2-3 | — | |
| clean-mucosa | — | |
| 下消化道 - 治疗操作 | dyed-lifted-polyps | — |
| dyed-resection-margins | — | |
| 上消化道 - 解剖标志 | pylorus | — |
| retroflex-stomach | — | |
| z-line | — | |
| 上消化道 - 病理发现 | barretts | — |
| barretts-short-segment | — | |
| esophagitis-a | — | |
| esophagitis-b-d | — | |
| esophagitis | — | |
| 上消化道 - 黏膜视野质量 | impacted-stool | — |
| 上消化道 - 治疗操作 | bleeding | — |
| foreign-body | — | |
| 总计 | 23 类 | 10,662 张 |
</details>
<details>
<summary>Kvasir 原始数据集 8 类分布(点击展开)</summary>
| 类别 | 英文名 | 图像数 (v2) |
|---|---|---|
| 染色提升息肉 | dyed-lifted-polyps | 1,000 |
| 染色切除边缘 | dyed-resection-margins | 1,000 |
| 食管炎 | esophagitis | 1,000 |
| 正常盲肠 | normal-cecum | 1,000 |
| 正常幽门 | normal-pylorus | 1,000 |
| 正常 Z 线 | normal-z-line | 1,000 |
| 息肉 | polyps | 1,000 |
| 溃疡性结肠炎 | ulcerative-colitis | 1,000 |
| 总计 | 8 类 | 8,000 |
</details>
<details>
<summary>Kvasir-Capsule 14 类分布(点击展开)</summary>
| 大类 | 子类 | 帧数 | 占比 |
|---|---|---|---|
| 解剖 (Anatomy) | Ileocecal valve | — | — |
| Pylorus | — | — | |
| Normal clean mucosa | ~34,484 | ~73% | |
| 管腔发现 (Luminal findings) | Angiectasia | — | — |
| Blood - fresh | — | — | |
| Erosion | — | — | |
| Erythema | — | — | |
| Foreign Body | — | — | |
| Lymphangiectasia | — | — | |
| Reduced Mucosal View | — | — | |
| Ulcer | — | — | |
| [其他 3 类] | — | — | |
| 总计 | 14 类 | 47,238 | 100% |
⚠️ 注意:Normal clean mucosa 类别占标注帧的约 73%,存在严重的类别不平衡问题。
</details>
§4.3 数据统计
- HyperKvasir 图像分辨率范围:528×528 ~ 1920×1072 像素
- Kvasir 原始图像分辨率范围:720×576 ~ 1920×1072 像素
- Kvasir-SEG 图像分辨率范围:332×487 ~ 1920×1072 像素
- HyperKvasir 视频帧率范围:5 ~ 60 fps
- Kvasir-Capsule 标注视频总时长:约 19 小时(43 条标注视频)
- Kvasir-Capsule 未标注视频总时长:约 25 小时(74 条未标注视频)
§4.4 数据层级关系
患者 (匿名)
└── 内窥镜检查 (一次检查产生多条视频/多组图像)
├── 图像帧 (JPEG/PNG)
│ └── 分类标签 (23/14/8 类) + 边界框 + 分割掩码
└── 视频片段 (MP4)
└── 视频级标签 (30 类) + 帧级标注
§4.5 缺失值情况
| 数据子集 | 缺失情况 | 说明 |
|---|---|---|
| HyperKvasir 标注图像 | 无缺失 | 所有 10,662 张标注图像均有类别标签 |
| HyperKvasir 未标注图像 | 类别标签缺失(设计如此) | 99,417 张图像无标签,用于半监督/自监督学习 |
| HyperKvasir 视频 | 部分多发现描述缺失 | video-labels.csv 中部分视频仅标注主发现,次要发现描述可能不完整 |
| Kvasir-Capsule 边界框 | 47,238 帧均有边界框 | 无缺失 |
| 患者元数据 | 全部缺失(设计如此) | GDPR 匿名化:年龄、性别、种族均未释放 |
§5 数据划分与使用建议
§5.1 官方划分
Kvasir 家族不提供官方 train/val/test 划分(Kvasir-Capsule 例外,GitHub 仓库提供了一种示例划分)。
§5.2 社区标准划分
Kvasir-SEG 息肉分割标准划分(由 PraNet 论文 Fan et al., 2020 确立,已成为事实标准):
| 划分 | Kvasir-SEG | CVC-ClinicDB |
|---|---|---|
| 训练集 | 900 张 | 550 张 |
| 测试集 | 100 张 | 62 张 |
| 总计 | 1,000 张 | 612 张 |
⚠️ 此划分由 PraNet 论文首次采用,后续几乎所有息肉分割论文(PolypPVT、SSFormer、HSNet、BetterNet 等)均沿用此划分以确保结果可比。
Kvasir 原始数据集常用划分:
| 划分方式 | 训练集 | 测试集 | 说明 |
|---|---|---|---|
| 80/20 随机划分 | 6,400 张 | 1,600 张 | 最常见,每类 800/200 |
| 5 折交叉验证 | 6,400 张 | 1,600 张 | 论文常用 |
| 按类别留一法 | 7,000 张 | 1,000 张 | 少见 |
§5.3 划分建议
| 任务 | 推荐划分策略 | 理由 |
|---|---|---|
| Kvasir-SEG 息肉分割 | PraNet 标准 900/100 | 社区事实标准,确保结果可比 |
| HyperKvasir 图像分类 | 80/10/10 按患者划分 | 避免同一患者图像出现在训练集和测试集 |
| Kvasir-Capsule 分类 | 按视频划分(非按帧) | 避免相邻帧泄漏(关键坑点) |
| 半监督学习 | 标注图像做 labeled set,未标注图像做 unlabeled set | 充分利用 99,417 张未标注数据 |
§5.4 按患者划分的重要性
Kvasir 家族数据来自真实内窥镜检查,同一患者的多张图像/多个视频帧高度相关。如果在训练集和测试集中包含同一患者的图像,会导致数据泄漏,测试性能虚高。始终按患者级别划分,即使数据集未提供患者 ID——可通过文件命名模式或采集时间推断同一检查的图像组。
§5.5 常见错误划分
- ❌ 按帧随机划分视频数据:同一视频的相邻帧同时出现在训练集和测试集中,导致严重数据泄漏(详见 §6.5 坑点 1)
- ❌ 按图像随机划分不按患者:同一患者的多张图像分散到训练集和测试集
- ❌ 混合 Kvasir v1 和 v2:v1 是 v2 的子集(每类前 500 张),混合使用会导致重复
§5.6 外部测试集推荐
| 外部测试集 | 样本量 | 用途 |
|---|---|---|
| CVC-ClinicDB | 612 张 | 息肉分割泛化性测试 |
| CVC-ColonDB | 380 张 | 息肉分割跨域泛化测试 |
| ETIS-LaribPolyDB | 196 张 | 息肉分割跨域泛化测试 |
| EndoScene | 60 张 | 息肉分割泛化测试 |
§6 AI 就绪指南
§6.1 快速上手
# ========================================
# Kvasir & HyperKvasir 快速上手 — PyTorch 版
# 环境要求: torch>=2.0, torchvision, pandas, pillow
#
# ⚠️ 目录结构预期:
# 请将下载的数据解压至 ./data/ 目录,确保以下结构:
# ./data/
# ├── hyper-kvasir/
# │ ├── labeled-images/ # 标注图像(按类别文件夹组织)
# │ ├── unlabeled-images/ # 未标注图像
# │ └── image-labels.csv # 标签映射
# └── kvasir-seg/
# ├── images/ # 息肉原图
# └── masks/ # 分割掩码
#
# CSV 中的 filename 列包含图像文件相对路径
# ========================================
import os
import pandas as pd
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
# - HyperKvasir 图像分类 DataLoader -
class HyperKvasirDataset(Dataset):
def __init__(self, data_root, csv_path, transform=None):
self.data_root = data_root
self.labels_df = pd.read_csv(csv_path)
self.transform = transform or transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
def __len__(self):
return len(self.labels_df)
def __getitem__(self, idx):
row = self.labels_df.iloc[idx]
img_path = os.path.join(self.data_root, row[''''''''''''''''filename''''''''''''''''])
image = Image.open(img_path).convert(''''''''''''''''RGB'''''''''''''''')
label = row[''''''''''''''''class'''''''''''''''']
if self.transform:
image = self.transform(image)
return image, label
# - Kvasir-SEG 息肉分割 DataLoader -
class KvasirSegDataset(Dataset):
def __init__(self, data_root, split=''''''''''''''''train'''''''''''''''', transform=None):
self.data_root = data_root
self.transform = transform
# PraNet 标准划分: 900 train / 100 test
all_images = sorted(os.listdir(os.path.join(data_root, ''''''''''''''''images'''''''''''''''')))
if split == ''''''''''''''''train'''''''''''''''':
self.images = all_images[:900]
else:
self.images = all_images[900:]
def __len__(self):
return len(self.images)
def __getitem__(self, idx):
img_name = self.images[idx]
image = Image.open(
os.path.join(self.data_root, ''''''''''''''''images'''''''''''''''', img_name)
).convert(''''''''''''''''RGB'''''''''''''''')
mask = Image.open(
os.path.join(self.data_root, ''''''''''''''''masks'''''''''''''''', img_name)
).convert(''''''''''''''''L'''''''''''''''')
if self.transform:
image = self.transform(image)
mask = mask.resize((224, 224), Image.NEAREST)
mask = torch.from_numpy(
np.array(mask, dtype=np.float32) / 255.0
).unsqueeze(0)
return image, mask
# 使用示例
dataset = HyperKvasirDataset(
data_root=''''''''''''''''./data/hyper-kvasir'''''''''''''''',
csv_path=''''''''''''''''./data/hyper-kvasir/image-labels.csv''''''''''''''''
)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True, num_workers=4)
for images, labels in dataloader:
print(f"Batch: {images.shape}, Labels: {labels[:5]}")
break
§6.2 数据获取
| 子数据集 | 下载地址 | 大小 | 下载方式 |
|---|---|---|---|
| HyperKvasir (完整) | https://doi.org/10.17605/OSF.IO/MH9SJ | ~66.4 GB | OSF 直接下载 |
| Kvasir-Capsule 标注图像 | https://osf.io/dv2ag/ | ~521 MB | OSF 直接下载 |
| Kvasir-Capsule 标注视频 | https://osf.io/dv2ag/ | ~32.2 GB | OSF 直接下载 |
| Kvasir-Capsule 未标注视频 | https://osf.io/dv2ag/ | ~58.2 GB | OSF 直接下载 |
| Kvasir 原始 v2 | https://datasets.simula.no/kvasir/data/kvasir-dataset.zip | ~1.2 GB | 直接下载 |
| Kvasir-SEG | https://datasets.simula.no/kvasir-seg/ | ~115 MB | 直接下载 |
全部数据采用 CC BY 4.0 许可,免费直接下载,无需注册或申请。Kvasir-Capsule 额外声明:竞赛和商业用途需事先书面许可(联系 paalh@simula.no)。
§6.3 预处理全流程
import numpy as np
from PIL import Image
import torchvision.transforms as T
# ========================================
# Kvasir 预处理 Pipeline
# ========================================
# 1. 图像分类预处理
classificationevent-blocked= T.Compose([
T.Resize((224, 224)),
T.RandomHorizontalFlip(p=0.5),
T.RandomRotation(degrees=10),
T.ColorJitter(brightness=0.2, conevent-blocked=0.2, saturation=0.2),
T.ToTensor(),
T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# 2. 息肉分割预处理(需同步处理图像和掩码)
def seg_transform(image, mask):
# 同步 Resize
image = image.resize((352, 352), Image.BILINEAR)
mask = mask.resize((352, 352), Image.NEAREST)
# 随机翻转(同步)
if np.random.random() > 0.5:
image = image.transpose(Image.FLIP_LEFT_RIGHT)
mask = mask.transpose(Image.FLIP_LEFT_RIGHT)
# 归一化
image = T.ToTensor()(image)
image = T.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])(image)
mask = torch.from_numpy(np.array(mask, dtype=np.float32) / 255.0)
return image, mask.unsqueeze(0)
# 3. ScopeGuide 画中画处理(关键预处理步骤!)
def remove_scopeguide_pip(image):
"""
部分图像左下角包含 Olympus ScopeGuide 绿色画中画。
该区域可能干扰模型学习,建议遮挡或裁剪。
绿色画中画通常位于左下角约 1/6 面积区域。
"""
img_array = np.array(image)
h, w = img_array.shape[:2]
# 左下角区域置零(黑色填充)
pip_h, pip_w = h // 5, w // 5
img_array[h - pip_h:, :pip_w, :] = 0
return Image.fromarray(img_array)
# 4. Kvasir-Capsule 类别平衡采样
def get_sampler_weights(labels, num_classes=14):
"""
Normal clean mucosa 类占 ~73%,需要加权采样平衡。
"""
class_counts = np.bincount(labels, minlength=num_classes)
class_weights = 1.0 / class_counts
sample_weights = class_weights[labels]
return sample_weights
§6.4 框架加载
<details>
<summary>TensorFlow / Keras DataLoader(点击展开)</summary>
import tensorflow as tf
import pandas as pd
import os
def create_hyperkvasir_tf_dataset(data_root, csv_path, batch_size=32):
labels_df = pd.read_csv(csv_path)
classes = sorted(labels_df[''''''''''''''''class''''''''''''''''].unique())
class_to_idx = {c: i for i, c in enumerate(classes)}
filepaths = [os.path.join(data_root, f) for f in labels_df[''''''''''''''''filename'''''''''''''''']]
labels = [class_to_idx[c] for c in labels_df[''''''''''''''''class'''''''''''''''']]
def load_image(path, label):
image = tf.io.read_file(path)
image = tf.image.decode_jpeg(image, channels=3)
image = tf.image.resize(image, [224, 224])
image = tf.keras.applications.efficientnet.preprocess_input(image)
return image, label
dataset = tf.data.Dataset.from_tensor_slices((filepaths, labels))
dataset = dataset.map(load_image, num_parallel_calls=tf.data.AUTOTUNE)
dataset = dataset.shuffle(buffer_size=1000)
dataset = dataset.batch(batch_size)
dataset = dataset.prefetch(tf.data.AUTOTUNE)
return dataset, len(classes)
# 使用示例
train_ds, num_classes = create_hyperkvasir_tf_dataset(
''''''''''''''''./data/hyper-kvasir'''''''''''''''', ''''''''''''''''./data/hyper-kvasir/image-labels.csv''''''''''''''''
)
print(f"类别数: {num_classes}")
</details>
§6.5 坑点
⚠️ 坑点 1:视频帧级划分导致数据泄漏(分类:数据泄漏)
问题:Kvasir-Capsule 和 HyperKvasir 视频数据中,同一视频的相邻帧高度相似(胶囊内镜帧率 2–6 fps)。如果按帧随机划分训练集和测试集,同一视频的相邻帧会同时出现在两个集合中,导致测试性能虚高 10–20%。
症状:模型在测试集上表现优异,但在真实新患者数据上性能暴跌。混淆矩阵显示 Normal clean mucosa 类召回率异常高(>95%),可能是因为模型识别了视频特定的光照/色调而非真正的病变特征。
解决:始终按视频(患者)级别划分训练集和测试集。Kvasir-Capsule 论文明确指出:“splits should be completely different, probably even at the level of patients”。官方 GitHub 仓库提供了一种示例按视频划分。
# 正确做法:按视频 ID 划分 video_ids = sorted(set(metadata[''''''''''''''''video_id''''''''''''''''])) train_videos, test_videos = train_test_split(video_ids, test_size=0.2, random_state=42) train_frames = metadata[metadata[''''''''''''''''video_id''''''''''''''''].isin(train_videos)] test_frames = metadata[metadata[''''''''''''''''video_id''''''''''''''''].isin(test_videos)]参考:Smedsrud et al. (2021), Scientific Data. “Kvasir-Capsule, a video capsule endoscopy dataset.”
⚠️ 坑点 2:Kvasir-Capsule 严重类别不平衡(分类:偏倚陷阱)
问题:Kvasir-Capsule 标注帧中 Normal clean mucosa 类占约 73%(~34,484 帧),而罕见类别(如 Foreign Body, Lymphangiectasia)可能仅有数百帧。直接训练会导致模型偏向 Normal 类,少数类灵敏度极低。
症状:模型整体准确率高(>85%,因 Normal 类基数大),但少数类 F1 分数 < 0.3。混淆矩阵中大量非 Normal 类被误分为 Normal。
解决:
- 加权采样:使用
WeightedRandomSampler,使每个 epoch 中各类被采样的概率均等- Focal Loss:
FocalLoss(gamma=2.0)降低易分类样本权重,聚焦难分类的少数类- 过采样 + 数据增强:对少数类图像应用更强的数据增强并过采样
- 评估指标:使用 per-class F1 和 MCC(Matthews 相关系数)而非整体准确率
参考:Smedsrud et al. (2021) 论文中使用 MCC 作为主要评估指标。
⚠️ 坑点 3:ScopeGuide 绿色画中画干扰(分类:预处理陷阱)
问题:Kvasir 原始和 HyperKvasir 部分图像左下角包含 Olympus ScopeGuide 电磁成像系统的绿色画中画。该绿色区域可能被模型当作特征学习,尤其是在息肉类图像中,画中画出现频率可能与特定检查类型相关,形成虚假关联。
症状:模型在含 ScopeGuide 的图像上性能更好(或更差),但原因与病变无关。Grad-CAM 热力图显示模型关注左下角区域。
解决:
- 遮挡法:将左下角约 1/5 面积区域填充为黑色(见 §6.3
remove_scopeguide_pip)- 一致性预处理:对所有图像(无论是否含 ScopeGuide)统一应用左下角遮挡,消除分布差异
- 数据清洗:Kvasir-SEG 已将部分 ScopeGuide 绿色框替换为黑色框,但仍有少量遗漏,需手动检查
参考:Kvasir 原始论文 Pogorelov et al. (2017) 提到此问题但未提供解决方案。
⚠️ 坑点 4:Kvasir-SEG 无官方划分导致结果不可比(分类:评估误用)
问题:Kvasir-SEG 未提供官方 train/test 划分。不同论文使用不同的划分方案,导致同一模型在不同论文中的性能数值差异很大,无法直接跨论文比较。
症状:同一模型(如 PraNet)在不同论文中报告的 Kvasir-SEG mDice 从 0.897 到 0.909 不等。
解决:使用 PraNet 标准划分(900 train / 100 test),这是目前息肉分割领域的事实标准。此划分由 Fan et al. (2020) 首次采用,后续 PolypPVT、SSFormer、HSNet、BetterNet 等所有主流论文均沿用。确保在论文中明确声明使用了此划分。
参考:Fan et al. (2020), MICCAI. “Pranet: Parallel reverse attention network for polyp segmentation.”
⚠️ 坑点 5:HyperKvasir 99,417 张未标注图像被忽视(分类:工程陷阱)
问题:多数研究仅使用 HyperKvasir 的 10,662 张标注图像,忽视了 99,417 张未标注图像(占总量 90%)。这浪费了大量可用于半监督/自监督学习的数据。
症状:模型在标注数据上训练后泛化性不足,未利用未标注数据中的消化道解剖结构先验知识。
解决:
- 自监督预训练:在 99,417 张未标注图像上使用 MAE (Masked Autoencoder) 或 SimCLR 进行预训练,再在 10,662 张标注图像上微调
- 半监督学习:使用 FixMatch、Mean Teacher 等方法,将未标注图像作为无标签数据参与训练
- 伪标签:用标注数据训练的模型对未标注图像生成伪标签,筛选高置信度样本扩充训练集
参考:HyperKvasir 论文 Borgli et al. (2020) 明确指出未标注数据适用于半监督学习。
⚠️ 坑点 6:Kvasir-Capsule 商业使用限制(分类:合规陷阱)
问题:Kvasir-Capsule 虽然标注为 CC BY 4.0 许可,但官方页面额外声明:“The use of the dataset for purposes such as competitions and commercial purposes needs prior written permission.” 这与 CC BY 4.0 的"允许商业用途"条款存在潜在冲突。
症状:商业产品使用了 Kvasir-Capsule 数据训练模型,收到 SimulaMet 的许可要求通知。
解决:如需商业用途,务必事先联系 paalh@simula.no 获取书面许可。Kvasir 原始和 HyperKvasir 未声明此额外限制,但仍建议在商业使用前确认许可条款。
参考:https://datasets.simula.no/kvasir-capsule/ “Terms of Use” 部分。
§6.6 数据增强策略
| 增强方法 | 安全性 | 说明 |
|---|---|---|
| 随机水平翻转 | ✅ 安全 | 内窥镜图像水平翻转不影响病变可识别性 |
| 随机旋转 (±10°) | ✅ 安全 | 小角度旋转模拟内窥镜角度变化 |
| 颜色抖动 (亮度/对比度/饱和度) | ✅ 安全 | 模拟不同光照条件 |
| 随机裁剪 | ✅ 安全 | 模拟视野变化 |
| 高斯噪声 | ✅ 安全 | 提高鲁棒性 |
| Mixup | ✅ 安全 | 有助于类别不平衡场景 |
| CutMix | ✅ 安全 | 保留局部特征 |
| 随机垂直翻转 | ⚠️ 谨慎 | 可能改变解剖方向,影响定位 |
| 大角度旋转 (>30°) | ⚠️ 谨慎 | 可能产生不真实的解剖方向 |
| 颜色空间变换 (HSV) | ❌ 危险 | 可能改变病变颜色特征(如炎症红斑),导致诊断误导 |
| GAN 合成图像 | ⚠️ 谨慎 | 需验证合成图像的临床真实性 |
§6.7 模型推荐配置
| 任务 | 推荐 Backbone | 预训练 | 关键超参 | 预期性能 |
|---|---|---|---|---|
| Kvasir 8 类分类 | EfficientNet-B4 | ImageNet | lr=1e-4, batch=32, epochs=50 | Accuracy > 98% |
| HyperKvasir 23 类分类 | DenseNet-201 + Transformer | ImageNet | lr=1e-4, batch=16, epochs=100 | Accuracy ~95–98% |
| Kvasir-SEG 息肉分割 | PolypPVT (PVTv2-B2) | ImageNet | lr=5e-5, batch=8, epochs=150 | mDice ~0.917 |
| Kvasir-SEG 息肉分割 | BetterNet | ImageNet | lr=1e-4, batch=16, epochs=200 | mDice ~0.969 |
| Kvasir-Capsule 14 类分类 | EfficientNet-B4 | ImageNet | lr=1e-4, Focal Loss, Weighted Sampler | MCC ~0.4–0.5 |
| 半监督学习 | ResNet-50 + FixMatch | ImageNet | lr=1e-3, threshold=0.95 | 优于纯监督 |
§6.8 硬件配置
| 任务 | GPU 显存 | 磁盘空间 | 训练时间 | 说明 |
|---|---|---|---|---|
| Kvasir 8 类分类 | 4 GB+ | 5 GB | < 1 小时 | 8,000 张图像,轻量任务 |
| HyperKvasir 23 类分类 | 8 GB+ | 50 GB | 3–6 小时 | 10,662 张标注图像 |
| Kvasir-SEG 分割 | 8 GB+ | 5 GB | 2–4 小时 | 1,000 张图像 |
| Kvasir-Capsule 分类 | 8 GB+ | 70 GB | 4–8 小时 | 47,238 张帧 |
| 自监督预训练 (99K 图像) | 16 GB+ | 50 GB | 12–24 小时 | MAE/SimCLR |
| 全家族训练 | 24 GB+ | 160 GB | 1–2 天 | 大规模组合训练 |
§6.9 评估指标
import numpy as np
from sklearn.metrics import (
classification_report, confusion_matrix,
f1_score, matthews_corrcoef
)
# ========================================
# 评估指标计算
# ========================================
# 1. 分类任务指标
def classification_metrics(y_true, y_pred, class_names):
"""
Kvasir-Capsule 推荐 MCC 为主指标(类别不平衡)。
Kvasir 原始 / HyperKvasir 可使用 Accuracy + per-class F1。
"""
print("Classification Report:")
print(classification_report(y_true, y_pred, target_names=class_names))
mcc = matthews_corrcoef(y_true, y_pred)
macro_f1 = f1_score(y_true, y_pred, average=''''''''''''''''macro'''''''''''''''')
print(f"\nMCC: {mcc:.4f}")
print(f"Macro F1: {macro_f1:.4f}")
return mcc, macro_f1
# 2. 分割任务指标(Kvasir-SEG 标准)
def segmentation_metrics(pred_mask, gt_mask, eps=1e-6):
"""
息肉分割标准指标:mDice, mIoU, F-beta, S-measure, E-measure, MAE
"""
pred = (pred_mask > 0.5).astype(np.float32)
gt = (gt_mask > 0.5).astype(np.float32)
intersection = (pred * gt).sum()
union = pred.sum() + gt.sum() - intersection
dice = (2 * intersection + eps) / (pred.sum() + gt.sum() + eps)
iou = (intersection + eps) / (union + eps)
mae = np.mean(np.abs(pred - gt))
return {
''''''''''''''''mDice'''''''''''''''': float(dice),
''''''''''''''''mIoU'''''''''''''''': float(iou),
''''''''''''''''MAE'''''''''''''''': float(mae)
}
# 3. 加权采样器(处理类别不平衡)
from torch.utils.data import WeightedRandomSampler
def get_weighted_sampler(labels):
class_counts = np.bincount(labels)
class_weights = 1.0 / class_counts
sample_weights = class_weights[labels]
return WeightedRandomSampler(
weights=sample_weights,
num_samples=len(sample_weights),
replacement=True
)
§6.10 MLOps 笔记
-
数据版本管理:HyperKvasir 和 Kvasir-Capsule 托管在 OSF(Open Science Framework),OSF 提供版本管理,建议记录使用的 OSF 版本 DOI
-
可复现性:SimulaMet 在 GitHub (simula/kvasir-capsule) 开源了完整的实验代码和训练/测试划分,建议复用时直接使用官方代码框架
-
模型部署:内窥镜 AI 系统需要实时推理(>30 fps),建议使用 ONNX 格式导出模型并进行 TensorRT 优化
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 全部数据来自挪威 Bærum Hospital,人群以白种人为主 | 高 | 必须在外部数据集上验证泛化性 |
| 选择偏倚 | 仅从成功完成的检查中采集,排除失败/不完整检查 | 中 | 了解实际部署中检查失败率 |
| 类别不平衡 | Kvasir-Capsule Normal 类占 73%,HyperKvasir 各类间样本量差异大 | 高 | 加权采样、Focal Loss、过采样 |
| 标注者偏倚 | 标注由有限数量专家完成,可能存在个人判断偏好 | 中 | 多标注者交叉验证(数据集未提供) |
| 设备偏倚 | 仅使用 Olympus 和 Medtronic PillCam 设备,其他品牌设备可能性能不同 | 中 | 跨设备验证 |
| ScopeGuide 干扰 | 绿色画中画可能形成虚假特征关联 | 中 | 预处理遮挡(见 §6.5 坑点 3) |
§7.2 标注质量评估
| 数据子集 | 标注方式 | 标注者 | 质量控制 | 局限性 |
|---|---|---|---|---|
| Kvasir 原始 | 逐图像分类 | 内镜医生 | 经验丰富的内镜医生验证 | 无多标注者一致性数据 |
| Kvasir-SEG | 像素级分割 | 初级医生 + 专家审核 | 专家逐张修正 | 分割边界可能有 1–2 px 误差 |
| HyperKvasir 图像 | 逐图像分类 | 初级医生/PhD + 专家审核 | 专家审核修正 | 无标注者间一致性量化 |
| HyperKvasir 视频 | 逐视频分类 | 胃肠病学专家 | 单标注者 | 每条视频仅 1 名专家标注,无交叉验证 |
| Kvasir-Capsule | 逐帧分类 + 边界框 | 医学专业人员 | 标注并验证 | 14 类标注,部分类间相似度高 |
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 不同医院/国家数据 | 高 | 单中心挪威人群,种族/设备/操作习惯均不同 |
| 不同内窥镜品牌 | 中 | 仅 Olympus 设备采集,Fujifilm/Pentax 数据未覆盖 |
| 不同胶囊内镜品牌 | 高 | 仅 Medtronic PillCam,其他品牌(Olympus Endocapsule)未覆盖 |
| 小型扁平息肉检测 | 高 | Kvasir-SEG 息肉图像偏大,小型息肉(< 5mm)样本不足 |
| 胶囊内镜实时检测 | 中 | Kvasir-Capsule 帧率 2–6 fps,实时系统可能需要更高帧率 |
| 炎症性肠病评估 | 中 | 溃疡性结肠炎类样本量有限,缺乏 Mayo 评分分级 |
§7.4 伦理考量
- 知情同意:所有数据采集均获得患者知情同意,无法找到知情同意的病例被丢弃并替换
- GDPR 合规:数据遵循挪威和欧盟 GDPR 法规完全匿名化处理,可公开共享
- 伦理审查豁免:数据采集未干预患者诊疗,获挪威东南部医学与健康研究伦理委员会(REC)豁免
- 利益冲突声明:Kvasir-Capsule 部分作者持有 Augere Medical AS 股份(该公司开发内窥镜 AI 解决方案),但声明该数据集发布无商业利益
- 隐私保护:无患者面部、姓名、身份证号等标识信息;图像中可能包含的内窥镜屏幕信息已检查
§7.5 公平性评估
# Kvasir-Capsule 类别公平性评估
import numpy as np
def fairness_per_class(y_true, y_pred, class_names):
"""
评估各类别的检测公平性。
在类别不平衡数据集中,少数类(如 Foreign Body, Lymphangiectasia)
的检测性能可能显著低于多数类(Normal clean mucosa)。
"""
from sklearn.metrics import recall_score, precision_score, f1_score
print(f"{''''''''''''''''Class'''''''''''''''':<25} {''''''''''''''''Recall'''''''''''''''':>8} {''''''''''''''''Precision'''''''''''''''':>10} {''''''''''''''''F1'''''''''''''''':>8} {''''''''''''''''Support'''''''''''''''':>8}")
print("-" * 65)
for i, name in enumerate(class_names):
mask = y_true == i
support = mask.sum()
if support == 0:
continue
recall = recall_score(y_true == i, y_pred == i, zero_division=0)
precision = precision_score(y_true == i, y_pred == i, zero_division=0)
f1 = f1_score(y_true == i, y_pred == i, zero_division=0)
print(f"{name:<25} {recall:>8.4f} {precision:>10.4f} {f1:>8.4f} {support:>8d}")
# 注意:Kvasir 家族未释放种族/性别/年龄等人口统计数据,
# 无法进行跨人口统计学群体的公平性评估。
# 这本身是一个局限性——单中心挪威数据可能无法泛化到其他人群。
§7.6 数据漂移提示
- 设备更新:Olympus 持续更新内窥镜型号(如 EVIS X1),新设备图像质量/色调可能与 Kvasir 数据不同
- AI 辅助效应:若 AI 系统已部署在临床,新采集数据可能受 AI 标注影响,与原始 Kvasir 数据分布不同
- 疫情效应:COVID-19 疫情后内窥镜检查流程改变(如更严格的肠道准备方案),可能影响 2020 年后数据的特征分布
§7.7 DAIMS 24 项数据就绪度评估表
| # | 评估项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据集名称与标识符 | ✅ | Kvasir & HyperKvasir,DOI: 10.1038/s41597-020-00622-y |
| 2 | 版本号与更新日期 | ✅ | Kvasir v2 (2017) / HyperKvasir (2020) / Kvasir-Capsule (2021) |
| 3 | 数据集摘要 | ✅ | 详见 §1.1 |
| 4 | 数据采集方式 | ✅ | 详见 §3.5 / §3.10 |
| 5 | 数据格式与结构 | ✅ | JPEG/PNG/MP4/CSV,详见 §3.3 / §4.0 |
| 6 | 标注协议 | ✅ | 三级标注流程,详见 §3.5 |
| 7 | 标注者资质 | ✅ | 胃肠病学专家 + 初级医生/PhD,详见 §3.6 |
| 8 | 标注者间一致性 | ❌ | 未提供多标注者一致性量化数据 |
| 9 | 标签分布统计 | ✅ | 详见 §4.2 |
| 10 | 数据划分策略 | ⚠️ | 无官方划分(Kvasir-Capsule 除外),社区标准划分详见 §5.2 |
| 11 | 缺失值处理 | ✅ | 详见 §4.5 |
| 12 | 已知偏倚 | ✅ | 详见 §7.1 |
| 13 | 伦理审查与知情同意 | ✅ | REC 豁免 + 知情同意 + GDPR,详见 §7.4 |
| 14 | 许可证与使用条款 | ✅ | CC BY 4.0(Kvasir-Capsule 商业用途需书面许可) |
| 15 | 机器可读元数据 | ✅ | CSV 标签文件 + metadata.csv(边界框坐标) |
| 16 | ICD-11/SNOMED CT 映射 | ✅ | 详见 §2.1 / §2.1b |
| 17 | 采集设备规格 | ✅ | Olympus + Medtronic PillCam,详见 §3.9 |
| 18 | 患者人群描述 | ⚠️ | 单中心挪威人群,人口统计数据未释放(GDPR) |
| 19 | 时空覆盖 | ✅ | 2016–2020,挪威 Bærum Hospital |
| 20 | AI 就绪代码示例 | ✅ | 详见 §6.1 |
| 21 | 预处理 Pipeline | ✅ | 详见 §6.3 |
| 22 | 评估指标定义 | ✅ | 详见 §6.9 |
| 23 | 已知 SOTA 基准 | ✅ | 详见 §8.1 |
| 24 | 外部验证数据 | ✅ | CVC-ClinicDB / CVC-ColonDB / ETIS,详见 §7.8 |
DAIMS 评分:21 / 24
评分解读:良好 — 接近优秀,主要扣分在标注者间一致性缺失和无官方划分。对你意味着什么:Kvasir 家族的数据规范性总体很好。主要扣分项集中在:(1) 未提供多标注者一致性量化数据;(2) 无官方 train/test 划分(Kvasir-SEG 依赖社区标准);(3) 患者人口统计数据因 GDPR 未释放。建议在训练前执行以下操作:(1) 使用 PraNet 标准 900/100 划分(Kvasir-SEG);(2) 按视频/患者级别划分 Kvasir-Capsule;(3) 对 HyperKvasir 使用 99,417 张未标注图像进行自监督预训练;(4) 在 CVC-ColonDB/ETIS 等外部数据集上验证泛化性。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 样本量 | 评估任务 | 性能指标 | 相对内部测试集变化 | 关键发现 |
|---|---|---|---|---|---|---|
| CVC-ClinicDB | Hospital Clinic, Barcelona | 612 张 | 息肉分割 (mDice) | 0.899 (PraNet) / 0.937 (PolypPVT) | -0.1~+0.04 | 不同机构数据,性能有波动但可接受 |
| CVC-ColonDB | Hospital Clinic, Barcelona | 380 张 | 息肉分割 (mDice) | 0.712 (PraNet) / 0.808 (PolypPVT) | -18~10% | 跨域性能下降明显,泛化性挑战大 |
| ETIS-LaribPolyDB | Henri Mondor Hospital, Paris | 196 张 | 息肉分割 (mDice) | 0.628 (PraNet) / 0.787 (PolypPVT) | -27~13% | 最大性能下降,小数据集泛化性测试 |
| EndoScene | Hospital Clinic, Barcelona | 60 张 | 息肉分割 (mDice) | — | — | 小规模补充验证集 |
约束:本矩阵仅记录有同行评审论文支撑的外部评估结果。不收录未经验证的社区自评数据。注意:不同论文因评估协议(划分、预处理)不同导致同一模型报告值有差异。
§8 基准性能与生态
§8.1 排行榜
Kvasir-SEG 息肉分割排行榜(PraNet 标准 900/100 划分)
| 排名 | 模型 | mDice | mIoU | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | BetterNet | 0.969 | 0.940 | 2024 | 残差学习 + 注意力机制 | Jha et al., 2024, arXiv:2405.04288 | GitHub |
| 2 | CAFE-Net | 0.933 | 0.889 | 2024 | 上下文感知特征增强 | — | — |
| 3 | HSNet | 0.928 | 0.884 | 2022 | 层次特征选择网络 | Wang et al., 2022, MICCAI | — |
| 4 | PVT-CASCADE | 0.924 | 0.875 | 2023 | PVT 级联解码 | — | — |
| 5 | Swin Transformer + Graph | 0.926 | 0.879 | 2024 | Swin Transformer + 图推理 | — | — |
| 6 | SSFormer-S | 0.925 | 0.877 | 2022 | 步骤式 Transformer | — | — |
| 7 | MSRAFormer | 0.923 | 0.873 | 2023 | 多尺度残差注意力 | — | — |
| 8 | Polyp-PVT | 0.920 | 0.871 | 2021 | 金字塔视觉 Transformer | Dong et al., 2023, AIR. DOI: 10.26599/AIR.2023.9150015 | GitHub |
| 9 | CaraNet | 0.911 | 0.861 | 2021 | 上下文轴向反向注意力 | — | — |
| 10 | PraNet | 0.898 | 0.840 | 2020 | 并行反向注意力 | Fan et al., 2020, MICCAI. DOI: 10.1007/978-3-030-59710-8_26 | GitHub |
| 11 | U-Net++ | 0.821 | 0.743 | 2018 | 嵌套 U-Net | Zhou et al., 2018 | — |
| 12 | U-Net | 0.818 | 0.746 | 2015 | 编码器-解码器 | Ronneberger et al., 2015, MICCAI | — |
⚠️ 注意:不同论文的绝对数值可能因预处理(Resize 尺寸、归一化方式)和训练配置(epoch、学习率调度)不同而存在 1–3% 差异。比较时应优先参考同一论文中报告的多个模型结果。
Kvasir 原始 8 类分类排行榜
| 排名 | 模型 | Accuracy | 年份 | 关键技术 | 完整引用 |
|---|---|---|---|---|---|
| 1 | EfficientNet | 99.2% | 2024 | EfficientNet-B4 迁移学习 | 陈健 et al., 2024, 中国医学物理学杂志 |
| 2 | DenseNet-201 + Transformer + SVM | 98.0% | 2025 | CNN-Transformer 集成 + SVM | Raju et al., 2025, BMC Med Inform Decis Mak |
| 3 | InceptionResNetV2 | 97.32% | 2023 | 深度迁移学习 | Koul et al., 2023 |
| 4 | Xception | 95.88–98.88% | 2023 | 深度迁移学习(按类别) | Koul et al., 2023 |
| 5 | CG-Net | — | 2024 | 新型 CNN 框架 | Siddiqui et al., 2024 |
⚠️ 注意:Kvasir 原始数据集的各论文使用的类别数(5/8 类)和划分策略不同,绝对数值不可直接比较。以上为代表性结果。
§8.2 SOTA 总结与选型建议
| 任务 | 最佳模型 | mDice / Accuracy | 推荐场景 |
|---|---|---|---|
| 息肉分割 | BetterNet (2024) | mDice 0.969 | 追求最高分割精度 |
| 息肉分割(泛化性优先) | Polyp-PVT (2021) | mDice 0.920 | 在 CVC-ColonDB/ETIS 外部集泛化性更好 |
| 8 类分类 | EfficientNet-B4 | Acc 99.2% | 快速基线 |
| 23 类分类 | DenseNet-201+Transformer | Acc 98.0% | HyperKvasir 多类分类 |
| 胶囊内镜 | — | MCC 0.4–0.5 | 类别不平衡挑战大,尚无高分数 SOTA |
§8.3 评估协议
Kvasir-SEG 息肉分割标准协议(社区共识):
- 划分:900 张训练 / 100 张测试(PraNet 标准)
- 指标:mDice(主指标)、mIoU、F-β weighted、S-measure (Sα)、E-measure (Eξ)、MAE
- 训练配置:输入尺寸 352×352,Adam 优化器,学习率 1e-4–5e-5,150–200 epochs
- 外部验证:在 CVC-ClinicDB (62 test)、CVC-ColonDB (380)、ETIS (196)、EndoScene (60) 上测试零样本泛化性
Kvasir-Capsule 评估协议(论文标准):
- 划分:按视频级别划分(非帧级别),GitHub 提供示例划分
- 指标:MCC(Matthews 相关系数)为主指标(类别不平衡),辅以 per-class F1
- 采样:Weighted sampling 平衡类别
- 注意:论文报告 Normal clean mucosa 类准确率 85–91%,但少数类准确率显著更低
§8.4 相关数据集
| 数据集 | 类型 | 关系 | 说明 |
|---|---|---|---|
| CVC-ClinicDB | 息肉分割 | 互补 | 与 Kvasir-SEG 联合使用作为训练集 |
| CVC-ColonDB | 息肉分割 | 外部测试 | 泛化性测试集 |
| ETIS-LaribPolyDB | 息肉分割 | 外部测试 | 泛化性测试集 |
| EndoScene | 息肉分割 | 外部测试 | 小规模补充验证 |
| Nerthus | 肠道准备质量 | 同系列 | 同为 SimulaMet/Bærum Hospital 发布 |
| GastroVision | GI 内窥镜分类 | 同类 | 另一个 GI 内窥镜分类数据集 |
§8.5 关键论文
-
Pogorelov, K., et al. (2017). “Kvasir: A multi-class image dataset for computer aided gastrointestinal disease detection.” Proceedings of the 8th ACM on Multimedia Systems Conference, 164–169. DOI: 10.1145/3083187.3083212
— Kvasir 原始数据集发布论文,8 类 8,000 张,奠定消化道 AI 分类标准。被引 1,044+。 -
Jha, D., et al. (2020). “Kvasir-SEG: A segmented polyp dataset.” International Conference on Multimedia Modeling (MMM), 451–462. Springer.
— Kvasir-SEG 发布论文,1,000 张息肉像素级分割标注,催生息肉分割标准基准。被引 2,485+。 -
Borgli, H., et al. (2020). “HyperKvasir, a comprehensive multi-class image and video dataset for gastrointestinal endoscopy.” Scientific Data, 7, 283. DOI: 10.1038/s41597-020-00622-y
— HyperKvasir 发布论文,110,079 张图像 + 374 视频,全球最大 GI 内窥镜数据集。被引 693+。 -
Smedsrud, P.H., et al. (2021). “Kvasir-Capsule, a video capsule endoscopy dataset.” Scientific Data, 8, 142. DOI: 10.1038/s41597-021-00920-z
— Kvasir-Capsule 发布论文,117 条视频,全球最大公开胶囊内镜数据集。被引 325+。 -
Fan, D., et al. (2020). “Pranet: Parallel reverse attention network for polyp segmentation.” MICCAI. DOI: 10.1007/978-3-030-59710-8_26
— PraNet 确立 Kvasir-SEG 900/100 标准划分,息肉分割里程碑。被引 2,000+。 -
Dong, B., et al. (2023). “Polyp-PVT: Polyp segmentation with pyramid vision transformers.” AI Research. DOI: 10.26599/AIR.2023.9150015
— PolypPVT 在 Kvasir-SEG 上 mDice 0.917,Transformer 架构代表作。 -
Jha, D., et al. (2024). “BetterNet: An efficient CNN architecture with residual learning and attention for precision polyp segmentation.” arXiv:2405.04288
— BetterNet 在 Kvasir-SEG 上 mDice 0.969,当前 SOTA。 -
Jha, D., et al. (2021). “A comprehensive analysis of classification methods in gastrointestinal endoscopy imaging.” Medical Image Analysis, 70, 102007.
— Kvasir 分类方法综述,被引 65+。
§8.6 社区活跃度
| 平台 | 指标 | 截至 2026-08 |
|---|---|---|
| GitHub (simula/kvasir-capsule) | Stars / Forks | 活跃 |
| OSF (HyperKvasir) | 下载量 | 持续增长 |
| Kaggle (Kvasir Dataset) | 多个数据集镜像 | 活跃 |
| Papers With Code | Kvasir-SEG Polyp Segmentation 排行榜 | 持续更新 |
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/Fork(截至 2026-08) | 为什么值得关注 |
|---|---|---|---|---|
| SimulaMet Datasets | 官方门户 | datasets.simula.no | — | Kvasir 家族官方下载入口,含全部子数据集 |
| simula/kvasir-capsule | 官方代码 | GitHub | 活跃 | 基线实验代码 + 官方 train/test 划分 |
| PraNet | 工具库 | GitHub | 2,000+ | 息肉分割里程碑模型,含 Kvasir-SEG 标准划分 |
| PolypPVT | 预训练模型 | GitHub | 活跃 | Transformer 架构息肉分割,泛化性强 |
| Papers With Code | 排行榜 | PWC | — | Kvasir-SEG 息肉分割持续更新排行榜 |
| Endoscopic-Datasets | 资源汇总 | GitHub | — | 公开内窥镜数据集最全汇总 |
§9 相关资源与引用
§9.1 引用格式(BibTeX)
@inproceedings{pogorelov2017kvasir,
title={Kvasir: A multi-class image dataset for computer aided gastrointestinal disease detection},
author={Pogorelov, Konstantin and Randel, Kristin Ranheim and Griwodz, Carsten and Eskeland, Sigrun Losada and de Lange, Thomas and Johansen, Dag and Spampinato, Concetto and Dang-Nguyen, Duc-Tien and Lux, Mathias and Schmidt, Peter Thelin and others},
booktitle={Proceedings of the 8th ACM on Multimedia Systems Conference},
pages={164169},
year={2017},
doi={10.1145/3083187.3083212}
}
@inproceedings{jha2020kvasirseg,
title={Kvasir-SEG: A segmented polyp dataset},
author={Jha, Debesh and Smedsrud, Pia H and Riegler, Michael A and Halvorsen, P{\aa}l and De Lange, Thomas and Johansen, Dag and Halvorsen, Dag},
booktitle={International Conference on Multimedia Modeling},
pages={451462},
year={2020},
organization={Springer}
}
@article{borgli2020hyperkvasir,
title={HyperKvasir, a comprehensive multi-class image and video dataset for gastrointestinal endoscopy},
author={Borgli, Hanna and Thambawita, Vajira and Smedsrud, Pia H and Hicks, Steven and Jha, Debesh and Eskeland, Sigrun L and Randel, Kristin Ranheim and Pogorelov, Konstantin and Lux, Mathias and Dang Nguyen, Duc Tien and others},
journal={Scientific Data},
volume={7},
number={1},
pages={283},
year={2020},
publisher={Nature Publishing Group},
doi={10.1038/s41597-020-00622-y}
}
@article{smedsrud2021kvasircapsule,
title={Kvasir-Capsule, a video capsule endoscopy dataset},
author={Smedsrud, Pia H and Thambawita, Vajira and Hicks, Steven A and Gjestang, Henrik and Nedrejord, Oda Olsen and N{\ae}ss, Espen and Borgli, Hanna and Jha, Debesh and Berstad, Tor Jan Derek and Eskeland, Sigrun L and others},
journal={Scientific Data},
volume={8},
number={1},
pages={142},
year={2021},
publisher={Nature Publishing Group},
doi={10.1038/s41597-021-00920-z}
}
§9.2 相关项目
- Augere Medical AS:参与数据标注的挪威 AI 公司,开发内窥镜 AI 辅助系统
- SimulaMet:挪威 Simula Metropolitan Center for Digital Engineering,Kvasir 家族发布机构
- Bærum Hospital:Vestre Viken Hospital Trust 旗下医院,数据采集来源
§9.3 许可证详情
- Kvasir 原始 / Kvasir-SEG / HyperKvasir:CC BY 4.0 — 允许商业用途,须署名引用
- Kvasir-Capsule:CC BY 4.0 + 额外声明 — 竞赛和商业用途需事先书面许可(联系 paalh@simula.no)
§9.4 数据获取步骤
- 访问 https://datasets.simula.no/hyper-kvasir/(或对应子数据集页面)
- 点击 OSF 链接跳转至 Open Science Framework
- 直接下载所需文件(无需注册或申请)
- 解压后按 §4.0 目录结构组织数据
- 使用 §6.1 代码加载数据
§9.5 FAQ
Q: Kvasir v1 和 v2 有什么区别?
A: v1 含 4,000 张图像(每类 500 张),v2 扩展至 8,000 张(每类 1,000 张)。v1 是 v2 的子集,不应混合使用。
Q: 可以用 Kvasir 数据训练商业 AI 产品吗?
A: Kvasir 原始 / Kvasir-SEG / HyperKvasir 采用 CC BY 4.0,允许商业用途。但 Kvasir-Capsule 额外声明竞赛和商业用途需书面许可。
Q: HyperKvasir 的 99,417 张未标注图像怎么用?
A: 适合半监督学习(FixMatch、Mean Teacher)、自监督预训练(MAE、SimCLR)或伪标签生成。
Q: Kvasir-SEG 的标准划分是什么?
A: PraNet 论文确立的 900 训练 / 100 测试,目前是息肉分割领域的事实标准。
§9.6 致谢
Kvasir 家族由 SimulaMet(Simula Metropolitan Center for Digital Engineering)、Bærum Hospital(Vestre Viken Hospital Trust)、奥斯陆大学、特罗姆瑟大学、卡尔施塔德大学、Augere Medical AS 等机构联合创建。数据采集部分由挪威研究委员会(RCN)资助(项目编号 282315 AutoCap)。
§9.7 引用本百科
如引用本 Wiki 页面,请引用:
千方病案医数集. Kvasir & HyperKvasir — 全球最大胃肠道内窥镜AI数据集 AI-Ready Wikipedia. https://www.qianfanghub.com/ai-ready-dataset/kvasir-hyperkvasir/75
§10 AI 使用声明卡
| 字段 | 内容 |
|---|---|
| AI 模型 | Claude 3.5 Sonnet (用于文献整合与结构化写作) |
| AI 参与范围 | 资料整合 + 结构化写作 + 代码生成(人工审核后输出) |
| 参考输入 | 见 §8.5 关键论文列表 + HyperKvasir/Kvasir-Capsule 官方论文 + SimulaMet 官方数据集页面 |
| 最后人工审核 | 2026-08-06 |
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据规格 | 千方病案医学编辑部 | 与官方文档交叉比对 | ✅ 已验证 |
| §4 数据结构 | 千方病案医学编辑部 | 与官方仓库交叉比对 | ✅ 已验证 |
| §5 数据划分 | 千方病案医学编辑部 | 与 PraNet 等论文交叉比对 | ✅ 已验证 |
| §6 代码示例 | 千方病案医学编辑部 | 逻辑审查 | ✅ 已通过 |
| §7 质量评估 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 基准性能 | 千方病案医学编辑部 | 与论文数据交叉比对 | ✅ 已验证 |
页面状态:published(全部内容已完成审核并发布)
