MediaPipe-Pose-Estimation: Optimized for Qualcomm Devices
The MediaPipe Pose Landmark Detector is a machine learning pipeline that predicts bounding boxes and pose skeletons of the face, hands, and torso in an image.
This is based on the implementation of MediaPipe-Pose-Estimation found here. This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the Qualcomm® AI Hub Models library to export with custom configurations. More details on model performance across various devices, can be found here.
Qualcomm AI Hub Models uses Qualcomm AI Hub Workbench to compile, profile, and evaluate this model. Sign up to run these models on a hosted Qualcomm® device.
Getting Started
There are two ways to deploy this model on your device:
Option 1: Download Pre-Exported Models
Below are pre-exported model assets ready for deployment.
| Runtime | Precision | Chipset | SDK Versions | Download |
|---|---|---|---|---|
| QNN_CONTEXT_BINARY | float | qualcomm_qcs8450_proxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_qcs8550_proxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_qcs9075 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_sa7255p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_sa8295p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_sa8775p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_snapdragon_8_elite_for_galaxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_snapdragon_8_elite_gen5 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_snapdragon_8gen3 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_snapdragon_x2_elite | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | float | qualcomm_snapdragon_x_elite | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_qcm6690 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_qcs6490 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_qcs8450_proxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_qcs8550_proxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_qcs9075 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_sa7255p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_sa8295p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_sa8775p | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_7gen4 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_8_elite_for_galaxy | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_8_elite_gen5 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_8gen3 | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_x2_elite | QAIRT 2.43 | Download |
| QNN_CONTEXT_BINARY | w8a8 | qualcomm_snapdragon_x_elite | QAIRT 2.43 | Download |
For more device-specific assets and performance metrics, visit MediaPipe-Pose-Estimation on Qualcomm® AI Hub.
Option 2: Export with Custom Configurations
Use the Qualcomm® AI Hub Models Python library to compile and export the model with your own:
- Custom weights (e.g., fine-tuned checkpoints)
- Custom input shapes
- Target device and runtime configurations
This option is ideal if you need to customize the model beyond the default configuration provided here.
See our repository for MediaPipe-Pose-Estimation on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.pose_estimation
Model Stats:
- Input resolution: 256x256
- Number of parameters (pose_detector): 815K
- Model size (pose_detector) (float): 3.14 MB
- Number of parameters (pose_landmark_detector): 3.36M
- Model size (pose_landmark_detector) (float): 12.9 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| pose_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.396 ms | 0 - 10 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® X2 Elite | 0.496 ms | 0 - 0 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® X Elite | 1.038 ms | 2 - 2 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.618 ms | 0 - 7 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Qualcomm® QCS8550 (Proxy) | 0.858 ms | 0 - 4 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Qualcomm® QCS9075 | 1.483 ms | 0 - 3 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.512 ms | 0 - 7 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.163 ms | 0 - 10 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® X2 Elite | 0.178 ms | 0 - 0 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® X Elite | 0.443 ms | 0 - 0 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.223 ms | 0 - 7 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS6490 | 1.824 ms | 0 - 3 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.322 ms | 0 - 3 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS9075 | 0.435 ms | 0 - 3 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCM6690 | 3.225 ms | 0 - 6 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.19 ms | 0 - 7 MB | NPU |
| pose_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.41 ms | 0 - 7 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.398 ms | 0 - 10 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Snapdragon® X2 Elite | 0.62 ms | 0 - 0 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Snapdragon® X Elite | 1.024 ms | 0 - 0 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Gen 3 Mobile | 0.628 ms | 0 - 8 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8275 (Proxy) | 5.775 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8550 (Proxy) | 0.857 ms | 0 - 1 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA8775P | 1.589 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS9075 | 1.453 ms | 0 - 2 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8450 (Proxy) | 2.152 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA7255P | 5.775 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA8295P | 2.547 ms | 0 - 5 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.514 ms | 0 - 10 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.148 ms | 0 - 10 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® X2 Elite | 0.303 ms | 0 - 0 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® X Elite | 0.44 ms | 0 - 0 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.222 ms | 0 - 7 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS6490 | 1.704 ms | 2 - 4 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.996 ms | 0 - 8 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.31 ms | 0 - 1 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA8775P | 0.492 ms | 0 - 5 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS9075 | 0.384 ms | 0 - 2 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCM6690 | 3.212 ms | 0 - 6 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.573 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA7255P | 0.996 ms | 0 - 8 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA8295P | 0.919 ms | 0 - 5 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.186 ms | 0 - 9 MB | NPU |
| pose_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.412 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.425 ms | 0 - 10 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® X2 Elite | 0.558 ms | 7 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® X Elite | 1.077 ms | 7 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.625 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Qualcomm® QCS8550 (Proxy) | 0.822 ms | 0 - 8 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Qualcomm® QCS9075 | 1.234 ms | 1 - 3 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.498 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.169 ms | 0 - 10 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® X2 Elite | 0.169 ms | 0 - 0 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® X Elite | 0.44 ms | 4 - 4 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.213 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS6490 | 1.249 ms | 0 - 3 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.306 ms | 0 - 6 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCS9075 | 0.429 ms | 0 - 3 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Qualcomm® QCM6690 | 1.632 ms | 0 - 6 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.196 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | PRECOMPILED_QNN_ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.319 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.423 ms | 1 - 11 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Snapdragon® X2 Elite | 0.767 ms | 1 - 1 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Snapdragon® X Elite | 1.065 ms | 1 - 1 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Gen 3 Mobile | 0.61 ms | 1 - 8 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8275 (Proxy) | 3.18 ms | 1 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8550 (Proxy) | 0.823 ms | 1 - 3 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA8775P | 1.435 ms | 1 - 6 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS9075 | 1.225 ms | 3 - 5 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® QCS8450 (Proxy) | 1.135 ms | 1 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA7255P | 3.18 ms | 1 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Qualcomm® SA8295P | 1.391 ms | 0 - 5 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.497 ms | 1 - 10 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.168 ms | 0 - 10 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® X2 Elite | 0.297 ms | 0 - 0 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® X Elite | 0.432 ms | 0 - 0 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.211 ms | 0 - 7 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS6490 | 1.224 ms | 2 - 4 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.844 ms | 0 - 8 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.311 ms | 0 - 2 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA8775P | 0.532 ms | 0 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS9075 | 0.405 ms | 2 - 4 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCM6690 | 1.63 ms | 0 - 6 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.465 ms | 0 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA7255P | 0.844 ms | 0 - 8 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Qualcomm® SA8295P | 0.723 ms | 0 - 5 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.195 ms | 0 - 9 MB | NPU |
| pose_landmark_detector | QNN_CONTEXT_BINARY | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.326 ms | 0 - 6 MB | NPU |
License
- The license for the original implementation of MediaPipe-Pose-Estimation can be found here.
References
Community
- Join our AI Hub Slack community to collaborate, post questions and learn more about on-device AI.
- For questions or feedback please reach out to us.
