PidNet: Optimized for Qualcomm Devices
PIDNet (Proportional-Integral-Derivative Network) is a real-time semantic segmentation model based on PID controllers
This is based on the implementation of PidNet 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.50, ONNX Runtime 1.30.0 | Download |
| ONNX | w8a8 | Universal | QAIRT 2.50, ONNX Runtime 1.30.0 | Download |
| QNN_DLC | float | Universal | QAIRT 2.50 | Download |
| QNN_DLC | w8a8 | Universal | QAIRT 2.50 | Download |
| TFLITE | float | Universal | QAIRT 2.50 | Download |
| TFLITE | w8a8 | Universal | QAIRT 2.50 | Download |
For more device-specific assets and performance metrics, visit PidNet 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 PidNet on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.semantic_segmentation
Model Stats:
- Inference latency: RealTime
- Input resolution: 1024x2048
- Model checkpoint: PIDNet_S_Cityscapes_val.pt
- Model size (float): 29.1 MB
- Model size (w8a8): 8.02 MB
- Number of output classes: 19
- Number of parameters: 8.06M
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| PidNet | ONNX | float | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 16.269 ms | 7 - 245 MB | NPU |
| PidNet | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 17.692 ms | 6 - 212 MB | NPU |
| PidNet | ONNX | float | Snapdragon® X2 Elite | 13.333 ms | 24 - 24 MB | NPU |
| PidNet | ONNX | float | Snapdragon® X Elite | 31.477 ms | 24 - 24 MB | NPU |
| PidNet | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 22.111 ms | 31 - 325 MB | NPU |
| PidNet | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 47.204 ms | 26 - 318 MB | NPU |
| PidNet | ONNX | float | Qualcomm® Dragonwing™ IQ-8275 | 39.709 ms | 24 - 52 MB | NPU |
| PidNet | ONNX | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 32.464 ms | 24 - 26 MB | NPU |
| PidNet | ONNX | float | Qualcomm® QCS8450 | 47.204 ms | 26 - 318 MB | NPU |
| PidNet | ONNX | float | Qualcomm® Dragonwing™ IQ-9075 | 41.249 ms | 24 - 51 MB | NPU |
| PidNet | ONNX | float | Qualcomm® Dragonwing™ IQ-X7181 | 31.477 ms | 24 - 24 MB | NPU |
| PidNet | ONNX | float | Qualcomm® Dragonwing™ Q-8750 | 17.692 ms | 6 - 212 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 22.941 ms | 3 - 230 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 41.389 ms | 2 - 211 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® X2 Elite | 23.206 ms | 7 - 7 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® X Elite | 54.847 ms | 7 - 7 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 39.078 ms | 7 - 263 MB | NPU |
| PidNet | ONNX | w8a8 | Snapdragon® 8 Gen 1 Mobile | 55.241 ms | 7 - 262 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-8275 | 50.701 ms | 6 - 10 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 52.403 ms | 5 - 10 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® QCS8450 | 55.241 ms | 7 - 262 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 54.11 ms | 6 - 9 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 54.847 ms | 7 - 7 MB | NPU |
| PidNet | ONNX | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 41.389 ms | 2 - 211 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 12.51 ms | 22 - 274 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 18.52 ms | 18 - 250 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® X2 Elite | 14.04 ms | 24 - 24 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® X Elite | 38.094 ms | 24 - 24 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 25.228 ms | 18 - 313 MB | NPU |
| PidNet | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 50.989 ms | 0 - 293 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-8275 | 44.075 ms | 24 - 53 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 36.818 ms | 24 - 26 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® SA8775P | 45.803 ms | 24 - 232 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® SA8650P | 45.803 ms | 24 - 232 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® SA8255P | 45.803 ms | 24 - 232 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® QCS8450 | 50.989 ms | 0 - 293 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-9075 | 47.131 ms | 24 - 52 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-X7181 | 38.094 ms | 24 - 24 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® Dragonwing™ Q-8750 | 18.52 ms | 18 - 250 MB | NPU |
| PidNet | QNN_DLC | float | Qualcomm® SA8295P | 52.748 ms | 24 - 242 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 24.517 ms | 6 - 256 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 44.552 ms | 6 - 229 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® X2 Elite | 25.101 ms | 6 - 6 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® X Elite | 60.442 ms | 6 - 6 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 43.06 ms | 6 - 255 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Snapdragon® 8 Gen 1 Mobile | 59.27 ms | 6 - 257 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-8275 | 56.334 ms | 3 - 12 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 57.512 ms | 6 - 8 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® SA8775P | 58.537 ms | 6 - 208 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® SA8650P | 58.537 ms | 6 - 208 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® SA8255P | 58.537 ms | 6 - 208 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® QCS8450 | 59.27 ms | 6 - 257 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 59.263 ms | 6 - 15 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 60.442 ms | 6 - 6 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 44.552 ms | 6 - 229 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® SA7255P | 110.669 ms | 6 - 207 MB | NPU |
| PidNet | QNN_DLC | w8a8 | Qualcomm® SA8295P | 66.505 ms | 6 - 212 MB | NPU |
| PidNet | TFLITE | float | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 12.7 ms | 2 - 257 MB | NPU |
| PidNet | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 18.304 ms | 1 - 231 MB | NPU |
| PidNet | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 25.623 ms | 2 - 310 MB | NPU |
| PidNet | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 49.312 ms | 0 - 311 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® Dragonwing™ IQ-8275 | 43.369 ms | 0 - 46 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 35.846 ms | 3 - 5 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® SA8775P | 45.157 ms | 0 - 215 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® SA8650P | 45.157 ms | 0 - 215 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® SA8255P | 45.157 ms | 0 - 215 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® QCS8450 | 49.312 ms | 0 - 311 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® Dragonwing™ IQ-9075 | 46.034 ms | 0 - 45 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® Dragonwing™ Q-8750 | 18.304 ms | 1 - 231 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® SA7255P | 116.121 ms | 3 - 218 MB | NPU |
| PidNet | TFLITE | float | Qualcomm® SA8295P | 52.267 ms | 2 - 232 MB | NPU |
| PidNet | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 For Galaxy Mobile | 22.155 ms | 1 - 249 MB | NPU |
| PidNet | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 69.026 ms | 1 - 224 MB | NPU |
| PidNet | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 37.818 ms | 0 - 251 MB | NPU |
| PidNet | TFLITE | w8a8 | Snapdragon® 8 Gen 1 Mobile | 51.075 ms | 1 - 256 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 163.044 ms | 1 - 71 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ IQ-8275 | 49.666 ms | 1 - 19 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 50.152 ms | 1 - 4 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® SA8775P | 50.98 ms | 1 - 204 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® SA8650P | 50.98 ms | 1 - 204 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® SA8255P | 50.98 ms | 1 - 204 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® QCS8450 | 51.075 ms | 1 - 256 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 51.498 ms | 0 - 17 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 239.105 ms | 2 - 187 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 66.261 ms | 2 - 213 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 69.026 ms | 1 - 224 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® SA7255P | 98.069 ms | 1 - 203 MB | NPU |
| PidNet | TFLITE | w8a8 | Qualcomm® SA8295P | 57.86 ms | 1 - 207 MB | NPU |
| PidNet | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 66.261 ms | 2 - 213 MB | NPU |
License
- The license for the original implementation of PidNet can be found here.
References
- PIDNet A Real-time Semantic Segmentation Network Inspired from PID Controller Segmentation of Road Scenes
- Source Model Implementation
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.
