Estimación de pose
La estimación de pose es una tarea que implica identificar la ubicación de puntos específicos en una imagen, habitualmente denominados puntos clave (keypoints). Los puntos clave pueden representar diversas partes del objeto, como articulaciones, puntos de referencia u otras características distintivas. Las ubicaciones de los puntos clave suelen representarse como un conjunto de 2D [x, y] o 3D [x, y, visible].
El resultado de un modelo de estimación de pose es un conjunto de puntos que representan los puntos clave en un objeto de la imagen, habitualmente junto con las puntuaciones de confianza para cada punto. La estimación de pose es una buena opción cuando necesitas identificar partes específicas de un objeto en una escena y su ubicación en relación con los demás.
Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
YOLO26 pose los modelos utilizan el sufijo -pose, es decir, yolo26n-pose.pt. Estos modelos están entrenados con el conjunto de datos COCO keypoints y son adecuados para una variedad de tareas de estimación de pose.
En el modelo de pose predeterminado de YOLO26, hay 17 puntos clave, cada uno de los cuales representa una parte diferente del cuerpo humano. Aquí tienes el mapeo de cada índice con su articulación corporal correspondiente:
- Nariz
- Ojo izquierdo
- Ojo derecho
- Oreja izquierda
- Oreja derecha
- Hombro izquierdo
- Hombro derecho
- Codo izquierdo
- Codo derecho
- Muñeca izquierda
- Muñeca derecha
- Cadera izquierda
- Cadera derecha
- Rodilla izquierda
- Rodilla derecha
- Tobillo izquierdo
- Tobillo derecho
Modelos
Aquí se muestran los modelos de pose preentrenados de Ultralytics YOLO26. Los modelos de detección, segmentación y pose están preentrenados con el conjunto de datos COCO, mientras que los modelos de clasificación están preentrenados con el conjunto de datos ImageNet.
Modelos se descargan automáticamente desde la última versión de Ultralytics en el primer uso.
| Modelo | tamaño (píxeles) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- mAPval los valores son para un modelo único a escala única en el conjunto de datos COCO Keypoints val2017.
Reproduce medianteyolo val pose data=coco-pose.yaml device=0 - Velocidad promediado sobre imágenes de validación de COCO usando una instancia de Amazon EC2 P4d.
Reproduce medianteyolo val pose data=coco-pose.yaml batch=1 device=0|cpu - Params y FLOPs los valores son para el modelo fusionado tras
model.fuse(), que combina capas Conv y BatchNorm y, para modelos end2end, elimina el head de detección auxiliar uno-a-muchos. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar recuentos más altos.
Train
Entrena un modelo YOLO26-pose con el conjunto de datos COCO8-pose. El COCO8-pose dataset es un pequeño conjunto de datos de muestra perfecto para probar y depurar tus modelos de estimación de 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)Consulta los detalles completos de train detalles del modo en la página Train. Los modelos de pose también se pueden entrenar en GPUs en la nube a través de Plataforma Ultralytics.
Formato del dataset
El formato del dataset de pose de YOLO se puede encontrar detallado en la Guía de Datasets. Para convertir tu dataset existente desde otros formatos (como COCO etc.) al formato YOLO, por favor utiliza la herramienta JSON2YOLO de Ultralytics. Plataforma Ultralytics también admite anotaciones de pose con plantillas de esqueleto integradas para personas, manos, rostros y diseños de puntos clave personalizados.
Para tareas personalizadas de estimación de pose, también puedes explorar datasets especializados como Tiger-Pose para estimación de pose animal, Hand Keypoints para seguimiento de manos, o Dog-Pose para análisis de pose canina.
Val
Valida el modelo YOLO26n-pose entrenado precisión en el dataset COCO8-pose. No se necesitan argumentos ya que el model conserva su data de entrenamiento y sus argumentos como atributos del modelo.
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 FNPredicción
Utiliza un modelo YOLO26n-pose entrenado para realizar predicciones en imágenes. El predict mode te permite realizar inferencia en imágenes, vídeos o transmisiones en tiempo real.
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)Consulta los detalles completos de predict detalles del modo en la página Predicción.
Export
Exporta un modelo YOLO26 Pose a un formato diferente como ONNX, CoreML, etc. Esto te permite desplegar tu modelo en varias plataformas y dispositivos para inferencia en tiempo real.
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")Los formatos de exportación de YOLO26-pose disponibles se encuentran en la tabla siguiente. Puedes exportar a cualquier formato usando el format, es decir, format='onnx' o format='engine'. Puedes predecir o validar directamente en modelos exportados, es decir, yolo predict model=yolo26n-pose.onnx. Los ejemplos de uso se muestran para tu modelo después de que se complete la exportación.
| Formato | format Argumento | Modelo | Metadatos | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TFLite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
Consulta los detalles completos de export en la página Export.
Preguntas frecuentes
¿Qué es la estimación de poses con Ultralytics YOLO26 y cómo funciona?
La estimación de poses con Ultralytics YOLO26 consiste en identificar puntos específicos, conocidos como keypoints, en una imagen. Estos keypoints representan normalmente articulaciones u otras características importantes del objeto. El resultado incluye las [x, y] coordenadas y las puntuaciones de confianza para cada punto. Los modelos YOLO26-pose están diseñados específicamente para esta tarea y utilizan el -pose sufijo, como yolo26n-pose.pt. Estos modelos están preentrenados en datasets como COCO keypoints y pueden utilizarse para diversas tareas de estimación de poses. Para obtener más información, visita la Página de estimación de poses.
¿Cómo puedo entrenar un modelo YOLO26-pose en un dataset personalizado?
Entrenar un modelo YOLO26-pose en un dataset personalizado implica cargar un modelo, ya sea un modelo nuevo definido por un archivo YAML o un modelo preentrenado. Luego puedes iniciar el proceso de entrenamiento utilizando tu dataset y parámetros especificados.
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)Para obtener detalles completos sobre el entrenamiento, consulta la Sección de entrenamiento. También puedes usar Plataforma Ultralytics para un enfoque sin código para entrenar modelos de estimación de poses personalizados.
¿Cómo valido un modelo YOLO26-pose entrenado?
La validación de un modelo YOLO26-pose implica evaluar su precisión utilizando los mismos parámetros de dataset conservados durante el entrenamiento. Aquí tienes un ejemplo:
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 rememberedPara más información, visita la Sección de validación.
¿Puedo exportar un modelo YOLO26-pose a otros formatos y cómo?
Sí, puedes exportar un modelo YOLO26-pose a varios formatos como ONNX, CoreML, TensorRT y más. Esto se puede hacer utilizando Python o la interfaz de línea de comandos (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")Consulta la Sección de exportación para más detalles. Los modelos exportados pueden desplegarse en dispositivos edge para aplicaciones en tiempo real como seguimiento físico, análisis deportivo o robótica.
¿Cuáles son los modelos de Ultralytics YOLO26-pose disponibles y sus métricas de rendimiento?
Ultralytics YOLO26 ofrece varios modelos de poses preentrenados como YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, entre otros. Estos modelos difieren en tamaño, precisión (mAP) y velocidad. Por ejemplo, el modelo YOLO26n-pose logra un mAPpose50-95 de 50.0 y un mAPpose50 de 81.0. Para una lista completa y detalles de rendimiento, visita la Sección de modelos.