CAD-CAP — 小肠胶囊内镜 AI 图像库 AI-Ready Wikipedia | 千方病案医数集

12 家法国中心 4,174 例检查提炼约 25,000 张标注帧

来源 CAD-CAP 法国多中心联盟(Sorbonne 大学 / AP-HP 圣安东尼医院 / ETIS) url: https://pmc.ncbi.nlm.nih.gov/articles/PMC7035135/发布时间: 2026-09-08最后更新: 2026-09-08 阅读 6

信息速览

数据集名称CAD-CAP — 小肠胶囊内镜 AI 图像库 AI-Ready Wikipedia | 千方病案医数集
数据类型约 25,124 张标注帧,4,174 例检查视频,每帧 ±25 帧邻接序列,申请获取,PillCam SB3 单设备
规模4,174 例小肠胶囊内镜检查(1,480 例含病灶、206 例正常对照)
接入方式CAD-CAP 法国多中心联盟(Sorbonne 大学 / AP-HP 圣安东尼医院 / ETIS) url: https://pmc.ncbi.nlm.nih.gov/articles/PMC7035135/
AI 就绪度

数据集封面

CAD-CAP — 小肠胶囊内镜 AI 图像库 AI-Ready Wikipedia

INFOBOX

数据集名称 CAD-CAP 胶囊内镜数据集
英文全称 CAD-CAP: Computer-Assisted Diagnosis for CAPsule Endoscopy
别名/简称 CAD-CAP、Computer-Assisted Diagnosis for Capsule Endoscopy database
疾病分类 小肠血管扩张(ICD-11:DA97 小肠血管疾病)/ 小肠非感染性肠炎或溃疡(DA94)/ 克罗恩病(DD70)/ 乳糜泻(DA95)
SNOMED CT 58358002 Angiodysplasia of small intestine / 235853006 Angiodysplasia of intestine / 174637007 Angiectasia / 34000006 Crohn’s disease(详见 §2.1b)
数据模态 小肠胶囊内镜图像(静态帧 + 邻接视频序列)
AI 任务类型 病灶帧级检测与分类(血管扩张/溃疡炎症/出血)、相关性分层评估、阅片辅助(CADe/CADx)
样本总数 约 25,124 张标注帧 = 病灶帧 5,124 + 正常对照帧 20,000;官方两子集各 12,562 帧;每帧另附 ±25 帧邻接序列
数据大小 未公开(论文未公布分发包大小;约 25,124 帧 + 邻接序列,申请获取)
数据格式 图像帧 + 手工划界标注(Photoshop/GIMP 制图)+ 邻接序列;分发格式申请后确认
许可证 论文 CC BY-NC-ND 4.0;数据本体无公开许可证(申请合作使用)
访问级别 申请审核(向 CAD-CAP 联盟申请,无公开下载)
语言 英文(论文与临床元数据)
首发日期 2020-02-21(Endoscopy International Open 论文发表,v1)
最后更新 2020-02(v1 论文版;截至 2026-09 未见 v2 公开发布)
发布机构 法国 CAD-CAP 多中心联盟(Sorbonne 大学、AP-HP 圣安东尼医院、ETIS UMR 8051,12 家参研中心)
官方主页 PMC 论文全文页(数据库官方描述)
下载地址 无公开下载;联系通讯作者申请(论文页
DOI 10.1055/a-1035-9088(论文)
引用次数 78+(Google Scholar,截至 2026-09)
AI 就绪度评分 ⭐⭐(2/5)— 标注含帧内划界、官方双子集划分清晰;扣分项:需申请获取、无公开数据字典与预处理脚本、无版本化归档、标注需二次解析
页面状态 published

§0 E-E-A-T 审核声明

  • 医学审核:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11/SNOMED CT 映射、小肠血管扩张与溃疡性病变的临床描述)、§7 偏倚分析(选择偏倚、肠道准备混杂、相关性三级口径)。
  • 数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
  • 审核日期:2026-09-05

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CAD-CAP 数据本体经向发布联盟申请合作后方可获取,使用范围以双方约定为准;论文正文采用 CC BY-NC-ND 4.0 许可。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 30 秒速览

这是什么? CAD-CAP 是一个专攻小肠胶囊内镜(Small Bowel Capsule Endoscopy, SB-CE)的标注图像库,由法国 12 家内镜中心联合构建。团队从 4,174 例第三代 PillCam SB3 检查中,把本地读片医生标记过的每一帧异常图像抽取出来,由受训医学生在专家监督下手工划出病灶边界,再由 3 名专家读片人集中复核并按“高度/中度/低度”三级临床相关性分级,最终形成 5,124 张病灶帧加 20,000 张正常对照帧(论文)。

为什么重要? 一段小肠胶囊内镜视频平均约 50,000 帧,人工阅读需 30-60 分钟,漏诊风险高。在 CAD-CAP 出现之前,该领域几乎没有大规模、多中心、带帧内划界标注的公开科学描述数据库。CAD-CAP 以“同质设备 + 专家划界 + 相关性分级”的组合填补了这一空白,并直接催生了灵敏度 100%、特异度 96% 的血管扩张检测 CNN(GIE 2019)。

我能用它做什么? 训练与基准测试帧级病灶分类器(血管病变、溃疡炎症、出血、正常四类);按三级相关性做分层评估,考察算法对“真正需要处理”病灶的检出能力;为阅片辅助软件提供临床前验证数据。注意:它不含息肉/肿瘤帧,且需向联盟申请获取,不能直接下载。

§1.1 技术摘要

CAD-CAP(Computer-Assisted Diagnosis for CAPsule Endoscopy)的建设流程分五步(Leenhardt et al., 2020, Endoscopy International Open)。第一步,自 2016 年 9 月起回溯收集 12 家法国内镜中心全部 PillCam SB3(Medtronic)检查视频,共 4,174 例,去标识化后仅保留年龄、性别与检查适应证。第二步,本地读片医生选定的任一小肠图标帧被定义为“感兴趣帧”,连同前后各 25 帧(约 9 秒)邻接序列一并抽取,合计提取 6,013 帧。第三步,2 名受训医学生在专家监督下用 Photoshop CS6 与 GIMP 手工划界病灶,覆盖 5,124 帧;391 帧混杂病变(含肿瘤/息肉)因数量过少未纳入 v1。第四步,3 名专家读片人面对面集中复核,剔除模糊帧并按三级相关性重分类。第五步,从 206 段正常完整视频按每 1% 小肠序列抽 1 帧生成 20,000 张对照帧,最终由计算机算法把全部帧按类别与相关性等规模随机分为两个独立子集(各 12,562 帧),分别服务训练与测试。数据经法国数据保护局(CNIL)批准,获法国消化内镜学会(SFED)认可。

§1.2 战略价值

维度一:标注质量的稀缺性。 胶囊内镜领域多数公开资源只给帧级标签(如 Kvasir-Capsule 的 47,238 张标注帧),CAD-CAP 罕见地提供了帧内病灶划界(delimitation),且经过“医学生初划 → 3 名专家复核 → 4 名专家定义分级标准”的双层质检。三级相关性分级(高度/中度/低度)使其可以回答一个临床上更关键的问题:算法检出的到底是“必须处理的血管扩张”,还是“无关紧要的红斑红点”。这一分层评估设计在同类数据集中独一无二(论文 Discussion)。

维度二:多中心同质化的平衡术。 12 家中心贡献 4,174 例检查(单中心 58-541 例),地域覆盖法国全境,避免了单中心数据的机构特异性偏倚;同时严格限定 PillCam SB3 单一设备,保证了帧在分辨率、亮度与整体质量上的同质性——这是质量控制上的有意取舍:牺牲跨设备泛化,换取训练信号纯净。对于研究“算法在受控条件下的上限性能”而言,这种设计比杂烩多设备数据更有解释力(论文 Table 2)。

维度三:临床转化路径的先例。 CAD-CAP 直接支撑了首个面向小肠血管扩张的 CNN 检测器(灵敏度 100%、特异度 96%,自动阅读整片约 39 分钟 vs 人工 30-60 分钟),并已用于 2 项国际医学图像计算分析挑战赛,形成了“数据库 → 算法 → 临床前验证”的完整链路示范(论文摘要)。

§1.3 同类数据集横向对比

数据集 规模 模态 标注 获取方式 与 CAD-CAP 差异化
CAD-CAP 约 25,124 张标注帧(+±25 帧邻接序列) 小肠胶囊内镜(PillCam SB3) 帧级四分类 + 帧内划界 + 三级相关性 申请获取 多中心 4,174 例检查、专家划界、相关性分层
Kvasir-Capsule 4,741,504 帧(47,238 标注)/ 117 视频 小肠胶囊内镜(多种 Olympus 设备) 14 类帧级标签 + 47,238 帧图形标注 公开下载 规模大 190 倍但单中心挪威;含大量未标注帧可做自监督
KID 2,371 图像 / 47 视频 胶囊内镜(多设备) CEST 术语标注 + 图形标注 申请获取 视频图谱性质,规模小,多设备混合
GIANA 8,262 图像 / 38 视频 胶囊内镜 病变标签 申请获取 以挑战赛形式发布,任务为小肠病变分割/检测
GastroLab 数百张图像 胶囊内镜 病变标签 公开 规模最小,克罗恩病相关病变为主

(对比数据来源:Machine learning based small bowel VCE analysis 综述 Table 1, Future Generation Computer Systems, 2023;Kvasir-Capsule 数字为其官方论文口径。)

§1.4 版本时间轴

