Блоки

Начало

image.png

Блок “Начало” запускает работу сценария и принимает данные, необходимые для выполнения сценария. Это обязательный блок в сценарии наравне с блоком "Конец".

image.png
Название блока - впишите любое название блока, чтобы отличать его от других блоков в рабочем пространстве. Например, "Начало сценария Умного Шлагбаума"

image.png

Типы стартовых блоков:

Входящее изображение: используется для обработки сценариев основанных на получении изображения 

Входящий видеопоток

Запрос к видеопотоку 

Завершающий сценарий

image.png
Дополнительные параметры - параметры необходимые для выполнения сценария

image.png

Для большинства сценариев имеет смысл добавить в стартовый блок следующие переменные, поэтому они по умолчанию добавлены в блок "Начало", автоматически создаваемый в новом сценарии:

time - хранит время получения события

source - хранит источник получения события

img_key - хранит уникальный идентификатор изображения

camera_id - хранит уникальный идентификатор камеры

img_bytes - хранит изображение 

camera_name - хранит название камеры присвоенное при ее добавлении
scenario_id  - хранит уникальный идентификатор сценария


Конец

image.png


Блок "Конец" завершает работу сценария. Это обязательный блок в сценарии так же, как и блок "Начало".

image.png
Название блока - впишите любое название блока, чтобы отличать его от других блоков в рабочем пространстве. Например, "Конец сценария Умного Шлагбаума"

image.png
Действие. Сейчас в этом поле возможно выбрать только одно действие "Завершить обработку кадра" 

image.png
Дополнительные параметры - здесь вы можете добавить при необходимости параметры в формате "Ключ - Значение"

Значение для переменной

image.png

Изменяет значение переменной по ходу выполнения сценария.

Входные параметры: 
Переменная - поле принимает переменную значение которой нужно изменить по ходу выполнения сценария 
Выходные параметры: 
Та же переменная с новым значением

Условие

image.png


Дает возможность сравнивать переменные и в зависимости от результата сравнения разводить сценарий по разным веткам.

image.png
Название блока - впишите любое название блока, чтобы отличать его от других блоков в рабочем пространстве. Например, "Открыт шлагбаум?"

image.png
Переменная 1 - выберите первую переменную для сравнения из списка добавленных в сценарий.

image.png
Оператор - выберите один из математических операторов для сравнения

image.png

image.png
Переменная 2 - выберите вторую переменную для сравнения из списка добавленных в сценарий.

Выходные параметры блока:
результат сравнения в значении false/true

Выдать текст

image.png

Отдает текст по ходу выполнения сценария, может принимать переменные в следующем виде: {{ID_камеры}}

Чекбокс "Пройти по сценарию дальше"


Запрос в БД

image.png


Отправляет ранее созданный в разделе SQL-запросы запрос в Базу Данных.

image.png
Название блока - впишите любое название блока, чтобы отличать его от других блоков в рабочем пространстве. Например, "Получение адреса"

image.png
Запрос к базе - поле позволяет выбрать из выпадающего списка ранее созданный SQL-запрос

image.png
Запрос и Результат запроса - поля, заполняющиеся автоматически при выборе SQL-запроса.




HTTP-запрос

image.png

Отправляет ранее созданный в разделе HTTP-запросы запрос.

image.png
Название блока - впишите любое название блока, чтобы отличать его от других блоков в рабочем пространстве. Например, "Получение текущего времени"

image.png
HTTP- запрос - поле позволяет выбрать из выпадающего списка ранее созданный HTTP-запрос

image.png
Код ответа - выберите переменную, в которой будет храниться код ответа

image.png
Текст ответа - выберите переменную, в которой будет храниться текст ответа

Входные параметры блока:  
- http запрос - поле позволяет выбрать из выпадающего списка ранее созданный http запрос 
Выходные параметры блока:
- результат запроса
- код ответа
- текст ответа

Email

image.png

Служит для отправки email при наступлении события сценария, может содержать информацию в виде текста и изображений.

image.png
Параметры SMTP ?

image.png
Логин  – выберите переменную, которая хранит логин отправителя

image.png
Пароль – выберите переменную, которая хранит пароль отправителя

image.png
Адрес отправителя – выберите переменную, которая хранит адрес отправителя

image.png
Адрес получателя – выберите переменную, которая хранит адрес получателя

image.png
Тема – выберите переменную, которая хранит тему письма

image.png
Содержание сообщения – выберите переменную, которая хранит текст сообщения

image.png
Изображение – выберите переменную, которая хранит изображение события. Подставляется автоматически

image.png
Таймаут на отправку сообщений в минутах – выберите переменную, которая хранит значение таймаута

Telegram

image.png

