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 |
|---|---|---|---|---|
| ONNX | float | Universal | QAIRT 2.42, ONNX Runtime 1.24.1 | Download |
| ONNX | w8a8 | Universal | QAIRT 2.42, ONNX Runtime 1.24.1 | Download |
| QNN_DLC | float | Universal | QAIRT 2.43 | Download |
| QNN_DLC | w8a8 | Universal | QAIRT 2.43 | Download |
| TFLITE | float | Universal | QAIRT 2.43, TFLite 2.17.0 | Download |
| TFLITE | w8a8 | Universal | QAIRT 2.43, TFLite 2.17.0 | 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 (PoseDetector): 815K
- Model size (PoseDetector) (float): 3.14 MB
- Number of parameters (PoseLandmarkDetector): 3.36M
- Model size (PoseLandmarkDetector) (float): 12.9 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| PoseDetector | ONNX | float | Snapdragon® X Elite | 1.071 ms | 2 - 2 MB | NPU |
| PoseDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.646 ms | 0 - 52 MB | NPU |
| PoseDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 0.896 ms | 0 - 5 MB | NPU |
| PoseDetector | ONNX | float | Qualcomm® QCS9075 | 1.546 ms | 0 - 3 MB | NPU |
| PoseDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.537 ms | 0 - 36 MB | NPU |
| PoseDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.428 ms | 0 - 36 MB | NPU |
| PoseDetector | ONNX | float | Snapdragon® X2 Elite | 0.519 ms | 0 - 0 MB | NPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® X Elite | 0.448 ms | 0 - 0 MB | NPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.24 ms | 0 - 45 MB | NPU |
| PoseDetector | ONNX | w8a8 | Qualcomm® QCS6490 | 13.893 ms | 10 - 14 MB | CPU |
| PoseDetector | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.337 ms | 0 - 22 MB | NPU |
| PoseDetector | ONNX | w8a8 | Qualcomm® QCS9075 | 0.464 ms | 0 - 3 MB | NPU |
| PoseDetector | ONNX | w8a8 | Qualcomm® QCM6690 | 10.463 ms | 8 - 17 MB | CPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.199 ms | 0 - 30 MB | NPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 7.954 ms | 10 - 19 MB | CPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.171 ms | 0 - 37 MB | NPU |
| PoseDetector | ONNX | w8a8 | Snapdragon® X2 Elite | 0.19 ms | 0 - 0 MB | NPU |
| PoseDetector | QNN_DLC | float | Snapdragon® X Elite | 1.031 ms | 0 - 0 MB | NPU |
| PoseDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 0.633 ms | 0 - 50 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 5.779 ms | 0 - 31 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 0.849 ms | 0 - 2 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® SA8775P | 1.596 ms | 0 - 35 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® QCS9075 | 1.485 ms | 0 - 2 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 2.155 ms | 0 - 43 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® SA7255P | 5.779 ms | 0 - 31 MB | NPU |
| PoseDetector | QNN_DLC | float | Qualcomm® SA8295P | 2.541 ms | 0 - 23 MB | NPU |
| PoseDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.513 ms | 0 - 30 MB | NPU |
| PoseDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.395 ms | 0 - 34 MB | NPU |
| PoseDetector | QNN_DLC | float | Snapdragon® X2 Elite | 0.638 ms | 0 - 0 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® X Elite | 0.43 ms | 0 - 0 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.23 ms | 0 - 41 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS6490 | 1.548 ms | 0 - 2 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.99 ms | 0 - 28 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.31 ms | 0 - 2 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA8775P | 0.507 ms | 0 - 30 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS9075 | 0.402 ms | 0 - 2 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCM6690 | 3.227 ms | 0 - 142 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.567 ms | 0 - 42 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA7255P | 0.99 ms | 0 - 28 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA8295P | 0.946 ms | 0 - 26 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.191 ms | 0 - 27 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.405 ms | 0 - 26 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.162 ms | 0 - 30 MB | NPU |
| PoseDetector | QNN_DLC | w8a8 | Snapdragon® X2 Elite | 0.287 ms | 0 - 0 MB | NPU |
| PoseDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 0.62 ms | 2 - 52 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 5.785 ms | 0 - 32 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 0.859 ms | 0 - 2 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® SA8775P | 6.994 ms | 0 - 32 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® QCS9075 | 1.489 ms | 0 - 5 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 2.165 ms | 0 - 44 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® SA7255P | 5.785 ms | 0 - 32 MB | NPU |
| PoseDetector | TFLITE | float | Qualcomm® SA8295P | 2.554 ms | 0 - 25 MB | NPU |
| PoseDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.517 ms | 0 - 37 MB | NPU |
| PoseDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.395 ms | 0 - 36 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.227 ms | 0 - 40 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 1.538 ms | 0 - 5 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 1.023 ms | 0 - 27 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.318 ms | 0 - 4 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 1.906 ms | 0 - 28 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 0.409 ms | 0 - 3 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 3.189 ms | 0 - 141 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.573 ms | 0 - 42 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 1.023 ms | 0 - 27 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 0.928 ms | 0 - 25 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.188 ms | 0 - 26 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.406 ms | 0 - 25 MB | NPU |
| PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.16 ms | 0 - 30 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Snapdragon® X Elite | 1.16 ms | 7 - 7 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.663 ms | 0 - 88 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 0.903 ms | 0 - 10 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Qualcomm® QCS9075 | 1.367 ms | 1 - 3 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.552 ms | 0 - 52 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.459 ms | 0 - 51 MB | NPU |
| PoseLandmarkDetector | ONNX | float | Snapdragon® X2 Elite | 0.582 ms | 7 - 7 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® X Elite | 0.498 ms | 4 - 4 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.236 ms | 0 - 66 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS6490 | 18.746 ms | 8 - 15 MB | CPU |
| PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.347 ms | 0 - 9 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS9075 | 0.523 ms | 0 - 3 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCM6690 | 9.906 ms | 0 - 12 MB | CPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.215 ms | 0 - 45 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 8.183 ms | 7 - 19 MB | CPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.179 ms | 0 - 54 MB | NPU |
| PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® X2 Elite | 0.19 ms | 0 - 0 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Snapdragon® X Elite | 1.065 ms | 1 - 1 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 0.61 ms | 0 - 77 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 3.162 ms | 1 - 41 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 0.817 ms | 1 - 2 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA8775P | 1.438 ms | 0 - 44 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS9075 | 1.237 ms | 1 - 3 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 1.189 ms | 0 - 69 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA7255P | 3.162 ms | 1 - 41 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA8295P | 1.411 ms | 0 - 32 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.5 ms | 1 - 45 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.432 ms | 1 - 45 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | float | Snapdragon® X2 Elite | 0.749 ms | 1 - 1 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® X Elite | 0.432 ms | 0 - 0 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.214 ms | 0 - 54 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS6490 | 0.981 ms | 0 - 2 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.802 ms | 0 - 39 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.307 ms | 0 - 3 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA8775P | 0.53 ms | 0 - 43 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS9075 | 0.442 ms | 2 - 4 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCM6690 | 1.628 ms | 0 - 38 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.444 ms | 0 - 57 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA7255P | 0.802 ms | 0 - 39 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA8295P | 0.704 ms | 0 - 38 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.197 ms | 0 - 39 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.328 ms | 0 - 38 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.17 ms | 0 - 43 MB | NPU |
| PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® X2 Elite | 0.321 ms | 0 - 0 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 0.609 ms | 0 - 80 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 3.204 ms | 0 - 50 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 0.805 ms | 0 - 2 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® SA8775P | 1.431 ms | 0 - 53 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS9075 | 1.231 ms | 0 - 10 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 1.169 ms | 0 - 74 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® SA7255P | 3.204 ms | 0 - 50 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Qualcomm® SA8295P | 1.426 ms | 0 - 39 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.499 ms | 0 - 45 MB | NPU |
| PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.421 ms | 0 - 53 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.213 ms | 0 - 52 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 0.958 ms | 0 - 9 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.822 ms | 0 - 36 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.313 ms | 0 - 2 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 0.548 ms | 0 - 41 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 0.504 ms | 0 - 6 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 1.637 ms | 0 - 34 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.451 ms | 0 - 55 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 0.822 ms | 0 - 36 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 0.749 ms | 0 - 36 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.201 ms | 0 - 34 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.326 ms | 0 - 35 MB | NPU |
| PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.172 ms | 0 - 40 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.
