信息速览

MISAW — 显微吻合手术工作流识别数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | MISAW(MIcro-Surgical Anastomose Workflow recognition on training sessions) |
| 英文全称 | MIcro-Surgical Anastomose Workflow recognition on training sessions |
| 别名/简称 | MISAW27、MISAW challenge、MISAW data set |
| 疾病分类 | 非疾病数据集——手术操作与技能评估类(SNOMED CT:426511000 显微血管吻合术;典型临床场景为肢体/指体离断再植与游离组织瓣血管化移植,详见 §2.1) |
| SNOMED CT | 426511000 Microvascular vessel anastomosis / 428606004 Revision of microvascular anastomosis of blood vessel / 1197481000 Reconstruction using free skin flap with microvascular anastomosis |
| 数据模态 | 立体显微手术视频(920×540 像素,30 Hz)+ 主从机器人器械运动学(每臂 6 维位姿 + 夹持状态,30 Hz)+ 三层工作流标注 |
| AI 任务类型 | 手术工作流识别(phase/step/activity 三粒度)、多粒度联合识别、多模态融合(视频+运动学)、剩余手术时间预测、手术技能评估 |
| 样本总数 | 27 个显微吻合序列(训练 17 / 测试 10;6 名受试者:3 名外科医生 + 3 名工科学生) |
| 数据大小 | 官方未公布总量(Synapse 平台以 9 个数据文件提供) |
| 数据格式 | 视频文件 + 运动学/工作流标注表格文件(Synapse 打包下载) |
| 许可证 | 数据集未随论文单独声明许可;挑战报告论文以 CC BY-NC 4.0(HAL 存档)与 CC BY-NC-SA 4.0(arXiv)发布;数据获取遵循 Synapse 平台条款 |
| 访问级别 | 注册后开放(Synapse 账号;平台页面对部分地区存在访问限制) |
| DUO 标签 | GRU(通用研究使用;人造血管训练数据,不含患者临床信息) |
| 语言 | 英文(文档与标注词汇) |
| 首发日期 | 2020(MICCAI 2020 挑战赛发布)/ 2021-03(挑战报告论文提交) |
| 最后更新 | 2021-11(HAL 开放存档 hal-03414465 v1) |
| 发布机构 | Univ Rennes, INSERM, LTSI - UMR 1099(法国雷恩,组织方)& 东京大学(日本东京,数据采集) |
| 官方主页 | https://www.synapse.org/MISAW |
| 下载地址 | https://www.synapse.org/MISAW |
| DOI | 10.1016/j.cmpb.2021.106452(挑战报告论文) |
| 引用次数 | 54(Semantic Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方训练/测试划分与评测协议(AD-Accuracy + ChallengeR)齐备;扣分项:无官方数据加载器需自行解析格式、4 个序列存在运动学时间步缺失、grip 通道数值约定存在可疑记录 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(显微血管吻合手术流程与技能评估、SNOMED CT 操作映射、金标准标注描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(三层粒度标注结构、运动学字段体系)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与雷恩大学、INSERM、东京大学、Sage Bionetworks(Synapse 平台)无任何商业利益关联。本页面不销售 MISAW 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MISAW 数据集托管于 Synapse 平台(synapse.org/MISAW),需要注册 Synapse 账号后获取;数据集论文未单独声明数据许可条款,论文文本以 CC BY-NC 4.0 / CC BY-NC-SA 4.0 发布。本数据集不含患者隐私信息,但 DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? MISAW 是全球第一个专门面向**显微外科吻合(microsurgical anastomosis)**的手术工作流识别公开数据集。它包含 27 个手术序列——由 3 名外科医生和 3 名工科学生在人造血管上完成显微吻合训练——每个序列同时提供立体显微镜视频和机器人器械运动学数据,两者以 30 Hz 严格同步,并配有三层粒度(phase → step → activity)的手术工作流逐帧标注。
为什么重要? 显微吻合是再植外科、游离皮瓣移植等显微外科手术的"命门"操作,缝合质量直接决定血管通畅率。但在 MISAW 之前,手术工作流识别研究几乎全部集中在腹腔镜和机器人腔镜领域(如 JIGSAWS、CholecT50),没有任何公开数据集覆盖"显微镜下的毫米级操作"。MISAW 首次把"视频 + 运动学 + 三层语义标注"三要素带进显微外科,并通过 MICCAI 2020 挑战赛给出了统一评测协议。
我能用它做什么? 你可以训练并评测手术工作流识别模型:识别手术处于哪个阶段(phase,如 Suturing/Knot Tying)、哪个步骤(step,如 1° knot),或者更细的动作-目标-器械组合(activity,如 Pass through + Needle);可以做视频与运动学的多模态融合研究;也可以将其作为手术技能自动评估的基线资源。官方最好成绩:phase 识别 96.53%、step 84.02%,但 activity 识别仅约 60%——这个"粒度-精度悬崖"本身就是该数据集最有价值的研究信号。
§1.1 技术摘要
MISAW 由法国雷恩大学 INSERM LTSI - UMR 1099 实验室(Pierre Jannin 团队)组织,作为 MICCAI 2020 挑战赛 “MIcro-Surgical Anastomose Workflow recognition on training sessions” 的配套数据集发布,挑战报告论文发表于 Computer Methods and Programs in Biomedicine(2021, 212: 106452)。数据采集由东京大学机械工程系完成:6 名受试者(3 名外科医生、3 名工科学生)在主从机器人平台上对人造血管执行显微吻合,高清立体显微镜(原始 960×540 像素)与双臂编码器运动学以 30 Hz 同步采集,立体图像去除中心 40 像素后拼接为 920×540 像素单流视频。
工作流标注遵循手术过程模型(Surgical Process Model, SPM)方法论,词汇表包含 2 个 phase、6 个 step、10 个动作动词、9 个目标和 1 种器械(持针器),由双人独立标注加协调协议生成。挑战赛设 4 个任务(phase / step / activity / 多粒度联合),以考虑类别不均衡与转换延迟容忍(d = 500 ms)的 AD-Accuracy 为官方指标,6 支队伍参赛,最佳模型在 phase 粒度达到 96.53% AD-Accuracy。
§1.2 战略价值
维度一:填补显微外科工作流数据的空白。 在 MISAW 出现之前,公开手术工作流数据集几乎清一色是腔镜视角(腹腔镜或 da Vinci 体内镜),视野大、器械粗、动作以秒计。显微外科则完全不同:术野以毫米计、器械以 0.1 mm 级移动、单个缝合动作需要数秒到数十秒精细操控。MISAW 提供的 30 Hz 双模态同步数据,使运动学分析中的 surgeme/dexeme 方法论首次能在显微尺度上被验证。对于研究"细粒度动作识别""机器人辅助显微操作感知"的团队,这是目前几乎唯一的公开选择。
维度二:三层粒度 + 多模态的组合设计使它成为方法论试验场。 同一批序列同时具备 phase/step/activity 三层标注和视频/运动学两种模态,天然支持四类研究问题:单粒度识别的上限在哪里、多粒度联合建模是否互益(挑战赛结论:phase/step 上 RNN 单粒度更优、activity 上多粒度占优)、运动学与视频哪种模态更鲁棒、以及转换点容差式评测(AD-Accuracy)对临床相关性的意义。对多模态学习、时序动作检测(temporal action detection)、手术过程建模三个社区都有直接引用价值。
维度三:官方评测协议的规范性。 挑战赛发布了固定的 17/10 划分、测试集标注 withheld、AD-Accuracy 指标定义与 ChallengeR 排名聚合脚本,这在小样本手术数据集中并不多见。对需要"可复现、可对齐文献"的研究者,MISAW 的协议透明度显著降低了基线复现成本。
§1.3 同类数据集横向对比
| 数据集 | 视野/场景 | 样本规模 | 模态 | 标注粒度 | 与 MISAW 的差异化 |
|---|---|---|---|---|---|
| MISAW | 显微镜下显微吻合(人造血管) | 27 序列(17/10 划分) | 立体显微视频(920×540 @ 30 Hz)+ 双臂运动学 | phase(2)/ step(6)/ activity(动词×目标×器械)三层 | 唯一显微尺度;三层粒度+双模态;技能跨度(专家 vs 学生)天然内嵌 |
| JIGSAWS | da Vinci 体外模拟(缝合/打结/穿针) | 103 段试验(39/36/28) | 立体内镜视频(640×480 @ 30 Hz)+ 76 维运动学 | surgeme 手势逐帧 + 技能评分 | 微创腔镜尺度;受试者与任务更多;运动学维度更丰富 |
| CholecT50 | 真实腹腔镜胆囊切除 | 50 段视频(约 100,900 帧) | 内镜视频(1 fps 帧) | 动作三元组(器械-动词-目标)约 151,000 实例 | 真实手术而非训练会话;纯视频模态;三元组语义与 MISAW activity 相近但无运动学 |
| AutoLaparo | 真实腹腔镜妇科手术 | 21 台手术(83,243 帧标注) | 腹腔镜视频(1920×1080 @ 25 fps) | 逐帧 phase + 运动 clip + 分割 | 真实大术野;只覆盖 phase 粒度 |
| SAR-RARP50 | da Vinci Si 前列腺切除 | 50 段视频(40/10 划分) | 体内内镜视频 + 器械分割 + 手势 | 8 类手势 + 9 类分割 | 真实机器人手术;关注分割与手势而非三层工作流语义 |
| MultiBypass140 | 真实腹腔镜胃旁路 | 140 台手术(约 770,701 标注帧) | 腹腔镜视频(25 fps) | phase/step + 术中不良事件 | 规模最大、含不良事件;无运动学、粒度仅到 step |
注:表中 MISAW 数字来自挑战报告论文;其他数据集数字摘自千方病案医数集各条目已核实信息。各数据集的任务定义、评测协议与转换点容差不同,规模数字不可直接横向比较。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2020 | MISAW 挑战赛发布 | 作为 MICCAI 2020 挑战赛配套数据集在 Synapse 平台(synapse.org/MISAW)公开发布,含 27 序列与三层标注;挑战期间测试集视频与运动学提前公开 |
| 2021-03-24 | arXiv 挑战报告 | Huaulmé 等提交 MICCAI 2020 challenge report(arXiv:2103.13111,36 页含补充材料),详述数据集、协议与全部参赛结果 |
| 2021-11 | 期刊正式版 + HAL 存档 | Computer Methods and Programs in Biomedicine(212: 106452)正式发表;HAL 开放存档 hal-03414465 v1(2021-11-10) |
数据集自 2020 年发布以来以单一版本形式在 Synapse 维护,官方未公布增量版本记录。
§1.5 典型应用场景
- 手术阶段与步骤实时识别:训练视频或运动学模型在显微吻合操作中识别当前 phase/step,用于剩余手术时间预测与手术室资源调度——官方结论认为 phase/step 粒度的识别率(>95% / >80%)已达到支撑此类应用的水平。
- 视频-运动学多模态融合方法研究:27 个严格同步的 30 Hz 双模态序列是验证早期融合、晚期融合、跨模态注意力等方法论的小而精试验场。
- 细粒度活动识别瓶颈分析:activity 粒度最好成绩仅约 60%,为"语义组合爆炸""长尾动作"等时序动作识别难题提供真实的显微外科案例。
- 手术技能自动评估基线:数据集内嵌 11 段专家序列与 16 段新手序列(外科医生 vs 工科学生),可用于验证"从工作流时序自动推断技能水平"的方法论。
- 手术过程模型(SPM)教学与形式化验证:三层词汇表与 SPM 方法论对应清晰,适合作为手术过程建模课程的标注规范实例。
§2 医学背景
§2.1 手术操作编码与术语映射
MISAW 是手术操作与技能评估类数据集,不承载患者疾病诊断,因此没有直接的 ICD-11 诊断编码轴。显微血管吻合作为操作概念,其规范术语主要由 SNOMED CT 手术操作层级承载;ICD-11 侧仅在临床适应证层面相关(肢体/指体离断再植、游离组织移植修复等分属 ICD-11 损伤与体被系统相关章节,各国手术操作分类体系如澳大利亚 MBS 对该操作有独立条目)。下表给出本数据集涉及的已核实术语映射:
| 标签/概念 | SNOMED CT 编码 | SNOMED CT 术语 | 说明 |
|---|---|---|---|
| 核心操作 | 426511000 | Microvascular vessel anastomosis(显微血管吻合术) | 数据集 27 个序列训练的核心技能;父类为 Anastomosis of blood vessel |
| 修复场景 | 428606004 | Revision of microvascular anastomosis of blood vessel(显微血管吻合口修整) | 吻合失败后再处理的真实临床对应操作 |
| 重建场景 | 1197481000 | Reconstruction using free skin flap with microvascular anastomosis(游离皮瓣显微血管吻合重建) | 游离皮瓣移植中血管化重建的典型应用 |
| 临床计费参照 | 澳大利亚 MBS 45501 / 45502 | Microvascular anastomosis of artery or vein(离断肢/指再植或血运重建场景) | 各国操作分类对显微吻合的独立编码示例,用于说明 ICD-11 诊断轴之外的编码生态 |
注:SNOMED CT 编码取自 BioPortal 在线术语服务(US Edition,UMLS 2025AB),MBS 条目取自澳大利亚官方收费目录公开文本;均于 2026-09 核实。
§2.2 显微血管吻合手术简介
显微血管吻合(microvascular anastomosis)是在手术显微镜下,使用显微持针器、显微缝线(通常 9-0 至 11-0 尼龙线)对直径 0.5-3 mm 级的小口径血管进行端端或端侧缝合、恢复血流通路的操作技术。它是再植外科(断肢/断指再植)、游离组织瓣移植(游离皮瓣、游离肌瓣)、部分脑血管搭桥与生殖医学显微操作的核心支撑技术。吻合口一旦形成血栓导致血流不通,整个再植物或移植瓣即告失活,因此吻合质量被普遍视为显微外科手术成败的关键环节。
显微吻合对操作者的手部震颤控制、深度感知与动作经济性要求极高:显微镜视野下 0.1 mm 级的进针偏差即可造成内膜损伤与吻合口狭窄。正因如此,显微吻合训练高度依赖人造血管(silicone/rubber phantom)练习与导师评定,MISAW 的数据采集设计(3 名外科医生 + 3 名工科学生在人造血管上吻合)正是这一真实训练范式的数字化映射。主从机器人平台在该领域的价值在于滤除手部生理性震颤、按比例缩放运动幅度——这也是数据集中运动学模态与技能水平之间存在强关联的生理基础。
训练会话的流程结构:一次人造血管吻合训练会话由"缝合"与"打结"两大阶段交替构成——操作者先持针器驱针穿过人造血管壁完成若干针缝合(Suturing 相位),随后牵引缝线打结固定(Knot Tying 相位),再进入下一针,循环往复直至完成整圈吻合。MISAW 的 6 个 step 词汇正是对这一循环的形式化拆解:Needle holding(持针调整)、Suture making(实施缝合)、Suture handling(缝线整理)覆盖 Suturing 相位;1° knot、2° knot、3° knot(第一/二/三个结)覆盖 Knot Tying 相位。理解这个"缝合-打结"循环对建模有直接意义:转换点在语义上高度规律,序列模型可利用相邻步骤的先验转移结构。
activity 层为何把"线"当目标:9 个 target 词汇中有一半(Wire、Long wire strand、Short wire strand、Wire loop、Knot)描述的是缝线自身的状态而非血管,这是显微吻合动作语义的真实反映——操作者的多数精细动作对象是 9-0/11-0 级缝线(绕线、放线、收紧线环),而血管(Left/Right artificial vessel、Both artificial vessel)主要作为进针目标出现。这种"动词 × 目标"的组合式标注(10 × 9 组合 + Idle)使 activity 层能够表达 phase/step 无法区分的精细操作差异,代价是组合空间天然长尾(见 §7.1 标签不均衡偏倚)。
由于 MISAW 是训练数据集,本节不涉及疾病流行病学统计;数据集本身不含任何患者数据。
§2.3 临床任务定义
MISAW 对应的临床 AI 任务是手术工作流识别(surgical workflow recognition),即从手术视频和/或器械运动学流中自动推断手术进行到哪一步。其临床价值链条为:
| 任务 | 输入 | 输出 | 临床意义 |
|---|---|---|---|
| Phase 识别 | 视频/运动学流 | 3 类(Suturing、Knot Tying、Idle) | 粗粒度进程感知:剩余手术时间预测、手术室排程与资源管理 |
| Step 识别 | 视频/运动学流 | 7 类(6 个手术步骤 + Idle) | 中粒度目标追踪:当前缝合目标(进针、绕线、第 N 个结)的自动记录 |
| Activity 识别 | 视频/运动学流 | 左右臂各 verb/target/instrument 三分量 | 细粒度动作语义:动作-目标-器械三元组(如 Pass through + Needle + Needle holder),是技能评估与术中预警的底层信号 |
| 多粒度联合识别 | 视频/运动学流 | 上述全部输出 | 单模型多粒度推理:挑战赛验证其对 activity 粒度有增益(前三名中 3 个为多粒度模型) |
与"诊断类"AI 任务不同,工作流识别的风险等级较低(不直接输出诊疗决策),但识别结果若用于手术进度控制或技能考核,错误识别仍可能引发流程性风险,因此官方采用带转换点容差的 AD-Accuracy 而非逐帧精度作为指标。
§2.4 受试者人群表
MISAW 不含患者。数据采集的受试者构成如下:
| 属性 | 外科医生组 | 工科学生组 | 说明 |
|---|---|---|---|
| 人数 | 3 | 3 | 共 6 名受试者 |
| 序列贡献 | 共 11 段(每人 3-4 段) | 共 16 段(每人 4-6 段) | 每人 3-6 段,总计 27 段 |
| 官方标识 | Surgeon 1-3 | Student 1-3 | 序列编号形式为 {受试者}_{序号},如 4_1-4_4 |
| 测试集归属 | Surgeon 1(4 段,4_1-4_4)全部进入测试集 | Student 3(6 段,5_1-5_6)全部进入测试集 | 按受试者整组划分,防止同受试者跨集泄漏 |
| 操作场景 | 人造血管显微吻合训练会话 | 人造血管显微吻合训练会话 | 非真实患者手术 |
该构成使数据集天然包含"专家-新手"技能梯度,这是它区别于同类腔镜数据集(受试者多为同质化住院医师)的重要特征;同时也带来 §7 所述的专业水平分布不均衡偏倚。
§2.5 临床价值
对手术培训:显微吻合的学习曲线陡峭且传统上依赖导师逐台目视评定。若工作流识别与运动学分析能自动还原"何时进针、何时绕线、打了第几个结、每个动作耗时多少",训练反馈即可从主观叙述升级为量化报告。MISAW 的三层标注正是把这种评定需求形式化为机器学习任务。
对手术室管理:官方挑战报告明确指出,phase/step 粒度 95%+ / 80%+ 的识别率"可能足以支撑剩余手术时间预测或资源管理类应用"。虽然该结论出自人造血管训练场景,向真实手术室外推需谨慎,但它给出了工作流识别走向临床辅助的第一级证据。
对机器人显微手术:数据集的运动学模态直接来自主从机器人编码器,与机器人辅助显微手术(如震颤滤除、运动缩放)的控制回路同源。研究"机器人能否根据自动识别的当前动作提供自适应辅助"(如动作预测、半自主缝合),MISAW 是合理的首个验证平台。
§2.6 标注金标准描述
| 属性 | 描述 |
|---|---|
| 标注对象 | 27 个序列的完整时长,按 30 Hz 帧索引切分时间区间 |
| 标注层级 | phase(2 个手术相位 + Idle)/ step(6 个手术步骤 + Idle)/ activity(10 动作动词 × 9 目标 × 1 器械的组合 + Idle) |
| 标注方式 | 人工观察标注;采用双人独立标注 + 协调协议(reconciliation)生成最终标注 |
| 标注者资质 | 论文未公布标注者临床资历明细;标注依赖观察者对显微吻合过程的判读,属观察者依赖型标注 |
| 标注性质 | 时间区间型逐帧语义标签(非边界框、非分割掩码) |
| 官方词汇表 | 2 phase、6 step、10 动作动词、9 目标、1 种器械(Needle holder) |
| 质量控制 | 双人独立 + 协调;论文将标注的观察者依赖列为已知误差来源之一 |
§3 数据集规格
§3.0 版本抉择矩阵
MISAW 在 Synapse 平台以单一版本发布(官方未公布增量版本记录)。按使用需求选择获取方式:
| 你的需求 | 推荐获取方式 | 大小/成本 | 理由 |
|---|---|---|---|
| 复现挑战赛基准、与文献对比 | Synapse 官方发布 + 官方 17/10 划分 | 免费(注册 Synapse) | 只有官方发布版本带完整三层标注与固定划分,可对齐 AD-Accuracy 报告值 |
| 多模态方法学研究(视频+运动学) | Synapse 官方发布(完整 9 个文件) | 免费(注册 Synapse) | 运动学模态仅在官方完整包中,第三方镜像可能缺运动学文件 |
| 快速教学演示 | OpenDataLab 等第三方镜像页 | 免费 | 获取摩擦最低,但文件完整性需自行核对,且不可用于正式对齐挑战协议的评测 |
§3.1 模态详情
模态一:立体显微手术视频。 由高清立体显微镜在显微吻合操作视野采集,原始立体像对为 960×540 像素;发布版本将立体图像中心各去除 40 像素后,以左右两幅 460×540 像素图像水平拼接为 920×540 像素的单流视频。同步时钟为 30 Hz。视频承载术野视觉信息(缝合线张力、针道、组织反光),是 activity 粒度语义(动词-目标-器械)的主要来源。
模态二:器械运动学。 由主从机器人平台两条机械臂的编码器记录,与视频同以 30 Hz 同步。每臂包含 6 维位姿(x, y, z, α, β, γ 平移与旋转分量)以及夹持(grip)值与夹持输出电压(grip output voltage)。按论文给出的公式,左右器械可分别计算齐次变换矩阵。grip 数值约定为 0 = open、-6 = close,但部分试验中记录值可能低于 -6(官方声明的数据质量误差来源,见 §6.5 坑点 5)。
模态三:工作流标注。 三层粒度的时间区间标签(详见 §3.5),以文本表格形式随视频与运动学同步发布。
§3.2 按子集样本数表
| 子集 | 受试者 | 序列数 | 编号 | 官方用途 |
|---|---|---|---|---|
| 训练集 | Surgeon 2 | 3 | 2_1-2_3 | 模型训练 |
| 训练集 | Surgeon 3 | 4 | 3_1-3_4 | 模型训练 |
| 训练集 | Student 1 | 6 | 1_1-1_6 | 模型训练 |
| 训练集 | Student 2 | 4 | 6_1-6_4 | 模型训练 |
| 测试集 | Surgeon 1 | 4 | 4_1-4_4 | 官方评测(标注 withheld) |
| 测试集 | Student 3 | 6 | 5_1-5_6 | 官方评测(标注 withheld) |
| 合计 | 6 名受试者 | 27 | — | 训练 17 / 测试 10 |
受试者编号、序列编号与划分的对应关系取自挑战报告 Table 1;挑战期间测试集的 workflow 标注未提供给参赛者。
§3.3 数据格式表
| 数据组件 | 形态 | 同步时钟 | 说明 |
|---|---|---|---|
| 立体显微视频 | 920×540 像素单流视频(左右立体像对拼接) | 30 Hz | 原始 960×540,中心去除 40 像素后拼接 |
| 运动学数据 | 表格文件:每行一个 30 Hz 采样,含双臂位姿与夹持 | 30 Hz | 每臂 x/y/z/α/β/γ + grip + grip 输出电压 |
| 工作流标注 | 表格文件:phase/step/activity 三层时间区间 | 30 Hz 帧索引 | 词汇表 2 phase / 6 step / 10 verb × 9 target × 1 instrument |
| 打包方式 | Synapse 平台 9 个数据文件 | — | 具体文件命名与目录组织以 Synapse 下载的实际发布为准 |
§3.4 存储大小
官方挑战报告与 Synapse 页面信息中未公布数据集总体积数字;平台以 9 个数据文件提供下载(挑战期间累计 325 次下载、24 名注册个人参与者)。为 27 个序列的 30 Hz 双模态数据预留数十 GB 级磁盘空间并按实际下载核对是稳妥做法;本页不给出未经核实的具体体积数字。
§3.5 标注方式
标注为人工标注(manual annotation),遵循手术过程模型方法论:
| 粒度 | 词汇表 | 识别任务类别数 | 示例 |
|---|---|---|---|
| Phase(相位) | 2 类:Suturing、Knot Tying | 3 类(含 Idle) | Knot Tying |
| Step(步骤) | 6 类:Needle holding、Suture making、Suture handling、1° knot、2° knot、3° knot | 7 类(含 Idle) | 2° knot |
| Activity(活动) | 10 动作动词 × 9 目标 × 1 器械(Needle holder) | verb 11 类 / target 10 类 / instrument 2 类(各含 Idle),左右臂各 3 分量共 6 分量 | Pass through + Needle + Needle holder |
动作动词 10 个:Catch、Give slack、Hold、Insert、Loosen completely、Loosen partially、Make a loop、Pass through、Position、Pull。目标 9 个:Needle、Wire、Both artificial vessel、Left artificial vessel、Right artificial vessel、Long wire strand、Short wire strand、Wire loop、Knot。
§3.6 标注者资质与一致性
标注采用双人独立标注 + 协调协议(reconciliation):
- 独立标注:两名标注者各自完整观看视频并标注 phase/step/activity 三层时间区间,互不可见对方结果;
- 差异协调:对两人标注不一致的区间进行协商,生成最终发布的统一标注;
- 一致性量化缺位:标注者的临床资历明细与量化一致性指标(如 Kappa)未在论文中公布,使用者无法定量评估边界帧可靠性;
- 官方自知:论文将人工标注的观察者依赖明确列为已知误差来源,并通过 AD-Accuracy 的 500 ms 转换点容差在评测层吸收这一模糊性。
对使用者的两点推论:其一,工作流转换点是连续操作中的语义切分,两名专家对"打结从哪一帧开始"可能有数百毫秒分歧,评测若用逐帧严格精度会把这个固有模糊性记成模型错误;其二,在自建受试者级验证时,若发现模型误差集中于转换点附近 ±0.5 s 窗口,应优先怀疑标注边界噪声而非模型能力——这正是 challenge 协议设计想隔离的误差来源。
§3.7 采集周期
27 个训练会话在 MICCAI 2020 挑战赛发布前于东京大学采集完成;论文未公布精确的采集起止日期。挑战赛数据发布于 2020 年,报告论文发表于 2021 年。
§3.8 地域覆盖
数据采集地为日本东京(东京大学机械工程系主从机器人平台);标注与挑战赛组织地为法国雷恩(雷恩大学 INSERM LTSI - UMR 1099);参赛机构分布法国、土耳其、中国香港、新加坡、中国深圳、日本、哥伦比亚、德国。数据内容为实验室 phantom 场景,不含真实医院地理信息。
§3.9 设备规格
| 设备 | 规格 | 作用 |
|---|---|---|
| 高清立体显微镜 | 原始像对 960×540 像素(发布版拼接为 920×540) | 术野立体视频采集 |
| 主从机器人平台 | 双机械臂,编码器记录,东京大学机械工程系平台(Mitsuishi 等,Int J Med Robot Comput Assist Surg 9(2):180-189, 2013) | 器械位姿与夹持运动学采集 |
| 器械 | 持针器(Needle holder,词汇表唯一器械) | 显微缝合操作 |
| 操作对象 | 人造血管(artificial blood vessels / vascular grafts) | 显微吻合训练介质 |
§3.10 深度溯源链
原始采集(东京大学机器人平台 + 立体显微镜,30 Hz 同步)→ 双人独立标注 + 协调(雷恩大学 LTSI,三层工作流词汇表)→ 挑战赛打包发布(Synapse 平台,9 个文件,2020)→ 挑战报告论文(arXiv:2103.13111,2021-03)→ 期刊同行评审版本(Comput Methods Programs Biomed 212:106452,2021)→ HAL 开放存档(hal-03414465 v1,2021-11-10)。每个环节均可通过公开链接追溯,评测脚本(ChallengeR 聚合排名)与组织者评估流程在平台公开。
§4 数据结构
§4.0 目录树
以下为数据集逻辑组织结构(依据挑战报告论文描述抽象;实际文件命名与打包层级以 Synapse 下载的官方发布为准):
MISAW/
├── training_data/ # 官方训练集:17 个序列
│ ├── 1_1/ # 序列目录:{受试者编号}_{序号}
│ │ ├── video/ # 立体显微视频(920×540 @ 30 Hz)
│ │ ├── kinematics/ # 双臂运动学(30 Hz:位姿 + 夹持 + 电压)
│ │ └── workflow/ # phase / step / activity 三层标注
│ ├── 1_2/ ... 1_6/
│ ├── 2_1/ ... 2_3/
│ ├── 3_1/ ... 3_4/
│ └── 6_1/ ... 6_4/
├── test_data/ # 官方测试集:10 个序列
│ ├── 4_1/ ... 4_4/ # Surgeon 1(视频 + 运动学;标注不公开)
│ └── 5_1/ ... 5_6/ # Student 3(视频 + 运动学;标注不公开)
└── evaluation/ # 挑战评测相关材料(AD-Accuracy / ChallengeR)
加载代码应按 {data_root}/{split}/{sequence_id}/ 拼接路径(见 §6.1、§6.4)。
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| sequence_id | Text | 序列唯一标识,{受试者}_ | 4_2 | 样本键、划分索引 | 无 | 无 | 1_1 至 6_6 中 27 个 |
| subject_id | Text | 受试者伪匿名标识 | Surgeon 1 | 技能分组、按受试者划分 | 无 | 无 | Surgeon 1-3 / Student 1-3 |
| split | Text | 官方划分 | train | 复现官方基准 | 无 | 无 | train / test |
| video_frame | ImageObject | 30 Hz 立体拼接视频帧 | 920×540 RGB | 视觉特征提取 | 立体拼接引入左右图像边界伪影 | 无 | 30 Hz 帧序列 |
| pose_x/y/z | Float | 器械平移位姿(每臂 3 列) | x = 12.4 | 运动特征、动作识别 | 编码器量化误差;部分序列缺时间步 | 缺行(见 §4.5) | 连续值,随平台坐标系 |
| pose_α/β/γ | Float | 器械旋转位姿(每臂 3 列) | β = 0.87 | 手腕动作建模 | 欧拉角表示存在万向节歧义 | 缺行(见 §4.5) | 连续值 |
| grip | Float | 夹持状态 | -3.2 | 抓放事件检测 | 官方声明数值可能低于 -6 约定下限 | 无 | 约定 0(open)至 -6(close),实际记录可能越界 |
| grip_voltage | Float | 夹持输出电压 | 1.85 | 原始传感器对照 | 传感器噪声 | 无 | 连续值 |
| phase_label | Label | 相位标签 | Knot Tying | Task 1 训练 | 转换边界依赖标注者判读 | 无 | Suturing / Knot Tying / Idle |
| step_label | Label | 步骤标签 | 2° knot | Task 2 训练 | 同上 | 无 | 6 步骤 + Idle |
| activity_verb | Label | 动作动词(每臂) | Pass through | Task 3 训练 | verb-target 组合长尾 | 无 | 10 动词 + Idle |
| activity_target | Label | 操作目标(每臂) | Needle | Task 3 训练 | 目标从视频语义判定 | 无 | 9 目标 + Idle |
| activity_instrument | Label | 器械(每臂) | Needle holder | Task 3 训练 | 词汇表仅 1 种器械,判别意义有限 | 无 | Needle holder / Idle |
| frame_index | Integer | 30 Hz 帧索引 | 4,521 | 标注区间对齐 | 缺失时间步导致索引跳变 | 无 | 0 至序列帧数 |
§4.2 标签分布
- Phase 层:词汇表 2 个手术相位(Suturing、Knot Tying)+ Idle;官方声明 Idle 仅占约 2% 帧,Suturing 与 Knot Tying 构成绝对主体——三分类问题实质上高度不均衡。
- Step 层:6 个步骤(Needle holding、Suture making、Suture handling、1° knot、2° knot、3° knot)+ Idle;单序列内步骤出现次数与序列时长由缝合针数决定。
- Activity 层:verb × target × instrument 的组合空间理论上有 10 × 9 × 1 = 90 种语义组合(不含 Idle),实际出现的组合呈长尾分布——这正是 activity 识别 AD-Accuracy 仅 52.4%-61.6% 的结构性原因之一。
- 受试者分布:专家(外科医生)11 段 vs 学生 16 段;测试集两组各占一段(4 段 + 6 段)。
- 官方未公布逐类别的帧级分布统计表;使用时应自行统计训练标签直方图并据此设置类别权重。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 序列总数 | 27(训练 17 / 测试 10) | 挑战报告论文 |
| 受试者 | 6(3 外科医生 + 3 工科学生) | 挑战报告论文 |
| 专家 vs 学生序列 | 11 vs 16 | 挑战报告论文 |
| 同步采样率 | 30 Hz(视频 + 运动学) | 挑战报告论文 |
| 视频分辨率 | 原始 960×540;发布版 920×540(立体拼接) | 挑战报告论文 |
| 运动学维度 | 每臂 6 位姿分量 + grip + grip 电压,双臂共 14 列以上 | 挑战报告论文 |
| 标注词汇量 | 2 phase / 6 step / 10 verb / 9 target / 1 instrument | 挑战报告论文 |
| 评测容差 | AD-Accuracy 转换点容差 d = 500 ms | 挑战报告论文 |
| 平台文件数 | 9 个数据文件 | 挑战报告论文 |
§4.4 数据层级
数据层级为三级:受试者(subject)→ 序列(sequence)→ 帧级模态流(video frames / kinematics samples / annotation segments)。与影像数据集的"患者 → 检查 → 序列 → 切片"四级结构相比,MISAW 无患者与检查层(受试者即数据主体,无临床就诊事件)。关键推论:同受试者的多段序列共享操作风格、震颤特征与吻合习惯,任何把同受试者序列分入训练集与测试集的划分都会引入受试者级泄漏(见 §5.3)。
§4.5 缺失值与信息性缺失编码
| 缺失情形 | 影响范围 | 表现 | 处理建议 |
|---|---|---|---|
| 运动学时间步缺失 | 用例 2-3、4-2、4-4、5-3(官方声明的受影响用例) | 30 Hz 索引中出现缺失时间步 | 加载时按时间戳对齐而非按行号;插值需在训练/验证代码中显式记录,评测对齐官方协议时不应对测试集做不可追溯的修补 |
| grip 数值越界 | 部分试验 | 记录值可能低于 -6(0 = open / -6 = close 约定之外) | 不要硬裁剪到约定区间后当作可信值使用;先绘制 grip 直方图确认分布再决定 clip 策略 |
| 测试集标注不公开 | 4_1-4_4、5_1-5_6 的 workflow 标注 | 对参赛者与后续使用者均为信息性缺失 | 自评 AD-Accuracy 需通过官方评测渠道;本地只能对训练集做留出验证 |
数据集未定义专门的信息性缺失编码字段;缺失以"缺行/缺文件"的物理形式存在,加载器必须显式处理(见 §6.5 坑点 3)。
§5 数据划分与使用建议
§5.1 官方划分
官方划分将 27 个序列按专业水平比例相似原则拆为 17 个训练序列(Surgeon 2 的 3 段、Surgeon 3 的 4 段、Student 1 的 6 段、Student 2 的 4 段)与 10 个测试序列(Surgeon 1 的 4 段、Student 3 的 6 段)。划分的单位是受试者:Surgeon 1 与 Student 3 的全部序列整体进入测试集,训练集中不出现这两人的任何序列。测试集 workflow 标注在挑战期间不提供给参赛者,评测由组织方执行。
§5.2 社区惯例划分
社区研究(挑战赛之后的论文)基本沿用官方 17/10 划分以对齐 AD-Accuracy 报告值;方法学消融实验通常在 17 个训练序列内部做受试者级交叉验证。由于数据集规模小,未见社区另行发布公认的替代划分基准。
§5.3 划分策略与泄漏风险(重点)
首要原则:任何自定义划分都必须按受试者(subject-wise)切分,而不是按序列切分。 同一受试者的多段序列在操作风格、震颤频谱、进针节奏上高度自相关;随机按序列打乱划分会让测试序列与训练序列来自同一位操作者,模型只需识别"这是谁的手"即可获得虚高精度。官方划分(Surgeon 1 与 Student 3 整组留出)正是为阻断这条泄漏路径。
其他泄漏风险点:
- 多粒度标签同源:phase/step/activity 三层标注派生自同一批观察记录,用 activity 模型输出的时序平滑结果去训练 phase 模型再在同一序列上评测,属于标签级泄漏。
- 挑战期间测试数据提前公开:官方承认挑战期间发布测试集视频与运动学数据"打开了不可检测作弊的空间"——参赛者理论上可以对测试数据自行标注并用于训练。复现挑战成绩时应意识到这一历史事实;新研究建议在训练集内部做受试者级留出验证后再一次性评测试集。
- 序列内时序泄漏:30 Hz 相邻帧高度相似,逐帧随机划分训练/验证帧会显著虚高指标。验证集必须以连续时间区间或整段序列为单位切出。
§5.4 交叉验证建议
在 17 个训练序列上做受试者分组交叉验证(GroupKFold,group = subject_id):4 名受试者可取 4 折,每折留出 1 名受试者的全部序列作为验证集。这同时回答两个问题:模型对未见过操作者的泛化能力、以及专家/学生混合训练下的技能鲁棒性。禁止在帧级或序列级随机 KFold 的结果上报告泛化结论。
from sklearn.model_selection import GroupKFold
import numpy as np
# 训练集 17 序列 -> 受试者分组
sequence_ids = ["2_1", "2_2", "2_3", "3_1", "3_2", "3_3", "3_4",
"5_1", "5_2", "5_3", "5_4", "5_5", "5_6",
"6_1", "6_2", "6_3", "6_4"] # 以实际目录为准
groups = [sid.split("_")[0] for sid in sequence_ids] # ["2","2",...,"6"]
gkf = GroupKFold(n_splits=4) # 4 名受试者 -> 4 折
for fold, (tr, va) in enumerate(gkf.split(sequence_ids, groups=groups)):
train_seqs = [sequence_ids[i] for i in tr]
val_seqs = [sequence_ids[i] for i in va]
# 每折的 val_seqs 恰为同一名受试者的全部序列(3-6 段),
# 保证"未见过的操作者"这一泛化设定成立。
print(f"fold {fold}: train={len(train_seqs)} seqs, "
f"val subject={set(groups[i] for i in va)}")
# 注意:报告交叉验证结果时逐折列出,并区分 Surgeon/Student 子集,
# 以暴露 §7.5 所述的技能组公平性风险,而非只报 4 折均值。
§5.5 外部验证建议
MISAW 目前没有官方外部验证集。若研究目标指向真实显微手术场景,合理的外部验证设计是:在与训练完全隔离的受试者上采集新的 phantom 会话(同平台复刻官方协议),或引用后续独立研究在真实显微手术视频上的结果(见 §7.8)。在官方 27 序列内部得到的任何指标都不应被表述为对真实手术室性能的估计。
§6 AI 就绪指南
§6.0 云端快速启动
MISAW 无官方云端托管 notebook 环境。云上复现的最短路径是:在任意云主机安装 Synapse Python 客户端 synapseclient,注册 Synapse 账号后用命令行拉取数据集,再按 §6.3 预处理。Synapse 平台页面对部分地区存在访问限制,部署云主机前请先确认所选区域能否访问 synapse.org。
§6.1 快速上手
# ============================================================
# 快速上手:加载 1 个序列的运动学 + phase 标注
# ------------------------------------------------------------
# 目录结构预期(data_root 为 Synapse 下载解压后的根目录):
# data_root/
# ├── training_data/{sequence_id}/video/ # 立体显微视频
# ├── training_data/{sequence_id}/kinematics/ # 双臂运动学表格
# └── training_data/{sequence_id}/workflow/ # 三层标注表格
# data_root 拼接关系:{data_root}/{split}/{sequence_id}/{modality}/
# 最小可用子集:仅 training_data 下的运动学 + phase 标注即可跑通
# Task 1(phase 识别)的训练基线,无需下载即可判断数据是否完整。
# 注意:各模态目录内文件命名以 Synapse 实际发布为准,下方用 glob
# 匹配而非硬编码文件名。
# ============================================================
from pathlib import Path
import pandas as pd
data_root = Path("data_root/MISAW") # 按你的解压路径修改
seq_dir = data_root / "training_data" / "1_1"
# 1) 定位运动学文件(每行 = 一个 30 Hz 采样)
kin_file = sorted((seq_dir / "kinematics").glob("*"))[0]
kin = pd.read_csv(kin_file, sep=None, engine="python") # 自动嗅探分隔符
print(kin.columns.tolist()) # 确认含双臂位姿与夹持列
# 2) 定位标注文件,读取 phase 层时间区间
ann_file = sorted((seq_dir / "workflow").glob("*"))[0]
ann = pd.read_csv(ann_file, sep=None, engine="python")
print(ann.head()) # 时间区间 + 标签名
# 3) 把帧级 phase 序列展开(每帧继承所在区间的标签)
phase_per_frame = pd.Series("Idle", index=range(len(kin)))
for _, row in ann.iterrows():
s, e = int(row["start_frame"]), int(row["end_frame"])
phase_per_frame.iloc[s:e + 1] = row["label_name"]
print(phase_per_frame.value_counts())
§6.2 数据获取
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 在 synapse.org 注册账号 | 免费;完成邮箱验证 |
| 2 | 访问 https://www.synapse.org/MISAW | 页面对部分地区存在访问限制,必要时更换网络环境 |
| 3 | 同意平台使用条款后下载 9 个数据文件 | 网页下载或命令行批量获取 |
| 4 | 校验文件完整性并解压 | 对照 §4.0 目录树检查训练/测试子目录齐全 |
# 使用 Synapse 官方 Python 客户端命令行下载
# pip install synapseclient
import synapseclient
syn = synapseclient.Synapse()
syn.login("你的账号", "你的密码") # 或 syn.login() 走配置文件
# 数据集实体以 synapse.org/MISAW 页面公示的 ID 为准:
# syn.get("synXXXXXXX", downloadLocation="data_root/MISAW")
MISAW 不含患者数据、无 DUA/培训要求,获取摩擦主要来自 Synapse 注册与地区访问限制,而非合规审查。
§6.3 预处理全流程
第一步:视频抽帧与对齐。 用 OpenCV 按帧号(而非按秒)抽帧,保证与 30 Hz 标注索引严格对齐;920×540 帧为左右立体像对拼接,训练视觉模型时先决定视场策略(见 §6.5 坑点 2)。
import cv2, numpy as np
from pathlib import Path
def extract_frames(video_path: Path, indices):
"""按 30 Hz 帧号抽帧。indices 与运动学/标注的帧索引同源。"""
cap = cv2.VideoCapture(str(video_path))
frames = {}
i = 0
while True:
ok, frame = cap.read()
if not ok:
break
if i in indices:
frames[i] = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
i += 1
cap.release()
return frames
第二步:运动学清洗。 处理缺失时间步与 grip 越界值(详见坑点 1、坑点 5):
import pandas as pd
def clean_kinematics(kin: pd.DataFrame) -> pd.DataFrame:
# 1) 以 30 Hz 帧号为键重建完整索引,显式暴露缺失时间步
full_idx = range(int(kin["frame_index"].min()),
int(kin["frame_index"].max()) + 1)
kin = kin.set_index("frame_index").reindex(full_idx)
kin["missing"] = kin["pose_x_left"].isna() # 缺失掩码,勿静默插值
# 2) grip 越界检查(约定 0=open, -6=close)
for col in ("grip_left", "grip_right"):
n_out = (kin[col] < -6).sum()
print(f"{col}: {n_out} 个采样低于 -6,需在日志中记录处理策略")
return kin
第三步:标准化。 位姿通道的量纲与坐标系由机器人平台决定,用训练集统计量做 StandardScaler(fit 仅用训练集,防止测试信息前泄);夹持通道先核验分布再决定是否 clip。
from sklearn.preprocessing import StandardScaler
POSE_COLS = [f"pose_{a}_{s}" for s in ("left", "right")
for a in ("x", "y", "z", "alpha", "beta", "gamma")] # 每臂 6 维
GRIP_COLS = ["grip_left", "grip_right", "grip_voltage_left", "grip_voltage_right"]
def fit_scaler(train_seqs: list[pd.DataFrame]):
"""仅在训练集序列上 fit;保存均值/方差供全部序列复用。"""
pose = pd.concat(train_seqs)[POSE_COLS]
scaler = StandardScaler().fit(pose)
return scaler
def apply_scaler(kin: pd.DataFrame, scaler) -> pd.DataFrame:
out = kin.copy()
out[POSE_COLS] = scaler.transform(kin[POSE_COLS])
# 夹持通道:先检查分布(坑点 5 的越界值)再决定 clip 上限,
# 不要直接套用 pose 的标准化参数——两通道量纲语义不同。
for c in ("grip_left", "grip_right"):
lo, hi = np.percentile(out[c].dropna(), [0.5, 99.5])
out[c] = out[c].clip(lo, hi)
return out
第四步:标签对齐与窗口化。 将三层时间区间展开为帧级标签,按滑动窗口(如 1 s = 30 帧)切块;每窗口标签取区间多数投票或中心帧标签,并与 §6.9 的转换容差评测保持一致。
def make_windows(kin: pd.DataFrame, labels: np.ndarray,
window: int = 30, stride: int = 15):
"""滑动窗口切块。stride = window/2 提供样本量与冗余的折中:
训练用重叠窗口增广样本,验证/测试改为 stride = window 去重叠,
避免相邻验证窗口共享帧导致指标虚高。"""
X, y = [], []
for s in range(0, len(kin) - window + 1, stride):
w = kin.iloc[s:s + window]
if w["missing"].any(): # 缺失时间步窗口:丢弃并记录
continue
seg = labels[s:s + window]
y.append(np.bincount(seg).argmax()) # 多数投票;或 seg[window//2]
X.append(s)
return X, y
# 多粒度训练提示:phase/step/activity 三层窗口必须共用同一套 (X, s) 索引,
# 保证三个分类头看到的时间区间一致——否则 multi-granularity 联合训练失去意义。
§6.4 PyTorch DataLoader 完整代码
import torch
from torch.utils.data import Dataset, DataLoader
import pandas as pd, numpy as np
from pathlib import Path
class MISAWDataset(Dataset):
"""视频-运动学多模态序列数据集(以 Task 1 phase 识别为例)。
预期目录:{data_root}/{split}/{sequence_id}/{video|kinematics|workflow}/
一个样本 = 一个时间窗口:运动学窗口 (T=30) + 对应视频帧 + phase 标签。
"""
def __init__(self, data_root: str, split: str = "train",
window: int = 30, transform=None):
self.root = Path(data_root) / split
self.window, self.transform = window, transform
self.samples = [] # (seq_dir, start_frame)
self.subject_of = {} # 序列 -> 受试者(分组划分用)
for seq_dir in sorted(self.root.iterdir()):
kin = self._load_kin(seq_dir)
ann = self._load_phase(seq_dir)
if kin is None or ann is None:
continue # 缺模态序列显式跳过并记日志
labels = self._expand(ann, len(kin)) # 帧级标签
for s in range(0, len(kin) - window, window // 2):
self.samples.append((seq_dir, s))
self.subject_of[seq_dir.name] = seq_dir.name.split("_")[0]
def _load_kin(self, seq_dir):
files = sorted((seq_dir / "kinematics").glob("*"))
if not files:
return None
kin = pd.read_csv(files[0], sep=None, engine="python")
return self._clean(kin)
def _load_phase(self, seq_dir):
files = sorted((seq_dir / "workflow").glob("*"))
return pd.read_csv(files[0], sep=None, engine="python") if files else None
@staticmethod
def _clean(kin):
idx = range(int(kin.iloc[:, 0].min()), int(kin.iloc[:, 0].max()) + 1)
kin = kin.set_index(kin.columns[0]).reindex(idx)
return kin.ffill() # 简单前向填充;正式实验先看坑点 1
@staticmethod
def _expand(ann, n_frames):
labels = np.full(n_frames, "Idle", dtype=object)
for _, row in ann.iterrows():
labels[int(row["start_frame"]):int(row["end_frame"]) + 1] = row["label_name"]
return labels
def __len__(self):
return len(self.samples)
def __getitem__(self, i):
seq_dir, s = self.samples[i]
kin = self._load_kin(seq_dir).iloc[s:s + self.window]
feats = kin.select_dtypes(include=[np.number]).to_numpy(dtype=np.float32)
feats = np.nan_to_num(feats) # 缺失时间步兜底
return torch.from_numpy(feats), 0 # 标签映射表按 §4.2 词汇表建立
# DataLoader 实例化:num_workers 按机器调整;建议按 §5.4 做
# GroupKFold(subject) 后再分别构造 train/val 两个 Dataset 实例。
train_ds = MISAWDataset("data_root/MISAW", split="train", window=30)
train_dl = DataLoader(train_ds, batch_size=32, shuffle=True,
num_workers=4, pin_memory=True)
补充一:标签映射表。识别任务的类别数含 Idle(phase 3 类 / step 7 类 / verb 11 类 / target 10 类 / instrument 2 类),映射表建议随实验配置文件固化,任何论文报告的类别数都应与之一致:
PHASE2IDX = {"Suturing": 0, "Knot Tying": 1, "Idle": 2}
STEP2IDX = {"Needle holding": 0, "Suture making": 1, "Suture handling": 2,
"1° knot": 3, "2° knot": 4, "3° knot": 5, "Idle": 6}
VERB2IDX = {v: i for i, v in enumerate([
"Catch", "Give slack", "Hold", "Insert", "Loosen completely",
"Loosen partially", "Make a loop", "Pass through", "Position",
"Pull", "Idle"])}
TARGET2IDX = {t: i for i, t in enumerate([
"Needle", "Wire", "Both artificial vessel", "Left artificial vessel",
"Right artificial vessel", "Long wire strand", "Short wire strand",
"Wire loop", "Knot", "Idle"])}
# 注意 "1° knot" 中的 ° 为 Unicode 字符:CSV 解析与日志输出统一 utf-8,
# 否则标签匹配失败会静默把整段标为 Idle。
补充二:视频模态接入与 collate。视频帧按 30 Hz 帧号对齐后缓存为预抽帧数组(§6.8 的 I/O 建议),batch 内做左右目裁剪:
def load_frames(seq_dir: Path, start: int, window: int,
cache: dict, side: str = "left"):
"""从拼接的 920×540 帧中取左目(x: 0-460)或右目(x: 460-920)。
官方拼接为左右图像各去中心 40 像素后水平拼接,无共享中缝。"""
frames = cache.setdefault(seq_dir.name, extract_frames_from_video(seq_dir))
clip = [frames[i] for i in range(start, start + window)]
half = 460 # 920 / 2 = 460,每目宽 460
x0 = 0 if side == "left" else half
return np.stack([f[:, x0:x0 + half] for f in clip])
def collate_fn(batch):
kin = torch.stack([b[0] for b in batch]) # (B, T, C) 运动学
vid = torch.stack([torch.from_numpy(b[1]) for b in batch])
lab = torch.tensor([b[2] for b in batch], dtype=torch.long)
meta = [(b[3], b[4]) for b in batch] # (sequence_id, start_frame) 透传
return kin, vid, lab, meta
# 透传 meta 便于评测时按序列重组预测、计算 §6.9 的 AD-Accuracy,
# 否则 shuffle 后的 batch 无法还原帧级时序。
§6.5 八大坑点
⚠️ 坑点 1:运动学缺失时间步导致按行号对齐错位(分类:工程陷阱)
问题:用例 2-3、4-2、4-4、5-3 存在采集缺失的时间步;若加载器假设"第 i 行 = 第 i 帧",视频与标注会整体错位,且错位量随缺失累计。
症状:训练损失正常下降但验证指标异常偏低;可视化对齐检查时发现进针动作出现在打结标签区间内。
解决:
- 简单方法:加载后用帧号列
reindex到完整 30 Hz 网格,显式生成missing掩码,前向填充并在日志中报告缺失率。- 进阶方法:以帧号为唯一时间键重构三个模态的联合索引,任何模态缺失帧在 batch 中置零并屏蔽对应损失项;禁止静默
dropna。- SOTA 方法:时间戳驱动的流式对齐(alignment-by-timestamp),在 DataLoader 的
collate_fn中做最近邻时间匹配,并对匹配距离超阈值的帧对直接丢弃。
参考:挑战报告论文 2.3.3 节误差来源声明(arXiv:2103.13111)。
⚠️ 坑点 2:920×540 立体拼接帧被当作单目图像(分类:预处理陷阱)
问题:发布视频是左右立体像对各去 40 像素中心后水平拼接的 920×540 单流——中间竖缝两侧是同一术野的两个视角。把它整体 resize 后送入 2D CNN,会让模型在拼接缝处学到无意义跳变,resize 也破坏立体几何。
症状:视觉模型在缝合针附近出现系统性误检;若做立体匹配,视差图在中缝处断裂。
解决:
- 简单方法:按
frame[:, :460]与frame[:, 460:]切开,选左目(或双目各自过骨干后特征拼接)。- 进阶方法:双目分支各自编码后在特征层融合,保留视差线索;下采样前先用官方参数复原去 40 像素的原始几何关系。
- SOTA 方法:直接用立体匹配网络从像对恢复深度图作为第三模态,与运动学互补——显微操作的高度信息正是视频单目视图缺失的。
参考:挑战报告论文数据采集章节(960×540 原始像对、去 40 像素、920×540 拼接流程)。
⚠️ 坑点 3:按序列随机划分引发受试者级泄漏(分类:数据泄漏)
问题:同一受试者贡献 3-6 段序列,操作风格(震颤、节奏、进针习惯)在序列间高度自相关。按序列随机划分训练/测试集,模型实际学到的是"人"而非"操作"。
症状:随机划分下验证精度显著高于按受试者划分的对照组(常见虚高 10 个百分点以上);换到完全新受试者的数据上性能骤降。
解决:
- 简单方法:固定使用官方 17/10 划分(Surgeon 1 与 Student 3 整组留出)。
- 进阶方法:自定义实验一律 GroupKFold(group=subject_id);对比实验间使用完全一致的折划分。
- SOTA 方法:按受试者留一 + 按粒度分层报告,同时报告专家/学生子集性能,量化技能泛化差距。
参考:挑战报告论文划分章节与 §5.3;受试者级划分是官方协议的明确设计。
⚠️ 坑点 4:逐帧 accuracy 假象与 AD-Accuracy 容差不实现(分类:评估误用)
问题:Idle 类仅约 2% 帧、Suturing/Knot Tying 占绝对主体,逐帧 accuracy 指标会被多数类淹没;且官方指标 AD-Accuracy 允许转换点预测落在真实转换点 ±500 ms 内即视为整段正确——不实现该容差,你的数字与全部文献不可比。
症状:逐帧 accuracy 高达 9x% 但文献对齐的 AD-Accuracy 只有 6x%;混淆矩阵中 Idle 几乎全错。
解决:
- 简单方法:改用 balanced accuracy(sklearn
balanced_accuracy_score)并报告逐类 recall。- 进阶方法:实现 AD-Accuracy——对每个预测转换点,若存在真实转换点与之距离 ≤ 500 ms(15 帧 @ 30 Hz),则将两转换点之间帧判定为正确;再对各测试用例的 balanced accuracy 取平均。
- SOTA 方法:直接复用官方 ChallengeR 排名聚合流程复现榜单数字,提交前在训练集留出折上自检。
参考:挑战报告论文评测协议章节(AD-Accuracy 定义、d = 500 ms、ChallengeR)。
⚠️ 坑点 5:grip 通道越界值与 grip_voltage 通道混用(分类:工程陷阱)
问题:grip 约定 0 = open、-6 = close,但官方声明部分试验记录值可能低于 -6;同一文件里还有一路 grip 输出电压(grip_voltage),两通道量纲与语义完全不同。按"合法区间"硬 clip 会静默销毁真实的快速开合动作信号。
症状:抓放事件检测在快速操作段漏检;clip 后 grip 直方图在 -6 处出现异常堆积。
解决:
- 简单方法:先画 grip/grip_voltage 直方图与时间曲线,确认通道语义后再决定处理,所有越界值记录日志。
- 进阶方法:用 winsorize(分位数截断)替代硬 clip,并把
grip < -6的比例作为数据质量特征保留。- SOTA 方法:把夹持通道建模为受约束序列(有序 logit 思路),让模型显式学习越界观测的可靠性权重。
参考:挑战报告论文 2.3.3 节(grip 数值可疑的官方声明)。
⚠️ 坑点 6:activity 长尾组合与六分量平均的聚合误用(分类:标签理解)
问题:activity = verb × target × instrument 的语义组合(10 × 9 × 1 的词汇空间),实际出现组合长尾;官方对 activity 的评分是左右臂各 verb/target/instrument 共 6 个分量 balanced accuracy 的平均——把 6 分量当成 6 个独立二分类、或只报 verb 单分量,都与协议不符。
症状:自评 activity 分数与官方榜单(52.4%-61.6% 区间)不可对齐;罕见组合(如 Loosen completely + Wire loop)永远识别不出来。
解决:
- 简单方法:严格按 6 分量分别计算 balanced accuracy 后取算术平均。
- 进阶方法:对长尾组合做重加权或 focal loss;报告逐分量与逐组合的分解结果。
- SOTA 方法:多粒度联合建模——挑战赛数据显示 activity 上多粒度模型优于单粒度模型(前三名中 3 个为多粒度模型),用 phase/step 的强监督信号辅助 activity 头。
参考:挑战报告论文词汇表(Table 2)与 Task 3 排名章节。
⚠️ 坑点 7:测试集标注不可得与挑战期提前公开的历史(分类:数据泄漏)
问题:官方测试集(4_1-4_4、5_1-5_6)的 workflow 标注从未随训练数据发布,本地无法直接计算测试 AD-Accuracy;且挑战期间官方提前发布了测试集的视频与运动学,官方自认"打开了不可检测作弊的空间"。网上流传的部分历史成绩可能不可信。
症状:对测试序列自行"标注"后评测得到异常好看的数字;复现值与论文报告值系统性偏离。
解决:
- 简单方法:只在 17 个训练序列内部做受试者级留出验证,并明确声明与官方测试成绩不可直接比较。
- 进阶方法:走官方评测渠道获取测试分数;引用历史成绩时核对是否为挑战赛正式榜单数字。
- SOTA 方法:向社区报告"训练集内受试者级交叉验证 + 官方测试成绩"双口径,成为可复现性更强的引用习惯。
参考:挑战报告论文 Discussion(测试数据提前发布与不可检测作弊的官方声明)。
⚠️ 坑点 8:标注区间到视频帧的索引映射错位(分类:预处理陷阱)
问题:标注按 30 Hz 帧索引给出时间区间,但视频容器有自己的时间基(time base);抽帧循环与区间端点(含端点开闭、0/1 起始)稍有出入,标签就整体漂移一到两帧——对 500 ms 容差的评测影响不大,但对逐帧训练是持续噪声。
症状:可视化抽帧叠加标签时,缝合动作与标签边界系统性偏移固定帧数;训练集上逐帧交叉熵不收敛到合理下界。
解决:
- 简单方法:抽帧计数器与标注帧索引同源(都从同一 30 Hz 时钟计),端点开闭约定在代码里全局唯一定义。
- 进阶方法:以
cv2.CAP_PROP_POS_FRAMES校验解码帧号;对视频做丢帧检测(期望帧数 vs 实际帧数),不一致即报警。- SOTA 方法:预处理阶段输出"帧号-时间戳-标签"三元组的对齐审计报告,任何下游实验前先跑审计。
参考:挑战报告论文(30 Hz 同步采集协议)与 §4.5 缺失值说明。
§6.6 数据增强
| 类别 | 操作 | 判定 | 说明 |
|---|---|---|---|
| 时序抖动 | 窗口起点 ±2-3 帧平移 | ✅ 安全 | 等效转换点容差,与 AD-Accuracy 语义一致 |
| 亮度/对比度微调 | 视频帧 ±10% | ✅ 安全 | 模拟显微镜照明波动 |
| 运动学高斯噪声 | σ ≤ 编码器量化级 | ✅ 安全 | 提升对采集噪声的鲁棒性 |
| 镜像翻转 | 水平翻转视频 | ⚠️ 有条件 | 会交换左右手语义;需同步交换左右臂运动学与左右目标标签 |
| 时间轴反转 | 序列倒放 | ❌ 危险 | 破坏缝合进程的因果结构,phase/step 语义即失效 |
| 跨模态独立增强 | 只对视频做时序伸缩 | ❌ 危险 | 破坏 30 Hz 视频-运动学-标注三者同步,制造对齐噪声 |
| 类别合成 | 对长尾 activity 组合做标签插值 | ❌ 危险 | verb-target 组合是离散语义,插值产物无意义 |
安全增强的参考实现——三种 ✅ 操作共用一个开关,且只作用于训练集:
def augment_window(kin: np.ndarray, frames: np.ndarray,
rng: np.random.Generator, train_mode: bool = True):
"""运动学 (T, C) + 视频帧 (T, H, W, 3) 的联合增强。
关键约束:任何跨模态增强必须同时作用于两个模态,
禁止只动一个(表中"跨模态独立增强" ❌ 项)。"""
if not train_mode:
return kin, frames # 验证/测试:确定性,零增强
# 1) 时序抖动:±2 帧整体平移(等效 AD-Accuracy 的转换容差语义)
shift = rng.integers(-2, 3)
kin = np.roll(kin, shift, axis=0)
frames = np.roll(frames, shift, axis=0)
# 2) 亮度/对比度:模拟显微镜照明波动,幅度 ±10%
alpha = 1.0 + rng.uniform(-0.1, 0.1) # 对比度
beta = rng.uniform(-10.0, 10.0) # 亮度(0-255 尺度)
frames = np.clip(frames * alpha + beta, 0, 255).astype(frames.dtype)
# 3) 运动学高斯噪声:σ 取编码器量化级(位姿 ~1e-3 量级)
kin = kin + rng.normal(0, 1e-3, kin.shape).astype(kin.dtype)
return kin, frames
# 慎用镜像翻转:若确需翻转(如扩大学生序列样本),必须同步交换
# 左右臂列序与 target 的 Left/Right 语义,见 §7.5 公平性讨论。
§6.7 模型推荐表
| 场景 | 推荐模型 | 模态 | 理由 |
|---|---|---|---|
| Phase/step 基线 | 双向 LSTM/GRU + 全连接 | 运动学 | 挑战赛结论:RNN 类模型在 phase/step 上优于 CNN 类;运动学低维快速 |
| 视觉单模态 | ResNet/VGG 逐帧特征 + 时序模型 | 视频 | 挑战赛主流视觉流水线;可对齐历史成绩 |
| 多模态融合 | 双编码器 + 跨模态注意力 | 视频 + 运动学 | 研究性选择;注意 27 序列规模下的过拟合控制 |
| 多粒度联合 | 共享编码器 + 三个分类头 | 视频 + 运动学 | 挑战赛证据:activity 上多粒度模型占优(前三名中 3 个为多粒度模型) |
| 时序动作检测 | 编码-解码式 TAD 框架 | 视频/运动学 | 直接输出区间边界,与 AD-Accuracy 转换点语义天然匹配 |
§6.8 硬件需求
| 配置 | 显存 | 内存 | 存储 | 适用场景 |
|---|---|---|---|---|
| 最低配置 | 8 GB(单卡) | 16 GB | 100 GB | 运动学单模态、轻量 CNN 视觉基线 |
| 推荐配置 | 16-24 GB(单卡) | 32 GB | 200 GB | 视频 CNN + RNN 多模态训练 |
| 高配 | 多卡 × 24 GB | 64 GB | 500 GB | 消融与多粒度联合模型超参搜索 |
数据集本身规模小(27 序列),瓶颈在 CPU 侧的视频解码与对齐 I/O,建议预抽帧缓存为数组后训练。
§6.9 评估指标代码
import numpy as np
from sklearn.metrics import balanced_accuracy_score
def ad_frame_correct(y_true, y_pred, fps=30, tolerance_ms=500):
"""AD-Accuracy 核心:转换点落容差即视为整段正确。
返回帧级修正后的 (y_true, y_pred)。"""
tol = round(tolerance_ms / 1000 * fps) # 500 ms @ 30 Hz = 15 帧
trans_t = np.where(np.diff(y_true) != 0)[0] # 真实转换点
trans_p = np.where(np.diff(y_pred) != 0)[0] # 预测转换点
matched_p = set()
for tt in trans_t:
for j, tp in enumerate(trans_p):
if abs(tp - tt) <= tol and j not in matched_p:
matched_p.add(j)
y_pred[tt + 1: tp + 1] = y_true[tt + 1: tp + 1]
y_pred[tp + 1: tt + 1] = y_true[tp + 1: tt + 1]
break
return y_true, y_pred
def ad_accuracy(y_true, y_pred, fps=30):
y_true, y_pred = ad_frame_correct(np.asarray(y_true),
np.asarray(y_pred).copy(), fps)
return balanced_accuracy_score(y_true, y_pred)
# 官方聚合:对 10 个测试用例的 AD-Accuracy 取平均(Task 1/2);
# activity 取 6 分量各自平均后再平均(Task 3);多粒度取三任务平均(Task 4)。
§6.10 MLOps 笔记
- 数据版本化:Synapse 发布文件无官方版本号,用文件哈希固定数据版本,任何实验记录必须包含所用 9 个文件的哈希清单。
- 划分快照:受试者级折划分(§5.4)以 JSON 快照入库,杜绝"某次实验悄悄用了随机划分"。
- 对齐审计:把坑点 1/8 的对齐检查做成 CI 前置步骤——新机器、新预处理代码必须先通过审计再训练。
- 评测双口径:训练集内受试者级交叉验证成绩与(若取得)官方测试成绩分列记录,报告时禁止混用。
- 指标对齐:任何与文献比较的实验,先在代码库中固化 AD-Accuracy(d = 500 ms)实现并写单元测试(构造已知转换点序列验证容差逻辑)。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 技能水平不均衡 | 11 段专家序列 vs 16 段学生序列,每人 3-6 段,分布由参与者可得性决定(官方声明的局限) | 高 | 官方按专业水平比例划分训练/测试集;自评时分层报告专家/学生子集性能 |
| 单任务单器械 | 全部序列为同一吻合任务、同一持针器器械,词汇表仅 1 种器械 | 高 | 明确研究结论的适用边界;避免向多器械场景外推 |
| Lab 场景偏倚 | 人造血管 phantom 操作,非真实患者手术;无组织出血/遮挡等干扰 | 高 | 外部验证见 §7.8;泛化结论须受试者级留出支撑 |
| 标签不均衡 | Idle 仅约 2% 帧;activity 组合长尾(官方采用 balanced 指标的原因) | 中 | balanced accuracy、类别权重、focal loss |
| 观察者依赖标注 | 双人独立标注 + 协调,量化一致性未公布 | 中 | 实现并报告 AD-Accuracy 的 500 ms 转换容差;边界帧视为噪声 |
| 采集平台单一 | 唯一机器人平台 + 唯一显微镜配置 | 中 | 运动学特征提取避免硬编码坐标系,先归一化 |
| 测试数据历史暴露 | 挑战期间测试集视频/运动学提前公开(官方声明"不可检测作弊"风险) | 中 | 复现引用官方榜单;新实验采用受试者级留出(见坑点 7) |
§7.2 标注质量
标注流程为双人独立标注加协调协议,词汇表语义定义清晰(2 phase / 6 step / 10 verb / 9 target / 1 instrument),是同类数据集中较规范的 SPM 式标注。短板有三:其一,标注者临床资历与量化一致性(Kappa 等)未公布,边界帧的可靠性无法定量;其二,activity 层语义组合天然长尾,罕见组合的标注样本极少,训练与评测都不稳定;其三,官方将标注观察者依赖列入误差来源声明,并用 AD-Accuracy 的 500 ms 转换容差在评测层吸收边界分歧——使用者应把这套容差语义理解为"标注质量的官方自知"。
§7.3 泛化性评估
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 换受试者(同人数据集内) | 中:风格自相关导致虚高,受试者级划分后性能下降 | 官方划分以受试者为单位;§5.3 泄漏分析 |
| 换显微设备/机器人平台 | 高:视频色调、分辨率、运动学坐标系与量纲随平台变化 | 采集仅覆盖单一平台 + 显微镜组合 |
| 换任务(吻合 → 其他显微操作) | 高:词汇表完全绑定吻合任务,verb/target 不复用 | 词汇表仅含缝合/打结语义 |
| phantom → 真实术野 | 高:真实组织出血、反光、遮挡与形变未出现于训练分布 | 数据集不含患者手术序列 |
| 短会话 → 长手术 | 中:27 段训练会话时长有限,长时序建模能力受限 | 数据规模(17 训练序列)是硬约束 |
§7.4 伦理合规
MISAW 不含任何患者数据:操作对象为人造血管,受试者为 6 名伪匿名参与者(Surgeon 1-3 / Student 1-3),无临床记录、无生物识别信息、无影像可识别个体。因此该数据集不落入患者隐私监管框架(如 HIPAA/GDPR 健康数据特殊类别),DUO 标签记为 GRU(通用研究使用)。合规摩擦点集中在许可层面:数据集论文未单独声明数据许可条款,挑战报告文本以 CC BY-NC 4.0(HAL)/ CC BY-NC-SA 4.0(arXiv)发布,下载遵循 Synapse 平台条款——非商业研究使用是稳妥边界,商业用途前应向数据提供方确认。论文作者声明无利益冲突。
§7.5 公平性
数据集内嵌的"外科医生 vs 工科学生"二元技能结构是设计特征而非缺陷,但它带来了可预期的公平性风险:模型若隐式学到"操作风格 → 身份"的映射,在技能相关应用(如自动考核)中可能系统性偏袒与多数组(学生,16/27)风格相似的操作者。缓解方法:按子集分层报告指标、在受试者级划分下验证跨身份泛化、避免将本数据集模型直接用于真实人员考核决策。本数据集不涉及人口统计学敏感属性,种族/性别维度无评估基础。
§7.6 数据漂移
作为固定实验室采集的单版本数据集,MISAW 自身不存在持续采集带来的特征漂移;真正的漂移风险在使用侧——当模型被部署到新的显微平台、新的显微镜配置或真实术野时,输入分布相对训练分布发生设备级与场景级漂移。监控建议:上线前后对比运动学各通道的均值/方差、视频亮度直方图与抽帧质量指标;对 phase 预测的转换点密度(每分钟转换次数)设漂移告警,突变通常意味着域偏移而非手术内容变化。
§7.7 DAIMS 24 项数据就绪度评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 运动学为每行一个 30 Hz 采样的宽表结构,可直接读入分析环境 |
| 2 | 唯一标识 | ✅ | sequence_id({受试者}_{序号})全局唯一,划分与引用键一致 |
| 3 | 特殊字符 | ✅ | 标识与标签均为英文数字字符,无编码陷阱字符 |
| 4 | 重复行 | ✅ | 序列级无重复;帧级不存在同帧多行问题 |
| 5 | 缺失编码 | ⚠️ | 无专门缺失编码字段,缺失以物理缺行存在,需加载器显式处理 |
| 6 | 标签标识 | ✅ | phase/step/activity 三层标签语义与区间边界显式可读 |
| 7 | 罕见类分组 | ⚠️ | activity 组合长尾,官方未提供罕见组合的分组或重采样指引 |
| 8 | 偏倚评估 | ✅ | 官方明确声明专家/学生 11:16 不均衡并纳入划分设计 |
| 9 | 数据字典 | ✅ | 论文 Table 2 给出完整词汇表,字段语义可追溯 |
| 10 | 信息性缺失解释 | ✅ | 官方列出缺失时间步的受影响用例清单(2-3、4-2、4-4、5-3) |
| 11 | 设备记录 | ✅ | 采集平台、显微镜规格与同步频率均有明确记录 |
| 12 | 共线性 | ⚠️ | grip 与 grip 输出电压高度相关,位姿通道间存在机械耦合 |
| 13 | 编码映射 | ⚠️ | 无 ICD/DUO 类标准化映射;手术操作术语需自行对照 SNOMED CT |
| 14 | 时间戳处理 | ⚠️ | 以 30 Hz 帧号计时,缺失时间步使帧号-墙钟对应关系需重建 |
| 15 | 划分建议 | ✅ | 官方 17/10 按受试者整组划分,可直接采用 |
| 16 | 泄漏讨论 | ✅ | 官方自评测试数据提前公开的作弊风险;受试者级划分阻断风格泄漏 |
| 17 | 标签分布 | ⚠️ | 官方仅披露 Idle 约 2% 帧,未公布逐类完整帧级分布 |
| 18 | 测量偏倚 | ⚠️ | 标注观察者依赖已声明,但量化一致性指标未公布 |
| 19 | 外部验证建议 | ✅ | 挑战报告给出协议级评测路径;本页 §5.5/§7.8 给出外推设计 |
| 20 | 版本记录 | ⚠️ | 无官方版本号与更新日志,以发布日期与文件哈希替代 |
| 21 | 预处理脚本 | ⚠️ | 官方提供 ChallengeR 评测聚合,未提供数据加载/预处理脚本 |
| 22 | 合规要求 | ⚠️ | 数据许可未随论文明示,需按 Synapse 平台条款与 CC BY-NC 论文许可推定 |
| 23 | 多模态对齐 | ✅ | 视频/运动学/标注 30 Hz 官方同步,同步机制明确 |
| 24 | 去标识化 | ✅ | 受试者伪匿名、无人患者数据,去标识化天然完备 |
DAIMS 评分:19 / 24(14 项 ✅、10 项 ⚠️、0 项 ❌)
评分解读:MISAW 的数据治理基本面扎实——标识体系、官方划分、设备记录、多模态同步与去标识化全部到位,官方对自身局限(不均衡、缺失、测试暴露)的披露在小样本挑战赛数据集中属高透明度。失分集中在"工程落地与元数据完整性":无预处理脚本、无版本记录、许可未明示、标签分布与标注一致性量化缺失。这类失分不损害研究可信度,但会线性增加每个使用者的重复劳动。
对你意味着什么:选它做研究时,把预算花在三个地方——其一,先写对齐审计(坑点 1/8),缺失时间步与帧索引问题不解决,后面全部实验数字都不可信;其二,固化 AD-Accuracy(d = 500 ms)实现并配单元测试,否则与文献不可比;其三,用文件哈希自建数据版本记录并快照受试者级折划分,弥补官方版本机制的缺位。合规上,非商业研究 + 引用挑战报告论文是当前最稳妥的使用姿态;若涉及商业评估,先向数据提供方确认许可边界。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| MISAW 官方测试集(受试者级外推) | MICCAI 2020 MISAW 组织方评测 | phase / step / activity / 多粒度 | AD-Accuracy 96.53% / 84.02% / 52.4%-61.6% / 76.8% | —(即官方基准口径) | 受试者外推条件下 phase/step 达应用级,activity 未达临床可用 |
| 真实显微手术场景 | 截至 2026-09 未检索到同行评审的外部验证结果 | — | — | — | 外部验证缺位:任何向真实术野的泛化主张都需自建受试者级留出实验支撑 |
§8 基准性能与生态
§8.1 排行榜
以下为 MISAW 挑战赛(MICCAI 2020)官方任务榜单头部结果,全部数字来自挑战报告论文;各任务评测协议不同、队伍提交配置各异,数值之间不可直接横向比较:
| 任务 | 排名 | 队伍(机构) | 性能(AD-Accuracy) | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| Task 1 Phase | 1 | MedAIR(香港中文大学) | 96.53% | CNN/RNN 深度模型(论文口径) | Huaulmé A, et al., 2021, Comput Methods Programs Biomed. DOI 10.1016/j.cmpb.2021.106452(挑战报告附录含各队明细) | 未核实到公开仓库 |
| Task 2 Step | 1 | MedAIR(香港中文大学) | 84.02% | 同上 | 同上 | 未核实到公开仓库 |
| Task 3 Activity | 并列 1 | NUSControl Lab(新加坡国立大学) | 区间内最佳(52.4%-61.6%) | CNN/RNN;多排名方法下并列裁定 | 同上 | 未核实到公开仓库 |
| Task 3 Activity | 并列 1 | UniandesBCV(Universidad de los Andes) | 区间内最佳(52.4%-61.6%) | CNN/RNN | 同上 | 未核实到公开仓库 |
| Task 4 多粒度 | 1 | NUSControl Lab(新加坡国立大学) | 76.8% | 多粒度联合模型,领先第二名约 12 个百分点 | 同上 | 未核实到公开仓库 |
注:Task 3 的官方裁定为并列第一(不同排名方法下前四名次序不稳定);IMPACT 队为非竞赛队伍。
§8.2 SOTA 总结与选型建议
挑战赛给出的三个稳定结论可直接指导选型:第一,phase/step 粒度上 RNN 类模型优于 CNN 类,运动学驱动的时序模型是低成本高回报的起点;第二,activity 粒度上多粒度联合模型占优(Task 4 前三名中 3 个为多粒度模型),若目标是细粒度语义,应直接采用共享编码器多任务头架构;第三,activity 整体天花板仅约 60%,把"提升 activity"作为主攻方向的研究应优先解决长尾组合与标注边界噪声,而不是盲目加深骨干。对复现者:先以运动学 + BiLSTM 复现 phase 基线(最快对齐 96.5% 量级),再逐步加入视频与多粒度头。
按任务选型的速查表(最优成绩均出自 §8.1 榜单,队名与数字可溯源):
| 目标任务 | 首选路线 | 对标最优成绩 | 选型依据 |
|---|---|---|---|
| Task 1 phase(3 类) | 运动学 + BiLSTM/GRU | 96.53%(MedAIR, CUHK) | RNN 优于 CNN;输入维度低、迭代快 |
| Task 2 step(7 类) | 运动学/视频 + 时序模型 | 84.02%(MedAIR, CUHK) | 步骤边界比 phase 密,转换点容差下仍可对齐 RNN 结论 |
| Task 3 activity(6 分量) | 多粒度联合模型 + 长尾处理 | 52.4%-61.6%(NUSControl Lab 与 UniandesBCV 并列) | 多粒度互证有效;瓶颈在长尾组合与标注噪声而非骨干容量 |
| Task 4 multi-granularity | 共享编码器 + 三任务头 | 76.8%(NUSControl Lab) | 官方证据:三任务联合对 activity 粒度有增益 |
§8.3 评测协议
官方指标 AD-Accuracy(average application-dependent balanced accuracy)包含三层设计:以 balanced accuracy 抵御类别不均衡(Idle 约 2% 帧);以 d = 500 ms 的转换点容差吸收标注边界歧义(预测转换点落在真实转换点 ±500 ms 内即视为该段全部帧正确);以 metric-based 排名聚合(ChallengeR 包实现)对 10 个测试用例取平均,并在排名方法间做稳定性检验,不稳定即判并列。评测代码与协议随挑战报告公开,这使 MISAW 成为同类小样本挑战中协议可复现性较高的一个。
§8.4 相关数据集表
| 数据集 | 场景 | 规模 | 与 MISAW 关系 |
|---|---|---|---|
| JIGSAWS | da Vinci 模拟器缝合/打结/穿针 | 103 段试验;76 维运动学 @ 30 Hz + 立体内镜视频 | 最接近的"前辈":同样含运动学 + 手势标注,但为腔镜尺度且器械维度更丰富 |
| CholecT50 | 真实腹腔镜胆囊切除 | 50 段视频,约 151,000 个三元组实例 | verb-target-instrument 三元组语义与 MISAW activity 同构,可做语义对齐研究 |
| AutoLaparo | 真实腹腔镜妇科手术 | 21 台手术,83,243 帧阶段标注 | phase 粒度数据源,真实场景无运动学 |
| SAR-RARP50 | da Vinci Si 前列腺切除 | 50 段视频(40/10),8 类手势 + 9 类分割 | 机器人手术手势 + 官方划分设计同构 |
| MultiBypass140 | 真实腹腔镜胃旁路 | 140 台手术,约 770,701 标注帧 | 大规模 phase/step + 不良事件,规模与 MISAW 互补 |
§8.5 关键论文 Top 6
- Huaulmé A, Sarikaya D, Le Mut K, Despinoy F, Long Y, Dou Q, Chng C-B, Lin W, Kondo S, Bravo-Sánchez L, Arbeláez P, Reiter W, Mitsuishi M, Harada K, Jannin P. MIcro-surgical anastomose workflow recognition challenge report. Computer Methods and Programs in Biomedicine, 2021, 212: 106452. DOI 10.1016/j.cmpb.2021.106452 — 数据集与挑战赛的一手权威报告(数据采集、标注协议、AD-Accuracy 定义、全部榜单)。
- Huaulmé A, et al. MIcro-Surgical Anastomose Workflow recognition challenge report. arXiv:2103.13111, 2021 — 挑战报告全文预印本(36 页含补充材料,含各参赛队伍完整结果表)。
- Huaulmé A, Harada K, Forestier G, Mitsuishi M, Jannin P. Sequential surgical signatures in micro-suturing task. International Journal of Computer Assisted Radiology and Surgery, 2018 — MISAW 的前置工作:显微缝合操作的序列化签名分解,奠定其 surgeme 式标注思路。
- Jannin P, Raimbault M, Morandi X, Gibaud B. Modeling surgical procedures for multimodal image-guided neurosurgery. Lecture Notes in Computer Science, 2001 — 手术过程模型(SPM)方法论的定义性文献之一,MISAW 三层粒度标注的理论源头。
- Mitsuishi M, et al. (主从显微手术机器人平台论文). International Journal of Medical Robotics and Computer Assisted Surgery, 2013, 9(2): 180-189 — MISAW 数据采集所用主从机器人平台的系统描述(挑战报告参考文献 [23])。
- Sandberg WS, et al. Deliberate perioperative systems design improves operating room throughput. Anesthesiology, 2007 — 手术室流程管理与资源调度背景文献,对应 phase/step 识别的临床应用出口。
§8.6 社区活跃度
MISAW 的社区规模小而稳定:挑战赛期间 24 名注册个人参与者、9 个数据文件累计 325 次下载、6 支队伍参赛;截至 2026-09,挑战报告论文在 Semantic Scholar 记录 54 次引用、5 次高影响力引用。数据集由雷恩大学 LTSI 团队以学术维护为主,未检索到官方代码仓库或活跃 issue 社区;后续引用集中于手术工作流识别与技能评估综述,未见大规模衍生基准。对其生态的正确预期是:小而精的方法论试验场,而非大规模刷榜赛道。
§8.7 生态快照表
| 资源 | 类型 | 链接 | 活跃状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| MISAW 数据集主页 | 官方数据托管 | https://www.synapse.org/MISAW | 单版本维护,可下载 | 唯一官方获取渠道;注意地区访问限制 |
| 挑战报告预印本 | 论文全文 | https://arxiv.org/abs/2103.13111 | 静态存档 | 含各队完整结果与补充材料,复现必读 |
| 期刊正式版 | 同行评审论文 | https://doi.org/10.1016/j.cmpb.2021.106452 | 正式发表 | 引用首选版本 |
| HAL 开放存档 | 论文存档 | https://hal.archives-ouvertes.fr/hal-03414465/ | 开放获取(CC BY-NC) | 免费合法全文下载 |
| ChallengeR | R 排名聚合包 | CRAN(检索 ChallengeR) | CRAN 维护 | 官方评测协议使用的排名聚合实现 |
§9 相关资源与引用
§9.1 官方资源导航
| 资源 | 说明 | 链接 |
|---|---|---|
| 数据集获取入口 | 注册 Synapse 后下载 9 个数据文件 | https://www.synapse.org/MISAW |
| 挑战报告全文(预印本) | 36 页,含补充材料与各队完整结果 | https://arxiv.org/abs/2103.13111 |
| 挑战报告全文(期刊版) | 同行评审版本,引用首选 | https://doi.org/10.1016/j.cmpb.2021.106452 |
| PubMed 条目 | 期刊版检索号 PMID 34688174 | https://pubmed.ncbi.nlm.nih.gov/34688174/ |
| HAL 开放存档 | CC BY-NC 全文与补充材料 | https://hal.archives-ouvertes.fr/hal-03414465/ |
| 采集平台文献 | Mitsuishi 等 2013,主从显微手术机器人平台 | Int J Med Robot Comput Assist Surg 9(2): 180-189 |
数据集未检索到官方教程、视频课程或社区论坛;技术问题建议通过挑战报告论文与 Synapse 平台讨论区寻求支持。
§9.2 BibTeX 完整引用
@article{huaulme2021misaw,
title = {MIcro-surgical anastomose workflow recognition challenge report},
author = {Huaulm{\'e}, Arnaud and Sarikaya, Duygu and Le Mut, K{\'e}vin and
Despinoy, Fabien and Long, Yonghao and Dou, Qi and Chng, Chin-Boon and
Lin, Wenjun and Kondo, Satoshi and Bravo-S{\'a}nchez, Laura and
Arbel{\'a}ez, Pablo and Reiter, Wolfgang and Mitsuishi, Mamoru and
Harada, Kanako and Jannin, Pierre},
journal = {Computer Methods and Programs in Biomedicine},
volume = {212},
pages = {106452},
year = {2021},
doi = {10.1016/j.cmpb.2021.106452}
}
@article{huaulme2021misaw_arxiv,
title = {MIcro-Surgical Anastomose Workflow recognition challenge report},
author = {Huaulm{\'e}, Arnaud and Sarikaya, Duygu and Le Mut, K{\'e}vin and others},
journal = {arXiv preprint arXiv:2103.13111},
year = {2021},
note = {MICCAI 2020 challenge report, 36 pages}
}
@article{huaulme2018sequential,
title = {Sequential surgical signatures in micro-suturing task},
author = {Huaulm{\'e}, Arnaud and Harada, Kanako and Forestier, Germain and
Mitsuishi, Mamoru and Jannin, Pierre},
journal = {International Journal of Computer Assisted Radiology and Surgery},
year = {2018}
}
§9.3 引用指南
使用 MISAW 数据集或引用其基准数字时:正式引用一律指向期刊版(huaulme2021misaw 条目);讨论各参赛队伍明细结果时引用 arXiv 版(含补充材料);提及数据采集机器人平台时补引 Mitsuishi 等 2013。报告自己实验数字时,必须注明使用的是官方 17/10 划分还是自定义受试者级划分,以及是否实现了 AD-Accuracy 的 500 ms 转换容差——缺少这两项声明的数字在文献中不可比。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 |
|---|---|
| 大语言模型(写作辅助) | 章节起草、语言润色、结构组织 |
| 大语言模型(检索辅助) | Web 检索结果摘要与交叉比对 |
| 无其他 AI 工具 | 表格数据与代码示例由编辑部基于公开资料编写 |
§10.2 AI 参与范围
AI 参与了本页面的初稿撰写、检索资料归纳与语言润色;所有事实性数字、编码映射、评测协议描述与代码示例均经过人工逐条核对,核对依据见 §10.3 输入来源。AI 未参与任何数值的推断或补全:凡未在来源中出现的数字,本页一律省略。
§10.3 输入来源列表
- Huaulmé A, et al., 2021, Computer Methods and Programs in Biomedicine 212: 106452. DOI 10.1016/j.cmpb.2021.106452(挑战报告期刊版——数据集规模、协议、榜单首要来源)
- Huaulmé A, et al., 2021, arXiv:2103.13111(挑战报告预印本全文,含补充材料与各队明细)
- PubMed 条目 PMID 34688174(期刊版摘要与机构归属核实)
- HAL 开放存档 hal-03414465(开放获取全文、CC BY-NC 许可与存档日期核实)
- Synapse 数据集主页 www.synapse.org/MISAW(官方获取渠道;地区访问限制实测记录)
- Mitsuishi M, et al., 2013, International Journal of Medical Robotics and Computer Assisted Surgery 9(2): 180-189(采集用主从机器人平台,经挑战报告参考文献 [23] 定位)
- Huaulmé A, Harada K, Forestier G, Mitsuishi M, Jannin P, 2018, International Journal of Computer Assisted Radiology and Surgery(显微缝合序列签名前置工作)
- Jannin P, Raimbault M, Morandi X, Gibaud B, 2001, Lecture Notes in Computer Science(SPM 方法论源头)
- Sandberg WS, et al., 2007, Anesthesiology(手术室流程管理应用背景)
- Forestier G, et al., 2018(手术技能学习曲线背景,经挑战报告参考文献定位)
- BioPortal SNOMED CT US Edition(UMLS 2025AB):426511000 Microvascular vessel anastomosis
- BioPortal SNOMED CT US Edition(UMLS 2025AB):428606004 Revision of microvascular anastomosis of blood vessel
- BioPortal SNOMED CT US Edition(UMLS 2025AB):1197481000 Reconstruction using free skin flap with microvascular anastomosis
- 澳大利亚 MBS 收费目录 item 45501/45502(显微血管吻合操作编码生态示例,NSW SIRA 2026 目录)
- Semantic Scholar API(DOI 10.1016/j.cmpb.2021.106452 的引用数 54,截至 2026-09)
- OpenDataLab / selectdataset 镜像页(3 名外科医生 + 3 名工科学生、30 Hz 同步的中英摘要交叉印证)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| INFOBOX 全部字段 | 千方病案医学编辑部 | 对照 FACTS.md 逐字段溯源 | ✅ 已验证 |
| §1 概览与对比表 | 千方病案医学编辑部 | 与挑战报告论文及库内条目交叉核对 | ✅ 已验证 |
| §2 医学背景与编码映射 | 千方病案医学编辑部 | SNOMED CT/BioPortal 原始条目核对 | ✅ 已验证 |
| §3 数据集规格 | 千方病案医学编辑部 | 逐项对应挑战报告论文正文 | ✅ 已验证 |
| §4 数据结构与字段字典 | 千方病案医学编辑部 | 对照论文 Table 2 与运动学字段描述 | ✅ 已验证 |
| §5 划分与泄漏分析 | 千方病案医学编辑部 | 对照官方划分表与受试者级设计 | ✅ 已验证 |
| §6 预处理与 8 个坑点 | 千方病案医学编辑部 | 坑点逐条溯源官方误差声明;代码人工走查 | ✅ 已验证 |
| §7 DAIMS 与偏倚分析 | 千方病案医学编辑部 | 24 项逐项评审计数复核 | ✅ 已验证 |
| §8 榜单与生态 | 千方病案医学编辑部 | 榜单数字对照论文;引用数对照 Semantic Scholar | ✅ 已验证 |
| §9-§10 引用与声明 | 千方病案医学编辑部 | BibTeX 逐字段核对 DOI 与作者列表 | ✅ 已验证 |
§10.5 AI 生成章节标注
本页面全部章节由 AI 辅助起草,经人工逐条核验后发布;核验记录见 §10.4。数字类内容(规模、比例、榜单成绩、引用数)均直接取自 §10.3 所列来源,无 AI 推断值。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
§C 结构化数据
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- SLAM-3D-Endoscopic — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- jigsaws — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- m2cai16-tool — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- multibypass140 — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- scared — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- hamlyn-datasets — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- c3vd — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- endoslam — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- endomapper — 共享标签:医学影像 / 手术视频 / 内窥镜影像
- EndoVis-Challenges — 共享标签:医学影像 / 手术视频 / 内窥镜影像
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
