Image-to-Text
PyTorch
android

TrOCR: Optimized for Qualcomm Devices

End-to-end text recognition approach with pre-trained image transformer and text transformer models for both image understanding and wordpiece-level text generation.

This is based on the implementation of TrOCR 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.27.1 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 TrOCR 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 TrOCR on GitHub for usage instructions.

Model Details

Model Type: Model_use_case.image_to_text

Model Stats:

  • Input resolution: 320x320
  • Model checkpoint: trocr-small-stage1
  • Model size (decoder) (float): 146 MB
  • Model size (encoder) (float): 87.8 MB
  • Number of parameters (decoder): 38.3M
  • Number of parameters (encoder): 23.0M

Performance Summary

Model Runtime Precision Chipset Inference Time (ms) Peak Memory Range (MB) Primary Compute Unit
decoder ONNX float Snapdragon® X2 Elite 1.273 ms 7 - 7 MB NPU
decoder ONNX float Snapdragon® X Elite 2.072 ms 68 - 68 MB NPU
decoder ONNX float Snapdragon® 8 Gen 3 Mobile 1.454 ms 0 - 283 MB NPU
decoder ONNX float Snapdragon® 8 Gen 1 Mobile 2.723 ms 1 - 219 MB NPU
decoder ONNX float Qualcomm® Dragonwing™ IQ-8275 2.793 ms 7 - 17 MB NPU
decoder ONNX float Qualcomm® Dragonwing™ QCS8550 (Proxy) 2.112 ms 1 - 3 MB NPU
decoder ONNX float Qualcomm® QCS8450 2.723 ms 1 - 219 MB NPU
decoder ONNX float Qualcomm® Dragonwing™ IQ-9075 2.783 ms 7 - 16 MB NPU
decoder ONNX float Qualcomm® Dragonwing™ IQ-X7181 2.072 ms 68 - 68 MB NPU
decoder ONNX float Qualcomm® Dragonwing™ Q-8750 1.307 ms 0 - 195 MB NPU
decoder ONNX float Snapdragon® 8 Elite Mobile 1.307 ms 0 - 195 MB NPU
decoder ONNX float Snapdragon® 8 Elite Gen 5 Mobile 1.187 ms 2 - 179 MB NPU
decoder QNN_DLC float Snapdragon® X2 Elite 1.61 ms 7 - 7 MB NPU
decoder QNN_DLC float Snapdragon® X Elite 2.223 ms 7 - 7 MB NPU
decoder QNN_DLC float Snapdragon® 8 Gen 3 Mobile 1.383 ms 0 - 274 MB NPU
decoder QNN_DLC float Snapdragon® 8 Gen 1 Mobile 2.678 ms 2 - 217 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ IQ-8275 2.639 ms 7 - 16 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ IQ-8275 4.17 ms 5 - 105 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ QCS8550 (Proxy) 2.016 ms 4 - 177 MB NPU
decoder QNN_DLC float Qualcomm® SA8775P 2.886 ms 5 - 105 MB NPU
decoder QNN_DLC float Qualcomm® SA8650P 2.886 ms 5 - 105 MB NPU
decoder QNN_DLC float Qualcomm® SA8255P 2.886 ms 5 - 105 MB NPU
decoder QNN_DLC float Qualcomm® QCS8450 2.678 ms 2 - 217 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ IQ-9075 2.645 ms 7 - 16 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ IQ-X7181 2.223 ms 7 - 7 MB NPU
decoder QNN_DLC float Qualcomm® Dragonwing™ Q-8750 1.25 ms 0 - 188 MB NPU
decoder QNN_DLC float Qualcomm® SA7255P 4.17 ms 5 - 105 MB NPU
decoder QNN_DLC float Qualcomm® SA8295P 2.621 ms 0 - 41 MB NPU
decoder QNN_DLC float Snapdragon® 8 Elite Mobile 1.25 ms 0 - 188 MB NPU
decoder QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 1.152 ms 1 - 173 MB NPU
decoder TFLITE float Snapdragon® 8 Gen 3 Mobile 1.375 ms 0 - 280 MB NPU
decoder TFLITE float Snapdragon® 8 Gen 1 Mobile 2.443 ms 0 - 218 MB NPU
decoder TFLITE float Qualcomm® Dragonwing™ IQ-8275 2.678 ms 0 - 84 MB NPU
decoder TFLITE float Qualcomm® Dragonwing™ IQ-8275 4.215 ms 0 - 103 MB NPU
decoder TFLITE float Qualcomm® Dragonwing™ QCS8550 (Proxy) 1.952 ms 0 - 2 MB NPU
decoder TFLITE float Qualcomm® SA8775P 2.838 ms 0 - 103 MB NPU
decoder TFLITE float Qualcomm® SA8650P 2.838 ms 0 - 103 MB NPU
decoder TFLITE float Qualcomm® SA8255P 2.838 ms 0 - 103 MB NPU
decoder TFLITE float Qualcomm® QCS8450 2.443 ms 0 - 218 MB NPU
decoder TFLITE float Qualcomm® Dragonwing™ IQ-9075 2.626 ms 0 - 83 MB NPU
decoder TFLITE float Qualcomm® Dragonwing™ Q-8750 1.234 ms 0 - 189 MB NPU
decoder TFLITE float Qualcomm® SA7255P 4.215 ms 0 - 103 MB NPU
decoder TFLITE float Snapdragon® 8 Elite Mobile 1.234 ms 0 - 189 MB NPU
decoder TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 1.129 ms 0 - 177 MB NPU
encoder ONNX float Snapdragon® X2 Elite 4.549 ms 16 - 16 MB NPU
encoder ONNX float Snapdragon® X Elite 11.422 ms 47 - 47 MB NPU
encoder ONNX float Snapdragon® 8 Gen 3 Mobile 7.835 ms 0 - 200 MB NPU
encoder ONNX float Snapdragon® 8 Gen 1 Mobile 19.866 ms 0 - 317 MB NPU
encoder ONNX float Qualcomm® Dragonwing™ IQ-8275 13.966 ms 15 - 20 MB NPU
encoder ONNX float Qualcomm® Dragonwing™ QCS8550 (Proxy) 10.914 ms 0 - 57 MB NPU
encoder ONNX float Qualcomm® QCS8450 19.866 ms 0 - 317 MB NPU
encoder ONNX float Qualcomm® Dragonwing™ IQ-9075 13.355 ms 15 - 19 MB NPU
encoder ONNX float Qualcomm® Dragonwing™ IQ-X7181 11.422 ms 47 - 47 MB NPU
encoder ONNX float Qualcomm® Dragonwing™ Q-8750 5.282 ms 16 - 144 MB NPU
encoder ONNX float Snapdragon® 8 Elite Mobile 5.282 ms 16 - 144 MB NPU
encoder ONNX float Snapdragon® 8 Elite Gen 5 Mobile 4.167 ms 0 - 126 MB NPU
encoder QNN_DLC float Snapdragon® X2 Elite 5.224 ms 2 - 2 MB NPU
encoder QNN_DLC float Snapdragon® X Elite 12.056 ms 2 - 2 MB NPU
encoder QNN_DLC float Snapdragon® 8 Gen 3 Mobile 8.007 ms 0 - 188 MB NPU
encoder QNN_DLC float Snapdragon® 8 Gen 1 Mobile 19.486 ms 0 - 306 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ IQ-8275 14.267 ms 2 - 13 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ IQ-8275 37.071 ms 2 - 107 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ QCS8550 (Proxy) 11.286 ms 2 - 3 MB NPU
encoder QNN_DLC float Qualcomm® SA8775P 14.013 ms 2 - 109 MB NPU
encoder QNN_DLC float Qualcomm® SA8650P 14.013 ms 2 - 109 MB NPU
encoder QNN_DLC float Qualcomm® SA8255P 14.013 ms 2 - 109 MB NPU
encoder QNN_DLC float Qualcomm® QCS8450 19.486 ms 0 - 306 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ IQ-9075 13.793 ms 2 - 12 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ IQ-X7181 12.056 ms 2 - 2 MB NPU
encoder QNN_DLC float Qualcomm® Dragonwing™ Q-8750 5.448 ms 2 - 116 MB NPU
encoder QNN_DLC float Qualcomm® SA7255P 37.071 ms 2 - 107 MB NPU
encoder QNN_DLC float Qualcomm® SA8295P 19.696 ms 2 - 234 MB NPU
encoder QNN_DLC float Snapdragon® 8 Elite Mobile 5.448 ms 2 - 116 MB NPU
encoder QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 4.356 ms 2 - 117 MB NPU
encoder TFLITE float Snapdragon® 8 Gen 3 Mobile 7.703 ms 0 - 189 MB NPU
encoder TFLITE float Snapdragon® 8 Gen 1 Mobile 19.663 ms 5 - 310 MB NPU
encoder TFLITE float Qualcomm® Dragonwing™ IQ-8275 13.696 ms 7 - 67 MB NPU
encoder TFLITE float Qualcomm® Dragonwing™ IQ-8275 36.837 ms 7 - 119 MB NPU
encoder TFLITE float Qualcomm® Dragonwing™ QCS8550 (Proxy) 10.72 ms 7 - 9 MB NPU
encoder TFLITE float Qualcomm® SA8775P 13.486 ms 7 - 111 MB NPU
encoder TFLITE float Qualcomm® SA8650P 13.486 ms 7 - 111 MB NPU
encoder TFLITE float Qualcomm® SA8255P 13.486 ms 7 - 111 MB NPU
encoder TFLITE float Qualcomm® QCS8450 19.663 ms 5 - 310 MB NPU
encoder TFLITE float Qualcomm® Dragonwing™ IQ-9075 13.352 ms 7 - 66 MB NPU
encoder TFLITE float Qualcomm® Dragonwing™ Q-8750 5.202 ms 7 - 120 MB NPU
encoder TFLITE float Qualcomm® SA7255P 36.837 ms 7 - 119 MB NPU
encoder TFLITE float Snapdragon® 8 Elite Mobile 5.202 ms 7 - 120 MB NPU
encoder TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 4.118 ms 7 - 111 MB NPU

License

  • The license for the original implementation of TrOCR 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

Space using qualcomm/TrOCR 1

Paper for qualcomm/TrOCR