手术视频预处理构想

1、手术视频预处理全流程技术路线

(1)

在这里插入图片描述

(2)图像帧预处理

在这里插入图片描述

(3)音频预处理

在这里插入图片描述

2、镜头检测 & 切割

核心问题:手术视频有很多"无效片段"需要过滤

需要检测/过滤的情况:
├── 镜头插入/拔出(画面全黑)
├── 镜头擦拭(画面模糊过渡)
├── 手术室灯光切换(突然亮度变化)
├── 非手术片段(准备阶段、缝合后)
└── 镜头切换(多摄像头系统)

推荐技术方案:

方案 适用场景 优劣
PySceneDetect 通用镜头切换 ✅ 开箱即用
❌ 对手术黑帧不够精准
帧差法(自研) 黑帧/模糊帧过滤 ✅ 轻量精准,适合手术特有问题
CLIP相似度 语义级场景变化 ✅ 最准
❌ 慢,适合离线

建议:PySceneDetect 做粗检测 → 帧差法做黑帧/模糊帧精过滤,两步走

3、帧提取 & 采样

核心问题:手术视频通常25fps,1小时 = 90,000帧,必须降采样

采样策略对比:

均匀采样(1fps): 简单,但会丢关键动作
关键帧采样: 基于内容变化,信息密度高 ← 推荐
自适应采样: 动作快时密采,静止时稀采 ← 最优但复杂

推荐技术方案:

工具 说明
Decord 比 OpenCV 快 5-10 倍的视频读取库,强烈推荐
FFmpeg 命令行批量提帧,最稳定
自研关键帧 相邻帧 SSIM/感知哈希差异阈值过滤

建议:Decord读帧 + 感知哈希去重,1fps均匀采样作为基础,关键帧采样作为补充

4、画质增强

手术视频特有的画质问题:

问题分类:
├── 烟雾(electrosurgical smoke) ← 最常见,严重影响模型
├── 镜面反光(specular highlight) ← 金属器械反光
├── 运动模糊(motion blur) ← 快速操作
├── 低照度(low illumination) ← 体腔内光线不足
└── 气泡/水雾(bubble/fogging) ← 内窥镜特有

推荐技术方案:

问题 推荐方案 说明
烟雾去除 SMOKE论文系列 / DehazeNet ✅ 有专门针对手术烟雾的论文
反光抑制 高光检测mask + inpainting ✅ 检测高亮区域后修复
运动模糊 跳过模糊帧(比去模糊更实用) Laplacian方差检测,直接跳过模糊帧
低照度 CLAHE(自适应直方图均衡) OpenCV一行代码,增强效果明显
整体增强 Real-ESRGAN ✅ 通用超分+去噪,效果最稳定

建议:工程上优先"检测并丢弃"问题帧,而不是"修复"问题帧,更稳定

5、格式标准化

目标:让所有来源的视频变成统一格式,后续模型无感知输入差异

需要统一的维度:
├── 分辨率 → 统一 resize(如 256×448 或 224×224)
├── 帧率 → 统一为 25fps 或 1fps(取决于任务)
├── 色彩空间 → RGB(模型标准),手术视频原始多为YUV
├── 像素归一化 → [0,1] 或 ImageNet mean/std
├── 存储格式 → .mp4(视频)或 .jpg序列(帧)
└── 元数据 → JSON记录:来源、时长、分辨率、有效帧范围

建议:最终输出统一为 帧序列 + metadata.json,比存视频文件更方便后续模型训练

6、肯定要做成一个即插即用的预处理引擎

目标:任何人拿到这个引擎,改一个配置文件,就能跑通自己的手术视频预处理,不用改代码。

7、音频的预处理,我放在和音频特征识别一起写

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