Конфигурация
Настроить OMNI Agent можно через дашборд или через редактирование файлов конфигурации из папки OMNIAgent, которая по умолчанию расположена по адресу:
- Linux: ~/.local/share/OMNIAgent
- Windows: %LocalAppData%/OMNI Agent
Файлы конфигурации для редактирования доступны в папке config. Файлы конфигурации с настройками по умолчанию можно просмотреть в папке config.default. Обратите внимание, что значения параметров, указанных в файлах из папки config, имеют приоритет над значениями параметров для файлов из папки config.default.
Ниже представлены основные настройки, которые можно изменить в дашборде или отредактировать в файлах конфигурации run_params.json и log_params.json.
После изменения настроек необходимо перезапустить OMNI Agent.
Основные настройки
Настройка через файл конфигурации
Все параметры, указанные ниже, настраиваются в файле конфигурации config/run_params.json.
Для включения или отключения детекции тел установите значение параметра pipelines.body_detector.enabled:(Boolean)
как true
(включен) или false
(отключен).
Для включения или отключения детекции лиц установите значение параметра pipelines.face.enabled:(Boolean)
как true
(включен) или false
(отключен).
При отключении детекции лиц также отключается синхронизация с локальной базой данных лиц.
Для включения или отключения определения пола и возраста установите значение параметра pipelines.age_gender.enabled:(Boolean)
как true
(включен) или false
(отключен).
Для включения или отключения определения эмоций установите значение параметра pipelines.emotions.enabled:(Boolean)
как true
(включен) или false
(отключен).
Для включения или отключения детектора маски на лице установите значение параметра pipelines.mask_attribute.enabled:(Boolean)
как true
(включен) или false
(отключен).
Настройка через дашборд
Перечисленные выше параметры можно также включить или отключить через дашборд. Для этого нажмите на Настройки в правом верхнем углу дашборда OMNI Agent и активируйте необходимые опции (детекция тел, детекция лиц, детекция маски на лице человека, определение возраста и пола, определение эмоций).
Анонимный режим
Для защиты персональных данных в OMNI Agent предусмотрен анонимный режим, включенный по умолчанию. В анонимном режиме изображения лиц не передаются в OMNI Platform, что обеспечивает защиту персональных данных и исключает возможность распознавания человека вне системы. Включить или отключить анонимный режим можно через дашборд или через редактирование файла config/run_params.json.
Настройка через файл конфигурации
Для включения или отключения анонимного режима через файл конфигурации установите значение параметра anonymous_mode:(Boolean)
как true
(модуль включен) или false
(модуль отключен).
Настройка через дашборд
Для включения или отключения анонимного режима через дашборд нажмите на значок Настройки в дашборде OMNI Agent и выберите нужную опцию в открывшейся вкладке.
События
Включить или отключить передачу событий можно через дашборд OMNI Agent (только для событий HAR) или через редактирование файла config/run_params.json.
Настройка через файл конфигурации
Для включения или отключения событий через файл конфигурации установите значения параметров enable_activities
(события активностей), enable_identification
(события идентификации), enable_non_identification
(события неидентификации), enable_har
(события HAR: драка, падение, сидение, лежание), enable_line_crossing
(события пересечения линий в прямом/обратном направлении) и enable_roi_crossing
(события входа/выхода в/из ROI) как true
(модуль включен) или false
(модуль отключен).
В событиях идентификации передаются данные по кандидатам — профилям из базы, с которыми произошла идентификация (лицо с подаваемого кадра и лицо из базы имеют высокую степень схожести). Число допустимых кандидатов можно указать в поле:
pipelines.face.video_worker_override_parameters.search_k
: int, значение по умолчанию — 10.
Настройка через дашборд
Для включения или отключения событий через дашборд нажмите на значок Настройки в дашборде OMNI Agent и включите «Распознавание действий человека (HAR)».
Настройка кулдауна событий
Кулдаун событий — это временной интервал, который отсчитывается от первой детекции события, и в течение которого приостанавливается отправка повторных событий (дублей) идентификации и распознавания действий человека (HAR), случающихся из-за смены ракурса, поворота головы, пересечения треков людей или кратковременных заслонений.
Для настройки кулдауна откройте файл config/run_params.json и измените значения в следующих полях:
events.har_cooldown_interval
: int, значение по умолчанию — 5000 — кулдаун событий HAR (в мс).events.same_human_identification_cooldown_interval
: int, значение по умолчанию — 5000 — кулдаун событий идентификации (в мс).
Прокси-сервер
Настройка через дашборд
В случае если доступ пользователя к сети Интернет осуществляется через прокси-сервер, его подключение также потребуется для установки и настройки OMNI Agent. Для использования прокси-сервера нажмите на значок Настройки в дашборде OMNI Agent и выберите Системный (System) или Свой (Custom) прокси-сервер в открывшейся вкладке. При выборе настраиваемого прокси-сервера укажите его адрес в специальном поле. Далее нажмите кнопку Сохранить.
Порт веб-конфигуратора
Настройка через файл конфигурации
Все параметры, указанные в этом разделе, настраиваются в файле конфигурации config/run_params.json.
По умолчанию веб-конфигуратор запускается на порту 8080. Для изменения порта в файле конфигурации необходимо добавить поле http_server_port: (int)
и указать в нем желаемый порт открытия веб-конфигуратора.
Настройки распознавания лиц
В OMNI Agent используются детекторы и методы распознавания Face SDK — набора библиотек для разработки решений по распознаванию лиц. Распознавание включает в себя следующие операции сравнения биометрических шаблонов лиц:
- Верификация 1:1 — сравнение двух биометрических шаблонов (лиц) между собой, оценка совпадения.
- Идентификация 1:N — сравнение одного биометрического шаблона (лица) с другими шаблонами (лицами), поиск и оценка совпадений.
При сравнении шаблонов лиц вычисляется разница между биометрическими признаками лиц. Результат вычислений является мерой соответствия изображений лиц и отражает вероятность их принадлежности одному человеку.
Настройка через файл конфигурации
Все параметры, указанные ниже, настраиваются в файле конфигурации config/run_params.json.
Score: параметр score показывает степень схожести лиц от 0 (0%) до 1 (100%). Высокая степень схожести означает, что два биометрических шаблона принадлежат одному и тому же человеку. Для использования score выполните следующее:
Остановите OMNI Agent (закройте окно терминала с OMNI Agent).
Добавьте в файл конфигурации запись вида desired_score (float). Рекомендованное значение параметра: 0.876.
Запустите OMNI Agent.
При указанном score значения faR и frR не учитываются при распознавании.
faR: False acceptance rate (FAR) — коэффициент ложной идентификации, который показывает уровень сопротивления системы ошибкам ложной идентификации. Такая ошибка возникает, когда биометрическая система определяет новое лицо как ранее распознанное. Коэффициент измеряется количеством ложных распознаваний, деленным на общее количество попыток распознавания. Изменить значение faR можно в параметре
desired_far (float)
. По умолчанию в файле конфигурации указано значение faR, равное 1e-5.frR: False rejection rate (FRR). В случае если система не способна распознать ранее обнаруженное лицо, происходит ложное отклонение. Коэффициент ложного отклонения показывает процент попыток распознавания с ложным отклонением. Изменить значение frR можно в параметре
desired_frr (float)
. По умолчанию в файле конфигурации указано значение frR, равное 0.
Настройка через дашборд
Для настройки параметра score через дашборд войдите в Настройки и измените значение в поле Рекомендуемый score
.
Убедитесь, что значения score, указанные для OMNI Agent и OMNI Platform совпадают. В противном случае, часть активностей, сформированных из переданных процессов, не будет привязана к соответствующему профилю, а значит и оповещения для таких активностей приходить не будут.
Например:
- score, указанный на стороне OMNI Agent = 0.7
- score, указанный на OMNI Platform = 0.85
В этом случае активности, сформированные из процессов со значением score в диапазоне [0.7, 0.85), не будут прикреплены к соответствующему профилю, оповещения по ним также не появятся.
Настройки детекции и сравнения тел
Настройка через файл конфигурации
Чтобы исключить совпадения с низкой достоверностью, можно изменить пороговые значения достоверности детекции и сравнения тел.
Пороговое значение достоверности детекции тела указано в параметре
detector_confidence (float)
и по умолчанию равно 0,9. Диапазон значений: от 0 до 1.Пороговое значение достоверности сравнения тел указано в параметре
cos_reident_confidence (float)
и по умолчанию равно 0,6. Диапазон значений: от -1 до 1.
Логирование
Настройка через файл конфигурации
Просмотреть логи можно в файле logfile_*.log в папке log. Чтобы изменить уровень логирования, перейдите в файл конфигурации log_params.json и укажите значение для параметра sev_level(string)
. Доступные уровни логирования: TRACE, DEBUG, INFO, WARNING, ERROR, FATAL (перечислены по возрастанию степени важности).
Мультикамерность
Подключение дополнительного видеопотока (камеры)
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 ГБ свободного места.
Трейсы
Настройка через файл конфигурации
Для анализа результатов обработки видеопотоков и видеофайлов и выявления возникших проблем предусмотрена возможность сохранения лога обработки с высоким уровнем детализации. Формат такого лога и сам лог мы называем трейсом (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 к OMNI Platform (Запустите OMNI Agent, укажите URL сервера и введите учетные данные).
На странице Добавление камеры введите 123 в поле URL IP-камеры.
Закройте OMNI Agent через закрытие терминала.
Откройте файл конфигурации 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 не рекомендуется обрабатывать несколько видеофайлов одновременно.
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
(выключено).
Повторная отправка данных
При обрыве соединения данные, отправляемые OMNI Agent, сохраняются в специальное хранилище. Когда соединение восстановлено, происходит переотправка этих данных на сервер.
Откройте файл конфигурации TDV/tdv_connection_params.json и укажите значения для следующих переменных:
resend_on_success_count
: int — число пакетов для переотправки. Значение по умолчанию — 15.data_keeper_max_bytes
: int64 — максимальное число байт, допутимое в хранилище. Значение по умолчанию — 68719476736 (64 ГБ).
Настройка обрезки исходного кадра
Для оптимизации обработки видеопотоков и видеофайлов можно передавать в OMNI Agent не исходные, а обрезанные кадры (кропы). Параметры кропа (координаты левого верхнего угла, ширина и высота кропа) указываются в нормализованных координатах.
Обрезка рекомендуется, чтобы OMNI Agent не тратил ресурсы на обработку статичных объектов, расположенных по бокам исходного кадра (Например, стены, шкафа и др.).
Настройка через файл конфигурации
Откройте файл конфигурации 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
}
}
}
]
}
Настройка через дашборд
Для обрезки исходного кадра в дашборде нажмите на шестеренку в правом верхнем углу карточки добавленной камеры. На открывшейся вкладке нажмите на значок редактирования в разделе Область обрезки кадра.
В результате вы перейдете на страницу, где можно изменить размеры иходного кадра превью камеры, потянув за красные края изображения. После редактирования нажмите Сохранить.
В результате на главной странице дашборда будет отображаться превью новых размеров.
Генерация биометрических шаблонов
По умолчанию на генерацию биометрических шаблонов выделено 1 ядро (1 поток) процессора на 1 камеру, чего может быть недостаточно при работе OMNI Agent в многопоточном (мультикамерном) режиме. Чтобы увеличить число потоков генерации шаблонов, откройте файл конфигурации config/run_params.json и измените значение множителя масштабирования:
pipelines.face.processing_scale_factor
: float, значение по умолчанию — 1.5.