信息速览

SCARED — 手术场景深度估计立体内窥镜数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | SCARED |
| 英文全称 | Stereo Correspondence and Reconstruction of Endoscopic Data |
| 别名/简称 | SCARED Challenge、EndoVis 2019 SCARED Sub-Challenge、SCARED dataset |
| 疾病分类 | 不适用(手术场景感知数据集,非疾病专属;应用术式场景相关疾病如 ICD-11:K80 胆石症 / K81 胆囊炎 / K40 腹股沟疝,见 §2.1) |
| SNOMED CT | 27402005 Laparoscopy (procedure) / 13728009 Cholecystectomy (procedure),见 §2.1b |
| 数据模态 | 立体内窥镜视频(RGB 立体对)+ keyframe 稠密深度图 + 逐帧相机位姿与双目标定参数 + 3D 点云 |
| AI 任务类型 | 深度估计(单目/立体)、立体匹配、视差估计、3D 重建、SLAM、深度补全、位姿跟踪 |
| 样本总数 | 9 个数据集(7 训练 + 2 测试)/ 35 段内窥镜视频 / 每数据集 4-5 个 keyframes / 社区自监督划分 15,351 训练帧 + 1,705 验证帧 + 551 测试帧 |
| 数据大小 | 约 280 GB |
| 数据格式 | PNG(RGB 帧)/ TIFF 32FC3(深度点云图)/ MP4(立体拼接视频)/ OBJ(点云)/ YAML(标定)/ JSON(逐帧位姿) |
| 许可证 | SCARED Challenge Rules(挑战规则约束,无公开标准许可文本) |
| 访问级别 | 申请审核(grand-challenge 平台注册并申请加入挑战,或机构邮箱邮件申请) |
| 语言 | 不适用(纯影像与几何数据,无文本标注) |
| 首发日期 | 2019-10(MICCAI 2019 EndoVis 挑战期间,深圳) |
| 发布机构 | Intuitive Surgical(数据采集与组织方)× MICCAI EndoVis Challenge |
| 官方主页 | https://endovissub2019-scared.grand-challenge.org/ |
| 下载地址 | https://endovissub2019-scared.grand-challenge.org/(注册并申请通过后获取下载指引) |
| DOI | 数据集无 DOI;挑战论文 arXiv:2101.01133 |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 官方提供标定、位姿、点云与评测脚本,社区预处理生态成熟;扣分项:稠密 GT 仅覆盖 keyframe、需自行立体校正与无效值处理、dataset_4/5 标定存在已知错误 |
| 页面状态 | published |
§0 E-E-A-T 审核与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、临床任务定义)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。SCARED 要求用户在 grand-challenge 平台注册账号、申请加入挑战并通过评审(或按官方指引邮件申请)后方可下载数据,使用行为受 SCARED 挑战规则约束。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? SCARED 是 Intuitive Surgical 公司在 MICCAI 2019 内窥镜视觉挑战(EndoVis)期间发布的立体腹腔镜数据集。研究团队用 da Vinci Xi 手术机器人的立体内窥镜拍摄了 9 个新鲜猪尸体腹腔场景(7 个用于训练、2 个用于测试),并在其中 4-5 个关键视角(keyframe)上用结构光投影技术测出了接近仪器级精度的稠密深度真值,整包约 280 GB。
为什么重要? 在 SCARED 出现之前,手术场景的 3D 感知研究长期缺乏真实、高质量的深度基准——现有数据要么是塑料假体、要么只有稀疏标注。手术导航、增强现实(AR)与手术机器人自动化都依赖"知道每个像素离镜头多远",而 SCARED 第一次让社区可以在真实解剖结构上训练和评测这类算法,如今已是内窥镜深度估计方向事实上的标准基准。
我能用它做什么? 训练单目/立体深度估计与视差估计网络、做手术场景 SLAM 与 3D 重建、评测深度补全算法,或以 SCARED 为预训练域再迁移到临床视频。注意:它不含人类患者数据、不含技能评分标注,也不能直接支持临床决策。
§1.1 技术摘要
SCARED(Stereo Correspondence and Reconstruction of Endoscopic Data)数据集由 Intuitive Surgical 团队采集,作为 MICCAI 2019 EndoVis 子挑战在深圳发布(挑战论文)。采集端使用 da Vinci Xi 立体内窥镜(1280×1024,约 30 fps),对象为新鲜猪尸体腹腔;为获取稠密深度真值,团队关闭标准照明器、换装微型结构光投影仪,向静态场景投射 10-bit Gray code 编码图案,通过三角测量重建出 keyframe 处的稠密 3D 点云(挑战总结)。每个数据集对应一只猪受试对象、含 4-5 个 keyframe;keyframe 之外的中间帧通过机器人运动学把 keyframe 深度 warp 到新视角作为参考标注(官方明确提示其并非完美真值)。数据组织为 9 个数据集目录,每个 keyframe 含左右目图像、32FC3 深度点云 TIFF、OBJ 点云与 OpenCV 格式标定文件,序列帧以上下拼接 MP4、逐帧 4×4 位姿 JSON 与逐帧顶点图 TIFF 提供。挑战日共 10 支队伍参赛,冠军(Rediminds)在两个测试集上取得 MAE 3.60 mm 与 3.47 mm;此后该数据集成为自监督单目深度估计(AF-SfMLearner、EndoDAC 等)与立体匹配(HybridStereoNet 等)的公共评测场。
§1.2 战略价值
维度一:填补手术场景稠密深度基准的空白。 自动驾驶有 KITTI,通用立体匹配有 Middlebury,而手术场景直到 2019 年都缺少带稠密、高精度深度真值的真实数据——患者体内无法安装结构光设备,现有数据集多依赖假体或稀疏标注。SCARED 用"猪尸体 + 结构光投影"的组合绕开了体内测量的物理限制,提供了亚毫米级精度的仪器测量真值,使深度估计算法第一次能在真实解剖结构上做有绝对尺度参照的评测(挑战论文)。
维度二:一份数据支撑一条算法演化主线。 从挑战冠军的传统管线 + CNN 补全,到自监督单目深度估计的持续刷新(Monodepth2 的 0.069 → AF-SfMLearner 的 0.059 → EndoDAC 的 0.051 Abs Rel),再到立体 Transformer 与扩散模型,SCARED 提供了罕见的、协议统一的纵向比较标尺。对工程团队而言,它是把通用视觉模型带入内窥镜域的标准"第一站"——Depth Anything 在其上零样本 Abs Rel 仅 0.086,微调后可达 0.058(EndoDAC 对比表),量化了"通用基础模型 → 手术域"的迁移缺口。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 深度/标注真值 | 与 SCARED 的差异化 |
|---|---|---|---|---|
| SCARED(2019) | 9 个数据集 / 35 段视频 / 约 280 GB | da Vinci Xi 立体内窥镜视频(猪尸体) | keyframe 结构光稠密深度 + 运动学插值 + 逐帧位姿 | 规模最大、真值精度最高、含立体对与标定,深度估计事实标准 |
| SERV-CT(2020) | 2 组场景 | 立体内窥镜(尸体) | CT 衍生视差真值 | 真值来自 CT 配准、覆盖完整但场景少,适合验证而非训练 |
| Hamlyn Centre 数据集 | 多段腹部手术视频 | 单目腹腔镜(人体) | 稀疏深度/无稠密 GT | 真实人体临床视频,常作 SCARED 模型的外部验证集 |
| EndoSLAM(2020) | 体内/体外多场景 | 单目+立体(猪尸体与假体) | SLAM 轨迹与位姿真值 | 偏重 SLAM/位姿评测,深度真值覆盖弱于 SCARED |
| JIGSAWS(2014) | 39 段手术任务视频 | da Vinci 单目视频(人体) | 手术技能等级(GRS)标注 | 面向技能评估而非 3D 感知,与 SCARED 任务互补 |
注:表中规模数字均为各数据集原始发布口径,比较时注意模态与标注维度差异;SCARED 的"9 个数据集"与"35 段视频"是两种计数粒度(前者为受试对象分组,后者为序列条目)。
§1.4 版本时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2019-10 | MICCAI 2019 EndoVis SCARED 子挑战发布 7 个训练 + 2 个测试数据集 | 深圳举办,10 支队伍提交,数据集挑战期间下载 54 次(Fraunhofer HHI 新闻) |
| 2021-01 | 挑战总结论文公开(arXiv:2101.01133) | 补充 3 支挑战后提交方法及数据集已知问题(论文) |
| 2022 | 社区预处理与立体匹配整理版出现(MSDESIS toolkit、HybridStereoNet) | 提供视差生成工具与 17,206/5,907 立体对划分(论文) |
| 2024 | SCARED-C 鲁棒性基准发布 | 16 种内窥镜损坏 × 5 级严重度(EndoDepth) |
需要注意:SCARED 官方只发布过一次数据,此后所有"新版本"实为社区整理或派生基准(划分文件、视差生成、损坏合成),原始数据从未变更——这也是复现研究中"划分文件比数据本身更关键"的原因(见 §5.2、坑点 6)。
§1.5 典型应用场景
- AR 手术导航:把器械相对解剖结构的深度关系实时叠加到内窥镜画面,SCARED 提供训练与离线评测数据。
- 手术场景 SLAM 与 3D 重建:利用逐帧位姿真值评估轨迹精度(ATE/RPE),重建完整术区点云。
- 单目深度估计预训练/微调:以 SCARED 为目标域微调通用模型(Depth Anything、MonoViT 等),再迁移到临床视频。
- 立体匹配算法评测:用官方 keyframe MAE 脚本比较经典与深度学习立体匹配方法。
- 深度补全与鲁棒性研究:以 keyframe 稠密深度为稀疏输入补全全帧深度,或用 SCARED-C 评测模型对高光、烟雾、模糊等真实伪影的鲁棒性。
§2 医学背景
§2.1 应用场景相关疾病谱与 ICD-11 映射
SCARED 本身是手术场景感知数据集,不含疾病诊断标注;其解剖范围(腹腔脏器、粘连组织分离)对应腹腔镜腹部手术。下表按"目标术式场景 → 相关疾病"映射,供检索与任务定义参考。
| 应用场景 | 相关疾病标签 | ICD-11 编码 | 术语说明 |
|---|---|---|---|
| 腹腔镜胆囊切除术(数据集主体解剖之一) | 胆石症 | K80 | Cholelithiasis,腹腔镜胆囊切除术的最常见适应证 |
| 腹腔镜胆囊切除术(急性期) | 急性胆囊炎 | K81 | Cholecystitis,急诊腹腔镜手术常见指征 |
| 腹腔镜疝修补术 | 腹股沟疝 | K40 | Inguinal hernia,腹腔镜修补为常规术式 |
| 腹腔粘连松解 / 术区暴露 | 腹腔粘连(场景要素) | 不适用 | 数据集猪尸体腹腔包含脏器表面与粘连样组织结构,无诊断属性 |
注:以上映射描述的是数据集应用场景所服务的疾病谱,SCARED 数据本身不含任何疾病标签;行内 ICD-11 编码用于站内疾病主题挂接。
§2.1b SNOMED CT 映射
| 标签 | SNOMED CT 码 | 概念类型 | 与数据集的关系 |
|---|---|---|---|
| Laparoscopy(腹腔镜检查/手术) | 27402005 | Procedure | 数据集采集所模拟的术式大类 |
| Cholecystectomy(胆囊切除术) | 13728009 | Procedure | 数据集解剖范围对应的代表性术式 |
| Procedure(操作根概念) | 71388002 | Procedure | 站内手术操作类目的挂接根节点 |
§2.2 临床背景简介
微创手术(Minimally Invasive Surgery, MIS)通过体表小切口置入长柄器械与内窥镜完成腹腔内操作,与开腹手术相比创伤更小、恢复更快,已成为胆囊切除、疝修补等腹部常规术式的标准入路。腹腔镜术式的普及使"手术场景 3D 感知"成为计算机辅助手术(CAS)的核心需求:AR 导航要把已切除边界、血管走行叠加到镜下画面,SLAM 需要在弱纹理、高光、烟雾与软组织形变下维持位姿与地图估计,手术机器人自动化则依赖器械-组织的空间关系判断(挑战论文引言)。
这些感知任务的技术底座是稠密深度估计。术中获取深度的三条技术路线各有短板:立体匹配依赖高质量标定且标定会在术中调焦后失效;单目方法依赖学习先验;结构光设备帧率与硬件成本受限。SCARED 的价值正在于为这三条路线提供了共同的训练与评测基准——用结构光在体外测出高精度真值,让各类算法在真实解剖结构上横向比较。
胆石症等胆道疾病是腹腔镜手术最主要的适应证之一,在普通外科手术量中占比很高,这决定了以胆囊切除等腹腔术式为场景的感知算法具有广泛的临床覆盖面(定性描述,具体流行病学数据不在本条目检索范围内)。
术中深度获取的三条技术路线对比(SCARED 与三者的关系):
| 技术路线 | 原理 | 优势 | 局限 | 与 SCARED 的关系 |
|---|---|---|---|---|
| 立体匹配 | 双目标定后逐像素三角化 | 提供绝对尺度,无需场景先验 | 依赖标定质量;术中调焦可致标定失效 | 提供立体对 + 标定 + 高精度真值 |
| 单目深度学习 | 从单帧图像学习深度先验 | 免标定,适用存量单目镜体 | 尺度不确定;弱纹理区失效 | 提供最大规模的训练帧源与 metric 真值 |
| 主动结构光 | 投射编码图案并解码 | 精度最高,可达真值级 | 帧率受限,需专用硬件 | 即 SCARED 真值的生成方式 |
§2.3 临床任务定义
| 任务类型 | 定义 | 在 SCARED 上的形态 |
|---|---|---|
| 稠密深度估计 | 为每个像素预测以毫米为单位的深度值 | 输入左目帧(或立体对),输出与 keyframe 真值比对(MAE 或 Abs Rel 等指标) |
| 立体匹配/视差估计 | 在校正后的左右目图像间建立逐像素对应 | 由点云投影自行生成视差真值(见坑点 8),评估视差误差 |
| SLAM/位姿跟踪 | 估计内窥镜的连续 6-DoF 运动 | 以逐帧 4×4 位姿 JSON 为轨迹真值,评估 ATE/RPE |
| 3D 场景重建 | 从视频恢复术区表面点云/网格 | 与 keyframe 结构光点云(OBJ)比对完整性 |
| 深度补全 | 从稀疏深度 + RGB 恢复全帧稠密深度 | keyframe 稠密深度可下采样为稀疏输入 |
任务-文件支撑矩阵(每类任务最少需要哪些文件):
| 任务 | 必需文件 | 可选增强文件 |
|---|---|---|
| 单目深度估计 | rgb.mp4(或抽帧)、left_depth_map.tiff | frame_data.json |
| 立体匹配 | Left/Right_Image.png、endoscope_calibration.yaml | left_depth_map.tiff(深度域监督) |
| SLAM / 位姿跟踪 | rgb.mp4、frame_data.json | endoscope_calibration.yaml |
| 3D 场景重建 | point_cloud.obj、scene_points | 左右目图像 |
| 深度补全 | left_depth_map.tiff、rgb.mp4 | — |
§2.4 受试对象构成
SCARED 不含人类受试者。下表描述其实验对象构成。
| 维度 | 内容 |
|---|---|
| 来源 | Intuitive Surgical 实验室环境(非临床手术室) |
| 物种与状态 | 新鲜猪尸体(porcine cadaver)腹腔,解剖前采集 |
| 对象数 | 9 个数据集各对应 1 只猪受试对象(挑战论文) |
| 采集时间 | 2019 年(MICCAI 2019 挑战前) |
| 采集设备 | da Vinci Xi 手术机器人立体内窥镜,1280×1024,约 30 fps |
| 人种/性别/年龄 | 不适用(动物组织) |
受试对象构成的直接推论:SCARED 上报告的"泛化性能"仅指跨视角、跨场景布局的泛化,不包含跨物种、跨设备与活体/离体差异——后三者需要 §7.8 的外部验证来回答。
§2.5 临床价值定位
对临床转化的价值集中在三个环节。其一,术前/术中导航:深度估计是 AR 叠加与相机跟踪的几何基座,SCARED 提供了带绝对尺度的训练信号。其二,手术安全与自动化:器械-组织距离估计、安全距离监测等感知模块可先在 SCARED 上完成算法验证。其三,域迁移起点:猪尸体场景保留了解剖结构、软组织反光与弱纹理等关键域特征,模型在 SCARED 上习得的表征可向人体临床视频迁移,但必须经过外部验证(见 §7.3、§7.8)。
§2.6 深度真值金标准
| 属性 | 内容 |
|---|---|
| 金标准来源 | 结构光投影:微型投影仪替代标准照明器,向静态场景投射 10-bit Gray code 编码图案 |
| 生成方式 | 对投影图案解码后执行稠密立体匹配与三角测量,重建 keyframe 处逐像素 3D 点云(仪器自动测量,非人工标注) |
| 覆盖范围 | 仅 keyframe(每个数据集 4-5 个)为稠密真值;中间帧由机器人运动学将 keyframe 深度 warp 至新视角,官方明示其为参考值而非完美真值 |
| 标注者 | 自动化结构光测量系统 + 机器人运动学管线(无人工逐像素标注) |
| 已知缺陷 | dataset_4/5 内参标定错误;RGB 帧与运动学位姿存在同步滞后;重投影存在空间偏移(详见 §6.5 坑点 1/2) |
§3 数据集规格
§3.0 版本抉择矩阵
SCARED 官方只发布过一个数据版本,但社区针对不同任务形成了三种"整理形态"。按你的需求选择入手方式:
| 你的需求 | 推荐形态 | 规模 | 理由 |
|---|---|---|---|
| 完整原始数据、官方评测、立体匹配/SLAM 研究 | 原始发行版(grand-challenge 申请获取) | 9 个数据集 / 约 280 GB | 唯一官方形态,含全部 keyframe 真值、位姿、点云与评测脚本 |
| 复现自监督单目深度估计 SOTA 数字 | 原始发行版 + 社区帧划分(15,351/1,705/551) | 同上,划分文件取自社区仓库 | AF-SfMLearner / EndoDAC 等榜单数字均基于该划分,自行划分无法对齐 |
| 立体匹配快速上手(不想自己写预处理) | 社区整理版(HybridStereoNet 划分) | 17,206 训练 + 5,907 测试立体对(论文) | 已完成立体校正与视差生成,但与官方形态不一致,需在论文中明确声明 |
三种形态的数据本体完全同源,差异只在"切分方式与预处理产物";因此切换形态不需要重新申请数据,只需要替换划分文件与预处理脚本——把"数据"与"口径"分开管理是从 SCARED 开始做实验的第一课。
§3.1 数据模态详情
| 模态 | 说明 | 规格 |
|---|---|---|
| 立体内窥镜视频 | da Vinci Xi 左右目同步视频,MP4 上下拼接存储(左目在上) | 1280×1024,约 30 fps |
| keyframe 深度点云图 | 逐像素 (X, Y, Z) 三通道坐标,左/右相机坐标系,单位 mm | TIFF 32FC3,1280×1024 |
| 3D 点云 | keyframe 结构光重建点云,可直接导入 MeshLab/Blender | OBJ 格式,H×W 顶点 |
| 相机标定 | 双目内参、外参(OpenCV FileStorage 格式) | endoscope_calibration.yaml + camera_calibration.yaml |
| 逐帧相机位姿 | 相对 keyframe 照明时刻的 4×4 变换矩阵 | frame_data%06d.json |
| 逐帧顶点图 | 由 keyframe 深度 warp 的参考深度(scene_points) | scene_points%06d.tiff,无效像素 (0,0,0) |
模态间的耦合关系值得注意:深度点云图以 keyframe 时刻的相机坐标系为参照,视频帧与位姿 JSON 以同一 keyframe 为原点,因此任何跨模态使用(如把 warp 深度映射到当前视频帧)都隐含一次位姿变换——这也正是同步误差转化为标注误差的路径(见坑点 2)。
§3.2 子集构成与样本数
| 子集 | 数量 | 内容 | 用途 |
|---|---|---|---|
| dataset_1 ~ dataset_7 | 7 个 | 每个对应 1 只猪尸体、含 4-5 个 keyframe 与连续立体视频 | 训练 |
| dataset_8 ~ dataset_9 | 2 个 | 结构同上(测试集各含 5 个 keyframe) | 官方测试 |
| 视频总数 | 35 段 | 含逐帧位姿与 warp 参考深度(EndoDepth 论文) | 自监督训练 |
官方未公布每个数据集的逐帧数量清单;如需精确帧数,请以申请下载后本地解压的 frame_data 文件计数为准。
§3.3 数据格式明细
| 文件 | 格式 | 数据类型 | 说明 |
|---|---|---|---|
| Left_Image.png / Right_Image.png | PNG | 8-bit RGB | keyframe 左右目彩色图像 |
| left_depth_map.tiff / right_depth_map.tiff | TIFF | 32FC3(三通道浮点) | 逐像素 (X, Y, Z) 点云坐标,单位 mm;第三通道为有效深度值 |
| point_cloud.obj | OBJ | 浮点顶点 | keyframe 3D 点云,含无效点 |
| endoscope_calibration.yaml | YAML | OpenCV FileStorage | 双目内参/外参,供立体校正与视差-深度换算 |
| camera_calibration.yaml | YAML | OpenCV FileStorage | 近似标定,官方自述可能不准确 |
| data/rgb.mp4 | MP4 | 视频 | 上下拼接立体视频(左目在上、右目在下) |
| data/frame_data.tar.gz → frame_data%06d.json | JSON | 4×4 矩阵 | 逐帧相机变换(含该帧标定数据) |
| data/scene_points.tar.gz → scene_points%06d.tiff | TIFF | 32FC3 | 逐帧 warp 顶点图,无效像素编码 (0,0,0) |
§3.4 存储大小与磁盘规划
| 项目 | 大小 | 建议 |
|---|---|---|
| 完整下载包 | 约 280 GB | 预留至少 600 GB(下载包 + 解压 + 预处理副本)(openmedlab 数据卡) |
| 单个数据集(含 4-5 keyframe 与视频) | 数十 GB 量级 | 可只申请后优先下载单个数据集做管线验证 |
| 预处理产物(视差/深度 PNG、校正帧) | 视任务,通常再加 100-300 GB | uint16 PNG 存储可显著小于浮点 TIFF |
§3.5 标注方式
| 标注层 | 方式 | 性质 |
|---|---|---|
| keyframe 稠密深度 | 结构光投影 + 三角测量(10-bit Gray code 编码图案) | 仪器自动测量,非人工标注 |
| 中间帧参考深度 | 机器人运动学将 keyframe 深度 warp 至新视角 | 半自动生成,含运动学与同步误差 |
| 逐帧相机位姿 | da Vinci Xi 机器人运动学记录 | 仪器自动记录 |
| 双目标定 | 采集前后标定流程生成 | 仪器自动生成,存在已知误差(见坑点 1) |
§3.6 标注者资质与一致性
SCARED 无人工标注环节,不涉及标注者间一致性(如 Cohen’s kappa)。标注质量由测量系统决定:keyframe 深度来自结构光三角测量,属于高精度仪器真值;一致性风险集中在运动学插值层——RGB 视频帧与运动学位姿之间的同步滞后会引入系统性错位(MDPI Sensors 2025 对已知问题的复核)。使用插值帧做监督时应将其视为"弱真值"并配合不确定性过滤(见坑点 2)。
§3.7 采集周期
数据于 2019 年 MICCAI 2019 挑战筹备期间由 Intuitive Surgical 团队集中采集;挑战于 2019-10 在深圳举办。数据集发布后官方未发布后续采集批次。
§3.8 地域与场景覆盖
全部数据在单一实验室环境(Intuitive Surgical)采集,场景为猪尸体腹腔,不涉及医院、地域或人群分布维度。spatialCoverage 可视为"实验室体外环境";不存在临床多中心覆盖。
§3.9 设备规格
| 设备 | 参数 |
|---|---|
| 手术平台 | da Vinci Xi 手术机器人(Intuitive Surgical) |
| 内窥镜 | 立体腹腔镜,双通道同步成像 |
| 分辨率 / 帧率 | 1280×1024,约 30 fps(数据卡) |
| 深度测量 | 微型结构光投影仪替代标准照明器,10-bit Gray code 编码 |
结构光真值生成流程(据挑战论文):
- 关闭内窥镜标准照明器,切换至微型结构光投影仪;
- 向静态术野投射 10-bit Gray code 编码图案(多帧投影);
- 对左右目捕获的编码图像解码,建立逐像素立体对应;
- 立体三角测量重建稠密 3D 点云,存为深度点云图(TIFF)与点云(OBJ);
- 依机器人运动学把 keyframe 点云 warp 至其余帧视角,生成 scene_points 参考深度。
§3.10 深度溯源链
Intuitive Surgical 实验室(猪尸体采集、结构光真值生成)→ MICCAI 2019 EndoVis SCARED 子挑战组委会(发布、评测协议制定)→ grand-challenge.org 平台(托管、申请审核与分发)→ 使用者(签署挑战规则后下载)。官方页面同时保留了挑战评测脚本,作为从数据到榜单数字的端到端溯源依据(官方主页)。
§4 数据结构
§4.0 目录树
数据解压后的顶层为 9 个数据集目录,每个数据集按 keyframe 组织:
SCARED/
├── dataset_1/
│ ├── keyframe_1/
│ │ ├── data/
│ │ │ ├── scene_points.tar.gz # 逐帧 warp 顶点图(tiff,无效像素 = (0,0,0))
│ │ │ ├── rgb.mp4 # 上下拼接立体视频(左目在上,右目在下)
│ │ │ └── frame_data.tar.gz # 逐帧 4×4 相机外参(frame_data%06d.json)
│ │ ├── right_depth_map.tiff # 右目稠密深度点云图(32FC3,单位 mm)
│ │ ├── left_depth_map.tiff # 左目稠密深度点云图(32FC3,单位 mm)
│ │ ├── point_cloud.obj # keyframe 3D 点云(MeshLab 可直接查看)
│ │ ├── Left_Image.png # 左目 keyframe 彩色图
│ │ ├── Right_Image.png # 右目 keyframe 彩色图
│ │ └── endoscope_calibration.yaml # 双目内参/外参(OpenCV FileStorage)
│ ├── keyframe_2/
│ │ └── ...(结构同 keyframe_1)
│ └── keyframe_N/(N = 4-5)
├── dataset_2/
│ └── ...(结构同 dataset_1)
├── ...
├── dataset_8/ # 测试集
└── dataset_9/ # 测试集
(目录结构参考社区预处理笔记与官方数据卡,以实际下载解压结果为准。)
§4.1 DAIMS 字段字典
| 字段/文件 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| Left_Image.png | uint8 × 3 通道 | keyframe 左目 RGB 图像 | 1280×1024 RGB | 深度估计输入、立体匹配参考视图 | 镜头畸变(标定可部分补偿) | 无 | [0, 255] |
| right_depth_map.tiff | float32 × 3 通道 | 右目逐像素 (X,Y,Z) 点云图 | Z ≈ 50.0(mm) | 深度监督、3D 重建 | 结构光测量噪声;近零深度区不可靠 | (0,0,0) | 正值,mm,评估上限 150 |
| left_depth_map.tiff | float32 × 3 通道 | 左目逐像素 (X,Y,Z) 点云图 | 同上 | 同上(左目坐标系为主用坐标系) | 同上 | (0,0,0) | 同上 |
| point_cloud.obj | 浮点顶点 | keyframe 3D 点云 | H×W 顶点 | 重建完整性比对 | 含无效顶点,需过滤 | nan/(0,0,0) | 3D 连续坐标 |
| endoscope_calibration.yaml | YAML | 双目内参 K、畸变系数 D、外参 R/T | fx ≈ 1,000+ 量级 | 立体校正、视差-深度换算 | dataset_4/5 内参已知有误(坑点 1) | 无 | OpenCV 数值域 |
| camera_calibration.yaml | YAML | 近似标定 | 同上 | 仅作参考,勿用于精密立体校正 | 官方自述可能不准确 | 无 | 同上 |
| rgb.mp4 | 视频 | 上下拼接立体视频 | 左上右下 | 自监督训练帧源、位姿评估 | 需 OpenCV/ffmpeg 解码(坑点 4) | 无 | 8-bit RGB 视频 |
| frame_data%06d.json | JSON | 逐帧 4×4 相机变换 | frame_data000123.json | 轨迹评估(ATE/RPE)、深度 warp | 与视频帧存在同步滞后(坑点 2) | 无 | 刚体变换矩阵 |
§4.2 标签(深度值)分布
SCARED 的"标签"即逐像素深度(单位 mm)。社区评测统一将深度截断在 150 mm 内——该上限覆盖了 SCARED 测试集中几乎全部像素(评测协议)。深度值域随内窥镜与组织的相对距离变化:keyframe 场景多在数厘米到 15 cm 之间;结构光覆盖随相机运动衰减,帧边缘与运动后新暴露区域常无有效深度。官方未发布逐帧深度直方图统计,建议使用者在自己的任务划分上自行统计后固化到数据卡中。
统计深度分布时的两个口径提醒:其一,未掩码的 (0,0,0) 会让均值/直方图完全失真(坑点 3);其二,超过 150 mm 的像素在社区评测中被截断,统计"原始值域"与统计"评测值域"应分别报告。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 数据集(猪受试对象)数 | 9(7 训练 + 2 测试) | 挑战论文 |
| 内窥镜视频数 | 35 段(含逐帧位姿与参考深度) | EndoDepth |
| 每数据集 keyframe 数 | 4-5 个 | 挑战论文 |
| 社区自监督划分帧数 | 15,351 / 1,705 / 551(训练/验证/测试) | 评测协议 |
| 分辨率 / 帧率 | 1280×1024 / 约 30 fps | 数据卡 |
| 总数据量 | 约 280 GB | 同上 |
上表统计口径不同:"9 个数据集 / 35 段视频"是官方与论文口径,"15,351/1,705/551"等帧数是社区评测口径——两组数字描述的是同一份数据的不同切分方式,不可相加或混用(坑点 6)。
§4.4 数据层级
猪受试对象(porcine cadaver,9 只)
└── dataset_N(每对象 1 个数据集,N = 1..9)
├── keyframe_M(结构光捕获视角,M = 1..4-5)
│ ├── 左右目 RGB 图像 + 稠密深度点云图 + 点云 + 标定
│ └── data/(该 keyframe 关联的视频序列与逐帧数据)
│ ├── rgb.mp4(连续视频帧,含左右目)
│ ├── frame_data%06d.json(逐帧位姿,相对 keyframe)
│ └── scene_points%06d.tiff(逐帧 warp 参考深度)
└── keyframe_M+1 / ...
§4.5 缺失值与信息性缺失编码
| 情形 | 编码/表现 | 处理建议 |
|---|---|---|
| 结构光未覆盖像素 | 深度 TIFF 三通道均为 (0,0,0) | 加载时将 (0,0,0) 置 nan 并从损失/评测中排除(坑点 3) |
| 相机运动后新暴露区域 | scene_points 顶点图对应像素 (0,0,0) | 同上;训练时配合 RGB 梯度掩码 |
| 插值帧几何失配 | warp 深度与 RGB 边缘错位 | 边缘带 mask 或降权(坑点 2) |
| OBJ 点云无效顶点 | nan 或 (0,0,0) 顶点 | 加载后过滤再计算指标 |
§5 数据划分与使用建议
§5.1 官方划分
官方划分只有一层:dataset_1 ~ dataset_7 为训练集,dataset_8 ~ dataset_9 为测试集(挑战论文)。官方评测在两个测试集的全部 keyframe 上计算 MAE(mm),并按 keyframe 等权平均后汇总。注意官方并未发布"验证集"概念——参赛者需自行从训练集切分。
§5.2 社区惯例划分
不同研究社区在官方划分基础上发展出三种常用帧级划分:
| 划分 | 训练 / 验证 / 测试 | 采用者 |
|---|---|---|
| 自监督单目深度标准划分 | 15,351 / 1,705 / 551 帧 | Endo-SfM、AF-SfMLearner、IID-SfMLearner、EndoDAC 等(协议) |
| 大规模划分(BMC Surgery 2025 等) | 20,924 / 4,721 / 1,186 帧 | 部分临床工程研究 |
| 立体匹配整理划分 | 17,206 / 5,907 立体对 | HybridStereoNet(论文) |
建议:做单目深度估计直接沿用 15,351/1,705/551 划分与 median scaling 协议,否则数字无法与榜单对齐;自定划分必须声明并附划分文件。
划分选择决策树:
你的任务是什么?
├── 自监督单目深度估计(需要对齐榜单数字)
│ └── 使用社区 15,351/1,705/551 划分 + median scaling + 150 mm 截断
├── 立体匹配 / 双目深度
│ └── 官方 7/2 划分 + 自行校正生成视差(scale=128,坑点 7)
│ 或采用 HybridStereoNet 整理版立体对
├── SLAM / 位姿跟踪
│ └── 按数据集-序列组织,frame_data.json 为轨迹真值,keyframe 内评估
└── 自定义新任务
└── 以 dataset 为分组键自定划分;报告划分文件与协议三元组
§5.3 泄漏风险与防护
SCARED 的泄漏风险比一般图像数据集更隐蔽:
- 同一受试对象内相似性:4-5 个 keyframe 拍摄的是同一腹腔的不同视角,插值帧又由 keyframe 深度 warp 而来——把同一数据集的 keyframe 分入训练、把插值帧分入测试,等于用训练真值的变体做测试。
- warp 帧的"记忆效应":中间帧参考深度由 keyframe 深度生成,若评测集包含这些帧,模型可能从训练 keyframe 中"背出"答案。
- 官方 MAE 评测的等权平均:每个 keyframe 等权,帧数少的 keyframe 权重被放大,跨论文比较时容易被该协议差异误导(坑点 6)。
防护建议:训练/验证/测试划分以 dataset 为分组键(group-wise split),禁止同 dataset 跨集;验证集优先使用 keyframe 原生真值而非 warp 帧;论文报告时同时注明划分来源与评测协议。
§5.4 交叉验证建议
若需交叉验证(如小样本消融),建议按 dataset 做 9 折留一法(Leave-One-Dataset-Out) 的子采样版本:每折以 2-3 个 dataset 为验证组,保证受试对象级隔离。不建议逐帧随机 K 折——那会破坏受试者隔离并高估泛化性能。例如 3 折可取 {dataset_1-3}、{dataset_4-6}、{dataset_7}+测试集协议说明为验证组轮流训练;每组实验报告分折指标与合并指标,并保持评测脚本与分组文件随代码入库。
§5.5 外部验证建议
训练于 SCARED 的模型应在至少一个异构外部集上验证:Hamlyn(人体单目临床视频)、SERV-CT(CT 衍生视差真值)或 EndoSLAM。已有工作表明跨域性能会显著下降(如 AF-SfMLearner 从 SCARED 的 Abs Rel 0.059 恶化到零样本 Hamlyn 的 0.168,EndoDAC 对比表),外部验证矩阵详见 §7.8。
§6 AI 就绪指南
§6.1 快速上手
SCARED 无公开直链,数据需申请获取(流程见 §6.2)。下面的代码假设你已把数据下载解压到 data_root,目录结构为 data_root/dataset_1/keyframe_1/...(与 §4.0 目录树一致)。最小可用子集:任意一个 dataset 的一个 keyframe——只靠 Left_Image.png + left_depth_map.tiff + endoscope_calibration.yaml 三个文件即可跑通"读图 → 读深度 → 可视化 → 算指标"的完整闭环,无需解压视频。
# 目录结构预期:data_root/dataset_1/keyframe_1/{Left_Image.png, left_depth_map.tiff, ...}
# data_root 拼接关系:data_root / f"dataset_{d}" / f"keyframe_{k}" / 文件名
# 最小可用子集:dataset_1 的 keyframe_1(约几 GB,可先验证管线再处理全量)
import cv2
import numpy as np
import tifffile # pip install tifffile
data_root = "data_root"
kf_dir = f"{data_root}/dataset_1/keyframe_1"
# 1) 读 RGB keyframe(普通 8-bit PNG)
rgb = cv2.imread(f"{kf_dir}/Left_Image.png") # BGR, HxWx3
# 2) 读深度点云图:32FC3,三通道是 (X, Y, Z),单位 mm —— 不是单通道深度图!
pcd = tifffile.imread(f"{kf_dir}/left_depth_map.tiff") # HxWx3 float32
depth_mm = pcd[..., 2] # 第三通道才是深度
# 3) 无效像素编码是 (0,0,0):必须先掩掉,否则统计/训练全被污染
valid = depth_mm > 0
depth_mm = np.where(valid, depth_mm, np.nan)
print(f"有效像素占比: {valid.mean():.1%}, "
f"深度范围: {np.nanmin(depth_mm):.1f}-{np.nanmax(depth_mm):.1f} mm")
cv2.imwrite("rgb_preview.png", rgb)
§6.2 数据获取
| 途径 | 链接/方式 | 大小 | 流程 |
|---|---|---|---|
| 官方申请(唯一正式途径) | grand-challenge 挑战页 | 约 280 GB | ① 注册 grand-challenge 账号;② 在挑战页申请加入;③ 通过评审后按页面指引下载(社区流程) |
| 邮件申请(官方指引的替代途径) | max.allan@intusurg.com | 同上 | 签署挑战规则后发机构邮箱申请,通常一周内获批(验证于 2024-10,openmedlab 数据卡) |
| HuggingFace 非官方镜像 | maxhallan7/scared | 部分子集 | 未经官方认证,仅作快速探查,正式研究请用官方渠道 |
申请邮件可参考如下模板(使用机构邮箱,说明用途):
Subject: Request for access to the SCARED dataset
Dear SCARED challenge team,
I am a researcher at [institution]. I would like to request access to the
SCARED dataset for academic research on [depth estimation / surgical scene
reconstruction]. I have read and agree to the SCARED challenge rules.
Intended use: [一句话说明]。No commercial use.
Name / Title / Institution / ORCID:
下载完成后的完整性验证清单(申请通过后第一时间执行):
[ ] 下载包校验和与官方页面提供值比对
[ ] 解压后确认 dataset_1 ~ dataset_9 九个目录齐全
[ ] 逐数据集核对 keyframe 数量(应为 4-5 个,测试集为 5 个)
[ ] 抽查一个 keyframe:tifffile 可读取 left_depth_map.tiff 且存在非零像素
[ ] 抽查一个 rgb.mp4:OpenCV 可解码,单帧高 2048(上下两目各 1024)
[ ] 抽帧数量与 frame_data JSON 文件数量对齐(坑点 4)
[ ] dataset_4/5 先跑对极误差检查再纳入训练(坑点 1)
§6.3 预处理全流程
第一步:深度读取与无效值清洗(格式转换的核心是 32FC3 点云图 → 单通道 metric depth + 有效掩码):
import numpy as np, tifffile
def load_depth(tiff_path, cap_mm=150.0):
"""SCARED 深度点云图 -> (depth[mm], valid mask)。评估惯例上限 150 mm。"""
pcd = tifffile.imread(tiff_path) # HxWx3, (X,Y,Z) mm
depth = pcd[..., 2]
valid = (depth > 0) & (depth <= cap_mm) # (0,0,0) 与超上限一并排除
depth = np.where(valid, depth, np.nan)
return depth, valid
第二步:keyframe 可视化质检——训练前先肉眼确认深度-RGB 对齐,可提前暴露标定问题:
import matplotlib.pyplot as plt
depth, valid = load_depth(f"{kf_dir}/left_depth_map.tiff")
plt.subplot(1, 2, 1); plt.imshow(cv2.cvtColor(rgb, cv2.COLOR_BGR2RGB)); plt.title("RGB")
plt.subplot(1, 2, 2); plt.imshow(depth, cmap="magma"); plt.title("Depth (mm)")
plt.savefig("qc_pair.png", dpi=120)
第三步:立体校正与视差真值生成(仅立体匹配/双目任务需要;从点云投影生成 KITTI 风格 uint16 视差图):
<details>
<summary>立体校正 + 视差生成完整脚本(点击展开,约 35 行)</summary>
import cv2, numpy as np, tifffile, yaml
def stereo_rectify_and_disparity(kf_dir, out_dir, scale=128):
"""按 DeepPruner_SCARED 社区流程生成校正帧与 uint16 视差。
scale=128:把 0-255 视差映射进 uint16,保留近处大视差信息。"""
calib = yaml.safe_load(open(f"{kf_dir}/endoscope_calibration.yaml"))
K1, D1 = np.array(calib["camera_matrix_left"]), np.array(calib["dist_coeffs_left"])
K2, D2 = np.array(calib["camera_matrix_right"]), np.array(calib["dist_coeffs_right"])
R, T = np.array(calib["rotation"]), np.array(calib["translation"]).reshape(3, 1)
size = (1280, 1024)
R1, R2, P1, P2, Q, _, _ = cv2.stereoRectify(K1, D1, K2, D2, size, R, T)
m1l, m2l = cv2.initUndistortRectifyMap(K1, D1, R1, P1, size, cv2.CV_32FC1)
m1r, m2r = cv2.initUndistortRectifyMap(K2, D2, R2, P2, size, cv2.CV_32FC1)
rgb = cv2.imread(f"{kf_dir}/Left_Image.png")
rect_l = cv2.remap(rgb, m1l, m2l, cv2.INTER_LINEAR)
rect_r = cv2.remap(cv2.imread(f"{kf_dir}/Right_Image.png"), m1r, m2r, cv2.INTER_LINEAR)
cv2.imwrite(f"{out_dir}/rect_left.png", rect_l)
cv2.imwrite(f"{out_dir}/rect_right.png", rect_r)
pcd = tifffile.imread(f"{kf_dir}/left_depth_map.tiff").reshape(-1, 3)
pcd = pcd[pcd[:, 2] > 0]
pts = (P1[:3, :3] @ pcd.T).T + P1[:3, 3] # 投影到校正左目
uv = (pts[:, :2] / pts[:, 2:3]).round().astype(int)
disp = np.zeros((1024, 1280), np.float32)
right_uv = (P2[:3, :3] @ pcd.T).T + P2[:3, 3]
right_uv = (right_uv[:, :2] / right_uv[:, 2:3]).round().astype(int)
ok = (uv[:, 0] >= 0) & (uv[:, 0] < 1280) & (uv[:, 1] >= 0) & (uv[:, 1] < 1024)
disp[uv[ok, 1], uv[ok, 0]] = uv[ok, 0] - right_uv[ok, 0]
disp_u16 = np.clip(disp * scale, 0, 65535).astype(np.uint16)
cv2.imwrite(f"{out_dir}/disp_left.png", disp_u16)
stereo_rectify_and_disparity("data_root/dataset_1/keyframe_1", "proc/dataset_1/kf1")
</details>
第四步:视频帧提取(自监督任务需从 rgb.mp4 抽帧并按 frame_data 对齐):
cap = cv2.VideoCapture(f"{kf_dir}/data/rgb.mp4") # 勿用系统播放器,见坑点 4
h, w = 1024, 1280
idx = 0
while True:
ok, frame = cap.read()
if not ok: break
left, right = frame[:h], frame[h:] # 上=左目,下=右目
# frame_idx 与 frame_data%06d.json 的 %06d 对齐(0 起)
cv2.imwrite(f"frames/left/{idx:06d}.png", left)
idx += 1
§6.4 PyTorch DataLoader
<details>
<summary>完整可运行的 Dataset + DataLoader 代码(点击展开,约 30 行)</summary>
import torch
from torch.utils.data import Dataset, DataLoader
import cv2, numpy as np, tifffile, pathlib
class ScaredKeyframeDataset(Dataset):
"""keyframe 级(稠密真值)数据集:返回校正前左目 RGB + metric depth。
目录约定:root/dataset_{d}/keyframe_{k}/{Left_Image.png, left_depth_map.tiff}"""
def __init__(self, root, datasets=(1, 2, 3, 4, 5, 6, 7), size=(256, 320),
cap_mm=150.0):
self.items, self.size, self.cap = [], size, cap_mm
for d in datasets:
for kf in sorted(pathlib.Path(root, f"dataset_{d}").glob("keyframe_*")):
if (kf / "left_depth_map.tiff").exists():
self.items.append(kf)
def __len__(self):
return len(self.items)
def __getitem__(self, i):
kf = self.items[i]
rgb = cv2.cvtColor(cv2.imread(str(kf / "Left_Image.png")), cv2.COLOR_BGR2RGB)
pcd = tifffile.imread(str(kf / "left_depth_map.tiff"))
depth, valid = pcd[..., 2], pcd[..., 2] > 0
rgb = cv2.resize(rgb, (self.size[1], self.size[0]))
depth = cv2.resize(depth, (self.size[1], self.size[0]),
interpolation=cv2.INTER_NEAREST)
valid = (depth > 0) & (depth <= self.cap)
depth = np.where(valid, depth, 0).astype(np.float32)
return (torch.from_numpy(rgb).permute(2, 0, 1).float() / 255.0,
torch.from_numpy(depth)[None],
torch.from_numpy(valid.astype(np.float32))[None])
loader = DataLoader(ScaredKeyframeDataset("data_root"), batch_size=4, num_workers=4)
for rgb, depth, valid in loader:
print(rgb.shape, depth.shape, valid.dtype) # [4,3,256,320] [4,1,256,320] float32
break
</details>
§6.5 坑点 8 个
以下坑点全部来自官方论文补充材料、参与者独立复核与社区工具链文档的真实记录,非通用模板。
⚠️ 坑点 1:部分数据集标定文件有误,立体校正直接错位(分类:预处理陷阱)
问题:官方自述
camera_calibration.yaml是近似标定(“may be inaccurate”);参与者复核确认 dataset_4 与 dataset_5 存在内参错误,导致按文件做立体校正后特征点无法沿水平扫描线对齐(对极几何违例)。
症状:校正后的左右目图上做 SIFT/ORB 匹配,对应点 y 坐标差明显大于 1-2 像素;立体匹配视差图出现大面积横向条带状错误;训练自监督模型时该数据集损失显著偏高。
解决:
- 简单方法:优先使用
endoscope_calibration.yaml(keyframe 级标定)而非camera_calibration.yaml;对 dataset_4/5 先做对极误差检查再决定是否纳入训练。- 进阶方法:校正后用特征匹配计算 y 方向残差分布,残差中位数 > 1 像素的数据集/keyframe 加权降采样或剔除:
# 校正后对极检查:匹配点 y 残差应集中在 ±1 px 内 dy = np.abs(pts_left[:, 1] - pts_right[:, 1]) print(f"median |dy| = {np.median(dy):.2f} px") # >1 px 说明标定有问题- SOTA 方法:改用基于图像内容的位姿重估——Schmid 与 Kurmann 提出用 SIFT 特征跟踪 + PnP 求解替代运动学位姿/标定的视觉重建管线,显著改善几何一致性。
参考:MDPI Sensors 2025 对已知问题的系统复核、官方数据卡对近似标定的说明
⚠️ 坑点 2:把运动学插值深度当完美稠密真值训练(分类:标签理解)
问题:中间帧的
scene_points深度是 keyframe 结构光深度经机器人运动学 warp 得到的参考值,官方明确提示"请勿假定它们是完美真值"——运动学误差与 RGB 视频-位姿同步滞后都会引入错位。
症状:用插值帧做稠密监督时,模型在物体边缘与深度突变处出现系统性"重影";评测集若含插值帧,指标虚高(模型记住了 keyframe 深度);warp 帧深度与 RGB 边缘目视可见错位。
解决:
- 简单方法:监督/评测只用 keyframe 原生结构光真值,插值帧仅用于自监督光度一致性训练。
- 进阶方法:对插值帧样本降权(如 0.2-0.5 倍损失权重),并对深度-边缘错位区域生成 mask 剔除:
grad = cv2.Laplacian(gray_rgb, cv2.CV_32F) edge_mask = np.abs(grad) > np.percentile(np.abs(grad), 95) # 边缘带剔除- SOTA 方法:用光度一致性/特征度量误差在线过滤不可靠像素(AF-SfMLearner 的 anchor 特征与 auto-masking 思路),只让几何可信的像素参与监督。
参考:HuggingFace 官方镜像数据说明、MDPI Sensors 2025
⚠️ 坑点 3:(0,0,0) 无效编码被当成"零距离"参与训练/统计(分类:预处理陷阱)
问题:深度 TIFF 的无效像素编码为 (0,0,0),而非 nan 或负数;深度图是三通道点云图(X/Y/Z),第三通道才是 Z。直接取值会把几十万个无效像素当作深度 0 mm。
症状:深度直方图在 0 处出现巨大尖峰;归一化后其余深度值被压扁;训练损失被无效像素主导、不收敛;最小深度统计显示 0.0 mm。
解决:
- 简单方法:加载后立即
valid = depth > 0,统计与损失全部乘以有效掩码。- 进阶方法:统一封装加载函数(见 §6.3),把 (0,0,0) 置 nan、转 uint16 PNG 存储时用 scale 因子(如 256.0)保留两位小数精度,0 值在读取时还原为 nan(scared_toolkit 的约定)。
- SOTA 方法:在 DataLoader 层固化"读取即清洗"约定,并配合 auto-masking 排除运动区域与静态低纹理像素,杜绝无效值进入光度损失。
参考:openmedlab 数据卡、scared_toolkit
⚠️ 坑点 4:rgb.mp4 打不开或左右目弄反(分类:工程陷阱)
问题:视频是上下拼接的立体流(左目在上、右目在下),VLC/QuickTime/Windows Media Player 可能无法正常播放或显示异常;用 ffmpeg 默认转码还可能丢帧导致与 frame_data JSON 序号错位。
症状:播放器黑屏或显示"无法解码";抽帧后图像宽高比不对(没拆分上下);位姿文件序号与帧号对不上,轨迹评估(ATE)误差异常大。
解决:
- 简单方法:一律用 OpenCV
VideoCapture或ffmpeg -i rgb.mp4 frames/%06d.png抽帧,按上=左目、下=右目切分。- 进阶方法:抽帧后核对帧数与 frame_data JSON 数量是否一致;不一致时以 JSON 数量为准截断,并记录首个对齐偏移。
- SOTA 方法:在预处理管线中缓存
(frame_idx → frame_data_id)映射表并入库版本管理,下游所有实验共享同一对齐清单,避免各实验各自对齐引入口径分歧。
参考:openmedlab 数据卡对 rgb.mp4 的说明
⚠️ 坑点 5:同受试者数据跨划分造成泄漏,泛化指标虚高(分类:数据泄漏)
问题:每个数据集对应一只猪尸体,4-5 个 keyframe 是同一腹腔的不同视角,插值帧更是 keyframe 深度的直接衍生。任何"按帧随机划分"都会让测试帧与训练帧来自同一解剖场景,甚至共享同一份 warp 深度来源。
症状:验证指标很好但换到 dataset_8/9 或外部数据骤降;消融实验之间的差异小于随机种子差异;同一模型在不同论文上数字差异巨大。
解决:
- 简单方法:严格沿用社区 15,351/1,705/551 划分文件(AF-SfMLearner/EndoDAC 口径),不自造随机划分。
- 进阶方法:自定划分时以 dataset 为分组键做 group split,验证集只取 keyframe 原生真值帧。
- SOTA 方法:主结果用社区划分对齐榜单,另报一组 Leave-One-Dataset-Out 结果量化受试者级泛化,两组数字同时呈现。
参考:评测协议、HybridStereoNet 划分
⚠️ 坑点 6:两套评测协议混用,数字不可直接互比(分类:评估误用)
问题:SCARED 存在两套并行评测协议——官方挑战协议(MAE mm,keyframe 等权平均)与社区自监督协议(Abs Rel/RMSE,median scaling,深度上限 150 mm,551 帧测试集)。且官方等权平均会让帧数少的 keyframe 权重被放大。两类数字、不同划分下的数字放同一张表就是错误。
症状:把挑战冠军 MAE 3.60 mm 与 EndoDAC 的 RMSE 4.442 并列比较;复现出的 Abs Rel 与论文差 0.01-0.02 却查不出原因(其实是划分或 cap 不一致)。
解决:
⚠️ 坑点 7:自生成视差真值的舍入误差与 scale 因子选择(分类:预处理陷阱)
问题:SCARED 原生没有视差图,立体匹配方法需从点云投影自行生成。投影坐标必须取整到像素网格,这会引入最多 0.5 px 的真值误差;uint16 存储时 scale 因子选 256 还是 128 直接决定近处大视差是否溢出。
症状:视差图近景区(离镜头近的组织)出现整片饱和条纹(scale 过大溢出);评估 D1-error 时基线方法莫名高出 0.5-1 个百分点(舍入噪声);同一模型两次预处理结果不可复现。
解决:
- 简单方法:按 DeepPruner_SCARED 的社区约定,scale 取 128(KITTI 惯例 256 会丢近处大视差),存储 uint16 PNG。
- 进阶方法:先算水平距离、再取整写入左目投影位置,并固定同一 scale 因子写进配置文件与论文复现说明。
- SOTA 方法:直接改在深度域监督(metric depth),绕开视差生成;或采用亚像素插值降低投影舍入误差。
参考:DeepPruner_SCARED 预处理文档、scared_toolkit
⚠️ 坑点 8:猪尸体域差距被低估,直接迁移临床视频会翻车(分类:偏倚陷阱)
问题:SCARED 全部来自猪尸体实验室场景:无出血、无烟雾、组织色泽与活体不同、单一 da Vinci Xi 设备、无患者间解剖变异。在 SCARED 上训练的模型直接用于人体临床视频会显著退化——通用基础模型 Depth Anything 零样本 Abs Rel 仅 0.086 也印证了域差的存在。
症状:SCARED 指标优秀,临床视频上深度图在出血/烟雾区域大面积发散;高光区出现深度空洞;换内窥镜型号后整体深度尺度漂移。
解决:
- 简单方法:报告结果时明示"猪尸体离体数据",不外推临床性能;上线前用临床视频做定性抽检。
- 进阶方法:用 SCARED-C(16 种损坏 × 5 级严重度)做鲁棒性评测,重点看高光/烟雾/模糊类损坏的 mCE。
- SOTA 方法:SCARED 预训练 + 少量临床域数据微调 + Hamlyn/SERV-CT 外部验证的组合流程,并在数据卡中记录域差来源。
参考:SCARED-C/EndoDepth、EndoDAC 跨域对比表
§6.6 数据增强
| 增强方式 | 安全性 | 说明 |
|---|---|---|
| 随机水平裁剪 + 同步缩放 | ✅ | RGB 与深度/掩码必须同一几何参数 |
| 色彩抖动(低幅度) | ✅ | 缓解光源/白平衡差异;幅度过大会破坏光度一致性假设 |
| 镜像翻转 | ⚠️ | 左右目语义翻转可行,但需同步交换立体对并重算视差符号 |
| 随机旋转(>5°) | ❌ | 破坏水平视差假设,立体任务禁用 |
| 深度图独立插值 | ❌ | 深度必须用最近邻插值,双线性会在无效边界造出假值 |
| 高光/烟雾模拟 | ✅ | 配合 SCARED-C 思路做增强可提升鲁棒性 |
增强策略的选择逻辑:SCARED 的光度一致性假设要求增强后左右目仍满足校正几何,因此几何类增强必须左右目 + 深度同参数联动;色彩类增强是安全区,但幅度过大会削弱光度损失对真实光照变化的拟合能力。模拟高光与烟雾类损坏已被证明是提升临床鲁棒性的有效方向(SCARED-C 的损坏分类即据此设计)。
§6.7 模型推荐
| 模型 | 类型 | SCARED 表现(Abs Rel / RMSE) | 适用场景 |
|---|---|---|---|
| Monodepth2(Godard et al., ICCV 2019) | 自监督单目 | 0.069 / 5.546(对比表) | 基线复现、入门自监督 |
| AF-SfMLearner(Shao et al., Medical Image Analysis 2022) | 自监督单目(anchor 特征) | 0.059 / 4.925 | 中等算力下的强基线 |
| EndoDAC(MICCAI 2024) | 自监督单目(域适应) | 0.051 / 4.442 | 追榜 SOTA、跨域适应研究 |
| Depth Anything(Yang et al., CVPR 2024) | 单目基础模型 | 零样本 0.086 / 6.957;微调后 0.058 | 大模型微调迁移研究 |
| HybridStereoNet(arXiv:2207.12152) | 立体 Transformer | Test1 平均 MAE 3.31 mm(论文) | 立体匹配/双目深度 |
上表 Abs Rel / RMSE 数字均基于社区 15,351/1,705/551 划分协议;HybridStereoNet 的 MAE 数字基于官方 keyframe 评测口径,两者不可直接互比(坑点 6)。选型时按"先跑通基线、再按算力档位选模型"推进:Monodepth2 → AF-SfMLearner → EndoDAC 的演进路线覆盖了从入门到 SOTA 的完整阶梯。
§6.8 硬件需求
| 阶段 | 显存 | 存储 | 说明 |
|---|---|---|---|
| keyframe 监督训练(14.8M 参数自监督模型) | ≥ 11 GB | 600 GB | 256×320 输入即可复现榜单口径 |
| 自监督全帧训练 | ≥ 16 GB | 600 GB + 预处理帧 100-300 GB | 光度损失显存开销高于监督训练 |
| 评测(MAE 脚本 / Abs Rel) | ≥ 8 GB | 少量 | median scaling 在 CPU 也可算 |
| 立体匹配(视差域) | ≥ 24 GB | 600 GB + 校正/视差产物 | 代价体积方法显存需求大 |
§6.9 评估指标代码
与社区协议一致的 Abs Rel / Sq Rel / RMSE / δ<1.25 实现(含 median scaling 与 150 mm 截断):
import numpy as np
def depth_metrics(pred, gt, cap_mm=150.0, median_scaling=True):
"""pred/gt: HxW numpy(mm),无效像素为 nan。与社区自监督协议一致。"""
m = np.isfinite(gt) & np.isfinite(pred) & (gt > 0) & (gt <= cap_mm)
p, g = pred[m].astype(np.float64), gt[m]
if median_scaling:
p *= np.median(g) / np.median(p) # 单目深度尺度对齐惯例
ratio = g / p
return {
"abs_rel": float(np.mean(np.abs(p - g) / g)),
"sq_rel": float(np.mean(((p - g) ** 2) / g)),
"rmse": float(np.sqrt(np.mean((p - g) ** 2))),
"d1": float(np.mean(ratio < 1.25)), # δ<1.25 准确率
}
官方 keyframe MAE 评测请以挑战页附带的评测脚本为准,其按 keyframe 等权平均(见坑点 6)。核心逻辑等价于:
import numpy as np
def official_style_mae(pred_by_kf, gt_by_kf):
"""官方挑战 MAE 的等价逻辑:逐 keyframe 平均后再等权汇总。
pred_by_kf / gt_by_kf: 每 keyframe 的 (pred, gt) 列表,无效像素为 nan。"""
per_kf = [np.nanmean(np.abs(p - g)) for p, g in zip(pred_by_kf, gt_by_kf)]
return float(np.mean(per_kf)) # keyframe 等权——帧数少者权重被放大
§6.10 MLOps 笔记
- 数据版本固化:SCARED 官方单一版本,但仍应记录下载日期与 MD5 清单;社区划分文件(15,351/1,705/551)要入库版本管理并与实验 ID 绑定。
- 预处理产物单独建库:校正帧、视差 PNG、无效掩码属衍生资产,命名包含 scale 因子与标定来源(如
disp_s128_endocal)。 - 协议配置化:评测协议(cap=150 mm、median scaling、划分文件路径)写入单一配置文件,禁止硬编码散落各实验脚本。
- 跨域实验隔离:SCARED → Hamlyn/SERV-CT 的迁移实验与域内实验分开记录,避免把零样本跨域数字混入域内榜单表。
- 可复现性:报告任何数字时附协议三元组(划分 + 指标 + 预处理 scale),这是 SCARED 社区比较数字的事实门槛。
- 评测留痕:保存每个 keyframe 的逐项指标明细而非仅汇总值,便于事后排查协议差异(坑点 6)与 keyframe 级异常(坑点 1)。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解建议 |
|---|---|---|---|
| 状态偏倚 | 全部为猪尸体离体场景:无出血、无烟雾、无活体组织色泽与搏动,与临床真实术野差异显著 | 高 | SCARED-C 鲁棒性评测 + 临床数据微调 + 外部验证 |
| 设备偏倚 | 单一 da Vinci Xi 立体内窥镜、单一中心采集,无设备代际与型号多样性 | 中 | 与 Hamlyn 等异构数据混合训练 |
| 覆盖偏倚 | 结构光覆盖随相机运动衰减,运动后新暴露区域无真值,评测偏向覆盖良好区域 | 中 | 有效掩码训练;报告逐区域指标 |
| 场景多样性有限 | 9 只受试对象、35 段视频,解剖变异远小于临床人群 | 中 | 受试者级泛化报告(Leave-One-Dataset-Out) |
| 协议偏倚 | 官方 MAE 按 keyframe 等权平均,帧数少的 keyframe 权重被放大 | 低-中 | 同时报告逐 keyframe 明细与加权口径 |
§7.2 标注质量
keyframe 深度来自结构光投影 + 三角测量的仪器自动测量,属于数据集中精度最高的真值层,被多篇同行评审工作作为"高质量结构光真值"引用(MDPI Sensors 2025)。插值帧参考深度由机器人运动学生成,官方数据说明明确提示其存在运动学与同步误差、不应视为完美真值(HuggingFace 官方镜像说明)。dataset_4/5 的内参标定错误由官方论文补充材料承认并经参与者独立确认——这在公开数据集中属少见的"透明缺陷披露",反而提升了可信度。
标注质量分层(按真值层使用建议):
| 真值层 | 生成方式 | 相对质量 | 使用建议 |
|---|---|---|---|
| keyframe 深度点云图(TIFF) | 结构光三角测量(仪器级) | 最高 | 监督与评测首选 |
| point_cloud.obj | 同上(同源) | 最高 | 重建完整性比对、3D 评测 |
| scene_points 插值深度 | 机器人运动学 warp | 中(含同步/运动学误差) | 仅作弱监督或自监督配合 |
| frame_data 逐帧位姿 | 机器人运动学记录 | 中-高 | 轨迹评测(ATE/RPE) |
§7.3 泛化性风险
| 目标场景 | 失效风险 | 证据 |
|---|---|---|
| 活体人体腹腔镜手术 | 高 | 组织色泽、出血、烟雾与 SCARED 域差显著;Depth Anything 零样本仅 0.086 Abs Rel(对比表) |
| 跨设备(非 da Vinci / 单目镜体) | 中-高 | SCARED → Hamlyn 零样本 AF-SfMLearner 从 0.059 退化至 0.168(同上) |
| 临床伪影(烟雾/高光/模糊) | 高 | SCARED-C 显示全部模型在损坏下 mCE 显著上升(EndoDepth) |
| 腹腔外术式(胸腔镜等) | 高 | 解剖范围外推无同行评审证据 |
§7.4 伦理合规
- 数据为猪尸体离体采集,不含人类受试者、无个人身份信息,不适用人类研究伦理审查(IRB)。
- 动物组织使用由采集方机构按其内部规范执行;使用者需遵守 grand-challenge 平台与 SCARED 挑战规则。
- 访问为申请审核制:注册 grand-challenge 账号 → 申请加入挑战 → 评审通过后下载;使用行为受挑战规则约束(见 §6.2)。
- 派生数据(SCARED-C、社区镜像与整理版划分)的再分发须单独核对原始挑战规则条款,切勿假定"可公开获取的数据集即可转载"。
§7.5 公平性
数据集不含人类受试者,不存在人群公平性维度(性别/种族/年龄分层均不适用)。方法学层面的"公平性"注意事项是算力可比性:自监督方法参数量从 1.6M(EndoDAC 训练参数)到 97.5M(Depth Anything)跨度极大,跨模型比较时应附参数量与推理速度(对比表)。
§7.6 数据漂移
- 设备代际漂移:da Vinci 平台持续迭代(Xi 之后有 X/SP 等型号与镜体升级),成像链路参数随代际变化,SCARED 不覆盖。
- 采集参数漂移:白平衡、照明强度、增益等在临床中动态调整,实验室采集固定。
- 临床分布漂移:患者解剖变异、病理状态、术者操作习惯在 SCARED 中完全缺失——以 SCARED 为域的模型部署前必须建立临床数据监测。
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 按 keyframe/帧的文件组织,无宽表重构问题 |
| 2 | 唯一标识 | ✅ | dataset_N/keyframe_M 与 frame_%06d 路径即唯一 ID |
| 3 | 特殊字符 | ✅ | 文件名纯 ASCII,无空格/特殊字符 |
| 4 | 重复行 | ✅ | 无重复记录;warp 帧与 keyframe 职责分明 |
| 5 | 缺失编码 | ⚠️ | (0,0,0) 编码存在但官方文档未系统说明,依赖社区工具约定 |
| 6 | 标签标识 | ✅ | 深度/位姿/标定文件语义与命名明确 |
| 7 | 罕见类分组 | ⚠️ | 非分类任务不适用;深度值域分层统计需自行构建 |
| 8 | 偏倚评估 | ✅ | 官方补充材料公开已知缺陷,社区复核充分 |
| 9 | 数据字典 | ✅ | 官方 keyframe 文件说明 + 本条目 §4.1 |
| 10 | 信息性缺失解释 | ⚠️ | 无效像素成因可推断(遮挡/运动)但官方未量化分布 |
| 11 | 设备记录 | ✅ | da Vinci Xi、结构光投影仪、分辨率/帧率明确 |
| 12 | 共线性 | ✅ | 不适用(非表格型数据) |
| 13 | 编码映射 | ✅ | OpenCV FileStorage 标定格式、mm 单位约定明确 |
| 14 | 时间戳处理 | ⚠️ | RGB 帧-位姿同步滞后是已知缺陷,需自行对齐 |
| 15 | 划分建议 | ✅ | 官方 7/2 划分 + 成熟社区帧划分可直接采用 |
| 16 | 泄漏讨论 | ✅ | 同受试者相似性与 warp 帧衍生关系已有社区共识(§5.3) |
| 17 | 标签分布 | ⚠️ | 官方未发布深度值域统计,需自行统计 |
| 18 | 测量偏倚 | ⚠️ | 结构光覆盖偏倚与等权平均偏倚已被记录但未系统量化 |
| 19 | 外部验证建议 | ✅ | Hamlyn/SERV-CT 可用且已有同行评审跨域数字 |
| 20 | 版本记录 | ⚠️ | 官方单版本发布,无正式版本号与变更日志 |
| 21 | 预处理脚本 | ⚠️ | 官方仅提供评测脚本;预处理依赖分散的社区工具链 |
| 22 | 合规要求 | ⚠️ | 挑战规则约束明确,但无标准化许可文本 |
| 23 | 多模态对齐 | ⚠️ | RGB-深度-位姿三模态间存在已知同步问题 |
| 24 | 去标识化 | ✅ | 动物离体数据,无人类信息 |
DAIMS 评分:19 / 24
评分解读:SCARED 在标识、设备记录、划分生态与缺陷披露透明度上达到基准数据集的一流水准(14 项 ✅),未出现任何 ❌ 项;10 个 ⚠️ 项集中在"缺失编码文档化、时间同步、版本管理、标准化许可"等工程治理层面,而非科学质量层面——这与它"挑战赛产物而非长期维护基础设施"的出身一致。
对你意味着什么:可以直接把 SCARED 当作训练/评测的科学生态基座(划分、真值、榜单都成熟);但落地工程中要自建三件事——(0,0,0) 与 nan 的统一清洗约定、帧-位姿对齐清单、以及带版本号的预处理产物库。若你的项目要求合规审计留痕,请在数据卡中明确记录"挑战规则 + 申请日期 + 用途声明"。
§7.8 外部验证矩阵
只录有同行评审支撑的跨域结果(指标均为 Abs Rel,零样本迁移,协议与 §8.3 一致):
| 外部数据集 | 来源机构 | 评估任务 | 模型(域内 → 外部) | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| Hamlyn | Hamlyn Centre, Imperial College | 单目深度估计 | AF-SfMLearner:0.059 → 0.168 | +185% | 跨设备+跨物种域差导致显著退化(EndoDAC 对比表) |
| Hamlyn | 同上 | 单目深度估计 | EndoDAC:0.051 → 0.138 | +171% | 域适应方法同样无法弥合域差 |
| Hamlyn | 同上 | 单目深度估计 | Depth Anything(微调):0.058 → 0.170 | +193% | 基础模型微调后仍存在同等幅度退化 |
上表全部为零样本跨域迁移(SCARED 训练 → Hamlyn 测试),不含任何 Hamlyn 数据参与训练;数值取自同行评审论文的统一对比表,迁移退化幅度(约 2.7-2.9 倍)在三类代表性方法上高度一致,说明域差是系统性而非个别方法的缺陷。
§8 基准性能与生态
§8.1 排行榜
表 A:官方挑战排行(MAE,mm,越低越好;Test1 = dataset_8,Test2 = dataset_9)
| 团队/方法 | Test 1 | Test 2 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| Trevor Zeffiro(Rediminds,官方冠军) | 3.60 | 3.47 | 2019 | PSMNet + 高斯插值训练策略 | Zeffiro et al., 2019(见 Allan et al., 2021, arXiv:2101.01133) | 未公开 |
| J.C. Rosenthal(Fraunhofer HHI,官方亚军) | 3.44 | 4.05 | 2019 | 手工特征管线 + CNN 深度补全 | Rosenthal et al., 2019(见 Allan et al., 2021, arXiv:2101.01133) | 未公开 |
| D.P. 1(挑战后提交) | 3.00 | 1.67 | 2019 | 参见挑战论文 | Psychogyios, 2019(见 Allan et al., 2021) | 未公开 |
| Sebastian Schmid(挑战后提交) | — | 2.25 | 2019 | SIFT + PnP 视觉重建管线 | Schmid, 2019(见 Allan et al., 2021) | 未公开 |
| Congcong Wang | 4.10 | 4.28 | 2019 | 参见挑战论文 | Wang, 2019(见 Allan et al., 2021) | 未公开 |
| Wenyao Xia | 6.73 | 9.44 | 2019 | 参见挑战论文 | Xia, 2019(见 Allan et al., 2021) | 未公开 |
| STTR(跨域零样本参考) | 4.14 | 5.91 | 2021 | 立体 Transformer(未在 SCARED 微调) | Li et al., 2021, CVPRW(论文) | GitHub |
| HybridStereoNet | 3.31 | 2.35 | 2022 | 立体匹配 Transformer | Long et al., 2022, arXiv:2207.12152 | 见论文 |
注:冠军评定基于全部测试数据的总平均误差(亚军 Fraunhofer HHI 与冠军仅差 0.1 mm,HHI 新闻);部分挑战后提交方法在单测试集上数字更低,与挑战日方法不可简单排名。部分队伍 MAE 超过 20 mm(最高 48.72),说明任务难度显著。
表 B:自监督单目深度估计(社区协议:15,351/1,705/551 划分,median scaling,150 mm 截断)
| 模型 | Abs Rel ↓ | Sq Rel ↓ | RMSE ↓ | RMSE log ↓ | δ<1.25 ↑ | 年份 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|---|
| Monodepth2 | 0.069 | 0.577 | 5.546 | 0.094 | 0.948 | 2019 | Godard et al., 2019, ICCV | GitHub |
| SC-SfMLearner | 0.068 | 0.645 | 5.988 | 0.097 | 0.957 | 2019 | SC-SfMLearner, 2019(见 EndoDAC 对比表) | 未公开 |
| Endo-SfM | 0.062 | 0.606 | 5.726 | 0.093 | 0.957 | 2021 | Endo-SfM, 2021(见 EndoDAC 对比表) | 未公开 |
| AF-SfMLearner | 0.059 | 0.435 | 4.925 | 0.082 | 0.974 | 2022 | Shao et al., 2022, Medical Image Analysis | GitHub |
| IID-SfMLearner | 0.058 | 0.435 | 4.820 | 0.080 | 0.969 | 2024 | IID-SfMLearner, 2024, JBHI | 未公开 |
| Depth Anything(零样本) | 0.086 | 0.927 | 6.957 | 0.112 | 0.929 | 2024 | Yang et al., 2024, CVPR | GitHub |
| EndoDAC | 0.051 | 0.355 | 4.442 | 0.073 | 0.979 | 2024 | EndoDAC, 2024, MICCAI, arXiv:2405.08672 | 见论文 |
| 最新自监督方法 | 0.048 | 0.315 | 4.172 | 0.068 | 0.982 | 2024 | arXiv:2409.07723 | 见论文 |
(表 B 数字取自 EndoDAC 对比表与arXiv:2409.07723,各方法数值不可直接跨协议比较——见坑点 6。)
§8.2 SOTA 总结与选型建议
- 追榜单数字:自监督单目选 AF-SfMLearner(生态成熟、代码公开)或 EndoDAC(当前性能更强);复现时严格使用 15,351/1,705/551 划分。
- 工程落地:EndoDAC 训练参数仅 1.6M、推理 17.7 ms,适合边缘部署;Depth Anything 路线适合已有大模型基础设施的团队做微调。
- 双目/立体任务:HybridStereoNet 与 STTR 提供立体 Transformer 基线,注意需自行完成校正与视差生成(坑点 7)。
- 经典管线对照:MDPI Sensors 2025 的自适应支撑权立体匹配显示,调优后的经典方法在 keyframe MAE 上仍具竞争力,适合作为深度学习的 sanity check。
- 数据卡先行:任何基于 SCARED 的模型发布,建议随附数据卡声明训练划分、评测协议与域内/跨域结果分列,这已成为社区事实标准。
§8.3 评测协议
| 协议 | 指标 | 划分 | 关键细节 |
|---|---|---|---|
| 官方挑战协议 | MAE(mm),keyframe 等权平均 | 训练 dataset_1-7 / 测试 dataset_8-9 | 评测脚本随数据集发布;评测区域排除双目不可见像素 |
| 社区自监督协议 | Abs Rel / Sq Rel / RMSE / RMSE log / δ<1.25 | 15,351/1,705/551 帧 | median scaling 尺度对齐 + 150 mm 深度截断 |
| 立体匹配协议 | D1-error / MAE | 自行校正 + 点云投影视差(scale 128) | uint16 KITTI 格式存储 |
| 鲁棒性协议(SCARED-C) | mCE | 16 种损坏 × 5 级严重度 | 见 EndoDepth |
§8.4 相关数据集
| 数据集 | 年份 | 模态 | 真值类型 | 与 SCARED 关系 |
|---|---|---|---|---|
| SERV-CT | 2020 | 立体内窥镜(尸体) | CT 衍生视差 | 互补验证集(Edwards et al., 2020) |
| EndoSLAM | 2020 | 单目+立体 | SLAM 轨迹真值 | 位姿评测互补 |
| Hamlyn Centre 数据集 | 持续维护 | 单目腹腔镜(人体) | 稀疏/无稠密 | 最常用外部验证集 |
| JIGSAWS | 2014 | da Vinci 手术视频(人体) | 技能等级(GRS) | 任务互补:技能评估 vs 3D 感知 |
| SCARED-C | 2024 | SCARED 派生 | 16 损坏 × 5 严重度 | 鲁棒性评测专用 |
§8.5 关键论文 Top 8
- Allan, M., Mcleod, J., Wang, C., et al. “Stereo Correspondence and Reconstruction of Endoscopic Data Challenge.” arXiv:2101.01133, 2021. — 数据集与挑战的官方总结,含 13 个方法与已知缺陷披露。
- Long, X., et al. “Deep Laparoscopic Stereo Matching with Transformers.” arXiv:2207.12152, 2022. — 立体 Transformer 基线(HybridStereoNet)与重整理立体对划分。
- Shao, S., et al. “AF-SfMLearner: Anchor Feature-Based Self-supervised Learning for Depth and Egomotion Estimation.” Medical Image Analysis, 2022. — anchor 特征自监督,社区标准划分的源头之一。
- EndoDAC. MICCAI 2024, arXiv:2405.08672. — 域适应自监督 SOTA,提供最完整的跨域对比表。
- “EndoDepth: A Benchmark for Assessing Robustness in Endoscopic Depth Prediction.” arXiv:2409.19930, 2024. — 提出 SCARED-C 鲁棒性基准。
- Edwards, P.J.E., Psychogyios, D., Speidel, S., Maier-Hein, L., Stoyanov, D. “SERV-CT: a disparity dataset from CT for validation of endoscopic 3D reconstruction.” arXiv, 2020. — CT 视差真值验证集。
- Psychogyios, D., Mazomenos, E., Vasconcelos, F., Stoyanov, D. “MSDESIS: Multi-task stereo disparity estimation and surgical instrument segmentation.” IEEE Transactions on Medical Imaging, 2022. DOI: 10.1109/TMI.2022.3181229. — 多任务视差+器械分割,附带 SCARED 工具链。
- “Dense Depth Estimation from Stereo Endoscopy Videos Using Unsupervised Optical Flow Methods.” 2022(PMC9125693). — 无监督光流路线,与挑战冠军方法直接对比。
§8.6 社区活跃度
- 挑战期间数据集下载 54 次、10 支队伍提交(HHI 新闻)。
- 发布后成为内窥镜深度估计的事实标准基准:2021-2025 年间持续出现在 Medical Image Analysis、JBHI、MICCAI 等期刊会议的对比表中;sota2.com 等聚合站已收录 SCARED 单目深度子榜。
- 社区工具链活跃:scared_toolkit、MICCAI_challenge_preprocess、DeepPruner_SCARED 等预处理与提交代码仓库长期可访问。
- 入口建议:GitHub 搜索 “SCARED dataset” 可发现大量预处理与复现仓库,但数据本体始终以 grand-challenge 官方申请渠道为准,镜像与整理版仅作管线调试。
§8.7 生态快照
| 资源 | 类型 | 维护方 | 链接 | 推荐理由 |
|---|---|---|---|---|
| SCARED 挑战页 | 官方托管/申请入口 | Intuitive Surgical × MICCAI | grand-challenge | 唯一正式获取渠道与评测脚本来源 |
| scared_toolkit | 预处理工具(MIT) | Psychogyios et al.(UCL WEISS) | GitHub | 视差/深度/点云互转与插值真值生成 |
| MICCAI_challenge_preprocess | 预处理器 | 社区(EikoLoki) | GitHub | 官方数据卡推荐的深度图处理参考 |
| DeepPruner_SCARED | 挑战提交代码 | Psychogyios et al. | GitHub | 立体匹配预处理(校正+视差)完整流程 |
| AF-SfMLearner | 训练代码 | Shao et al. | GitHub | 自监督基线复现与划分文件来源 |
| sota2.com SCARED 榜单 | 聚合榜单 | 第三方 | sota2 | 快速浏览自监督子榜进展 |
§9 相关资源与引用
§9.1 官方资源列表
- 官方主页与申请入口:SCARED Challenge(grand-challenge.org) — 挑战介绍、规则、评测脚本与下载指引
- 挑战总结论文:Stereo Correspondence and Reconstruction of Endoscopic Data Challenge(arXiv:2101.01133)
- 社区预处理工具:scared_toolkit(视差/深度/点云互转)、MICCAI_challenge_preprocess(深度图处理)
- 社区训练代码:AF-SfMLearner(自监督基线与划分文件)
- 鲁棒性派生基准:EndoDepth / SCARED-C(arXiv:2409.19930)
§9.2 BibTeX 完整引用
@article{allan2021stereo,
title = {Stereo Correspondence and Reconstruction of Endoscopic Data Challenge},
author = {Allan, Max and Mcleod, Jonathan and Wang, Congcong and Rosenthal, Jean Claude
and Hu, Zhenglei and Gard, Niklas and Eisert, Peter and Fu, Ke Xue
and Zeffiro, Trevor and Xia, Wenyao and others},
journal = {arXiv preprint arXiv:2101.01133},
year = {2021}
}
@article{long2022deep,
title = {Deep Laparoscopic Stereo Matching with Transformers},
author = {Long, Xianpeng and others},
journal = {arXiv preprint arXiv:2207.12152},
year = {2022}
}
@article{shao2022af,
title = {AF-SfMLearner: Anchor Feature-Based Self-supervised Learning
for Depth and Egomotion Estimation},
author = {Shao, Shuwei and others},
journal = {Medical Image Analysis},
year = {2022}
}
@inproceedings{endodac2024,
title = {EndoDAC},
booktitle = {Medical Image Computing and Computer Assisted Intervention (MICCAI)},
year = {2024},
note = {arXiv:2405.08672}
}
@article{endodepth2024,
title = {EndoDepth: A Benchmark for Assessing Robustness in Endoscopic Depth Prediction},
author = {EndoDepth authors},
journal = {arXiv preprint arXiv:2409.19930},
year = {2024}
}
@article{edwards2020serv,
title = {SERV-CT: a disparity dataset from CT for validation of endoscopic 3D reconstruction},
author = {Edwards, P. J. Eddie and Psychogyios, Dimitrios and Speidel, Stefanie
and Maier-Hein, Lena and Stoyanov, Danail},
journal = {arXiv preprint arXiv:2012.12468},
year = {2020}
}
@article{psychogyios2022msdesis,
title = {MSDESIS: Multi-task stereo disparity estimation and surgical instrument segmentation},
author = {Psychogyios, Dimitrios and Mazomenos, Evangelos and Vasconcelos, Francisco
and Stoyanov, Danail},
journal = {IEEE Transactions on Medical Imaging},
year = {2022},
doi = {10.1109/TMI.2022.3181229}
}
@article{endoflow2022,
title = {Dense Depth Estimation from Stereo Endoscopy Videos
Using Unsupervised Optical Flow Methods},
author = {END-flow authors},
journal = {Sensors / PMC9125693},
year = {2022}
}
@inproceedings{godard2019digging,
title = {Digging into Self-Supervised Monocular Depth Estimation},
author = {Godard, Cl{\'e}ment and Mac Aodha, Oisin and Firman, Michael and Brostow, Gabriel J.},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year = {2019}
}
@inproceedings{yang2024depth,
title = {Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data},
author = {Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang
and Feng, Jiashi and Zhao, Hengshuang},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2024}
}
§9.3 引用指南
使用 SCARED 数据时请引用挑战总结论文(Allan et al., 2021, arXiv:2101.01133);若使用社区划分(15,351/1,705/551)请同时引用 AF-SfMLearner 或你所复现方法的论文,并在实验设置中注明划分与评测协议(median scaling、150 mm 截断);若使用社区预处理工具,请按工具仓库要求引用对应工具论文(如 MSDESIS);若使用 SCARED-C 鲁棒性基准,请引用 EndoDepth 论文(arXiv:2409.19930)。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 | 版本 |
|---|---|---|
| 大语言模型(CodeBuddy Code 内置模型) | 资料汇总、结构化撰写与代码示例生成 | 2026-09 版 |
§10.2 AI 参与范围
AI 负责初稿撰写:按统一模板组织章节、汇总检索事实、生成代码示例与表格。全部事实数字来自 §10.3 所列公开来源并经交叉核对;未能核实的字段(如官方引用计数、数据集 DOI)按规范整行省略而非填充。
§10.3 输入来源列表
- Allan, M., et al. “Stereo Correspondence and Reconstruction of Endoscopic Data Challenge.” arXiv:2101.01133, 2021.
- SCARED Challenge 官方主页, grand-challenge.org, https://endovissub2019-scared.grand-challenge.org/
- Fraunhofer HHI. “Fraunhofer HHI wins second place at EndoVis 2019 challenge SCARED.” 2019, hhi.fraunhofer.de
- OpenMedLab. “SCARED.” Awesome-Medical-Dataset, GitHub, 2024(数据卡,含 280 GB、申请流程与文件级说明)
- DeepWiki. “SCARED Dataset(M3Depth 文档).” deepwiki.com, 2025
- Jujimeizuo. “SCARED 数据集笔记.” note.jujimeizuo.cn(目录树与结构光精度社区资料)
- EndoDAC. MICCAI 2024, arXiv:2405.08672(自监督对比表与跨域数字)
- “自监督深度估计方法(SCARED 协议).” arXiv:2409.07723, 2024(15,351/1,705/551 划分与最新数字)
- Long, X., et al. “Deep Laparoscopic Stereo Matching with Transformers.” arXiv:2207.12152, 2022(官方挑战数字表与立体对划分)
- “EndoDepth: A Benchmark for Assessing Robustness in Endoscopic Depth Prediction.” arXiv:2409.19930, 2024(SCARED-C 与 35 段视频、划分数字)
- “Adaptive Support Weight-Based Stereo Matching with Iterative Disparity Refinement.” Sensors 25(13):4124, MDPI, 2025(数据集已知缺陷系统复核)
- HuggingFace Datasets. “maxhallan7/scared.”(官方 README 转载:文件说明与真值免责声明)
- Psychogyios, D., et al. “scared_toolkit.” GitHub, MIT License(数据约定与无效值处理)
- Psychogyios, D., et al. “DeepPruner_SCARED.” GitHub(立体匹配预处理流程与 scale 因子约定)
- Shao, S., et al. “AF-SfMLearner.” GitHub(数据获取途径与划分说明)
- “Dense Depth Estimation from Stereo Endoscopy Videos Using Unsupervised Optical Flow Methods.” PMC9125693, 2022(与挑战冠军的对比数字)
- Tomesphere. “Stereo Correspondence and Reconstruction of Endoscopic Data Challenge.”(挑战成绩表全文)
- SOTA2. “Monocular Depth Estimation on SCARED.” sota2.com(聚合榜单)
- BMC Surgery, 2025(SCARED 帧划分 20,924/4,721/1,186 的使用例证)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射) | 千方病案医学编辑部 | 逐项对照 ICD-11/SNOMED CT 术语库复核 | ✅ 已通过/已验证 |
| §4 数据结构(目录树/字段字典) | 千方病案医学编辑部(数据工程) | 与官方数据卡及社区工具文档逐字段核对 | ✅ 已通过/已验证 |
| §5 数据划分 | 千方病案医学编辑部(数据工程) | 划分数字溯源至原始论文 | ✅ 已通过/已验证 |
| §6 预处理与坑点 | 千方病案医学编辑部(数据工程) | 坑点逐条溯源至官方文档/论文/仓库 | ✅ 已通过/已验证 |
| §8 基准数字 | 千方病案医学编辑部 | 全部数字与原始对比表二次核对 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本条目各章节初稿由 AI 依据 §10.3 来源生成,经 §10.4 所列人工校验后发布;代码示例基于社区公开工具链整理,已在 §0 技术免责声明中说明适用性边界。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- SLAM-3D-Endoscopic — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- jigsaws — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- m2cai16-tool — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- multibypass140 — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- hamlyn-datasets — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- c3vd — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- endoslam — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- endomapper — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- misaw — 共享标签:医学影像 / 内窥镜影像 / 手术视频
- cad-cap — 共享标签:医学影像 / 内窥镜影像 / 手术视频
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
