YOLO Vision 2026 :

Estimation de pose avec Ultralytics YOLO#

Ultralytics YOLO pose estimation with human body keypoint detection

L'estimation de pose est une tâche qui consiste à identifier l'emplacement de points spécifiques dans une image, généralement appelés points clés. Les points clés peuvent représenter diverses parties de l'objet telles que des articulations, des repères ou d'autres caractéristiques distinctives. Les emplacements des points clés sont généralement représentés sous la forme d'un ensemble de coordonnées 2D [x, y], éventuellement avec un indicateur de visibilité [x, y, visible].

Le résultat d'un modèle d'estimation de pose est un ensemble de points représentant les points clés d'un objet dans l'image, généralement accompagnés des scores de confiance pour chaque point. L'estimation de pose est un excellent choix lorsque tu as besoin d'identifier des parties spécifiques d'un objet dans une scène, ainsi que leur emplacement les unes par rapport aux autres.



Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
Astuce

Les modèles pose YOLO26 utilisent le suffixe -pose, c'est-à-dire yolo26n-pose.pt. Ces modèles sont entraînés sur le jeu de données COCO keypoints et conviennent à divers types de tâches d'estimation de pose.

Dans le modèle de pose YOLO26 par défaut, il y a 17 points clés, chacun représentant une partie différente du corps humain. Voici le mappage de chaque index vers son articulation corporelle respective :

  1. Nez
  2. Œil gauche
  3. Œil droit
  4. Oreille gauche
  5. Oreille droite
  6. Épaule gauche
  7. Épaule droite
  8. Coude gauche
  9. Coude droit
  10. Poignet gauche
  11. Poignet droit
  12. Hanche gauche
  13. Hanche droite
  14. Genou gauche
  15. Genou droit
  16. Cheville gauche
  17. Cheville droite

Modèles#

Les modèles Pose pré-entraînés d'Ultralytics YOLO26 sont présentés ici. Les modèles de détection, de segmentation et de pose sont pré-entraînés sur le jeu de données COCO, les modèles Semantic sont pré-entraînés sur Cityscapes, et les modèles de classification sont pré-entraînés sur le jeu de données ImageNet.

Les modèles se téléchargent automatiquement à partir de la dernière version d'Ultralytics lors de la première utilisation.

Modèletaille
(pixels)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
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
  • Les valeurs mAPval correspondent à un modèle unique sur une échelle unique avec le jeu de données COCO Keypoints val2017.
    Reproduis avec yolo val pose data=coco-pose.yaml device=0
  • Vitesse moyennée sur les images de validation COCO en utilisant une instance Amazon EC2 P4d.
    Reproduire avec yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
  • Les valeurs de Params et FLOPs concernent le modèle fusionné après model.fuse(), qui fusionne les couches Conv et BatchNorm et, pour les modèles end2end, supprime la tête de détection auxiliaire one-to-many. Les points de contrôle pré-entraînés conservent l'architecture d'entraînement complète et peuvent afficher des nombres plus élevés.

Entraîner (Train)#

Entraîne un modèle YOLO26-pose sur le jeu de données COCO8-pose. Le jeu de données COCO8-pose est un petit jeu de données d'échantillonnage idéal pour tester et déboguer tes modèles d'estimation de pose.

Exemple
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)

Consulte les détails complets du mode train sur la page Train. Les modèles de pose peuvent également être entraînés avec Ultralytics Platform cloud training.

Format de jeu de données#

Le format de jeu de données de pose YOLO est décrit en détail dans le Dataset Guide. Pour convertir ton jeu de données existant d'autres formats (comme COCO, etc.) vers le format YOLO, utilise l'outil JSON2YOLO d'Ultralytics. Ultralytics Platform annotation prend également en charge les étiquettes de pose avec des modèles de squelette intégrés pour les personnes, les mains, les visages et des dispositions de points clés personnalisées.

Pour les tâches d'estimation de pose personnalisées, tu peux également explorer des jeux de données spécialisés tels que Tiger-Pose pour l'estimation de pose animale, Hand Keypoints pour le suivi des mains, ou Dog-Pose pour l'analyse de pose canine.

Valider (Val)#

Valide la précision du modèle YOLO26n-pose entraîné sur le jeu de données COCO8-pose. Aucun argument n'est nécessaire car le model conserve ses data et arguments d'entraînement en tant d'attributs du modèle.

