应用介绍
街拍、vlog、会议录像要发出去,路人和同事的脸得先挡住。剪辑软件里手动打码,要一帧帧拖着马赛克框跟脸走,人一转头就露馅。video-face-anonymizer 是一个给 AI Agent 用的 Skill,丢一段视频进去,它自动找出每一张脸并全程跟住,马赛克、模糊或纯黑块随你选,声音原样保留。
它不只是逐帧检测:检测到的人脸框会做时间上的平滑,镜头晃动时遮挡框不会乱跳;某几帧漏检了,框还会继续停留一小段时间,侧脸、低头的瞬间不至于突然露脸。输出固定是 H.264 + yuv420p 的 MP4,直接发 Telegram 或者丢进常见播放器都能放。
两种检测器:默认用 InsightFace 的 SCRFD,远景小脸、侧脸、弱光和多人画面都更稳,代价是 CPU 上慢一些;光线好的近景、中景可以切到 YuNet,速度快得多。
三种遮挡方式:
平滑跟踪:用 IoU 把前后帧的人脸框配对并做加权平滑,
漏检保持:
可调参数:
保留音频和兼容格式:处理完用 FFmpeg 把原音轨合回去,统一编码成 H.264、yuv420p,并开启 faststart,网页上也能边下边播。
自带验收流程:Skill 里写明了交付前要用 ffprobe 核对编码和音轨,并在开头、中间、结尾、侧脸、最近和最远的人脸等至少六个时间点对比原片,确认没有能认出来的脸再交付。
安装:
它不只是逐帧检测:检测到的人脸框会做时间上的平滑,镜头晃动时遮挡框不会乱跳;某几帧漏检了,框还会继续停留一小段时间,侧脸、低头的瞬间不至于突然露脸。输出固定是 H.264 + yuv420p 的 MP4,直接发 Telegram 或者丢进常见播放器都能放。
软件功能
两种检测器:默认用 InsightFace 的 SCRFD,远景小脸、侧脸、弱光和多人画面都更稳,代价是 CPU 上慢一些;光线好的近景、中景可以切到 YuNet,速度快得多。
三种遮挡方式:
--mode mosaic 马赛克(默认)、blur 高斯模糊、black 纯黑遮罩。隐私要求高的素材建议用纯黑,马赛克和模糊只是视觉遮挡,不是不可逆处理。平滑跟踪:用 IoU 把前后帧的人脸框配对并做加权平滑,
--smooth 控制跟随的稳定程度。漏检保持:
--hold 设置人脸暂时没检测到时遮罩继续保留多少帧,转头、被手挡一下也不会漏出来。可调参数:
--det-size 调大能抓到更远更小的脸,--margin 扩大遮罩范围盖住脸的边缘,--score 调整检测置信度。保留音频和兼容格式:处理完用 FFmpeg 把原音轨合回去,统一编码成 H.264、yuv420p,并开启 faststart,网页上也能边下边播。
自带验收流程:Skill 里写明了交付前要用 ffprobe 核对编码和音轨,并在开头、中间、结尾、侧脸、最近和最远的人脸等至少六个时间点对比原片,确认没有能认出来的脸再交付。
安装:
pip install opencv-python numpy insightface onnxruntime,系统里另需 ffmpeg;只用 YuNet 的话装 opencv-python 和 numpy 就够。首次使用 SCRFD 会自动下载约 275 MB 的 buffalo_l 模型。运行命令是 python scripts/face_mosaic.py input.mp4 output.mp4。
