16 KiB
comments | description | keywords |
---|---|---|
true | Узнайте, как использовать Ultralytics YOLO для отслеживания объектов в видеопотоках. Руководства по использованию различных трекеров и настройке конфигурации трекера. | Ultralytics, YOLO, отслеживание объектов, видеопотоки, BoT-SORT, ByteTrack, руководство на Python, руководство CLI |
Множественное отслеживание объектов с помощью Ultralytics YOLO
Отслеживание объектов в сфере видеоаналитики является ключевой задачей, которая определяет не только местоположение и класс объектов в кадре, но также поддерживает уникальный ID для каждого обнаруженного объекта по мере развития видео. Приложения безграничны — от наблюдения и безопасности до аналитики реального времени в спорте.
Почему стоит выбрать Ultralytics YOLO для отслеживания объектов?
Вывод с трекеров Ultralytics согласуется со стандартным обнаружением объектов, но имеет добавленные ID объектов. Это упрощает отслеживание объектов в видеопотоках и выполнение последующей аналитики. Вот почему вы должны рассмотреть использование Ultralytics YOLO для ваших потребностей в отслеживании объектов:
- Эффективность: Обработка видеопотоков в режиме реального времени без потери точности.
- Гибкость: Поддержка множества алгоритмов отслеживания и конфигураций.
- Простота использования: Простой Python API и CLI-опции для быстрой интеграции и развертывания.
- Настраиваемость: Легкость использования с пользовательскими обученными моделями YOLO, позволяющая интеграцию в специфические для домена приложения.
Смотрите: Обнаружение объектов и отслеживание с Ultralytics YOLOv8.
Прикладные применения
Транспорт | Ритейл | Аквакультура |
---|---|---|
Отслеживание транспортных средств | Отслеживание людей | Отслеживание рыб |
Ключевые особенности
Ultralytics YOLO расширяет свои возможности обнаружения объектов для обеспечения надежного и универсального отслеживания объектов:
- Отслеживание в реальном времени: Безпрерывное отслеживание объектов в видео с высокой частотой кадров.
- Поддержка множества трекеров: Выбор из разнообразия установленных алгоритмов отслеживания.
- Настраиваемые конфигурации трекеров: Настройка алгоритма отслеживания для конкретных требований путем регулировки различных параметров.
Доступные трекеры
Ultralytics YOLO поддерживает следующие алгоритмы отслеживания. Их можно включить, передав соответствующий YAML файл конфигурации, например tracker=tracker_type.yaml
:
- BoT-SORT - Используйте
botsort.yaml
, чтобы активировать этот трекер. - ByteTrack - Используйте
bytetrack.yaml
, чтобы активировать этот трекер.
Трекер по умолчанию - BoT-SORT.
Отслеживание
Для запуска трекера на видеопотоках используйте обученные модели Detect, Segment или Pose, такие как YOLOv8n, YOLOv8n-seg и YOLOv8n-pose.
!!! Example "Пример"
=== "Python"
```python
from ultralytics import YOLO
# Загрузите официальную или пользовательскую модель
model = YOLO('yolov8n.pt') # Загрузить официальную модель Detect
model = YOLO('yolov8n-seg.pt') # Загрузить официальную модель Segment
model = YOLO('yolov8n-pose.pt') # Загрузить официальную модель Pose
model = YOLO('path/to/best.pt') # Загрузить пользовательскую обученную модель
# Выполнить отслеживание с помощью модели
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True) # Отслеживание с трекером по умолчанию
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml") # Отслеживание с трекером ByteTrack
```
=== "CLI"
```bash
# Выполнить отслеживание с различными моделями используя командный интерфейс
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Detect
yolo track model=yolov8n-seg.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Segment
yolo track model=yolov8n-pose.pt source="https://youtu.be/LNwODJXcvt4" # Официальная модель Pose
yolo track model=path/to/best.pt source="https://youtu.be/LNwODJXcvt4" # Пользовательская обученная модель
# Отслеживание с использованием трекера ByteTrack
yolo track model=path/to/best.pt tracker="bytetrack.yaml"
```
Как видно из вышеуказанного использования, отслеживание доступно для всех моделей Detect, Segment и Pose, работающих с видео или потоковыми источниками.
Конфигурация
Аргументы для отслеживания
Конфигурация отслеживания имеет общие свойства с режимом Predict, такие как conf
, iou
и show
. Для дальнейшей настройки обратитесь к странице модели Predict.
!!! Example "Пример"
=== "Python"
```python
from ultralytics import YOLO
# Настройте параметры отслеживания и запустите трекер
model = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.3, iou=0.5, show=True)
```
=== "CLI"
```bash
# Настройте параметры отслеживания и запустите трекер, используя командный интерфейс
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
```
Выбор трекера
Ultralytics также позволяет использовать измененный файл конфигурации трекера. Для этого просто сделайте копию файла конфигурации трекера (например, custom_tracker.yaml
) из ultralytics/cfg/trackers и измените любые настройки (кроме tracker_type
) в соответствии с вашими потребностями.
!!! Example "Пример"
=== "Python"
```python
from ultralytics import YOLO
# Загрузите модель и запустите трекер с пользовательским файлом конфигурации
model = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/LNwODJXcvt4", tracker='custom_tracker.yaml')
```
=== "CLI"
```bash
# Загрузите модель и запустите трекер с пользовательским файлом конфигурации, используя командный интерфейс
yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
```
Для полного списка аргументов отслеживания обратитесь к странице ultralytics/cfg/trackers.
Примеры на Python
Цикл сохранения следов
Вот пример скрипта Python, использующий OpenCV (cv2
) и YOLOv8 для выполнения отслеживания объектов на кадрах видео. В этом сценарии предполагается, что вы уже установили необходимые пакеты (opencv-python
и ultralytics
). Аргумент persist=True
указывает трекеру, что текущее изображение или кадр является следующим в последовательности и ожидает, что следы с предыдущего изображения будут присутствовать в текущем изображении.
!!! Example "Цикл с потоковым отслеживанием for-loop"
```python
import cv2
from ultralytics import YOLO
# Загрузите модель YOLOv8
model = YOLO('yolov8n.pt')
# Откройте видеофайл
video_path = "path/to/video.mp4"
cap = cv2.VideoCapture(video_path)
# Цикл по кадрам видео
while cap.isOpened():
# Чтение кадра из видео
success, frame = cap.read()
if success:
# Выполните отслеживание YOLOv8 для кадра, сохраняя следы между кадрами
results = model.track(frame, persist=True)
# Визуализируйте результаты на кадре
annotated_frame = results[0].plot()
# Покажите аннотированный кадр
cv2.imshow("Отслеживание YOLOv8", annotated_frame)
# Прервать цикл, если нажата клавиша 'q'
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# Прервать цикл, если достигнут конец видео
break
# Освободите объект захвата видео и закройте окно отображения
cap.release()
cv2.destroyAllWindows()
```
Обратите внимание на изменение с model(frame)
на model.track(frame)
, которое позволяет включить отслеживание объектов вместо простого обнаружения. Этот измененный скрипт будет выполнять трекер на каждом кадре видео, визуализировать результаты и отображать их в окне. Цикл можно завершить нажатием 'q'.
Содействие в новых трекерах
Вы являетесь профессионалом в множественном отслеживании объектов и успешно реализовали или адаптировали алгоритм отслеживания с Ultralytics YOLO? Мы приглашаем вас внести свой вклад в наш раздел Trackers на ultralytics/cfg/trackers! Ваши реальные приложения и решения могут быть бесценными для пользователей, работающих над задачами отслеживания.
Внося свой вклад в этот раздел, вы помогаете расширить спектр доступных решений для отслеживания в рамках фреймворка Ultralytics YOLO, добавляя еще один уровень функциональности и полезности для сообщества.
Чтобы начать свой вклад, пожалуйста, ознакомьтесь с нашим Руководством для участников для получения полной инструкции по отправке Pull Request (PR) 🛠️. Мы в предвкушении увидеть, что вы принесете на стол!
Вместе давайте улучшим возможности отслеживания экосистемы Ultralytics YOLO 🙏!