Распознавание лиц и силуэтов
OMNI Agent детектирует лица и силуэты, определяет атрибуты лиц (пол, возраст, эмоции и др.), строит биометрические шаблоны, выполняет по ним поиск задетектированных лиц в базе данных и отслеживает перемещения лица и силуэта в поле зрения камер или на видеозаписях. По умолчанию синхронизация базы лиц OMNI Agent с базой лиц OMNI Platform происходит в среднем 1 раз в минуту.
Распознавание лиц
Для детекции и идентификации лиц (1:N) в OMNI Agent используются детекторы и методы распознавания Face SDK — набора библиотек для разработки решений по распознаванию лиц.
Идентификация (1:N) представляет собой процесс сравнения одного биометрического шаблона (лица) с другими шаблонами (лицами), поиск и оценку совпадений. При сравнении шаблонов лиц вычисляется разница между биометрическими признаками лиц. Результат вычислений является мерой соответствия изображений лиц и отражает вероятность их принадлежности одному человеку.
Основные настройки
Все параметры, указанные ниже, настраиваются в файле конфигурации config/run_params.json.
Основные настройки также можно изменить через веб-интерфейс. Для этого перейдите в Настройки в правом верхнем углу веб-интерфейса OMNI Agent.
Включить / отключить распознавание лиц
Установите значение параметра enable_face_tracking:(Boolean)
как true
(включен) или false
(отключен).
При отключении детекции лиц также отключается синхронизация с локальной базой данных лиц.
Параметры распознавания лиц
score
Параметр показывает степень схожести лиц от 0 (0%) до 1 (100%). Высокая степень схожести означает, что два биометрических шаблона принадлежат одному и тому же человеку.
Изменить значение score можно в поле desired_score (float)
файла run.params.json. Значение по умолчанию — 0.876.
При указанном score значения faR и frR не учитываются при распознавании.
Убедитесь, что значения score, указанные для OMNI Agent и OMNI Platform совпадают. В противном случае, часть активностей, сформированных из переданных процессов, не будет привязана к соответствующему профилю.
Например:
- score, указанный на стороне OMNI Agent = 0.7
- score, указанный на OMNI Platform = 0.85
В этом случае активности, сформированные из процессов со значением score в диапазоне [0.7, 0.85), не будут прикреплены к соответствующему профилю.
faR
False acceptance rate (FAR) — коэффициент ложной идентификации, который показывает уровень сопротивления системы ошибкам ложной идентификации. Такая ошибка возникает, когда биометрическая система определяет новое лицо как ранее распознанное. Коэффициент измеряется количеством ложных распознаваний, деленным на общее количество попыток распознавания. Изменить значение faR можно в параметре desired_far (float)
. По умолчанию в файле конфигурации указано значение faR, равное 1e-5.
frR
False rejection rate (FRR). В случае если система не способна распознать ранее обнаруженное лицо, происходит ложное отклонение. Коэффициент ложного отклонения показывает процент попыток распознавания с ложным отклонением. Изменить значение frR можно в параметре desired_frr (float)
. По умолчанию в файле конфигурации указано значение frR, равное 0.
Число кандидатов на идентификацию
Кандидат — это профиль из базы лиц, с которым произошла идентификация (лицо с подаваемого кадра и лицо из базы имеют высокую степень схожести). Число допустимых кандидатов можно указать в поле pipelines.face.video_worker_override_parameters.search_k: int
. Значение по умолчанию — 3.
Включить / отключить оценку пола и возраста
Установите значение параметра pipelines.age_gender.enabled:(Boolean)
как true
(включен) или false
(отключен).
Включить / отключить оценку эмоций
Установите значение параметра pipelines.emotions.enabled:(Boolean)
как true
(включен) или false
(отключен).
Биометрические шаблоны
Настройка построения шаблонов
При попадании человека в кадр OMNI Agent строит биометрический шаблон по первому изображению его лица, которое проходит по установленному в системе порогу качества изображения. Генерацию шаблонов можно включить / отключить в Настройках OMNI Agent (включена по умолчанию).
Настройка числа потоков построения шаблонов
По умолчанию на генерацию биометрических шаблонов выделено 1 ядро (1 поток) процессора на 1 камеру, чего может быть недостаточно при работе OMNI Agent в многопоточном (мультикамерном) режиме. Чтобы увеличить число потоков генерации шаблонов, откройте файл конфигурации config/run_params.json и измените значение множителя масштабирования:
pipelines.face.processing_scale_factor
: float, значение по умолчанию — 1.5.
Лучшие кадры (best shots)
Лучший кадр (best shot) — это лучшее по качеству изображение лица, взятое за определенное время нахождения человека в кадре.
Непрерывный поиск лучшего кадра
По умолчанию OMNI Agent настроен на непрерывный поиск лучшего кадра лица на протяжении всего времени нахождения человека в поле зрения камеры.
Для непрерывного поиска можно также указать временной таймаут (по умолчанию 3000 мс). Это означает, что во время нахождения человека в кадре каждые 3000 мс будет выполняться поиск нового лучшего кадра его лица.
Таким образом, при выходе человека из кадра мы получим самое качественное изображение лица за весь трек. Полученное изображение можно использовать для автоматической идентификации по базе разыскиваемых, а также для опознания свидетелями, распечатки для служб охраны, поиска в соцсетях и т.д.
Таймаут поиска лучшего кадра
Для идентификации лиц на видеопотоках с камер важно не только обеспечить точность результата, но и уложиться во время, отводимое на идентификацию в рамках пользовательских сценариев (Например, для СКУД часто необходима мгновенная идентификация, чтобы не создавать очередей перед турникетом, а для сбора аналитики посещений время на идентификацию можно не ограничивать).
При этом точность и время на идентификацию определяются временем, которое система может потратить на поиск на видеопотоке с камеры лучшего кадра лица, который и будет отправлен на идентификацию.
Здесь работает негласное правило: чем больше времени на идентификацию, тем больше кадров одного и того же лица можно получить и сравнить между собой, и выбрать их них наиболее качественный кадр, который и будет отправлен на идентификацию. А чем качественнее кадр, подаваемый на идентификацию, тем точнее результат идентификации.
Начиная с версии 2.7.0, через веб-интерфейс OMNI Agent доступна настройка времени поиска лучшего кадра. Мы рекомендуем указывать следующие временные значения в зависимости от сценария использования:
![](img/best_shot_search_1.png)
![](img/agent_turnstile.png)
![](img/agent_safe_city.png)
![](img/agent_analytics.png)
Отправка лучших кадров по вебхукам
Для отправки лучших кадров по вебхукам включите опцию «Отправка лучших кадров по вебхукам» в Настройках веб-интерфейса OMNI Agent, либо укажите значение true для поля enable_webhook_image2jpg_conversion
. Значение по умолчанию — false. Лучший кадр кодируется в base64 как jpeg изображение.
Распознавание силуэтов
Включить / отключить распознавание силуэтов
Настройка через файл конфигурации
Установите значение параметра enable_body_tracking:(Boolean)
как true
(включен) или false
(отключен).
Чтобы исключить совпадения с низкой достоверностью, можно изменить пороговые значения достоверности детекции и сравнения тел.
Пороговое значение достоверности детекции тела указано в параметре
detector_confidence (float)
и по умолчанию равно 0,9. Диапазон значений: от 0 до 1.Пороговое значение достоверности сравнения тел указано в параметре
cos_reident_confidence (float)
и по умолчанию равно 0,6. Диапазон значений: от -1 до 1.
Настройка через веб-интерфейс
Включить или отключить детекцию тел также можно через веб-интерфейс. Для этого нажмите на Настройки в правом верхнем углу веб-интерфейса OMNI Agent.