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

TrackZone с помощью Ultralytics YOLO11

Что такое TrackZone?

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

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

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

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

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

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

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video/file.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/file.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",  # You can use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # Adjust the line width for bounding boxes and text display
    # classes=[0, 2],  # If you want to count specific classes i.e. person and car with COCO pretrained model.
)

# 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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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

Аргумент TrackZone

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

Имя Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO
region list [(150, 150), (1130, 150), (1130, 570), (150, 570)] Список точек, определяющих область отслеживания объекта.
line_width int 2 Толщина линий для ограничительных рамок.
show bool False Флаг для контроля отображения видеопотока.

Аргументы model.track

Аргумент Тип По умолчанию Описание
source str None Указывает исходный каталог для изображений или видео. Поддерживаются пути к файлам и URL-адреса.
persist bool False Обеспечивает постоянное отслеживание объектов между кадрами, сохраняя идентификаторы во всех видеопоследовательностях.
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 Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.

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

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

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

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

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

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

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
)
📅 Создано 8 дней назад ✏️ Обновлено 8 дней назад

Комментарии