SixDRepNet: Optimized for Qualcomm Devices
6DRepNet predicts head pose (pitch, yaw, roll) from a face image using a RepVGG-B1g2 backbone and a continuous 6D rotation representation, achieving robust and accurate head pose estimation.
This is based on the implementation of SixDRepNet 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.45, ONNX Runtime 1.25.0 | Download |
| QNN_DLC | float | Universal | QAIRT 2.45 | Download |
| TFLITE | float | Universal | QAIRT 2.45 | Download |
For more device-specific assets and performance metrics, visit SixDRepNet 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 SixDRepNet on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.pose_estimation
Model Stats:
- Input resolution: 224x224
- Number of parameters: 15.3M
- Model size (float): 58.4 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| face_detector | ONNX | float | Snapdragon® X2 Elite | 1.914 ms | 208 - 208 MB | NPU |
| face_detector | ONNX | float | Snapdragon® X Elite | 3.7 ms | 177 - 177 MB | NPU |
| face_detector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 2.188 ms | 2 - 156 MB | NPU |
| face_detector | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 6.832 ms | 1 - 165 MB | NPU |
| face_detector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 3.519 ms | 0 - 15 MB | NPU |
| face_detector | ONNX | float | Qualcomm® QCS8450 | 6.832 ms | 1 - 165 MB | NPU |
| face_detector | ONNX | float | Snapdragon® 8 Elite Mobile | 1.722 ms | 0 - 166 MB | NPU |
| face_detector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 1.817 ms | 0 - 159 MB | NPU |
| face_detector | ONNX | float | Qualcomm® QCS9075 | 5.43 ms | 5 - 50 MB | NPU |
| face_detector | ONNX | float | Qualcomm® QCS8750 | 1.722 ms | 0 - 166 MB | NPU |
| face_detector | ONNX | float | Qualcomm® QCS7181 | 3.7 ms | 177 - 177 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® X2 Elite | 5.851 ms | 5 - 5 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® X Elite | 16.58 ms | 5 - 5 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 9.334 ms | 5 - 177 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 24.527 ms | 3 - 174 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS8275 | 28.241 ms | 0 - 150 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 15.615 ms | 5 - 6 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS8450 | 24.527 ms | 3 - 174 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 6.918 ms | 0 - 154 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® SA8295P | 20.645 ms | 0 - 150 MB | NPU |
| face_detector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 5.455 ms | 5 - 158 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® SA7255P | 28.241 ms | 0 - 150 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS9075 | 19.595 ms | 5 - 12 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS8750 | 6.918 ms | 0 - 154 MB | NPU |
| face_detector | QNN_DLC | float | Qualcomm® QCS7181 | 16.58 ms | 5 - 5 MB | NPU |
| face_detector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 9.267 ms | 1 - 168 MB | NPU |
| face_detector | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 24.64 ms | 0 - 172 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® QCS8275 | 28.279 ms | 1 - 150 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 15.655 ms | 1 - 3 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® SA8775P | 7.778 ms | 1 - 32 MB | GPU |
| face_detector | TFLITE | float | Qualcomm® SA8650P | 7.778 ms | 1 - 32 MB | GPU |
| face_detector | TFLITE | float | Qualcomm® SA8255P | 7.778 ms | 1 - 32 MB | GPU |
| face_detector | TFLITE | float | Qualcomm® QCS8450 | 24.64 ms | 0 - 172 MB | NPU |
| face_detector | TFLITE | float | Snapdragon® 8 Elite Mobile | 6.919 ms | 1 - 150 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® SA8295P | 20.674 ms | 1 - 151 MB | NPU |
| face_detector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 5.488 ms | 1 - 154 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® SA7255P | 28.279 ms | 1 - 150 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® QCS9075 | 19.262 ms | 0 - 9 MB | NPU |
| face_detector | TFLITE | float | Qualcomm® QCS8750 | 6.919 ms | 1 - 150 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® X2 Elite | 1.299 ms | 212 - 212 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® X Elite | 2.619 ms | 148 - 148 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 2.078 ms | 1 - 28 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 5.545 ms | 1 - 27 MB | NPU |
| pose_estimator | ONNX | float | Qualcomm® QCS8550 (Proxy) | 2.72 ms | 0 - 82 MB | NPU |
| pose_estimator | ONNX | float | Qualcomm® QCS8450 | 5.545 ms | 1 - 27 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® 8 Elite Mobile | 1.64 ms | 0 - 24 MB | NPU |
| pose_estimator | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 1.331 ms | 1 - 24 MB | NPU |
| pose_estimator | ONNX | float | Qualcomm® QCS9075 | 4.548 ms | 1 - 46 MB | NPU |
| pose_estimator | ONNX | float | Qualcomm® QCS8750 | 1.64 ms | 0 - 24 MB | NPU |
| pose_estimator | ONNX | float | Qualcomm® QCS7181 | 2.619 ms | 148 - 148 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® X2 Elite | 1.479 ms | 1 - 1 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® X Elite | 2.867 ms | 1 - 1 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 2.236 ms | 0 - 41 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 6.514 ms | 0 - 40 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS8275 | 17.821 ms | 1 - 25 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 2.776 ms | 1 - 3 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS8450 | 6.514 ms | 0 - 40 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 1.736 ms | 1 - 27 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® SA8295P | 5.39 ms | 0 - 26 MB | NPU |
| pose_estimator | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 1.424 ms | 1 - 29 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® SA7255P | 17.821 ms | 1 - 25 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS9075 | 4.902 ms | 3 - 5 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS8750 | 1.736 ms | 1 - 27 MB | NPU |
| pose_estimator | QNN_DLC | float | Qualcomm® QCS7181 | 2.867 ms | 1 - 1 MB | NPU |
| pose_estimator | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 2.249 ms | 0 - 44 MB | NPU |
| pose_estimator | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 6.49 ms | 0 - 46 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® QCS8275 | 17.388 ms | 0 - 26 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 2.852 ms | 0 - 2 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® SA8775P | 41.489 ms | 0 - 17 MB | GPU |
| pose_estimator | TFLITE | float | Qualcomm® SA8650P | 41.489 ms | 0 - 17 MB | GPU |
| pose_estimator | TFLITE | float | Qualcomm® SA8255P | 41.489 ms | 0 - 17 MB | GPU |
| pose_estimator | TFLITE | float | Qualcomm® QCS8450 | 6.49 ms | 0 - 46 MB | NPU |
| pose_estimator | TFLITE | float | Snapdragon® 8 Elite Mobile | 1.704 ms | 0 - 30 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® SA8295P | 5.356 ms | 0 - 29 MB | NPU |
| pose_estimator | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 1.378 ms | 0 - 29 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® SA7255P | 17.388 ms | 0 - 26 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® QCS9075 | 4.739 ms | 0 - 78 MB | NPU |
| pose_estimator | TFLITE | float | Qualcomm® QCS8750 | 1.704 ms | 0 - 30 MB | NPU |
License
- The license for the original implementation of SixDRepNet 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.
