Перейти к основному содержимому
Версия: 3.0.0 (последняя)

Процессы и события

OMNI Agent преобразует результаты распознавания и трекинга в формат процессов и событий для последующей передачи в OMNI Platform или сторонние сервисы.

Процессы

Процесс — это формат представления результатов распознавания и трекинга, реализованный в рамках временных интервалов.

Каждый процесс содержит следующий набор данных:

  • Идентификатор процесса.
  • Временной интервал процесса (начало и окончание процесса).
  • Тип процесса (трек, человек, лицо, тело, эмоция и др.).
  • Объект детекции с определёнными атрибутами лица (объектом выступает человек, попавший в поле зрения камеры).
  • Лучший кадр (best shot).

Спецификация процессов

Структура процессов

Описание полей структуры процессов

Общая структура

{
"processes": [ { ... } ]
}

processes – список всех процессов, зафиксированных системой. Каждый процесс описывается в соответствии с одной из схем в "$defs/process".

Базовые определения

process_base

  • id – UUID процесса (уникальный идентификатор).

  • type – определяет тип процесса (track, emotion, action и т.д.).

  • time_interval – временной интервал процесса (начало и конец в ISO8601).

  • finalized – признак того, что процесс завершён.

object_base

  • object – источник (объект), для которого создаётся процесс:

    • id – UUID объекта.

    • class – тип объекта: "human", "face", "body".

child_process_base

  • parent – UUID родительского процесса, к которому относится текущий (например, лицо связано с процессом human).

numerical_base

  • numerical_id – внутренний числовой идентификатор процесса.

object_source_base

  • object.source – источник, создавший объект (например, камера).

process_source_base

  • source – уникальный идентификатор камеры, с которой наблюдается процесс.

crop_base_base64 и crop_base_binary

  • best_shot – сохранённый кадр (лучшее изображение объекта), может быть:

    • закодирован в Base64 (crop_base_base64),

    • бинарный с метаданными (crop_base_binary).

__bsm (Binary Sample with Meta)

  • blob – бинарные данные (base64).

  • format – формат хранения (например, NDARRAY).

  • dtype – тип данных (uint8_t, float и т.п.).

  • shape – размерность массива данных.

  • color_format – цветовое пространство (RGB, BGR, GRAY и т.д.).

Конкретные процессы

human_process: Процесс отслеживания человека.

Содержит:

  • ссылку на источник (source),

  • базовые атрибуты трекинга (process_base_track),

  • описание объекта (object_base),

  • опционально – match_data:

    • profileGroups – группы профилей, в которых найден человек.

    • distance, fr_r, fa_r, score – метрики распознавания.

face_process: Процесс отслеживания лица.

object:

  • class = "face",

  • age – возраст,

  • gender – пол (MALE, FEMALE, UNKNOWN),

  • quality – качество детекции.

  • Может содержать "best_shot" (кадр лица).

body_process: Процесс отслеживания тела.

object:

  • class = "body",

  • bbox – координаты рамки тела (x,y),

  • score – вероятность верной детекции.

emotion_process: Определение эмоции по лицу.

  • emotion – строка с названием эмоции.

  • type = "emotion".

attention_process: Определение внимания (например, смотрит ли человек на экран).

  • type = "attention".

joint_process: Отслеживание ключевых точек скелета.

object:

  • class = "joint",

  • joint – название точки (например, "nose", "left_wrist"),

  • bbox – координаты,

  • score – метрика достоверности.

presence_process: Определение присутствия в зоне интереса (ROI).

  • object.class = "roi",

  • object.name – имя зоны,

  • action = "roi_presence".

trigger_crossing_process: Событие пересечения линии.

  • object.class = "trigger",

  • object.name – имя линии,

  • action = "trigger_crossing",

  • direction – направление (in или out).

action_recognition_process: Процесс распознавания действия.

  • action – название действия (например, "fall").

external_process: Внешний процесс (например, воспроизведение видео).

  • object.class = "media",

  • name – название видео,

  • type = "external",

  • repeats – повторяется ли,

  • duration – длительность,

  • internal_time_interval – внутренний интервал.

Вспомогательные поля

  • __uuid – UUID (уникальный идентификатор).

  • timestamp – время в ISO8601.

  • positive_integer – положительное число.

  • __dtype – тип данных (для бинарных массивов).

События