Служит для отправки сообщения в telegram при наступлении события сценария, может содержать информацию в виде текста и изображений.

image.png
Токен бота – выберите переменную, которая хранит текстовое значения токена бота, с которого будут отправляться сообщения

image.png
ID чата  – выберите переменную, которая хранит текстовое значение ID чата

image.png
Содержание сообщения – выберите переменную, которая хранит текст сообщения

image.png
Изображение – выберите переменную, которая хранит изображение события. Подставляется автоматически

image.png
Таймаут на отправку сообщений в минутах  – выберите переменную, которая хранит текстовое значение таймаута в минутах

Детектор лиц

image.png

Детектор лиц выполняет функцию детекции лиц на изображении и возвращает координаты лица в виде bbox

Входные параметры

image.png
Изображения – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
MAC домофона  – поле принимает переменную, хранящую текстовое значение MAC адреса устройства, передающего изображение.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов людей.

image.png
Точки –  поле принимает массив чисел, хранящий координаты антропометрических точек лица. Нужен для выравнивания лица, приведения его в "нормальный вид" перед получением эмбеддинга

Детектор людей

image.png

Определяет координаты людей на изображении

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID камеры  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.


Детектор СИЗов

image.png

Определяет наличие средств индивидуальной защиты на людях.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.

image.png
Типы СИЗов – выбор типа СИЗа для детекции (шлем или спецодежда).

 

Результаты

image.png
Идентификатор нарушений – выдает два значения: true или false. True - если есть нарушение (человек без СИЗов), false - если нет нарушений

image.png
Маркеры СИЗов – строка в виде “1,0,0,1,..”, где 1 - наличие СИЗов, 0 - отсутствие СИЗов у соответствующих bbox-ов. Т.е. у первого СИЗы есть, у второго и третьего - нет, у четвертого есть …

Детектор Машин

image.png

Определяет координаты автомобилей на изображении 

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.

Детектор номеров машин

image.png

Определяет наличие на изображении регистрационных знаков государственного образца (по ГОСТ Р 50577-93) возвращает контур (Bounding Boxes) в котором обнаружен номер.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения. (не используется)

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.

Вычисление эмбеддингов

image.png

Вычисляет уникальное векторное представление лица полученное из Bounding Boxes и возвращает эмбеддинг лица в виде массива/вектора чисел (256 или 128 float чисел, не помню) который характеризует данное лицо. По нему далее ведется сравнение похожести лиц. 

Входные параметры

image.png
Точки –  полученные ранее от детектора антропометрические точки лица


Результаты

image.png
Эмбеддинг по лицу  –  поле принимает переменную хранящую текстовое уникальное векторное представление лица, по умолчанию - пустое значение.

Идентификатор номеров машин

image.png

Определяет координаты людей на изображении

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.

Результаты

image.png
Распознанные номера – хранит значение распознанного номера.

Трекер

image.png

Сравнивает координаты объектов, возвращая треки - позиции объектов во времени.

Входные параметры

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов.

image.png
Идентификатор камеры  – id камеры, чтобы различать, какой камере принадлежат треки.

image.png
Время – поле принимает переменную, хранящую значение времени события.

image.png
Порог отсутствия новой детекции – число в секундах. Если трек не обновляется дольше указанного времени, он удаляется.

image.png
Порог близости контуров  –  расстояние в пикселях от одного центра объекта до другого. Максимальное расстояние, в пределах которого мы будем сопоставлять объекты на кадре с треками объектов предыдущего кадра. 

Результаты

image.png
Активные треки  –  треки, которые активны на текущем кадре. Т.е. только те треки, которые мы сопоставили с объектами на текущем кадре. Когда треков нет - значение этой переменной будет “[]”

image.png
Потерянные треки  –  треки, которые мы удалили. Удаленный трек удаляется и попадает в этот список один раз. Когда потерянных треков нет - значение этой переменной будет равно “[]”

Вычисление скорости

image.png

Определяет координаты людей на изображении

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события. (не используется в блоке)

image.png
Идентификатор камеры  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

Результаты

image.png
Скорости  – массив скоростей объектов.

Универсальный детектор

image.png

Позволяет использовать детекторы, обученные на публичных датасетах для детекции объектов, указанные в поле "Класс"

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

image.png
Класс – позволяет выбрать один класс для детекции этим блоком.

 

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов выбранных в "Классе" объектов.

Детектор движений

image.png

Определяет наличие движения относительно источника видео

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Зона детекции – принимает переменную хранящую координаты интересующей зоны детекции движения.

image.png
Чувствительность – порог детектора движения. Достигаться вычитанием фона для устранения шума. Диапазон [0–255].

