---
title: "MediaPipe vs YOLO Pose: One Person in 3D or Everyone in 2D?"
canonical: "https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose"
cluster: "Comparisons"
primary_query: "mediapipe vs yolo pose"
last_reviewed: "2026-10-22"
description: "MediaPipe BlazePose vs Ultralytics YOLO26 pose: 33 vs 17 keypoints, one person vs everyone in frame, phone vs GPU benchmarks, Apache-2.0 vs AGPL-3.0."
publisher: "AIFitnessAPI — funded by KinesteX, the subject of this page; disclosure in body"
cite_as: "\"MediaPipe vs YOLO Pose: One Person in 3D or Everyone in 2D?\", AIFitnessAPI, https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose"
---

# MediaPipe vs YOLO Pose: One Person in 3D or Everyone in 2D?

> Pick MediaPipe Pose Landmarker (BlazePose) for one person in front of a phone camera: 33 landmarks with hip-centred 3D world coordinates, on-device on Android, iOS, web and Python, under Apache-2.0. Pick Ultralytics YOLO26 pose when several people share the frame: one model returns a box and the 17 COCO keypoints for every person it detects, in five sizes, and Ultralytics documents training it on your own keypoints. The licence often decides first, because Ultralytics code is AGPL-3.0 unless you buy its Enterprise License.

