You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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 🙏!