Exemple
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

Prédire (Predict)#

Utilise un modèle YOLO26n-pose entraîné pour lancer des prédictions sur des images. Le predict mode te permet d'effectuer des inférences sur des images, des vidéos ou des flux en temps réel.

Exemple
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)

Consulte tous les détails du mode predict dans la page Prédire.

Sortie des résultats#

L'estimation de pose renvoie un objet Results par image. Les principaux champs de prédiction sont result.keypoints pour les coordonnées de pose et result.boxes pour les instances détectées auxquelles appartiennent ces points clés.

AttributTypeFormeDescription
result.keypointsKeypoints(N)Points clés.
result.keypoints.datatorch.float32(N,K,2/3)x,y plus la visibilité/confiance optionnelle.
result.keypoints.xytorch.float32(N,K,2)Points clés en pixels.
result.keypoints.xyntorch.float32(N,K,2)Points clés normalisés.
result.boxesBoxes(N)Boîtes d'instance.

Pour les champs Results spécifiques à chaque tâche, consulte la section Résultats de prédiction par tâche.

Exporter (Export)#

Exporte un modèle YOLO26n Pose vers un format différent tel que ONNX, CoreML, etc. Cela te permet de déployer ton modèle sur différentes plateformes et appareils pour l'inférence en temps réel.

Exemple
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")

Les formats d'exportation YOLO26-pose disponibles se trouvent dans le tableau ci-dessous. Tu peux exporter vers n'importe quel format en utilisant l'argument format, c'est-à-dire format='onnx' ou format='engine'. Tu peux prédire ou valider directement sur les modèles exportés, c'est-à-dire yolo predict model=yolo26n-pose.onnx. Des exemples d'utilisation s'affichent pour ton modèle une fois l'exportation terminée.

FormatArgument formatModèleMétadonnéesArguments
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

Consulte tous les détails de export dans la page Exporter.

FAQ#

  • L'estimation de pose avec Ultralytics YOLO26 consiste à identifier des points spécifiques, appelés points clés, dans une image. Ces points clés représentent généralement des articulations ou d'autres caractéristiques importantes de l'objet. Le résultat inclut les coordonnées [x, y] et les scores de confiance pour chaque point. Les modèles YOLO26-pose sont spécifiquement conçus pour cette tâche et utilisent le suffixe -pose, tel que yolo26n-pose.pt. Ces modèles sont pré-entraînés sur des jeux de données tels que COCO keypoints et peuvent être utilisés pour diverses tâches d'estimation de pose. Pour plus d'informations, visite la Pose Estimation Page.

  • L'entraînement d'un modèle YOLO26-pose sur un jeu de données personnalisé implique de charger un modèle, soit un nouveau modèle défini par un fichier YAML, soit un modèle pré-entraîné. Tu peux ensuite démarrer le processus d'entraînement en utilisant ton jeu de données et tes paramètres spécifiés.

    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)

    Pour des détails complets sur l'entraînement, consulte la Train Section. Tu peux aussi utiliser Ultralytics Platform cloud training pour une approche sans code permettant d'entraîner des modèles d'estimation de pose personnalisés.

  • La validation d'un modèle YOLO26-pose implique d'évaluer sa précision en utilisant les mêmes paramètres de jeu de données conservés lors de l'entraînement. Voici un exemple :

    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

    Pour plus d'informations, visite la Val Section.

  • Oui, tu peux exporter un modèle YOLO26-pose vers divers formats comme ONNX, CoreML, TensorRT, et plus encore. Cela peut être fait en utilisant Python ou l'interface de ligne de commande (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 Export Section pour plus de détails. Les modèles exportés peuvent être déployés sur des appareils de périphérie pour des applications en temps réel telles que le suivi de condition physique, l'analyse sportive ou la robotique.

  • Ultralytics YOLO26 propose divers modèles de pose pré-entraînés tels que YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, entre autres. Ces modèles diffèrent par leur taille, leur précision (mAP) et leur vitesse. Par exemple, le modèle YOLO26n-pose atteint un mAPpose50-95 de 57,2 et un mAPpose50 de 83,3. Pour une liste complète et des détails sur les performances, visite la Models Section.

Commentaires