时间 版本/事件 关键变化与数字
2016-09 数据收集启动 12 家中心开始回溯收集 PillCam SB3 检查
2018 会议摘要(早期版本) 13 中心、5,296 例检查、5,427 病理帧、600 典型血管扩张帧(DDW/会议摘要
2018-11/2019 首个衍生算法发表 血管扩张检测 CNN(Gastrointest Endosc
2020-02-21 v1 论文版(现行) 12 中心、4,174 例、5,124 病灶帧 + 20,000 正常帧、双子集各 12,562 帧(EIO 论文
截至 2026-09 v2 未检索到公开发布 论文计划的息肉帧扩充(391 帧混杂病变)未见于公开文献

§1.5 典型应用场景

  1. 血管扩张 CAD 开发与临床前验证:以 817 帧高度相关血管扩张 + 正常对照训练/测试,复现 GIE 2019 的语义分割 + CNN 路线(论文)。
  2. 出血征象自动标记:651 张鲜血/血凝块帧训练出血检测器,辅助优先级阅片(辅助替代厂商疑似出血指示器 SBI 的独立方案)。
  3. 相关性分层基准:按高度/中度/低度三级评估模型,量化“临床可行动病灶”vs“良性发现”的区分能力。
  4. 自监督预训练 + 下游微调:20,000 张正常帧 + 邻接序列做预训练,再迁移到小规模标注任务。
  5. 阅片时间-质量权衡研究:以“自动阅读约 39 分钟 vs 人工 30-60 分钟”为基线,评估辅助阅片的人机协同增益(GIE 2019)。

§2 医学背景

§2.1 ICD-11 编码映射

CAD-CAP 的标签是影像学术语而非诊断编码。下表给出其四类标签与 ICD-11 的对应关系(编码经 FindACode ICD-11 MMS 核实):

数据集标签 ICD-11 编码 ICD-11 中文名 映射说明
血管病变(vascular,含血管扩张) DA97 小肠血管疾病(Certain vascular disorders of small intestine) 高度相关血管扩张即临床“小肠血管畸形/血管扩张”
炎症/溃疡性病变(ulcero-inflammatory) DA94 小肠非感染性肠炎或溃疡(Noninfectious enteritis or ulcer of small intestine) 覆盖溃疡(高度相关)与非溃疡炎症(中度相关)
鲜血/血凝块(fresh blood) —(出血为征象而非疾病编码) 作为出血征象服务于 DA97/DA94 相关疾病检测与隐匿性消化道出血溯源
正常对照(normal) 非疾病类
(适应证背景)克罗恩病 DD70 克罗恩病(DD70.1 小肠克罗恩病) 12% 检查以疑似 CD 为适应证,溃疡帧可能源于 CD
(适应证背景)乳糜泻 DA95 乳糜泻 部分检查以乳糜泻为适应证,黏膜形态对照价值

§2.1b SNOMED CT 映射

标签/概念 ICD-11 SNOMED CT 码 术语
小肠血管扩张(高度相关血管病变核心) DA97 58358002 Angiodysplasia of small intestine(BioPortal
肠血管畸形(上位概念) DA97 235853006 Angiodysplasia of intestine(MedGen
血管扩张(形态学根概念,覆盖“红斑/红点/静脉扩张”等低相关发现) 174637007 Angiectasia(BioPortal
克罗恩病(适应证背景) DD70 34000006 Crohn’s disease(MedGen
乳糜泻(适应证背景) DA95 —(本页未单独核验编码) Coeliac disease

§2.2 疾病简介与流行病学

小肠胶囊内镜与阅片负担。 胶囊内镜是小肠疾病一线检查手段,一段视频平均约 50,000 帧,人工阅读耗时 30-60 分钟/段,漏诊风险随疲劳上升(CAD-CAP 论文引言)。这也是 CAD 类算法的核心动机:把阅读时间压缩并降低漏诊率。

小肠血管扩张(angioectasia/angiodysplasia)。 这是小肠最常见的血管病变,也是 50 岁以上人群隐匿性消化道出血(obscure GI bleeding, OGIB)的最常见病因,典型表现为扁平、樱桃红色的蕨样血管形态,可致慢性失血与缺铁性贫血(AMBOSS: Angiodysplasia)。治疗上,沙利度胺已被 NEJM 2023 的随机对照试验证实可降低血管扩张出血复发率(Chen et al., 2023, NEJM),凸显了“找到病灶”这一前置环节的临床价值。CAD-CAP 中 67% 的检查适应证正是 OGIB。

溃疡性/炎性病变。 覆盖小肠溃疡、糜烂与黏膜炎症,最常见的特异性病因是克罗恩病——CAD-CAP 中 12% 的检查以疑似克罗恩病为适应证;非特异性红斑、水肿、剥脱则归为中度相关发现(论文)。腔内鲜血与血凝块本身不是诊断,而是强烈提示活动性出血、需要追溯上游病灶的征象。

§2.3 临床任务定义

临床任务 数据集对应 AI 任务形式 输出
筛查(筛查性阅片辅助 CADe) 病灶帧 vs 正常帧 帧级二分类/检测 每帧阳性概率 + 提示
诊断(病灶定性 CADx) 血管/溃疡炎症/出血/正常 四分类 类别 + 相关性层级
严重度/相关性分层 高度/中度/低度三级 有序分类 临床相关性等级
定位(辅助) 帧内划界标注 划界掩码学习 病灶轮廓
阅片加速 全部帧 + 邻接序列 阅片优先级排序 自动阅读约 39 分钟/片(GIE 2019 实测)

§2.4 患者人群表

维度 取值 来源
来源 法国 12 家内镜中心,2016-09 起回溯收集 论文 Table 1-2
检查例数 4,174 例 PillCam SB3(1,480 例含异常 + 206 例正常对照供采帧) 同上
时间跨度 2016-09 至论文发表(2020-02) 论文
年龄 平均 64 ± 15 岁(1,480 例异常检查) 论文 Table 1
性别 男 59% / 女 41% 论文 Table 1
适应证 OGIB 67% / 疑似克罗恩病 12% / 其他 21%(乳糜泻、黑斑息肉综合征等) 论文
种族 未记录 论文
就医类型 三级医院消化内镜中心(多为中心医院/大学医院) 论文 Table 2

§2.5 临床价值

小肠胶囊内镜的瓶颈不是“能不能看到”而是“看不过来”。CAD-CAP 支撑的 CNN 在帧级检测血管扩张上达到灵敏度 100%、特异度 96%,把整片自动阅读压缩到约 39 分钟(GIE 2019)。对 67% 因 OGIB 接受检查的患者而言,更快、更稳定的首轮阅片意味着更早的止血干预或治疗方案(如沙利度胺)启动;对 12% 疑似克罗恩病患者,黏膜病变的系统性检出直接影响诊断成立与疗效评估。相关性三级分级的意义在于把“算法发现”翻译为“临床可行动性”——低相关的红斑红点不应触发昂贵的气囊辅助内镜复查,而高度相关的血管扩张应当。

§2.6 金标准与标注体系

要素 划分 标注方式 标注者 性质
帧级类别(血管/溃疡炎症/出血/正常) 3 名专家集中复核 人工分类 3 名专家读片人(XD、SL、JPLM) 共识金标准
帧内病灶划界 医学生初划 + 专家复核重划 Photoshop CS6/GIMP 手工描划 2 名受训医学生(专家 XD 监督) 参考标准(非病理确诊)
相关性三级 4 名专家先验定义标准 共识分级 FC、XD、GR、JCS 共识标准
正常对照帧 2 名读片人(XD、RL)复核剔除可疑帧 自动等距抽取 + 人工复核 XD、RL 复核对照
临床诊断金标准 论文未纳入病理/气囊内镜对账 影像级参考标准,非确诊金标准

需要强调:CAD-CAP 的“金标准”是专家影像共识,没有病理学或后续器械检查(双气囊内镜/术中内镜)对账,属于影像级参考标准。用其训练的模型上限即为“模仿专家读片”,而非超越专家(论文)。

标注协议的设计逻辑值得单独说明。第一步“本地医生图标选帧”复用了真实阅片工作流中读片软件的标记行为,这保证了阳性帧都是“真实临床场景下会被注意到的发现”;第二步医学生划界把粗粒度注意力转化为空间定位,节约了稀缺的专家时间;第三步专家面对面集中复核是一种强共识机制,代价是不可扩展;第四步由独立于中央读片人的 4 名专家组预先书面定义三级相关性标准,避免了“先分级、后造标准”的循环论证。这套“工作流复用 + 分层质检 + 预注册标准”的设计,即使放到今天也不过时,但它的每一步都会把选择偏倚向“显眼病灶”累积(详见 §7.1 与坑点 4)。


§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小 理由
复现 GIE 2019 血管扩张检测 v1(2020 论文版) 申请获取 与论文口径一致:5,124 病灶帧 + 20,000 正常帧
需要息肉/肿瘤/淋巴扩张样本 v1 不可用 391 帧混杂病变未纳入 v1,请改用 Kvasir-Capsule 或 LDPolypVideo
需要自监督预训练的大规模未标注帧 Kvasir-Capsule 公开下载 CAD-CAP 未提供未标注帧;Kvasir-Capsule 有 4,694,266 帧
复现 2018 会议摘要数字(13 中心 5,296 例) 无法复现 早期版本(13 中心、5,296 例)从未公开分发,仅有摘要

§3.1 模态详情

  • 主模态:小肠胶囊内镜静态帧。PillCam SB3(Medtronic,第三代小肠胶囊)拍摄;论文强调仅收录第三代设备以保证帧在分辨率、亮度与整体质量上的同质性(论文)。
  • 伴生模态:邻接视频序列。每张索引帧附带前后各 25 帧(约 9 秒)序列,可支撑时序模型与上下文判读。
  • 标注层:病灶划界图(Photoshop/GIMP 手工绘制)+ 帧级类别 + 三级相关性 + 子集归属。
  • 元数据层:检查级年龄、性别、适应证(仅三项,检查与帧的映射关系以交付物为准)。
  • 论文未公布逐帧像素分辨率与帧率参数,属已知设备记录缺口(见 §7.1 与 DAIMS 第 11 项)。

§3.2 按子集样本数

子集/类别 帧数 说明
病灶帧(划界帧)合计 5,124 6,013 帧提取中经中央复核保留并划界的部分(正文口径)
├ 血管病变 3,103 高度相关血管扩张 817 + 低相关血管发现 2,286
├ 炎症/溃疡 1,370 高度相关溃疡 1,057 + 中度相关非溃疡炎症 313
└ 鲜血/血凝块 651 全部高度相关
(未纳入)混杂病变 391 含肿瘤/息肉,数量过少未纳入 v1
正常对照帧 20,000 206 段正常完整视频 × 每 1% 序列 1 帧
官方子集 A(训练用) 12,562 病灶帧 2,562 + 正常帧 10,000
官方子集 B(测试/验证用) 12,562 病灶帧 2,562 + 正常帧 10,000
总计(标题取整) 约 25,000 2 × 12,562 = 25,124

⚠️ 摘要口径为 5,184 帧(鲜血 718 / 血管 3,097 / 炎症溃疡 1,369),与正文口径(5,124 = 651 + 3,103 + 1,370)冲突,引用时务必注明出处位置,详见坑点 1。

§3.3 数据格式

组成 格式 说明
静态帧 图像文件(论文未公布分发编码,通常为无压缩/无损图像) 申请后以交付物为准
病灶划界 Photoshop CS6 / GIMP 制图导出 手工描划轮廓
邻接序列 每索引帧 ±25 帧 约 9 秒
元数据 年龄、性别、适应证 检查级
子集划分 官方两子集(计算机随机分组,按类别与相关性等规模) 论文描述,未见机器可读清单

§3.4 存储大小

论文与公开文献均未公布分发包大小。按约 25,124 张标注帧 + 每帧 ±25 帧邻接序列估算,若序列随帧交付,体量可达数十万帧级别;实际获取后请以交付清单为准并立即生成校验和(见 §6.10 MLOps 笔记)。

§3.5 标注方式

  • 病灶划界:人工弱监督定位——医学生手工描划,非医学像素级分割协议;3 名专家复核并按需重划。
  • 帧级分类:人工共识分类(血管/溃疡炎症/出血/正常)。
  • 相关性分级:4 名专家预定义三级标准的共识分级。
  • 正常帧:自动等距抽样 + 2 名读片人人工复核,属“自动 + 人工”混合。
  • 阴性语义:正常帧为“未见异常”,未对气泡、残渣等干扰物单独编码(论文自述未纳入肠道准备评分)。

§3.6 标注者资质与一致性

角色 人数 资质 职责 一致性措施
划界员 2 医学生(pre-med),经专家培训 病灶选择与划界 专家(XD)持续监督
中央读片人 3 资深 SB-CE 读片专家 帧复核、划界重制、分类 面对面会议共识
分级专家组 4 SB-CE 专家 相关性三级标准定义 预先书面定义标准
正常帧复核 2 XD、RL 剔除可疑/模糊帧 双人复核

论文未报告帧级分类的统计一致性系数(如 Cohen’s κ),这是标注质量评估的已知空白(见 §7.2)。

§3.7 采集周期

2016 年 9 月启动回溯收集,覆盖各中心当时已注册的全部 PillCam SB3 检查;论文 2020-02-21 在线发表。数据为回溯性收集,非前瞻性队列(论文)。

§3.8 地域覆盖

法国全境多中心:巴黎(圣安东尼、科尚、HEGP、泰农)、里尔、朗姆、里昂(Edouard Herriot)、尼斯、南特、布雷斯特、斯特拉斯堡、鲁昂、亚眠、克雷泰伊(Henri Mondor),共 12 家,多为大学医院/中心医院(论文 Table 2)。

§3.9 设备规格

项目 取值 备注
胶囊系统 PillCam SB3(Medtronic,美国) 唯一收录设备
代际 第三代小肠胶囊 保证帧质量同质
逐帧分辨率 论文未公布 已知缺口;同代设备帧质量均一
帧率 论文未公布(邻接序列 50 帧约 9 秒,推算均值约 5.6 fps) 由 ±25 帧 ≈ 9 秒的论文描述推算
肠道准备评分 未纳入 论文自述局限

§3.10 深度溯源链

原始检查(12 家中心 PillCam SB3)→ 去标识化 → 本地读片医生图标选帧(frame of interest)→ 抽帧 + ±25 帧邻接序列(合计 6,013 帧)→ 医学生划界(5,124 帧)→ 3 名专家中央复核(剔除模糊帧、重划、分类)→ 4 名专家定义相关性三级 → 391 帧混杂病变剔除 → 206 段正常视频自动等距抽帧 20,000 张 + 双人复核 → 计算机按类别与相关性等规模随机分入两个 12,562 帧子集 → 论文发表(全流程见论文方法节)。


§4 数据结构

§4.0 目录树

数据集无公开分发包,以下为按论文方法节描述重建的典型交付结构约定(实际以获批交付物为准,拿到数据后第一件事是生成真实 manifest 并与本树对账):

cad-cap/
├── subset_A/                      # 官方子集 A(训练用,12,562 帧)
│   ├── vascular/
│   │   ├── highly_relevant/       # 血管扩张(高度相关)
│   │   └── poorly_relevant/       # 红斑/红点/静脉扩张等(低相关)
│   ├── ulcero_inflammatory/
│   │   ├── highly_relevant/       # 溃疡(高度相关)
│   │   └── moderately_relevant/   # 红斑/水肿/剥脱(中度相关)
│   ├── fresh_blood/               # 鲜血/血凝块(高度相关)
│   └── normal/                    # 正常对照
├── subset_B/                      # 官方子集 B(测试/验证用,12,562 帧),结构同上
├── sequences/                     # 邻接视频序列(每索引帧 ±25 帧)
│   └── <frame_id>/                # 以索引帧命名的序列目录
├── delimitations/                 # 病灶划界标注图(与帧一一对应)
└── metadata/                      # 检查级年龄/性别/适应证(无公开清单,以交付为准)

§4.1 DAIMS 字段字典

字段 类型 说明 示例值 AI 用途 观测误差/注意 信息性缺失编码 取值范围
frame_id string 索引帧唯一标识 以交付清单为准 主键、去重、分组划分 论文未公开命名规范,需自验唯一性 无缺失
subset enum 官方子集归属(A=训练/B=测试) A 官方划分复现 必须与交付清单核对 无缺失 A/B
finding_class enum 帧级病灶类别 vascular 监督标签 与摘要口径核对(见坑点 1) 无缺失 vascular/ulcero_inflammatory/fresh_blood/normal
relevance enum 临床相关性三级 highly_relevant 分层评估 normal 帧无相关性 normal 类为空 highly/moderately/poorly_relevant
delimitation_image image 病灶划界标注图 与 frame_id 对应 弱监督分割、定位 手工 Photoshop/GIMP 描划,非像素级协议 normal 帧无
sequence_ref string 邻接序列引用(±25 帧) seq_000123 时序模型、上下文 严禁跨子集使用(坑点 3) 无缺失
position_in_video float(隐含) 正常帧位于小肠序列的百分比位置 0.37 位置条件建模 仅正常帧等距抽取隐含;病灶帧未提供 病灶帧缺失(非信息性) 0-1
exam_id string(隐含) 源检查标识 以交付清单为准 检查级分组划分(防泄漏,见坑点 2) 论文未确认是否随数据交付 若缺失须与作者确认
patient_age integer 检查时年龄 64 亚组分析 检查级粒度 未公布缺失策略
patient_sex enum 性别 M 亚组分析 检查级粒度 未公布缺失策略 M/F
indication enum 检查适应证 OGIB 任务范围界定 三类主分布,其余细类论文未逐一列出 未公布缺失策略 OGIB/suspected_CD/other

§4.2 标签分布

以正文口径(论文 Results 节):

标签 帧数 占 5,124 病灶帧比例 相关性构成
血管病变 3,103 60.6% 高度相关 817(26.3%)/ 低相关 2,286(73.7%)
炎症/溃疡 1,370 26.7% 高度相关(溃疡)1,057(77.2%)/ 中度相关 313(22.8%)
鲜血/血凝块 651 12.7% 高度相关 100%
正常对照 20,000 (对照类)

关键结构性事实:血管类中近四分之三是低相关发现(红斑、红点、静脉扩张、微小血管扩张),若把 vascular 当作单一阳性类,模型学到的主要是“任何发红的东西”,而非临床意义上的血管扩张。

§4.3 关键统计

  • 检查阳性率:1,480 / 4,174 = 35.5% 的检查含至少一处异常(论文 Table 1)。
  • 每视频正常帧密度:100 帧/段(等距 1%),206 段共 20,600 帧,经复核取 20,000。
  • 病灶帧与邻接序列比:1 : 50(每索引帧 ±25 帧)。
  • 人-机阅读时间对比:人工 30-60 分钟/段 vs CAD-CAP 衍生 CNN 自动阅读约 39 分钟/段(GIE 2019)。
  • 帧规模对照:Gulshan 糖尿病视网膜数据集 128,175 张、Esteva 皮肤病数据集 129,450 张——论文自述帧数为已知短板。

§4.4 数据层级

患者(论文未给出独立患者数,按检查去重)
└── 检查 exam(4,174 例 SB3 检查;1,480 例含异常)
    └── 视频/小肠序列 video sequence(每检查 1 段)
        └── 索引帧 frame(5,124 病灶帧 + 20,000 正常帧)
            ├── 划界标注 delimitation(病灶帧)
            ├── 邻接序列 sequence(±25 帧,约 9 秒)
            └── 标签 class + relevance(病灶帧)

层级意义:同检查内的帧高度相关(同一黏膜区域连续成像),任何划分与评估必须在 exam 层做隔离;论文未公开患者与检查的一对一关系,患者级泛化结论需谨慎。

§4.5 缺失值与信息性缺失

情形 编码/处理 是否信息性
normal 帧无 relevance 字段 结构性空缺 否(类定义使然)
normal 帧无 delimitation_image 结构性空缺 否(无病灶可划)
病灶帧无 position_in_video 论文未提供 潜在信息性:病灶帧的位置信息被舍弃
exam_id 若未随数据交付 须向作者索取 严重信息性:缺失则无法做检查级划分
模糊/不可分析帧 中央复核阶段已剔除(6,013 → 5,124 病灶帧的差额主体) 否(已被过滤)
391 帧混杂病变 未纳入 v1 是:其缺席本身携带“v1 覆盖范围”信息

§5 划分与使用建议

§5.1 官方划分

论文把全部帧(含邻接序列)由计算机算法按“病灶存在与否、病灶类型、相关性类别”等规模随机分为两个独立子集:子集 A(训练/机器学习用)与子集 B(测试/验证用),各 12,562 帧(病灶帧 2,562 + 正常帧 10,000)论文)。注意这是帧级随机分组——论文未声明按检查分层,检查级泄漏风险见坑点 2。

§5.2 社区惯例划分

由于数据需申请获取,公开文献中没有形成统一的社会惯例划分。可参考的同领域惯例是 Kvasir-Capsule 的官方 two-fold 视频级交叉验证(其官方划分 MCC 0.42,而帧级随机划分的准确率可虚高至 99%,Simula 官方口径),该证据强力支持 CAD-CAP 使用也应采用检查级划分。

§5.3 划分策略建议与泄漏风险

  1. 首选:检查级(exam-level)分组划分。按源检查分组做 GroupShuffleSplit/GroupKFold,确保同一检查的帧与邻接序列不同时出现在训练与测试侧。
  2. 次选:保留官方双子集但先按 exam_id 重排——若官方划分确实按帧随机,直接使用会虚高性能(见 §7.1 偏倚表)。
  3. 邻接序列纪律:训练时序列可用于时序建模或一致性正则,但测试评估只使用索引帧,且序列与索引帧永不跨侧(坑点 3)。
  4. 分层维度:除类别外,按相关性三级与检查适应证(OGIB/CD/其他)分层报告,避免某一亚类主导结论。
  5. 类别失衡处理:病灶:正常 ≈ 1:4 是人工构造比例;在真实阅片流中病灶帧占比不足 1%,评估应报告 PR-AUC 与固定特异度下的灵敏度(坑点 4)。

检查级划分的最小可运行实现(交付物含 exam_id 时直接可用;不含时先向作者索取,见 坑点 2):

# 依赖:pip install scikit-learn pandas
# 约定:manifest 为 DataFrame,至少含列 [frame_path, finding_class, exam_id]
# 思路:以 exam 为最小分组单元做分层 GroupKFold,保证
#   1) 同一 exam 的所有帧(含其邻接序列)只出现在一侧;
#   2) 每折的类别分布接近全局分布。
import numpy as np
import pandas as pd
from sklearn.model_selection import StratifiedGroupKFold

def exam_level_folds(manifest: pd.DataFrame, n_splits: int = 5, seed: int = 42):
    # exam 级标签 = 该检查内“最高优先级”类别(出血/血管/溃疡 > 正常)
    priority = {"fresh_blood": 0, "vascular": 1,
                "ulcero_inflammatory": 2, "normal": 3}
    exam_label = (manifest.groupby("exam_id")["finding_class"]
                  .agg(lambda s: min(s, key=lambda c: priority.get(c, 9))))
    exam_df = exam_label.reset_index().rename(columns={"finding_class": "exam_label"})

    sgkf = StratifiedGroupKFold(n_splits=n_splits, shuffle=True, random_state=seed)
    folds = {}
    for fold, (tr, te) in enumerate(
            sgkf.split(exam_df["exam_id"], exam_df["exam_label"], groups=exam_df["exam_id"])):
        train_exams = set(exam_df.iloc[tr]["exam_id"])
        test_exams = set(exam_df.iloc[te]["exam_id"])
        assert not (train_exams & test_exams)          # 检查级隔离硬断言
        folds[fold] = {
            "train": manifest[manifest["exam_id"].isin(train_exams)],
            "test":  manifest[manifest["exam_id"].isin(test_exams)],
        }
    return folds

# 用法:folds = exam_level_folds(manifest, n_splits=5)
# 每折报告帧级与检查级(max 池化)两套指标,见 §6.9。

§5.4 交叉验证建议

检查级 5 折 GroupKFold 为基线;如需与 GIE 2019 口径对齐,可复现其“2×300 血管扩张帧 + 600 正常帧”的对称双数据集设计(A1/A2、N1/N2 互换训练测试)作为轻量协议(GIE 2019)。

§5.5 外部验证建议

  • 跨设备:申请 MiroCam/OMOM 等其他厂商胶囊数据(如国内中心合作)验证颜色处理差异下的鲁棒性。
  • 跨地域/人群:与 Kvasir-Capsule(挪威,多设备 Olympus)重叠类别(血管扩张/溃疡/血液)做交叉评估,预期需域适应。
  • 前瞻流:与任一合作中心约定前瞻阅片流回放验证,报告按检查聚合的每段检查灵敏度/特异度,而非帧级指标。

§6 AI 就绪指南

§6.1 快速上手

# 目录结构预期(拿到 CAD-CAP 交付物后先对账):
#   data_root/
#     subset_A/{vascular,ulcero_inflammatory,fresh_blood,normal}/...
#     subset_B/(同上结构)
#     delimitations/(划界标注图,与帧同名对应)
# data_root 即下述 DATA_ROOT 变量;所有路径以 DATA_ROOT 拼接。
# 最小可用子集:subset_A + subset_B 的 normal 与 vascular/highly_relevant 两类,
# 即可复现"血管扩张 vs 正常"二分类最小闭环。
import os
from pathlib import Path

DATA_ROOT = Path(os.environ.get("CAD_CAP_ROOT", "./cad-cap"))
CLASSES = ["normal", "fresh_blood", "ulcero_inflammatory", "vascular"]
RELEVANCE = {"vascular": ["highly_relevant", "poorly_relevant"],
             "ulcero_inflammatory": ["highly_relevant", "moderately_relevant"]}

def iter_frames(subset: str, keep_low_relevance: bool = False):
    """枚举索引帧路径与标签。默认丢弃低相关血管帧(见坑点 5)。"""
    base = DATA_ROOT / f"subset_{subset}"
    for cls in CLASSES:
        variants = RELEVANCE.get(cls, [""]) if cls != "normal" else [""]
        for rel in variants:
            d = base / cls / rel if rel else base / cls
            if not d.exists():
                continue
            for p in sorted(d.glob("*")):
                if not keep_low_relevance and rel == "poorly_relevant":
                    continue
                yield p, cls, (rel or "none")

拿到数据后第一轮检查三件事:①帧总数是否对得上 5,124 + 20,000 与两个 12,562 子集(§3.2 对账表);②同一索引帧与其 ±25 帧邻接序列是否被错误混入类别目录;③划界标注图与帧的对应关系是否完整(坑点 8)。

数据审计脚本(第一次打开交付物就跑,输出对账报告):

# 依赖:pip install pillow pandas
# 输出:类别构成表、可疑近重复帧清单、划界图缺失清单
from pathlib import Path
from PIL import Image
import pandas as pd

def audit_cadcap(root: Path) -> pd.DataFrame:
    rows = []
    for subset in ["A", "B"]:
        base = root / f"subset_{subset}"
        for cls in ["normal", "fresh_blood", "ulcero_inflammatory", "vascular"]:
            for p in sorted(base.rglob("*")):
                if p.is_file() and p.suffix.lower() in {".png", ".jpg", ".bmp"}:
                    rel = p.relative_to(base).parts
                    relevance = rel[1] if len(rel) > 1 else "none"
                    rows.append({"subset": subset, "finding_class": cls,
                                 "relevance": relevance, "path": str(p)})
    df = pd.DataFrame(rows)

    # 对账 1:官方口径(正文 Table 1 / 两子集 12,562)
    print(df.groupby(["subset", "finding_class"]).size())
    print("子集总量(期望各 12,562):", df.groupby("subset").size().to_dict())

    # 对账 2:与论文正文口径对照(病灶帧全库合计期望 5,124,正常 20,000)
    abn = df[df["finding_class"] != "normal"]
    print("病灶帧合计(期望 5,124):", len(abn))

    # 对账 3:划界图覆盖率(正常帧无划界属结构性缺失)
    delims = {p.stem for p in (root / "delimitations").rglob("*") if p.is_file()}
    missing = [r for r in abn.itertuples() if Path(r.path).stem not in delims]
    print("病灶帧缺失划界图:", len(missing))

    # 对账 4:逐张可解码(坏文件直接暴露)
    bad = [r.path for r in df.itertuples() if not _opens(r.path)]
    print("不可解码图像:", len(bad))
    return df

def _opens(path: str) -> bool:
    try:
        Image.open(path).verify()
        return True
    except Exception:
        return False

§6.2 数据获取

步骤 内容 说明
1 阅读论文与补充材料 PMC 全文;确认你的任务在 v1 覆盖范围内(无息肉/肿瘤)
2 联系通讯作者申请 Xavier Dray(xavier.dray@aphp.fr,论文公布邮箱);说明机构、用途、伦理背书
3 签署数据使用约定 数据本体无公开许可证,条款以双方约定为准;论文 CC BY-NC-ND 4.0 约束的是文献内容
4 接收交付物并验收 按 §4.0 目录树 + §3.2 对账表核对帧数;立即生成 manifest 与 sha256
5 记录版本快照 记录获取日期与交付说明——数据无公开版本号(坑点 8)
# 收到交付物后立即执行的验收清单(bash 示意)
find cad-cap/ -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.bmp" \) | wc -l
# 预期(若邻接序列不随帧交付):25,124;若含序列帧则远大于此——先与作者确认交付口径
find cad-cap/ -type f -exec sha256sum {} + > manifest.sha256

申请邮件模板(中英双语场景建议直接使用英文,要点:机构、用途、伦理背书、发表承诺):

Subject: Request for access to the CAD-CAP database (v1, Leenhardt et al. 2020)

Dear Prof. Dray,

We are a research group at <Institution> working on computer-aided
detection for small-bowel capsule endoscopy. We would like to request
access to the CAD-CAP database (Endosc Int Open 2020;8:E415-E420,
DOI 10.1055/a-1035-9088) for the purpose of <frame-level lesion
classification / angioectasia detection benchmarking>.

Our project has been approved by <local ethics body>, and we commit to:
(1) use the data for research only, (2) not redistribute the data,
(3) cite the CAD-CAP paper in any resulting publication, and
(4) share our evaluation protocol upon request.

Thank you for considering our request.

Sincerely,
<Name, Title, Institution, Contact>

§6.3 预处理全流程

# 依赖:pip install pillow numpy torch torchvision
# 胶囊内镜图像的经典预处理链:尺寸归一 -> 去气泡/去反光 -> 颜色标准化 -> 归一化
import numpy as np
import torch
from PIL import Image
from torchvision import transforms

class BubbleSuppress:
    """抑制高亮气泡/反光:过曝像素用邻域中值回填。
    CAD-CAP 未纳入肠道准备评分(论文自述局限),
    气泡与残渣是最大假阳性来源之一(坑点 7)。"""
    def __call__(self, img: Image.Image) -> Image.Image:
        a = np.asarray(img).astype(np.float32)
        lum = a.mean(axis=2)
        mask = lum > 245                       # 过曝像素
        if mask.any():
            med = np.median(a[~mask], axis=0)  # 全图中值回填
            a[mask] = med
        return Image.fromarray(a.astype(np.uint8))

train_tf = transforms.Compose([
    transforms.Resize((256, 256)),          # 论文未公布原始分辨率,统一缩放
    transforms.RandomHorizontalFlip(p=0.5),
    transforms.RandomVerticalFlip(p=0.5),
    transforms.RandomRotation(15),
    transforms.ColorJitter(brightness=0.1, saturation=0.1),
    BubbleSuppress(),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
eval_tf = transforms.Compose([
    transforms.Resize((256, 256)),
    BubbleSuppress(),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

清洗要点:中央复核已剔除模糊帧,但气泡、泡沫、食物残渣仍大量存在;颜色标准化(如 Macenko/直方图匹配到参考帧)可部分对齐多中心亮度差异;不要对划界标注图做几何不一致的增强(坑点见 §6.6)。

划界标注栅格化:CAD-CAP 的病灶划界以图像形式交付(Photoshop/GIMP 手工描划),用于分割任务前需栅格化为掩码并与原图对齐:

# 依赖:pip install opencv-python-headless numpy
# 输入:index_frame.png(原始帧)与 frame_annotation.png(划界标注图)
# 策略:划界图与原图逐像素求差异,显著差异区即病灶轮廓,
#       再做形态学闭运算填充为实心掩码。首次使用请抽样 30 张目检。
import cv2
import numpy as np

def rasterize_delimitation(frame_path: str, annot_path: str,
                           diff_thresh: int = 40) -> np.ndarray:
    frame = cv2.imread(frame_path)
    annot = cv2.imread(annot_path)
    assert frame.shape == annot.shape, "划界图与原图尺寸不一致,先对齐再栅格化"
    diff = cv2.absdiff(frame, annot).max(axis=2)
    mask = (diff > diff_thresh).astype(np.uint8) * 255
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
    mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)   # 闭运算填充轮廓
    mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)    # 开运算去噪点
    return mask

# 质检钩子:掩码面积占比异常(<0.3% 或 >60%)的帧进入人工复查清单
mask = rasterize_delimitation("frame_0001.png", "frame_0001_annot.png")
ratio = float((mask > 0).mean())
flag = not (0.003 < ratio < 0.60)
print(f"mask_ratio={ratio:.4f}  flag_for_review={flag}")

§6.4 PyTorch DataLoader

# 完整可运行:帧级四分类 Dataset(检查级分组字段在交付物缺省时退化为帧级,
# 此时严禁把官方子集当"无泄漏划分"使用——见坑点 2/3)。
import torch
from torch.utils.data import Dataset, DataLoader

class CADCAPFrameDataset(Dataset):
    def __init__(self, subset: str, transform, keep_low_relevance: bool = False):
        self.samples = list(iter_frames(subset, keep_low_relevance))
        self.transform = transform
        self.label_map = {c: i for i, c in enumerate(CLASSES)}

    def __len__(self):
        return len(self.samples)

    def __getitem__(self, idx):
        path, cls, rel = self.samples[idx]
        img = Image.open(path).convert("RGB")
        if self.transform:
            img = self.transform(img)
        return img, self.label_map[cls]

train_ds = CADCAPFrameDataset("A", transform=train_tf)
test_ds  = CADCAPFrameDataset("B", transform=eval_tf)

train_loader = DataLoader(train_ds, batch_size=32, shuffle=True,
                          num_workers=4, pin_memory=True, drop_last=True)
test_loader  = DataLoader(test_ds, batch_size=64, shuffle=False,
                          num_workers=4, pin_memory=True)

# 训练循环骨架(类不均衡:血管类占病灶 60.6%,且对照帧为病灶 4 倍)
device = "cuda" if torch.cuda.is_available() else "cpu"
model = torch.nn.Sequential(
    torch.hub.load("pytorch/vision", "resnet50", weights=None),
).to(device)  # 实际请用 torchvision.models.resnet50(num_classes=4)
criterion = torch.nn.CrossEntropyLoss()          # 如需更稳可用加权 CE / focal loss
optimizer = torch.optim.AdamW(model.parameters(), lr=3e-4)

加权交叉熵与 focal loss 的可运行实现(按 §4.2 类别构成设权重):

import torch
import torch.nn.functional as F

# 类频率倒数加权:normal 20,000 / vascular 3,103 / ulcero 1,370 / blood 651
counts = torch.tensor([20000.0, 651.0, 1370.0, 3103.0])
weights = counts.sum() / (len(counts) * counts)
weights = weights / weights.mean()
criterion_weighted = torch.nn.CrossEntropyLoss(weight=weights.to(device))

def focal_loss(logits, targets, gamma: float = 2.0, weight=None):
    ce = F.cross_entropy(logits, targets, reduction="none", weight=weight)
    p_t = torch.softmax(logits, dim=1).gather(1, targets.unsqueeze(1)).squeeze(1)
    return ((1 - p_t) ** gamma * ce).mean()

# 验证循环模板:评估前务必冻结 shuffle,且只喂索引帧(坑点 3)
@torch.no_grad()
def validate(model, loader, criterion):
    model.eval()
    total, correct, loss_sum = 0, 0, 0.0
    for imgs, labels in loader:
        imgs, labels = imgs.to(device), labels.to(device)
        logits = model(imgs)
        loss_sum += criterion(logits, labels).item() * labels.size(0)
        correct += (logits.argmax(1) == labels).sum().item()
        total += labels.size(0)
    model.train()
    return {"loss": loss_sum / total, "acc_frame": correct / total}
    # 注意:帧级 acc 仅作训练监控;论文级结论必须用 §6.9 的
    # PR-AUC / Sens@Spec95/99 与检查级聚合指标。

§6.5 坑点 8 个

⚠️ 坑点 1:摘要与正文数字双口径——5,184 vs 5,124(分类:标签理解)

问题:同一篇论文内,摘要称 5,184 帧病灶(鲜血 718 / 血管 3,097 / 炎症溃疡 1,369),正文与 Table 1/Fig 2 称 5,124 帧(651 / 3,103 / 1,370),两套口径各自加和自洽但互不相等。直接引用会让复现者对不上账,甚至怀疑自己拿到的数据不全。
症状:文献综述里出现两个规模数字;数据验收时帧数与某一方差了 60 帧;类别构成比例随引用来源漂移。
解决

  1. 简单方法:统一采用正文/Table 口径(5,124 = 651 + 3,103 + 1,370),与官方两子集 2 × 2,562 = 5,124 自洽。
  2. 进阶方法:入库文档同时记录两口径并注明出处位置(abstract vs Results),任何外部对比前先统一口径。
  3. SOTA 方法:以交付物实际清点为准反推口径,并在论文复述中固定使用清点值。
    参考论文摘要Thieme 全文 Results 节

⚠️ 坑点 2:帧级随机划分导致检查级泄漏(分类:数据泄漏)

问题:官方划分按帧随机分组,未声明检查级隔离;阳性帧聚集于 1,480 段检查中,同一段检查内相邻帧近乎重复。同检查帧跨训练/测试侧会让模型“背题”,性能虚高。
症状:帧级划分下准确率/灵敏度漂亮得可疑;换成检查级划分后性能断崖式下跌。同领域铁证:Kvasir-Capsule 帧级随机划分准确率可虚高至 99%,官方视频级划分 MCC 仅 0.42(Simula 官方口径)。
解决

  1. 简单方法:按 exam_id 做 GroupShuffleSplit/GroupKFold,杜绝同检查帧跨侧。
  2. 进阶方法:若交付物缺 exam_id,向作者索取;否则用图像哈希/嵌入聚类近似重建检查簇再分组。
  3. SOTA 方法:检查级分组 + 按适应证/相关性分层的嵌套 CV,并报告“帧级划分 vs 检查级划分”的差值作为泄漏敏感度指标。
    参考论文 Methods(Database splitting);Kvasir-Capsule 官方 two-fold 协议。

⚠️ 坑点 3:邻接 ±25 帧序列当独立样本(分类:数据泄漏)

问题:每张索引帧附带前后各 25 帧(约 9 秒)序列。若把序列帧当作独立训练/评估样本,同病灶的近重复帧同时进训练与测试,等于用时间轴复制了答案。
症状:加序列“增广”后指标大涨;时序模型在序列内近乎完美、跨检查却失效;统计检验显示训练测试分布几乎相同。
解决

  1. 简单方法:测试评估只用索引帧;序列仅用于训练侧时序建模或一致性正则。
  2. 进阶方法:序列帧整体绑定索引帧的子集归属,任何采样单元(帧/序列/检查)不跨侧。
  3. SOTA 方法:序列内对比学习预训练 + 检查级下游划分;报告索引帧级与检查级两套指标。
    参考论文 Methods(每帧 ±25 帧序列描述)

⚠️ 坑点 4:人工均衡对照 vs 真实先验的错配(分类:偏倚陷阱)

问题:正常对照帧以“每段正常视频每 1% 序列抽 1 帧”机械生成,阳性:阴性 ≈ 1:4 是人工构造;真实阅片流中病灶帧占比远低于 1%。且阳性帧先经“本地读片医生选中图标”双重筛选,天然是“更容易被发现的病灶”。
症状:在该库上特异度 99% 的模型部署后误报爆炸(先验失配);对细微病灶的真实检出率远低于离线评估。
解决

  1. 简单方法:报告 PR-AUC 与固定特异度(如 95%/99%)下的灵敏度,弃用裸 accuracy。
  2. 进阶方法:部署前用真实阅片流回放数据重校准阈值(先验校正:按真实患病率调整类先验)。
  3. SOTA 方法:在构造验证流时按真实帧率与全帧分布重采样(含未标记帧),模拟工作点。
    参考论文 Methods(Control frames 节)

⚠️ 坑点 5:血管大类混装三级相关性(分类:标签理解)

问题:3,103 张血管帧中仅 817 张是高度相关的典型血管扩张,2,286 张是低相关发现(红斑、红点、静脉扩张、微小血管扩张)。把 vascular 当单一阳性类训练,模型主要在学“发红”,评估口径与临床价值脱节。
症状:模型“血管检出”指标很高,但医生反馈满屏无关紧要的红点;论文间数字不可比(有的只算高度相关,有的算全部血管帧)。
解决

  1. 简单方法:只保留 highly_relevant 血管帧做“血管扩张 vs 其他”任务。
  2. 进阶方法:三级相关性作为有序标签分层报告性能(highly/moderately/poorly 三条 ROC)。
  3. SOTA 方法:把相关性作为代价敏感权重(高度相关漏检重罚),优化临床加权效用。
    参考论文 Fig 2 与相关性定义节

⚠️ 坑点 6:v1 不含息肉/肿瘤/淋巴扩张——任务范围错配(分类:标签理解)

问题:391 帧混杂病变(含肿瘤与息肉)未纳入 v1;把 CAD-CAP 宣传或用于“全小肠病灶检测”是范围错配,模型对隆起型病变的输出无意义。
症状:息肉样本检出率为随机水平;论文审稿被指出数据集覆盖声明过度。
解决

  1. 简单方法:任务限定为血管/溃疡炎症/出血三类 + 正常对照,文档明示覆盖范围。
  2. 进阶方法:息肉任务用互补数据集(Kvasir-Capsule 14 类标注、LDPolypVideo 视频流),做联合训练时显式处理标签空间不交叠。
  3. SOTA 方法:开放集/未知类拒绝——让模型对 v1 未覆盖病变输出“未知”而非强行归类。
    参考论文 Discussion 局限第 4 条FGCS 2023 综述 Table 1

⚠️ 坑点 7:单设备 PillCam SB3 + 无肠道准备评分(分类:偏倚陷阱)

问题:全库仅 PillCam SB3 一种胶囊,颜色处理特性单一;论文自述未纳入肠道准备质量评分。跨厂商系统(MiroCam、OMOM、EndoCapsule)颜色/亮度特性不同,气泡与残渣还会制造假阳性。
症状:模型在其他胶囊系统的数据上性能骤降;临床试运行大量“气泡血管扩张”误报。
解决

  1. 简单方法:气泡抑制预处理(过曝中值回填,§6.3)+ 颜色直方图匹配到参考分布。
  2. 进阶方法:跨设备域适应(CORAL/对抗对齐),用少量目标设备帧做无监督对齐。
  3. SOTA 方法:跨系统混合训练 + 每系统独立校准;报告按设备分组的性能衰减曲线作为泛化档案。
    参考论文 Discussion 局限第 2/3 条

⚠️ 坑点 8:申请获取、无版本化归档——交付对齐风险(分类:工程陷阱)

问题:CAD-CAP 无公开下载、无数据集 DOI、无公开版本号与校验和(FGCS 2023 综述明确列"On request")。邮件获批后的交付物组织方式可能与论文描述不一致,且不同时期交付可能存在差异。
症状:团队内两人“拿到”的数据结构不同;复现实验无法引用固定版本;二手镜像来源不明不可信。
解决

  1. 简单方法:入库当天生成 manifest + sha256,冻结只读快照,记录获取日期与通信记录。
  2. 进阶方法:按论文数字写自动验收脚本(5,124 / 20,000 / 12,562 × 2 / 类别构成比例)做入库闸门。
  3. SOTA 方法:与作者确认版本语义(v1 论文版)并在发表物中注明“数据于 YYYY-MM 经申请获取”,引用论文 DOI 而非私发链接。
    参考FGCS 2023 综述 Table 1(Availability: On request)

§6.6 数据增强:安全与危险

增强 安全性 说明
水平/垂直翻转 ✅ 安全 腔道方向无临床语义
小角度旋转(≤15°) ✅ 安全 胶囊在腔内姿态随机
亮度/饱和度小幅抖动(≤10%) ✅ 安全 模拟对焦与光照波动;过大将破坏血管颜色语义
高斯模糊轻微 ⚠️ 谨慎 中央复核已剔除模糊帧,增强会重新引入分布外样本
随机裁剪丢失病灶区 ❌ 危险 可能把划界病灶裁掉,制造“正常”错标;需先按划界保护病灶区
强色彩变换(通道交换/极端色温) ❌ 危险 血管扩张/鲜血的红色语义是标签载体,强色变等于标签噪声
序列帧混入批内 ❌ 危险 见坑点 3:近重复帧跨训练测试泄漏
CutMix/MixUp 跨类别 ❌ 危险 出血与血管颜色混合生成临床不存在的伪病灶

§6.7 模型推荐

模型 适用任务 理由 参考性能量级
ResNet-50 / DenseNet-121 帧级四分类 医学影像基线,GIE 2019 即以 CNN 深特征路线达成 100% 灵敏度/96% 特异度(帧级小样本) 帧级二分类特异度 95%+(需检查级划分复验)
U-Net / DeepLabV3+ 划界掩码学习 CAD-CAP 提供帧内划界,可直接做弱监督分割
EfficientNet-B0-B2 资源受限部署 参数量小,适合边缘阅片设备
CNN + LSTM / 3D-CNN 邻接序列时序建模 ±25 帧序列天然适配;必须遵守坑点 3 划分纪律
ViT-Tiny/DeiT 大数据预训练迁移 20,000 正常帧 + 序列可做自监督预训练(MAE/DINO)

§6.8 硬件需求

场景 GPU 显存 说明
帧级分类微调 1 × RTX 3090/A5000 24 GB 25,124 张 256×256 帧轻量任务
弱监督分割(划界) 1 × A100 40 GB U-Net 类全图训练
时序模型(±25 帧) 2 × A100 40 GB × 2 序列长度 51 的 3D-CNN/LSTM
自监督预训练 4 × A100 40 GB × 4 20,000 帧 + 序列帧池

§6.9 评估指标代码

# 指标原则:先验失配场景(坑点 4)必须看 PR-AUC 与固定特异度灵敏度,
# 并按相关性三级分层(坑点 5)与检查级聚合(坑点 2)。
from sklearn.metrics import (roc_auc_score, average_precision_score,
                             confusion_matrix, recall_score)
import numpy as np

def fixed_specificity_sensitivity(y_true, score, target_spec=0.95):
    thresholds = np.unique(score)
    best = 0.0
    for t in thresholds:
        pred = (score >= t).astype(int)
        tn, fp, fn, tp = confusion_matrix(y_true, pred).ravel()
        spec = tn / (tn + fp) if (tn + fp) else 0.0
        sens = tp / (tp + fn) if (tp + fn) else 0.0
        if spec >= target_spec:
            best = max(best, sens)
    return best

def evaluate(y_true, score):
    return {
        "ROC-AUC":  round(roc_auc_score(y_true, score), 4),
        "PR-AUC":   round(average_precision_score(y_true, score), 4),
        "Sens@Spec95": round(fixed_specificity_sensitivity(y_true, score, 0.95), 4),
        "Sens@Spec99": round(fixed_specificity_sensitivity(y_true, score, 0.99), 4),
    }

def exam_level_aggregate(y_true, score, exam_ids):
    """帧级分数 -> 检查级 max 池化后再评检查级指标(临床漏诊以检查计)。"""
    exam_true, exam_score = [], []
    for e in np.unique(exam_ids):
        m = exam_ids == e
        exam_true.append(int(y_true[m].max()))
        exam_score.append(float(score[m].max()))
    return evaluate(np.array(exam_true), np.array(exam_score))

def stratified_by_relevance(y_true, score, relevance):
    """按三级相关性分层报告灵敏度(坑点 5):
    算法对“临床可行动病灶”(高度相关)的检出,才是部署关心的数字。"""
    out = {}
    for level in ["highly_relevant", "moderately_relevant", "poorly_relevant"]:
        m = relevance == level
        if m.sum() == 0:
            continue
        out[level] = {
            "n_frames": int(m.sum()),
            "sens_at_spec95": fixed_specificity_sensitivity(y_true[m], score[m], 0.95),
        }
    return out

§6.10 MLOps 笔记

  • 版本冻结:数据无公开版本号,入库即冻结 sha256 快照,实验元数据记录“获取日期 + manifest 哈希”(坑点 8)。
  • 数据闸门:CI 中内置验收脚本,对账 5,124 / 20,000 / 12,562 × 2 与类别构成(60.6% / 26.7% / 12.7%),漂移即报警。
  • 双指标门禁:模型晋级必须同时通过帧级与检查级(max 池化)评估,且帧级-检查级差值超过预设阈值时强制人工复核。
  • 阈值管理:离线工作点(1:4 构造比例)与线上先验分离存储,部署阈值按真实患病率重校准(坑点 4)。
  • 可追溯申请记录:数据使用条款以与联盟的书面约定为准,发表物引用论文 DOI(10.1055/a-1035-9088),不引用私发链接。

实验配置快照建议(YAML,随代码仓版本化,保证论文可复现):

# experiment_card.yaml —— 每次训练随代码提交,论文审稿时直接附上
dataset:
  name: CAD-CAP
  source_doi: 10.1055/a-1035-9088
  access_date: 2026-09-01            # 记录真实获取日期
  manifest_sha256: sha256_of_delivered_manifest   # 交付物 manifest 校验和
  split:
    policy: exam_level_group_kfold   # 或 official_two_subsets + exam audit
    n_splits: 5
    sequence_frames_in_eval: false   # 坑点 3 纪律
    low_relevance_vascular_in_train: false   # 坑点 5 纪律
preprocess:
  resize: [256, 256]
  bubble_suppress: true
  color_normalization: histogram_match
train:
  backbone: resnet50
  loss: focal   # 或 weighted_ce
  optimizer: adamw
  lr: 3.0e-4
  batch_size: 32
  epochs: 30
eval:
  metrics: [roc_auc, pr_auc, sens_at_spec95, sens_at_spec99]
  aggregation: [frame, exam_max_pool]
  stratify: [relevance_level, indication]

再现性红线:任何发表物中至少披露 access_date、split.policy、sequence_frames_in_eval 三项——它们决定了该库上几乎所有结论的可比性。


§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
双重选择偏倚 阳性帧先由本地读片医生选中图标、再经中央复核,天然偏向“显眼病灶” 相关性分层评估;部署前用全帧回放流重校准
对照帧人工均衡 20,000 正常帧按每视频每 1% 机械抽取,1:4 比例偏离真实先验 PR-AUC/固定特异度灵敏度;阈值重校准(坑点 4)
检查级聚集 阳性帧集中于 1,480 段检查,帧级划分泄漏 检查级 GroupKFold(坑点 2)
设备单一 仅 PillCam SB3,跨厂商泛化未知 域适应 + 跨系统外部验证(坑点 7)
肠道准备未评分 气泡/残渣可致假阳性,论文自述局限 气泡抑制预处理;准备质量分层分析
覆盖缺口 无息肉/肿瘤/淋巴扩张帧 任务范围限定 + 互补数据集(坑点 6)
适应证集中 OGIB 67% 主导,CD/其他仅约三分之一 按适应证分层报告

§7.2 标注质量

优势:双层质检(医学生初划 + 3 名专家集中复核)、相关性三级标准由 4 名专家预先书面定义、模糊帧主动剔除——在 2020 年发布时属于领域标杆。空白:论文未报告划界者间一致性(如 Dice/κ)、未报告帧级分类的统计一致性系数、未提供标注指南文档。划界由 Photoshop/GIMP 手工完成,非像素级分割协议,用于密集监督时需自行光栅化并对齐。总体判断:类别标签可信度高,划界可用但精度未知,相关性分级是独特资产论文 Methods)。

拿到交付物后的标注质量自检清单(每项都对应一次可执行的抽查):

检查项 抽查方式 通过标准
划界与帧对齐 随机 30 张叠加目检 轮廓贴合病灶边缘,无整体偏移
划界完整性 随机 30 张核对病灶是否被全部圈出 无漏圈病灶主体
类别标签抽检 随机 50 张请独立读片人盲评 与标签一致率 ≥90%,分歧帧记录在案
相关性分级抽检 按 §2.2 定义核对血管子集 高/低相关划分与定义一致
正常帧纯净度 随机 50 张复查 无明显病灶被标为 normal
跨类近重复 感知哈希聚类 同一病灶不同帧未被拆入不同类别

§7.3 泛化性

场景 失效风险 证据
其他厂商胶囊(MiroCam/OMOM 等) 论文自述仅 SB3;不同系统图像处理特性不同(坑点 7)
肠道准备差的真实检查 中-高 论文未纳入准备评分,气泡/残渣假阳性(坑点 7)
帧级数字外推到检查级诊断 1:4 构造比例与检查级聚集(坑点 2/4)
隆起型病变(息肉/肿瘤) 极高 v1 不含该类(坑点 6)
亚洲人群/其他地域 全法国 12 中心,人群与读片习惯差异未量化
时序上下文利用 低-中 ±25 帧序列为正确利用提供了数据基础

§7.4 伦理与合规

  • 数据库获法国数据保护局(CNIL)批准,检查回溯收集并去标识化,仅保留年龄、性别、适应证三项临床数据(论文)。
  • 获法国消化内镜学会(SFED)认可,SNFGE 与 Mayoly Spindler 提供支持(GIE 2019 致谢)。
  • 数据本体按申请合作分发,二次分发通常受限;发表前请确认与联盟的书面约定允许。
  • 影像为小肠腔内视野,不含面部或外部体表特征,再识别风险低但仍须遵守交付条款。

§7.5 公平性

论文未记录种族与社会经济分层,无法做亚组公平性审计;性别比 59/41 与平均 64 岁的老年偏重(OGIB 流行病学特征)意味着模型在其他年龄段的校准未知。使用者在跨人群部署前应主动收集亚组性能证据。

§7.6 数据漂移

  • 设备漂移:胶囊内镜第四代及后续产品(如 PillCam SB 系列 newer 代)上市后,颜色/分辨率特性变化将造成协变量漂移;建议监控输入图像的颜色直方图与清晰度分布。
  • 读片行为漂移:AI 辅助阅片普及后,“本地医生选中图标”这一上游筛选的分布会变化,若用新中心数据扩充需重新审视选择偏倚。
  • 标签语义漂移:国际上“相关性”定义仍在演进(论文自述其团队正用 576 帧问卷研究细化临床相关性),跨年份文献对比时注意分级口径差异。

§7.7 DAIMS 数据就绪度 24 项评估

# 检查项 状态 说明
1 宽格式 帧级结构简单:图像 + 划界 + 标签,天然宽表
2 唯一标识 ⚠️ 论文未公开帧级命名规范与 manifest,唯一性需交付后自验
3 特殊字符 纯影像数据,无文本编码陷阱
4 重复行 ⚠️ 邻接 ±25 帧构成结构性近重复,须按单元去重
5 缺失编码 帧级数据完整,无缺失单元格概念
6 标签标识 ⚠️ 四类 + 三级相关性清晰,但划界以图像交付,机器可读标签需二次解析
7 罕见类分组 息肉/肿瘤 391 帧被排除,罕见类覆盖缺失
8 偏倚评估 论文 Discussion 自述 6 条局限,相关性分级即为偏倚意识产物
9 数据字典 无公开机器可读数据字典/标注指南
10 信息性缺失解释 ⚠️ 正常帧无划界/相关性属结构性空缺;病灶帧位置信息缺席未解释
11 设备记录 设备唯一(PillCam SB3)且明确;仅缺逐帧分辨率参数
12 共线性 影像数据不适用特征共线性检查
13 编码映射 ⚠️ 标签为学术术语,无官方 ICD-11/SNOMED 映射文件(本页 §2 提供参考映射)
14 时间戳处理 ⚠️ 正常帧含 1% 序列位置隐含信息;绝对时间/帧号未交付
15 划分建议 官方双子集各 12,562 帧明确;但需叠加检查级纪律
16 泄漏讨论 ⚠️ 论文未讨论检查级/序列级泄漏;需使用者自行加固
17 标签分布 Table 1/Fig 2 公开类别构成与人群分布
18 测量偏倚 ⚠️ 双重选择偏倚(本地图标选帧)未定量
19 外部验证建议 论文呼吁不同相关性层级挑战算法并用于国际挑战赛
20 版本记录 无公开版本号/数据集 DOI/变更日志
21 预处理脚本 无公开预处理/解析脚本
22 合规要求 CNIL 批准、SFED 认可、去标识化明确
23 多模态对齐 ⚠️ 图像 + 序列 + 检查级元数据;元数据与帧的关联关系未公开规范
24 去标识化 回溯收集后去标识化,仅保留三项非直接标识元数据

DAIMS 评分:15.5 / 24(✅ 11 项 × 1 + ⚠️ 9 项 × 0.5 + ❌ 4 项 × 0)

评分解读:这是一份“科学描述一流、工程交付滞后”的数据集。医学治理链(CNIL 批准、去标识化、专家分级)接近满分,但作为 AI 生产资料,它缺公开字典、公开脚本、版本化归档三块基础设施——4 个 ❌ 全部集中在工程与覆盖侧,而非医学侧。

对你意味着什么:第一,如果你需要的只是“可信标签 + 划界 + 相关性分层”做算法研发,15.5/24 意味着可以开工,但预期把约两周工程时间花在交付物对账与标注解析上;第二,禁止把它当“即插即用”基准——官方帧级划分必须叠加检查级纪律,否则性能结论不可信;第三,任何复现论文的发表物中请明确写出你使用的数据口径(正文 5,124)与划分方式,这是该库使用者之间对齐的唯一手段。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
CAD-CAP 内部对称互换(A1/A2 × N1/N2 双数据集互换训练测试,600 血管扩张 + 600 正常帧) CAD-CAP 联盟(法国 12 中心) 血管扩张帧级检测 灵敏度 100%、特异度 96%、PPV 96%、NPV 100% 基线 首个基于本库的 CNN 检测器,整片自动阅读约 39 分钟(GIE 2019
同库早期版本(13 中心 5,296 例,600 典型 AGD) CAD-CAP 早期版 血管扩张检测 灵敏度 100%、特异度 95.83%、PPV 96.15%、NPV 100% 与最终版一致 版本演进中性能口径稳定(会议摘要 2018
日本独立数据(141 例患者 2,237 帧 + 10,488 帧测试集) 独立团队(Tsuboi 等,2020) 血管扩张检测 AUC 0.998 参考值 非本库训练,提示任务上限与本库结果量级相符(综述汇总

说明:截至 2026-09,公开文献中尚未检索到“在本库训练、在第三方数据库正式验证”的完整外部验证研究;上表第 3 行为同任务独立参考而非本库模型的迁移验证。跨设备/跨人群泛化仍是开放问题(§7.3)。


§8 基准性能与生态

§8.1 排行榜

排名 模型/研究 性能 年份 关键技术 完整引用 代码
1 Leenhardt 等(CAD-CAP 团队)CNN 检测器 血管扩张:灵敏度 100% / 特异度 96% / PPV 96% / NPV 100%(600+600 帧帧级) 2019 语义分割 + CNN 深特征提取 Leenhardt R, et al., 2019, Gastrointestinal Endoscopy. 论文页 未公开
2 同团队会议摘要版(早期库) 灵敏度 100% / 特异度 95.83%(600 典型 AGD 帧) 2018 同上(早期版本) Leenhardt R, et al., 2018, Gastrointestinal Endoscopy(会议摘要). 摘要页 未公开

⚠️ 数值不可直接比较:两行均为帧级二分类、小样本对称协议(600 阳性 + 600 阴性),且测试帧来自同一库的同质设备采集;与全帧流评估、跨设备评估或其他数据集上的数字(如 Tsuboi 2020 的 AUC 0.998 使用日本独立数据)不具备可比性。该库无公开第三方排行榜。

两套历史协议的对照(理解数字从哪里来):

要素 GIE 2019 协议 2018 会议摘要协议
数据库版本 v1 口径(12 中心 4,174 例) 早期版(13 中心 5,296 例,从未公开分发)
任务 血管扩张 vs 正常,帧级二分类 典型血管发育不良(AGD)vs 正常,帧级
样本 600 阳性(2×300)+ 600 阴性(2×300) 600 阳性 + 600 阴性
划分 双数据集互换(A1 训练 ↔ A2 测试,N1 ↔ N2) 同类互换设计
结果 灵敏度 100% / 特异度 96% / PPV 96% / NPV 100% 灵敏度 100% / 特异度 95.83% / PPV 96.15% / NPV 100%
附加产出 整片自动阅读约 39 分钟的运行时估计

为什么没有第三方排行榜:数据需申请获取且无固定公开测试集,任何第三方都无法在同一冻结测试集上横向比较模型;这既是 CAD-CAP 学术公信力(专家标注)的来源,也是其生态位受限(无开源基准社区)的原因。若要在该库上做可比较研究,请在发表物中完整披露 §8.3 协议要素,使后人至少可以做协议层面的对齐。

§8.2 SOTA 总结与选型建议

血管扩张检测是该库目前唯一有同行评审基准支撑的任务,结论可信区间是“帧级特异度 95%-100%、灵敏度趋近 100% 的小样本上限”。选型建议:①做血管扩张 CAD,从语义分割 + CNN 分类路线起步,用三级相关性做分层报告以区分于历史工作;②做溃疡/出血任务则没有历史基准,需自建检查级划分基线并公开协议;③所有任务把“帧级 vs 检查级”两套指标并报,作为与后续工作对话的公共语言。

§8.3 评测协议

  • 官方协议:双子集各 12,562 帧(训练/测试),按类别与相关性等规模随机分组(论文)。
  • 历史协议(GIE 2019):同类别等规模双数据集互换(A1 训练 ↔ A2 测试,N1 ↔ N2),600 阳性 + 600 阴性,帧级。
  • 推荐加固协议:官方双子集 + exam_id 分组校验;指标报 ROC-AUC、PR-AUC、Sens@Spec95/99,帧级与检查级 max 池化双报;按相关性三级分层。
  • 禁止:把邻接序列帧计入评估集;跨子集使用序列;只报 accuracy。

发表物协议披露清单(照抄此表填空即可保证可比性):

披露要素 建议取值示例 对应坑点
数据口径 正文口径 5,124 病灶帧 + 20,000 正常帧 坑点 1
划分策略 官方双子集 + 检查级 GroupKFold 复核 坑点 2
序列使用 训练可用、评估仅索引帧 坑点 3
类别范围 血管(高相关)/溃疡炎症(高+中)/出血/正常 坑点 5、6
主指标 PR-AUC 与 Sens@Spec95/99,帧级 + 检查级 坑点 4
预处理 固定 resize + 气泡抑制 + 颜色标准化 坑点 7
版本记录 获取日期 + manifest sha256 坑点 8
数据集 规模 标注 获取 与 CAD-CAP 关系
Kvasir-Capsule 4,741,504 帧 / 117 视频(47,238 标注) 14 类帧级 + 图形标注 公开下载 自监督预训练池 + 息肉/肿瘤类互补;官方视频级 two-fold 协议可借鉴
KID 2,371 图像 / 47 视频 CEST 术语 + 图形标注 申请获取 多设备图谱,跨设备对照
GIANA 8,262 图像 / 38 视频 病变标签 申请获取 挑战赛生态,分割任务互补
GastroLab 数百张图像 病变标签 公开 克罗恩病相关病变补充
LDPolypVideo 结肠息肉视频数据 息肉框标注 公开 隆起型病变检测互补(非胶囊模态,注意域差)

§8.5 关键论文 Top 7

  1. Leenhardt R, et al., 2020, Endoscopy International Open. DOI 10.1055/a-1035-9088 — 数据集本体论文:12 中心 4,174 例、25,124 帧官方口径、标注协议与三级相关性设计。
  2. Leenhardt R, et al., 2019, Gastrointestinal Endoscopy. — 基于 CAD-CAP 的首个血管扩张 CNN(灵敏度 100%/特异度 96%),确立“数据库 → 算法”链路。(论文页)
  3. Iddan G, et al., 2000, Nature. DOI 10.1038/35014040 — 无线胶囊内镜奠基论文,理解模态背景的必读。
  4. Chen H, et al., 2023, New England Journal of Medicine. DOI 10.1056/NEJMoa2303706 — 沙利度胺治疗小肠血管扩张出血 RCT:检测类算法最终服务的治疗决策。
  5. 《Role of Artificial Intelligence in Video Capsule Endoscopy》, 2021. — 系统汇总 CE 各病灶任务的 AI 基准(含 CAD-CAP 衍生工作与 Tsuboi/Aoki 独立结果)。(PMC8303156)
  6. 《Machine learning based small bowel video capsule endoscopy analysis: Challenges and opportunities》, 2023, Future Generation Computer Systems. — 胶囊内镜数据集横向对比与任务分类的权威综述(其 Table 1 是本页 §1.3/§8.4 的数据来源)。(论文页)
  7. 《Image database, AI and capsule endoscopy; the bets are on》, 2020, Endoscopy International Open. DOI 10.1055/a-1073-7726 — 同刊社论:对 CAD-CAP 的同期独立评价与公开数据期待。(社论页)

§8.6 社区活跃度

CAD-CAP 没有独立的公开代码仓库或排行榜社区,社区活跃度主要体现在文献引用:论文被引 78+(Google Scholar,截至 2026-09;Semantic Scholar 收录 56)。引用主体为胶囊内镜 AI 综述与血管扩张检测方法学论文;因数据需申请获取,基于该库的公开复现研究数量明显少于 Kvasir-Capsule 等公开数据集。论文自述其数据已被 2 项国际医学图像计算分析挑战赛使用(未具名),提示挑战赛社区是其主要落地场景。

§8.7 生态快照

资源 类型 链接 推荐理由
CAD-CAP 论文全文(开放获取) 官方文献 PMC7035135 数据库唯一权威描述,标注协议细节全在此
HAL 开放存档副本 官方文献 hal-02492408 法国官方存档,含 PDF
出版方 HTML 全文 官方文献 Thieme E-Journals 表格与图完整版式
GIE 2019 衍生算法论文 方法文献 ScienceDirect 唯一同行评审基准的方法细节
Kvasir-Capsule 官方页 互补数据集 datasets.simula.no/kvasir-capsule 公开互补池 + 视频级划分协议范本
CE AI 综述(2021) 综述 PMC8303156 任务地图与外部基准对照
FGCS 综述(2023) 综述 ScienceDirect 数据集横向对比表与挑战清单

§9 相关资源与引用

§9.1 官方资源

§9.2 BibTeX 引用

@article{leenhardt2020cadcap,
  title   = {CAD-CAP: a 25,000-image database serving the development of
             artificial intelligence for capsule endoscopy},
  author  = {Leenhardt, Romain and Li, Cynthia and Le Mouel, Jean-Philippe and
             Rahmi, Gabriel and Saurin, Jean Christophe and Cholet, Franck and
             Boureille, Arnaud and Amiot, Xavier and Delvaux, Michel and
             Duburque, Clotilde and Leandri, Chloé and Gérard, Romain and
             Lecleire, Stéphane and Mesli, Farida and Nion-Larmurier, Isabelle and
             Romain, Olivier and Sacher-Huvelin, Sylvie and Simon-Shane, Camille and
             Vanbiervliet, Geoffroy and Marteau, Philippe and Histace, Aymeric and
             Dray, Xavier},
  journal = {Endoscopy International Open},
  volume  = {8},
  number  = {3},
  pages   = {E415--E420},
  year    = {2020},
  doi     = {10.1055/a-1035-9088}
}

@article{leenhardt2019angiectasia,
  title   = {A neural network algorithm for detection of GI angiectasia
             during small-bowel capsule endoscopy},
  author  = {Leenhardt, Romain and Vasseur, Pauline and Li, Cynthia and
             Saurin, Jean Christophe and Rahmi, Gabriel and Cholet, Franck and
             Dray, Xavier and Romain, Olivier and others},
  journal = {Gastrointestinal Endoscopy},
  volume  = {89},
  number  = {3},
  pages   = {E92--E93},
  year    = {2019},
  doi     = {10.1016/j.gie.2018.11.029}
}

§9.3 引用指南

  • 引用数据集本身:引用 Leenhardt 2020(DOI 10.1055/a-1035-9088),并注明数据经申请获取及获取日期。
  • 引用基准数字:注明帧级协议(600+600)与口径(正文 5,124 / 摘要 5,184),避免跨协议直接比较。
  • 使用本页的 ICD-11/SNOMED 映射:注明为千方病案医数集整理的参考映射,非数据集官方提供。

§10 AI 使用声明卡

§10.1 AI 模型列表

模型 用途 版本/说明
千方写作助手(CodeBuddy) 资料检索整理、初稿撰写、格式校验 基于大语言模型的辅助写作流水线

§10.2 AI 参与范围

本页面由 AI 辅助完成资料检索汇总、结构化撰写、代码示例生成与格式统一;全部事实性数字(规模、日期、性能、编码)均锚定 §10.3 所列公开来源并由检索过程逐一核对;医学结论与偏倚判断依据原始论文自述及同行评审文献转述,不含 AI 自由推断的新医学主张。

§10.3 输入来源列表

  1. Leenhardt R, et al., 2020, Endoscopy International Open. DOI 10.1055/a-1035-9088. https://doi.org/10.1055/a-1035-9088
  2. PMC 全文:https://pmc.ncbi.nlm.nih.gov/articles/PMC7035135/
  3. HAL 存档:https://cnrs.hal.science/hal-02492408v1
  4. Thieme 出版方全文:https://www.thieme-connect.de/products/ejournals/html/10.1055/a-1035-9088
  5. PubMed 记录:https://pubmed.ncbi.nlm.nih.gov/32118115/
  6. Leenhardt R, et al., 2019, Gastrointestinal Endoscopy. https://www.sciencedirect.com/science/article/abs/pii/S0016510718328281
  7. 2018 会议摘要(早期版本):https://www.sciencedirect.com/science/article/pii/S0016510718303468
  8. 《Role of Artificial Intelligence in Video Capsule Endoscopy》, 2021. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8303156/
  9. 《Machine learning based small bowel video capsule endoscopy analysis》, 2023, Future Generation Computer Systems. https://www.sciencedirect.com/science/article/pii/S0167739X23000171
  10. CiNii Research 著录(CC BY-NC-ND 4.0 权利信息):https://cir.nii.ac.jp/crid/1360588386297659136
  11. ICD-11 小肠疾病章节(FindACode MMS):https://www.findacode.com/icd-11/block-2086488820.html
  12. SNOMED CT 58358002(BioPortal):https://bioportal.bioontology.org/ontologies/SNOMEDCT?conceptid=http%3A%2F%2Fpurl.bioontology.org%2Fontology%2FSNOMEDCT%2F58358002&p=classes
  13. SNOMED CT 174637007 Angiectasia(BioPortal):https://bioportal.bioontology.org/ontologies/SNOMEDCT?conceptid=http%3A%2F%2Fpurl.bioontology.org%2Fontology%2FSNOMEDCT%2F174637007&p=classes
  14. MedGen 540621 Angiodysplasia of intestine:https://www.ncbi.nlm.nih.gov/medgen/540621
  15. MedGen 3664 Crohn disease:https://www.ncbi.nlm.nih.gov/medgen/3664
  16. Semantic Scholar 引用计量 API:https://api.semanticscholar.org/graph/v1/paper/DOI:10.1055/a-1035-9088
  17. AMBOSS Angiodysplasia 临床条目:https://www.amboss.com/us/knowledge/angiodysplasia
  18. Chen H, et al., 2023, NEJM. DOI 10.1056/NEJMoa2303706
  19. 同刊社论 DOI 10.1055/a-1073-7726:https://www.thieme-connect.de/products/ejournals/abstract/10.1055/a-1073-7726
  20. Google Scholar 引用视图(截至 2026-09):https://scholar.google.com.py/citations?citation_for_view=InUPxwQAAAAJ%3AGtLg2Ama23sC&hl=th&view_op=view_citation

§10.4 人工校验

内容模块 审核者 审核方式 审核状态
§1 概览与 §3 规格(全部规模/日期数字) 千方病案医学编辑部 逐条比对论文 Table 1-2、摘要与 Results 原文 ✅ 已验证
§2 医学背景与 ICD-11/SNOMED 映射 千方病案医学编辑部 ICD-11 MMS 与 BioPortal/MedGen 逐码核对 ✅ 已验证
§4 数据结构与 §5 划分建议 数据工程审核员 与论文 Methods 及目录约定交叉核对 ✅ 已验证
§6 坑点与代码示例 数据工程审核员 依据论文局限节 + 同领域公开证据逐条溯源 ✅ 已验证
§7 质量评估与 DAIMS 24 项 千方病案医学编辑部 24 项逐项对照论文与公开材料 ✅ 已验证
§8 基准与生态、§9 引用 千方病案医学编辑部 引用完整性(作者/年份/出处)逐条复核 ✅ 已验证

§10.5 AI 生成章节标注

全部章节由 AI 辅助生成初稿;§0 审核声明所列模块经人工逐项校验后定稿;§1.0 通俗速览、§6 代码示例与 §7.7“对你意味着什么”为 AI 撰写、人工审核修订内容。

§10.6 最后人工审核

最后人工审核日期:2026-09-05(与 §0 审核声明一致)

页面状态:published(全部内容已完成审核并发布)

返回 AI-Ready 数据集