Sleeping-post-detection-fir.../docs/ru/tasks/pose.md

15 KiB
Raw Permalink Blame History

comments description
true Узнайте, как использовать Ultralytics YOLOv8 для задач оценки позы. Найдите предварительно обученные модели, узнайте, как обучать, проверять, предсказывать и экспортировать свои собственные.

Оценка позы

Примеры оценки позы

Оценка позы — это задача, заключающаяся в определении местоположения определённых точек на изображении, обычно называемых контрольными точками. Контрольные точки могут представлять различные части объекта, такие как суставы, ориентиры или другие характерные особенности. Расположение контрольных точек обычно представлено в виде набора 2D [x, y] или 3D [x, y, visible] координат.

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

Смотрите: Оценка позы с Ultralytics YOLOv8.

!!! Tip "Совет"

Модели _pose_ YOLOv8 используют суффикс `-pose`, т.е. `yolov8n-pose.pt`. Эти модели обучены на наборе данных [COCO keypoints](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml) и подходят для различных задач оценки позы.

Модели

Здесь представлены предварительно обученные модели YOLOv8 Pose. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, а модели Classify — на наборе данных ImageNet.

Модели скачиваются автоматически из последнего релиза Ultralytics при первом использовании.

Модель размер
(пиксели)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(М)
FLOPs
(Б)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4
  • mAPval значения для одной модели одиночного масштаба на наборе данных COCO Keypoints val2017.
    Воспроизводится с помощью: yolo val pose data=coco-pose.yaml device=0
  • Скорость усреднена по изображениям COCO val на Amazon EC2 P4d инстансе.
    Воспроизводится с помощью: yolo val pose data=coco8-pose.yaml batch=1 device=0|cpu

Обучение

Обучите модель YOLOv8-pose на наборе данных COCO128-pose.

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузить модель
    model = YOLO('yolov8n-pose.yaml')  # создать новую модель из YAML
    model = YOLO('yolov8n-pose.pt')  # загрузить предварительно обученную модель (рекомендуется для обучения)
    model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt')  # создать из YAML и перенести веса

    # Обучить модель
    results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
    ```
=== "CLI"

    ```bash
    # Создать новую модель из YAML и начать обучение с нуля
    yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640

    # Начать обучение с предварительно обученной модели *.pt
    yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

    # Создать новую модель из YAML, перенести предварительно обученные веса и начать обучение
    yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640
    ```

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

Формат набора данных YOLO pose можно найти в подробностях в Руководстве по наборам данных. Для преобразования существующего набора данных из других форматов (например, COCO и т.д.) в формат YOLO, пожалуйста, используйте инструмент JSON2YOLO от Ultralytics.

Проверка

Проверьте точность обученной модели YOLOv8n-pose на наборе данных COCO128-pose. Аргументы не нужны, так как model запоминает свои data и аргументы как атрибуты модели.

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузить модель
    model = YOLO('yolov8n-pose.pt')  # загрузить официальную модель
    model = YOLO('path/to/best.pt')  # загрузить свою модель

    # Проверить модель
    metrics = model.val()  # аргументы не нужны, набор данных и настройки запомнены
    metrics.box.map    # map50-95
    metrics.box.map50  # map50
    metrics.box.map75  # map75
    metrics.box.maps   # список содержит map50-95 для каждой категории
    ```
=== "CLI"

    ```bash
    yolo pose val model=yolov8n-pose.pt  # проверить официальную модель
    yolo pose val model=path/to/best.pt  # проверить свою модель
    ```

Предсказание

Используйте обученную модель YOLOv8n-pose для выполнения предсказаний на изображениях.

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузить модель
    model = YOLO('yolov8n-pose.pt')  # загрузить официальную модель
    model = YOLO('path/to/best.pt')  # загрузить свою модель

    # Сделать предсказание моделью
    results = model('https://ultralytics.com/images/bus.jpg')  # предсказать по изображению
    ```
=== "CLI"

    ```bash
    yolo pose predict model=yolov8n-pose.pt source='https://ultralytics.com/images/bus.jpg'  # предсказать официальной моделью
    yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # предсказать своей моделью
    ```

Полные детали работы в режиме predict смотрите на странице Predict.

Экспорт

Экспортируйте модель YOLOv8n Pose в другой формат, такой как ONNX, CoreML и т.д.

!!! Example "Пример"

=== "Python"

    ```python
    from ultralytics import YOLO

    # Загрузить модель
    model = YOLO('yolov8n-pose.pt')  # загрузить официальную модель
    model = YOLO('path/to/best.pt')  # загрузить свою обученную модель

    # Экспортировать модель
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n-pose.pt format=onnx  # экспортировать официальную модель
    yolo export model=path/to/best.pt format=onnx  # экспортировать свою обученную модель
    ```

Доступные форматы экспорта модели YOLOv8-pose приведены в таблице ниже. Вы можете делать предсказания или проверки непосредственно с экспортированных моделей, например, yolo predict model=yolov8n-pose.onnx. Примеры использования показаны для вашей модели после завершения экспорта.

Формат Аргумент format Модель Метаданные Аргументы
PyTorch - yolov8n-pose.pt -
TorchScript torchscript yolov8n-pose.torchscript imgsz, optimize
ONNX onnx yolov8n-pose.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-pose_openvino_model/ imgsz, half
TensorRT engine yolov8n-pose.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-pose.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-pose_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-pose.pb imgsz
TF Lite tflite yolov8n-pose.tflite imgsz, half, int8
TF Edge TPU edgetpu yolov8n-pose_edgetpu.tflite imgsz
TF.js tfjs yolov8n-pose_web_model/ imgsz
PaddlePaddle paddle yolov8n-pose_paddle_model/ imgsz
ncnn ncnn yolov8n-pose_ncnn_model/ imgsz, half

Полные детали экспорта смотрите на странице Export.