给含人脸、车牌的视频做隐私脱敏,最基础的问题不是算法——而是数据该去哪里算。
云端方案看似省事:传上去、返回遮罩、拉回来。但原始视频本身可能涉及人员身份或敏感场景,上传即意味着不可控的留存期。对合规要求高的团队来说,这已经不是技术选型问题,而是红线问题。
所以我们的选择从一开始就是本地运行。模型内置随包分发,不需要联网加载;推理全程在本机 CPU 或 GPU 上完成。
架构设计上,把耗时操作放进后台线程是必须的。界面主线程不能因为检测在跑就卡住——所有耗时操作用跨线程信号槽回传结果,工作线程不碰界面组件。
追踪比检测更难。人脸检测用的是 YOLO11 模型加 BoT-SORT 跟踪器,但 ultralytics 版本稍有不匹配就会缺少必要的参数导致整个追踪链崩溃,所以必须锁死版本号。车牌用微调过的 YOLO 检测框再过滤一遍置信度和重叠。
二维码的检测回退链也值得提:先试分割网络出多边形轮廓;不行回退到 OpenCV 内置模块;还不行走传统库。关键是三个 opencv 变体共用同一个 cv2 目录,容易互相覆盖,安装完必须强制重装 contrib 版本。
macOS 端用 Apple Vision 框架做号码 OCR——它比通用 OCR 引擎对小字更敏感。非 macOS 平台则切到 EasyOCR,后者在 CPU 上能用。同一套正则表达式向下兼容处理。
去水印修复做了两个方案:LaMa 逐帧修,速度快但缺少时序信息;ProPainter 用光流做跨帧推理,效果更好但在时序段过长时视野受限,需要切分窗口来保证每个帧的输入条件不变。
最后说一个容易忽略的点:音频轨道。源视频通道数不对的时候滤镜链会挂掉,直接输出无声成片。解决方法是加一层布局推断——按声道数推默认布局,优先做无损拷贝而非重编码。
本文来自抹影的开发笔记。

1038

被折叠的 条评论
为什么被折叠?



