最近录制数据时,为了保护隐私,我做了一个小工具:video-privacy-blur
在采集街景、测试视频时,经常会拍到人脸和车牌,这些信息在分享或存储前必须做匿名化处理。手动后期太耗时,于是我基于 Ultralytics YOLO + OpenCV 做了一个一键批处理的工具。
只需要一条命令,就能完成车牌 / 人脸检测并自动马赛克或模糊处理,支持 CPU / GPU / Apple MPS,既能处理视频文件,也能直接用摄像头输入。
https://github.com/MengWoods/video-privacy-blur
✨ 功能特点
- 检测模型:基于 YOLOv8,高精度检测人脸和车牌
- 设备支持:CPU / GPU / MPS 自动选择
- 可选目标:可独立开关人脸或车牌处理
- 匿名化方式:高斯模糊 / 像素化(马赛克)
- 易用性:文件或摄像头都能直接处理
- 零配置:车牌检测权重直接下载即可使用,无需手动标注
📦 快速开始
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
🚀 使用示例
# 同时模糊人脸和车牌(高斯模糊)
privacy-blur --plate-weights models/license_plate_detector.pt \
--face-detector yolo \
--face-yolo-weights models/yolov8n-face.pt \
--input input.mp4 --output out.mp4 --device auto --show
# 仅处理车牌
privacy-blur --input dashcam.mp4 --no-blur-faces
# 仅处理人脸,像素化,使用 GPU
privacy-blur --input street.mp4 --no-blur-plates --method pixelate --device cuda
🔧 常用参数
--input
输入视频路径或摄像头序号--output
输出视频路径(默认out_blurred.mp4
)--device
运行设备:auto
/cpu
/cuda
/mps
--method
匿名方式:gaussian
(模糊) /pixelate
(马赛克)--blur-strength
模糊强度(数值越低越模糊)--pixelate-blocks
马赛克块数(数值越低越粗)
💡 开发初衷
我在进行自动驾驶和感知系统测试时,需要录制道路视频。但数据中经常包含大量无关人员和车辆的隐私信息,如果后期一个个手动遮挡,不仅耗时还容易遗漏。
另外这个车牌识别模型还是有一些不足的地方,未来有可能我重新训练个模型来提升准确率。