--- library_name: pytorch license: other tags: - real_time - android pipeline_tag: keypoint-detection --- ![](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/web-assets/model_demo.png) # 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](https://github.com/zmurez/MediaPipePyTorch/). This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the [Qualcomm® AI Hub Models](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/models/mediapipe_pose) library to export with custom configurations. More details on model performance across various devices, can be found [here](#performance-summary). Qualcomm AI Hub Models uses [Qualcomm AI Hub Workbench](https://workbench.aihub.qualcomm.com) to compile, profile, and evaluate this model. [Sign up](https://myaccount.qualcomm.com/signup) 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.37, ONNX Runtime 1.23.0 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-onnx-float.zip) | ONNX | w8a8 | Universal | QAIRT 2.37, ONNX Runtime 1.23.0 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-onnx-w8a8.zip) | QNN_DLC | float | Universal | QAIRT 2.42 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-qnn_dlc-float.zip) | QNN_DLC | w8a8 | Universal | QAIRT 2.42 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-qnn_dlc-w8a8.zip) | TFLITE | float | Universal | QAIRT 2.42, TFLite 2.17.0 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-tflite-float.zip) | TFLITE | w8a8 | Universal | QAIRT 2.42, TFLite 2.17.0 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/mediapipe_pose/releases/v0.46.0/mediapipe_pose-tflite-w8a8.zip) For more device-specific assets and performance metrics, visit **[MediaPipe-Pose-Estimation on Qualcomm® AI Hub](https://aihub.qualcomm.com/models/mediapipe_pose)**. ### Option 2: Export with Custom Configurations Use the [Qualcomm® AI Hub Models](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/models/mediapipe_pose) 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](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/models/mediapipe_pose) 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.041 ms | 2 - 2 MB | NPU | PoseDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.845 ms | 0 - 120 MB | NPU | PoseDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 1.101 ms | 0 - 122 MB | NPU | PoseDetector | ONNX | float | Qualcomm® QCS9075 | 1.786 ms | 0 - 3 MB | NPU | PoseDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.664 ms | 0 - 101 MB | NPU | PoseDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.548 ms | 0 - 102 MB | NPU | PoseDetector | ONNX | w8a8 | Snapdragon® X Elite | 0.439 ms | 0 - 0 MB | NPU | PoseDetector | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.429 ms | 0 - 114 MB | NPU | PoseDetector | ONNX | w8a8 | Qualcomm® QCS6490 | 13.894 ms | 9 - 14 MB | CPU | PoseDetector | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.543 ms | 0 - 109 MB | NPU | PoseDetector | ONNX | w8a8 | Qualcomm® QCS9075 | 0.643 ms | 0 - 3 MB | NPU | PoseDetector | ONNX | w8a8 | Qualcomm® QCM6690 | 10.21 ms | 10 - 19 MB | CPU | PoseDetector | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.304 ms | 0 - 99 MB | NPU | PoseDetector | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 7.585 ms | 9 - 19 MB | CPU | PoseDetector | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.286 ms | 0 - 103 MB | NPU | PoseDetector | QNN_DLC | float | Snapdragon® X Elite | 1.021 ms | 0 - 0 MB | NPU | PoseDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 0.625 ms | 0 - 50 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 5.758 ms | 0 - 32 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 0.851 ms | 0 - 2 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® SA8775P | 1.59 ms | 0 - 33 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® QCS9075 | 1.497 ms | 0 - 2 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 2.173 ms | 0 - 43 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® SA7255P | 5.758 ms | 0 - 32 MB | NPU | PoseDetector | QNN_DLC | float | Qualcomm® SA8295P | 2.546 ms | 0 - 23 MB | NPU | PoseDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.517 ms | 0 - 35 MB | NPU | PoseDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.397 ms | 0 - 34 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Snapdragon® X Elite | 0.434 ms | 0 - 0 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.218 ms | 0 - 41 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS6490 | 1.518 ms | 0 - 2 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.986 ms | 0 - 29 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.318 ms | 0 - 1 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA8775P | 0.5 ms | 0 - 31 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS9075 | 0.402 ms | 0 - 2 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCM6690 | 3.206 ms | 0 - 142 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.572 ms | 0 - 43 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA7255P | 0.986 ms | 0 - 29 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Qualcomm® SA8295P | 0.91 ms | 0 - 26 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.188 ms | 0 - 31 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.408 ms | 0 - 26 MB | NPU | PoseDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.155 ms | 0 - 31 MB | NPU | PoseDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 0.627 ms | 0 - 50 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 5.861 ms | 0 - 32 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 0.851 ms | 0 - 2 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® SA8775P | 1.598 ms | 0 - 37 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® QCS9075 | 1.493 ms | 0 - 5 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 2.168 ms | 0 - 43 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® SA7255P | 5.861 ms | 0 - 32 MB | NPU | PoseDetector | TFLITE | float | Qualcomm® SA8295P | 2.549 ms | 0 - 25 MB | NPU | PoseDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.517 ms | 0 - 30 MB | NPU | PoseDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.398 ms | 0 - 36 MB | NPU | PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.224 ms | 0 - 39 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 1.56 ms | 0 - 5 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 1.037 ms | 0 - 29 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.321 ms | 0 - 75 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 1.9 ms | 0 - 28 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 0.42 ms | 0 - 3 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 3.201 ms | 0 - 141 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.573 ms | 0 - 41 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 1.037 ms | 0 - 29 MB | NPU | PoseDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 0.94 ms | 0 - 25 MB | NPU | PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.192 ms | 0 - 25 MB | NPU | PoseDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.391 ms | 0 - 25 MB | NPU | PoseDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.161 ms | 0 - 31 MB | NPU | PoseLandmarkDetector | ONNX | float | Snapdragon® X Elite | 1.16 ms | 7 - 7 MB | NPU | PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 0.882 ms | 0 - 145 MB | NPU | PoseLandmarkDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 1.167 ms | 0 - 9 MB | NPU | PoseLandmarkDetector | ONNX | float | Qualcomm® QCS9075 | 1.667 ms | 1 - 3 MB | NPU | PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.757 ms | 0 - 110 MB | NPU | PoseLandmarkDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.636 ms | 0 - 112 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® X Elite | 0.475 ms | 4 - 4 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.367 ms | 0 - 135 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS6490 | 19.015 ms | 7 - 14 MB | CPU | PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.535 ms | 0 - 123 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCS9075 | 0.725 ms | 0 - 3 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Qualcomm® QCM6690 | 9.154 ms | 9 - 20 MB | CPU | PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.326 ms | 0 - 119 MB | NPU | PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 6.872 ms | 8 - 20 MB | CPU | PoseLandmarkDetector | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.308 ms | 0 - 120 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Snapdragon® X Elite | 1.082 ms | 1 - 1 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 0.603 ms | 0 - 76 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 3.175 ms | 0 - 41 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 0.802 ms | 1 - 2 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA8775P | 1.387 ms | 1 - 44 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS9075 | 1.229 ms | 1 - 3 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 1.138 ms | 0 - 68 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA7255P | 3.175 ms | 0 - 41 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Qualcomm® SA8295P | 1.432 ms | 0 - 32 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.498 ms | 1 - 41 MB | NPU | PoseLandmarkDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.421 ms | 1 - 45 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® X Elite | 0.435 ms | 0 - 0 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.204 ms | 0 - 54 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS6490 | 1.078 ms | 0 - 2 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.795 ms | 0 - 39 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.3 ms | 0 - 2 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA8775P | 0.503 ms | 0 - 43 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS9075 | 0.444 ms | 0 - 2 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCM6690 | 1.584 ms | 0 - 38 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.458 ms | 0 - 56 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA7255P | 0.795 ms | 0 - 39 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Qualcomm® SA8295P | 0.743 ms | 0 - 38 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.195 ms | 0 - 43 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.314 ms | 0 - 38 MB | NPU | PoseLandmarkDetector | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.163 ms | 0 - 43 MB | NPU | PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 0.597 ms | 0 - 79 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 3.211 ms | 0 - 52 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 0.803 ms | 0 - 3 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® SA8775P | 1.422 ms | 0 - 54 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS9075 | 1.227 ms | 0 - 10 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 1.182 ms | 0 - 75 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® SA7255P | 3.211 ms | 0 - 52 MB | NPU | PoseLandmarkDetector | TFLITE | float | Qualcomm® SA8295P | 1.402 ms | 0 - 40 MB | NPU | PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 0.497 ms | 0 - 44 MB | NPU | PoseLandmarkDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 0.418 ms | 0 - 55 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 0.215 ms | 0 - 51 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 1.009 ms | 0 - 9 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 0.828 ms | 0 - 38 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 0.306 ms | 0 - 2 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 0.526 ms | 0 - 42 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 0.474 ms | 0 - 6 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 1.572 ms | 0 - 33 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 0.445 ms | 0 - 55 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 0.828 ms | 0 - 38 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 0.722 ms | 0 - 36 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 0.195 ms | 0 - 34 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 0.312 ms | 0 - 34 MB | NPU | PoseLandmarkDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 0.168 ms | 0 - 41 MB | NPU ## License * The license for the original implementation of MediaPipe-Pose-Estimation can be found [here](https://github.com/zmurez/MediaPipePyTorch/blob/master/LICENSE). ## References * [BlazePose: On-device Real-time Body Pose tracking](https://arxiv.org/abs/2006.10204) * [Source Model Implementation](https://github.com/zmurez/MediaPipePyTorch/) ## Community * Join [our AI Hub Slack community](https://aihub.qualcomm.com/community/slack) to collaborate, post questions and learn more about on-device AI. * For questions or feedback please [reach out to us](mailto:ai-hub-support@qti.qualcomm.com).