Перейти к содержанию
VVizorLabsТехнический центрОсновной сайт

Платформа 4.0 / BOX 5.0

Блоки сценария: параметры и форматы данных

Блоки сценария: параметры и форматы данных: подробная инструкция, назначение полей, порядок действий и иллюстрации интерфейса.

Для кого: администратор / разработчик сценариев
На этой странице

Справочник блоков: назначение, поля и проверка

Блоки ниже сгруппированы по роли в обработке: получение кадра, распознавание, трекинг, условия, события и отправка результата. Набор полей зависит от версии исполнителя NRI, модели и профиля. Числа в примерах объясняют настройку; рабочие значения подбирайте на видео своей площадки.

4.9.1. Видео Фрейм — VideoFrame

Начальный блок подготавливает кадр и служебные поля сообщения. В форме задаются «Входной fps», ширина, высота, выходные топики и «Кронтаб».

Поле Смысл и ввод
Входной fps Целевая частота обработки. Выбирайте по скорости контролируемого действия и бюджету вычислений; редкая выборка может пропустить короткое событие
Ширина / высота изображения Размер для дальнейшей обработки; -1 в документированном режиме сохраняет исходный размер. Не растягивайте маленький кадр ради фиктивной детализации
Выходной топик Имя кадра для следующих узлов, обычно image
Топики времени, индекса кадра и шага Нужны временным правилам и воспроизводимой отладке
Топики параметров и ID камеры, ID кадра Привязка зон, состояния и результатов к источнику
Кронтаб Моделирование времени в отладке для тестового прогона; не заменяет расписание живой камеры

Проверка: откройте несколько обработанных кадров и сравните frame_index и step_index. При прореживании 25→1 кадр/с номер исходного кадра и номер шага не должны интерпретироваться одинаково.

Интерфейс BOX 5.0. Параметры Видео Фрейм: частота, размер и топики
Интерфейс BOX 5.0. Параметры Видео Фрейм: частота, размер и топики Открыть в полном размере

4.9.2. Детектор — Detector

Находит объекты выбранных категорий на кадре. В учебном графе используется модель severstal_deim, версия 13.0.1; это конкретный демонстрационный ресурс, а не обязательная модель BOX.

Группа полей Как настроить
Модель / версия Выберите опубликованную подготовленную модель и зафиксированный выпуск
Категории Отметьте необходимые выходы. Для СИЗ нужны человек и конкретные признаки СИЗ, а не только отсутствие каски
Параметры для категории Порог уверенности отдельного класса; подбирайте на размеченных примерах
Минимальная ширина / высота Отбрасывание слишком маленьких рамок в пикселях; учитывайте размер после VideoFrame
Атрибуты модели Модельные пороги, в том числе уверенность и обработка пересечений; они зависят от семейства модели
Параметры деплоя Поддерживаемый CPU/GPU-профиль, ONNX/TensorRT/TorchScript и точность при наличии
Продвинутые параметры Дополнительный минимальный порог, NMS, входной и выходной топики, ID изображения

Порог раннего этапа может отфильтровать объект до проверки порога класса. Снижение только порога «Каска-» не вернёт объект, уже удалённый более строгим общим порогом. В документации DEIM встречается специфическое значение порога суперкатегории 1.01; не переносите его в любой IoU-фильтр как обычный порог 0…1.

Проверка: визуализируйте рамки, категории и уверенность до трекера. Если нужных рамок нет уже здесь, настройка временного окна не исправит распознавание.

Интерфейс BOX 5.0. Детектор: выбор модели, версии и категорий
Интерфейс BOX 5.0. Детектор: выбор модели, версии и категорий Открыть в полном размере

4.9.3. Трекер — Tracker

Общий вид редактора и палитры.

Связывает детекции одного объекта между кадрами. На выходе появляется история, которая нужна для устойчивых событий и привязки признаков к человеку.

