YOLO Vision 2026:

Оценка позы с помощью Ultralytics YOLO#

Ultralytics YOLO pose estimation with human body keypoint detection

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

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



Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
Совет

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

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

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

Модели#

Предварительно обученные модели Pose Ultralytics YOLO26 представлены здесь. Модели обнаружения (Detect), сегментации (Segment) и оценки позы (Pose) предварительно обучены на датасете COCO, модели сегментации Semantic предварительно обучены на Cityscapes, а модели классификации (Classify) — на датасете ImageNet.

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

Модельразмер
(пиксели)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(М)
FLOPs
(Б)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7
  • Значения mAPval указаны для одной модели в одном масштабе на датасете COCO Keypoints val2017.
    Воспроизведите с помощью yolo val pose data=coco-pose.yaml device=0
  • Speed усреднена по изображениям COCO val с использованием инстанса Amazon EC2 P4d.
    Воспроизведите с помощью yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
  • Значения Params и FLOPs даны для слитной модели после model.fuse(), которая объединяет слои Conv и BatchNorm и, для моделей end2end, удаляет вспомогательную голову детекции «один ко многим». Предварительно обученные чекпоинты сохраняют полную архитектуру обучения и могут показывать большие значения.

Обучение#

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

Пример
from ultralytics import YOLO

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

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

Подробную информацию о режиме train смотри на странице Train. Модели оценки позы также можно обучать с помощью облачного обучения Ultralytics Platform.

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

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

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

Валидация#

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

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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 containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pose.maps  # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics  # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FN

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

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

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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)

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

Вывод результатов#

Оценка позы возвращает один объект Results на изображение. Основными полями предсказания являются result.keypoints для координат позы и result.boxes для обнаруженных экземпляров, которым принадлежат эти ключевые точки.

АтрибутТипФормаОписание
result.keypointsKeypoints(N)Ключевые точки.
result.keypoints.datatorch.float32(N,K,2/3)x,y плюс необязательная видимость / уверенность.
result.keypoints.xytorch.float32(N,K,2)Пиксельные ключевые точки.
result.keypoints.xyntorch.float32(N,K,2)Нормализованные ключевые точки.
result.boxesBoxes(N)Прямоугольники экземпляров.

Информацию о специфичных для задач полях Results для каждой задачи см. в разделе Результаты предсказания по задачам.

Экспорт#

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

Пример
from ultralytics import YOLO

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

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

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

ФорматАргумент formatМодельМетаданныеАргументы
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-pose_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-pose_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n-pose.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-pose_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n-pose_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n-pose.aimodelimgsz, batch, quantize

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

FAQ#

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

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

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-pose.yaml")  # build a new model from YAML
    model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)
    
    # Train the model
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

    Подробную информацию об обучении смотри в разделе Train. Ты также можешь использовать облачное обучение Ultralytics Platform для создания пользовательских моделей оценки позы без написания кода.

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

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-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.

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

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-pose.pt")  # load an official model
    model = YOLO("path/to/best.pt")  # load a custom-trained model
    
    # Export the model
    model.export(format="onnx")

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

  • Ultralytics YOLO26 предлагает различные предварительно обученные модели позы, такие как YOLO26n-pose, YOLO26s-pose, YOLO26m-pose и другие. Эти модели различаются по размеру, точности (mAP) и скорости. Например, модель YOLO26n-pose достигает mAPpose50-95, равного 57.2, и mAPpose50, равного 83.3. Полный список и сведения о производительности смотри в разделе Models.

Комментарии