Библиотека предназначена для определения лиц людей на видео в режиме реального времени. Направления её использования включают (но не ограничиваются) системы борьбы с терроризмом и поиска преступников, системы слежения и социального наблюдения.
Основные возможности:
- Обнаружение фронтально ориентированных (лицом к камере) лиц в видеопотоке (размеры лиц от 20×20 пикселей до полного кадра, количество одновременно обнаруживаемых лиц – гарантированно не менее 50, в перспективе – до тысячи).
- Отслеживание обнаруженных лиц (сохранение уникального идентификатора каждого лица от кадра к кадру) до момента их исчезновения из вида или скрытия за препятствием; система по возможности также отслеживает лица, исчезающие кратковременно (до 1 секунды) вследствие перекрытия или поворота головы.
- Возможность обрабатывать в реальном времени видео высокого разрешения. Достигнутые в настоящее время показатели: обработка до 60 кадров в секунду для 2-мегапиксельного видео (1920×1080), до 20 кадров в секунду 5-мегапиксельного видео (на одном GPU уровня GeForce GTX 780), при задержке порядка 0,1 секунды.
- Обработка параллельно нескольких видеопотоков.
- В перспективе возможность обрабатывать видео более высокого разрешения (вплоть до 6576×4384) (потенциал по расширению функциональности и поддержке устройств).
- Поддержка работы с несколькими видеокартами.
- Получение потока из файла или сетевого (RTSP) источника, поддержка разных кодеков (в том числе h264).
- Аппаратное декодирование видео с использованием ресурсов видеокамеры.
Для обнаружения лиц используется каскадный детектор Виолы-Джонса с базовым классификатором на основе LBP (модифицированна реализация из OpenCV, в которую добавлена поддержка асинхронной работы и улучшено использование видеокарты при параллельной обработке нескольких кадров). Детектор обучен на собственной выборке из 4000 лиц. Для отслеживания используется алгоритм Kanade-Lucas-Tomasi Pyramidal Feature Tracking, а также реализация из OpenCV с добавлением возможности асинхронной работы.