Конфигурация
Настроить OMNI Agent можно через веб-интерфейс или через редактирование файлов конфигурации из папки OMNIAgent, которая по умолчанию расположена по адресу:
- Linux: ~/.local/share/OMNIAgent
- Windows: %LocalAppData%/OMNI Agent
Файлы конфигурации для редактирования доступны в папке config. Файлы конфигурации с настройками по умолчанию можно просмотреть в папке config.default. Обратите внимание, что значения параметров, указанных в файлах из папки config, имеют приоритет над значениями параметров для файлов из папки config.default.
Ниже представлены основные настройки, которые можно изменить в веб-интерфейсе или отредактировать в файлах конфигурации config/run_params.json и log_params.json.
После изменения настроек перезапустите OMNI Agent.
Настройки детекции и распознавания лиц
В OMNI Agent используются детекторы и методы распознавания Face SDK — набора библиотек для разработки решений по распознаванию лиц. Распознавание включает в себя следующие операции сравнения биометрических шаблонов лиц:
- Верификация 1:1 — сравнение двух биометрических шаблонов (лиц) между собой, оценка совпадения.
- Идентификация 1:N — сравнение одного биометрического шаблона (лица) с другими шаблонами (лицами), поиск и оценка совпадений.
При сравнении шаблонов лиц вычисляется разница между биометрическими признаками лиц. Результат вычислений является мерой соответствия изображений лиц и отражает вероятность их принадлежности одному человеку.
Настройка через файл конфигурации
Все параметры, указанные ниже, настраиваются в файле конфигурации config/run_params.json.
Как включить или отключить детекцию и распознавание лиц
Установите значение параметра pipelines.face.enabled:(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.
Настройки детекции и сравнения тел
Настройка через файл конфигурации
Как включить или отключить детекцию тел
Установите значение параметра pipelines.body_detector.enabled:(Boolean)
как true
(включен) или false
(отключен).
Чтобы исключить совпадения с низкой достоверностью, можно изменить пороговые значения достоверности детекции и сравнения тел.
Пороговое значение достоверности детекции тела указано в параметре
detector_confidence (float)
и по умолчанию равно 0,9. Диапазон значений: от 0 до 1.Пороговое значение достоверности сравнения тел указано в параметре
cos_reident_confidence (float)
и по умолчанию равно 0,6. Диапазон значений: от -1 до 1.
Настройка через веб-интерфейс
Включить или отключить детекцию тел также можно через веб-интерфейс. Для этого нажмите на Настройки в правом верхнем углу веб-интерфейса OMNI Agent.
Биометрические шаблоны
Настройка построения шаблонов
При попадании человека в кадр 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 мс будет выполняться поиск нового лучшего кадра. Такая настройка оптимальна для сценариев использования, не требующих мгновенной идентификации (Например, безопасный город или СКУД с использованием камер, детектирующих лицо еще за несколько секунд до подхода к турникету), где можно потратить больше времени на поиск лучшего кадра и потенциально получить более точный результат идентификации.
Тем не менее, для удаленной идентификации / СКУД с использованием биометрических терминалов, где требуется мгновенно войти в приложение /открыть турникет, интервал в 3000 мс существенно замедлит процесс выполнения сценария. Для таких случаев укажите 0 мс в поле «Тайм-аут поиска лучшего кадра» в Настройках веб-интерфейса OMNI Agent. В результате, при попадании человека в поле зрения камеры лучшим кадром будет автоматически признан первый прошедший по порогу качества кадр, который и будет отправлен на идентификацию.
Отправка лучших кадров по вебхукам
Для отправки лучших кадров по вебхукам включите опцию «Отправка лучших кадров по вебхукам» в Настройках веб-интерфейса OMNI Agent, либо укажите значение true для поля enable_webhook_image2jpg_conversion. Значение по умолчанию — false. Лучший кадр кодируется в base64 как jpeg изображение.
Настройка прокси-сервера
Настройка через веб-интерфейс
В случае если доступ пользователя к сети Интернет осуществляется через прокси-сервер, его подключение также потребуется для установки и настройки OMNI Agent. Для использования прокси-сервера нажмите на значок Настройки в веб-интерфейсе OMNI Agent и выберите Системный (System) или Свой (Custom) прокси-сервер в открывшейся вкладке. При выборе настраиваемого прокси-сервера укажите его адрес в специальном поле. Далее нажмите кнопку Сохранить.
Настройка порта веб-конфигуратора
Настройка через файл конфигурации
Все параметры, указанные в этом разделе, настраиваются в файле конфигурации config/run_params.json.
По умолчанию веб-конфигуратор запускается на порту 8080. Для изменения порта в файле конфигурации необходимо добавить поле http_server_port: (int)
и указать в нем желаемый порт открытия веб-конфигуратора.
Настройка повторной отправки данных
При обрыве соединения данные, отправляемые OMNI Agent, сохраняются в специальное хранилище. Когда соединение восстановлено, происходит повторная отправка этих данных на сервер.
Откройте файл конфигурации TDV/tdv_connection_params.json и укажите значения для следующих переменных:
resend_on_success_count
: int — число пакетов для переотправки. Значение по умолчанию — 15.data_keeper_max_bytes
: int64 — максимальное число байт, допутимое в хранилище. Значение по умолчанию — 68719476736 (64 ГБ).
Настройка обрезки исходного кадра
Для оптимизации обработки видеопотоков и видеофайлов можно передавать в OMNI Agent не исходные, а обрезанные кадры (кропы). Параметры кропа (координаты левого верхнего угла, ширина и высота кропа) указываются в нормализованных координатах.
Обрезка рекомендуется, чтобы OMNI Agent не тратил ресурсы на обработку статичных объектов, расположенных по бокам исходного кадра (Например, стены, шкафа и др.).
Настройка через файл конфигурации
Откройте файл конфигурации config/run_params.json и добавьте в поле web_cams
новый объект вида:
frame_crop
:x
: float — X координата левого верхнего угла в нормализованных координатах исходного кадра.y
: float — Y координата левого верхнего угла в нормализованных координатах исходного кадра.width
: float — ширина кропа в нормализованных координатах.height
: float — высота кропа в нормализованных координатах.
Например, поле web_cams
с заполненными полями кропа изображения будет выглядеть так:
{
"web_cams": [
{
"color_camera": {
"creationDate": "2023-10-12T09:41:42.789486+00:00",
"id": "7da98714-ae35-4832-834b-83cf82e4fe7a",
"lastModified": "2023-10-12T09:47:38.190009+00:00",
"real_name": "",
"stream": "rtsp://guest:q2w3e4r5t@192.168.122.154/stream",
"title": "rtsp://192.168.122.97:554",
"type": "IP"
"frame_crop": {
"x": 0.2,
"y": 0.3,
"width": 0.3,
"height": 0.25
}
}
}
]
}
Настройка через веб-интерфейс
Для обрезки исходного кадра в веб-интерфейсе нажмите на шестеренку в правом верхнем углу карточки добавленной камеры. На открывшейся вкладке нажмите на значок редактирования в разделе Область обрезки кадра.
В результате вы перейдете на страницу, где можно изменить размеры иходного кадра превью камеры, потянув за красные края изображения. После редактирования нажмите Сохранить.
В результате на главной странице веб-интерфейса будет отображаться превью новых размеров.
Настройка GPU
Использование CUDA
Для ускорения работы OMNI Agent с использованием GPU откройте файл конфигурации config/run_params.json и включите использование CUDA:
Настройка через файл конфигурации
Включить CUDA для детектора лиц:
pipelines.face.video_worker_override_parameters.use_cuda
: bool -true
(включено),false
(выключено).
Включить CUDA 10 для детектора лиц (use_cuda
должен быть true
):
pipelines.face.video_worker_override_parameters.use_legacy
: bool -true
(включено),false
(выключено).
Включить CUDA для распознавания лиц:
pipelines.face.recognizer_override_parameters.use_cuda
: bool -true
(включено),false
(выключено).
Включить CUDA 10 для распознавания лиц (use_cuda
должен быть true
):
pipelines.face.recognizer_override_parameters.use_legacy
: bool -true
(включено),false
(выключено).
Включить CUDA для детектора тел:
pipelines.body_detector.use_cuda
: bool -true
(включено),false
(выключено). Необходимо самостоятельно прописать это поле в config/run_params.json.
Включить CUDA для распознавания действий (HAR):
pipelines.action_recognition.use_cuda
: bool -true
(включено),false
(выключено). Необходимо самостоятельно прописать это поле в config/run_params.json.
Для использования CUDA во всех задачах кроме работы с лицами можно включить поле use_cuda_onnx
в config/run_params.json.
Настройка через веб-интерфейс
Включить CUDA для детектора лиц, распознавания лиц и одновременно для работы детектора тел и HAR можно в Настройках веб-интерфейса OMNI Agent.
Логирование и трейсы
Настройка логов
Настройка через файл конфигурации
Просмотреть логи можно в файле logfile_*.log в папке log. Чтобы изменить уровень логирования, перейдите в файл конфигурации log_params.json и укажите значение для параметра sev_level(string)
. Доступные уровни логирования: TRACE, DEBUG, INFO, WARNING, ERROR, FATAL (перечислены по возрастанию степени важности).
Настройка трейсов
Настройка через файл конфигурации
Для анализа результатов обработки видеопотоков и видеофайлов и выявления возникших проблем предусмотрена возможность сохранения лога обработки с высоким уровнем детализации. Формат такого лога и сам лог мы называем трейсом (Trace).
Для включения или отключения сбора трейсов через файл конфигурации log_params.json в объекте traces
установите значения параметров enable
(включение трейсов, true/false) и trace_interval_in_msec
(интервал сбора трейсов, целое число).
При включении записи трейсов OMNI Agent будет писать в консольный вывод сообщения вида:
"Starting to write the trace...", "Trace written: " <UUID>
После последнего сообщения записывается новый файл с названием, равным написанному UUID.
Полученные трейсы сохраняются в поддиректории по адресу:
- Linux: ~/.local/share/OMNIAgent/Traces
- Windows: %LocalAppData%/OMNI Agent/Traces
Соответствующие файлы удовлетворяют формату BSON при чтении, начиная со второго байта.
Мультикамерность
Подключение дополнительного видеопотока (камеры)
OMNI Agent поддерживает подключение к нескольким видеопотокам (камерам).Настройка через веб-интерфейс
Для подключения дополнительного видеопотока через веб-интерфейс OMNI Agent нажмите Добавить камеру на странице камер и укажите IP или USB камеру.
Настройка через файл конфигурации
Чтобы подключить дополнительный видеопоток к OMNI Agent через редактирование файла конфигурации, выполните следующие шаги:
- В файле конфигурации config/run_params.json создайте новый объект камеры в массиве
web_cams
. Для этого просто скопируйте уже существующий объект камеры из массиваweb_cams
. - В параметре
stream
нового объекта камеры укажите IP-адрес или ID новой подключаемой камеры. Для USB камер дополнительно требуется указать размер кадра: width и height. - Запустите и активируйте OMNI Agent.
В результате, OMNI Agent будет передавать данные в OMNI Platform уже с двух видеопотоков (камер).
Для подключения и работы дополнительных видеопотоков потребуется машина со следующими расчетными характеристиками:
- CPU: Число ядер = 1 ядро + 3 x число видеопотоков @3ГГц с поддержкой AVX. При отключении одного из модулей (лицо/тело) убирается 1 ядро процессора. В этом случае число ядер = 1 + 2 x число видеопотоков.
- RAM: 1 ГБ + 1 ГБ x число видеопотоков. Указан необходимый свободный объем ОЗУ. При отключении одного из из модулей (лицо/тело) ожидается уменьшение множителя потоков на 25%. В этом случае объем ОЗУ = 1 ГБ + 0,75 ГБ x число видеопотоков.
- HDD: 3 ГБ свободного места.
Обработка видеофайлов
Для запуска OMNI Agent для обработки видеофайлов выполните следующие шаги:
Подключите OMNI Agent к OMNI Platform (Запустите OMNI Agent, укажите URL сервера и введите учетные данные).
На странице Добавление камеры введите 123 в поле URL IP-камеры.
Закройте OMNI Agent через закрытие терминала.
Откройте файл конфигурации config/run_params.json:
- Windows: %LocalAppData%\OMNIAgent\config\run_params.json
- Linux: ~/.local/share/OMNIAgent/config/run_params.json
Включите поле "lock_cam_on_module_creation".
"lock_cam_on_module_creation": true,
В разделе
web_cams
в полеstream
укажите путь до нужного видеофайла.Добавьте поля:
"is_benchmark_camera": true
"is_nonlocking_camera": true
Укажите значения для полей
title
иreal_name
(опционально).Пример раздела
web_cams
для запуска OMNI Agent для обработки видеофайла:"web_cams": [
{
"color_camera": {
"creationDate": "2023-12-12T08:32:30.879147+00:00",
"frame_crop": {
"height": 1,
"width": 1,
"x": 0,
"y": 0
},
"id": "c59fe4cb-5e9a-4bcb-a34b-e88879d1d692",
"lastModified": "2023-12-12T08:32:30.879109+00:00",
"real_name": "",
"stream": "/home/stranger/Downloads/test_video_office.mp4",
"title": "test_vid",
"type": "IP",
"is_benchmark_camera": true,
"is_nonlocking_camera": true
}
}
]подсказкаПуть в поле "stream" должен содержать только латинские буквы и цифры. При заполнении поля на Windows используйте обратные слэши:
"C:\\Users\\vikki\\Desktop\\test_video_office.mp4"
.Запустите OMNI Agent.
OMNI Agent завершит работу по завершении обработки видеофайла. Результаты обработки в формате процессов и/или событий будут переданы в OMNI Platform или внешний сервис по вебхукам.примечаниеДля стабильной работы OMNI Agent не рекомендуется обрабатывать несколько видеофайлов одновременно.