Перейти к содержанию

Оценка позы

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

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

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



Смотреть: Ultralytics YOLO11 Pose Estimation Tutorial | Отслеживание объектов и определение позы человека в реальном времени

Совет

YOLO11 pose модели используют -pose суффикс, т.е. yolo11n-pose.pt. Эти модели обучены на ключевых точках COCO набора данных и подходят для различных задач оценки позы.

В модели позы YOLO11 по умолчанию имеется 17 ключевых точек, каждая из которых представляет собой отдельную часть человеческого тела. Ниже приведена схема соответствия каждого индекса соответствующему суставу тела:

  1. Нос
  2. Левый глаз
  3. Правый глаз
  4. Левое ухо
  5. Правое ухо
  6. Левое плечо
  7. Правое плечо
  8. Левый локоть
  9. Правый локоть
  10. Левое запястье
  11. Правое запястье
  12. Левое бедро
  13. Правое бедро
  14. Левое колено
  15. Правое колено
  16. Левая лодыжка
  17. Правая лодыжка

Модели

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

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

Модель размер
(пиксели)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLO11n-pose 640 50.0 81.0 52.4 ± 0.5 1.7 ± 0.0 2.9 7.6
YOLO11s-pose 640 58.9 86.3 90.5 ± 0.6 2.6 ± 0.0 9.9 23.2
YOLO11m-pose 640 64.9 89.4 187.3 ± 0.8 4.9 ± 0.1 20.9 71.7
YOLO11l-pose 640 66.1 89.9 247.7 ± 1.1 6.4 ± 0.1 26.2 90.7
YOLO11x-pose 640 69.5 91.1 488.0 ± 13.9 12.1 ± 0.2 58.8 203.3
  • mAPval значения для одномодельной одномасштабной модели на val2017 ключевых точек COCO наборе данных.
    Воспроизвести с помощью yolo val pose data=coco-pose.yaml device=0
  • Скорость в среднем по изображениям COCO val с использованием Amazon EC2 P4d instance.
    Воспроизвести с помощью yolo val pose data=coco-pose.yaml batch=1 device=0|cpu

Обучение

Обучите модель YOLO11-pose на наборе данных COCO8-pose. Набор данных COCO8-pose — это небольшой образец набора данных, который идеально подходит для тестирования и отладки ваших моделей оценки позы.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-pose.yaml").load("yolo11n-pose.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml pretrained=yolo11n-pose.pt epochs=100 imgsz=640

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

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

Для пользовательских задач оценки позы вы также можете изучить специализированные наборы данных, такие как Tiger-Pose для оценки позы животных, Hand Keypoints для отслеживания рук или Dog-Pose для анализа позы собак.

Валидация

Проверьте обученную модель YOLO11n-pose точность на наборе данных COCO8-pose. Аргументы не требуются, так как model сохраняет свое обучение data и аргументы в качестве атрибутов модели.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pse.maps  # a list contains map50-95(P) of each category
yolo pose val model=yolo11n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model

Прогнозирование

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.keypoints.xy  # x and y coordinates
    xyn = result.keypoints.xyn  # normalized
    kpts = result.keypoints.data  # x, y, visibility (if available)
yolo pose predict model=yolo11n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Смотрите полную информацию о predict деталях режима в Прогнозирование странице.

Экспорт

Экспортируйте модель позы YOLO11n в другой формат, например ONNX, CoreML и т. д. Это позволит вам развернуть свою модель на различных платформах и устройствах для вывода в реальном времени.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Доступные форматы экспорта YOLO11-pose указаны в таблице ниже. Вы можете выполнить экспорт в любой формат, используя format аргумент, например: format='onnx' или format='engine'. Вы можете прогнозировать или проверять непосредственно на экспортированных моделях, например: yolo predict model=yolo11n-pose.onnx. Примеры использования отображаются для вашей модели после завершения экспорта.

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

Смотрите полную информацию о export подробности в Экспорт странице.

Часто задаваемые вопросы

Что такое оценка позы с помощью Ultralytics YOLO11 и как это работает?

Оценка позы с помощью Ultralytics YOLO11 включает в себя определение конкретных точек, известных как ключевые точки, на изображении. Эти ключевые точки обычно представляют собой суставы или другие важные особенности объекта. Выходные данные включают в себя [x, y] координаты и оценки достоверности для каждой точки. Модели YOLO11-pose специально разработаны для этой задачи и используют -pose суффикс, например yolo11n-pose.pt. Эти модели предварительно обучены на наборах данных, таких как ключевых точках COCO , и могут использоваться для различных задач оценки позы. Для получения дополнительной информации посетите Страницу оценки позы.

Как я могу обучить модель YOLO11-pose на пользовательском наборе данных?

Обучение модели YOLO11-pose на пользовательском наборе данных включает загрузку модели, либо новой модели, определенной YAML-файлом, либо предварительно обученной модели. Затем вы можете начать процесс обучения, используя указанный набор данных и параметры.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Для получения подробной информации об обучении обратитесь к Разделу обучения. Вы также можете использовать Ultralytics HUB для обучения пользовательских моделей оценки позы без использования кода.

Как проверить обученную модель YOLO11-pose?

Валидация модели YOLO11-pose включает оценку ее точности с использованием тех же параметров набора данных, которые были сохранены во время обучения. Вот пример:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered

Для получения дополнительной информации посетите Раздел Val.

Могу ли я экспортировать модель YOLO11-pose в другие форматы и как это сделать?

Да, вы можете экспортировать модель YOLO11-pose в различные форматы, такие как ONNX, CoreML, TensorRT и другие. Это можно сделать с помощью python или интерфейса командной строки (CLI).

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")

Подробнее см. в разделе экспорта. Экспортированные модели могут быть развернуты на периферийных устройствах для приложений реального времени, таких как фитнес-трекинг, анализ спортивных соревнований или робототехника.

Какие модели Ultralytics YOLO11-pose доступны и каковы их показатели производительности?

Ultralytics YOLO11 предлагает различные предварительно обученные модели определения позы, такие как YOLO11n-pose, YOLO11s-pose, YOLO11m-pose и другие. Эти модели различаются по размеру, точности (mAP) и скорости. Например, модель YOLO11n-pose достигает mAPpose50-95, равного 50.0, и mAPpose50, равного 81.0. Полный список и подробную информацию о производительности можно найти в разделе «Модели».



📅 Создано 1 год назад ✏️ Обновлено 3 месяца назад

Комментарии