EasyOCR: Optimized for Qualcomm Devices
EasyOCR is a machine learning model that can recognize text in images. It supports 80+ supported languages and all popular writing scripts.
This is based on the implementation of EasyOCR 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 |
| 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 EasyOCR 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 EasyOCR on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.image_to_text
Model Stats:
- Model checkpoint: easyocr-small-stage1
- Input resolution: 608x800
- Number of parameters (EasyOCRDetector): 20.8M
- Model size (EasyOCRDetector) (float): 79.2 MB
- Number of parameters (EasyOCRRecognizer): 3.84M
- Model size (EasyOCRRecognizer) (float): 14.7 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 16.151 ms | 7 - 176 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® X2 Elite | 19.992 ms | 36 - 36 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® X Elite | 38.307 ms | 35 - 35 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 27.266 ms | 7 - 245 MB | NPU |
| EasyOCRDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 36.978 ms | 6 - 47 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 21.901 ms | 3 - 169 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 5.362 ms | 2 - 163 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® X2 Elite | 6.728 ms | 20 - 20 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® X Elite | 13.693 ms | 19 - 19 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 9.747 ms | 2 - 219 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Qualcomm® QCS6490 | 950.747 ms | 224 - 243 MB | CPU |
| EasyOCRDetector | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 13.047 ms | 1 - 34 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Qualcomm® QCM6690 | 926.713 ms | 234 - 241 MB | CPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 7.765 ms | 2 - 159 MB | NPU |
| EasyOCRDetector | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 914.685 ms | 232 - 240 MB | CPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 16.45 ms | 6 - 183 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® X2 Elite | 20.593 ms | 6 - 6 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® X Elite | 40.847 ms | 6 - 6 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 28.666 ms | 6 - 248 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 274.95 ms | 1 - 172 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 39.167 ms | 6 - 7 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA8775P | 70.214 ms | 1 - 172 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 81.927 ms | 6 - 264 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA7255P | 274.95 ms | 1 - 172 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA8295P | 77.609 ms | 0 - 184 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 22.538 ms | 6 - 179 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 16.516 ms | 1 - 184 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 28.713 ms | 1 - 256 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 275.033 ms | 1 - 179 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 39.287 ms | 1 - 3 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA8775P | 70.273 ms | 1 - 179 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS9075 | 75.445 ms | 0 - 49 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 81.278 ms | 1 - 273 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA7255P | 275.033 ms | 1 - 179 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA8295P | 73.81 ms | 1 - 187 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 22.449 ms | 0 - 181 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 4.462 ms | 0 - 159 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 7.161 ms | 0 - 214 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 51.316 ms | 0 - 24 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 35.727 ms | 0 - 155 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 9.555 ms | 0 - 3 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 10.057 ms | 0 - 157 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 11.713 ms | 0 - 24 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 248.35 ms | 0 - 207 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 14.75 ms | 0 - 214 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 35.727 ms | 0 - 155 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 18.922 ms | 0 - 153 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 5.763 ms | 0 - 158 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 18.917 ms | 0 - 173 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 10.468 ms | 0 - 791 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® X2 Elite | 11.979 ms | 13 - 13 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® X Elite | 16.185 ms | 11 - 11 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 12.055 ms | 0 - 765 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Qualcomm® QCS8550 (Proxy) | 16.427 ms | 0 - 18 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 10.221 ms | 0 - 633 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 9.251 ms | 1 - 875 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® X2 Elite | 10.786 ms | 14 - 14 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® X Elite | 12.315 ms | 10 - 10 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 8.968 ms | 2 - 880 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Qualcomm® QCS6490 | 119.029 ms | 21 - 26 MB | CPU |
| EasyOCRRecognizer | ONNX | w8a8 | Qualcomm® QCS8550 (Proxy) | 12.159 ms | 0 - 22 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Qualcomm® QCM6690 | 56.12 ms | 19 - 26 MB | CPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 8.334 ms | 2 - 712 MB | NPU |
| EasyOCRRecognizer | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 41.301 ms | 20 - 27 MB | CPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 10.455 ms | 0 - 722 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® X2 Elite | 12.612 ms | 0 - 0 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® X Elite | 16.3 ms | 0 - 0 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 12.513 ms | 0 - 790 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 47.722 ms | 0 - 670 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 16.737 ms | 0 - 3 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA8775P | 21.111 ms | 0 - 672 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 22.203 ms | 0 - 405 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA7255P | 47.722 ms | 0 - 670 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA8295P | 24.846 ms | 0 - 338 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 10.376 ms | 0 - 674 MB | NPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 53.252 ms | 11 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 74.433 ms | 6 - 14 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 341.879 ms | 9 - 19 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 78.909 ms | 7 - 42 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA8775P | 166.375 ms | 9 - 14 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS9075 | 131.448 ms | 4 - 33 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 91.604 ms | 6 - 16 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA7255P | 341.879 ms | 9 - 19 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA8295P | 120.436 ms | 8 - 13 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 82.964 ms | 7 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 40.08 ms | 9 - 19 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 52.851 ms | 5 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS6490 | 143.25 ms | 3 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 308.497 ms | 8 - 17 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 55.371 ms | 6 - 31 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA8775P | 140.644 ms | 9 - 14 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS9075 | 107.774 ms | 3 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCM6690 | 164.66 ms | 6 - 12 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 62.387 ms | 6 - 16 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA7255P | 308.497 ms | 8 - 17 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA8295P | 101.721 ms | 5 - 11 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 62.018 ms | 8 - 20 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 95.782 ms | 14 - 21 MB | CPU |
License
- The license for the original implementation of EasyOCR 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.
