- ๐ Introduction
- ๐ Survey Papers
- ๐ง 2D Human Pose Estimation
- ๐ญ 3D Human Pose Estimation
- โ Hand Pose Estimation
- ๐ Face & Facial Landmark Detection
- ๐ค Whole-Body Pose Estimation
- ๐ฅ Multi-Person Pose Estimation
- โก Real-Time & Lightweight Models
- ๐ Datasets
- ๐ Evaluation Metrics
- ๐ ๏ธ Tools & Libraries
- ๐ฏ Applications
- ๐ Resources
Human Pose Estimation (HPE) is the task of estimating the configuration of the body (pose) from an image or video. It involves detecting and localizing key anatomical points (keypoints) such as joints, hands, facial features, and connecting them to form a skeletal structure.
- ๐ธ Occlusion: Body parts hidden by objects or other people
- ๐ธ Scale Variation: People at different distances from camera
- ๐ธ Lighting Conditions: Varying illumination and shadows
- ๐ธ Complex Poses: Unusual body configurations
- ๐ธ Real-time Performance: Balancing accuracy vs. speed
- ๐ธ Depth Ambiguity: Inferring 3D from 2D images
| Year | Title | Venue | Links |
|---|---|---|---|
| 2025 | Two-Dimensional Human Pose Estimation with Deep Learning: A Review | Applied Sciences | Paper |
| 2025 | A systematic survey on human pose estimation | AI Review | Paper |
| 2025 | A Survey of the State of the Art in Monocular 3D Human Pose Estimation | Sensors | Paper |
| 2024 | A survey on deep 3D human pose estimation | AI Review | Paper |
| 2024 | Deep Learning for 3D Human Pose Estimation and Mesh Recovery | arXiv | Paper |
| 2023 | Deep Learning-based Human Pose Estimation: A Survey | ACM Computing Surveys | Paper |
| 2022 | Recent Advances of Monocular 2D and 3D HPE: A Deep Learning Perspective | ACM Computing Surveys | Paper |
2D HPE aims to detect human joint locations in pixel coordinates from RGB images.
Top-down methods first detect person bounding boxes, then estimate pose for each person.
| Method | Year | Venue | Key Features | Code |
|---|---|---|---|---|
| VTTransPose | 2024 | Scientific Reports | Efficient transformer-based 2D pose estimation | - |
| CCAM-Person | 2024 | Scientific Reports | YOLOv8-based real-time HPE | - |
| ViTPose++ | 2023 | TPAMI | Vision transformer for generic body pose | GitHub |
| HRNet | 2020 | CVPR | High-resolution representations | GitHub |
| SimpleBaseline | 2018 | ECCV | Simple yet effective baseline | GitHub |
HRNet (High-Resolution Network)
- ๐ฏ Maintains high-resolution representations throughout
- ๐ฏ Parallel multi-resolution subnetworks
- ๐ฏ Repeated multi-scale fusion
- ๐ Paper | Code
SimpleBaseline
- ๐ฏ ResNet backbone + deconvolution layers
- ๐ฏ Simple architecture, strong performance
- ๐ Paper | Code
Hourglass Networks
- ๐ฏ Stacked hourglass architecture
- ๐ฏ Bottom-up, top-down processing
- ๐ Paper
Bottom-up methods detect all keypoints first, then group them into individuals.
| Method | Year | Key Features | Code |
|---|---|---|---|
| OpenPose | 2019 | Part Affinity Fields (PAFs), multi-person real-time | GitHub |
| HigherHRNet | 2020 | Multi-resolution heatmaps | GitHub |
| AssociativeEmbedding | 2017 | Grouping via embeddings | GitHub |
OpenPose ๐
- First real-time multi-person 2D pose estimation
- Detects body (25 points), hands (21 points each), face (70 points)
- Uses Part Affinity Fields for limb association
- ๐ Paper | Code
Latest approaches using vision transformers and attention mechanisms.
| Method | Year | Venue | Highlights | Code |
|---|---|---|---|---|
| ViTPose | 2022 | NeurIPS | Simple ViT baselines, SOTA on COCO | GitHub |
| ViTPose++ | 2023 | TPAMI | Generic body pose (human, animal, etc.) | GitHub |
| TokenPose | 2021 | ICCV | Token-based representation | GitHub |
| PCT | 2022 | CVPR | Pose transformer with convolutions | - |
ViTPose Key Features:
- โ Plain vision transformer encoder
- โ Scalable architecture (ViTPose-S/B/L/H)
- โ Shifted window & pooling attention
- โ COCO val: 81.1 AP (ViTPose-H)
- ๐ Paper
Estimating 3D joint locations in world coordinates from images or videos - the foundation for AR/VR, motion capture, sports analytics, and healthcare applications.
|
Monocular RGB ๐ฅ
|
Multi-View
|
Video-Based
|
SasMamba (November 2024) - SOTA Efficiency
- Structure-Aware Stride SSM (SAS-SSM)
- Multi-scale global representations
- Linear complexity O(n)
- 5ร faster than Transformers
- ๐ Paper
PoseMamba (August 2024)
- Bidirectional global-local spatio-temporal SSM
- Purely SSM-based (no convolutions)
- Linear complexity for long sequences
- Spatial reordering strategy
- ๐ Paper
Why Mamba for 3D Pose?
- โ Superior long-range modeling
- โ Linear complexity vs quadratic (Transformers)
- โ Fast inference (5ร throughput)
- โ Better temporal modeling
- โ Scales to long videos
HDPose (2024) - Hierarchical Diffusion
- Post-hierarchical diffusion with conditioning
- Iterative denoising from noisy 3D pose
- No adversarial training (stable)
- Multiple plausible hypotheses
- ๐ Paper
FinePOSE (May 2024)
- Fine-grained prompt-driven denoiser
- Part-aware prompt learning
- Diffusion-based generation
- ๐ Paper
DiffuPose (2024)
- Denoising Diffusion Probabilistic Model
- Handles depth ambiguity
- Generative modeling approach
- ๐ arXiv
Key Innovation: Diffusion models generate multiple hypotheses instead of single prediction, naturally handling depth ambiguity and occlusion.
Classic Approach:
RGB Image โ 2D Pose Detector โ 2D Keypoints โ 3D Lifting Network โ 3D Pose
| Method | Year | MPJPE (H3.6M) | Key Innovation | Code |
|---|---|---|---|---|
| Martinez Baseline | 2017 | 37.7mm | Simple FC residual nets | GitHub |
| SemGCN | 2019 | 35.2mm | Semantic graph convolutions | GitHub |
| MotionAGFormer | 2024 | 33.4mm | Transformer-GCN hybrid | - |
Advantages:
- โ Leverage strong 2D detectors
- โ Modular design
- โ Can train separately
- โ Better generalization
Martinez Method (ICCV 2017) ๐
- Foundational 2Dโ3D lifting baseline
- Simple feedforward network
- Still competitive in 2024
- Used in many recent works
Direct regression from RGB to 3D pose without explicit 2D detection.
Advantages:
- โ No error accumulation
- โ Joint optimization
- โ Faster inference
Exploiting temporal consistency across frames for smoother, more accurate 3D pose.
VideoPose3D (CVPR 2019) ๐
- Dilated temporal convolutions
- Semi-supervised training
- 46.8mm MPJPE on Human3.6M
- Foundational work for video-based methods
- ๐ Paper | ๐ป Code
Architecture:
2D Keypoints Sequence โ Temporal Conv (dilated) โ 3D Pose Sequence
PoseFormer (ICCV 2021)
- First pure transformer for 3D pose
- Spatial-temporal attention
- Models joint relations + temporal correlations
- No convolutions required
- ๐ Paper
MHFormer (CVPR 2022) - Multi-Hypothesis
- Multiple hypothesis generation
- Transformer-based
- Improves representational power
- Synthesizes diverse pose hypotheses
- ๐ป Code
MixSTE (CVPR 2022) - Spatial-Temporal Excellence
- Joints as tokens (temporal + spatial)
- Preserves sequence coherence
- Mixed spatial-temporal encoding
- ๐ป Code
P-STMO (ECCV 2022)
- Pre-trained Spatial-Temporal Many-to-One
- Strong baseline for comparisons
- Used in many 2024 benchmarks
MotionBERT (ICCV 2023)
- Dual-stream spatio-temporal transformer
- Long-range dependencies
- Pre-training on large datasets
- ๐ป Code
Hourglass Tokenizer (HoT) - CVPR 2024
- Reduces FLOPs by 50% on MotionBERT
- Reduces FLOPs by 40% on MixSTE
- Minimal performance loss (<0.2%)
- Hierarchical token compression
- ๐ป Code
DASTFormer (2024)
- 39.6mm MPJPE (Protocol 1)
- 33.4mm P-MPJPE (Protocol 2)
- 7.5% improvement over P-STMO
- Dynamic attention mechanisms
| Method | Year | MPJPE | PA-MPJPE | Approach |
|---|---|---|---|---|
| DASTFormer | 2024 | 39.6mm | 33.4mm | Transformer |
| MotionBERT | 2023 | 41.2mm | 35.8mm | Transformer |
| MixSTE | 2022 | 42.9mm | 36.1mm | Transformer |
| MHFormer | 2022 | 43.0mm | 36.4mm | Transformer |
| PoseFormer | 2021 | 44.3mm | 37.2mm | Transformer |
| VideoPose3D | 2019 | 46.8mm | 36.5mm | TCN |
Using multiple synchronized cameras for accurate 3D reconstruction.
VoxelPose (ECCV 2020) ๐
- Projects 2D heatmaps to 3D voxel space
- Coarse-to-fine refinement
- Handles occlusion naturally
- Multi-person capable
VoxelKeypointFusion (October 2024)
- Learning-free algorithmic approach
- Voxel-based vs line-based triangulation
- Multiple keypoints per ray
- Detects occluded keypoints better
- ๐ Paper
3DSA (ECCV 2024) - 3D Space Attention
- Attention mechanisms in voxel space
- SOTA on CMU Panoptic Studio
- Improves VoxelPose and Faster VoxelPose
RapidPoseTriangulation (2024)
- Learning-free triangulation
- Multi-person whole-body
- Millisecond inference
- Simple and effective
- ๐ Paper
Classical Approach:
Multi-view 2D Poses โ Epipolar Geometry โ Triangulation โ 3D Pose
Multiple View Geometry Transformers (CVPR 2024)
- Transformer-based multi-view fusion
- End-to-end learning
- Superior to VoxelPose
- Reduces quantization error
Comparison:
- Voxel-based: Better occlusion handling, end-to-end trainable
- Triangulation: Faster, learning-free, interpretable
- Hybrid: Best accuracy, combines both approaches
Reconstructing full 3D human body mesh (not just keypoints).
SMPL = Skinned Multi-Person Linear model
- Vertices: 6,890 vertices
- Faces: 13,776 faces
- Parameters:
- ฮฒ (10): Shape parameters
- ฮธ (72): Pose parameters (24 joints ร 3 rotation)
SMPL-X = Extended SMPL
- Adds hands (MANO)
- Adds face expression
- Whole-body reconstruction
ADHMR (ICML 2025) ๐ฅ
- Aligning Diffusion-based HMR
- Direct Preference Optimization
- Latest SOTA approach
- ๐ป Code
Multi-HMR (ECCV 2024)
- Multi-person whole-body in single shot
- SMPL-X predictions
- Hands + face + body
- 3D location in camera coordinates
- ๐ Paper
CLIFF (2024)
- Carrying Location Information in Full Frames
- Integrates spatial context
- Compatible with all HMR frameworks
SMPLer-X (NeurIPS 2023)
- Scaling up expressive pose
- Whole-body estimation
- Large-scale training
RoboSMPLX (NeurIPS 2023)
- Enhanced robustness
- Whole-body pose
- Handles difficult cases
- ๐ฎ Gaming: Avatar creation
- ๐ฌ VFX: Digital humans
- ๐ Fashion: Virtual try-on
- ๐ Sports: Biomechanics analysis
- ๐ฅ Healthcare: Gait analysis
| Dataset | Year | Type | Frames | Subjects | Actions | Environment | MPJPE Baseline |
|---|---|---|---|---|---|---|---|
| Human3.6M | 2014 | Lab | 3.6M | 9 | 15 | Indoor, 4 cams | ~40mm |
| 3DPW | 2018 | Wild | 51K | 7 | 47 | Outdoor, in-the-wild | ~47mm |
| MPI-INF-3DHP | 2017 | Mixed | 1.3M | 8 | 8 | Indoor + Outdoor, 14 cams | ~50mm |
Human3.6M ๐
- Most popular benchmark
- Laboratory setting, high quality
- Protocols: P1 (MPJPE), P2 (PA-MPJPE)
- Standard for method comparison
3DPW ๐
- In-the-wild outdoor scenes
- IMU sensors + video
- Real-world performance evaluation
- Challenging: occlusion, lighting, motion
MPI-INF-3DHP
- Both indoor & outdoor
- Green screen + studio backgrounds
- Multi-view (14 cameras)
- Markerless MoCap system
H3WB (ICCV 2023)
- Human3.6M 3D WholeBody
- 133 keypoints (body + hands + face)
- Extension of Human3.6M
- ๐ป GitHub
FreeMan (CVPR 2024)
- Real-world conditions benchmark
- Diverse scenarios
- Addresses dataset bias
AthletePose3D (2024)
- Athletic movements
- Kinematic validation
- Sports-specific
MPJPE (Mean Per Joint Position Error)
MPJPE = mean(||pred_joints - gt_joints||โ)- Unit: millimeters
- Protocol 1 on Human3.6M
- Direct 3D distance
PA-MPJPE (Procrustes Aligned MPJPE)
PA-MPJPE = MPJPE after Procrustes alignment- Removes global rotation, scale, translation
- Protocol 2 on Human3.6M
- Focuses on pose structure
P-MPJPE (Per-joint MPJPE)
- Individual joint errors
- Identifies weak joints
N-MPJPE (Normalized MPJPE)
- Normalized by torso size
- Scale-invariant evaluation
import torch
from common.model import TemporalModel
# Load model
model = TemporalModel(
num_joints_in=17,
in_features=2,
num_joints_out=17,
filter_widths=[3,3,3,3,3],
causal=False,
dropout=0.25,
channels=1024
)
checkpoint = torch.load('pretrained_h36m_detectron_coco.bin')
model.load_state_dict(checkpoint['model_pos'])
model.eval()
# Input: 2D keypoints sequence [T, 17, 2]
# Output: 3D pose sequence [T, 17, 3]
with torch.no_grad():
predicted_3d = model(keypoints_2d)from lib.model.DSTformer import DSTformer
# Load model
model = DSTformer(
dim_in=3,
dim_out=3,
dim_feat=512,
dim_rep=512,
depth=5,
num_heads=8,
mlp_ratio=2
)
# Input: [B, T, J, C] - Batch, Time, Joints, Channels
# Output: [B, T, J, 3] - 3D coordinates
output_3d = model(input_2d)-
State-Space Models (Mamba) ๐ฅ
- Linear complexity
- Superior to Transformers for long sequences
- SasMamba, PoseMamba leading methods
-
Diffusion Models ๐ฅ
- Probabilistic 3D pose
- Multiple hypotheses
- Better uncertainty modeling
-
Foundation Models
- Large-scale pre-training
- Cross-dataset generalization
- Few-shot adaptation
-
Neural Radiance Fields (NeRF)
- 3D scene representation
- Novel view synthesis
- Implicit 3D modeling
-
Self-Supervised Learning
- Monocular depth estimation
- Unlabeled video exploitation
- Reduced annotation cost
-
Real-Time Optimization
- Efficient tokenization (HoT)
- Model compression
- Edge deployment
-
Multi-Modal Fusion
- Vision + IMU sensors
- RGB-D integration
- Audio-visual cues
- ๐ฅฝ AR/VR: Full-body tracking for metaverse
- ๐ฌ Motion Capture: Film & gaming animation
- โฝ Sports Analytics: Biomechanics, performance analysis
- ๐ฅ Healthcare: Gait analysis, rehabilitation monitoring
- ๐ Autonomous Driving: Pedestrian pose understanding
- ๐ค Robotics: Human-robot interaction, imitation learning
- ๐ฎ Gaming: Real-time character control
- ๐ฎ Surveillance: Behavior analysis, anomaly detection
Benchmarks & Leaderboards:
Repositories:
Latest Surveys:
๐ Complete Hand & Finger Pose Guide - Ultra-comprehensive documentation covering all aspects of hand pose estimation
Detecting and tracking hand joints and finger positions - one of the most challenging problems in computer vision with 27 DOF and severe self-occlusion.
|
2D/3D Pose
|
3D Mesh Reconstruction
|
Hand-Object Interaction
|
Applications
|
| Method | Year | Type | PA-MPJPE | Key Innovation | Code |
|---|---|---|---|---|---|
| HaMeR | 2024 | Parametric | 5.6mm | Transformer-based, SOTA accuracy | GitHub |
| Hamba | 2024 | Parametric | 5.2mm | Mamba architecture, bi-scanning | arXiv |
| MaskHand | 2024 | Parametric | 5.1mm | Masked modeling, 7.5% improvement | arXiv |
| MeshGraphormer | 2021 | Non-parametric | 6.0mm | Graph transformer | GitHub |
MediaPipe Hands ๐
- โ 21 3D landmarks @ 30+ FPS
- โ Multi-hand support (up to 2 hands)
- โ Cross-platform (mobile, web, desktop)
- โ Palm detection + landmark model
- ๐ Paper | ๐ป Code
Performance:
- Accuracy: 95%+ on palm detection
- Latency: 33ms on Pixel 3
- Landmarks: <5% error relative to palm size
Recent breakthroughs in understanding how hands interact with objects:
| Method | Venue | Innovation | Application |
|---|---|---|---|
| HOLD | CVPR 2024 | First template-free HOI from video | Articulated objects |
| HOIC | SIGGRAPH 2024 | Physics-based RL reconstruction | RGBD manipulation |
| DiffH2O | SIGGRAPH Asia 2024 | Text-to-interaction generation | Dexterous grasping |
| ManiVideo | CVPR 2025 | Hand-object manipulation video | Generalizable grasping |
| HOISDF | CVPR 2024 | Global SDF constraints | SOTA on DexYCB |
InterHand2.6M Dataset - First large-scale dataset for interacting hands
- ๐ 2.6M annotated frames
- ๐ค Single + interacting hands
- ๐ 3D joint locations (42 keypoints)
Recent Methods:
- HandFI (2024): Multi-level feature fusion
- VM-BHINet (2025): Vision Mamba for bimanual hands
- InterHandGen (2024): Diffusion-based generation
Critical for AR/VR applications with unique challenges:
- Close-range perspective distortion
- Partial visibility
- Motion blur
- Limited field of view
Recent Solutions:
- Multi-view egocentric tracking (Meta Quest 3, Apple Vision Pro)
- ECCV 2024 Challenge winner: 13.92mm MPJPE
- EgoWorld (2025): Exo-to-ego view translation
Real-Time ASL (2025): 98.2% accuracy using YOLOv11 + MediaPipe
- Real-time inference on standard webcam
- Handles visually similar gestures (A/T, M/N)
- mAP@0.5: 98.2%
Applications:
- American Sign Language (ASL) alphabet
- Continuous sign language translation
- Fingerspelling recognition (71.7% SOTA)
| Dataset | Year | Type | Samples | Features | Links |
|---|---|---|---|---|---|
| FreiHAND | 2019 | RGB | 134K | 21 joints + mesh | Website |
| RHD | 2017 | RGB | 44K | Synthetic hands | Website |
| InterHand2.6M | 2020 | RGB | 2.6M | Two-hand interaction | Website |
| HO-3D | 2020 | RGB-D | 77K | Hand + object | GitHub |
| DexYCB | 2021 | RGB-D | 582K | Grasping | Website |
| ContactPose | 2020 | RGB-D | 2.9K | Contact annotations | Website |
Frameworks:
- MediaPipe: Real-time, cross-platform
- MMPose: 200+ models, research-focused
- HaMeR: 3D mesh reconstruction
- Detectron2: Keypoint R-CNN
Specialized:
- MANO/Manopth: Parametric hand model
- PyTorch3D: 3D deep learning
- Open3D: Point cloud processing
import mediapipe as mp
import cv2
# Initialize MediaPipe Hands
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(max_num_hands=2, min_detection_confidence=0.7)
# Process frame
image = cv2.imread('hand.jpg')
results = hands.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
# Get 21 keypoints per hand
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
# Access individual joints: wrist (0), thumb_tip (4), index_tip (8), etc.
wrist = hand_landmarks.landmark[0]
print(f"Wrist: x={wrist.x}, y={wrist.y}, z={wrist.z}")- ๐ฅฝ AR/VR: Natural hand interaction in virtual environments
- ๐ค Robotics: Teaching by demonstration, teleoperation
- ๐ฅ Healthcare: Rehabilitation monitoring, surgical training
- ๐ฎ Gaming: Gesture-based controls, motion capture
- โฟ Accessibility: Sign language translation, assistive tech
- ๐ Automotive: Touchless infotainment controls
- MPJPE: Mean Per Joint Position Error (mm)
- PA-MPJPE: Procrustes Aligned MPJPE
- AUC: Area Under PCK Curve (0-50mm)
- PCK: Percentage of Correct Keypoints
- F@Xmm: Fraction of frames under X mm error
- Transformer dominance: ViT-based architectures outperform CNNs
- Foundation models: Large-scale pre-training for generalization
- Generative approaches: Diffusion models for hand synthesis
- Physics integration: Biomechanical constraints, contact modeling
- Multimodal fusion: Vision + IMU + tactile sensing
๐ For comprehensive coverage, see our Complete Hand & Finger Pose Estimation Guide with:
- Detailed method explanations
- Complete code examples
- Dataset comparisons
- Benchmark results
- Implementation tutorials
Detecting facial keypoints for face alignment and analysis.
Dlib Face Alignment
- 68-point facial landmark detector
- Based on ensemble of regression trees
- Trained on iBUG 300-W dataset
- Fast and accurate for frontal faces
- ๐ Paper | Code
MediaPipe Face Mesh
- 468 3D facial landmarks
- Real-time on mobile devices
- Handles various poses and expressions
- Code
OpenFace
- 2D and 3D facial landmark detection
- Facial action unit recognition
- Head pose estimation
- GitHub
- ๐ธ 5 points: Eyes, nose, mouth corners (alignment)
- ๐ธ 68 points: dlib standard (iBUG 300-W)
- ๐ธ 98 points: WFLW dataset
- ๐ธ 468 points: MediaPipe Face Mesh
- Occlusions (masks, hands, hair)
- Extreme head poses
- Lighting variations
- Expression changes
Unified estimation of body, hands, and face keypoints.
AlphaPose ๐
- Regional multi-person whole-body pose
- Real-time tracking
- Body + hands + face + feet
- ๐ Paper | Code
Recent Advances (2024-2025)
| Method | Year | Keypoints | Features |
|---|---|---|---|
| EE-YOLOv8 | 2025 | 133 | EMRF + EFPN architecture |
| ZoomNAS | 2022 | 133 | Neural architecture search |
| DWPose | 2023 | 133 | Distilled whole-body pose |
- ๐ค Body: 17 points (COCO format)
- โ Hands: 21 points each (42 total)
- ๐ Face: 68-70 points
- ๐ฆถ Feet: 6 points
- Total: ~133 keypoints
Detecting and estimating poses for multiple people in crowded scenes.
- Detect person bounding boxes (object detector)
- Estimate pose for each person independently
- โ High accuracy
- โ Speed decreases with more people
- ๐ง Methods: Faster R-CNN + pose, YOLO + pose
- Detect all keypoints in image
- Group keypoints into individuals
- โ Speed independent of people count
- โ Lower accuracy in crowded scenes
- ๐ง Methods: OpenPose, HigherHRNet
YOLO-Pose
- Joint detection + pose estimation
- Single forward pass
- COCO val: 90.2% AP50
- Real-time performance
- ๐ Paper | Code
YOLO11-Pose (2024)
- Latest YOLO variant for pose
- Anchor-free, single-stage
- Optimized for speed + accuracy
- Docs
Models optimized for edge devices, mobile, and real-time applications.
| Model | FPS | Size | Target | Links |
|---|---|---|---|---|
| MoveNet | >50 | <10MB | Mobile, edge | TF Hub |
| PoseNet | 30+ | 13MB | Browser, mobile | TensorFlow |
| Lite-HRNet | 25+ | <10MB | Mobile | GitHub |
| MobilePose | 30+ | 5MB | Mobile | - |
| PocketPose | 40+ | <5MB | Edge devices | PyPI |
TensorFlow Lite
- Convert models to .tflite format
- Quantization support (INT8, FP16)
- Optimized for mobile/edge
- Guide
ONNX Runtime
- Cross-platform inference
- Hardware acceleration
- Supports multiple backends
- Docs
MediaPipe
- Ready-to-use solutions
- Cross-platform (iOS, Android, Web)
- Optimized pipelines
- Solutions
- ๐ง Model quantization (INT8, FP16)
- ๐ง Knowledge distillation
- ๐ง Neural architecture search (NAS)
- ๐ง Pruning and compression
- ๐ง Hardware-aware design
Comprehensive list of pose estimation datasets with benchmarks.
| Dataset | Year | Images | People | Keypoints | Annotations | Links |
|---|---|---|---|---|---|---|
| COCO | 2014 | 250K+ | 250K+ | 17 | 2D body | Website |
| MPII | 2014 | 25K | 40K | 16 | 2D body | Website |
| AI Challenger | 2017 | 300K+ | 700K+ | 14 | 2D body | - |
| CrowdPose | 2019 | 20K | 80K | 14 | Crowded scenes | GitHub |
| OCHuman | 2019 | 5K | 13K | 17 | Occlusions | GitHub |
| Dataset | Year | Type | Subjects | Keypoints | Environment | Links |
|---|---|---|---|---|---|---|
| Human3.6M | 2014 | 3D | 11 | 32 (reduced to 17) | Indoor | Website |
| MPI-INF-3DHP | 2017 | 3D | 8 | 17 | Indoor + outdoor | Website |
| 3DPW | 2018 | 3D + mesh | 7 | 18 | Outdoor | Website |
| H3WB | 2023 | 3D whole-body | - | 133 | Extension of H3.6M | GitHub |
| Dataset | Year | Type | Samples | Keypoints | Links |
|---|---|---|---|---|---|
| FreiHAND | 2019 | 3D | 130K | 21 | GitHub |
| InterHand2.6M | 2020 | 3D | 2.6M | 21 per hand | GitHub |
| RHD | 2017 | 3D | 44K | 21 | - |
| STB | 2017 | 3D | 18K | 21 | - |
| Dataset | Year | Type | Landmarks | Notes |
|---|---|---|---|---|
| 300W | 2013 | Face | 68 | iBUG standard |
| WFLW | 2018 | Face | 98 | Large pose variations |
| AFLW | 2011 | Face | 21 | In-the-wild |
| COCO-WholeBody | 2020 | Whole-body | 133 | Body + hands + face |
| Halpe | 2020 | Whole-body | 136 | Extended keypoints |
- AthletePose3D (2024): Athletic movements, kinematic validation
- SURREAL: Synthetic humans, ground truth
- Human4D: 4D human scans with motion
- PoseTrack: Video pose estimation, tracking
Understanding how pose estimation models are evaluated.
- Keypoint is correct if within threshold of ground truth
- PCK@0.5: 50% of reference distance
- PCKh@0.5: 50% of head segment length (MPII)
- Range: 0-100% (higher is better)
PCK = (# correct keypoints) / (# total keypoints) ร 100%
- Based on Object Keypoint Similarity (OKS)
- Primary metric for COCO dataset
- Computed at multiple OKS thresholds
- AP@0.5, AP@0.75, AP@[0.5:0.95]
- Similar to IoU for object detection
- Normalized by object scale
- Accounts for keypoint-specific uncertainty
OKS = ฮฃแตข exp(-dแตขยฒ/2sยฒkแตขยฒ) ฮด(vแตข>0) / ฮฃแตข ฮด(vแตข>0)
- dแตข: Euclidean distance
- s: object scale
- kแตข: keypoint constant
- For 3D pose estimation
- Average Euclidean distance in mm
- PA-MPJPE: After Procrustes alignment
- Lower is better
MPJPE = (1/N) ฮฃแตข ||pแตข - pฬแตข||โ
| Dataset | Primary Metric | Secondary Metrics |
|---|---|---|
| COCO | AP (mAP) | AP@0.5, AP@0.75, AR |
| MPII | PCKh@0.5 | PCKh@0.1, AUC |
| Human3.6M | MPJPE | PA-MPJPE, P-MPJPE |
| 3DPW | MPJPE | PA-MPJPE |
Production-ready tools for pose estimation.
- Part of OpenMMLab ecosystem
- 200+ pre-trained models
- Supports 2D/3D, single/multi-person
- GitHub | Docs
from mmpose.apis import init_model, inference_topdown
model = init_model(config, checkpoint)
results = inference_topdown(model, image)- Google's ML solutions
- Ready-to-use pose, hand, face
- Cross-platform (Python, JS, C++)
- Website
import mediapipe as mp
mp_pose = mp.solutions.pose
pose = mp_pose.Pose()
results = pose.process(image)- First real-time multi-person
- Body + hands + face
- C++ with Python API
- GitHub
- Multi-person pose tracking
- Whole-body support
- Video processing
- GitHub
- Facebook AI Research
- Keypoint R-CNN implementation
- PyTorch-based
- GitHub
- YOLO11-Pose (latest)
- Real-time inference
- Easy deployment
- GitHub
from ultralytics import YOLO
model = YOLO('yolo11n-pose.pt')
results = model('image.jpg')| Library | Purpose | Language | Links |
|---|---|---|---|
| PocketPose | Mobile/edge deployment | Python | PyPI |
| VitePose | Fast inference | Python | - |
| tf-pose-estimation | TensorFlow implementation | Python | GitHub |
| PyTorch-Pose | PyTorch models | Python | GitHub |
| PoseEstimationForMobile | Mobile (iOS/Android) | Swift/Java | GitHub |
- ONNX: Model interoperability
- TensorRT: NVIDIA GPU acceleration
- OpenVINO: Intel hardware optimization
- CoreML: Apple devices
- TFLite: Mobile/embedded
Real-world use cases of pose estimation.
- Form analysis and correction
- Rep counting and tracking
- Performance analytics
- Injury prevention
- Virtual coaching
- Motion capture for games/movies
- Virtual reality interaction
- Augmented reality filters
- Gesture-based controls
- Avatar animation
- Gait analysis
- Physical therapy monitoring
- Elderly fall detection
- Movement disorder assessment
- Ergonomic analysis
- Touchless interfaces
- Sign language recognition
- Smart home controls
- Security and surveillance
- Driver monitoring
- Video editing and effects
- Animation retargeting
- Virtual try-on
- Social media filters
- Live performance capture
- Worker safety monitoring
- Assembly line optimization
- Biomechanics research
- Crowd behavior analysis
- Human-robot collaboration
Tutorials & Guides
Courses & Workshops
- Computer Vision courses (Stanford CS231n, etc.)
- Deep Learning Specialization (Coursera)
- PyTorch/TensorFlow tutorials
- CMU Perceptual Computing Lab: OpenPose creators
- Facebook AI Research (FAIR): Detectron2, 3DPW
- Google Research: MediaPipe
- Microsoft Research: HRNet, various datasets
- Shanghai Jiao Tong University: AlphaPose
Top Venues:
- CVPR (Computer Vision and Pattern Recognition)
- ICCV (International Conference on Computer Vision)
- ECCV (European Conference on Computer Vision)
- NeurIPS (Neural Information Processing Systems)
- TPAMI (IEEE Transactions on Pattern Analysis and Machine Intelligence)
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Add papers with publication year and venue
- Include links to paper, code, and project page
- Maintain alphabetical or chronological order
- Update table of contents if adding new sections
- Follow existing formatting style
This repository is licensed under the MIT License - see the LICENSE file for details.
If you find this repository useful, please consider giving it a star โญ!
Thanks to all the researchers and developers who have contributed to the field of human pose estimation. This repository stands on the shoulders of giants.
Special thanks to:
- OpenMMLab for MMPose
- Google for MediaPipe
- CMU for OpenPose
- Facebook Research for Detectron2
- Ultralytics for YOLO
- All dataset creators and maintainers
For questions or suggestions, please open an issue or contact the maintainer.
Last Updated: January 2025
Maintained with โค๏ธ by the Computer Vision Community
If you use this repository in your research, please cite:
@misc{awesome-pose-estimation,
author = {Pose Estimation Community},
title = {Awesome Human Pose Estimation},
year = {2025},
publisher = {GitHub},
url = {https://github.com/umitkacar/Pose-Estimation}
}