---
title: "Pose Estimation Model Licenses: Which Can You Ship Commercially?"
canonical: "https://aifitnessapi.com/motion/pose-estimation-model-licenses"
cluster: "AI Motion"
primary_query: "pose estimation model license commercial use"
last_reviewed: "2026-10-12"
description: "What pose model licenses allow commercially: MediaPipe and MoveNet SinglePose are Apache-2.0, Ultralytics YOLO is AGPL-3.0, OpenPose is noncommercial."
publisher: "AIFitnessAPI — independent, not sponsored"
cite_as: "\"Pose Estimation Model Licenses: Which Can You Ship Commercially?\", AIFitnessAPI, https://aifitnessapi.com/motion/pose-estimation-model-licenses"
---

# Pose Estimation Model Licenses: Which Can You Ship Commercially?

> A pose model can carry up to three sets of terms (the code's license, the terms on the weights, and an SDK's service terms), and the one that matters is the one covering what you actually ship. MediaPipe/BlazePose and MoveNet SinglePose are Apache-2.0 on both code and model card, a royalty-free grant that still requires you to pass on the license and keep notices when you redistribute, while the text of the MoveNet MultiPose card shows no license line. Ultralytics YOLO is AGPL-3.0 unless you take its Enterprise License, and OpenPose is licensed for noncommercial research only. ML Kit Pose Detection is governed by Google's service terms instead of an open license, and Apple Vision ships inside the operating system with no model file or open-source license to read.

