Конфигурация
Настроить 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.
Биометрические шаблоны
Настройка числа потоков построения шаблонов
По умолчанию на генерацию биометрических шаблонов выделено 1 ядро (1 поток) процессора на 1 камеру, чего может быть недостаточно при работе OMNI Agent в многопоточном (мультикамерном) режиме. Чтобы увеличить число потоков генерации шаблонов, откройте файл конфигурации config/run_params.json и измените значение множителя масштабирования:
pipelines.face.processing_scale_factor
: float, значение по умолчанию — 1.5.
Режимы построения шаблонов
По умолчанию OMNI Agent строит биометрический шаблон по каждому изображению лица, которое проходит по установленному в системе порогу качества изображения. В результате тратятся значительные вычислительные ресурсы оборудования. Для оптимизации процесса в OMNI Agent предусмотрено три режима построения биометрических шаблонов. Выбрать подходящий режим и задать к нему параметры можно в Настройках дашборда OMNI Agent.
Построение шаблона по мере прироста качества изображения лица на n %
Для построения следующего шаблона лица качество нового изображения должно быть выше качества изображения, по которому уже построен шаблон, на значение порога прироста качества. Порог (минимальная разница между качеством старого и нового изображения требуемая для построения шаблона по новому изображению) можно задать в поле Порог прироста качества
в Настройках дашборда OMNI Agent. Диапазон значений: от 0 (0%) до 1 (100%). Значение по умолчанию: 0.3 (30%).
Если вам требуется как можно быстрее получить идентификацию (например, в сценарии СКУД, когда требуется, чтобы система как можно быстрее узнала и пропустила человека), установите порог прироста качества, равный 1
.
Построение шаблона по лучшему изображению лица за t мсек присутствия в кадре
Длительность временного интервала можно задать в поле Тайм-аут построения шаблона
в Настройках дашборда OMNI Agent. Время начинает отсчитываться с момента появления лица в кадре по каждому лицу отдельно. По завершении интервала строится шаблон по изображению с лучшим качеством. После завершения интервал не перезапускается, соответственно даже при появлении изображения лица с лучшим качеством в последующих треках шаблон по нему строиться не будет.
Если человек вышел из кадра раньше чем закончился заданный временной интервал, шаблон строится по лучшему изображению за время нахождения в кадре.
Построение шаблона по лучшему изображению лица за весь период присутствия в кадре (в треке)
Трек лица (последовательность кадров видеопотока, на которых изображен один и тот же человек) формируется с момента обнаружения лица в видеопотоке и до момента его потери (человек отвернулся, был перекрыт другими людьми, вышел из кадра и т.д.). Когда трек завершен, OMNI Agent выбирает кадр с кропом лучшего качества в треке и строит по нему биометрический шаблон.
Настройка прокси-сервера
Настройка через дашборд
В случае если доступ пользователя к сети Интернет осуществляется через прокси-сервер, его подключение также потребуется для установки и настройки 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
Системные требования:
Windows:
- CUDA Toolkit 11.8
- cuDNN v8.8.0 для CUDA 11.x
Linux:
- CUDA Toolkit 11.8
- cuDNN v8.8.0 для CUDA 11.x
Требования к оборудованию:
- Графический процессор (GPU) с поддержкой CUDA (от NVIDIA GTX 1050 Ti до RTX 4090 включительно (Compute capability 3.5-9.0)).
Использование 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
}
}
]Запустите OMNI Agent.
OMNI Agent завершит работу по завершении обработки видеофайла. Результаты обработки в формате процессов и/или событий будут переданы в OMNI Platform или внешний сервис по вебхукам.примечаниеДля стабильной работы OMNI Agent не рекомендуется обрабатывать несколько видеофайлов одновременно.