Estimación de pose
La estimación de pose es una tarea que consiste en identificar la ubicación de puntos específicos en una imagen, habitualmente denominados puntos clave (keypoints). Estos 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 coordenadas 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 de un objeto en la imagen, generalmente 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 🕺
Los modelos de pose de YOLO26 utilizan el sufijo -pose, por ejemplo, yolo26n-pose.pt. Estos modelos están entrenados con el conjunto de datos COCO keypoints y son adecuados para una gran variedad de tareas de estimación de pose.
En el modelo de pose predeterminado de YOLO26, hay 17 puntos clave, cada uno representando 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 en el conjunto de datos COCO, mientras que los modelos de clasificación están preentrenados en el conjunto de datos ImageNet.
Los modelos se descargan automáticamente desde la última versión de Ultralytics en su 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 |
- Los valores de mAPval son para un solo modelo y una sola escala en el conjunto de datos COCO Keypoints val2017.
Reprodúcelo medianteyolo val pose data=coco-pose.yaml device=0 - Velocidad promediada en imágenes de validación de COCO usando una instancia de Amazon EC2 P4d.
Reprodúcelo medianteyolo val pose data=coco-pose.yaml batch=1 device=0|cpu - Los valores de Params y FLOPs corresponden al modelo fusionado tras
model.fuse(), que combina las capas Conv y BatchNorm y, para los modelos de extremo a extremo (end2end), elimina la cabeza de detección auxiliar de uno a muchos. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar recuentos más elevados.
Entrenar (Train)
Entrena un modelo YOLO26-pose en el conjunto de datos COCO8-pose. El conjunto de datos COCO8-pose es un pequeño conjunto de datos de muestra que es 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 del modo train en la página Entrenar. Los modelos de pose también se pueden entrenar en GPU en la nube a través de la plataforma Ultralytics.
Formato del conjunto de datos
El formato del conjunto de datos de pose de YOLO se puede encontrar en detalle en la Guía de conjuntos de datos. Para convertir tu conjunto de datos existente desde otros formatos (como COCO, etc.) al formato YOLO, utiliza la herramienta JSON2YOLO de Ultralytics. La 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 conjuntos de datos 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.
Validar (Val)
Validate trained YOLO26n-pose model accuracy on the COCO8-pose dataset. No arguments are needed as the model retains its training data and arguments as model attributes.
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 FNPredecir
Usa un modelo YOLO26n-pose entrenado para realizar predicciones en imágenes. El modo de predicción te permite realizar inferencias en imágenes, vídeos o flujos 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 del modo predict en la página Predict.
Exportar (Export)
Exporta un modelo de pose YOLO26n 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 pose de YOLO26 disponibles se encuentran en la tabla siguiente. Puedes exportar a cualquier formato usando el argumento format, por ejemplo, format='onnx' o format='engine'. Puedes predecir o validar directamente en modelos exportados, por ejemplo, yolo predict model=yolo26n-pose.onnx. Se muestran ejemplos de uso para tu modelo una vez finalizada la exportación.
| Formato | Argumento format | 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 |
| TF Lite | 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 |
| DeepX | deepx | yolo26n-pose_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Consulta todos los detalles de export en la página Export.
Preguntas frecuentes
¿Qué es la estimación de pose con Ultralytics YOLO26 y cómo funciona?
La estimación de pose con Ultralytics YOLO26 implica identificar puntos específicos, conocidos como puntos clave, en una imagen. Estos puntos clave representan normalmente articulaciones u otras características importantes del objeto. El resultado incluye las coordenadas [x, y] y las puntuaciones de confianza para cada punto. Los modelos YOLO26-pose están diseñados específicamente para esta tarea y utilizan el sufijo -pose, como yolo26n-pose.pt. Estos modelos están preentrenados en conjuntos de datos como COCO keypoints y pueden usarse para diversas tareas de estimación de pose. Para obtener más información, visita la página de estimación de pose.
¿Cómo puedo entrenar un modelo YOLO26-pose con un conjunto de datos personalizado?
Entrenar un modelo YOLO26-pose con un conjunto de datos 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 el conjunto de datos y los parámetros que especifiques.
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 la plataforma Ultralytics para un enfoque sin código para entrenar modelos de estimación de pose 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 conjunto de datos 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 otros. Esto puede hacerse usando 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 obtener más detalles. Los modelos exportados pueden desplegarse en dispositivos de borde (edge devices) para aplicaciones en tiempo real como seguimiento de fitness, análisis deportivo o robótica.
¿Cuáles son los modelos disponibles de Ultralytics YOLO26-pose y sus métricas de rendimiento?
Ultralytics YOLO26 ofrece varios modelos de pose 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 obtener una lista completa y detalles de rendimiento, visita la sección de modelos.