- Canonical: https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose
- Last reviewed: 2026-10-22
- Publisher: AIFitnessAPI (https://aifitnessapi.com) — funded by KinesteX, the subject of this page; disclosure in body
- Cite as: "MediaPipe vs YOLO Pose: One Person in 3D or Everyone in 2D?", AIFitnessAPI, https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose

---

**Disclosure: this site is funded by KinesteX, which sells a motion-tracking SDK that sits a layer above pose models like these.** Neither model on this page is ours, and we have no reason to prefer either. MediaPipe facts come from Google's BlazePose GHUM model card and the google-ai-edge/mediapipe repository; Ultralytics facts come from the docs, README and LICENSE in the ultralytics/ultralytics repository. All were read on October 22, 2026, and every Ultralytics figure is Ultralytics' own.

A note on names, since searches mix them: BlazePose is the model family behind MediaPipe Pose, which Google's documentation says is built on its BlazePose research, and the current packaging is the MediaPipe Pose Landmarker task. On the other side, Ultralytics' pose docs now present YOLO26 as the current generation of YOLO pose models.

## Two models for two different scenes

**MediaPipe is built for one person.** Google's model card describes "3D full body pose estimation for single-person videos on mobile, desktop and in browser", says the model "Tracks only one person on scene if multiple present", and lists multiple people in an image as out of scope. The Tasks API has a `num_poses` option, but it defaults to 1 and the card does not evaluate more.

**YOLO pose is built for everyone in the frame.** Ultralytics documents one `Results` object per image, with `result.keypoints` shaped (N, K, 2 or 3), N instances of K keypoints, and `result.boxes` for "the detected instances that those keypoints belong to". The training config's only class is person, and the default models predict the 17 COCO keypoints for each one.

## MediaPipe vs YOLO pose at a glance

| | MediaPipe Pose Landmarker (BlazePose GHUM) | Ultralytics YOLO26 pose |
| --- | --- | --- |
| Keypoints | 33 landmarks | 17 COCO keypoints in the default models |
| Per point | x, y, z, visibility, presence; world landmarks in meters | x, y, plus optional visibility or confidence |
| People | One, per the model card | Every detected person, each with a box |
| Sizes | Lite, Full, Heavy | n, s, m, l, x |
| Published speed | Frames per second on a Pixel 3 through TFLite | Milliseconds on a CPU with ONNX and on an NVIDIA T4 with TensorRT10 |
| Deployment | MediaPipe Tasks on Android, iOS, web and Python | Export table of 23 formats, including ONNX, CoreML, LiteRT, NCNN, ExecuTorch and TensorRT |
| Your own keypoints | Pre-trained models; no pose training recipe in the files we read | Training on your own keypoint datasets is documented |
| Licence | Apache-2.0 | AGPL-3.0, or a paid Ultralytics Enterprise License |

## Where MediaPipe wins

**Depth and detail on one body.** Of the 33 landmarks, 16 are not in COCO's 17: eye corners, mouth corners, three knuckles per hand, heels and foot index points. MediaPipe's documentation describes world landmarks as "Real-world 3D coordinates in meters with the origin at the center between hips". The card is honest that z is "not metric but up to scale", but in our reading it still lets a knee or hip angle survive the user turning side-on. Ultralytics' results table documents only 2D coordinates: pixel and normalized x, y, plus an optional visibility or confidence value.

**Phone numbers you can read.** Google's card gives on-device figures: on a Pixel 3, the Lite model runs at about 44 FPS on CPU and 49 FPS on GPU, Full at about 18 and 40, and Heavy at about 4 and 19. Ultralytics' table measures a CPU through ONNX and an NVIDIA T4 through TensorRT10, so nothing in it says how a phone will do.

**A permissive licence.** The MediaPipe repository's LICENSE is Apache-2.0, and the BlazePose GHUM card is "LICENSED UNDER Apache License, Version 2.0". No copyleft, no key and no fee.

**A browser path.** MediaPipe Tasks covers web apps. Ultralytics' export table, as we read it, lists no TensorFlow.js target; whether a browser runtime can run one of its other formats is something to test yourself.

## Where YOLO pose wins

**Several people.** Each detected person comes back with a box and 17 keypoints, and the Ultralytics README says its models can track detected objects across video frames. Keeping identities stable is the hard part of group scenes; [multi-person pose tracking](/motion/multi-person-pose-tracking) covers it.

**A size dial with published accuracy.** Ultralytics' table runs from YOLO26n-pose at 57.2 mAP pose 50-95, 2.9 M parameters and 1.8 ms on a T4, to YOLO26x-pose at 71.6 mAP, 57.6 M parameters and 12.2 ms, all at 640 pixels on COCO Keypoints val2017. The same table puts YOLO26n-pose at 40.3 ms on a CPU through ONNX. [Ultralytics YOLO pose models](/motion/yolo-pose-models) has the full table.

**Your own keypoints.** The pose docs show training on your own data, converting COCO keypoint JSON with `convert_coco` and `use_keypoints=True`, and point to datasets such as Tiger-Pose, Hand Keypoints and Dog-Pose. Ultralytics' annotation tool supports "custom keypoint layouts". MediaPipe ships "Pre-trained, ready-to-run models", and we found no training recipe for the pose landmarker in the files we read.

**Export breadth.** Ultralytics' export table lists 23 formats counting PyTorch itself, from CoreML (`.mlpackage`) and LiteRT (`.tflite`) for phones to TensorRT, OpenVINO and vendor formats such as Qualcomm QNN, Hailo and RKNN.

## The licence often decides first

The ultralytics/ultralytics LICENSE is the GNU Affero General Public License, version 3. Its section 13 says that if you modify the program, your modified version "must prominently offer all users interacting with it remotely through a computer network" an opportunity to receive its source. The Ultralytics README describes its Enterprise License as covering "business products and services, including internal tools, automated workflows, and production deployments, bypassing the open-source requirements of AGPL-3.0". In our reading, a closed-source app or service built on YOLO pose needs either full AGPL-3.0 compliance or that paid licence; Ultralytics publishes no price for it in the files we read. This is not legal advice: [pose estimation model licenses](/motion/pose-estimation-model-licenses) reads the terms in full, and a lawyer should read them for your product.

MediaPipe raises no such question. If you need several people and an Apache-2.0 codebase, [RTMPose](/motion/rtmpose-models) is the alternative to weigh, with its checkpoint terms checked separately.

## The accuracy numbers do not cross

Google's MediaPipe Pose documentation reports BlazePose GHUM Heavy at 68.1, 73.0 and 74.0 mAP on its own Yoga, Dance and HIIT validation sets, scored on the 17 COCO keypoints with one person 2 to 4 meters from the camera. Ultralytics reports YOLO26x-pose at 71.6 mAP pose 50-95 on COCO Keypoints val2017. Different test sets, different scenes, different hardware: neither vendor benchmarks the other, so the only comparison that means anything is one you run on your own footage. [Pose estimation accuracy](/motion/pose-estimation-accuracy) explains the metrics.

## Moving keypoints between them

YOLO pose returns the 17 points in COCO order, from 0 nose to 16 right ankle. MediaPipe's 33 include the same 17 body points under the same names, at different indices: left hip is 11 in COCO and `LEFT_HIP` is 23 in MediaPipe's `PoseLandmark` enum. Map by name, using [the COCO 17 keypoint map](/pose-keypoints/coco-17), [the BlazePose 33 keypoint map](/pose-keypoints/blazepose-33) and [the crosswalk](/pose-keypoints#crosswalk) that joins them.

## Which should you pick?

- **One user in front of a phone, joint angles for form feedback** → MediaPipe: 33 landmarks, world coordinates and published phone figures, under Apache-2.0.
- **A group class, a gym floor, or two people in one frame** → YOLO pose, once the licence question is settled.
- **Keypoints that are not on the human body, or a layout of your own** → YOLO pose, which documents training on custom keypoint datasets.
- **A closed-source product with no budget for a licence** → MediaPipe for one person; for several, an Apache-2.0 option such as RTMPose.
- **A web app** → MediaPipe, whose Tasks API covers the web; see also [MediaPipe vs MoveNet](/compare/mediapipe-vs-movenet) for the lighter browser option.

Neither returns reps or form feedback. That layer is yours to build or buy; [AI workout tracking APIs](/fitness-apis/ai-workout-tracking-apis) compares the products that sell it.

## Sources

- [storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf](https://storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf) — single-person scope, Pixel 3 FPS per variant, z up to scale, Apache-2.0 (checked 2026-10-22)
- [github.com/google-ai-edge/mediapipe/blob/master/docs/solutions/pose.md](https://github.com/google-ai-edge/mediapipe/blob/master/docs/solutions/pose.md) — BlazePose research, world landmarks, Yoga/Dance/HIIT quality table (checked 2026-10-22)
- [github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/pose_landmarker.py](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/pose_landmarker.py) — num_poses default 1; PoseLandmark indices (checked 2026-10-22)
- [github.com/google-ai-edge/mediapipe/blob/master/README.md](https://github.com/google-ai-edge/mediapipe/blob/master/README.md) — Android, iOS, Python and web apps; pre-trained, ready-to-run models (checked 2026-10-22)
- [github.com/google-ai-edge/mediapipe/blob/master/LICENSE](https://github.com/google-ai-edge/mediapipe/blob/master/LICENSE) — Apache-2.0 (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/docs/en/tasks/pose.md](https://github.com/ultralytics/ultralytics/blob/main/docs/en/tasks/pose.md) — YOLO26 pose, Results fields, COCO keypoint order, training and custom datasets, benchmark conditions (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/docs/macros/yolo-pose-perf.md](https://github.com/ultralytics/ultralytics/blob/main/docs/macros/yolo-pose-perf.md) — five-size table (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/docs/macros/export-table.md](https://github.com/ultralytics/ultralytics/blob/main/docs/macros/export-table.md) — 23 export formats; no TensorFlow.js row (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml) — kpt_shape and the single person class (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/README.md](https://github.com/ultralytics/ultralytics/blob/main/README.md) — tracking across frames; AGPL-3.0 and Enterprise License (checked 2026-10-22)
- [github.com/ultralytics/ultralytics/blob/main/LICENSE](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) — GNU AGPL version 3, section 13 (checked 2026-10-22)

## FAQ

### Can YOLO pose run on a phone like MediaPipe?

It can be exported for one: Ultralytics' export table lists CoreML (.mlpackage) and LiteRT (.tflite) among 23 formats. What Ultralytics does not publish is a phone benchmark; its table measures a CPU through ONNX and an NVIDIA T4 through TensorRT10. Google's BlazePose card, by contrast, reports frames per second on a Pixel 3. Measure YOLO pose on your own target phones before you commit.

[Permalink](https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose#faq-1)

### Does YOLO pose output 3D keypoints?

Not in the results Ultralytics documents. Its pose results table lists keypoints.xy in pixels and keypoints.xyn normalized, both 2D, and keypoints.data as x, y plus an optional visibility or confidence value. MediaPipe Pose Landmarker returns a z value per landmark and world landmarks in meters from the hip centre, though its model card says that depth is up to scale rather than metric.

[Permalink](https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose#faq-2)

### Is YOLO pose more accurate than MediaPipe?

The published numbers cannot answer that. Ultralytics reports YOLO26x-pose at 71.6 mAP pose 50-95 on COCO Keypoints val2017; Google reports BlazePose GHUM Heavy at 68.1 to 74.0 mAP on its own Yoga, Dance and HIIT sets with one person in frame. Different datasets and scenes mean the figures do not compare, so test both on footage of your own exercises.

[Permalink](https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose#faq-3)

### Do I need an Ultralytics Enterprise License to ship a YOLO pose app?

If you cannot meet AGPL-3.0, in our reading yes. Ultralytics' code is licensed under the GNU AGPL version 3, and its README describes the Enterprise License as covering business products, internal tools and production deployments, bypassing the open-source requirements of AGPL-3.0. Ultralytics publishes no price for it in the files we read. Have a lawyer read the terms for your product.

[Permalink](https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose#faq-4)

### Can I train YOLO pose on my own keypoints?

Yes. Ultralytics' pose docs walk through training YOLO26n-pose, converting existing COCO keypoint JSON with convert_coco and use_keypoints=True, and point to keypoint datasets such as Tiger-Pose, Hand Keypoints and Dog-Pose. Its annotation tool supports custom keypoint layouts. MediaPipe ships pre-trained pose models, and we found no training recipe for its pose landmarker in the files we read.

[Permalink](https://aifitnessapi.com/compare/mediapipe-vs-yolo-pose#faq-5)