- Canonical: https://aifitnessapi.com/motion/pose-estimation-model-licenses
- Last reviewed: 2026-10-12
- Publisher: AIFitnessAPI (https://aifitnessapi.com) — independent, not sponsored
- Cite as: "Pose Estimation Model Licenses: Which Can You Ship Commercially?", AIFitnessAPI, https://aifitnessapi.com/motion/pose-estimation-model-licenses

---

Choosing a model is the job of our [pose model roundup](/motion/pose-estimation-models-compared). This page reads the paperwork: the LICENSE files, model cards and SDK terms as they stood on 2026-10-12, and what each lets a commercial fitness product do. It is not legal advice; confirm with counsel before you ship.

## Three sets of terms, and the one you ship under

A pose model can come with up to three separate sets of terms:

1. **Code license:** the LICENSE file in the repository.
2. **Weights terms:** the model card, or wherever the weights are hosted.
3. **Service terms:** for an SDK, its terms of service.

They can differ, and the one you need is the one covering what you actually ship: a bundled model file brings its card's terms, a closed SDK its service terms.

## The layers, model by model

The last column is our reading, not the vendor's.

| Model | Code license or SDK terms | Weights terms | Our reading |
| --- | --- | --- | --- |
| MediaPipe / BlazePose GHUM 3D | Apache-2.0 | Apache-2.0 (model card) | Apache-2.0 on both layers |
| MoveNet SinglePose | Apache-2.0 | Apache-2.0 (model card) | Apache-2.0 on both layers |
| MoveNet MultiPose | Apache-2.0 | No license line in the extracted card text | Confirm before shipping |
| Ultralytics YOLO pose | AGPL-3.0, or an Enterprise License | Not verified separately | Comply with AGPL-3.0 or take an Enterprise License |
| OpenPose | Noncommercial research only | Not verified separately | Needs a separate commercial license |
| MMPose / RTMPose | Apache-2.0 | Not verified | Confirm the weights |
| ML Kit Pose Detection | ML Kit Terms of Service | Models are "related software" | Service terms; metrics disclosure duty |
| Apple Vision body pose | Apple's developer agreements | No model file | Not reviewed for this page |

## MediaPipe and BlazePose GHUM 3D

The `google-ai-edge/mediapipe` [LICENSE file](https://github.com/google-ai-edge/mediapipe/blob/master/LICENSE) is the Apache License, Version 2.0, and the [BlazePose GHUM 3D model card](https://storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf), dated April 16, 2021, says "LICENSED UNDER Apache License, Version 2.0". Code and weights agree.

The card's intended use is "3D full body pose estimation for single-person videos on mobile, desktop and in browser", and its domains include "Fitness and repetition counting" and "3D pose measurements (angles / distances)". Out of scope, it lists:

- multiple people in an image;
- people "further than 14 feet/4 meters" from the camera;
- a head that is not visible;
- "Applications requiring metric accurate depth";
- "Any form of surveillance or identity recognition is explicitly out of scope and not enabled by this technology".

Its ethical considerations add: "The model is not intended for human life-critical decisions. The primary intended application is entertainment."

These are model-card statements, not Apache license terms, and we are not saying whether they bind you. A fitness product should read them anyway: in our reading, angle-based form feedback sits inside the card's domains, and a feature needing metric-accurate depth does not.

## MoveNet

MoveNet is served through the `pose-detection` package, which lives in the `tensorflow/tfjs-models` repository; that repository's [LICENSE file](https://github.com/tensorflow/tfjs-models/blob/master/LICENSE) is the Apache License, Version 2.0. The weights have their own cards, and they differ:

- The [MoveNet.SinglePose card](https://storage.googleapis.com/movenet/MoveNet.SinglePose%20Model%20Card.pdf) covers Lightning and Thunder (17 keypoints), says "Licensed Under Apache License, Version 2.0", and puts multi-person use out of scope: "not intended for detecting poses of multiple people in the image".
- The [MoveNet.MultiPose card](https://storage.googleapis.com/movenet/MoveNet.MultiPose%20Model%20Card.pdf) covers up to 6 people, but the text we extracted from it has no license line.

That makes the package's `MULTIPOSE_LIGHTNING` type (up to 6 poses, per its README) the plainest layer problem on this page: Apache-2.0 code, and no license line in the extracted text of its card. Confirm MultiPose terms before you ship it commercially; our [MediaPipe vs MoveNet head-to-head](/motion/pose-estimation-models-compared#mediapipe-vs-movenet-head-to-head) flags the same gap. The tfjs-models README links the weights on tfhub.dev, a host we could not reach, so we could not read any terms shown there.

## Ultralytics YOLO pose

The `ultralytics/ultralytics` [LICENSE file](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) is the GNU Affero General Public License, Version 3 (AGPL-3.0). The [README](https://github.com/ultralytics/ultralytics/blob/main/README.md) calls AGPL-3.0 "perfect for students, researchers, and enthusiasts" and describes the Ultralytics Enterprise License as "For development and production use", covering "business products and services, including internal tools, automated workflows, and production deployments, bypassing the open-source requirements of AGPL-3.0." That includes internal tools, not only apps you ship.

The license text addresses networked use too. Section 13, "Remote Network Interaction": "if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge".

In our reading, keeping YOLO pose on your own server does not by itself take you outside AGPL-3.0; whether your pipeline counts as a modified version is a question for counsel. The README's Enterprise paragraph names "Ultralytics software and AI models" together, and we did not verify separate terms for the pretrained pose weights, so our recommendation is to treat code and weights as one licensing decision. We did not review Ultralytics' licensing page and have no price to report.

## OpenPose

The `CMU-Perceptual-Computing-Lab/openpose` [LICENSE](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/LICENSE) is headed "ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY" and grants "a personal, non-exclusive, non-transferable license to use the Software for noncommercial research purposes, without the right to sublicense". It defines "Software" to include "all or any derivatives and/or modifications created or made by You". In our reading, a modified fork stays under the same noncommercial grant.

The README says "OpenPose is freely available for free non-commercial use" and points commercial users to a FlintBox link, CMU's licensing portal; no price is published in the repository. In our reading, a commercial fitness product needs that separate license. If it does not want one, see [commercial alternatives to OpenPose](/alternatives/openpose-alternatives).

## MMPose and RTMPose

The `open-mmlab/mmpose` [LICENSE](https://github.com/open-mmlab/mmpose/blob/main/LICENSE) opens "Copyright 2018-2020 Open-MMLab. All rights reserved." and continues with the Apache License, Version 2.0. RTMPose lives in the same repository, under `projects/rtmpose`. We did not verify the terms for pretrained weights downloaded from OpenMMLab's hosts, so check them before you ship a checkpoint.

## ML Kit Pose Detection: service terms, not a license

Where MediaPipe gives you Apache-2.0 code and a model card, ML Kit Pose Detection is a closed SDK under service terms, and Google's [Pose Detection page](https://developers.google.com/ml-kit/vision/pose-detection) says: "This API is offered in beta, and is not subject to any SLA or deprecation policy." The [ML Kit Terms of Service](https://developers.google.com/ml-kit/terms), last modified May 14, 2025, "incorporate and are subject to the Google APIs Terms of Service", and three parts matter for a fitness app:

- **Models count as related software.** The terms say "machine learning models will be considered related software" and "you may not reverse engineer or attempt to extract the source code or any related software". In our reading, the pose model is not yours to pull out and reuse.
- **Input is processed on the device.** Processing "fully happens on-device, and ML Kit does not send that data and the resultant outputs to Google servers".
- **Usage metrics go to Google.** The APIs "send metrics about the performance and utilization of the APIs in your app to Google", and "You are responsible for informing users of your app about Google's processing of ML Kit metrics data as required by applicable law."

Our recommendation: cover that disclosure duty in your [fitness app privacy policy](/compliance/health-app-privacy-policy).

## Apple Vision: no model file, no open-source license

Apple's [documentation](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequest) lists `VNDetectHumanBodyPoseRequest` from iOS 14.0, macOS 11.0, tvOS 14.0 and visionOS 1.0, and `VNDetectHumanBodyPose3DRequest` from iOS 17.0 and macOS 14.0. The model ships inside the operating system, so there is no model file or open-source license to read; its use is governed by Apple's developer agreements, which we did not review for this page. API details are in [Apple Vision body pose](/motion/apple-vision-body-pose).

## Apache-2.0 still has conditions

Apache-2.0's section 2 grants "a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work". Section 4 attaches conditions to redistribution: give recipients a copy of the License; put prominent notices on files you modified; keep the copyright, patent, trademark and attribution notices; and if the Work includes a NOTICE file, include its attribution notices in a NOTICE file, the documentation, or a display such as an about screen.

In our reading, an app that bundles the library or a model file redistributes it, so ship a licenses screen with the license text and any NOTICE attributions.

## Our recommendation

- **One user, on device:** MediaPipe/BlazePose or MoveNet SinglePose, the two options here verified Apache-2.0 on both layers.
- **Several people in frame:** none of the multi-person models in our roundup (MoveNet MultiPose, YOLO pose, OpenPose) is verified Apache-2.0 on both layers, so settle the license before the architecture. [Multi-person pose tracking](/motion/multi-person-pose-tracking) covers the engineering.
- **Inference on your server:** not distributing a binary does not settle AGPL-3.0. [On-device vs cloud pose estimation](/motion/on-device-vs-cloud-pose-estimation) covers the wider trade-off.

## Sources

- [github.com/google-ai-edge/mediapipe/blob/master/LICENSE](https://github.com/google-ai-edge/mediapipe/blob/master/LICENSE) — MediaPipe code license (Apache License, Version 2.0), and the Apache-2.0 section 2 grant and section 4 redistribution conditions quoted on this page. (checked 2026-10-12)
- [storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf](https://storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf) — BlazePose GHUM 3D model card dated April 16, 2021: Apache-2.0 license line, intended use and domains, out-of-scope applications, ethical considerations. (checked 2026-10-12)
- [github.com/tensorflow/tfjs-models/blob/master/LICENSE](https://github.com/tensorflow/tfjs-models/blob/master/LICENSE) — Code license of the tensorflow/tfjs-models repository, home of the pose-detection package that serves MoveNet: Apache License, Version 2.0. (checked 2026-10-12)
- [storage.googleapis.com/movenet/MoveNet.SinglePose%20Model%20Card.pdf](https://storage.googleapis.com/movenet/MoveNet.SinglePose%20Model%20Card.pdf) — MoveNet.SinglePose card: Apache-2.0 license line, Lightning and Thunder variants, 17 keypoints, multi-person detection out of scope. (checked 2026-10-12)
- [storage.googleapis.com/movenet/MoveNet.MultiPose%20Model%20Card.pdf](https://storage.googleapis.com/movenet/MoveNet.MultiPose%20Model%20Card.pdf) — MoveNet.MultiPose card: up to 6 people; no license line in the extracted text. (checked 2026-10-12)
- [github.com/ultralytics/ultralytics/blob/main/LICENSE](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) — Ultralytics code license: AGPL-3.0, including the section 13 Remote Network Interaction text quoted here. (checked 2026-10-12)
- [github.com/ultralytics/ultralytics/blob/main/README.md](https://github.com/ultralytics/ultralytics/blob/main/README.md) — README descriptions of the AGPL-3.0 route and the Ultralytics Enterprise License. (checked 2026-10-12)
- [github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/LICENSE](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/LICENSE) — OpenPose license: noncommercial research heading, the grant, and the definition of Software including derivatives and modifications. (checked 2026-10-12)
- [github.com/open-mmlab/mmpose/blob/main/LICENSE](https://github.com/open-mmlab/mmpose/blob/main/LICENSE) — MMPose copyright line followed by the Apache License, Version 2.0. (checked 2026-10-12)
- [developers.google.com/ml-kit/vision/pose-detection](https://developers.google.com/ml-kit/vision/pose-detection) — ML Kit Pose Detection: offered in beta and not subject to any SLA or deprecation policy. (checked 2026-10-12)
- [developers.google.com/ml-kit/terms](https://developers.google.com/ml-kit/terms) — ML Kit Terms of Service (last modified May 14, 2025): Google APIs Terms incorporated, models as related software, no reverse engineering or extraction, on-device processing, usage metrics and the user-disclosure duty. (checked 2026-10-12)
- [developer.apple.com/documentation/vision/vndetecthumanbodyposerequest](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequest) — VNDetectHumanBodyPoseRequest availability: iOS 14.0, macOS 11.0, tvOS 14.0, visionOS 1.0. (checked 2026-10-12)
- [github.com/tensorflow/tfjs-models/blob/master/pose-detection/src/movenet/README.md](https://github.com/tensorflow/tfjs-models/blob/master/pose-detection/src/movenet/README.md) — MoveNet model types SINGLEPOSE_LIGHTNING, SINGLEPOSE_THUNDER and MULTIPOSE_LIGHTNING (up to 6 poses); the Lightning and Thunder weights are linked on tfhub.dev. (checked 2026-10-12)
- [github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md) — OpenPose is freely available for free non-commercial use; commercial licensing through CMU's FlintBox link; no price published. (checked 2026-10-12)
- [github.com/open-mmlab/mmpose/tree/main/projects/rtmpose](https://github.com/open-mmlab/mmpose/tree/main/projects/rtmpose) — RTMPose lives in the mmpose repository under projects/rtmpose. (checked 2026-10-12)
- [developer.apple.com/documentation/vision/vndetecthumanbodypose3drequest](https://developer.apple.com/documentation/vision/vndetecthumanbodypose3drequest) — VNDetectHumanBodyPose3DRequest availability from iOS 17.0 and macOS 14.0. (checked 2026-10-12)

## FAQ

### Is MoveNet licensed under Apache 2.0?

For the single-person models, yes: the MoveNet.SinglePose model card, which covers Lightning and Thunder, says "Licensed Under Apache License, Version 2.0", and the tensorflow/tfjs-models repository that serves MoveNet is Apache-2.0 too. The MoveNet.MultiPose card is the exception, because the text we extracted from it has no license line, so confirm MultiPose terms before shipping it commercially. The tfjs-models README links the MoveNet weights on tfhub.dev, which we could not reach, so we could not read any terms shown there.

[Permalink](https://aifitnessapi.com/motion/pose-estimation-model-licenses#faq-1)

### Is MediaPipe free for commercial use?

In our reading, yes, with conditions. The google-ai-edge/mediapipe LICENSE file and the BlazePose GHUM 3D model card both state Apache License, Version 2.0, whose section 2 grant is no-charge and royalty-free, and section 4 requires you, when you redistribute, to give recipients a copy of the license, mark files you modified, keep existing notices, and carry any NOTICE file attributions. The card also lists out-of-scope uses, including applications requiring metric accurate depth and any form of surveillance or identity recognition, which a fitness product should read.

[Permalink](https://aifitnessapi.com/motion/pose-estimation-model-licenses#faq-2)

### Does the AGPL apply if YOLO pose only runs on my server?

In our reading, server-only use does not by itself put Ultralytics YOLO outside AGPL-3.0. Section 13 of the license says a modified version must offer all users interacting with it remotely through a computer network an opportunity to receive its Corresponding Source, and the Ultralytics README describes its Enterprise License as covering internal tools and production deployments, not only distributed apps. Whether your pipeline counts as a modified version is a question to put to counsel.

[Permalink](https://aifitnessapi.com/motion/pose-estimation-model-licenses#faq-3)

### Can I use OpenPose in a commercial fitness app?

Not under the license in its repository. CMU's LICENSE is headed "ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY" and grants a personal, non-transferable license for noncommercial research purposes, with derivatives and modifications counted as part of the Software. The README points commercial users to a FlintBox link, CMU's licensing portal, and the repository publishes no price, so in our reading a commercial product needs that separate license.

[Permalink](https://aifitnessapi.com/motion/pose-estimation-model-licenses#faq-4)

### How do ML Kit's pose detection terms differ from MediaPipe's license?

MediaPipe gives you Apache-2.0 code and a model card you can read, while ML Kit Pose Detection is a closed SDK under the ML Kit Terms of Service, which incorporate the Google APIs Terms of Service. Those terms count machine learning models as related software, say you may not reverse engineer or attempt to extract the source code or any related software, and make you responsible for informing your users about Google's processing of ML Kit metrics data as required by applicable law. Google also documents the pose API as beta, with no SLA or deprecation policy.

[Permalink](https://aifitnessapi.com/motion/pose-estimation-model-licenses#faq-5)
