Ultralytics YOLO27:

Обзор наборов данных для отслеживания нескольких объектов#

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

Формат набора данных#

Режим отслеживания не обучает трекер и не требует специализированного набора данных для трекера. Обучи модель обнаружения, сегментации, поз или OBB в стандартном формате набора данных для соответствующей задачи, затем используй полученные веса с model.track() или yolo track. Выбранный трекер сопоставляет предсказания модели между кадрами во время инференса.

Доступные трекеры#

Ultralytics YOLO поддерживает следующие алгоритмы отслеживания:

  • BoT-SORT — используй botsort.yaml, чтобы включить этот трекер
  • ByteTrack — используй bytetrack.yaml, чтобы включить этот трекер
  • OC-SORT — используй ocsort.yaml, чтобы включить этот трекер
  • Deep OC-SORT — используй deepocsort.yaml, чтобы включить этот трекер
  • FastTracker — используй fasttrack.yaml, чтобы включить этот трекер
  • TrackTrack — используй tracktrack.yaml, чтобы включить этот трекер (по умолчанию)

Использование#

Пример
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

Сохранение треков между кадрами#

Для непрерывного отслеживания между кадрами видео можно использовать параметр persist=True:

Пример
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Run tracking with persistence between frames
        results = model.track(frame, persist=True)

        # Visualize the results
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

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

  • Чтобы использовать отслеживание нескольких объектов с Ultralytics YOLO, начни с примеров для Python или CLI. Вот как можно начать:

    Пример
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Load the YOLO26 model
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    Эти команды загружают модель YOLO26 и используют её для отслеживания объектов в указанном источнике видео с заданными порогами уверенности (conf) и пересечения по объединению (iou). Подробнее см. в документации по режиму отслеживания.

  • Ultralytics YOLO — современная модель обнаружения объектов, известная производительностью в реальном времени и высокой точностью. Использование YOLO для отслеживания нескольких объектов даёт несколько преимуществ:

    • Отслеживание в реальном времени: эффективное и высокоскоростное отслеживание, идеально подходящее для динамичных условий.
    • Гибкость предварительно обученных моделей: не нужно обучать модель с нуля — просто используй предварительно обученные модели обнаружения, сегментации, поз или OBB.
    • Простота использования: простая интеграция API с Python и CLI упрощает настройку конвейеров отслеживания.
    • Подробная документация и поддержка сообщества: Ultralytics предоставляет исчерпывающую документацию и активный форум сообщества для устранения проблем и улучшения моделей отслеживания.

    Подробнее о настройке и использовании YOLO для отслеживания см. в нашем руководстве по использованию режима отслеживания.

  • Да. Обучи модель обнаружения, сегментации, поз или OBB на своём пользовательском наборе данных, затем передай её веса в model.track(). Сам трекер запускается во время инференса и не требует отдельных данных для обучения.

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

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

    Подробные рекомендации по интерпретации и визуализации этих результатов см. в руководстве по обработке результатов.

  • Ты можешь настроить трекер, создав изменённую версию файла конфигурации трекера. Скопируй существующий файл конфигурации трекера из ultralytics/cfg/trackers, измени необходимые параметры и укажи этот файл при запуске трекера:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

Комментарии