Estimación de pose

La estimación de pose es una tarea que implica la identificación de la ubicación de puntos específicos en una imagen, generalmente denominados keypoints. Los keypoints pueden representar varias partes del objeto, como articulaciones, puntos de referencia u otras características distintivas. Las ubicaciones de los keypoints se representan generalmente como un conjunto de 2D [x, y] o 3D [x, y, visible] coordenadas.
La salida de un modelo de estimación de pose es un conjunto de puntos que representan los keypoints en un objeto en la imagen, generalmente junto con los puntajes 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.
Ver: Tutorial de Estimación de Pose con Ultralytics YOLO26 | Seguimiento de Objetos en Tiempo Real y Detección de Pose Humana
Consejo
YOLO26 pose los modelos utilizan el -pose sufijo, es decir, yolo26n-pose.pt. Estos modelos están entrenados en el conjunto de datos Puntos clave de COCO y son adecuados para una variedad de tareas de estimación de pose.
En el modelo de pose YOLO26 predeterminado, hay 17 puntos clave (keypoints), cada uno representando una parte diferente del cuerpo humano. Aquí está el mapeo de cada índice a su respectiva articulación corporal:
- 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 Detect, Segment y Pose están preentrenados en el conjunto de datos COCO, mientras que los modelos Classify están preentrenados en el conjunto de datos ImageNet.
Los 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) | parámetros (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 corresponden a un solo modelo a escala única en Puntos clave de COCO val2017 conjunto de datos.
Reproducir medianteyolo val pose data=coco-pose.yaml device=0 - Velocidad promediado sobre imágenes val de COCO utilizando un instancia de Amazon EC2 P4d .
Reproducir medianteyolo val pose data=coco-pose.yaml batch=1 device=0|cpu
Entrenar
Entrene 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 perfecto para probar y depurar sus modelos de estimación de pose.
Ejemplo
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)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo26n-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=yolo26n-pose.yaml pretrained=yolo26n-pose.pt epochs=100 imgsz=640
Formato del dataset
El formato del conjunto de datos de pose YOLO se puede encontrar detallado en la Guía de Conjuntos de Datos. Para convertir su conjunto de datos existente de otros formatos (como COCO etc.) al formato YOLO, utilice la herramienta JSON2YOLO de Ultralytics.
Para tareas personalizadas de estimación de pose, también puedes explorar conjuntos de datos especializados como Tiger-Pose para la estimación de pose de animales, Hand Keypoints para el seguimiento de manos o Dog-Pose para el análisis de pose canina.
Val
Valide el modelo YOLO26n-pose entrenado precisión en el dataset COCO8-pose. No se necesitan argumentos ya que el model conserva su entrenamiento data y argumentos como atributos del modelo.
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 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.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
yolo pose val model=yolo26n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model
Predecir
Utilice un modelo YOLO26n-pose entrenado para ejecutar predicciones en imágenes. El modo de predicción le permite realizar inferencias en imágenes, videos o flujos en tiempo real.
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
# 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=yolo26n-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
Ver detalles completos del predict modo en la Predecir página.
Exportar
Exporte un modelo YOLO26n Pose a un formato diferente como ONNX, CoreML, etc. Esto le permite desplegar su modelo en varias plataformas y dispositivos para inferencia en tiempo real.
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-trained model
# Export the model
model.export(format="onnx")
yolo export model=yolo26n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
Los formatos de exportación de YOLO26-pose disponibles se encuentran en la tabla siguiente. Puede exportar a cualquier formato utilizando el format argumento, es decir, format='onnx' o format='engine'. Se puede predecir o validar directamente sobre modelos exportados, es decir, yolo predict model=yolo26n-pose.onnxDespués de que finalice la exportación, se mostrarán ejemplos de uso para su modelo.
| 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, 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, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, 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, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Ver detalles completos del export detalles en la Exportar página.
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 la identificación de puntos específicos, conocidos como puntos clave, en una imagen. Estos puntos clave suelen representar articulaciones u otras características importantes del objeto. La salida incluye las [x, y] coordenadas y puntuaciones de confianza para cada punto. Los modelos YOLO26-pose están específicamente diseñados para esta tarea y utilizan el -pose sufijo, como yolo26n-pose.pt. Estos modelos están preentrenados en conjuntos de datos como Puntos clave de COCO y se pueden utilizar 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 en un conjunto de datos personalizado?
Entrenar un modelo YOLO26-pose en un conjunto de datos personalizado implica cargar un modelo, ya sea un modelo nuevo definido por un archivo yaml o un modelo preentrenado. Luego puede iniciar el proceso de entrenamiento utilizando su conjunto de datos 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, consulte la Sección de Entrenamiento. También puede utilizar Ultralytics Platform para un enfoque sin código en el entrenamiento de modelos personalizados de estimación de pose.
¿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 del conjunto de datos mantenidos durante el entrenamiento. Aquí tiene 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 remembered
Para obtener más información, visita la Sección Val.
¿Puedo exportar un modelo YOLO26-pose a otros formatos y cómo?
Sí, puede 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")
Consulte la Sección de exportación para obtener más detalles. Los modelos exportados se pueden implementar en dispositivos periféricos para aplicaciones en tiempo real como el seguimiento de la forma física, el análisis deportivo o la robótica.
¿Cuáles son los modelos Ultralytics YOLO26-pose disponibles 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 una lista completa y detalles de rendimiento, visite la Sección de Modelos.