Перейти к содержанию

TrackZone с использованием Ultralytics YOLO11

Открыть TrackZone в Colab

Что такое TrackZone?

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



Смотреть: Как отслеживать объекты в регионе с помощью Ultralytics YOLO11 | TrackZone 🚀

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

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

Приложения в реальном мире

Сельское хозяйство Транспорт
Отслеживание растений в поле с использованием Ultralytics YOLO11 Отслеживание транспортных средств на дороге с использованием Ultralytics YOLO11
Отслеживание растений в поле с использованием Ultralytics YOLO11 Отслеживание транспортных средств на дороге с использованием Ultralytics YOLO11

TrackZone с использованием Ultralytics YOLO

# Run a trackzone example
yolo solutions trackzone show=True

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

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

from ultralytics import solutions

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

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

# Video writer
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))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone Аргументы

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

Аргумент Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' Список точек, определяющих область подсчета.

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

Аргумент Тип По умолчанию Описание
tracker str 'botsort.yaml' Указывает алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений.
classes list None Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verbose bool True Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.
device str None Указывает устройство для инференса (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

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

Аргумент Тип По умолчанию Описание
show bool False Если True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_width None or int None Указывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости.
show_conf bool True Отображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения.
show_labels bool True Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов.

Часто задаваемые вопросы

Как отслеживать объекты в определенной области или зоне видеокадра с использованием Ultralytics YOLO11?

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

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

Как я могу использовать TrackZone в Python с Ultralytics YOLO11?

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

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))

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

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

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

Как настроить точки зоны для обработки видео с использованием 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
)


📅 Создано 9 месяцев назад ✏️ Обновлено 4 месяца назад

Комментарии