Перейти к основному контенту

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

image.png

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

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

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

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

Результаты

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

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

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

 

Работа блока 

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

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

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

image.png

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

  • Проверяет пересечения одной линии за раз

  • В линии должно быть отмечено только 2 точки

  • Корректная работа блока сильно зависит от fps камеры. Мы указывали 3 fps

  • Корректная работа блока сильно зависит от качества работы трекера, который зависит от fps камеры

  • Для работы блока требуется, чтобы в сценарии перед ним был блок “трекер”, т.к. блока работает с треками, а не bbox’aми.

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

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

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