Интеграции
Вебхуки
Для настройки передачи процессов через вебхуки перейдите в файл конфигурации run_params.json
и укажите значения для параметра webhook_tracking_subscribers
. Параметр представляет собой список объектов, описывающих адрес сервера, принимающего процессы с OMNI Agent и представлен в двух версиях:
Версия 1
{
"url": "http://127.0.0.1:5000/trigger" // указание адреса с эндпоинтом
}
Версия 2 (установлена по умолчанию)
{
"host": "127.0.0.1", // адрес
"port": "5000", // порт
"is_secured": false, // флаг http/https
"path": "/trigger" // эндпоинт
}
Добавить вебхук также можно в Настройках веб-интерфейса OMNI Agent.
Данные передаются по вебхукам в формате процессов. Массив процессов отправляется в начале и окончании трекинга, при идентификации человека по базе данных, при нахождении человека в области интереса или при пересечении размеченных линий, а также каждые 5 секунд (по умолчанию).
Чтобы изменить интервал отправки процессов, отредактируйте поле ongoings_interval_in_msec
в файле run_params.json (измеряется в миллисекундах).
Для отправки лучших кадров по вебхукам включите опцию "Отправка лучших кадров по вебхукам" в Настройках веб-интерфейса OMNI Agent, либо укажите значение true
для поля enable_webhook_image2jpg_conversion
. Значение по умолчанию - false
. Лучший кадр кодируется в base64 как jpeg изображение.
Спецификация API
В дополнение к интерфейсу веб-конфигуратора, OMNI Agent использует следующие HTTP эндпоинты.
/about
Получение информации о версии OMNI Agent.
Метод: GET
Параметры запроса: -
Параметры ответа:
- version: string - версия OMNI Agent
- full_version_with_hash: string - версия OMNI Agent с хэшем
- build_hash: string - хэш git коммита, из которого собран OMNI Agent
- build_date: string - дата сборки OMNI Agent
- name: string - имя исполняемого файла OMNI Agent
- used_software: object - объект, описывающий версии используемых библиотек
- FaceSDK: string - версия используемого Face SDK
- may_be_standalone: bool - признак доступности standalone режима.
/external_process/begin
Запуск внешнего (медиа) процесса.
Метод: POST
Параметры запроса:
- repeats: bool - признак повторяемого (зацикленного) процесса
- name: string - имя (для класса Медиа - имя видеофайла)
- class: string - класс внешнего процесса (по умолчанию - media)
- duration: int - предполагаемая длина процесса. По умолчанию 0.
- 0 - длина неизвестна.
- started_at: int - внутренняя метка времени запуска внешнего процесса.
- stream_uuid: UUID string - идентификатор камеры, к которому привязывается этот внешний процесс. По умолчанию - пустая строка.
- Процессы, не привязанные к камерам, игнорируются.
Параметры ответа: -
/external_process/end
Завершает последний открытый внешний (медиа) процесс соответствующий запрошенным параметрам (помечены звёздочкой).
Метод: POST
Параметры запроса:
- name*: string - имя (для класса Медиа - имя видеофайла)
- class*: string - класс внешнего процесса (по умолчанию - media)
- stopped_at: int - внутренняя метка времени остановки внешнего процесса.
- stream_uuid: UUID string - идентификатор камеры, к которому привязывается этот внешний процесс. По умолчанию - пустая строка.
- Если камера одна - выбирается единственная доступная.
- Процессы, не привязанные к камерам, игнорируются.
Параметры ответа: -
/external_process/terminate_all
Завершает все открытые внешние процессы, привязанные к видеопотоку с соответствующим UUID.
Метод: POST
Параметры запроса:
- stream_uuid: UUID string - идентификатор камеры, по умолчанию - пустая строка.
- Если пустая строка - удаляются все процессы (для всех камер)
Параметры ответа: -
/multistream_bodies
Запрос положения людей на карте объекта/помещения.
Метод: GET
Параметры запроса: -
Параметры ответа:
- views: object - маппинг view name →view object.
<view name>
: object - содержит информацию о детекциях тел на данном виде. Имя объекта соответствует названию вида. По умолчанию используется имя “top_view”.- view_name: string - название вида. По умолчанию “top_view”.
- camera_frames_data: object - объекты с метками времени кадров, на которых получены исходные детекции для каждого видеопотока в виде маппинга stream_uuid →frame_data
<stream_uuid>
: object - объект с метками времени кадра, на котором получена исходная детекция. Имя объекта - идентификатор видеопотока.- frame_index, timestamp_microsec, timestamp_millisec, video_timestamp
- objects: array multistream objects - массив мультистрим детекций тел
- object - информация о детекции тела на данном виде (карте)
- bbox: array float[2…] - координаты детекции на данном виде (последовательность x, y координат). Число точек не менее 1, определяется методом преобразования координат bbox исходных объектов. По умолчанию содержит координаты 1 точки, соответствующей положению ног человека на карте объекта/помещения.
- class: string = “body”.
- id: int - порядковый номер детекции на данном виде. В общем случае не совпадает с номерами детекций исходных объектов.
- score: float - уверенность детектора, среднее значение соответствующего параметра исходных объектов.
- source_objects: object - маппинг stream_uuid →source object.
<stream_uuid>
: object - исходный объект детекции на видеопотоке stream_uuid.
- object - информация о детекции тела на данном виде (карте)
Если функция "Трекинг людей на карте (Beta)" отключена или некорректно настроена, содержимое объекта views будет пустым.