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

TrackZone с помощью Ultralytics YOLO11

Открыть TrackZone в Colab

Что такое TrackZone?

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



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

Преимущества отслеживания объектов в зонах (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 Устанавливает порог пересечения над объединением (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Ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как отследить объекты в определенной области или зоне видеокадра с помощью 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
)
📅 Создано 3 месяца назад ✏️ Обновлено 5 дней назад

Комментарии