Ultralytics YOLO27:
Get Started

Обзор наборов данных для многобъектного трекинга#

Многобъектный трекинг — важная составляющая видеоаналитики: он позволяет обнаруживать объекты и сохранять уникальные идентификаторы каждого обнаруженного объекта между кадрами видео. 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

# Загрузить модель YOLO
model = YOLO("yolo26n.pt")

# Открыть видеофайл
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Запустить трекинг с сохранением состояния между кадрами
        results = model.track(frame, persist=True)

        # Визуализировать результаты
        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")  # Загружаем модель YOLO26
    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")

Комментарии