信息速览

CVC-ClinicDB — 结肠镜息肉分割基准数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | CVC-ClinicDB |
| 英文全称 | CVC-ClinicDB: Colonoscopy Polyp Segmentation Database(CVC 计算机视觉中心与 Hospital Clínic 联合结肠镜息肉数据库) |
| 别名/简称 | CVC-ClinicDB、CVC-612、ClinicDB |
| 疾病分类 | ICD-11:2E90 结肠息肉(Polyp of colon)/ 2B80 结肠恶性肿瘤(筛查目标疾病) |
| SNOMED CT | 72951001 Polyp of colon / 68496003 Polyp / 363406005 Malignant tumor of colon / 73761001 Colonoscopy(详见 §2.2) |
| 数据模态 | 影像(白光结肠镜静态帧,384×288 px RGB)+ 逐像素二值分割掩膜 |
| AI 任务类型 | 语义分割(核心)、目标检测(掩膜转边界框)、息肉定位、跨数据集泛化评测 |
| 样本总数 | 612 帧(全部含息肉)/ 31 个息肉序列 / 23 名患者 / 31 个不同息肉 |
| 数据大小 | 约 50 MB(官方 zip)/ 53.1 MB(HuggingFace PNG 镜像) |
| 数据格式 | TIFF(Original/ 与 Ground Truth/ 双目录,帧号 1-612 一一对应) |
| 许可证 | 自定义非商业许可:仅限研究与教育用途,禁止商业用途;Original © Hospital Clínic,Ground Truth © CVC |
| 访问级别 | 开放(官方页面直接下载,无需注册申请) |
| DUO 标签 | HMB, NPUNCU, PUB |
| 语言 | 英文(文档与标注无语言依赖) |
| 首发日期 | 2015(MICCAI 2015 Endoscopic Vision Challenge 官方训练集;归属论文 2015-07 见刊) |
| 最后更新 | 2015(发布后未再更新,无版本演进) |
| 发布机构 | 巴塞罗那自治大学计算机视觉中心(CVC, UAB)& Hospital Clínic de Barcelona 胃肠科 |
| 官方主页 | https://polyp.grand-challenge.org/CVCClinicDB |
| 下载地址 | https://polyp.grand-challenge.org/CVCClinicDB(官方)/ https://huggingface.co/datasets/Aeoo/CVC-ClinicDB(镜像) |
| DOI | 10.1016/j.compmedimag.2015.02.007(归属论文) |
| 引用次数 | 2,445+(Google Scholar,截至 2026-09;OpenAlex 约 1,200) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 体积小、标注精、生态成熟、可一键上手;扣分项:无官方划分、全阳性无阴性帧、序列/患者口径存在文献分歧 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11/SNOMED CT 映射、腺瘤-癌序列与筛查临床任务定义、金标准标注流程描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(帧-序列映射、双目录结构)、§5 数据划分策略(序列级分组防泄漏)、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与巴塞罗那自治大学计算机视觉中心(CVC)、Hospital Clínic de Barcelona、Grand Challenge 平台无任何商业利益关联。本页面不销售 CVC-ClinicDB 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CVC-ClinicDB 采用自定义非商业许可——仅限研究与教育用途,禁止商业用途,使用时必须引用 Bernal et al. 2015(WM-DOVA)论文。DUO 标签仅供参考,具体使用限制以数据集官方条款为准。
§1 数据集概览
§1.0 30 秒速览
CVC-ClinicDB 是巴塞罗那自治大学计算机视觉中心(CVC)与 Hospital Clínic de Barcelona 于 2015 年联合发布的结肠镜息肉分割数据集,包含 612 帧白光结肠镜图像(384×288 像素),每帧都配有手工勾画的息肉分割掩膜,来自 31 个息肉序列、23 名患者。
它的历史地位可以用一句话概括:息肉分割领域的"MNIST"——几乎每一篇息肉分割论文都要在它上面报数。它是 MICCAI 2015 内窥镜视觉挑战赛的官方训练集,归属论文(Bernal et al., WM-DOVA)在 Google Scholar 已被引用超过 2,400 次(截至 2026-09),是整个计算息肉检测领域被引最多的单篇论文之一。PraNet、Polyp-PVT 等定义该领域评测范式的经典工作,都以"Kvasir-SEG + CVC-ClinicDB"作为标准训练-测试组合。
你可以用它来:训练一个结肠镜息肉分割模型并与十年来的文献直接比较、研究小样本医学影像分割的模型设计、作为跨数据集泛化实验的标准训练集(在 CVC-ColonDB / ETIS / CVC-300 上做 unseen 测试)、或带学生用一下午时间完成一个完整的医学影像分割项目。
§1.1 摘要
CVC-ClinicDB 由巴塞罗那 Hospital Clínic 的结肠镜检查视频研究(video studies)生成:对每个含息肉的研究,研究者截取包含该息肉的完整序列,再从序列中挑选能展示息肉不同视角的帧,最终得到 612 帧(官方口径:31 个序列 / 23 名患者 / 31 个不同息肉;Bernal 2015 原论文的帧-序列表为 29 序列 / 25 个 video studies,两种口径并存,见 §6.5 坑点 1)。每帧 384×288 像素 TIFF,配一张同尺寸二值掩膜(息肉前景 / 背景)。它随 MICCAI 2015 Endoscopic Vision Challenge 自动息肉检测子挑战发布,是该挑战的官方训练集(测试集为 ETIS-LaribPolypDB)。数据归属于 Bernal 等人 2015 年发表于 Computerized Medical Imaging and Graphics 的 WM-DOVA 论文——该文提出的"窗口中值谷深累积"能量图是深度学习时代之前息肉定位的代表性方法。2017 年 CVC 团队将其扩展为 CVC-EndoSceneStill(合并 CVC-ColonDB 共 912 帧,新增管腔/镜面反光/边框标注与官方患者级划分),进一步巩固了其基准地位。
§1.2 战略价值分析
范式锚定维度:CVC-ClinicDB 最大的贡献不是规模,而是把"息肉分割"定义成了一个可量化比较的学术任务。在它之前(2015 年前),息肉检测论文各用各的私有数据、各报各的指标,结果完全不可比。612 帧 + 逐像素掩膜 + MICCAI 挑战赛的标准化,让 Dice/IoU 成为该领域的通用货币。此后十年间,从 U-Net(mDice 0.823)到 PraNet(0.899)再到 Polyp-PVT(0.937)与 2025 年的 Mamba 系模型(约 0.95),这条性能曲线本身就构成了一部微缩的医学影像分割方法学演进史——任何一个新模型都可以花几小时训练、在完全相同的 62 张测试图上与十年文献同台竞技。
生态推动维度:围绕 CVC-ClinicDB 形成了息肉分割领域最稳固的评测组合:它与 Kvasir-SEG 组成"seen 双数据集"(衡量学习能力),与 CVC-ColonDB / ETIS-Larib / CVC-300 组成"unseen 三数据集"(衡量泛化能力)。这套由 PraNet(MICCAI 2020)固化的"2+3"评测协议被此后数百篇论文沿用,使 CVC-ClinicDB 从"一个数据集"变成了"一个坐标系"。Vázquez 等人 2017 年基于它构建的 CVC-EndoSceneStill(912 帧,新增管腔/反光/边框多类别标注与患者级官方划分)又把它的用途从单息肉分割扩展到内窥镜场景理解,该论文自身引用已超 1,000 次。
临床连接维度:结直肠癌是全球第三大常见癌症,而息肉检出是结肠镜筛查的第一公里——腺瘤检出率(ADR)每提高 1%,间期癌风险下降 3%。CVC-ClinicDB 提供的正是训练"第二双眼睛"的起点数据:WM-DOVA 论文的临床动机直接指向小息肉漏检这一真实痛点,其作者团队(Hospital Clínic 胃肠科 Fernández-Esparrach 等)随后将能量图方法推进到体内临床验证(Endoscopy 2016)。对做 CADe(计算机辅助检测)的研究者而言,这个数据集是算法从论文走向内镜室的第一级台阶。
§1.3 横向对比
| 数据集 | 帧数 | 分辨率 | 序列/患者 | 阴性帧 | 核心差异化 |
|---|---|---|---|---|---|
| CVC-ClinicDB | 612 | 384×288 | 31 / 23 | 无 | 被引最多的息肉分割基准;MICCAI 2015 官方训练集;逐像素掩膜 |
| Kvasir-SEG | 1,000 | 332×487 至 1920×1072 | 未公开 | 无 | 多分辨率、含边界框;与 ClinicDB 组成标准 seen 对 |
| CVC-ColonDB | 300 | 574×500 | 13 / 13 | 无 | 同机构姊妹集;常作 unseen 泛化测试 |
| ETIS-LaribPolypDB | 196 | 1225×966 | 34 / 未公开 | 无 | MICCAI 2015 官方测试集;小息肉多、公认最难 |
| CVC-300 | 300 | 574×500 | 60 / — | 无 | EndoScene 组成部分;unseen 测试 |
| CVC-EndoSceneStill | 912 | 574×500 & 384×288 | 44 / 36 | 有(背景类) | ClinicDB+ColonDB 扩展版;多类别标注 + 官方患者级划分 |
| CVC-ClinicVideoDB | 约 28,563 | 384×288 | 38 视频 | 有 | ClinicDB 视频版(2017);含阴性帧 |
| PICCOLO | 3,433 | 854×480 / 1920×1080 | 76 病灶 / 40 | 有 | 白光 + NBI 双模态;西班牙 Basurto 医院 |
| LDPolypVideo | 40,187 | 560×480 | 160 视频 / 200 息肉 | 有 | 大规模视频级,适合检测与跟踪 |
| PolypGen | 1,537 | 多分辨率 | 六中心 | 有 | 多中心多样性最强 |
CVC-ClinicDB 的不可替代性在于时间深度:它是唯一一个拥有 2015-2026 年完整十年可比较性能曲线的息肉分割数据集。规模早已被后来者超越,但"文献锚点"价值无法复制——复现任何一篇息肉分割论文,几乎都绕不开它。
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2012 | Bernal et al. 在 Pattern Recognition 发表息肉外观模型前作(引用 800+),为数据集奠定方法学基础 |
| 2013-2014 | Hospital Clínic 结肠镜视频研究采集与帧筛选、掩膜标注(GTCreator 工具链前身) |
| 2015-02 | WM-DOVA 论文在线发表(Computerized Medical Imaging and Graphics 43:99-111,DOI: 10.1016/j.compmedimag.2015.02.007) |
| 2015-10 | CVC-ClinicDB 作为 MICCAI 2015 Endoscopic Vision Challenge 自动息肉检测子挑战官方训练集发布(测试集为 ETIS-Larib) |
| 2016-09 | Fernández-Esparrach et al. 在 Endoscopy 发表 WM-DOVA 体内临床验证(48(09):837-842) |
| 2017-06 | Bernal et al. 在 IEEE TMI 发表 MICCAI 2015 挑战赛总结(36(6):1231-1249) |
| 2017-07 | CVC-EndoSceneStill 发布(Vázquez et al., J Healthc Eng 2017:4037190):合并 CVC-ColonDB 共 912 帧,新增管腔/反光/边框标注与官方患者级划分 |
| 2017 | CVC-ClinicVideoDB 发布(视频版,38 个视频约 2.8 万帧,含阴性帧) |
| 2020-06 | PraNet(MICCAI 2020)固化"Kvasir-SEG + CVC-612 seen / ColonDB+ETIS+CVC-300 unseen"评测协议,mDice 0.899 |
| 2021-2023 | Polyp-PVT(0.937)、SANet、UACANet、CFA-Net 等 Transformer 系刷榜进入 0.93 平台期 |
| 2024 | AI4PolypNet 项目发布完整息肉检测/分割/分类基准(Frontiers in Oncology 2024:1417862),CVC 官方数据集体系再整合 |
| 2025 | Polyp-Mamba / SAM-MaGuP 等 Mamba 与基础模型系方法报告 mDice 约 0.95(聚合页口径) |
数据集本体自 2015 年发布后未再更新、无版本号演进——这保证了十年文献的严格可比性,也意味着其图像质量停留在标清内镜时代(见 §7.3)。
§1.5 典型 AI 应用场景
- 息肉分割模型训练与基准评测:领域默认操作——与 Kvasir-SEG 合并为 1,450 帧训练集(550+900),在各自 10% 测试帧上报告 6 指标,与十年文献直接可比。
- 跨数据集泛化研究:作为标准训练集,在 CVC-ColonDB / ETIS-Larib / CVC-300 三个 unseen 数据集上测试模型的域泛化能力,这是 PraNet 协议的核心设计。
- 小样本分割方法学研究:612 帧的规模使它成为研究数据高效学习(data-efficient learning)、强数据增强、半监督与自监督预训练的理想试验场。
- 息肉检测/定位:将掩膜转为边界框训练 YOLO/Faster R-CNN 类检测器(注意:全阳性帧无法评估假阳性率,见 §6.5 坑点 3)。
- 教学与快速原型:约 50 MB 的体积 + 极简目录结构,是学生入门医学影像分割、工程师验证新架构的最低成本选择——单卡 GPU 半小时即可完成一轮完整训练。
§2 医学背景
§2.1 ICD-11 疾病分类锚定
| 临床概念 | ICD-11 编码 | 中文名称 | 与本数据集的关系 |
|---|---|---|---|
| 结肠息肉 | 2E90 | 结肠息肉(Polyp of colon) | 数据集的标注对象——612 帧掩膜勾画的即此类病灶 |
| 结直肠恶性肿瘤 | 2B80-2B8Z | 结肠/直肠/肛管恶性肿瘤 | 筛查的终极目标疾病——息肉切除是阻断腺瘤-癌序列的一级预防 |
| 结直肠良性肿瘤 | 2E86-2E8Z | 结直肠良性肿瘤(含腺瘤) | 息肉的主要病理类型(腺瘤性息肉为癌前病变) |
重要边界:CVC-ClinicDB 的掩膜不区分息肉病理类型(腺瘤 / 增生性 / 炎性 / 锯齿状),也没有良恶性标签。它回答的问题是"息肉在哪里、边界在哪",而非"这个息肉是什么"——后者需要病理标注数据集(如 PICCOLO、Colonoscopic Dataset 等含组织学标签的数据集)。
§2.2 SNOMED CT 映射
| 临床场景 | ICD-11 | ICD-10 桥接 | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|---|
| 结肠息肉 | 2E90 | K63.5 | 72951001 | Polyp of colon (disorder) |
| 息肉(通用) | — | K63.5 | 68496003 | Polyp (morphologic abnormality) |
| 结肠恶性肿瘤 | 2B80 | C18 | 363406005 | Malignant tumor of colon (disorder) |
| 结肠腺瘤性息肉 | — | D12.6 | 92142004 | Adenomatous polyp of colon (disorder) |
| 结肠镜检查 | 5AJD.00 | 0DJD8ZZ | 73761001 | Colonoscopy (procedure) |
| 息肉切除术 | 5AJE | 0DTN0ZZ | 274025005 | Colonic polypectomy (procedure) |
§2.3 疾病简介
结直肠癌(CRC)是全球第三大常见癌症、第二大癌症死因(GLOBOCAN 2020:约 193 万新发病例、93.5 万死亡)。绝大多数 CRC 经腺瘤-癌序列(adenoma-carcinoma sequence)演进:正常黏膜 → 腺瘤性息肉 → 高级别上皮内瘤变 → 浸润癌,窗口期通常 10-15 年。这使得结肠镜筛查 + 息肉切除成为肿瘤学中最有效的一级预防手段之一——NCI 的 National Polyp Study 随访显示息肉切除可使 CRC 死亡率降低 53%(Zauber et al., 2012, NEJM)。然而结肠镜并非完美:串联结肠镜研究估计腺瘤漏检率高达 20-26%(van Rijn et al., 2006),小息肉与扁平息肉是漏检主体。腺瘤检出率(ADR)每提高 1%,间期癌风险即下降 3%(Corley et al., 2014, NEJM)——这正是 AI 实时息肉检测(CADe)与分割(CADx 前端)的临床价值原点。
§2.4 临床任务定义
| AI 任务 | 临床定义 | 在 CVC-ClinicDB 中的操作化 | 临床意义 |
|---|---|---|---|
| 息肉分割(核心) | 在结肠镜图像中逐像素勾画息肉边界 | 612 帧二值掩膜监督学习,Dice/IoU 评测 | 测量息肉大小、辅助完整切除、定位活检 |
| 息肉定位/检测 | 框出息肉位置 | 掩膜外接矩形转换 | 实时提醒内镜医师,降低漏检 |
| 边界精化 | 精确界定息肉-黏膜过渡带 | 高 IoU 指标、E-measure 评测 | 冷圈套切除的边界判断 |
| 泛化性验证 | 模型在异质数据上的稳健性 | 以 ClinicDB 为 seen 训练集,外推 unseen 数据集 | 模拟跨医院、跨设备部署 |
§2.5 患者人群特征
| 维度 | 特征 |
|---|---|
| 数据来源 | 单中心:Hospital Clínic de Barcelona(西班牙巴塞罗那,大学附属三级医院)胃肠科 |
| 采集时间 | 约 2012-2014(论文 2015-02 在线发表,官方未公布确切采集区间) |
| 规模 | 23 名患者 / 31 个息肉序列 / 31 个不同息肉 / 612 帧 |
| 成像方式 | 标准白光(white light)结肠镜,标准清晰度(384×288),非 NBI/色素内镜 |
| 帧筛选原则 | 每个序列选取能展示息肉多个视角的帧;未剔除因运动模糊或肠道准备不佳导致的低质量帧(系统综述明确记载"无帧因特殊肠道准备或模糊被丢弃") |
| 人口统计学 | 未发布年龄、性别、种族等任何患者级元数据 |
| 息肉病理信息 | 未发布病理分型、大小(毫米级)、巴黎分型等临床标注 |
解读:这是一个纯视觉基准——23 名患者的人口学信息完全缺失,意味着它无法支持任何公平性/亚群分析(见 §7.5);患者级划分只能依赖"帧号 → 序列 → 患者"的映射近似推断。
§2.6 金标准/参考标准
| 数据产物 | 标注方式 | 标注者 | 金标准性质 |
|---|---|---|---|
| 息肉分割掩膜(Ground Truth/) | 手工逐像素勾画 | CVC 计算机视觉研究者标注,Hospital Clínic 胃肠病学专家(Fernández-Esparrach、Rodríguez,均为论文共同作者)参与标注体系构建与校验 | 专家级参考标准;单个标注者为主,无公开的标注者间一致性(IoU)报告 |
| 图像内容 | 结肠镜系统原始输出 | Olympus 时代标准白光内镜(具体型号未公开) | 临床常规影像,未做超分辨率或增强 |
| 息肉存在性 | 每帧至少含一个息肉(数据集筛选前提) | 内镜医师在视频研究中的发现 | 100% 患病率——这是数据集设计的筛选偏倚,非真实临床分布 |
关于标注一致性的诚实说明:Bernal 2015 论文的亮点在于用眼动仪记录的医师注视图(saliency maps from physicians)验证 WM-DOVA 能量图——这是该论文"Validation vs. saliency maps from physicians"标题的由来,说明标注体系有真实临床读片行为背书;但数据集掩膜本身的标注者人数、复核流程与一致性统计从未正式公开,这是其 DAIMS 评分的扣分项之一(见 §7.7)。
§3 数据集规格
§3.0 版本抉择矩阵
CVC-ClinicDB 本体只有一个版本(2015 年发布,无更新),但"获取渠道"与"配套组合"有多种选择。30 秒选型:
| 你的需求 | 推荐获取方式 | 大小 | 理由 |
|---|---|---|---|
| 严格复现论文 / 投稿引用 | 官方 Grand Challenge 页下载(TIFF 原版) | 约 50 MB | 权威来源,帧号与官方序列表严格对应;文献引用的都是这个版本 |
| 快速原型 / 不想处理 TIFF | HuggingFace 镜像(Aeoo/CVC-ClinicDB,PNG + 现成 train/val/test) | 53.1 MB | load_dataset 一行加载;其划分来自 ESFPNet 论文(Chang et al., 2024) |
| 需要官方患者级划分 / 多类别标注 | CVC-EndoSceneStill | 约 100 MB | 含 ClinicDB 全部 612 帧 + 官方 547/183/182 患者级划分 + 管腔/反光/边框标注 |
| 需要阴性帧做检测任务 | CVC-ClinicVideoDB 或 Kvasir-SEG 之外的 LDPolypVideo | GB 级 | ClinicDB 全阳性,检测任务必须补阴性帧(见 §6.5 坑点 3) |
| 需要可视化浏览再决定 | DatasetNinja 在线浏览 | 免下载 | 612 帧掩膜全部可在线翻页查看,含面积统计 |
一句话结论:做研究复现一律用官方 TIFF 原版;只有为了跑通管道才用镜像,且投稿前须回到官方版本验证。
§3.1 模态详细说明
CVC-ClinicDB 为单模态影像数据集,包含严格配对的两种文件:
- 原始帧(Original/):612 张白光结肠镜静态帧,384×288 像素,24-bit RGB,TIFF 无压缩格式。帧从检查视频中抽取,刻意保留同一息肉的不同视角(角度、距离、光照、模糊程度各异),因此同一序列内的帧既有高度相似的近邻,也有视角突变的样本。
- 分割掩膜(Ground Truth/):612 张同尺寸二值掩膜(息肉 = 高亮前景,背景 = 黑色),帧号与原始帧一一对应。息肉平均占图像面积的 9.17%,最小仅 373 像素(0.34%),最大 54,148 像素(48.96%)(DatasetNinja 统计)。
没有的东西(与规模同样重要):无视频流(仅抽帧)、无阴性帧、无病理标签、无边界框(可由掩膜生成)、无患者元数据、无采集设备型号记录、无时间戳。
§3.2 样本量拆分
| 口径 | 数值 | 出处 |
|---|---|---|
| 总帧数 | 612 | 所有文献一致 |
| 序列数 | 31(挑战赛/EndoScene 口径)/ 29(Bernal 2015 原论文帧-序列表口径) | Vázquez 2017 Table 1 / Bernal 2015 |
| 患者数 | 23(原论文称 “25 different video studies”) | Vázquez 2017 / Bernal 2015 |
| 不同息肉数 | 31 | Bernal et al. 2017 TMI |
| 阴性(无息肉)帧 | 0 | 数据集筛选前提 |
| 每序列帧数 | 6-25 帧不等,平均约 20 帧 | 官方帧-序列表 |
| 图像尺寸 | 全部 384×288 | 无例外 |
官方帧号 → 序列映射表(29 序列版本,官方页面 Table 1):
| 帧号区间 | 序列 | 帧号区间 | 序列 | 帧号区间 | 序列 |
|---|---|---|---|---|---|
| 1-25 | 1 | 206-227 | 11 | 429-447 | 21 |
| 26-50 | 2 | 228-252 | 12 | 448-466 | 22 |
| 51-67 | 3 | 253-277 | 13 | 467-478 | 23 |
| 68-78 | 4 | 278-297 | 14 | 479-503 | 24 |
| 79-103 | 5 | 298-317 | 15 | 504-528 | 25 |
| 104-126 | 6 | 318-342 | 16 | 529-546 | 26 |
| 127-151 | 7 | 343-363 | 17 | 547-571 | 27 |
| 152-177 | 8 | 364-383 | 18 | 572-591 | 28 |
| 178-199 | 9 | 384-408 | 19 | 592-612 | 29 |
| 200-205 | 10 | 409-428 | 20 | — | — |
注意:这是官方页面给出的映射表(止于序列 29),与后续文献"31 序列"的表述存在 2 个序列的差异(见 §6.5 坑点 1)。实际做序列级分组划分时,建议以此表为准,并将超出部分按相邻序列合并处理或向官方页面核对。
§3.3 数据格式详情
| 内容 | 格式 | 尺寸/规格 | 说明 |
|---|---|---|---|
| 原始帧 | TIFF(无压缩 RGB) | 384×288 px,24-bit | Original/1.tiff … Original/612.tiff |
| 分割掩膜 | TIFF(二值) | 384×288 px | Ground Truth/1.tiff … Ground Truth/612.tiff,帧号严格对应 |
| HF 镜像版 | PNG + parquet | 384×288 px | train/validation/test 三划分(ESFPNet 论文划分) |
| 官方页面 | HTML + zip | 约 50 MB | 含图 1 示例与表 1 帧-序列映射 |
§3.4 存储大小
| 形态 | 大小 | 备注 |
|---|---|---|
| 官方 zip(TIFF) | 约 50 MB | Grand Challenge 页面直链 |
| HuggingFace 镜像 | 53.1 MB | PNG 格式 + 划分元数据 |
| 解压后 TIFF | 约 200-400 MB | TIFF 无压缩,单帧约 330 KB × 2 |
| 加载到内存(float32 张量) | 约 1.6 GB | 612×288×384×3×4 bytes × 2 份 |
对当代硬件而言没有任何存储压力——整个数据集可以放进显存,这也是它成为教学首选的原因之一。
§3.5 标注方式
Hospital Clínic 结肠镜检查(白光,标清)
│
▼
含息肉 video studies(25 个研究 → 23 名患者口径)
│ 截取每个研究中含息肉的完整序列(29/31 个序列)
▼
帧筛选:刻意保留息肉的多视角帧(未剔除模糊/准备不佳帧)
│
▼
CVC 研究者手工逐像素勾画息肉掩膜
│ 胃肠病学专家(论文共同作者)参与标注体系与校验
▼
612 对 Original + Ground Truth(帧号 1-612)
│
▼
MICCAI 2015 EndoVis Challenge 官方训练集发布
标注流程的验证特色:WM-DOVA 论文用医师眼动追踪注视图对照验证能量图的有效性——标注体系并非纯粹的工程产物,而是经过临床读片行为学验证。Bernal 团队后续还发表了专门的标注工具论文(GTCreator, CARS 2018),系统化了这一标注流水线。
§3.6 标注者资质
| 维度 | 情况 |
|---|---|
| 标注执行 | CVC(Computer Vision Center)计算机视觉研究者 |
| 临床背书 | Hospital Clínic 胃肠科医师 Gloria Fernández-Esparrach、Cristina Rodríguez 为论文共同作者,参与标注体系构建 |
| 标注者人数 | 未公开 |
| 一致性检验 | 未公开标注者间 IoU/Kappa 统计 |
| 行为学验证 | 医师眼动注视图(eye-tracker saliency maps)用于验证定位方法(WM-DOVA 论文核心实验) |
§3.7 数据采集时间范围
官方未公布确切采集区间。依据论文时间线推断为约 2012-2014 年(前作 Pattern Recognition 2012 已建立方法,WM-DOVA 论文 2015-02 在线发表)。数据集自 2015 年发布后未再更新,图像质量定格于标清内镜时代。
§3.8 地理覆盖
单中心——Hospital Clínic de Barcelona,西班牙巴塞罗那。单中心 + 单一成像模式(白光标清)是其最核心的泛化性限制(详见 §7.3):不含 NBI(窄带成像)、色素内镜、放大内镜图像,不含当代 1080p/4K 高清内镜输出。
§3.9 采集设备规格
| 项目 | 规格 | 备注 |
|---|---|---|
| 内镜类型 | 标准白光结肠镜 | Hospital Clínic 常规检查 |
| 图像分辨率 | 384×288 px | 标清(SD),约 2010 年代初期内镜视频标准 |
| 成像模式 | 白光(WL) | 无 NBI / BLI / 色素喷洒 |
| 设备品牌/型号 | 未公开 | 论文与官方页面均未记载 |
| 帧率/时长 | 不适用(静态帧抽取) | 视频版见 CVC-ClinicVideoDB |
§3.10 深度溯源链
| 环节 | 系统/方法 | 关键转换 |
|---|---|---|
| 1. 临床采集 | Hospital Clínic 结肠镜检查(白光标清内镜) | 内镜医师在常规检查中发现息肉并录制视频片段 |
| 2. 序列截取 | CVC 研究团队 | 从 video studies 中截取含息肉的完整序列(29/31 个),确保每个序列聚焦一个息肉 |
| 3. 帧筛选 | 视角多样性原则 | 每序列选 6-25 帧,刻意覆盖多角度、距离、光照;不剔除模糊与肠道准备不佳的帧——保留真实临床噪声 |
| 4. 像素标注 | CVC 研究者手工勾画 + 胃肠科专家体系背书 | 生成 612 张二值掩膜;眼动注视实验提供行为学验证 |
| 5. 挑战赛发布 | MICCAI 2015 Endoscopic Vision Challenge(Grand Challenge 平台) | 作为官方训练集公开(测试集 ETIS-Larib 独立提供) |
| 6. 生态扩展 | CVC 后续项目 | 2017 年扩展为 EndoSceneStill(+标注+划分)与 ClinicVideoDB(视频版);2024 年纳入 AI4PolypNet 基准体系 |
§4 数据结构详解
§4.0 目录结构预览
CVC-ClinicDB/
├── Original/ # 612 张原始结肠镜帧(384×288 RGB TIFF)
│ ├── 1.tiff # 帧 1(序列 1)
│ ├── 2.tiff
│ ├── ...
│ ├── 25.tiff # 序列 1 结束
│ ├── 26.tiff # 序列 2 开始
│ ├── ...
│ └── 612.tiff # 帧 612(最后一个序列结束)
├── Ground Truth/ # 612 张息肉分割掩膜(同尺寸二值 TIFF)
│ ├── 1.tiff # 与 Original/1.tiff 严格配对
│ ├── 2.tiff
│ ├── ...
│ └── 612.tiff
└── (官方 zip 内无其他文件——无 README、无划分文件、无元数据 CSV)
HuggingFace 镜像版(Aeoo/CVC-ClinicDB,供快速原型参考):
CVC-ClinicDB/
├── train/
│ ├── images/ # 训练图像(PNG)
│ └── masks/ # 训练掩膜
├── validation/
│ ├── images/
│ └── masks/
└── test/
├── images/
└── masks/
§4.1 DAIMS 标准化字段描述表
CVC-ClinicDB 没有传统表格字段——其"记录"是帧级图像-掩膜对。按 DAIMS 8 列格式描述帧级数据单元:
| 字段名 | 数据类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| frame_id | Integer | 帧编号(文件名) | 42 | 主键;帧-序列映射的联接键 | 无 | 不允许缺失 | 1-612 连续整数 |
| sequence_id | Integer(派生) | 所属息肉序列 | 3(帧 51-67) | 分组划分的关键键(防泄漏) | 官方表止于序列 29,与文献 31 序列口径有差异 | 无独立文件,需按官方表派生 | 1-29(官方表)/ 1-31(文献) |
| original_image | Image (RGB TIFF) | 白光结肠镜帧 | 384×288×3 uint8 | 模型输入 | 含模糊/反光/准备不佳的真实噪声 | 不允许缺失 | 固定 384×288 |
| polyp_mask | Image (Binary TIFF) | 息肉逐像素掩膜 | 384×288 bool | 监督信号 | 单标注者,无公开一致性 | 不允许缺失(每帧必有掩膜且必有前景) | 前景占比 0.34%-48.96% |
| polyp_area_px | Integer(派生) | 息肉像素面积 | 7,557(中位数) | 难度分层(小息肉子集评测) | 由掩膜派生 | 不适用 | 373-54,148 px |
| split | — | 官方划分 | 不存在 | — | — | 需自行按序列分组生成 | — |
§4.2 标签分布统计
| 维度 | 数值 | 说明 |
|---|---|---|
| 类别数 | 1(polyp,二值分割) | 无病理亚型 |
| 阳性帧占比 | 100%(612/612) | 数据集筛选前提:每帧至少一个息肉 |
| 息肉平均面积占比 | 9.17% | 前景/背景极不平衡(约 1:10) |
| 息肉面积中位数 | 7,557 px(约 6.8% 画面) | — |
| 最小息肉 | 373 px(0.34%) | 小息肉是漏检与低 Dice 的主体 |
| 最大息肉 | 54,148 px(48.96%) | 近半画面 |
| 单帧息肉实例数 | 绝大多数为 1 个;个别帧可见多个区域 | 连通域分析可拆分实例 |
类别不平衡提示:前景占比平均仅约 9%,直接用 BCE 训练会得到保守(欠分割)的掩膜——Dice loss / Focal loss / 加权 BCE 是该数据集的标配(见 §6.7)。
§4.3 关键字段描述性统计
- 帧尺寸:全部 384×288,无例外(这是文献中任何其他分辨率描述都可判定为笔误的依据)。
- 序列长度:6-25 帧,中位约 21 帧;最长序列 25 帧(序列 1、2、5、6、7、8、12、13、16、19、24、25 等),最短 6 帧(序列 10)。
- 息肉位置:无位置偏置——掩膜空间分布热力图显示息肉可出现在画面任何位置(DatasetNinja 空间分布统计)。
- 帧间相似度:同序列相邻帧 SSIM 普遍较高,是随机划分泄漏的结构根源(见 §6.5 坑点 2)。
§4.4 数据层级关系
患者(23 名,无元数据,ID 未公开)
└─ video study / 息肉序列(29-31 个,每序列聚焦 1 个息肉)
└─ 帧(612 张,帧号 1-612 连续,按序列分段)
├─ Original/{frame_id}.tiff (输入)
└─ Ground Truth/{frame_id}.tiff (监督)
- 层级要点:序列是患者与帧之间的关键中间层——同一序列的帧共享同一个息肉实体。任何划分策略都必须在序列层操作,否则同一息肉的近似帧会同时泄漏进训练集与测试集。
- 患者 ↔ 序列的映射未公开:23 名患者对应 31 个序列,意味着部分患者贡献了多个序列,但具体对应关系不可得——严格的患者级划分无法精确实现,序列级划分是可实现的最高标准。
§4.5 缺失值情况与信息性缺失编码
| 缺失类型 | 涉及内容 | 缺失原因 | 信息性缺失编码 | 对 AI 的影响 |
|---|---|---|---|---|
| 结构性缺失(设计使然) | 阴性帧 | 数据集只收含息肉帧 | 缺失 = 非息肉画面 | 无法评估特异性/FPR(坑点 3) |
| 结构性缺失 | 病理分型标签 | 数据集定位为定位/分割基准 | 缺失 = 无组织学金标准 | 不可用于息肉分类/良恶性预测 |
| 结构性缺失 | 患者人口学 | 未发布 | 缺失 = 无法做公平性分析 | 公平性研究需换用 PICCOLO 等含元数据集 |
| 结构性缺失 | 患者-序列映射 | 未公开 | 缺失 = 无法精确患者级划分 | 以序列级划分为最高可实现标准 |
| 图像内容缺失 | 无 | 612 帧与 612 掩膜完整配对 | — | 无影响 |
§5 数据划分与使用建议
§5.1 官方数据划分
CVC-ClinicDB 原版不提供任何官方 train/val/test 划分。 社区存在两套事实标准,选用哪套直接决定你的结果与哪些文献可比:
- PraNet 协议(最主流,90/10 随机划分):源自 SFA(MICCAI 2019)与 PraNet(MICCAI 2020)——取 CVC-ClinicDB 的 90%(548-550 帧)与 Kvasir-SEG 的 90%(900 帧)合并为约 1,450 帧训练集,剩余 10%(ClinicDB 62-64 帧 + Kvasir 100 帧)作 seen 测试集;另以 CVC-ColonDB / ETIS / CVC-300 全量作 unseen 泛化测试集。2020 年后绝大多数论文沿用此协议。
- EndoScene 协议(患者级 60/20/20):Vázquez et al. 2017 为 CVC-EndoSceneStill(912 帧)定义的官方划分——547 帧训练(20 患者)/ 183 帧验证(8 患者)/ 182 帧测试(8 患者),强制同一患者不跨集。含 ClinicDB 全部帧,但同时混入 CVC-ColonDB 帧与多类别标注,与 PraNet 协议的数值不可直接比较。
HuggingFace 镜像的 train/val/test 划分来自 ESFPNet 论文(Chang et al., 2024, J Imaging 10(8):191),属第三种口径,引用时需注明。
§5.2 推荐划分策略
- 与文献比较 → 严格复现 PraNet 协议:直接克隆 PraNet 官方仓库(DengPingFan/PraNet)的
data/目录与划分文件,不要自己随机切——不同的 90/10 随机种子会产生 ±1-2% 的 Dice 波动,破坏可比性。 - 方法学研究 → 序列级分组划分:按 §3.2 帧-序列映射表将 612 帧归入序列,用
GroupKFold(groups=sequence_id)做 5 折交叉验证,保证同一息肉的所有帧只出现在一侧。 - 泛化研究 → seen/unseen 双层设计:seen 测试用 ClinicDB 留出部分,unseen 测试必须用 CVC-ColonDB / ETIS / CVC-300——仅在 ClinicDB 内部评估无法支撑任何泛化结论。
import numpy as np
from sklearn.model_selection import GroupKFold
# 官方帧-序列表(29 序列版),构建每帧的 sequence_id
SEQ_TABLE = [(1,25,1),(26,50,2),(51,67,3),(68,78,4),(79,103,5),
(104,126,6),(127,151,7),(152,177,8),(178,199,9),(200,205,10),
(206,227,11),(228,252,12),(253,277,13),(278,297,14),(298,317,15),
(318,342,16),(343,363,17),(364,383,18),(384,408,19),(409,428,20),
(429,447,21),(448,466,22),(467,478,23),(479,503,24),(504,528,25),
(529,546,26),(547,571,27),(572,591,28),(592,612,29)]
frame_ids = np.arange(1, 613)
seq_ids = np.zeros(612, dtype=int)
for lo, hi, s in SEQ_TABLE:
seq_ids[lo-1:hi] = s
gkf = GroupKFold(n_splits=5)
for fold, (tr, te) in enumerate(gkf.split(frame_ids, groups=seq_ids)):
assert len(set(seq_ids[tr]) & set(seq_ids[te])) == 0 # 序列级零泄漏验证
print(f"fold {fold}: train={len(tr)} test={len(te)}")
§5.3 数据泄漏风险防御
| # | 泄漏模式 | 严重程度 | 防御措施 |
|---|---|---|---|
| 1 | 随机帧级划分:同一息肉的相邻帧同时进训练/测试 | 极高 | GroupKFold 按 sequence_id 分组;或直接用 PraNet 公开划分 |
| 2 | 数据增强先行再划分:同一帧的增强副本分落两侧 | 高 | 先划分、后增强,增强只在训练侧执行 |
| 3 | 与 Kvasir-SEG 合并训练时混入来源混淆 | 中 | 保留数据集来源标记,seen 评估分别报告两库指标 |
| 4 | EndoSceneStill 与原版混用:同一帧以不同标注体系重复出现 | 中 | 二选一;EndoScene 的帧与原版 612 帧存在包含关系 |
| 5 | 用掩膜派生特征(面积、位置)作为模型输入 | 高 | 掩膜只作监督信号与后处理,任何派生量禁止入模 |
§5.4 交叉验证建议
- 标准:5 折序列级 GroupKFold(每折约 122 帧测试),报告均值 ± 标准差。
- 小样本方差警示:612 帧 × 5 折的 Dice 标准差可达 ±2-3%,单折或单次随机划分的结果差异 <2% 时不应宣称"优于基线"——这正是 §7.7 对刷榜文献的方法学批评。
§5.5 外部验证
在 CVC-ClinicDB 上训练的模型,经典外部验证路径为:CVC-ColonDB(300 帧,同机构异患者)、ETIS-LaribPolypDB(196 帧,法国 Lariboisière 医院,高清 1225×966,公认最难)、CVC-300(300 帧)、PICCOLO(3,433 帧,白光+NBI,当代高清)。PraNet 协议要求同时报告 unseen 三数据集指标,构成"学习能力 + 泛化能力"的双层证据。
§6 AI 就绪指南
§6.0 云端快速启动
🚀 零配置上手路径:CVC-ClinicDB 全集约 50 MB,可直接 wget 下载后在 Google Colab 免费 GPU 上训练——从下载到 U-Net 出结果全程约 30 分钟。
HuggingFace 一键加载(含现成划分):
from datasets import load_dataset ds = load_dataset("Aeoo/CVC-ClinicDB") # train / validation / test print(ds) # 612 rows totalColab 免费 T4 GPU 足够训练任何 U-Net 级模型;Polyp-PVT 级 Transformer 也仅需约 2-4 GB 显存(输入 352×352)。
§6.1 快速上手(PyTorch 版)
# ========================================
# CVC-ClinicDB 快速上手 — PyTorch 版
# 环境要求: torch>=2.0, torchvision, Pillow, numpy
#
# ⚠️ 目录结构预期:
# 请将官方 zip 解压至 ./data/CVC-ClinicDB/,确保以下结构:
# ./data/CVC-ClinicDB/
# ├── Original/ # 1.tiff ... 612.tiff(384×288 RGB)
# └── Ground Truth/ # 1.tiff ... 612.tiff(二值掩膜)
#
# 帧号即文件名(去扩展名),图像与掩膜按帧号一一配对。
# 本示例按官方帧-序列表做序列级 80/20 分组划分(防泄漏)。
# ========================================
import os
import numpy as np
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
DATA_ROOT = "./data/CVC-ClinicDB"
SEQ_TABLE = [(1,25,1),(26,50,2),(51,67,3),(68,78,4),(79,103,5),
(104,126,6),(127,151,7),(152,177,8),(178,199,9),(200,205,10),
(206,227,11),(228,252,12),(253,277,13),(278,297,14),(298,317,15),
(318,342,16),(343,363,17),(364,383,18),(384,408,19),(409,428,20),
(429,447,21),(448,466,22),(467,478,23),(479,503,24),(504,528,25),
(529,546,26),(547,571,27),(572,591,28),(592,612,29)]
def frame_seq_map():
m = {}
for lo, hi, s in SEQ_TABLE:
for f in range(lo, hi + 1):
m[f] = s
return m
f2s = frame_seq_map()
rng = np.random.RandomState(42)
seqs = np.array(sorted(set(f2s.values())))
rng.shuffle(seqs)
train_seqs = set(seqs[:24]) # 约 80% 序列
train_frames = [f for f in range(1, 613) if f2s[f] in train_seqs]
test_frames = [f for f in range(1, 613) if f2s[f] not in train_seqs]
class ClinicDB(Dataset):
def __init__(self, frames, root, size=(288, 384)):
self.frames, self.root, self.size = frames, root, size
def __len__(self):
return len(self.frames)
def __getitem__(self, i):
fid = self.frames[i]
img = Image.open(os.path.join(self.root, "Original", f"{fid}.tiff")).convert("RGB")
msk = Image.open(os.path.join(self.root, "Ground Truth", f"{fid}.tiff")).convert("L")
img = img.resize((self.size[1], self.size[0]))
msk = msk.resize((self.size[1], self.size[0]), Image.NEAREST)
x = torch.from_numpy(np.asarray(img)).permute(2, 0, 1).float() / 255.0
y = torch.from_numpy((np.asarray(msk) > 127).astype(np.float32))[None]
return x, y
train_loader = DataLoader(ClinicDB(train_frames, DATA_ROOT), batch_size=8, shuffle=True)
test_loader = DataLoader(ClinicDB(test_frames, DATA_ROOT), batch_size=8)
x, y = next(iter(train_loader))
print(x.shape, y.shape, y.mean().item()) # 前景占比约 9%
§6.2 数据获取流程
| 获取方式 | 链接/位置 | 大小 | 流程 |
|---|---|---|---|
| 官方下载(推荐) | https://polyp.grand-challenge.org/CVCClinicDB | 约 50 MB | 页面内 “Download link” 直接下载 zip,无需注册;须遵守非商业条款并引用 Bernal 2015 |
| HuggingFace 镜像 | https://huggingface.co/datasets/Aeoo/CVC-ClinicDB | 53.1 MB | load_dataset("Aeoo/CVC-ClinicDB");PNG 格式,含 ESFPNet 论文的 train/val/test 划分 |
| DatasetNinja / Supervisely | https://datasetninja.com/cvc-612 | 约 50 MB | 可在线浏览全部 612 帧及面积统计后下载 |
| ModelScope 镜像 | ModelScope 搜索 “CVC-ClinicDB” | 约 50 MB | 国内网络加速 |
| 扩展版 EndoSceneStill | http://www.cvc.uab.es/CVC-Colon/index.php/databases/cvc-endoscenestill/ | 约 100 MB | 含 912 帧多类别标注与官方患者级划分 |
合规义务(三条,缺一不可):仅限研究与教育用途;禁止商业用途;使用时引用 Bernal et al. 2015 WM-DOVA 论文。注意 HuggingFace 镜像页标注的 cc-by-4.0 是镜像方的标注,不替代官方自定义条款(见 §6.5 坑点 7)。
§6.3 预处理 Pipeline
<details>
<summary><b>点击展开完整的 4 步预处理代码(含序列级划分、生理归一化、反光处理)</b></summary>
# 步骤 1:读取与配对校验(防帧号错位)
import os, re
import numpy as np
from PIL import Image
ROOT = "./data/CVC-ClinicDB"
def load_pair(fid):
img = Image.open(os.path.join(ROOT, "Original", f"{fid}.tiff")).convert("RGB")
msk = Image.open(os.path.join(ROOT, "Ground Truth", f"{fid}.tiff")).convert("L")
assert img.size == msk.size == (384, 288), f"帧 {fid} 尺寸异常: {img.size}"
return np.asarray(img), (np.asarray(msk) > 127).astype(np.uint8)
# 完整性检查:612 帧 × 2 必须全部存在且配对
missing = [f for f in range(1, 613)
if not (os.path.exists(os.path.join(ROOT, "Original", f"{f}.tiff"))
and os.path.exists(os.path.join(ROOT, "Ground Truth", f"{f}.tiff")))]
assert not missing, f"缺失帧: {missing}"
# 步骤 2:序列级划分(复用 §5.2 的 SEQ_TABLE,先划分后增强!)
# ...(见 §5.2 代码)
# 步骤 3:标准化(ImageNet 统计量——迁移学习标配;或按训练集统计)
IMAGENET_MEAN = np.array([0.485, 0.456, 0.406])
IMAGENET_STD = np.array([0.229, 0.224, 0.225])
def normalize(img):
x = img.astype(np.float32) / 255.0
return (x - IMAGENET_MEAN) / IMAGENET_STD
# 步骤 4:镜面反光(specular highlight)处理——可选但推荐
# 内镜图像的高光斑(像素值近饱和)会被模型误学为息肉特征
import cv2
def inpaint_specular(img, thresh=235):
mask = cv2.inRange(img, (thresh, thresh, thresh), (255, 255, 255))
return cv2.inpaint(img, mask, 3, cv2.INPAINT_TELEA)
# 注意:EndoSceneStill 已为反光提供独立标注类;原版可自行阈值化修复
</details>
推荐直接使用社区成熟管道替代手写:PraNet 官方仓库(含完整的 Train/Test loader 与 6 指标评测脚本)、Polyp-PVT 仓库、segmentation_models.pytorch(一行切换 U-Net/FPN/DeepLabV3+ 与任意 timm 编码器)。
§6.4 框架加载
PyTorch(含 Dice loss 的标准训练循环骨架):
import torch, torch.nn as nn
import segmentation_models_pytorch as smp
model = smp.Unet(encoder_name="resnet34", encoder_weights="imagenet",
in_channels=3, classes=1)
dice_loss = smp.losses.DiceLoss(mode="binary")
bce_loss = nn.BCEWithLogitsLoss()
def combined_loss(logits, target):
return dice_loss(logits.sigmoid(), target) + bce_loss(logits, target)
opt = torch.optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-4)
for epoch in range(50):
model.train()
for x, y in train_loader:
loss = combined_loss(model(x), y)
opt.zero_grad(); loss.backward(); opt.step()
TensorFlow / Keras 等价加载:
import tensorflow as tf
def parse(fid):
img = tf.io.decode_image(tf.io.read_file(f"{ROOT}/Original/{fid}.tiff"),
channels=3, expand_animations=False)
msk = tf.io.decode_image(tf.io.read_file(f"{ROOT}/Ground Truth/{fid}.tiff"),
channels=1, expand_animations=False)
img = tf.image.convert_image_dtype(img, tf.float32)
msk = tf.cast(msk > 127, tf.float32)
return img, msk
ds = (tf.data.Dataset.from_tensor_slices(train_frames)
.map(lambda f: parse(f), num_parallel_calls=tf.data.AUTOTUNE)
.shuffle(512).batch(8).prefetch(tf.data.AUTOTUNE))
§6.5 常见坑点
⚠️ 坑点 1:序列数与患者数口径混乱——29/31 序列、23/25 患者并存于文献(分类:标签理解)
问题:Bernal 2015 原论文的帧-序列表只列到 29 个序列(并称来自 “25 different video studies”),而 MICCAI 2015 挑战赛总结(Bernal 2017 TMI)与 EndoScene 论文(Vázquez 2017)均写为 31 个序列 / 23 名患者。两种口径在后续文献中被随机引用,个别综述还出现 “348×288” 这类分辨率笔误。
症状:论文材料与方法部分写的序列数与审稿人引用的口径不一致被质疑;按 31 序列写代码、实际只找到 29 个序列的映射表。
解决:写作时采用挑战赛/EndoScene 官方口径"31 序列 / 23 患者 / 612 帧",并注明原论文帧表为 29 序列;做分组划分时以官方页面 Table 1(29 序列)为可执行依据;分辨率一律写 384×288。
参考:Vázquez et al. 2017, J Healthc Eng 2017:4037190, Table 1;Bernal et al. 2017, IEEE TMI 36(6):1231-1249。
⚠️ 坑点 2:随机帧级划分导致同一息肉泄漏进训练与测试(分类:数据泄漏)
问题:每个序列约 20 帧展示的是同一个息肉的不同视角,相邻帧高度相似。随机按帧划分(包括 PraNet 协议的 90/10)会让同一息肉的近似帧同时出现在训练集与测试集。
症状:序列级分组复评时 Dice 比论文报告值低 3-8%;模型在 unseen 数据集(ETIS/ColonDB)上的跌幅远超预期。
解决:与文献比较时用 PraNet 公开划分(保持一致性);方法学研究额外报告 GroupKFold(groups=sequence_id)序列级结果(§5.2 代码);两者并存才是诚实的方法学陈述。
参考:PraNet 仓库(DengPingFan/PraNet);Vázquez 2017 的患者级划分设计动机。
⚠️ 坑点 3:全阳性数据集——无阴性帧,无法评估特异性(分类:评估误用)
问题:612 帧帧帧含息肉(100% 患病率)。用它训练的检测/分割模型从未见过正常黏膜,会学到"凡图必报息肉"。
症状:模型在真实内镜视频上对正常黏膜、气泡、残渣、出血大量误报;FPR(假阳性率)无法在本数据集上评估。
解决:检测任务必须混入阴性帧——CVC-ClinicVideoDB(含 6,311 阴性帧)、LDPolypVideo、SUN、Kvasir 全量集;论文中明确声明"分割基准不评估特异性";评估实时检测性能请换用含阴性帧的视频数据集。
参考:Nogueira-Rodríguez et al. 2022 (PMC9027927) 公共数据集对比表(Presence of Non-Polyp Images 列)。
⚠️ 坑点 4:输入分辨率与预处理不统一导致 ±1-3% 的"幽灵"性能差(分类:预处理陷阱)
问题:文献中 CVC-ClinicDB 的输入尺寸五花八门——原生 384×288、352×352(PraNet/Polyp-PVT)、384×384、256×256、512×512;重采样有双线性/最近邻/保持长宽比加 padding 之分;掩膜用双线性重采样还会引入灰阶污染。
症状:同一模型在自己管道上复现不出论文数字;掩膜出现 0-1 之间的中间值导致 Dice 计算偏差。
解决:掩膜重采样必须用最近邻(
Image.NEAREST)并在加载后做>127二值化;复现某论文时严格对齐其输入尺寸与插值方式;自己报数时在方法部分写明分辨率与插值。参考:PraNet(arXiv:2006.11392)实现细节;§6.3 步骤 4 代码。
⚠️ 坑点 5:指标协议差异——mean Dice vs global Dice、归一化与否(分类:评估误用)
问题:社区事实标准是 PraNet 系 6 指标(mDice / mIoU / Fβw / Sα / Eφmax / MAE,均为逐图计算后取平均);部分论文报告 global Dice(全数据集像素合并后计算一次),小息肉权重完全不同,数值可差 2-5%。另有论文只报 IoU 或只报 Dice,横向比较错位。
症状:两模型 Dice 排名与 IoU 排名相反;复现值与论文值系统性偏移。
解决:统一使用 PraNet 官方评测脚本(eval 目录);报数时注明 “mean Dice (per-image average)”;MAE 计算前确认预测图是否做了 sigmoid + 归一化。
参考:PraNet 官方 eval 脚本;Fan et al. 2020 指标定义附录。
⚠️ 坑点 6:与 Kvasir-SEG 合并训练时的来源混淆与双重计数(分类:工程陷阱)
问题:PraNet 协议将 ClinicDB 90%(约 550 帧)与 Kvasir-SEG 90%(900 帧)合并成 1,450 帧训练集,但两库分辨率、息肉形态分布、成像设备都不同;有的实现误把两库的测试帧也混入训练目录,或在报告"学习能力"时把两库指标混算。
症状:seen 测试集指标异常高(接近 0.99);Kvasir 与 ClinicDB 单库结果对不上文献。
解决:训练集中保留
dataset来源列;seen 评估必须分库报告(Kvasir 一行、ClinicDB 一行);克隆 PraNet 官方数据目录而非自行拼装。参考:PraNet 论文 Table 1 的分库报告格式。
⚠️ 坑点 7:License 误读——HF 镜像的 CC-BY-4.0 标注不具官方效力(分类:评估误用/合规陷阱)
问题:HuggingFace 第三方镜像页将 license 标为 cc-by-4.0,但官方条款是自定义非商业许可:仅限研究与教育用途、禁止商业用途,且 Original 与 Ground Truth 版权分属 Hospital Clínic 与 CVC 两个机构。
症状:将模型或衍生数据用于商业产品/商用 SaaS 后收到权利方质疑;投稿时被要求补充 license 合规说明。
解决:任何商业用途先联系 CVC 与 Hospital Clínic 获取书面授权;论文与产品中引用 Bernal 2015 并注明非商业条款;镜像仅作便利渠道,合规依据以 polyp.grand-challenge.org 官方页面为准。
参考:https://polyp.grand-challenge.org/CVCClinicDB(Copyright 与 Referencing 节)。
⚠️ 坑点 8:标清单中心数据的泛化天花板(分类:偏倚陷阱)
问题:图像采集于约 2012-2014 年的标清(384×288)白光内镜、单中心;当代临床设备为 1080p/4K,且 NBI/BLI 等增强成像日益普及。数据集中小息肉与扁平息肉占比有限。
症状:在 ClinicDB 上 mDice 0.93+ 的模型,到高清数据集(PICCOLO)或 NBI 图像上 Dice 下跌 5-15%;对小息肉(<5% 画面占比)子集性能显著低于全集均值。
解决:始终做 unseen 外部验证(ETIS 高清帧是最接近的代理);部署前在目标设备数据上微调;报数时增加"按息肉面积分层"的子集指标(如 <5% / 5-20% / >20% 三档 Dice)。
参考:Nogueira-Rodríguez et al. 2022 跨数据集评测(PMC9027927);WM-DOVA 论文对小息肉漏检的讨论。
版本提示:数据集本体自 2015 年发布后无版本演进,任何"新版 CVC-ClinicDB"的说法均应视为误传;扩展请认准官方 CVC-EndoSceneStill(2017)与 CVC-ClinicVideoDB(2017)。
§6.6 数据增强
| ✅ 安全增强 | ❌ 危险增强(禁止) |
|---|---|
| 随机水平/垂直翻转、90° 旋转 | 弹性形变幅度过大(破坏息肉-黏膜边界的解剖合理性) |
| 小角度旋转(±15°)与平移(±10%) | 改变长宽比的非等比缩放(扭曲息肉形态学) |
| 亮度/对比度/饱和度抖动(模拟内镜光照变化) | 向掩膜注入噪声或随机擦除掩膜区域(污染监督信号) |
| 高斯模糊(模拟运动模糊与失焦) | 把不同帧的图像与掩膜交叉配对(掩膜与图像严格一一对应) |
| Copy-Paste 息肉到阴性黏膜帧(补阴性样本时) | 在划分前做全库增强(增强副本跨集泄漏,见坑点 2) |
| Mixup / CutMix(仅图像侧且掩膜同步变换) | 颜色通道分离后单独增强(破坏 RGB 与掩膜对齐) |
实操要点:612 帧的小规模使增强成为性能的决定性变量之一——Polyp-PVT 等工作的消融显示,强增强可带来 2-4% Dice 提升;但所有几何变换必须对图像与掩膜施加完全相同的参数(albumentations 库天然支持)。
§6.7 模型推荐
| 场景 | 推荐方案 | 输入尺寸 | 预期 mDice(ClinicDB seen) |
|---|---|---|---|
| 快速基线 / 教学 | U-Net (ResNet34 编码器, ImageNet 预训练) + Dice+BCE | 384×288 原生 | 0.85-0.88 |
| 与 2020 后文献比较 | PraNet(官方代码)352×352,Kvasir+ClinicDB 联合训练 | 352×352 | 0.899(论文报告) |
| Transformer 强基线 | Polyp-PVT / SSFormer | 352×352 | 0.93-0.94 |
| 边界敏感任务 | 边界感知损失(Boundary/HD loss)+ SegFormer 系 | 384×384 | 0.93-0.95(注意协议) |
| 移动端/实时 | NanoNet / UACANet-S / 轻量 U-Net | 256×256-352×352 | 0.88-0.92,30+ FPS |
| 公平可复现研究 | 官方 PraNet 管道 + 序列级 5 折复评 | 352×352 | 报告双口径 |
§6.8 计算资源需求
| 硬件 | 最小配置 | 推荐配置 |
|---|---|---|
| 磁盘 | 1 GB | 5 GB(含派生与 checkpoints) |
| 内存 | 8 GB | 16 GB |
| GPU | Colab 免费 T4(16 GB) | 单卡 8-16 GB(Polyp-PVT 352² 输入 batch 16 约 6 GB) |
| 训练时间 | U-Net 50 epoch 约 20-40 分钟(T4) | PraNet 完整协议约 2-3 小时 |
| 推理 | CPU 实时性不足 | GPU 单帧 <10 ms(轻量模型) |
§6.9 评估指标
import numpy as np
def mean_dice(pred, gt, eps=1e-7):
"""PraNet 协议口径:逐图 Dice 后取平均(pred/gt 为 0/1 二值图)"""
inter = (pred & gt).sum()
return (2.0 * inter + eps) / (pred.sum() + gt.sum() + eps)
def mean_iou(pred, gt, eps=1e-7):
inter = (pred & gt).sum()
union = (pred | gt).sum()
return (inter + eps) / (union + eps)
def mae(prob, gt):
"""prob 为 sigmoid 后的概率图,均已归一化到 [0,1]"""
return np.abs(prob - gt).mean()
# 社区事实标准 6 指标(PraNet 系):mDice / mIoU / Fβ^w / Sα / Eφ^max / MAE
# 完整实现请直接使用官方评测脚本:
# https://github.com/DengPingFan/PraNet (eval/ 目录)
社区共识:与 2020 年后文献比较必须报告 mDice + mIoU 至少两项,最好补齐 6 指标;泛化实验报告 unseen 数据集(CVC-ColonDB / ETIS / CVC-300)的同口径指标;所有数值注明输入分辨率与划分协议。
§6.10 MLOps 笔记
- 引用规范:使用数据集必须引用 Bernal et al. 2015(DOI: 10.1016/j.compmedimag.2015.02.007);使用挑战赛协议另引 Bernal et al. 2017 TMI;使用 PraNet 划分另引 Fan et al. 2020 MICCAI。
- 可复现三件套:划分文件(序列级或 PraNet 官方)+ 输入分辨率 + 评测脚本版本,写入方法部分。
- 数据指纹:官方 zip 无校验和发布,建议下载后自行记录文件数(612×2)与总字节数,防止镜像版本静默差异。
- 模型卡片声明:凡在 CVC-ClinicDB 上训练的模型,模型卡片须注明"训练数据为非商业许可,模型商用受限"——这是常被忽略的传染性合规义务。
- 与 EndoSceneStill 的版本隔离:两个数据集目录不要混放——EndoScene 的 612 帧与原版同图不同标注体系,混用会静默污染训练集。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 选择偏倚(全阳性) | 612 帧全部含息肉,100% 患病率,无正常黏膜对照 | 高 | 检测任务混入阴性帧(ClinicVideoDB/LDPolypVideo/SUN);分割论文声明不评估特异性 |
| 单中心偏倚 | 仅 Hospital Clínic de Barcelona,单一人群与设备 | 高 | unseen 外部验证(ETIS/ColonDB/PICCOLO)为强制步骤 |
| 时代/设备偏倚 | 约 2012-2014 年标清(384×288)白光图像,无高清、无 NBI | 高(以 2026 年视角) | 部署前用目标设备数据微调;分层报告分辨率迁移性能 |
| 序列内自相似偏倚 | 同一息肉 6-25 帧,相邻帧高度相似 | 高 | 序列级 GroupKFold(§5.2) |
| 小/扁平息肉代表性不足 | 息肉面积中位 7,557 px,极小(<373 px 级别)与扁平型样本少 | 中 | 按面积分层报告子集 Dice;补 ETIS(小息肉富集)评测 |
| 标注者偏倚 | 单一标注流程,无公开标注者间一致性 | 中 | 以公开掩膜为既定事实;敏感性分析可做掩膜腐蚀/膨胀扰动 |
| 肠道准备偏倚 | 未剔除模糊/准备不佳帧(是优点也是偏倚源) | 低 | 接受为真实世界噪声;质量分级子集分析可选 |
§7.2 标注质量评估
| 标注类型 | 可靠性 | 一致性 | 局限性 |
|---|---|---|---|
| 息肉分割掩膜 | 高(专家体系背书,胃肠科医师参与构建) | 标注者间 IoU 未公开;十年间未被公开挑战过系统性标注错误 | 单标注者为主;边界主观性(尤其模糊帧与扁平息肉边缘) |
| 息肉存在性(帧级) | 极高 | 数据集筛选前提,内镜医师确认 | 反向标签(无息肉帧)整体缺失 |
| 帧-序列映射 | 高(官方页面表格) | 原论文 29 序列 vs 后续文献 31 序列的口径差异 | 超出 29 的序列映射未在官方表中给出 |
§7.3 泛化性讨论
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 跨数据集(ClinicDB → ETIS/ColonDB/CVC-300) | 中高 | PraNet 协议下,seen 0.899 的模型在 unseen ETIS 上 Dice 普遍跌至 0.6-0.79;SFA 跌幅尤为剧烈(PraNet 论文 Table 2) |
| 跨分辨率(标清 → 高清 1080p) | 中高 | 384×288 训练的模型在 1225×966(ETIS)/ 1920×1080(PICCOLO)上需重采样适配,边界精度损失明显 |
| 跨成像模式(白光 → NBI/BLI) | 高 | 数据集无 NBI 帧;NBI 下血管纹理主导,白光模型直接失效,需域适配 |
| 跨人群(西班牙 → 亚洲/其他地区) | 中 | 息肉形态谱与内镜操作习惯差异;SUN(日本)、BKAI-IGH(越南)提供对照 |
| 跨任务(分割 → 检测/分类) | 高 | 无阴性帧、无病理标签,检测特异性与组织学分类不可行(坑点 3) |
| 视频部署(静态帧 → 实时流) | 中 | 时序一致性(temporal consistency)未在静态帧基准中评估;ClinicVideoDB / LDPolypVideo 为正确测试场 |
§7.4 伦理考量
- 数据来自 Hospital Clínic de Barcelona 的真实结肠镜检查,使用时应保持对患者贡献的尊重,仅限研究与教育用途。
- 腔内内镜图像不含面部等直接身份标识,重识别风险极低;但官方未发布正式的去标识化文档,合规敏感场景(如院内立项)应如实说明这一点。
- 非商业许可具有"传染性":基于该数据训练的模型权重用于商业产品,同样可能构成对数据使用条款的违反——商业团队必须事先取得 CVC 与 Hospital Clínic 的书面授权。
- 数据集无患者人口学信息,任何基于它的"公平性声明"都无从谈起;面向临床部署的模型必须在含元数据的数据集上补做亚群分析。
§7.5 公平性评估
CVC-ClinicDB 不支持人口学公平性评估——年龄、性别、种族等敏感属性完全未发布。可执行的公平性替代分析是按病灶难度分层:
# 按息肉面积占比分层的子群 Dice 分析(可实现的"难度公平性")
import numpy as np
def area_strata_dice(preds, gts):
strata = {"small (<5%)": [], "medium (5-20%)": [], "large (>20%)": []}
for p, g in zip(preds, gts):
ratio = g.mean()
key = ("small (<5%)" if ratio < 0.05
else "medium (5-20%)" if ratio < 0.20 else "large (>20%)")
inter = (p & g).sum()
strata[key].append(2 * inter / (p.sum() + g.sum() + 1e-7))
return {k: (np.mean(v), len(v)) for k, v in strata.items() if v}
已知差异(文献共识):小息肉子集的 Dice 通常比全集均值低 5-15%,且这正是临床上漏检率最高的群体——报数时给出分层结果是该领域的事实规范。
§7.6 数据漂移提示
- 训练分布定格于约 2012-2014 年的标清白光内镜;当代部署环境(1080p/4K、NBI 常规化、AI 辅助主机)与训练分布存在显著域差。
- 监控信号:输入分辨率分布变化、镜面反光占比变化、息肉检出形态的长期演变(如冷圈套普及后小息肉检出占比上升)。
- 数据集已冻结(2015 年后无更新),任何"概念漂移"都无法通过数据更新缓解——部署侧必须以持续微调应对。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据为宽格式(每行一个样本/事件) | ✅ | 612 帧-掩膜对,帧号一一对应 |
| 2 | 有唯一标识符列 | ✅ | frame_id(1-612)+ 官方帧-序列映射表 |
| 3 | 无 Unicode 或特殊字符 | ✅ | 纯图像文件,ASCII 文件名 |
| 4 | 无重复行 | ⚠️ | 无完全重复帧,但同序列帧高度相似(自相似结构,需分组划分) |
| 5 | 缺失值已识别并编码 | ✅ | 612×2 文件完整配对;结构性缺失已文档化(§4.5) |
| 6 | 标签列被明确标识 | ✅ | 二值掩膜,前景/背景语义明确 |
| 7 | 已对罕见类别(<3%)进行分组 | ⚠️ | 单类别二值任务不适用;但全阳性设计使"阴性类"整体缺失 |
| 8 | 偏倚评估已完成 | ✅ | §7.1 七类偏倚与缓解措施 |
| 9 | 有完整的数据字典 | ⚠️ | 官方仅提供帧-序列表与图例说明,无正式数据字典(本页 §4.1 补位) |
| 10 | 对"信息性缺失"有明确编码解释 | ✅ | §4.5 五类结构性缺失表 |
| 11 | 数据采集设备和设置已记录 | ⚠️ | 白光标清内镜已记录,但设备品牌型号未公开 |
| 12 | 已移除完全共线性变量 | ✅ | 图像数据不适用;无冗余标注列 |
| 13 | 对编码的映射标准已说明 | ⚠️ | 无临床编码(无病理分型/部位/大小标注),已在本页 §2 补充 ICD-11/SNOMED 映射 |
| 14 | 对时间戳的处理已明确说明 | ⚠️ | 无时间戳;帧序保留于帧号,采集年份区间未正式公布 |
| 15 | 训练/验证/测试划分建议已给出 | ❌ | 原版无任何划分;社区 PraNet 协议与 EndoScene 协议补位 |
| 16 | 数据泄漏风险已被讨论 | ✅ | §5.3 五种泄漏模式 + 序列级分组方案 |
| 17 | 标签分布已被分析 | ✅ | §4.2 前景占比与面积统计 |
| 18 | 选择性测量偏倚已被讨论 | ✅ | 全阳性选择偏倚(坑点 3)与帧筛选原则已文档化 |
| 19 | 外部验证建议已给出 | ✅ | §5.5 unseen 三数据集 + 高清/NBI 对照路径 |
| 20 | 数据更新和版本信息已记录 | ⚠️ | 2015 年发布后冻结,无 changelog;序列口径差异已注明 |
| 21 | 最小必要预处理脚本已提供 | ⚠️ | 官方无脚本;社区 PraNet/Polyp-PVT 管道成熟(§6.3 补位) |
| 22 | 合规使用要求已明确 | ✅ | 非商业 + 引用义务在官方页面明示(坑点 7 澄清镜像误标) |
| 23 | 多模态对齐方法已说明 | ✅ | 单模态图像-掩膜像素级对齐,无跨模态问题 |
| 24 | 去标识化方法已被记录 | ⚠️ | 腔内图像天然无直接标识符,但无正式去标识化文档 |
DAIMS 评分:17.5 / 24
评分解读:良好——标注精确、结构极简、生态成熟;扣分集中在官方文档深度(无划分、无数据字典、无标注一致性报告)与全阳性/单中心的设计性偏倚。
对你意味着什么:CVC-ClinicDB 的 14 个 ✅ 项几乎全部来自其"小而精"的工程属性——帧-掩膜严格配对、文件零缺失、十年文献可比。9 个 ⚠️ 中真正影响你实验的只有三件:无官方划分(直接用 PraNet 公开划分或 §5.2 序列级代码,不要自己随机动手)、全阳性无阴性帧(检测任务必须外补阴性数据)、无标注一致性报告(接受掩膜为既定事实,勿在其上再做主观"修正")。1 个 ❌(划分缺失)恰好是社区已用十年共识填补的坑。这是一个上手零障碍、但评估纪律要求极高的数据集——它的所有陷阱都不在数据里,而在评测协议里。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部测试集变化 | 关键发现 |
|---|---|---|---|---|---|
| CVC-ColonDB(unseen) | CVC / Hospital Clínic(同机构异患者) | 息肉分割 | PraNet mDice 0.716-0.74 区间(相对 seen 0.899) | 约 -16% | 同机构数据也存在明显域差,泛化不能想当然 |
| ETIS-LaribPolypDB(unseen) | ETIS Lab / Lariboisière 医院(法国) | 息肉分割 | PraNet mDice 0.628;Polyp-PVT 0.787 | -20% 至 -30% | 高清 + 小息肉富集,公认最难 unseen 集;是泛化能力的试金石 |
| CVC-300 / EndoScene 测试集(unseen) | CVC | 息肉分割 | PraNet mDice 约 0.87-0.90 | 约 -3% 至 -10% | 同设备系图像迁移损失较小 |
| PICCOLO(高清白光+NBI) | Basurto 大学医院(西班牙) | 息肉分割(白光子集) | 文献报告跨库 Dice 下降约 5-15% | 中幅下降 | 标清 → 高清的边界精度损失为主因 |
| 视频实时检测(ClinicVideoDB / LDPolypVideo) | CVC / 多中心 | 帧级检测 + 时序 | 需补阴性帧后方可评估 FPR | 不适用 | 静态帧分割高分 ≠ 实时检测可用,时序一致性需专门优化 |
2026 年还值得用 CVC-ClinicDB 吗? 值得——但定位要准。作为文献锚点与入门基准,它无可替代(十年可比较曲线、30 分钟上手的教学价值);作为临床级模型的主要训练集,它已力不从心——临床团队应转向 PICCOLO、PolypGen、LDPolypVideo 等多中心高清资源,把 ClinicDB 留在"基准坐标系"的位置上。
§8 基准性能与生态
§8.1 排行榜
协议说明(必读):下表统一采用 PraNet 协议(ClinicDB 90% + Kvasir-SEG 90% 合并训练,ClinicDB 10% 约 62 帧测试,6 指标逐图平均)。不同协议(EndoScene 患者级划分、IJCV 2024 GateNet 口径、5 折序列级划分)的数值不可与本表直接比较,另列于表后。
PraNet 协议主排行榜(CVC-ClinicDB seen 测试集):
| 排名 | 模型 | mDice | mIoU | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | Polyp-PVT | 0.937 | 0.889 | 2021 | PVTv2 Transformer 编码器 + 级联细化,息肉特征的相似性聚合 | Dong B, Wang W, Fan DP, Li J, Fu H, Shao L. “Polyp-PVT: Polyp Segmentation with Pyramid Vision Transformers.” arXiv:2108.06932 (2021) | https://github.com/DengPingFan/Polyp-PVT |
| 2 | MGW-Net | 0.938 | 0.894 | 2024 | 多尺度门控卷积 + 窗口注意力混合架构 | 计算机应用/软件所 2024(融合多尺度门控卷积和窗口注意力的结肠息肉分割) | — |
| 3 | ADSNet | 0.938 | 0.890 | 2023 | 不确定区域的差异化语义适配 | BMVC 2023 (paper 0806). “Adaptation of Distinct Semantics for Uncertain Areas in Polyp Segmentation” | — |
| 4 | CFA-Net | 0.933 | 0.883 | 2023 | 跨层特征聚合 + 边界感知 | Zhou T et al. “CFA-Net: Cross-level Feature Aggregation Network for Polyp Segmentation.” Pattern Recognition (2023) | — |
| 5 | HSNet | 0.930 | 0.886 | 2022 | 混合语义网络 | Zhang W et al., 2022 | — |
| 6 | UACANet-L | 0.926 | 0.880 | 2021 | 不确定区域增强的上下文注意力 | Kim T, Lee H, Kim D. “UACANet: Uncertainty Augmented Context Attention for Polyp Segmentation.” ACM MM 2021 | https://github.com/plemeri/UACANet |
| 7 | SANet | 0.916 | 0.859 | 2021 | 浅层注意力 + 颜色交换数据增强 | Wei J, Hu Y, et al. “Shallow Attention Network for Polyp Segmentation.” MICCAI 2021 | https://github.com/weijun88/SANet |
| 8 | PraNet | 0.899 | 0.849 | 2020 | 并行反向注意力,区域-边界双向建模 | Fan DP, Ji GP, Zhou T, Chen G, Fu H, Shen J, Shao L. “PraNet: Parallel Reverse Attention Network for Polyp Segmentation.” MICCAI 2020. arXiv:2006.11392 | https://github.com/DengPingFan/PraNet |
| 9 | U-Net | 0.823 | 0.755 | 2015 | 编码器-解码器 + 跳跃连接 | Ronneberger O, Fischer P, Brox T. “U-Net: Convolutional Networks for Biomedical Image Segmentation.” MICCAI 2015 | 多个实现 |
| 10 | SFA | 0.700 | 0.607 | 2019 | 选择性特征聚合(仅 ClinicDB 单库训练口径,泛化弱) | Fang Y et al. “Selective Feature Aggregation Network with Area-Boundary Constraints for Polyp Segmentation.” MICCAI 2019 | — |
2025-2026 年最新进展(聚合页口径,协议细节未完全公开,谨慎横向引用):Polyp-Mamba 报告 mDice 约 0.949;SAM-MaGuP(SAM 引导 + 掩膜提示)报告约 0.953(sota2.com 聚合,截至 2025-07);一篇 2026 年 Scientific Reports 的边界感知 SegFormer 工作自报 0.961(未见第三方复现)。这些数字显示榜单已进入 0.95 附近的饱和区——<2% 的差异在该测试集(62 帧)上不具统计意义,选型应以架构特性与泛化表现为准。
其他协议口径(不可与主表比较):IJCV 2024 GateNet 文在不同划分下报告 GateNet-Res2-50 Dice 0.958 / Fβ^mean 0.920;EndoSceneStill 官方划分上的 Vázquez 2017 FCN 基线为 IoU 0.71(多类别口径)。
§8.2 SOTA 总结与选型建议
| 如果你… | 推荐方案 | 为什么 |
|---|---|---|
| 发论文与文献比较 | PraNet 协议 + Polyp-PVT 基线(0.937) | 2021 年后事实标准参照点 |
| 快速验证想法 | U-Net + smp 库 + §6.4 代码 | 30 分钟出结果,足够判断方向 |
| 做泛化方法研究 | seen(Kvasir+ClinicDB)→ unseen(ETIS 为主) | ETIS 是社区公认的泛化试金石 |
| 教学/课程项目 | 官方 TIFF + U-Net + Dice loss | 50 MB、零申请、单卡可完成 |
| 冲榜 | Mamba/SAM 系 + 强增强 | 但请先回答:62 帧测试集上的 1% 差异有何意义(见 §8.1 饱和警告) |
§8.3 官方评测协议
原版无官方协议(MICCAI 2015 挑战赛的官方测试集是 ETIS-Larib,非本库)。社区事实标准(PraNet 体系):Kvasir-SEG 900 帧 + ClinicDB 550 帧合并训练;各自 10% 测试帧分库报 seen 指标;CVC-ColonDB / ETIS / CVC-300 报 unseen 指标;6 指标(mDice / mIoU / Fβw / Sα / Eφmax / MAE)逐图平均;输入 352×352(PraNet/Polyp-PVT 系)。
§8.4 相关数据集
| 数据集 | 关系 | 说明 |
|---|---|---|
| CVC-ColonDB | 姊妹集 | 300 帧 574×500,13 序列 13 患者;标准 unseen 测试集 |
| CVC-EndoSceneStill | 扩展版 | 912 帧(=ClinicDB 612 + ColonDB 300)+ 管腔/反光/边框标注 + 官方患者级划分(Vázquez 2017,引用 1,000+) |
| CVC-ClinicVideoDB | 视频版 | 38 视频约 2.8 万帧(含阴性帧),视频级检测/分割 |
| ETIS-LaribPolypDB | 挑战赛配对 | MICCAI 2015 官方测试集;196 帧高清;最难 unseen 集 |
| Kvasir-SEG | 标准搭档 | 1,000 帧;与 ClinicDB 组成 seen 双数据集 |
| PICCOLO / PolypGen / LDPolypVideo / SUN | 后继大集 | 多中心、高清、含阴性帧与元数据,临床级研究的当代选择 |
| AI4PolypNet 数据集体系 | 官方后继 | CVC 团队 2024 年发布的检测/分割/分类完整基准(Frontiers in Oncology 2024:1417862) |
§8.5 关键论文 Top 10
- Bernal J, Sánchez FJ, Fernández-Esparrach G, Gil D, Rodríguez C, Vilariño F (2015). “WM-DOVA maps for accurate polyp highlighting in colonoscopy: Validation vs. saliency maps from physicians.” Computerized Medical Imaging and Graphics 43:99-111. DOI: 10.1016/j.compmedimag.2015.02.007 — 数据集归属论文,使用即须引用;眼动注视验证独树一帜。
- Bernal J, Tajbakhsh N, Sánchez FJ, et al. (2017). “Comparative validation of polyp detection methods in video colonoscopy: results from the MICCAI 2015 endoscopic vision challenge.” IEEE TMI 36(6):1231-1249 — 挑战赛官方总结,31 序列/23 患者口径出处。
- Vázquez D, Bernal J, Sánchez FJ, et al. (2017). “A Benchmark for Endoluminal Scene Segmentation of Colonoscopy Images.” J Healthcare Engineering 2017:4037190 — EndoSceneStill 扩展基准,官方患者级划分(引用 1,000+)。
- Fan DP, Ji GP, Zhou T, et al. (2020). “PraNet: Parallel Reverse Attention Network for Polyp Segmentation.” MICCAI 2020. arXiv:2006.11392 — 评测协议固化者,mDice 0.899。
- Dong B, Wang W, Fan DP, et al. (2021). “Polyp-PVT: Polyp Segmentation with Pyramid Vision Transformers.” arXiv:2108.06932 — Transformer 时代标杆,mDice 0.937。
- Kim T, Lee H, Kim D (2021). “UACANet: Uncertainty Augmented Context Attention for Polyp Segmentation.” ACM MM 2021 — 不确定区域建模,0.926。
- Wei J, Hu Y, et al. (2021). “Shallow Attention Network for Polyp Segmentation.” MICCAI 2021 — 浅层注意力 + 颜色交换增强,0.916。
- Ronneberger O, Fischer P, Brox T (2015). “U-Net: Convolutional Networks for Biomedical Image Segmentation.” MICCAI 2015 — 一切编解码分割的起点,本库基线 0.823。
- Jha D, Smedsrud PH, Riegler MA, et al. (2020). “Kvasir-SEG: A Segmented Polyp Dataset.” MMM 2020 — 标准搭档数据集论文,联合协议必读。
- Nogueira-Rodríguez A, et al. (2022). “Performance of Convolutional Neural Networks for Polyp Localization on Public Colonoscopy Image Datasets.” (PMC9027927) — 十大公共数据集横向评测,跨库泛化的系统性证据。
§8.6 社区活跃度
| 维度 | 数据 |
|---|---|
| Google Scholar 引用(WM-DOVA 2015) | 2,445+(截至 2026-09 快照) |
| OpenAlex 引用 | 约 1,200(Rankless 快照,截至 2026-09) |
| 引用者领域分布 | 计算机视觉 638 / 肿瘤学 495 / 放射影像 455 / AI 438(OpenAlex) |
| Vázquez 2017(EndoScene)引用 | 1,056+(Jorge Bernal 作者页,截至 2026-09) |
| Bernal 2017 TMI(挑战赛总结)引用 | 494+ |
| HuggingFace 镜像月下载 | 约 1,300 次/月(Aeoo/CVC-ClinicDB,截至 2026-09 快照) |
| 衍生综述 | 息肉分割深度学习系统综述(AIR 2023, DOI: 10.1007/s10462-023-10621-1)等均以 ClinicDB 为核心条目 |
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/Fork(截至 2026-09,约) | 为什么值得关注 |
|---|---|---|---|---|
| DengPingFan/PraNet | 基准代码 | https://github.com/DengPingFan/PraNet | 1,000+ / 300+ | 评测协议与 6 指标脚本的源头,含官方划分数据 |
| DengPingFan/Polyp-PVT | SOTA 代码 | https://github.com/DengPingFan/Polyp-PVT | 500+ / 100+ | Transformer 时代标杆实现 |
| plemeri/UACANet | SOTA 代码 | https://github.com/plemeri/UACANet | 400+ / 80+ | 不确定区域建模,复现友好 |
| Aeoo/CVC-ClinicDB | 数据镜像 | https://huggingface.co/datasets/Aeoo/CVC-ClinicDB | 月下载约 1,300 | HF 一行加载,含现成划分 |
| datasetninja.com/cvc-612 | 在线浏览 | https://datasetninja.com/cvc-612 | — | 612 帧掩膜在线翻页 + 面积/位置统计 |
| segmentation_models.pytorch | 工具库 | https://github.com/qubvel-org/segmentation_models.pytorch | 9,000+ / 1,800+ | 一行切换分割架构与编码器,教学首选 |
| polyp.grand-challenge.org | 官方主页 | https://polyp.grand-challenge.org/CVCClinicDB | — | 权威下载 + License 条款 + 帧-序列表 |
| CVC-EndoSceneStill | 扩展数据 | http://www.cvc.uab.es/CVC-Colon/index.php/databases/cvc-endoscenestill/ | — | 官方患者级划分 + 多类别标注 |
§9 相关资源与引用
官方资源
- 数据集主页(含下载、License、帧-序列表):https://polyp.grand-challenge.org/CVCClinicDB
- 归属论文:https://doi.org/10.1016/j.compmedimag.2015.02.007
- MICCAI 2015 挑战赛总结:https://ieeexplore.ieee.org/document/7898142
- CVC-EndoSceneStill 扩展版:http://www.cvc.uab.es/CVC-Colon/index.php/databases/cvc-endoscenestill/
- HuggingFace 镜像:https://huggingface.co/datasets/Aeoo/CVC-ClinicDB
- UAB 机构库论文存档:https://ddd.uab.cat/record/326494
- 许可证:自定义非商业许可(研究/教育用途,禁止商业使用,须引用归属论文)
BibTeX 引用
% 1) 数据集归属论文(使用 CVC-ClinicDB 必须引用)
@article{bernal2015wmdova,
title={WM-DOVA maps for accurate polyp highlighting in colonoscopy:
Validation vs. saliency maps from physicians},
author={Bernal, Jorge and S{\'a}nchez, F. Javier and
Fern{\'a}ndez-Esparrach, Gloria and Gil, Debora and
Rodr{\'\i}guez, Cristina and Vilari{\~n}o, Fernando},
journal={Computerized Medical Imaging and Graphics},
volume={43},
pages={99--111},
year={2015},
publisher={Elsevier},
doi={10.1016/j.compmedimag.2015.02.007}
}
% 2) MICCAI 2015 挑战赛官方总结(引用挑战赛口径/协议时加引)
@article{bernal2017comparative,
title={Comparative validation of polyp detection methods in video
colonoscopy: results from the MICCAI 2015 endoscopic vision challenge},
author={Bernal, Jorge and Tajbakhsh, Nima and S{\'a}nchez, F. Javier and
Matuszewski, Bogdan J. and Chen, Hao and Yu, Lequan and others},
journal={IEEE Transactions on Medical Imaging},
volume={36}, number={6}, pages={1231--1249}, year={2017}
}
% 3) EndoSceneStill 扩展基准(使用扩展版/官方患者级划分时引用)
@article{vazquez2017benchmark,
title={A Benchmark for Endoluminal Scene Segmentation of Colonoscopy Images},
author={V{\'a}zquez, David and Bernal, Jorge and S{\'a}nchez, F. Javier and
Fern{\'a}ndez-Esparrach, Gloria and L{\'o}pez, Antonio M. and others},
journal={Journal of Healthcare Engineering},
volume={2017}, pages={4037190}, year={2017},
doi={10.1155/2017/4037190}
}
% 4) 如使用 PraNet 评测协议与划分
@inproceedings{fan2020pranet,
title={PraNet: Parallel Reverse Attention Network for Polyp Segmentation},
author={Fan, Deng-Ping and Ji, Ge-Peng and Zhou, Tao and Chen, Geng and
Fu, Huazhu and Shen, Jianbing and Shao, Ling},
booktitle={MICCAI}, year={2020}
}
投稿提示:许多论文只引 WM-DOVA 而漏引挑战赛总结或协议论文——若你的数字与 PraNet 系文献比较,第 4 条不可省略。
教程与学习资源
- PraNet 官方仓库 README 与训练/评测脚本(社区最佳入门文档):https://github.com/DengPingFan/PraNet
- DatasetNinja 在线可视化(先看数据再动手):https://datasetninja.com/cvc-612
- HuggingFace 镜像的快速加载示例:https://huggingface.co/datasets/Aeoo/CVC-ClinicDB
- 息肉分割深度学习综述(数据集章节系统对比):AIR 2023, DOI: 10.1007/s10462-023-10621-1;arXiv:2311.18373
原始论文
- Bernal J et al. (2015). “WM-DOVA maps for accurate polyp highlighting in colonoscopy: Validation vs. saliency maps from physicians.” Computerized Medical Imaging and Graphics 43:99-111. DOI: 10.1016/j.compmedimag.2015.02.007.
- Bernal J, Sánchez FJ, Vilariño F (2012). “Towards automatic polyp detection with a polyp appearance model.” Pattern Recognition 45(9):3166-3182.(方法学前作)
- Bernal J et al. (2017). “Comparative validation of polyp detection methods in video colonoscopy: results from the MICCAI 2015 endoscopic vision challenge.” IEEE TMI 36(6):1231-1249.
- Vázquez D et al. (2017). “A Benchmark for Endoluminal Scene Segmentation of Colonoscopy Images.” J Healthcare Engineering 2017:4037190. DOI: 10.1155/2017/4037190.
- Fernández-Esparrach G et al. (2016). “Exploring the clinical potential of an automatic colonic polyp detection method based on the creation of energy maps.” Endoscopy 48(09):837-842.(体内临床验证)
§10 AI 使用声明卡
§10.1 AI 模型使用
| AI 模型 | 版本 | 用途 |
|---|---|---|
| deep-model(WorkBuddy) | 2026-09 | 初稿生成:INFOBOX 数据汇编、§1-§9 结构化写作、§6 代码示例生成、JSON-LD 构建 |
| WebSearch(多源检索) | 2026-09-06 | 6 组检索:官方页面与 License 条款、帧-序列表、规模口径交叉验证、引用数快照、PraNet 系基准数值、2024-2026 最新 SOTA |
§10.2 AI 参与范围
AI 参与范围:初稿生成 + 资料整理 + 代码生成 + 格式化排版。
AI 在本页面的工作中负责:(1) 从 Grand Challenge 官方页面、Bernal 2015 归属论文、Vázquez 2017 EndoScene 论文、PraNet/Polyp-PVT 等基准论文与社区资源中整理结构化信息;(2) 生成 §6 的 Python/PyTorch 代码示例;(3) 系统化组织 §6.5 的 8 个坑点与 §7.1 偏倚表;(4) 执行 G1/G2/G3 排版规范检查与中英文格式标准化;(5) 构建 §C 统一 JSON-LD @graph。
§10.3 输入来源
- Grand Challenge 官方 CVC-ClinicDB 页面(下载、License、帧-序列映射表)
- Bernal et al. (2015), CMIG 43:99-111(DOI: 10.1016/j.compmedimag.2015.02.007)——数据集归属论文
- Bernal et al. (2017), IEEE TMI 36(6):1231-1249——MICCAI 2015 挑战赛总结(31 序列/23 患者口径)
- Vázquez et al. (2017), J Healthcare Engineering 2017:4037190(PMC5549472)——EndoSceneStill 扩展与官方患者级划分
- Fan et al. (2020), PraNet, MICCAI 2020(arXiv:2006.11392)——评测协议与基准数值
- Dong et al. (2021), Polyp-PVT(arXiv:2108.06932)——Transformer 基准
- Kim et al. (2021), UACANet, ACM MM 2021;Wei et al. (2021), SANet, MICCAI 2021——基准数值
- Nogueira-Rodríguez et al. (2022), PMC9027927——十大公共数据集横向对比(全阳性/阴性帧证据)
- DatasetNinja CVC-ClinicDB 条目——面积/位置统计与 29 序列帧映射复核
- HuggingFace Aeoo/CVC-ClinicDB 镜像页——文件大小、ESFPNet 划分出处、月下载量
- AIR 2023 息肉分割系统综述(DOI: 10.1007/s10462-023-10621-1)——采集与帧筛选细节
- arXiv:2311.18373 息肉分割综述——相关数据集横向参数
- MDPI Computers 2024 (15(4):258) 与 PMC11031515——口径分歧与分辨率笔误证据
- BMVC 2023 0806(ADSNet)与 Nature SRaNet 表——基准数值补充
- Google Scholar / Rankless (OpenAlex) 引用快照(截至 2026-09)——引用计数
- sota2.com 聚合页(截至 2025-07 快照)与 FDSS-Net 表——2025 年 Mamba/SAM 系最新数字
- Frontiers in Oncology 2024:1417862——AI4PolypNet 官方后继基准
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射、筛查临床证据) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §3 数据集规格(612 帧/31 序列/23 患者口径、帧-序列表) | 千方病案医学编辑部 | 与官方页面及 Vázquez 2017 Table 1 交叉比对 | ✅ 已验证 |
| §4 数据结构(DAIMS 字段字典、面积统计) | 千方病案医学编辑部 | 与 DatasetNinja 统计及官方页面交叉比对 | ✅ 已验证 |
| §5 数据划分策略(PraNet/EndoScene 双协议) | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §6 代码示例与坑点 | 千方病案医学编辑部 | 逻辑审查 + 与 PraNet 官方仓库比对 | ✅ 已通过 |
| §7 质量评估与 DAIMS 评分 | 千方病案医学编辑部 | 交叉审核 | ✅ 已通过 |
| §8 排行榜与引用数表述 | 千方病案医学编辑部 | 与原文及 Scholar/OpenAlex 快照交叉比对 | ✅ 已验证 |
| §C JSON-LD @graph | 千方病案医学编辑部 | Schema v3.9 字段逐项校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.5 公平性评估代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。
§10.6 最后审核
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