Событие — это формат представления результатов распознавания и трекинга, отражающий факт совершения действия. OMNI Agent может формировать следующие типы событий:

  • События типа Face:
    • События идентификации (человек с камеры найден в базе).
    • События неидентификации (человек с камеры не найден в базе).
    • События контроля сокрытия лица (человек находится в области интереса (ROI) или пересекает размеченную линию, и при этом прячет лицо, чтобы избежать распознавания).
  • События типа HAR:
    • Падение
    • Драка
    • Лежание
    • Сидение
  • События типа Regions:
    • События ROI (человек находится в области интереса (ROI) или вышел из нее).
    • События пересечения линий (человек пересек размеченную на видеопотоке линию в прямом/обратном направлении).

События отправляются в OMNI Platform по проприетарному протоколу или во внешние сервисы по вебхукам. Из OMNI Platform можно настроить передачу полученных событий во внешние сервисы через веб-сокеты. Дополнительную информацию см. в документации OMNI Platform.

Спецификация событий

Структура событий

Описание полей структуры событий

Структура события идентификации:

  • type (тип события) — identification.
  • date — время события.
  • id — идентификатор события.
  • object (объект, породивший событие):
    • class — класс объекта (например, human).
    • id — идентификатор объекта.
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human, face).
  • source — идентификатор видеопотока.
  • trigger_source:
    • id
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • original_image — исходный кадр (опционально).
  • identification_data — массив профилей-кандидатов на идентификацию:
    • profile_id — идентификатор профиля.
    • group_ids — идентификатор группы, в которую добавлен профиль.
    • score — степень схожести лица с кадра с лицом из профиля от 0 (0%) до 1 (100%).
    • far — вероятность ошибочных подтверждений, когда система принимает изображения разных людей за изображение одного и того же человека.
    • frr — вероятность ошибочных отказов, когда система принимает два изображения одного и того же человека за изображения разных людей.
    • distance — расстояние между сравниваемыми векторами шаблонов. Чем меньше значение, тем выше уверенность в корректном распознавании

Структура события неидентификации:

  • type (тип события) — non_identification.
  • date — время события.
  • id — идентификатор события.
  • object (объект, породивший событие):
    • class — класс объекта (например, human).
    • id — идентификатор объекта.
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human, face).
  • source — идентификатор видеопотока.
  • trigger_source:
    • id
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • original_image — исходный кадр (опционально).

Структура события ROI:

  • type (тип события) — roi.
  • date — время события.
  • id — идентификатор события.
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human, body).
  • source — идентификатор видеопотока.
  • trigger_source:
    • id
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • original_image — исходный кадр (опционально).
  • roi_data (данные о нахождении в области интереса):
    • direction (нахождение/выход в/из ROI) — in/out.

Структура события пересечения линии:

  • type (тип события) — crossing.
  • date — время события.
  • id — идентификатор события.
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human, body).
  • source — идентификатор видеопотока.
  • trigger_source:
    • id
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • original_image — исходный кадр (опционально).
  • crossing_data (данные о пересечении линии):
    • direction (пересечение линии в прямом/обратном направлении) — in/out.

Структура события HAR:

  • type (тип события) — har.
  • date — время события.
  • id — идентификатор события.
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human, body).
  • source — идентификатор видеопотока.
  • trigger_source:
    • id
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • original_image — исходный кадр (опционально).
  • har_data (данные о распознанных действиях):
    • action (действие: драка, падение, сидение, лежание) — fight, fall, sit, lie.

Структура события контроля сокрытия лица:

  • type (тип события) — face_hide_control.
  • date — время события.
  • face_hide_control_data:
    • group_ids — идентификатор группы, в которую добавлен профиль.
    • match_event_id — идентификатор события идентификации.
    • no_suitable_face — флаг, описывающий, было ли задетектировано лицо, которое требуется найти в базе.
    • profile_id — идентификатор профиля из базы.
    • status — статус контрольной проверки.
  • id — идентификатор события.
  • image — кроп детекции.
  • image_bbox — нормализованные координаты детекции.
    • [0] - x1 координата
    • [1] - y1 координата
    • [2] - x2 координата
    • [3] - у2 координата
  • parents (родитель события, как правило, процесс):
    • id — идентификатор родителя события.
    • type — тип родителя события (например, human или body).
  • source — идентификатор видеопотока.
  • trigger_source (данные о триггере, запустившем событие, например, добавленной линии пересечения или ROI):
    • id — идентификатор триггера.
    • name — название триггера.