Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Real-time face, hand, and body pose tracking with Google MediaPipe, solution selection, and comparison with YOLO pose estimation
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 16% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 24% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 78% | 0% |
What body part do you need to track?
├── Full body pose (standing, sitting, exercising)
│ └── ✅ Pose Estimation — 33 landmarks, 3D (x, y, z)
│
├── Hands and fingers
│ └── ✅ Hand Tracking — 21 landmarks per hand
│
├── Face details (lips, eyes, eyebrows, jawline)
│ └── ✅ Face Mesh — 468 landmarks, 3D
│
└── Multiple tasks simultaneously
└── ✅ Holistic — combines Pose + Hands + Face| Feature | MediaPipe Pose | YOLO Pose | |---------|---------------|----------| | Landmarks | 33 (full body + face) | 17 (body only) | | Depth (Z-axis) | ✅ Yes (camera-relative) | ❌ No (2D only) | | Speed | ⚡ Very fast (optimized for mobile) | ⚡ Fast | | Multi-person | ❌ Single person per frame | ✅ Multiple people | | 3D Avatar | ✅ Possible (Z depth) | ❌ Not possible | | Hand details | ✅ 21 points per hand (separate solution) | ❌ Not available | | Face details | ✅ 468 points (separate solution) | ❌ Not available | | Best for | Single-user apps, gesture control, fitness | Multi-person detection, surveillance |
> Rule of thumb: Need detailed single-person anatomy (hands, face, depth)? → MediaPipe. Need to detect multiple people quickly? → YOLO Pose.
| Solution | Points | Notable Landmarks | |----------|--------|--------------------| | Pose | 33 | Nose, shoulders, elbows, wrists, hips, knees, ankles, eyes, ears | | Hand | 21 | Wrist, thumb (4 joints), index (4), middle (4), ring (4), pinky (4) | | Face Mesh | 468 | Lips contour, eye contour, eyebrows, nose bridge, jawline, iris |
pythonimport cv2 import mediapipe as mp mp_pose = mp.solutions.pose mp_draw = mp.solutions.drawing_utils cap = cv2.VideoCapture(0) 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 # MediaPipe expects RGB rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) results = pose.process(rgb) if results.pose_landmarks: mp_draw.draw_landmarks( frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS) cv2.imshow('Pose', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
pythonmp_hands = mp.solutions.hands with mp_hands.Hands(max_num_hands=2, min_detection_confidence=0.7) as hands: # Same loop pattern as pose results = hands.process(rgb) if results.multi_hand_landmarks: for hand_landmarks in results.multi_hand_landmarks: mp_draw.draw_landmarks( frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)
pythonmp_face = mp.solutions.face_mesh with mp_face.FaceMesh(max_num_faces=1, min_detection_confidence=0.5) as face_mesh: results = face_mesh.process(rgb) if results.multi_face_landmarks: for face_landmarks in results.multi_face_landmarks: mp_draw.draw_landmarks( frame, face_landmarks, mp_face.FACEMESH_TESSELATION)
MediaPipe processes RGB images. OpenCV captures BGR. Always convert:
pythonrgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) results = pose.process(rgb)
Landmark .x and .y are normalized to image dimensions. To get pixel coordinates:
pythonh, w, _ = frame.shape lm = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_SHOULDER] pixel_x, pixel_y = int(lm.x * w), int(lm.y * h)
The .z coordinate represents depth relative to the hip center (Pose) or wrist (Hand). It is NOT world-scale distance in meters.
MediaPipe Pose processes one person per frame. For multi-person scenarios, use YOLO Pose or run MediaPipe per detected person crop.
Always use with statement for proper resource cleanup:
python# CORRECT with mp_pose.Pose() as pose: ... # AVOID pose = mp_pose.Pose() # resources may leak
| Application | Solution | Key Landmarks | |-------------|----------|----------------| | Exercise rep counter | Pose | Shoulder, elbow, wrist angles | | Sign language recognition | Hand | All 21 finger joints | | Drowsiness detection | Face Mesh | Eye aspect ratio (EAR) | | Virtual try-on | Pose + Face | Body proportions + face alignment | | Gesture-controlled UI | Hand | Fingertip positions (index, thumb) | | Scoliosis screening | Pose | Shoulder/hip symmetry analysis |
Other measured skills in the registry, with their headline benchmark lift.