Link to this sectionEstimation de pose#
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. Ces points clés peuvent représenter diverses parties de l'objet, telles que des articulations, des points de repère 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 accompagnées d'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 🕺
Les modèles pose de YOLO26 utilisent le suffixe -pose, par exemple yolo26n-pose.pt. Ces modèles sont entraînés sur le jeu de données COCO keypoints et sont adaptés à une variété 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 :
- Nez
- Œil gauche
- Œil droit
- Oreille gauche
- Oreille droite
- Épaule gauche
- Épaule droite
- Coude gauche
- Coude droit
- Poignet gauche
- Poignet droit
- Hanche gauche
- Hanche droite
- Genou gauche
- Genou droit
- Cheville gauche
- Cheville droite
Link to this sectionModèles#
Les modèles de pose pré-entraînés 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 Sémantique 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 depuis la dernière version d'Ultralytics lors de la première utilisation.
| Modèle | taille (pixels) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Vitesse CPU ONNX (ms) | Vitesse 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 |
- Les valeurs mAPval sont obtenues avec un modèle unique à échelle unique sur le jeu de données COCO Keypoints val2017.
Reproduis le résultat avecyolo val pose data=coco-pose.yaml device=0 - La vitesse est moyennée sur les images de validation COCO en utilisant une instance Amazon EC2 P4d.
Reproduis le résultat avecyolo val pose data=coco-pose.yaml batch=1 device=0|cpu - Les valeurs Params et FLOPs correspondent au modèle fusionné après
model.fuse(), qui combine les couches Conv et BatchNorm et, pour les modèles de bout en bout, supprime la tête de détection auxiliaire un-vers-plusieurs. 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.
Link to this sectionEntraî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 parfait pour tester et déboguer tes modèles d'estimation 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)Consulte les détails complets du mode train sur la page Entraînement. Les modèles de pose peuvent également être entraînés sur des GPU cloud via Ultralytics Platform.
Link to this sectionFormat de jeu de données#
Le format du jeu de données de pose YOLO est détaillé dans le Guide des jeux de données. Pour convertir ton jeu de données existant depuis d'autres formats (comme COCO, etc.) vers le format YOLO, utilise l'outil JSON2YOLO d'Ultralytics. Ultralytics Platform prend également en charge l'annotation de pose avec des modèles de squelette intégrés pour les personnes, les mains, les visages et les dispositions personnalisées de points clés.
Pour des tâches d'estimation de pose personnalisées, tu peux également explorer des jeux de données spécialisés comme Tiger-Pose pour l'estimation de pose animale, Hand Keypoints pour le suivi des mains, ou Dog-Pose pour l'analyse de pose canine.
Link to this sectionValider (Val)#
Valide la précision d'un 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 d'entraînement et ses arguments en tant qu'attributs du modèle.
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 FNLink to this sectionPrédire (Predict)#
Utilise un modèle YOLO26n-pose entraîné pour effectuer des prédictions sur des images. Le mode prédiction te permet d'effectuer des inférences sur des images, des vidéos ou des flux en temps réel.
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)Voir les détails complets du mode predict sur la page Predict.
Link to this sectionSortie 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.
| Attribut | Type | Forme | Description |
|---|---|---|---|
result.keypoints | Keypoints | (N) | Points clés. |
result.keypoints.data | torch.float32 | (N,K,2/3) | x,y plus visibilité/confiance optionnelle. |
result.keypoints.xy | torch.float32 | (N,K,2) | Points clés en pixels. |
result.keypoints.xyn | torch.float32 | (N,K,2) | Points clés normalisés. |
result.boxes | Boxes | (N) | Boîtes d'instance. |
Pour les champs Results spécifiques à chaque tâche, consulte la section Predict Results by Task.
Link to this sectionExporter (Export)#
Exporte un modèle YOLO26 Pose vers un format différent comme ONNX, CoreML, etc. Cela te permet de déployer ton modèle sur diverses plateformes et appareils pour une inférence en temps réel.
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 disponibles pour YOLO26-pose sont indiqués dans le tableau ci-dessous. Tu peux exporter vers n'importe quel format en utilisant l'argument format, par exemple format='onnx' ou format='engine'. Tu peux prédire ou valider directement sur des modèles exportés, par exemple yolo predict model=yolo26n-pose.onnx. Des exemples d'utilisation sont affichés pour ton modèle une fois l'exportation terminée.
| Format | Argument format | Modèle | Métadonnées | Arguments |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, 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, int8, data, fraction, 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 |
| Qualcomm QNN | qnn | yolo26n-pose_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Consulte les détails complets de export sur la page Export.
Link to this sectionFAQ#
Link to this sectionQu'est-ce que l'estimation de pose avec Ultralytics YOLO26 et comment fonctionne-t-elle ?#
L'estimation de pose avec Ultralytics YOLO26 implique l'identification de 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 comme COCO keypoints et peuvent être utilisés pour diverses tâches d'estimation de pose. Pour plus d'informations, visite la Page d'estimation de pose.
Link to this sectionComment puis-je entraîner un modèle YOLO26-pose sur un jeu de données personnalisé ?#
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 Section Entraînement. Tu peux également utiliser Ultralytics Platform pour une approche sans code de l'entraînement de modèles d'estimation de pose personnalisés.
Link to this sectionComment valider un modèle YOLO26-pose entraîné ?#
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 rememberedPour plus d'informations, visite la Section Validation.
Link to this sectionPuis-je exporter un modèle YOLO26-pose vers d'autres formats, et comment ?#
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 Section Exportation pour plus de détails. Les modèles exportés peuvent être déployés sur des appareils de bord pour des applications en temps réel comme le suivi de fitness, l'analyse sportive ou la robotique.
Link to this sectionQuels sont les modèles de pose Ultralytics YOLO26 disponibles et leurs mesures de performance ?#
Ultralytics YOLO26 propose divers modèles de pose pré-entraînés tels que YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, parmi d'autres. Ces modèles diffèrent en taille, en précision (mAP) et en 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 Section Modèles.