腔镜 AI 怎么判断「在体内」还是「在体外」:97.55% 的准确率是怎么测出来的
最近半年,手术室项目的需求文件里开始出现一类新条款:腔镜插入时自动开始录制、拔出时自动停止,全程不需要人工按键。写这条要求的采购人,通常也会同时问一句——判断准不准?
厂商给出的回答往往是一个百分数,比如 97.55%。但一个孤立的准确率数字,几乎无法回答设备科和信息科真正关心的问题:它在我们的手术间里会不会误停?会不会录了一堆空画面?这个数字是怎么测出来的、能不能复现?这篇文章就拆这件事。
一、先把这个任务定义清楚:它不是「识别手术」,而是一次二分类
很多讨论一上来就跑偏,是因为把「腔镜 AI」想象成了理解手术过程的东西。实际落地在录制联动上的那部分能力,任务边界要窄得多:给模型一帧腔镜画面,输出一个标签——画面里的镜头是在体腔内,还是在体外。
输入的到底是什么
输入是腔镜摄像系统输出的一帧图像,不是整段视频,也不含患者信息。输出只有两类,属于典型的二分类。这个定义决定了三件事:模型很轻(本机的腔镜识别推理约 5ms/帧,跑在 3TOPS 的边缘算力上)、不需要联网、不接触任何病历数据。
也正因为任务窄,它才能在手术室里离线跑:推理在设备本地完成,画面不出手术间,这对信息科来说是比准确率更前置的一条要求。
五个真正决定体验的边界场景
干净的体外画面和清晰的体腔内画面,区分起来并不难。难的是两者之间的过渡段,以及画面质量下降的时候。现场常见的五类情况:
- 插入与拔出的瞬间:镜头一半在鞘内、一半在体腔,画面可能同时具备两侧特征。
- 镜头贴壁或抵住组织:画面变成一片红色或粉色,与体外某些背景的纹理接近。
- 出血与烟雾:能见度下降,画面信息量骤减,模型可依据的特征变少。
- 纱布、缝线、标本袋遮挡:画面里出现大面积白色织物,容易被误认为体外。
- 镜头起雾或血污附着:整幅画面模糊,边缘与纹理特征被削弱。
一份只报总体准确率的评测,通常不会告诉你这五类场景各自的表现。而手术室里出问题的,恰恰是这几段。
二、97.55% 这个数字,由四个变量共同决定
「准确率」在机器学习里是一个有明确定义的量:判对的样本数除以总样本数。但这个定义里,有四个变量是可以被选择的,选择不同,同一个模型能报出很不一样的结果。
| 变量 | 不同取值会带来什么 | 读者该问的问题 |
|---|---|---|
| 测试集来源 | 用公开数据集、用厂商自采素材、用医院真实手术录像,难度依次上升 | 测试素材是自采的,还是来自真实手术间的完整录像? |
| 类别定义 | 「体外」是否包含镜鞘内、体表、标本台等过渡画面,边界越模糊越难判 | 过渡段算体内还是体外?怎么标注的? |
| 样本结构 | 体内帧与体外帧的比例会直接改变总体准确率的含义 | 测试集里两侧样本大致是什么比例? |
| 统计口径 | 总体准确率、体内召回率、体外误报率,三个数可能相差很多 | 能否分别给体内与体外的召回率? |
举个具体的算法:如果测试集里体外帧占多数,而模型倾向于把模糊画面判成体外,那么总体准确率依然会很好看,但手术中真正需要录下来的体内片段反而会被漏掉。这就是为什么单独一个 97.55%,无法直接换算成「在我们的手术间好不好用」。
两个方向的误判,代价并不对等
这是验收时容易被忽略的一点。把体内判成体外、把体外判成体内,后果完全不同:
| 误判方向 | 现场表现 | 后果 |
|---|---|---|
| 体内判成体外 | 录制中途停止,过一会儿又重新开始 | 关键片段缺失,事后无法补录,属于不可逆损失 |
| 体外判成体内 | 该停的时候没停,文件被拉长 | 多占存储、检索变慢,内容本身不丢 |
两个方向的代价不对称,因此判断一套系统好不好用,看的不是总体准确率,而是「体内片段的召回率」加上「单位时间内的误启停次数」。前者决定你会不会丢东西,后者决定这套自动化会不会烦人。
三、从「识别」到「自动录制」,中间还隔着一层工程逻辑
还有一个常被混淆的点:单帧推理 5ms,不等于系统响应 5ms。真实的自动启停,是一条带确认机制的链路,而不是「这一帧判成体内就立刻开录」。
按 30fps 计算,每帧间隔约 33.3ms。如果只看单帧,97.55% 的准确率意味着每 1000 帧里约有 24 帧判错——1000 帧在 30fps 下约 33 秒。也就是说,如果没有任何时序处理,一套系统平均每半分钟就有一次误判机会,录制会被反复打断又重启,这样的自动化没人愿意用。
所以工程上必须加一层时序确认:
| 环节 | 作用 | 可调参数与代价 |
|---|---|---|
| 单帧分类 | 给出当前帧的体内/体外判断 | 模型本身;约 5ms/帧,几乎不占时间 |
| 连续帧确认 | 要求连续多帧一致才改变状态,滤掉瞬时误判 | 窗口长度;取 5 帧时确认延迟约 167ms,窗口越长越稳、响应越慢 |
| 状态机与回滞 | 维持「记录中 / 待机」两个状态,避免在边界反复启停 | 回滞与超时设置;决定短时遮挡会不会中断录制 |
| 触发与打点 | 启动或停止录制,写入时间戳 | 与手术档案关联;决定事后能不能定位到具体片段 |
这四层里,真正影响使用者感受的是第二层和第三层——它们决定了「插入后多久开始录」和「短暂遮挡会不会断」。百毫秒级的确认延迟,医生在操作上没有感知;但如果窗口取得太短、回滞做得不够,一场手术里被切成十几段文件,事后检索的成本就会上去。
这也是为什么这类能力适合放在设备端做:确认逻辑、状态机和录制触发都在同一台机器里,不需要跨系统传递状态,也不会因为网络抖动影响判断。H.264/H.265 录制、30 分钟自动分片、U 盘与 SSD 双盘同录,与这套状态机是同一条链路的两端。
四、验收时怎么自己测:三个可复现的动作
厂商的测试集说明不了本院的情况,但医院完全可以自己复现一次评测。不需要算法团队,一台设备加一段历史录像就够。
- 用本院历史录像做回放测试。挑 5—10 例覆盖不同专科的完整录像,其中要有出血、烟雾、纱布遮挡、镜头反复进出这几种情况。把信号接进设备,看它自动切分的片段边界落在哪里,和人工标记的插入/拔出时刻差多少。
- 数误动作次数,而不是只看准确率。按一台设备连续 8 小时工作计算,记录「不该停却停了」和「不该录却录了」各发生几次。这两个数字直接对应使用体验,比任何百分数都好沟通,也方便写进验收单。
- 核对时间戳能不能对上手术档案。关键事件带时间戳输出、与手术档案关联,是这类能力的主要价值。把导出的文件与手术记录逐条对一遍,看能不能在几分钟内定位到指定片段——对不上,说明打点逻辑还没打通。
顺带说一句需求文件的写法。与其写「腔镜识别准确率不低于 95%」,不如写成可执行的条件:以本院 30 例历史录像回放为准,单台设备连续 8 小时运行中,非预期停止录制次数不超过 N 次;体内片段召回率不低于 X%;关键事件时间戳与手术记录的时间偏差不超过 Y 秒。这样写,投标方才需要拿真实素材来证明,而不是只报一个数字。
顺带一提,今天行业动态里有一条 4K3D 摄像系统的招标,单套预算报到 310 万元(见行业动态)。成像端升级之后,画面细节更多、颜色更真实,对识别类模型通常是好事——但测试集也要跟着换,用 1080P 素材训出来的模型,放到 4K 画面上的表现需要重新验证,这一点在设备换代时经常被漏掉。
结语
把 97.55% 这个数字拆开看,它其实是一句话的缩写:在某个测试集、某种类别定义、某种样本结构下,模型判对了 97.55% 的帧。这句话对厂商是完整的,对采购人是不完整的。
要补上的部分,是「误判往哪个方向偏」和「确认机制怎么设计」。前者决定会不会丢关键片段,后者决定这套自动化在日常手术里能不能被接受。这两件事都可以在验收阶段用本院素材测出来,成本不高,但能把很多后续争议提前挡掉。
LYang GS300 把腔镜场景识别放在设备本地:ARM 8 核 CPU 与 3TOPS 边缘算力,5ms 级单帧推理,配合连续帧确认与状态机完成自动启停,识别结果与录制文件、时间戳一起留在手术间内,不上传到任何外部服务。想了解这套链路与既有摄像系统、示教系统的对接方式,可以看技术对比页,或直接在产品中心查完整参数。
关于LYang:LYang专注数字化手术室一体化解决方案,核心产品 LYang GS300 矩阵编码一体机将矩阵、编码器、解码器、多画面处理器、AI 推理引擎、控制主机集成于一台设备,100% 全国产芯片,3TOPS AI 算力,10 分钟完成示教推车升级,1 天完成手术室数字化改造,成本较传统方案直降 60% 以上。官网:www.shuzhouvip.com