Поле Назначение
Категории / фильтрация Какие объекты отслеживать, например person. При выключенном фильтре старый блок может отслеживать все категории
Запускать детектор Использовать внутреннее получение детекций либо уже рассчитанный вход. Не включайте повторный инференс без необходимости
Длина истории Число хранимых кадров/шагов; согласуйте с последующими окнами событий
Расширение области / порог пересечения Условия сопоставления объектов; слишком свободное сопоставление объединяет людей, слишком строгое дробит трек
Порог уверенности Условие приёма/создания трека; точное правило зависит от версии

Проверьте двух пересекающихся людей, краткое перекрытие и выход из кадра. События по треку зависят от его жизненного цикла: новая ID после перекрытия может дать повторный эпизод.

4.9.4. Трекер2 — Tracker2

Общий вид редактора и палитры.

Альтернативный трекер с собственными параметрами истории, расширения, уверенности нового трека, инерции и времени жизни. Это не переименование первого трекера. Например, документированные поля длины истории и жизни задаются в кадрах, а инерция регулирует обновление траектории.

Меняйте реализацию только с повторным тестом пересечений, окклюзий, повторных событий и удаления старых треков. Копирование всех чисел из Tracker в Tracker2 не обеспечивает эквивалентность.

4.9.5. Добавление детекции в трек — DetectionAttacher

Общий вид редактора и палитры.

Привязывает найденную каску, очки или другой признак к уже существующему треку человека. Входы — треки и детекции; выход — треки с атрибутами. Настройте топики, категории присоединяемых признаков и критерий геометрического сопоставления.

Порог пересечения в таком блоке может считаться относительно площади присоединяемой детекции, а не как IoU двух рамок. Не переносите порог NMS без проверки формулы. Сопоставление по точкам позы требует предварительно рассчитанной позы. Проверьте, что каска соседнего человека не прикрепляется к нужному треку.

4.9.6. Добавление детекции в зону — DetectionsZones

Общий вид редактора и палитры.

Добавляет объекту признак принадлежности зоне. Сам по себе не удаляет объекты за её пределами. Укажите типы зон и способ проверки: центр рамки, нижняя центральная точка/линия либо доля пересечения рамки с полигоном.

В документированном варианте нижняя точка использует поправку относительно высоты рамки; проверьте её на своём ракурсе. Для проверки по площади задайте долю 0…1. Прохожий у границы — обязательный отрицательный тест. После атрибута нужен блок, который действительно использует его для фильтра или события.

4.9.7. Фильтр по зоне-атрибуту — ZoneAttributeFilter

Общий вид редактора и палитры.

Фильтрует треки по нахождению в зоне, учитывая историю наблюдений. Имеет выходы для прошедших и не прошедших условие. Выберите зоны/их типы, геометрическое правило, длину окна внимания и минимальное число подтверждений.

Блок способен сам вычислять принадлежность зоне; предварительный DetectionsZones не всегда нужен. Не соединяйте нижний выход с веткой «нарушение» по предположению: проверьте порты на заведомом входе и выходе человека. Минимальное число подтверждений должно помещаться в выбранное окно.

4.9.8. Фильтр по категории-атрибуту — CategoryAttributeFilter

Общий вид редактора и палитры.

Отбирает треки по присоединённым признакам, например по наблюдениям «без каски». Настраиваются категории, окно внимания и минимальное число совпадений. В отдельных версиях есть собственный запуск детектора; если детекции уже посчитаны выше, проверьте, не создаёт ли он лишний инференс.

Параметр обратного условия встречается в старых описаниях, но может быть устаревшим. Отсутствие атрибута нужно отличать от положительно обнаруженного класса отсутствия СИЗ. Испытайте неизвестный/перекрытый объект отдельно от нарушения.

4.9.9. Создание событий — EventNumViols

Общий вид редактора и палитры.

Преобразует устойчивую последовательность наблюдений в событие. Выберите категорию результата, минимальное число нарушений, длину истории и интервал повторения; настройте входы треков, кадра, времени, ID камеры и выход events.

История и интервал этого блока заданы в кадрах, например 3 подтверждения в истории 180 кадров и повтор через 180 кадров. Эти числа не являются готовой настройкой для «Сигмы». При K подтверждениях за N наблюдений должно выполняться K ≤ N, а FPS влияет на длительность окна.

