Pose Estimation (Estimation de Pose)
La pose estimation (ou estimation de pose humaine, HPE) est une tâche de vision par ordinateur qui consiste à détecter et localiser les articulations clés du corps humain (keypoints) dans une image ou une vidéo, afin de reconstruire la posture et le mouvement d’une personne.
Vous ouvrez une application de fitness qui corrige votre posture en temps réel. Un système de surveillance détecte une chute chez une personne âgée. Un coach sportif analyse la biomécanique d’un athlète image par image. Un jeu vidéo suit vos mouvements sans manette. Toutes ces applications reposent sur la pose estimation, une brique fondamentale de la vision par ordinateur qui connecte la perception visuelle à la compréhension du mouvement humain.
Le champ a considérablement mûri ces dernières années : les modèles actuels comme YOLO11 Pose, ViTPose et DETRPose atteignent des performances en temps réel avec des précisions supérieures à 75% mAP sur le dataset COCO Keypoints, et les approches 3D progressent rapidement grâce aux modèles de diffusion et aux transformers spatio-temporels.
- Catégorie
- Vision par ordinateur / Analyse du mouvement
- Types
- 2D (coordonnées x,y) et 3D (coordonnées x,y,z)
- Approches
- Top-down (détection puis estimation) vs Bottom-up (détection directe des keypoints)
- Keypoints standard
- 17 (COCO), 18 (OpenPose), 33 (MediaPipe/BlazePose)
- Modèles clés
- HRNet, YOLO11 Pose, ViTPose, OpenPose, DETRPose, MediaPipe Pose
- Benchmark principal
- COCO Keypoints (mAP@OKS)
- Métrique
- OKS (Object Keypoint Similarity)
Comment fonctionne la pose estimation
Un système de pose estimation prend en entrée une image (ou une frame vidéo) contenant une ou plusieurs personnes, et produit en sortie les coordonnées des articulations clés du corps : nez, yeux, oreilles, épaules, coudes, poignets, hanches, genoux, chevilles. Ces points sont souvent reliés par un squelette pour former une représentation structurée de la posture.
Keypoints et squelette
Le format standard COCO définit 17 keypoints : 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. Chaque keypoint est accompagné d’un score de confiance et d’un flag de visibilité (visible, occlu, absent).
MediaPipe/BlazePose étend ce schéma à 33 keypoints en ajoutant des points sur les pieds, les pouces et des repères faciaux supplémentaires. OpenPose utilise 18 keypoints (les 17 COCO plus un point « cou »). Des modèles comme AlphaPose vont jusqu’à 136 points en incluant les mains, le visage et les pieds (format Halpe Full-Body).
Deux approches : top-down vs bottom-up
Top-down. L’approche top-down procède en deux étapes : d’abord un détecteur de personnes (type YOLO ou Faster R-CNN) localise chaque personne dans l’image avec une bounding box, puis un modèle d’estimation de pose traite chaque crop individuellement. La précision est élevée car le modèle se concentre sur une seule personne à la fois, mais le temps de calcul augmente linéairement avec le nombre de personnes. C’est l’approche de HRNet, ViTPose, et AlphaPose.
Bottom-up. L’approche bottom-up détecte d’abord tous les keypoints de toutes les personnes dans l’image, puis les assemble en squelettes individuels par un algorithme d’association (Part Affinity Fields dans OpenPose, ou associative embeddings). Le temps de calcul est indépendant du nombre de personnes, ce qui la rend plus rapide pour les scènes avec beaucoup de monde. OpenPose et HigherHRNet suivent cette approche.
Single-stage. Les modèles récents comme YOLO11 Pose et DETRPose combinent détection de personne et estimation de pose en une seule passe, offrant un compromis entre les deux approches avec des performances temps réel.
Représentation des poses : heatmaps vs régression
Deux familles de méthodes dominent pour localiser les keypoints :
Heatmaps. Le modèle produit une carte de chaleur (heatmap) pour chaque keypoint, où chaque pixel indique la probabilité que l’articulation se trouve à cet endroit. Le maximum de la heatmap donne la position estimée. C’est l’approche la plus précise, utilisée par HRNet, ViTPose, et la majorité des modèles de recherche. L’inconvénient : la résolution de la heatmap limite la précision (quantification), et le coût mémoire augmente avec la résolution.
Régression directe. Le modèle prédit directement les coordonnées (x, y) des keypoints. Plus rapide et plus léger en mémoire, mais historiquement moins précis. Les modèles YOLO Pose utilisent cette approche avec des résultats compétitifs grâce à des techniques comme SIKR (Symmetric Integral Keypoint Regression). ProbPose (CVPR 2025) a introduit une approche probabiliste qui prédit la probabilité de présence de chaque keypoint, améliorant la gestion des keypoints hors champ.
2D vs 3D : deux niveaux d’estimation
Pose estimation 2D
La pose 2D estime les coordonnées (x, y) des keypoints dans le plan de l’image. C’est la forme la plus mature et la plus déployée. Les modèles actuels atteignent des performances élevées sur COCO (>75% mAP pour les meilleurs), et les solutions temps réel comme YOLO11 Pose ou MediaPipe fonctionnent à 30+ FPS même sur des appareils mobiles.
Pose estimation 3D
La pose 3D ajoute la coordonnée de profondeur (z) pour reconstruire la posture dans l’espace tridimensionnel. C’est un problème plus difficile en raison de l’ambiguïté de profondeur : une même projection 2D peut correspondre à de multiples configurations 3D.
Trois stratégies principales existent :
Lifting 2D→3D. On estime d’abord la pose 2D, puis un second modèle « lève » les coordonnées 2D vers la 3D. C’est l’approche la plus courante, popularisée par les travaux de Martinez et al. Les modèles récents utilisent des transformers spatio-temporels pour exploiter la cohérence temporelle dans les vidéos.
Estimation directe. Un modèle unique prédit directement les coordonnées 3D à partir de l’image. Plus difficile à entraîner, mais évite l’accumulation d’erreurs du pipeline 2D→3D.
Modèles de diffusion. Tendance récente : les modèles de diffusion sont appliqués à la pose 3D pour modéliser la distribution des poses possibles plutôt qu’une estimation ponctuelle. Cela permet de gérer l’ambiguïté inhérente à la reconstruction 3D depuis une vue monoculaire. Des travaux comme DiffPose et MonoDiff9D montrent des résultats prometteurs.
Les datasets 3D principaux sont Human3.6M (3,6 millions de poses 3D en intérieur) et MPI-INF-3DHP (plus varié mais plus petit). L’évaluation utilise le MPJPE (Mean Per Joint Position Error) en millimètres.
Modèles clés
| Modèle | Approche | Backbone | COCO mAP | Vitesse | Usage |
|---|---|---|---|---|---|
| OpenPose (CMU, 2017) | Bottom-up | VGG-19 | ~61,8% | ~15 FPS (GPU) | Référence historique, multi-personne |
| HRNet (MSRA, 2019) | Top-down | HRNet-W48 | ~77,0% | ~5 FPS (GPU) | Recherche, haute précision |
| AlphaPose (SJTU) | Top-down | ResNet/HRNet | ~76,7% | ~20 FPS (GPU) | Multi-personne, tracking |
| ViTPose (2022) | Top-down | ViT-H | ~79,1% | ~10 FPS (GPU) | SOTA recherche |
| MediaPipe Pose (Google) | Two-stage | BlazePose | N/A (33 kpts) | 30+ FPS (mobile) | Mobile, edge, AR |
| MoveNet (Google) | Bottom-up | MobileNetV2 | N/A | 30+ FPS (mobile) | Mobile, temps réel |
| YOLO11 Pose (Ultralytics) | Single-stage | YOLO11 | ~80,0% @0.5 | 30+ FPS (T4 GPU) | Production, temps réel |
| DETRPose (2025) | Single-stage | Transformer | Supérieur à YOLO11-X | Temps réel | Multi-personne, foules |
OpenPose
Développé par le Perceptual Computing Lab de Carnegie Mellon, OpenPose est le pionnier de l’estimation de pose multi-personne en temps réel. Son innovation clé : les Part Affinity Fields (PAFs), des champs vectoriels qui encodent la direction et la connexion entre les articulations, permettant d’assembler les keypoints détectés en squelettes individuels sans détecteur de personne préalable. OpenPose détecte 18 keypoints corporels, plus optionnellement les mains (21 points chacune) et le visage (70 points). Bien que dépassé en précision par les modèles récents (~61,8% mAP sur COCO contre ~77% pour HRNet), OpenPose reste utilisé pour sa simplicité et son approche bottom-up rapide en multi-personne.
HRNet (High-Resolution Network)
HRNet a transformé le domaine en maintenant des représentations haute résolution tout au long du réseau, contrairement aux architectures classiques qui réduisent progressivement la résolution avant de la remonter (encoder-decoder). Quatre branches parallèles à des résolutions différentes échangent continuellement de l’information, permettant au modèle de combiner des features sémantiques de haut niveau avec une localisation spatiale précise. Résultat : ~77% mAP sur COCO, et une capacité particulière à localiser les petites articulations (doigts, orteils) avec une précision au pixel. HRNet sert de backbone dans de nombreux frameworks (MMPose, AlphaPose) et reste compétitif pour les applications nécessitant la plus haute précision.
ViTPose
ViTPose applique les Vision Transformers à la pose estimation, atteignant ~79,1% mAP sur COCO avec un backbone ViT-H. Les mécanismes de self-attention permettent de modéliser les dépendances globales entre keypoints (la position d’un genou dépend de celle de la hanche et de la cheville), ce que les CNN capturent moins naturellement. ViTPose a montré les meilleures performances dans des comparaisons indépendantes, y compris sur des domaines hors distribution (estimation de pose infantile).
YOLO11 Pose
La famille YOLO a intégré l’estimation de pose à partir de YOLOv8. YOLO11 Pose (fin 2024) est le standard de production actuel pour l’estimation single-stage. Le modèle détecte les personnes et estime leurs 17 keypoints COCO en une seule passe, avec des variantes de taille (Nano, Small, Medium, Large, Extra-Large) pour s’adapter aux contraintes de calcul. YOLO11-X Pose atteint ~80% mAP@0.5 sur COCO Keypoints avec 30+ FPS sur un GPU NVIDIA T4.
DETRPose (2025)
DETRPose est le premier modèle transformer temps réel dédié à la pose multi-personne. Son innovation : le Pose Denoising, une technique adaptée de la détection d’objets pour l’estimation de keypoints, qui génère des échantillons positifs et négatifs pendant l’entraînement pour améliorer la robustesse. DETRPose surpasse YOLO11-X et YOLOv8-X sur COCO test-dev et CrowdPose, avec moins de paramètres.
MediaPipe Pose et MoveNet
MediaPipe Pose (Google) utilise BlazePose, un modèle léger optimisé pour le mobile et l’edge. Il détecte 33 keypoints (17 COCO + points supplémentaires sur les pieds, pouces et visage) en deux étapes : détection de personne puis estimation de pose sur le crop. MoveNet (aussi Google) propose deux variantes : Lightning (ultra-rapide, ~30+ FPS sur mobile) et Thunder (plus précis). Ces solutions excellent pour les applications fitness, AR et gaming sur smartphone.
Frameworks et outils
Estimation de pose avec YOLO11 (Python)
# pip install ultralytics
from ultralytics import YOLO
# Charger le modèle pré-entraîné
model = YOLO("yolo11n-pose.pt") # Nano (rapide) ou yolo11x-pose.pt (précis)
# Inférence sur une image
results = model("photo.jpg")
# Accéder aux keypoints
for result in results:
keypoints = result.keypoints # Objet Keypoints
xy = keypoints.xy # Coordonnées [N, 17, 2]
conf = keypoints.conf # Confiance [N, 17]
# Afficher les keypoints de la première personne
for i, (point, score) in enumerate(zip(xy[0], conf[0])):
if score > 0.5:
print(f"Keypoint {i}: x={point[0]:.1f}, y={point[1]:.1f}, conf={score:.2f}")
# Inférence sur une vidéo avec visualisation
results = model("video.mp4", show=True, save=True)
Avec MediaPipe (mobile-friendly)
# pip install mediapipe opencv-python
import mediapipe as mp
import cv2
mp_pose = mp.solutions.pose
mp_drawing = mp.solutions.drawing_utils
cap = cv2.VideoCapture(0) # Webcam
with mp_pose.Pose(
min_detection_confidence=0.5,
min_tracking_confidence=0.5
) as pose:
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# Conversion BGR -> RGB
rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = pose.process(rgb)
if results.pose_landmarks:
# Dessiner le squelette
mp_drawing.draw_landmarks(
frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS
)
# Accéder à un keypoint spécifique (ex: épaule gauche)
left_shoulder = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_SHOULDER]
print(f"Épaule gauche: x={left_shoulder.x:.3f}, y={left_shoulder.y:.3f}, z={left_shoulder.z:.3f}")
cv2.imshow("Pose", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Avec MMPose (recherche/production)
# Installation
pip install -U openmim
mim install mmengine mmcv mmdet mmpose
# Inférence en ligne de commande
python demo/topdown_demo_with_mmdet.py
mmdet::rtmdet_m_8xb32-300e_coco.py
mmpose::td-hm_hrnet-w48_8xb32-210e_coco-256x192.py
--input image.jpg
--output-root vis_results/
Benchmarks et métriques
OKS (Object Keypoint Similarity)
L’OKS est la métrique standard pour évaluer la pose estimation, analogue à l’IoU pour la détection d’objets. Pour chaque keypoint, elle mesure la distance entre la position prédite et la vérité terrain, normalisée par la taille de la personne et une constante propre à chaque type d’articulation (les keypoints difficiles comme les poignets ont une tolérance plus large). Un OKS de 1,0 signifie une correspondance parfaite. Le mAP@OKS est calculé en moyennant la précision pour différents seuils d’OKS (de 0,50 à 0,95).
Datasets principaux
| Dataset | Type | Caractéristiques | Usage |
|---|---|---|---|
| COCO Keypoints | 2D | ~200K images, 17 keypoints, multi-personne, « in the wild » | Benchmark standard 2D |
| MPII Human Pose | 2D | ~25K images, 16 keypoints, activités quotidiennes | Benchmark classique |
| CrowdPose | 2D | ~20K images, scènes denses avec occlusions | Évaluation multi-personne dense |
| Human3.6M | 3D | 3,6M de poses 3D, 11 sujets, studio contrôlé | Benchmark standard 3D |
| MPI-INF-3DHP | 3D | Plus varié que H3.6M, intérieur + extérieur | Évaluation 3D in the wild |
| Halpe Full-Body | 2D | 136 keypoints (corps + mains + visage + pieds) | Estimation whole-body |
| PoseTrack | 2D vidéo | Vidéos avec tracking, multi-personne | Pose tracking temporel |
Applications
Sport et fitness. Analyse biomécanique des athlètes (trajectoires articulaires, angles, moments de force), correction de posture en temps réel dans les applications de fitness, et statistiques avancées pour les diffusions sportives (suivi des joueurs, analyse tactique). Des applications comme Apple Fitness+ et des plateformes de coaching utilisent MediaPipe ou YOLO Pose pour le feedback en direct.
Santé et rééducation. Suivi de la rééducation à domicile (mesure des amplitudes articulaires), détection de chutes chez les personnes âgées, évaluation de la douleur par analyse du mouvement, et diagnostic de troubles moteurs. La pose estimation permet de remplacer partiellement les systèmes de motion capture coûteux par une simple caméra.
Réalité augmentée et gaming. Suivi du corps pour les avatars en AR/VR, contrôle gestuel de jeux vidéo, et filtres AR corporels (Snapchat, TikTok). MediaPipe Pose est le standard pour ces cas d’usage grâce à sa légèreté et son support multi-plateforme.
Sécurité et surveillance. Détection de comportements anormaux (chutes, agressions, intrusions) par analyse de la posture. Contrairement à la reconnaissance faciale, la pose estimation n’identifie pas la personne, ce qui pose moins de problèmes de vie privée tout en permettant l’analyse comportementale.
Robotique et interaction homme-machine. Les robots collaboratifs (cobots) utilisent la pose estimation pour anticiper les mouvements de l’opérateur humain et adapter leur trajectoire en conséquence, assurant la sécurité dans les environnements de travail partagés. Les exosquelettes de rééducation s’appuient aussi sur le suivi de pose pour ajuster l’assistance.
Animation et effets visuels. La pose estimation permet le motion capture sans marqueurs (markerless mocap), réduisant les coûts et la complexité de la capture de mouvement pour l’animation 3D, les films et les jeux vidéo. Les résultats sont moins précis qu’un système multi-caméras avec marqueurs, mais suffisants pour de nombreuses applications.
Défis techniques
Occlusion. Quand des parties du corps sont cachées (par d’autres personnes, des objets, ou par auto-occlusion), le modèle doit inférer la position des keypoints invisibles. C’est le défi le plus persistant. Les approches probabilistes (ProbPose) et les modèles de diffusion 3D tentent de modéliser l’incertitude plutôt que de forcer une estimation unique.
Foules denses. L’estimation de pose dans les foules (CrowdPose) est particulièrement difficile car les squelettes se chevauchent. L’association des keypoints aux bonnes personnes est une source majeure d’erreurs. DETRPose a été conçu spécifiquement pour ce scénario.
Ambiguïté de profondeur (3D). Reconstruire la profondeur à partir d’une seule vue 2D est un problème intrinsèquement sous-déterminé. Un bras tendu vers la caméra et un bras replié peuvent produire des projections 2D similaires. Les contraintes biomécaniques (limites articulaires, proportions corporelles) et la cohérence temporelle aident à lever l’ambiguïté.
Généralisation inter-domaine. Les modèles entraînés sur des adultes en conditions variées peuvent échouer sur des nourrissons, des personnes en fauteuil roulant, ou dans des poses inhabituelles (yoga avancé, acrobaties). La data augmentation et le transfer learning atténuent ce problème mais ne le résolvent pas complètement.
Performances sur edge. Déployer des modèles précis sur des appareils à ressources limitées (smartphones, caméras embarquées) nécessite des techniques de quantization, de pruning, et l’export en format ONNX ou TFLite. MediaPipe et MoveNet sont conçus dès le départ pour ce type de contrainte, tandis que les modèles comme HRNet ou ViTPose nécessitent une optimisation significative.
Tendances récentes
Modèles de diffusion pour la 3D. L’application des modèles de diffusion à la pose 3D est une des directions de recherche les plus actives. Au lieu de prédire une seule pose 3D, ces modèles apprennent la distribution des poses possibles, gérant naturellement l’incertitude. DiffPose et MonoDiff9D (2025, IEEE TPAMI) montrent des résultats compétitifs sur Human3.6M.
Transformers spatio-temporels. Pour la pose estimation vidéo, les transformers capturent simultanément les relations spatiales entre keypoints et les dépendances temporelles entre frames. Des modèles à base de state-space models (SSM, type Mamba) commencent aussi à être explorés pour leur efficacité sur les longues séquences.
Foundation models pour la pose. La tendance vers des modèles fondamentaux polyvalents touche aussi la pose estimation : des modèles comme ViTPose+ sont entraînés conjointement sur la pose humaine, animale et faciale, avec un transfer learning vers des domaines spécifiques.
Estimation whole-body. Plutôt que de traiter séparément le corps, les mains et le visage, les modèles récents estiment l’ensemble du corps en une seule passe (Halpe Full-Body, COCO-WholeBody). AlphaPose atteint ~57,7% mAP sur COCO-WholeBody avec 136 keypoints.
Questions fréquentes sur la pose estimation
Quelle est la différence entre pose estimation et object detection ?
L’object detection localise des objets avec des bounding boxes rectangulaires et une étiquette de classe (« personne », « voiture »). La pose estimation va plus loin en localisant les articulations internes du corps avec des coordonnées précises (keypoints). Un détecteur d’objets vous dit « il y a une personne ici » ; un estimateur de pose vous dit « cette personne a le bras gauche levé, le genou droit fléchi à 90° ». Les modèles single-stage comme YOLO11 Pose combinent les deux : ils détectent les personnes ET estiment leurs keypoints simultanément.
Peut-on faire de la pose estimation 3D avec une seule caméra ?
Oui, c’est le domaine de la pose estimation 3D monoculaire. Les modèles actuels (lifting 2D→3D, estimation directe, diffusion models) reconstruisent la profondeur à partir d’une seule vue RGB. Les performances sont en constante amélioration, avec des erreurs moyennes autour de 30 à 50 mm par articulation sur Human3.6M pour les meilleurs modèles. La précision reste inférieure à celle des systèmes multi-caméras ou des capteurs de profondeur, mais suffisante pour de nombreuses applications (fitness, gaming, analyse de mouvement approchée). L’ajout de contraintes biomécaniques et de cohérence temporelle améliore significativement les résultats.
MediaPipe Pose ou YOLO11 Pose : lequel choisir ?
MediaPipe Pose est optimisé pour le mobile et l’edge : il fonctionne à 30+ FPS sur smartphone, détecte 33 keypoints, et s’intègre facilement dans les applications Android/iOS via ML Kit. YOLO11 Pose est plus adapté aux serveurs et GPU : il offre une meilleure précision (~80% mAP@0.5 vs benchmarks non directement comparables), gère nativement le multi-personne, et s’intègre dans les pipelines Ultralytics. Choisissez MediaPipe pour le mobile et les applications légères, YOLO11 pour le backend et la production sur GPU.
La pose estimation peut-elle remplacer le motion capture professionnel ?
Pas encore pour les applications nécessitant une précision millimétrique (biomécanique de pointe, animation AAA). Les systèmes de motion capture à marqueurs (Vicon, OptiTrack) atteignent une précision sub-millimétrique avec des caméras calibrées. La pose estimation par deep learning depuis une seule caméra a des erreurs de l’ordre de 1 à 5 mm en 2D et 30 à 50 mm en 3D monoculaire. Cependant, pour le motion capture « bonne qualité à moindre coût » (indie games, préviz, réalité virtuelle, rééducation), la pose estimation sans marqueur est de plus en plus adoptée car elle élimine le matériel coûteux et la préparation des acteurs.
Comment gérer l’estimation de pose pour des animaux ou des objets ?
La pose estimation ne se limite pas aux humains. DeepLabCut, initialement conçu pour le suivi d’animaux en neurosciences, permet d’entraîner des modèles de pose estimation sur n’importe quel type d’objet articulé avec des annotations personnalisées. MMPose (OpenMMLab) supporte la pose animale (quadrupèdes, oiseaux). Pour les objets rigides (estimation de pose 6DoF pour la robotique), des approches spécialisées comme PVNet, DenseFusion, et les récents Mh6D et Diff9D utilisent des techniques différentes adaptées à l’estimation de position et d’orientation dans l’espace 3D.