image.png
Минимальная область внимания – Минимальная площадь контура обнаруженного, движущегося  объекта (в пикселях).

image.png
Размер буфера истории детекции 
– принимает переменную, определяющую, сколько изображений хранится в буфере. Далее по ним вычисляется движение

Результаты

image.png
Результат проверки  – координаты bbox-ов областей с зафиксированным движением.

Детектор поз

image.png

Определяет положение тела человека.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Поза  – поле принимает переменную хранящую  список координат антропометрических точек тела человека.

Детектор спецтранспорта

image.png

Определяет наличие спецтранспорта на изображении и их местонахождение.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
Контуры машин  – поле принимает переменную, хранящую координаты bbox'ов машин

image.png
Контуры номеров – поле принимает переменную, хранящую координаты bbox'ов номеров

Результаты

image.png
Метки машин – записывает в переменную список c классами автомобилей. Пример: [“police_cars”, “firecars”].

image.png
Метки номеров  – записывает в переменную список c классами номеров. Пример: [“police_cars”, “firecars”].

Классификатор мусоровозов

image.png

Определяет, является ли найденный автомобиль или грузовик мусоровозом.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события. 

image.png
Bounded Boxes – поле принимает переменную, хранящую координаты bbox'ов автомобиля или грузовика, задетектированного ранее.

Результаты

image.png
Идентификатор нахождения мусоровоза  – "true" если есть и "false" если нет

Детектор мусоровозов

image.png

Определяет координаты мусоровозов на изображении 

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

image.png
ID источника  – поле принимает переменную, хранящую id камеры в Платформе Видеоаналитики.

image.png
Ключ – uuid картинки, уникальный ключ изображения.

image.png
Время – поле принимает переменную, хранящую значение времени события.

Результаты

image.png
Bounding Boxes  – поле принимает переменную, хранящую координаты bbox'ов найденных мусоровозов.

Сравнение эмбеддингов

image.png

Сравнивает полученный эмбеддинг с эмбеддингами, хранящимися в разделе “Доступы”, возвращает id пользователя, имеющего “Доступ”

Входные параметры

image.png
Эмбеддинг – поле ввода принимает переменную хранящую значение уникального векторного представления лица человека.

image.png
Порог [0-1] –  поле ввода принимает переменную хранящую значение Порога уверенности совпадения эмбеддингов.

Результаты

image.png
Идентификатор нахождения мусоровоза  –  поле ввода принимает переменную для хранения значения id пользователя, имеющего “Доступ”

Проверка таймаутов

image.png

Блок позволяет проверять состояние устройства, принимающего команду к выполнению, и отправлять повторную команду не чаще установленного времени.

Входные параметры

image.png
Имя сущности таймаута –  то, к чему мы привяжем таймаут. Например, можно проверять таймаут на открытие ворот, либо таймаут на определенный номер. укажем здесь “relay_id”, т.е. будем проверять таймаут по id реле открытия.

image.png
Время таймаута, секунды  –  длительность таймаута в секундах после активации.

image.png
Инициализировать ли таймаут сразу? – Просто проверить таймаут, или проверить и инициализировать таймаут, если он не был активен. “True” - Инициализировать при проверке. “False” - просто проверить таймаут. Укажем “True”.

Результаты

image.png
Активен ли таймаут – в переменную записывается результат проверки. “True” если таймаут активен, ”False” если не активен.

image.png
Осталось секунд –  в переменную запишется, сколько секунд осталось до конца таймаута.

Обновление таймаута

image.png

Обновляет значение активности таймаута 

image.png
Имя сущности таймаута – то, к чему мы привяжем таймаут. Например, можно проверять таймаут на открытие ворот, либо таймаут на определенный номер. укажем здесь “relay_id”, т.е. будем проверять таймаут по id реле открытия.

image.png
Действие  –  Активировать таймаут или сбросить таймаут. Активация таймаута, это запись текущего времени для следующей проверки таймаута блоком проверки таймаута. Сброс таймаута - удаление последнего времени сработкий таймаута

Блок события

image.png


Для более информативных событий можно добавлять собственные события в различных ветках сценария. В блок “событие” нельзя передавать переменные с длиной более 250 символов. Например, переменная с изображением очень длинная, поэтому события не запишутся  и сценарий будет падать с ошибкой.

 

Сегментация автомобилей

image.png

Позволяет определить контуры автомобилей и тип транспортного средства.

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

Результаты

image.png
Полигоны автомобилей –  поле принимает переменную координаты полигонов автомобилей в виде списка WKT объектов shapely в виде строки.

image.png
Bbox'ы автомобилей  –  поле принимает переменную координаты (bbox’ы) автомобилей