Обратное условие относится к данным существующего трека. Оно не решает задачу пустого рабочего места, когда трек человека вообще не создан. Для отсутствия на месте используйте состояние зоны, описанное в §4.17.

4.9.10. Создание зависимых событий — DependentEvents

Общий вид редактора и палитры.

Создаёт событие по совместному выполнению условий/категорий во времени. Поля включают класс события, окно принятия решения, интервал повторения, выбранные категории и режим удержания состояния.

В этом блоке документированные временные параметры задаются в секундах: не копируйте числа из EventNumViols без пересчёта. Удержание состояния может сохранять обнаруженный признак до завершения трека; без удержания признак перестаёт учитываться после окна. Проверьте человека, который сначала нарушал условие, а затем устранил нарушение.

4.9.11. Создание событий в зоне — EventsInZone

Общий вид редактора и палитры.

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

Для своей версии блока проверьте момент выдачи: во время нахождения, по таймеру или после выхода. В старом описании есть повторяющиеся фрагменты от другого блока, поэтому его нельзя использовать как доказательство точного поведения всех реализаций. Приёмочный тест: вход → пребывание короче порога → выход; затем длительное пребывание; затем нужный признак перед выходом. Запишите фактические времена событий.

4.9.12. Модуль отправки событий — EventSender

Общий вид редактора и палитры.

Передаёт уже сформированные события в контур системы. Подключите топик событий, а также необходимые данные кадра и камеры согласно форме блока. В старом интерфейсе вход событий мог называться «Топик треков»; проверяйте фактическое содержимое, не только подпись.

Пустой events не создаёт запись. Рамки у визуализатора не являются входом отправителя. Полный тест заканчивается нахождением события в журнале с правильной камерой, категорией и временем; при необходимости — подтверждением уведомления.

4.9.13. Локальный визуализатор — LocalVisualizer

Общий вид редактора и палитры.

Рисует результаты для отладки: рамки, уверенность, треки, события, текст, маски, зоны и позу. Настройте соответствующие входные топики, толщину линий, масштаб текста, качество картинки и число кадров показа события. На выходе обычно visualized_image.

Не подключайте неизвестные топики «на всякий случай». Если рамок нет, сначала убедитесь, что визуализатор читает тот список, который выдаёт детектор. Визуализатор не заменяет EventSender и не подтверждает запись в журнале.

4.9.14. Классификатор детекций — DetectionClassifier

Общий вид редактора и палитры.

Вырезает области найденных объектов и классифицирует их отдельной моделью. Выберите модель/версию, профиль, вход кадра и детекций. Результат может менять категорию исходной детекции; если дальше нужна исходная семантика «автомобиль», сохраните её отдельной веткой или предусмотренным полем.

Пример: сначала найти автомобиль, затем классифицировать его тип. Проверьте маленькие и частично обрезанные рамки: хороший детектор автомобиля ещё не гарантирует достаточный материал для марки или модели.

4.9.15. Инстанс Сегментатор — InstanceSegmentation

Общий вид редактора и палитры.

Возвращает маски отдельных объектов и связанные рамки. Настройте модель, версию, категории, пороги и профиль исполнения. Потребитель должен уметь работать с маской: блок, ожидающий только прямоугольник, не начинает использовать форму объекта автоматически.

Проверка — визуализация маски и границ на исходном кадре после масштабирования. Изменение разрешения требует повторной проверки геометрии.

4.9.16. Детектор позы человека — Pose

Общий вид редактора и палитры.

Рассчитывает ключевые точки человека на найденных областях. Нужны кадр, детекции людей, модель/версия позы и порог уверенности точек. Результат используют блоки контроля частей тела и зоны по позе.

Не трактуйте отсутствующую точку кисти или стопы как нарушение: она может быть скрыта. Проверьте обрезанного человека, поворот спиной и перекрытие. Устаревшие переключатели из старой документации могут не влиять на новую реализацию; ориентируйтесь на форму и проверку результата.

