Что такое deface и как это работает
deface — это утилита командной строки, разработанная лабораторией ORB-HD, которая решает задачу автоматической анонимизации человеческих лиц в медиафайлах. Алгоритм работает в два этапа: сначала происходит детекция всех лиц в каждом кадре видео или на изображении, затем к обнаруженным областям применяется фильтр анонимизации. По умолчанию инструмент удаляет все аудиодорожки, оставляя только визуальный ряд.
Инструмент кроссплатформенный и поддерживает Linux, Windows и macOS. Графический интерфейс не предусмотрен, работа осуществляется через терминал (bash). Это делает решение идеальным для интеграции в серверные пайплайны обработки данных или для пользователей, предпочитающих командную строку.
Ключевые возможности и режимы анонимизации
Разработчики предусмотрели несколько режимов обработки лиц, позволяющих гибко настраивать уровень анонимизации под конкретные задачи. Выбор фильтра осуществляется через флаг --replacewith:
- blur (по умолчанию): сильное гауссово размытие эллиптической области лица.
- solid: замена лица на сплошной черный прямоугольник.
- mosaic: наложение мозаики. Размер фрагмента настраивается через
--mosaicsize(по умолчанию 20 пикселей). - img: замена лица на пользовательское изображение (задается через
--replaceimg). - none: пропуск области без изменений (полезно для тестирования).
Дополнительно можно управлять формой маски (--boxes для прямоугольников вместо эллипсов), отображать оценки уверенности детектора (--draw-scores) и сохранять аудиодорожку (--keep-audio).
Технические детали и производительность
В основе работы лежит модель ONNX. По умолчанию система пытается использовать бэкенд ONNX Runtime (onnxrt) для максимальной скорости, но при его отсутствии переключается на OpenCV. Пользователь может явно указать провайдер выполнения (execution provider) для использования GPU или других аппаратных ускорителей.
Для оптимизации скорости обработки доступно масштабирование входных изображений перед инференсом нейросети через параметр --scale WxH (например, 640x360). Это позволяет ускорить обработку видео высокой четкости за счет снижения разрешения до размера, достаточного для корректной детекции.
Настройка чувствительности детектора
Ключевым параметром настройки является порог уверенности детектора --thresh (по умолчанию 0.2). Этот параметр позволяет балансировать между ложными срабатываниями и пропуском лиц:
| Параметр | Значение по умолчанию | Влияние на результат |
|---|---|---|
--thresh |
0.2 | Низкое значение: больше ложных срабатываний (размытие не-лиц). Высокое значение: риск пропустить реальные лица. |
--mask-scale |
1.3 | Коэффициент увеличения маски. Гарантирует, что размытие покрывает все лицо, включая уши и волосы. |
--mosaicsize |
20 | Размер пикселя мозаики. Требует увеличения для видео высокого разрешения. |
Установка и запуск
Требования: Python 3.6+. Установка осуществляется через pip:
python3 -m pip install deface
Для получения последней версии из репозитория:
python3 -m pip install 'git+https://github.com/ORB-HD/deface'
Быстрый старт для анонимизации видео:
deface myvideos/vid1.mp4
Результат будет сохранен в файл myvideos/vid1_anonymized.mp4. Также доступна функция live-обработки с веб-камеры через команду deface cam.
Источник: Github ↗