image.png
Классы автомобилей –  поле принимает переменную классы автомобилей 

Поиск свободных мест

image.png

Блок проверяет наличие свободных мест в зоне размеченной парковки

Входные параметры

image.png
Разметка парковки - поле принимает переменную, хранящую разметку парковки. Разметка задается в управлении камерами. Переменная, хранящая разметку - markup 

image.png
Полигоны автомобилей – поле принимает переменную, хранящую значение полигонов автомобилей от блока сегментации автомобилей

 

Результаты

image.png
Зоны со свободными местами  – поле принимает переменную, в которую записываются значения координат зон со свободными местами. Используется для отрисовки свободных мест для пользователей

image.png
Количество свободных мест– поле принимает переменную, в которую запишет значение количества свободных мест

image.png
Разметка для свободных мест – данные по всем свободным местам, используемые для отрисовки debug изображения для разработчиков

Детектор дефектов камеры

image.png

Блок проверяет наличие дефектов камеры, возвращает значение true или false в зависимости от того, есть ли дефект на изображении. 

Входные параметры

image.png
Изображение – поле принимает переменную, хранящую текстовое значения изображения события.

Результаты

image.png
Есть ли дефект  – поле принимает переменную, записывающую значение true или false в зависимости от наличия дефектов на изображении

image.png
Подробная информация о дефектах – поле принимает переменную, хранящую текстовую информацию о дефекте

Пересечение линии

image.png

Проверяет, что определенные треки объектов пересекли заданную линию в определенном направлении, вперед или назад.

Входные параметры

image.png
Линия пересечения – переменная, хранящая координаты линии, пересечения которой блок будет фиксировать

image.png
Треки объектов  – переменная, хранящая треки, получаемые из блока "Трекер"

Результаты

image.png
Треки, пересекшие линию вперед – поле принимает переменную, записывающую  определенные треки

image.png
Треки, пересекшие линию вперед - поле принимает переменную, записывающую  определенные треки

image.png
Треки, не пересекшие линию -  поле принимает переменную, записывающую  определенные треки

 

Работа блока 

Что значит “Пересечение вперед?” Что значит “Пересечение назад?”

Для работы блока нужно указать линию в настройках камеры. У линии должно быть указано две и только лишь две точки. Первая точка будет началом линии, а вторая - концом линии. Представьте часы со стрелками. Минутная стрелка часов указывает на 3 часа. Если начало линии лежит в центре циферблата, а конец на кончике стрелки (3 часа) то пересечение такое линии вперед будет значить, что мы пересекли эту линию снизу вверх. Пересечение назад же будет значить, что мы пересекли эту стрелку сверху вниз.

Очень важно то, как именно вы нарисуете линию пересечения. В зависимости от этого направления пересечения изменяются так, как показано ниже(точка начала - центр циферблата)

image.png

Ограничения блока:

Как проверить, что трек пересек линию?

Сравните выходную переменную с текстовой переменной “[]”. Список пустых треков, т.е. отсутствие треков в блоке обозначается как пустой список - “[]”.

Может возникнуть путаница с сравнением отсутствия bbox’ов и треков. Когда нет bbox’ов - блоки детекторов возвращают пустые строки, когда нет треков - возвращается строка с открывающей и закрывающей квадратными скобками “[]”.

 

Проверка зоны

image.png

Проверяет положение объектов относительно определенной зоны.

Входные параметры

image.png
Область/зона интереса  –  зона, относительно которой происходит определение координат объектов

image.png
Координаты объектов  – список из Bbox’ов объектов. Подойдут bbox’ы от любого детектора платформы.

image.png
Коэффициент уменьшения объекта –  Число от 0 до 1, не включая 0. 1 значит, что будет проверяться весь объект в полную высоту. 0.5 - будет проверяться нахождение нижней половины бокса в зоне, 0.25 - нижней четверти и т.д. Обычно нужно для более точного подсчета людей в зоне по ногам.

Результаты

image.png
Объекты в зоне – поле принимает переменную, хранящую координаты bbox'ов объектов, у которых вся площадь bbox’a находится внутри зоны

image.png
Объекты вне зоны – поле принимает переменную, хранящую координаты bbox'ов объектов, у которых вся площадь bbox’a находится вне зоны

image.png
Объекты на границе зоны – поле принимает переменную, хранящую координаты bbox'ов объектов, у которых у которых хотя бы одна общая точка bbox’a совпадает с границей зоны

 

Как проверить, что в зоне есть объекты?

Сравните переменную из выходного параметра “Объекты в зоне” с текстовой переменной, значение которой равно строке нулевой длины: “” (тут двойные кавычки). Если они не равны - значит в зоне есть объекты. Если равны - объектов нет.