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.45, ONNX Runtime 1.25.0 Download
ONNX w8a8 Universal QAIRT 2.45, ONNX Runtime 1.25.0 Download
QNN_DLC float Universal QAIRT 2.45 Download
QNN_DLC w8a8 Universal QAIRT 2.45 Download
TFLITE float Universal QAIRT 2.45 Download
TFLITE w8a8 Universal QAIRT 2.45 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® X2 Elite 13.763 ms 189 - 189 MB NPU
PidNet ONNX float Snapdragon® X Elite 32.32 ms 158 - 158 MB NPU
PidNet ONNX float Snapdragon® 8 Gen 3 Mobile 22.916 ms 31 - 322 MB NPU
PidNet ONNX float Snapdragon® 8 Gen 1 Mobile 55.626 ms 29 - 324 MB NPU
PidNet ONNX float Qualcomm® QCS8550 (Proxy) 32.415 ms 24 - 51 MB NPU
PidNet ONNX float Qualcomm® QCS8450 55.626 ms 29 - 324 MB NPU
PidNet ONNX float Snapdragon® 8 Elite Mobile 17.854 ms 7 - 219 MB NPU
PidNet ONNX float Snapdragon® 8 Elite Gen 5 Mobile 13.144 ms 5 - 250 MB NPU
PidNet ONNX float Qualcomm® QCS9075 47.664 ms 24 - 93 MB NPU
PidNet ONNX float Qualcomm® QCS8750 17.854 ms 7 - 219 MB NPU
PidNet ONNX float Qualcomm® QCS7181 32.32 ms 158 - 158 MB NPU
PidNet ONNX w8a8 Snapdragon® X2 Elite 25.958 ms 207 - 207 MB NPU
PidNet ONNX w8a8 Snapdragon® X Elite 54.825 ms 175 - 175 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Gen 3 Mobile 39.101 ms 7 - 261 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Gen 1 Mobile 57.664 ms 7 - 263 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS6490 132.062 ms 6 - 51 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS8550 (Proxy) 52.469 ms 0 - 19 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS8450 57.664 ms 7 - 263 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Elite Gen 5 Mobile 25.794 ms 2 - 232 MB NPU
PidNet ONNX w8a8 Qualcomm® QCM6690 215.567 ms 7 - 222 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS9075 54.995 ms 4 - 51 MB NPU
PidNet ONNX w8a8 Snapdragon® 8 Elite Mobile 45.245 ms 2 - 219 MB NPU
PidNet ONNX w8a8 Snapdragon® 7 Gen 4 Mobile 61.984 ms 7 - 232 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS7790 61.984 ms 7 - 232 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS8750 45.245 ms 2 - 219 MB NPU
PidNet ONNX w8a8 Qualcomm® QCS7181 54.825 ms 175 - 175 MB NPU
PidNet QNN_DLC float Snapdragon® X2 Elite 13.6 ms 24 - 24 MB NPU
PidNet QNN_DLC float Snapdragon® X Elite 39.147 ms 24 - 24 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Gen 3 Mobile 25.783 ms 23 - 327 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Gen 1 Mobile 75.878 ms 24 - 331 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8275 117.745 ms 24 - 243 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8550 (Proxy) 37.694 ms 24 - 26 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8450 75.878 ms 24 - 331 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Elite Mobile 18.292 ms 23 - 269 MB NPU
PidNet QNN_DLC float Qualcomm® SA8295P 52.014 ms 24 - 252 MB NPU
PidNet QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 11.969 ms 18 - 291 MB NPU
PidNet QNN_DLC float Qualcomm® SA7255P 117.745 ms 24 - 243 MB NPU
PidNet QNN_DLC float Qualcomm® QCS9075 61.104 ms 26 - 54 MB NPU
PidNet QNN_DLC float Qualcomm® QCS8750 18.292 ms 23 - 269 MB NPU
PidNet QNN_DLC float Qualcomm® QCS7181 39.147 ms 24 - 24 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® X2 Elite 25.202 ms 6 - 6 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® X Elite 60.613 ms 6 - 6 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Gen 3 Mobile 43.114 ms 6 - 266 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Gen 1 Mobile 63.839 ms 6 - 269 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8275 111.317 ms 6 - 219 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8550 (Proxy) 57.755 ms 6 - 158 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8450 63.839 ms 6 - 269 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Elite Gen 5 Mobile 24.591 ms 6 - 273 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS9075 61.722 ms 6 - 14 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® SA7255P 111.317 ms 6 - 219 MB NPU
PidNet QNN_DLC w8a8 Snapdragon® 8 Elite Mobile 43.837 ms 6 - 244 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® SA8295P 66.422 ms 6 - 223 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS8750 43.837 ms 6 - 244 MB NPU
PidNet QNN_DLC w8a8 Qualcomm® QCS7181 60.613 ms 6 - 6 MB NPU
PidNet TFLITE float Snapdragon® 8 Gen 3 Mobile 24.938 ms 2 - 325 MB NPU
PidNet TFLITE float Snapdragon® 8 Gen 1 Mobile 73.971 ms 4 - 330 MB NPU
PidNet TFLITE float Qualcomm® QCS8275 116.592 ms 3 - 232 MB NPU
PidNet TFLITE float Qualcomm® QCS8550 (Proxy) 36.097 ms 2 - 172 MB NPU
PidNet TFLITE float Qualcomm® SA8775P 141.849 ms 3 - 32 MB GPU
PidNet TFLITE float Qualcomm® SA8650P 141.849 ms 3 - 32 MB GPU
PidNet TFLITE float Qualcomm® SA8255P 141.849 ms 3 - 32 MB GPU
PidNet TFLITE float Qualcomm® QCS8450 73.971 ms 4 - 330 MB NPU
PidNet TFLITE float Snapdragon® 8 Elite Mobile 18.758 ms 2 - 252 MB NPU
PidNet TFLITE float Qualcomm® SA8295P 51.03 ms 3 - 245 MB NPU
PidNet TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 12.676 ms 2 - 273 MB NPU
PidNet TFLITE float Qualcomm® SA7255P 116.592 ms 3 - 232 MB NPU
PidNet TFLITE float Qualcomm® QCS9075 59.506 ms 0 - 45 MB NPU
PidNet TFLITE float Qualcomm® QCS8750 18.758 ms 2 - 252 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Gen 3 Mobile 37.894 ms 1 - 265 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Gen 1 Mobile 58.239 ms 1 - 265 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS6490 185.168 ms 2 - 71 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8275 98.412 ms 1 - 214 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8550 (Proxy) 50.392 ms 1 - 3 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA8775P 148.903 ms 27 - 58 MB GPU
PidNet TFLITE w8a8 Qualcomm® SA8650P 148.903 ms 27 - 58 MB GPU
PidNet TFLITE w8a8 Qualcomm® SA8255P 148.903 ms 27 - 58 MB GPU
PidNet TFLITE w8a8 Qualcomm® QCS8450 58.239 ms 1 - 265 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Elite Gen 5 Mobile 22.081 ms 0 - 267 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCM6690 236.112 ms 3 - 234 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS9075 53.51 ms 1 - 17 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA7255P 98.412 ms 1 - 214 MB NPU
PidNet TFLITE w8a8 Snapdragon® 8 Elite Mobile 69.966 ms 1 - 234 MB NPU
PidNet TFLITE w8a8 Snapdragon® 7 Gen 4 Mobile 66.736 ms 5 - 223 MB NPU
PidNet TFLITE w8a8 Qualcomm® SA8295P 57.998 ms 1 - 218 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS7790 66.736 ms 5 - 223 MB NPU
PidNet TFLITE w8a8 Qualcomm® QCS8750 69.966 ms 1 - 234 MB NPU

License

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

References

Community

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for qualcomm/PidNet