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