PidNet / README.md
qaihm-bot's picture
v0.49.1
b86f93d verified
metadata
library_name: pytorch
license: other
tags:
  - real_time
  - android
pipeline_tag: image-segmentation

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.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 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:

  • Model checkpoint: PIDNet_S_Cityscapes_val.pt
  • Inference latency: RealTime
  • Input resolution: 1024x2048
  • Number of output classes: 19
  • Number of parameters: 8.06M
  • Model size (float): 29.1 MB
  • Model size (w8a8): 8.02 MB

Performance Summary

Model Runtime Precision Chipset Inference Time (ms) Peak Memory Range (MB) Primary Compute Unit
PidNet ONNX float Snapdragon® 8 Elite Gen 5 Mobile 12.188 ms 30 - 298 MB NPU
PidNet ONNX float Snapdragon® X2 Elite 13.225 ms 22 - 22 MB NPU
PidNet ONNX float Snapdragon® X Elite 32.46 ms 24 - 24 MB NPU
PidNet ONNX float Snapdragon® 8 Gen 3 Mobile 23.02 ms 1 - 318 MB NPU
PidNet ONNX float Qualcomm® QCS8550 (Proxy) 33.333 ms 24 - 27 MB NPU
PidNet ONNX float Qualcomm® QCS9075 47.508 ms 24 - 51 MB NPU
PidNet ONNX float Snapdragon® 8 Elite For Galaxy Mobile 16.566 ms 5 - 225 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Elite Gen 5 Mobile 44.113 ms 71 - 291 MB NPU
PidNet ONNX w8a8 Snapdragon® X2 Elite 45.785 ms 134 - 134 MB NPU
PidNet ONNX w8a8 Snapdragon® X Elite 89.05 ms 133 - 133 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Gen 3 Mobile 45.845 ms 110 - 371 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS6490 391.518 ms 197 - 215 MB CPU
PidNet ONNX w8a8 Qualcomm® QCS8550 (Proxy) 59.651 ms 102 - 106 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS9075 66.387 ms 105 - 108 MB NPU
PidNet ONNX w8a8 Qualcomm® QCM6690 346.885 ms 198 - 207 MB CPU
PidNet ONNX w8a8 Snapdragon® 8 Elite For Galaxy Mobile 43.647 ms 99 - 305 MB NPU
PidNet ONNX w8a8 Snapdragon® 7 Gen 4 Mobile 326.982 ms 223 - 233 MB CPU
PidNet QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 11.958 ms 12 - 284 MB NPU
PidNet QNN_DLC float Snapdragon® X2 Elite 13.5 ms 24 - 24 MB NPU
PidNet QNN_DLC float Snapdragon® X Elite 38.855 ms 24 - 24 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Gen 3 Mobile 25.603 ms 24 - 344 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8275 (Proxy) 118.292 ms 24 - 246 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8550 (Proxy) 37.634 ms 24 - 26 MB NPU
PidNet QNN_DLC float Qualcomm® SA8775P 46.74 ms 24 - 247 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8450 (Proxy) 76.339 ms 5 - 335 MB NPU
PidNet QNN_DLC float Qualcomm® SA7255P 118.292 ms 24 - 246 MB NPU
PidNet QNN_DLC float Qualcomm® SA8295P 51.692 ms 24 - 261 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Elite For Galaxy Mobile 18.325 ms 10 - 255 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Elite Gen 5 Mobile 47.609 ms 6 - 272 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® X2 Elite 48.32 ms 6 - 6 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® X Elite 60.394 ms 6 - 6 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Gen 3 Mobile 43.285 ms 6 - 273 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8275 (Proxy) 111.157 ms 6 - 218 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8550 (Proxy) 57.6 ms 6 - 161 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® SA8775P 58.416 ms 6 - 218 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS9075 61.338 ms 6 - 14 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8450 (Proxy) 64.153 ms 6 - 271 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® SA7255P 111.157 ms 6 - 218 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® SA8295P 66.448 ms 6 - 220 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Elite For Galaxy Mobile 41.4 ms 6 - 240 MB NPU
PidNet TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 12.644 ms 2 - 272 MB NPU
PidNet TFLITE float Snapdragon® 8 Gen 3 Mobile 24.886 ms 0 - 334 MB NPU
PidNet TFLITE float Qualcomm® QCS8275 (Proxy) 117.098 ms 3 - 231 MB NPU
PidNet TFLITE float Qualcomm® QCS8550 (Proxy) 36.18 ms 2 - 5 MB NPU
PidNet TFLITE float Qualcomm® SA8775P 45.314 ms 2 - 231 MB NPU
PidNet TFLITE float Qualcomm® QCS9075 60.142 ms 0 - 45 MB NPU
PidNet TFLITE float Qualcomm® QCS8450 (Proxy) 75.223 ms 3 - 350 MB NPU
PidNet TFLITE float Qualcomm® SA7255P 117.098 ms 3 - 231 MB NPU
PidNet TFLITE float Qualcomm® SA8295P 50.603 ms 3 - 249 MB NPU
PidNet TFLITE float Snapdragon® 8 Elite For Galaxy Mobile 18.63 ms 1 - 254 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Elite Gen 5 Mobile 40.789 ms 1 - 265 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Gen 3 Mobile 37.924 ms 1 - 268 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS6490 203.117 ms 3 - 73 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8275 (Proxy) 98.248 ms 1 - 211 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8550 (Proxy) 50.296 ms 1 - 3 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA8775P 50.98 ms 0 - 212 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS9075 52.952 ms 1 - 17 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCM6690 242.39 ms 3 - 197 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8450 (Proxy) 58.405 ms 1 - 266 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA7255P 98.248 ms 1 - 211 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA8295P 57.929 ms 1 - 214 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Elite For Galaxy Mobile 38.294 ms 0 - 236 MB NPU
PidNet TFLITE w8a8 Snapdragon® 7 Gen 4 Mobile 67.211 ms 3 - 223 MB NPU

License

  • The license for the original implementation of PidNet can be found here.

References

Community