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.37, ONNX Runtime 1.23.0 | Download |
| QNN_DLC | float | Universal | QAIRT 2.42 | Download |
| TFLITE | float | Universal | QAIRT 2.42, TFLite 2.17.0 | Download |
| TFLITE | w8a8 | Universal | QAIRT 2.42, 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® X Elite | 38.44 ms | 35 - 35 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 27.117 ms | 2 - 189 MB | NPU |
| EasyOCRDetector | ONNX | float | Qualcomm® QCS8550 (Proxy) | 37.395 ms | 0 - 44 MB | NPU |
| EasyOCRDetector | ONNX | float | Qualcomm® QCS9075 | 70.247 ms | 5 - 14 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 21.805 ms | 3 - 120 MB | NPU |
| EasyOCRDetector | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 16.439 ms | 7 - 127 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® X Elite | 41.089 ms | 6 - 6 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 28.997 ms | 6 - 240 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 275.48 ms | 1 - 163 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 39.593 ms | 6 - 8 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA8775P | 333.342 ms | 1 - 161 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 79.658 ms | 6 - 260 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA7255P | 275.48 ms | 1 - 163 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Qualcomm® SA8295P | 75.708 ms | 0 - 179 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 22.982 ms | 0 - 163 MB | NPU |
| EasyOCRDetector | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 17.144 ms | 6 - 170 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 27.187 ms | 1 - 250 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 270.523 ms | 0 - 170 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 36.985 ms | 1 - 3 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA8775P | 67.921 ms | 1 - 173 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS9075 | 70.05 ms | 0 - 49 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 77.087 ms | 1 - 253 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA7255P | 270.523 ms | 0 - 170 MB | NPU |
| EasyOCRDetector | TFLITE | float | Qualcomm® SA8295P | 73.836 ms | 1 - 179 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 21.938 ms | 1 - 171 MB | NPU |
| EasyOCRDetector | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 16.49 ms | 1 - 173 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 7.289 ms | 0 - 214 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS6490 | 50.848 ms | 0 - 24 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 36.064 ms | 0 - 156 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 9.681 ms | 0 - 3 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA8775P | 11.047 ms | 0 - 156 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS9075 | 11.451 ms | 0 - 24 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCM6690 | 233.472 ms | 0 - 210 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 14.908 ms | 0 - 209 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA7255P | 36.064 ms | 0 - 156 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Qualcomm® SA8295P | 19.114 ms | 0 - 152 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 5.789 ms | 0 - 157 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 19.362 ms | 0 - 174 MB | NPU |
| EasyOCRDetector | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 4.335 ms | 0 - 161 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® X Elite | 28.731 ms | 10 - 10 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 21.212 ms | 0 - 434 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Qualcomm® QCS8550 (Proxy) | 28.218 ms | 0 - 15 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Qualcomm® QCS9075 | 31.354 ms | 0 - 3 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Elite For Galaxy Mobile | 16.956 ms | 0 - 378 MB | NPU |
| EasyOCRRecognizer | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 15.623 ms | 0 - 405 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® X Elite | 16.274 ms | 0 - 0 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 12.143 ms | 0 - 785 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8275 (Proxy) | 47.77 ms | 0 - 670 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8550 (Proxy) | 16.494 ms | 0 - 3 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA8775P | 21.009 ms | 0 - 672 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® QCS8450 (Proxy) | 22.017 ms | 0 - 389 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA7255P | 47.77 ms | 0 - 670 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Qualcomm® SA8295P | 24.836 ms | 0 - 335 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Elite For Galaxy Mobile | 10.358 ms | 0 - 671 MB | NPU |
| EasyOCRRecognizer | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 10.514 ms | 0 - 732 MB | NPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 75.235 ms | 17 - 27 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8275 (Proxy) | 354.574 ms | 1 - 10 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8550 (Proxy) | 78.386 ms | 6 - 8 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA8775P | 164.135 ms | 9 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS9075 | 132.963 ms | 4 - 33 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® QCS8450 (Proxy) | 92.185 ms | 6 - 18 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA7255P | 354.574 ms | 1 - 10 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Qualcomm® SA8295P | 126.378 ms | 7 - 12 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Elite For Galaxy Mobile | 79.698 ms | 7 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 52.873 ms | 11 - 21 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 54.104 ms | 5 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS6490 | 152.742 ms | 3 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8275 (Proxy) | 299.941 ms | 6 - 14 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8550 (Proxy) | 56.204 ms | 5 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA8775P | 139.386 ms | 8 - 13 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS9075 | 105.864 ms | 3 - 22 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCM6690 | 162.227 ms | 7 - 12 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® QCS8450 (Proxy) | 69.267 ms | 6 - 17 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA7255P | 299.941 ms | 6 - 14 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Qualcomm® SA8295P | 98.815 ms | 5 - 11 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Elite For Galaxy Mobile | 63.653 ms | 8 - 21 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 85.371 ms | 8 - 15 MB | CPU |
| EasyOCRRecognizer | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 40.636 ms | 9 - 19 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.
