Pose Estimation Models Compared: MediaPipe, MoveNet, YOLO and More
Last verified October 18, 2026 · 7 min read
Sources checked (16)
- storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf — 33 keypoints, single person, distance limit, z up to scale, Pixel 3 speeds, PDJ, Apache-2.0 · checked October 17, 2026
- github.com/google-ai-edge/mediapipe/blob/master/docs/solutions/pose.md — world landmarks in meters, May 10, 2023 upgrade notice · checked October 17, 2026
- github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/pose_landmarker.py — num_poses option, default 1 · checked October 17, 2026
- github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/components/containers/landmark.py — visibility and presence per landmark · checked October 18, 2026
- storage.googleapis.com/movenet/MoveNet.SinglePose%20Model%20Card.pdf — 17 keypoints, yx and confidence output, 192 and 256 inputs, 3 to 6 feet, Chrome TF.js timings, Apache 2.0 · checked October 17, 2026
- storage.googleapis.com/movenet/MoveNet.MultiPose%20Model%20Card.pdf — up to 6 people; no licence line in the card text · checked October 17, 2026
- github.com/ultralytics/ultralytics/blob/main/docs/en/tasks/pose.md — YOLO26 pose models, 17 COCO keypoints · checked October 17, 2026
- github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml — kpt_shape 17 by 3, x, y, visible · checked October 17, 2026
- github.com/ultralytics/ultralytics — AGPL-3.0 and Enterprise License · checked October 17, 2026
- github.com/tensorflow/tfjs-models/tree/master/pose-detection — MoveNet, BlazePose and PoseNet in one package; PoseNet detects multiple poses · checked October 17, 2026
- github.com/tensorflow/tfjs-models/tree/master/posenet — standalone package deprecated · checked October 17, 2026
- github.com/tensorflow/tfjs-models/commits/master/pose-detection — last pose-detection commit, a documentation typo fix on 2024-05-21 (snapshot) · checked October 18, 2026
- github.com/tensorflow/tfjs-models/blob/master/LICENSE — Apache 2.0 · checked October 18, 2026
- github.com/tensorflow/hub — tfhub.dev redirects to Kaggle Models from November 15, 2023 · checked October 17, 2026
- github.com/CMU-Perceptual-Computing-Lab/openpose — README, LICENSE and doc/02_output.md: multi-person PAF system, body models, noncommercial licence, commercial licence route · checked October 17, 2026
- storage.googleapis.com/mediapipe-models/pose_landmarker/pose_landmarker_full/float16/latest/pose_landmarker_full.task — Last-Modified April 2023 for all three .task files · checked October 18, 2026
New to the concept itself? Start with what pose estimation is; this page is about choosing among the actual models. For the whole job in order, from the concept to a shipped rep counter and form cue, follow the camera-coaching reading path.
The models you actually choose among#
Keypoint counts below are stable facts you can rely on. Everything about speed is described as positioning, not a number — fps and accuracy vary wildly by device, resolution, and delegate, so any benchmark must be verified on your own target hardware (as of 2026, verify).
MediaPipe/BlazePose(Google). Predicts 33 landmarks (a superset of the 17 COCO keypoints, adding face, hand, and foot points). It is designed for on-device, real-time use and outputs both 2D image-coordinate landmarks and 3D world landmarks in meters, plus per-landmark visibility. It is single-person focused: the model card says it tracks one person, and while the Tasks API has anum_posessetting, it defaults to 1 and the card does not evaluate more. License: Apache-2.0 for the framework and, per Google's model card, the models.MoveNet—LightningvsThunder(TensorFlow / Google). Detects 17 keypoints. Shipped in two variants:Lightningis tuned for latency-critical/speed use,Thunderfor higher accuracy. Single-person oriented; commonly used for browser/web and lightweight mobile. License: Apache-2.0.YOLO-pose / Ultralytics (YOLO26-pose). Ultralytics' pose docs now present YOLO26 as the current generation. The default models predict the 17 COCO keypoints, and the COCO-Pose dataset config stores each one as (x, y, visible). It is multi-person capable, detecting people and their keypoints in one pass. Five sizes (n/s/m/l/x) trade speed for accuracy. License: AGPL-3.0 (strong copyleft) with a paid Enterprise License to bypass it — see the licensing note below.PoseNet(legacy, TensorFlow.js). 17 keypoints per pose, and it can detect multiple poses. Its standaloneposenetpackage is deprecated in favor of thepose-detectionpackage, which servesMoveNet,BlazePoseandPoseNetitself. PreferMoveNetorBlazePosefor new projects. License: Apache-2.0.OpenPose(CMU, research). A real-time multi-person system built on Part Affinity Fields. Its output document names theBODY_25,COCO_18,MPI_15andBODY_25Bbody models, with output diagrams forBODY_25and the 18-point COCO set. Heavy and GPU-oriented, strong for research and multi-person, less suited to lightweight on-device. License: academic or non-profit noncommercial research only from CMU — commercial use needs a separate license.
Each model has its own page with the detail this overview leaves out: MediaPipe Pose Landmarker models, MoveNet models, ML Kit pose detection, Ultralytics YOLO pose models, RTMPose models and OpenPose models. Every keypoint index, scheme by scheme, is in the pose keypoint maps.
Comparison table#
Positioning, not fabricated benchmarks. Confirm licenses and any speed claim before you ship.
| Model | Keypoints | On-device? | Multi-person? | License | Best for |
|---|---|---|---|---|---|
MediaPipe / BlazePose | 33 (superset of COCO 17) | Yes (mobile CPU/GPU) | Single-person focus | Apache-2.0 | On-device single-user coaching; 2D + monocular 3D |
MoveNet Lightning | 17 | Yes | Single-person | Apache-2.0 | Speed-first web/mobile 2D |
MoveNet Thunder | 17 | Yes | Single-person | Apache-2.0 | Accuracy-leaning single-user 2D |
YOLO26-pose | 17 | Edge-GPU / server (sizes vary) | Yes | AGPL-3.0 / Enterprise | Multi-person gyms/classes |
PoseNet (legacy) | 17 | Yes | Yes (multiple poses) | Apache-2.0 | Nothing new — deprecated |
OpenPose | BODY_25 or COCO 18, among others | Heavy / GPU | Yes | Noncommercial research only | Research, multi-person |
The licensing trap (read before you commit)#
Two of these models carry license terms that can block a commercial product, and they are easy to miss because the code is free to download:
- Ultralytics
YOLOis AGPL-3.0. AGPL is a strong reciprocal (copyleft) license: if you distribute or even offer a network service built on AGPL code, its terms can require you to release your own source under the same license. Ultralytics sells a paid Enterprise License specifically to lift that obligation. Treat "which license" as a real legal decision, not a footnote — verify the current terms and talk to counsel before building a closed-source product on it. OpenPoseis noncommercial research only. CMU's license grants academic or non-profit noncommercial research use, and its README points anyone interested in a commercial license to a separate licensing page. Do not ship it in a paid or commercial app without clearing licensing first. OpenPose alternatives compares the options and their licences.
The Apache-2.0 options (MediaPipe/BlazePose, MoveNet, PoseNet) are the most permissive here. One gap to close: the MoveNet SinglePose model card states Apache 2.0, but the text of the MultiPose card carries no licence line of its own, so confirm its terms before you ship it. For what each license file and model card actually says, model by model, see pose estimation model licenses.
How to decide — by use case#
There is no single winner; the right model follows your scene and constraints:
- Single user, on-device, needs joint angles (and optionally 3D):
MediaPipe/BlazePose. The 33 landmarks and monocular 3D world landmarks make it the default for a private, phone-based rep-counting or form-feedback app. - Single user, pure speed, browser or lightweight mobile, 2D only:
MoveNet—Lightningwhen responsiveness beats precision,Thunderwhen you can afford more compute for a cleaner pose. If it comes down to these two, MediaPipe vs MoveNet compared side by side decides it by what you compute from the keypoints. - Multiple people at once (group class, gym floor, sports scene):
YOLO-pose (mind AGPL-3.0) orOpenPose(mind the non-commercial license). Multi-person also needs a separate cross-frame tracking layer to keep identities stable. For one user against a group, MediaPipe vs YOLO pose sets the two side by side. - New build: avoid
PoseNet— it is legacy; pickMoveNetorBlazePoseinstead.
If you would rather not choose and maintain a model at all, a managed motion SDK bundles pose plus rep/form logic — see AI workout tracking APIs for the buy option.
MediaPipe vs MoveNet, head to head#
Most single-user fitness builds come down to these two Google models, and the choice settles on what you will compute from the keypoints, not on a benchmark screenshot. MediaPipe Pose gives you geometry, 33 landmarks plus world landmarks in meters with the origin between the hips, which is what joint angles that must survive viewpoint changes need; MoveNet gives you speed and simplicity, the 17 COCO keypoints in 2D, with Lightning for the lowest latency and MultiPose when more than one person is in frame. Outputs, variants, the published speed figures and licences are set side by side in the full MediaPipe vs MoveNet comparison.
The honest limits#
- A normal RGB phone camera is enough. No depth sensor or LiDAR is required for 2D or monocular 3D pose.
- Monocular 3D depth is estimated, not measured.
BlazePoseworld landmarks are hip-relative and inferred from a single camera; depth is unreliable for occluded or extremity joints and degrades on out-of-plane movement. It is not sensor-grade — treat the depth axis as lower-confidence than x/y, smooth it, and validate. More reliable 3D needs multi-camera rigs or depth sensors. - Benchmarks are condition-dependent. Leaderboard fps and accuracy assume specific hardware, lighting, and framing. Do not present a lab number as your app's real-world result; test on your own cameras, lighting, distances, and exercises.
- Form feedback is a coaching aid, not medical or physical-therapy advice. Monocular angle error, occlusion, and depth ambiguity mean it can be wrong; it cannot judge pain or injury. Recommend a professional for anything injury-related.
- Streaming raw video to a server is privacy-sensitive. Keeping inference on-device (video never leaves the phone) is the strongest privacy posture.
Before you ship#
Pick by use case, then verify: confirm the current license (especially OpenPose non-commercial and YOLO AGPL-3.0), re-check any fps/accuracy claim on your own target hardware, and validate monocular 3D on real users rather than trusting a lab figure. When you are ready to wire it into a camera feed, see the camera pose tracking guide for implementation.
Frequently asked questions
- How many keypoints does each model detect?
- MediaPipe/BlazePose predicts 33 body landmarks, a superset of the 17 COCO keypoints that adds face, hand, and foot points. MoveNet, YOLO-pose, and PoseNet each use the 17 COCO keypoints. OpenPose's body models include BODY_25 and an 18-point COCO set, chosen per build. Keypoint counts are stable, but any speed or accuracy number is device-dependent and should be verified on your own hardware.
- Which model should I use for a single-user fitness app?
- For a single user on-device, MediaPipe/BlazePose is the common default: its 33 landmarks and monocular 3D world landmarks suit joint-angle and form work on a normal phone. If you only need lightweight 2D and want a speed dial, MoveNet works well (Lightning for speed, Thunder for accuracy). Avoid PoseNet for new builds since it is deprecated in favor of MoveNet and BlazePose.
- Are these pose models free to use commercially?
- Not all of them. MediaPipe/BlazePose, MoveNet, and PoseNet are Apache-2.0, the most permissive here, though the MoveNet MultiPose model card carries no licence line of its own, so confirm its terms. Ultralytics YOLO is AGPL-3.0, a strong copyleft license that can require you to release your own source unless you buy its Enterprise License. OpenPose's license allows academic or non-profit noncommercial research use only, and commercial use needs a separate license from CMU. Confirm current terms and consult counsel before shipping.
- Which of these models output 3D landmarks?
- Among the common on-device options, only MediaPipe/BlazePose: alongside its 2D image-coordinate landmarks it returns 3D world landmarks in meters, hip-relative and inferred from a single camera. MoveNet and PoseNet return 2D keypoints only, and YOLO-pose stores an extra visibility value per point rather than depth. OpenPose has configurable keypoint sets but is a heavy, GPU-oriented multi-person system rather than an on-device 3D source. Treat monocular depth as a lower-confidence axis than x and y — it is estimated, not measured — and validate it on real users before building a feature on it.
- Which models handle multiple people at once?
- YOLO-pose detects multiple people and their keypoints in one pass, and OpenPose is a bottom-up multi-person system. MediaPipe/BlazePose is documented for one person, though its Tasks API has a num_poses setting that defaults to 1, and MoveNet's SinglePose models are single-person, while MoveNet MultiPose Lightning detects up to 6 people per its model card. Multi-person also needs a separate cross-frame tracking layer to keep identities stable, and remember YOLO is AGPL-3.0 and OpenPose is non-commercial.
- Should I pick MoveNet or MediaPipe for a fitness app?
- Our recommendation: choose by what you compute downstream. MediaPipe's 33 landmarks with 3D world landmarks favor form feedback where joint angles in space matter; MoveNet Lightning's 17 2D keypoints favor rep counting at minimal latency on modest hardware. Verify performance on your own target devices. This site's MediaPipe vs MoveNet comparison page sets out the outputs, speed figures and licences side by side.
Keep reading
Elsewhere on the site
Pages that share this one’s concepts and sources, from other sections.
Next steps
Was this page useful?
Independent comparison, last reviewed October 18, 2026. Pricing, rate limits, and feature availability change often — confirm current details in each provider’s official documentation before you commit. Product and company names are trademarks of their respective owners; AIFitnessAPI is not affiliated with, endorsed by, or sponsored by any product listed here.
← All ai motion · by AIFitnessAPI