4.9.17. Точка скелета в зоне — PointSkeletonZone

Общий вид редактора и палитры.

Добавляет признак нахождения выбранных частей тела в зоне. Выберите тип зоны, точки скелета и правило сочетания И / ИЛИ. При «И» должны выполняться все выбранные условия; при «ИЛИ» достаточно одного.

Блок добавляет атрибут, но не обязательно фильтрует сообщение. После него настройте потребителя этого признака. Проверьте отсутствие/низкую уверенность ключевой точки и поведение у границы зоны.

4.9.18. Зона по позе — PoseZoneFilter

Общий вид редактора и палитры.

Фильтрует по ключевым точкам в зоне и предоставляет отдельные выходы соответствия/несоответствия. Настройте части тела, И/ИЛИ, окно внимания и число подтверждений. Не путайте этот блок с добавлением атрибута PointSkeletonZone.

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

4.9.19. Фильтр детекций по размеру — MinSizeFilter

Общий вид редактора и палитры.

Отбрасывает рамки меньше заданного размера. Порог можно задавать по категории; единицы — пиксели. Если ширина или высота не проходят минимум, объект исключается в документированном варианте.

Используйте для удаления неразличимых дальних объектов, но зафиксируйте границу зоны уверенного контроля. Не представляйте отброшенного маленького человека как доказанное отсутствие людей.

4.9.20. Ремап Категорий — RemapCategories

Общий вид редактора и палитры.

Переименовывает коды категорий по таблице соответствий. Значение -1 в описанном механизме исключает категорию. Записывайте точные машинные коды, а не произвольную русскую подпись.

Пример: привести категории двух совместимых моделей к общему словарю для последующей логики. Проверьте все потребители: фильтр, трекер и событие после ремапа должны ожидать уже новые коды.

4.9.21. NMS

Общий вид редактора и палитры.

Убирает дублирующиеся рамки по геометрическому пересечению и выбранным правилам категорий. Основное поле — порог IoU. Большой порог обычно оставляет больше пересекающихся рамок, малый сильнее подавляет их; конкретное поведение проверьте на своей реализации.

Если модель уже выполняет NMS, второй этап должен иметь понятную цель. Параметр суперкатегорий менялся между версиями библиотеки. Испытайте близко стоящих людей: удаление дубля и ошибочное подавление соседнего человека внешне могут выглядеть похоже.

4.9.22. Мердж — Merge

Общий вид редактора и палитры.

Объединяет выбранные данные из веток, например списки детекций. Укажите входы и результирующий топик. Это не универсальный механизм сопоставления произвольных асинхронных событий.

Сводите результаты одного кадра и согласованных координат. После слияния проверьте дубли, порядок, категории и ID. Если ветки работают на разных частотах, явно определите политику их синхронизации в используемом исполнителе.

4.9.23. Добавление связанной детекции — AddRelatedDetection

Общий вид редактора и палитры.

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

Используйте только при наличии наблюдаемого базового объекта и подходящего ракурса. Отсутствие найденной куртки у частично скрытого человека — не то же самое, что достоверное отсутствие спецодежды. Проверьте, как блок отмечает неизвестность, и как следующий узел трактует созданный признак.

4.9.24. Расписание — Schedule

Общий вид редактора и палитры.

Пропускает обработку в заданный временной интервал. Настройте часовой пояс и границы по поддерживаемому формату crontab. Блок использует время кадра image_timestamp; настройка тестового времени VideoFrame помогает воспроизвести граничные случаи.

Проверьте начало смены, конец, переход через полночь и часовой пояс. Рабочий график сотрудника, расписание включения камеры и расписание сценария — три разных механизма. Если фильтр полностью прекращает сообщения вне смены, нижестоящее состояние должно корректно завершаться или сбрасываться.

4.9.25. python-switch — PythonSwitch

Общий вид редактора и палитры.

Условный пропуск сообщения по выражению. В текущей палитре есть этот блок; старое описание называет поле выражения «Приоритет». Пример len(msg.get("detections", [])), оператор сравнения и значение 0 с типом num позволяют проверять число объектов.

