Meet YOLO26: next-gen vision AI.

Link to this sectionTrackZone с использованием Ultralytics YOLO26#

Link to this sectionЧто такое TrackZone?#

Открыть TrackZone в Colab

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



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Link to this sectionПреимущества отслеживания объектов в зонах (TrackZone)#

  • Целевой анализ: Отслеживание объектов внутри определенных зон позволяет получать более сфокусированные данные, обеспечивая точный мониторинг и анализ интересующих областей, таких как точки входа или ограниченные зоны.
  • Снижение нагрузки на последующую обработку: Игнорируя объекты вне зоны, TrackZone удаляет нерелевантные обнаружения, уменьшая количество объектов, которые нужно подсчитывать, регистрировать или по которым нужно отправлять оповещения в твоей собственной логике. Обнаружение все равно выполняется на полноразмерном кадре, а не на уменьшенном фрагменте зоны, поэтому преимущество заключается в получении более чистого и сфокусированного результата, а не в ускорении инференса модели.
  • Улучшенная безопасность: Зональное отслеживание улучшает видеонаблюдение за счет мониторинга критических зон, помогая в раннем обнаружении необычной активности или нарушений безопасности.
  • Масштабируемые решения: Возможность фокусироваться на конкретных зонах делает TrackZone адаптируемым к различным сценариям, от торговых площадей до промышленных объектов, обеспечивая бесшовную интеграцию и масштабируемость.

Link to this sectionРеальные сценарии применения#

Сельское хозяйствоТранспорт
Отслеживание растений на поле с помощью Ultralytics YOLO26Отслеживание транспортных средств на дороге с помощью Ultralytics YOLO26
Отслеживание растений на поле с помощью Ultralytics YOLO26Отслеживание транспортных средств на дороге с помощью Ultralytics YOLO26
TrackZone с использованием Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"

TrackZone полагается на список region, чтобы понимать, какую часть кадра отслеживать. Определи многоугольник в соответствии с физической зоной, которая тебя интересует (двери, ворота и т.д.), и оставь show=True включенным во время настройки, чтобы убедиться, что наложение совпадает с видеопотоком.

Определение зоны отслеживания
  • Каждый элемент в region — это координаты пикселя (x, y) в видеокадре. Перечисли точки в том порядке, в котором они должны соединяться по периметру области, которую ты хочешь контролировать.
  • Координаты привязаны к разрешению кадра, поэтому регион, настроенный для потока 1280×720, не совпадет с 640×480. Оставь show=True во время настройки, чтобы убедиться, что наложение соответствует твоему видеопотоку.
  • TrackZone сокращает точки до их выпуклой оболочки, поэтому вогнутая фигура упрощается до минимального выпуклого многоугольника, содержащего все её точки. Для невыпуклых форм или нескольких отдельных областей используй решение RegionCounter.
  • Если ты полностью опустишь параметр region, будет использована зона по умолчанию: [(75, 75), (565, 75), (565, 285), (75, 285)].

Link to this sectionАргументы TrackZone#

Вот таблица с аргументами TrackZone:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
regionlist или dictNoneТочки, определяющие область интереса, представленные либо списком кортежей (x, y), либо словарем, сопоставляющим названия областей со списками точек для нескольких регионов (только для RegionCounter). Если значение None, решения, требующие наличия области, переключаются на предопределенное значение по умолчанию.

Решение TrackZone включает поддержку параметров track:

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Указывает алгоритм отслеживания, который нужно использовать. Встроенные опции: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
ioufloat0.7Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verboseboolTrueКонтролирует отображение результатов отслеживания, предоставляя визуальный вывод отслеживаемых объектов.
devicestrNoneУказывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

Более того, доступны следующие параметры визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_widthint or NoneNoneУказывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически подстраивается под размер изображения. Обеспечивает визуальную настройку для ясности.
show_confboolTrueОтображает показатель уверенности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели в каждом обнаружении.
show_labelsboolTrueОтображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены.

Link to this sectionПодсчет объектов внутри зоны#

Каждый вызов трекера возвращает объект SolutionResults, атрибут total_tracks которого содержит количество объектов, отслеживаемых в данный момент внутри зоны. Считывай его на каждом кадре для мониторинга заполненности в реальном времени, например, чтобы регистрировать интенсивность использования входа или ограниченной зоны:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    print(f"Objects currently in zone: {results.total_tracks}")  # live zone occupancy

cap.release()

Link to this sectionFAQ#

Link to this sectionКак мне отслеживать объекты в определенной области или зоне видеокадра с помощью Ultralytics YOLO26?#

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

yolo solutions trackzone source="path/to/video.mp4" show=True

Link to this sectionКак я могу использовать TrackZone в Python с Ultralytics YOLO26?#

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

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

trackzone = solutions.TrackZone(
    show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Link to this sectionКак настроить точки зоны для обработки видео с помощью Ultralytics TrackZone?#

Настройка точек зоны для обработки видео с помощью Ultralytics TrackZone проста и гибко настраиваема. Ты можешь напрямую определять и регулировать зоны с помощью Python-скрипта, что позволяет точно контролировать области, которые ты хочешь мониторить.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)

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

Link to this sectionКогда использовать TrackZone вместо ObjectCounter или RegionCounter?#

Все три решения работают с регионами, но они отвечают на разные вопросы:

РешениеИспользуй дляТипичный результат
TrackZoneОтслеживание объектов и мониторинг заполненности в реальном времени внутри одной выпуклой зоныОтслеживаемые ID и total_tracks для зоны
ObjectCounterПодсчет объектов, пересекающих линию или входящих в регион и выходящих из негоНакопительное количество вошедших и вышедших
RegionCounterПодсчет объектов внутри одного или нескольких произвольных (включая невыпуклые) регионовКоличество объектов по каждому региону

Выбирай TrackZone, если тебе нужно непрерывное отслеживание внутри одной области, и RegionCounter, если тебе нужно несколько зон или невыпуклая форма.

Комментарии