При истинном условии сообщение проходит, при ложном или ошибке выражения документированный вариант его блокирует. Это не полноценный многовыходный switch без дополнительных настроек. Не ставьте такое условие перед детектором отсутствия людей: пустой список тоже должен доходить до логики отсутствия.

4.9.26. python3-function — Python3Function

Общий вид редактора и палитры.

Позволяет реализовать вычисление, которого нет среди готовых узлов. Пишите код с учётом требований к входным и выходным данным установленного блока, возвращайте ожидаемое сообщение и сохраняйте обязательные поля. Простой пример преобразования без накопления состояния:

# Учебный пример. Проверить схему detections в «Логе сообщений» своей версии.
msg["sigma_detection_count"] = len(msg.get("detections", []))
return msg

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

4.9.27. АСУ ТП и технологические сигналы

Общий вид редактора и палитры.

Блок АСУ ТП направляет сообщение по ветке, выбранной по внешним сигналам оборудования. В описанной реализации хотя бы один активный сигнал выбранного типа выбирает первую ветку, все неактивные — вторую. При отсутствии данных используется настроенное значение по умолчанию. Это интеграционный блок: состав сигналов и доступность зависят от поставки.

Если блока нет в палитре, потребуется установленный интеграционный модуль или расширение от интегратора. Задайте тип сигнала, соответствие оборудования, источник времени и максимальный допустимый возраст данных. Значение по умолчанию выбирайте по регламенту процесса; не подставляйте true только для прохождения теста.

Обязателен третий случай «нет достоверного сигнала». Согласуйте его обработку с владельцем процесса: диагностическое событие, остановка применения условия или иной регламент. Нельзя молча приравнивать потерю связи к остановленному механизму.

4.9.28. Несоответствие / проектная классификация

Общий вид редактора и палитры.

Блок связывает результат видеоаналитики со словарём несоответствий внешней системы: характером, направлением, типом, опасностью, барьером и описанием. Коды должны соответствовать справочнику получателя. Набор полей определяется подключённой интеграцией.

В BOX выберите доступный вид нарушения и классификатор, с которым работает ваша интеграция. Дополнительные проектные поля заполняйте по согласованной схеме обмена данными. Блок классифицирует уже выявленную ситуацию; условие самого нарушения должно быть проверено предыдущими блоками.

4.9.29. Оценка качества изображения — ImageQuality

Общий вид редактора и палитры.

Контролирует качество входа: размытие, пересвет, смещение, зависание, загрязнение при наличии нужной модели. Поля включают включение отдельных проверок, интервал анализа, длину окна, пороги, эталонные хорошие кадры и интервал событий.

Разные показатели имеют разные шкалы. Порог размытия нельзя копировать в сравнение смещения. Интервал анализа может задаваться в секундах, а интервал событий — в кадрах: проверьте единицу рядом с каждым полем и учитывайте FPS. Эталон выбирайте при правильном ракурсе и нормальном изображении, иначе система будет считать неисправное состояние нормой.

Проверка качества полезна перед контролем отсутствия людей и для диагностики пропусков. При плохом кадре результат бизнес-правила переводится в неизвестное состояние, а не автоматически в «нарушение» или «норма».

4.9.30. Дополнительные блоки текущей палитры

Общий вид редактора и палитры.

Дополнительные узлы палитры — «Кастомный детектор позы», «Регрессия точки основания», «Человек под грузом регрессия-гомография», «LLM Интеграция» и «LLM Клиент» — применяются с совместимыми моделями и компонентами. Перед соединением откройте справку узла и проверьте поля входа и выхода, зависимости, единицы и обработку ошибок. Для этих узлов здесь не задаётся универсальная JSON-схема.

Регрессия точки основания и гомография относятся к геометрическим задачам; для применения нужна методика калибровки конкретной модели и сцены. Для LLM определите входной кадр/контекст, формат ответа, тайм-аут и поведение при ошибке. Общие режимы LLM описаны в главе 11; наличие узла в графе само по себе не доказывает работоспособность удалённой модели.