qaihm-bot commited on
Commit
7333566
·
verified ·
1 Parent(s): 3b39368

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +79 -106
README.md CHANGED
@@ -36,63 +36,64 @@ More details on model performance across various devices, can be found
36
 
37
  | Model | Device | Chipset | Target Runtime | Inference Time (ms) | Peak Memory Range (MB) | Precision | Primary Compute Unit | Target Model
38
  |---|---|---|---|---|---|---|---|---|
39
- | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | TFLITE | 41.72 ms | 1 - 132 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
40
- | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | QNN | 37.7 ms | 6 - 17 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.so) |
41
- | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | ONNX | 41.887 ms | 32 - 121 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
42
- | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | TFLITE | 30.07 ms | 14 - 72 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
43
- | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | QNN | 28.085 ms | 6 - 24 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.so) |
44
- | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | ONNX | 30.704 ms | 42 - 74 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
45
- | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | TFLITE | 29.358 ms | 14 - 48 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
46
- | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | QNN | 28.786 ms | 6 - 33 MB | FP16 | NPU | Use Export Script |
47
- | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | ONNX | 24.189 ms | 40 - 68 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
48
- | EasyOCRDetector | SA7255P ADP | SA7255P | TFLITE | 2113.984 ms | 0 - 30 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
49
- | EasyOCRDetector | SA7255P ADP | SA7255P | QNN | 2109.673 ms | 1 - 10 MB | FP16 | NPU | Use Export Script |
50
- | EasyOCRDetector | SA8255 (Proxy) | SA8255P Proxy | TFLITE | 41.306 ms | 9 - 140 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
51
- | EasyOCRDetector | SA8255 (Proxy) | SA8255P Proxy | QNN | 38.731 ms | 6 - 8 MB | FP16 | NPU | Use Export Script |
52
- | EasyOCRDetector | SA8295P ADP | SA8295P | TFLITE | 78.453 ms | 16 - 49 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
53
- | EasyOCRDetector | SA8295P ADP | SA8295P | QNN | 75.057 ms | 0 - 18 MB | FP16 | NPU | Use Export Script |
54
- | EasyOCRDetector | SA8650 (Proxy) | SA8650P Proxy | TFLITE | 41.546 ms | 10 - 144 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
55
- | EasyOCRDetector | SA8650 (Proxy) | SA8650P Proxy | QNN | 38.334 ms | 6 - 7 MB | FP16 | NPU | Use Export Script |
56
- | EasyOCRDetector | SA8775P ADP | SA8775P | TFLITE | 88.531 ms | 16 - 45 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
57
- | EasyOCRDetector | SA8775P ADP | SA8775P | QNN | 84.933 ms | 1 - 11 MB | FP16 | NPU | Use Export Script |
58
- | EasyOCRDetector | QCS8275 (Proxy) | QCS8275 Proxy | TFLITE | 2113.984 ms | 0 - 30 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
59
- | EasyOCRDetector | QCS8275 (Proxy) | QCS8275 Proxy | QNN | 2109.673 ms | 1 - 10 MB | FP16 | NPU | Use Export Script |
60
- | EasyOCRDetector | QCS8550 (Proxy) | QCS8550 Proxy | QNN | 38.797 ms | 6 - 8 MB | FP16 | NPU | Use Export Script |
61
- | EasyOCRDetector | QCS9075 (Proxy) | QCS9075 Proxy | TFLITE | 88.531 ms | 16 - 45 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
62
- | EasyOCRDetector | QCS9075 (Proxy) | QCS9075 Proxy | QNN | 84.933 ms | 1 - 11 MB | FP16 | NPU | Use Export Script |
63
- | EasyOCRDetector | QCS8450 (Proxy) | QCS8450 Proxy | TFLITE | 82.831 ms | 16 - 77 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
64
- | EasyOCRDetector | QCS8450 (Proxy) | QCS8450 Proxy | QNN | 69.737 ms | 6 - 36 MB | FP16 | NPU | Use Export Script |
65
- | EasyOCRDetector | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 38.608 ms | 6 - 6 MB | FP16 | NPU | Use Export Script |
66
- | EasyOCRDetector | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 41.643 ms | 66 - 66 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
67
- | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | TFLITE | 117.587 ms | 3 - 6 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
68
- | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | QNN | 23.252 ms | 0 - 3 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.so) |
69
- | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | ONNX | 20.753 ms | 0 - 22 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
70
- | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | TFLITE | 109.883 ms | 9 - 29 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
71
- | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | QNN | 16.886 ms | 0 - 18 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.so) |
72
- | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | ONNX | 16.816 ms | 0 - 25 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
73
- | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | TFLITE | 106.439 ms | 20 - 35 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
74
- | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | QNN | 19.025 ms | 0 - 428 MB | FP16 | NPU | Use Export Script |
75
- | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | ONNX | 14.032 ms | 0 - 22 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
76
- | EasyOCRRecognizer | SA7255P ADP | SA7255P | TFLITE | 571.291 ms | 8 - 18 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
77
- | EasyOCRRecognizer | SA7255P ADP | SA7255P | QNN | 281.893 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
78
- | EasyOCRRecognizer | SA8255 (Proxy) | SA8255P Proxy | TFLITE | 129.985 ms | 2 - 4 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
79
- | EasyOCRRecognizer | SA8255 (Proxy) | SA8255P Proxy | QNN | 23.373 ms | 0 - 2 MB | FP16 | NPU | Use Export Script |
80
- | EasyOCRRecognizer | SA8295P ADP | SA8295P | TFLITE | 218.62 ms | 6 - 23 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
81
- | EasyOCRRecognizer | SA8295P ADP | SA8295P | QNN | 39.157 ms | 0 - 18 MB | FP16 | NPU | Use Export Script |
82
- | EasyOCRRecognizer | SA8650 (Proxy) | SA8650P Proxy | TFLITE | 125.209 ms | 7 - 10 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
83
- | EasyOCRRecognizer | SA8650 (Proxy) | SA8650P Proxy | QNN | 23.218 ms | 0 - 3 MB | FP16 | NPU | Use Export Script |
84
- | EasyOCRRecognizer | SA8775P ADP | SA8775P | TFLITE | 410.407 ms | 11 - 21 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
85
- | EasyOCRRecognizer | SA8775P ADP | SA8775P | QNN | 31.266 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
86
- | EasyOCRRecognizer | QCS8275 (Proxy) | QCS8275 Proxy | TFLITE | 571.291 ms | 8 - 18 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
87
- | EasyOCRRecognizer | QCS8275 (Proxy) | QCS8275 Proxy | QNN | 281.893 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
88
- | EasyOCRRecognizer | QCS8550 (Proxy) | QCS8550 Proxy | TFLITE | 116.297 ms | 0 - 38 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
89
- | EasyOCRRecognizer | QCS8550 (Proxy) | QCS8550 Proxy | QNN | 23.278 ms | 0 - 3 MB | FP16 | NPU | Use Export Script |
90
- | EasyOCRRecognizer | QCS9075 (Proxy) | QCS9075 Proxy | TFLITE | 410.407 ms | 11 - 21 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
91
- | EasyOCRRecognizer | QCS9075 (Proxy) | QCS9075 Proxy | QNN | 31.266 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
92
- | EasyOCRRecognizer | QCS8450 (Proxy) | QCS8450 Proxy | TFLITE | 164.69 ms | 5 - 27 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
93
- | EasyOCRRecognizer | QCS8450 (Proxy) | QCS8450 Proxy | QNN | 36.284 ms | 0 - 170 MB | FP16 | NPU | Use Export Script |
94
- | EasyOCRRecognizer | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 24.48 ms | 0 - 0 MB | FP16 | NPU | Use Export Script |
95
- | EasyOCRRecognizer | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 17.61 ms | 0 - 0 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
 
96
 
97
 
98
 
@@ -156,8 +157,8 @@ Profiling Results
156
  EasyOCRDetector
157
  Device : Samsung Galaxy S23 (13)
158
  Runtime : TFLITE
159
- Estimated inference time (ms) : 41.7
160
- Estimated peak memory usage (MB): [1, 132]
161
  Total # Ops : 42
162
  Compute Unit(s) : NPU (42 ops)
163
 
@@ -165,8 +166,8 @@ Compute Unit(s) : NPU (42 ops)
165
  EasyOCRRecognizer
166
  Device : Samsung Galaxy S23 (13)
167
  Runtime : TFLITE
168
- Estimated inference time (ms) : 117.6
169
- Estimated peak memory usage (MB): [3, 6]
170
  Total # Ops : 136
171
  Compute Unit(s) : CPU (136 ops)
172
  ```
@@ -190,43 +191,26 @@ import qai_hub as hub
190
  from qai_hub_models.models.easyocr import Model
191
 
192
  # Load the model
193
- model = Model.from_pretrained()
194
- detector_model = model.detector
195
- recognizer_model = model.recognizer
196
 
197
  # Device
198
- device = hub.Device("Samsung Galaxy S23")
199
 
200
  # Trace model
201
- detector_input_shape = detector_model.get_input_spec()
202
- detector_sample_inputs = detector_model.sample_inputs()
203
 
204
- traced_detector_model = torch.jit.trace(detector_model, [torch.tensor(data[0]) for _, data in detector_sample_inputs.items()])
205
 
206
  # Compile model on a specific device
207
- detector_compile_job = hub.submit_compile_job(
208
- model=traced_detector_model ,
209
  device=device,
210
- input_specs=detector_model.get_input_spec(),
211
  )
212
 
213
  # Get target model to run on-device
214
- detector_target_model = detector_compile_job.get_target_model()
215
- # Trace model
216
- recognizer_input_shape = recognizer_model.get_input_spec()
217
- recognizer_sample_inputs = recognizer_model.sample_inputs()
218
-
219
- traced_recognizer_model = torch.jit.trace(recognizer_model, [torch.tensor(data[0]) for _, data in recognizer_sample_inputs.items()])
220
-
221
- # Compile model on a specific device
222
- recognizer_compile_job = hub.submit_compile_job(
223
- model=traced_recognizer_model ,
224
- device=device,
225
- input_specs=recognizer_model.get_input_spec(),
226
- )
227
-
228
- # Get target model to run on-device
229
- recognizer_target_model = recognizer_compile_job.get_target_model()
230
 
231
  ```
232
 
@@ -238,15 +222,11 @@ After compiling models from step 1. Models can be profiled model on-device using
238
  provisioned in the cloud. Once the job is submitted, you can navigate to a
239
  provided job URL to view a variety of on-device performance metrics.
240
  ```python
241
- detector_profile_job = hub.submit_profile_job(
242
- model=detector_target_model,
243
- device=device,
244
- )
245
- recognizer_profile_job = hub.submit_profile_job(
246
- model=recognizer_target_model,
247
  device=device,
248
  )
249
-
250
  ```
251
 
252
  Step 3: **Verify on-device accuracy**
@@ -254,20 +234,13 @@ Step 3: **Verify on-device accuracy**
254
  To verify the accuracy of the model on-device, you can run on-device inference
255
  on sample input data on the same cloud hosted device.
256
  ```python
257
- detector_input_data = detector_model.sample_inputs()
258
- detector_inference_job = hub.submit_inference_job(
259
- model=detector_target_model,
260
- device=device,
261
- inputs=detector_input_data,
262
- )
263
- detector_inference_job.download_output_data()
264
- recognizer_input_data = recognizer_model.sample_inputs()
265
- recognizer_inference_job = hub.submit_inference_job(
266
- model=recognizer_target_model,
267
  device=device,
268
- inputs=recognizer_input_data,
269
  )
270
- recognizer_inference_job.download_output_data()
271
 
272
  ```
273
  With the output of the model, you can compute like PSNR, relative errors or
 
36
 
37
  | Model | Device | Chipset | Target Runtime | Inference Time (ms) | Peak Memory Range (MB) | Precision | Primary Compute Unit | Target Model
38
  |---|---|---|---|---|---|---|---|---|
39
+ | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | TFLITE | 41.91 ms | 10 - 141 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
40
+ | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | QNN | 38.543 ms | 6 - 8 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.so) |
41
+ | EasyOCRDetector | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | ONNX | 39.323 ms | 19 - 110 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
42
+ | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | TFLITE | 30.086 ms | 16 - 69 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
43
+ | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | QNN | 28.126 ms | 6 - 24 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.so) |
44
+ | EasyOCRDetector | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | ONNX | 28.858 ms | 35 - 72 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
45
+ | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | TFLITE | 29.475 ms | 14 - 47 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
46
+ | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | QNN | 29.547 ms | 6 - 33 MB | FP16 | NPU | Use Export Script |
47
+ | EasyOCRDetector | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | ONNX | 24.527 ms | 39 - 74 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
48
+ | EasyOCRDetector | SA7255P ADP | SA7255P | TFLITE | 2114.004 ms | 15 - 44 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
49
+ | EasyOCRDetector | SA7255P ADP | SA7255P | QNN | 2109.728 ms | 2 - 11 MB | FP16 | NPU | Use Export Script |
50
+ | EasyOCRDetector | SA8255 (Proxy) | SA8255P Proxy | TFLITE | 41.396 ms | 11 - 147 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
51
+ | EasyOCRDetector | SA8255 (Proxy) | SA8255P Proxy | QNN | 39.444 ms | 6 - 9 MB | FP16 | NPU | Use Export Script |
52
+ | EasyOCRDetector | SA8295P ADP | SA8295P | TFLITE | 78.432 ms | 16 - 49 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
53
+ | EasyOCRDetector | SA8295P ADP | SA8295P | QNN | 75.075 ms | 0 - 17 MB | FP16 | NPU | Use Export Script |
54
+ | EasyOCRDetector | SA8650 (Proxy) | SA8650P Proxy | TFLITE | 41.574 ms | 12 - 148 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
55
+ | EasyOCRDetector | SA8650 (Proxy) | SA8650P Proxy | QNN | 38.407 ms | 6 - 8 MB | FP16 | NPU | Use Export Script |
56
+ | EasyOCRDetector | SA8775P ADP | SA8775P | TFLITE | 88.559 ms | 16 - 45 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
57
+ | EasyOCRDetector | SA8775P ADP | SA8775P | QNN | 84.944 ms | 1 - 11 MB | FP16 | NPU | Use Export Script |
58
+ | EasyOCRDetector | QCS8275 (Proxy) | QCS8275 Proxy | TFLITE | 2114.004 ms | 15 - 44 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
59
+ | EasyOCRDetector | QCS8275 (Proxy) | QCS8275 Proxy | QNN | 2109.728 ms | 2 - 11 MB | FP16 | NPU | Use Export Script |
60
+ | EasyOCRDetector | QCS8550 (Proxy) | QCS8550 Proxy | TFLITE | 40.574 ms | 7 - 140 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
61
+ | EasyOCRDetector | QCS8550 (Proxy) | QCS8550 Proxy | QNN | 38.257 ms | 6 - 9 MB | FP16 | NPU | Use Export Script |
62
+ | EasyOCRDetector | QCS9075 (Proxy) | QCS9075 Proxy | TFLITE | 88.559 ms | 16 - 45 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
63
+ | EasyOCRDetector | QCS9075 (Proxy) | QCS9075 Proxy | QNN | 84.944 ms | 1 - 11 MB | FP16 | NPU | Use Export Script |
64
+ | EasyOCRDetector | QCS8450 (Proxy) | QCS8450 Proxy | TFLITE | 76.952 ms | 16 - 72 MB | FP16 | NPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.tflite) |
65
+ | EasyOCRDetector | QCS8450 (Proxy) | QCS8450 Proxy | QNN | 71.123 ms | 6 - 36 MB | FP16 | NPU | Use Export Script |
66
+ | EasyOCRDetector | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 38.701 ms | 6 - 6 MB | FP16 | NPU | Use Export Script |
67
+ | EasyOCRDetector | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 40.36 ms | 66 - 66 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRDetector.onnx) |
68
+ | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | TFLITE | 127.76 ms | 2 - 4 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
69
+ | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | QNN | 23.315 ms | 0 - 11 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.so) |
70
+ | EasyOCRRecognizer | Samsung Galaxy S23 | Snapdragon® 8 Gen 2 | ONNX | 21.538 ms | 0 - 23 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
71
+ | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | TFLITE | 112.41 ms | 9 - 29 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
72
+ | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | QNN | 16.967 ms | 0 - 19 MB | FP16 | NPU | [EasyOCR.so](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.so) |
73
+ | EasyOCRRecognizer | Samsung Galaxy S24 | Snapdragon® 8 Gen 3 | ONNX | 15.089 ms | 0 - 21 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
74
+ | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | TFLITE | 103.434 ms | 20 - 35 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
75
+ | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | QNN | 18.591 ms | 0 - 427 MB | FP16 | NPU | Use Export Script |
76
+ | EasyOCRRecognizer | Snapdragon 8 Elite QRD | Snapdragon® 8 Elite | ONNX | 14.033 ms | 0 - 16 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
77
+ | EasyOCRRecognizer | SA7255P ADP | SA7255P | TFLITE | 558.999 ms | 8 - 17 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
78
+ | EasyOCRRecognizer | SA7255P ADP | SA7255P | QNN | 281.972 ms | 0 - 9 MB | FP16 | NPU | Use Export Script |
79
+ | EasyOCRRecognizer | SA8255 (Proxy) | SA8255P Proxy | TFLITE | 112.26 ms | 6 - 9 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
80
+ | EasyOCRRecognizer | SA8255 (Proxy) | SA8255P Proxy | QNN | 23.271 ms | 0 - 3 MB | FP16 | NPU | Use Export Script |
81
+ | EasyOCRRecognizer | SA8295P ADP | SA8295P | TFLITE | 212.269 ms | 11 - 29 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
82
+ | EasyOCRRecognizer | SA8295P ADP | SA8295P | QNN | 39.146 ms | 0 - 18 MB | FP16 | NPU | Use Export Script |
83
+ | EasyOCRRecognizer | SA8650 (Proxy) | SA8650P Proxy | TFLITE | 115.66 ms | 8 - 10 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
84
+ | EasyOCRRecognizer | SA8650 (Proxy) | SA8650P Proxy | QNN | 23.236 ms | 0 - 2 MB | FP16 | NPU | Use Export Script |
85
+ | EasyOCRRecognizer | SA8775P ADP | SA8775P | TFLITE | 408.093 ms | 8 - 18 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
86
+ | EasyOCRRecognizer | SA8775P ADP | SA8775P | QNN | 31.5 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
87
+ | EasyOCRRecognizer | QCS8275 (Proxy) | QCS8275 Proxy | TFLITE | 558.999 ms | 8 - 17 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
88
+ | EasyOCRRecognizer | QCS8275 (Proxy) | QCS8275 Proxy | QNN | 281.972 ms | 0 - 9 MB | FP16 | NPU | Use Export Script |
89
+ | EasyOCRRecognizer | QCS8550 (Proxy) | QCS8550 Proxy | TFLITE | 123.177 ms | 8 - 10 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
90
+ | EasyOCRRecognizer | QCS8550 (Proxy) | QCS8550 Proxy | QNN | 23.274 ms | 0 - 3 MB | FP16 | NPU | Use Export Script |
91
+ | EasyOCRRecognizer | QCS9075 (Proxy) | QCS9075 Proxy | TFLITE | 408.093 ms | 8 - 18 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
92
+ | EasyOCRRecognizer | QCS9075 (Proxy) | QCS9075 Proxy | QNN | 31.5 ms | 0 - 10 MB | FP16 | NPU | Use Export Script |
93
+ | EasyOCRRecognizer | QCS8450 (Proxy) | QCS8450 Proxy | TFLITE | 130.512 ms | 6 - 24 MB | FP32 | CPU | [EasyOCR.tflite](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.tflite) |
94
+ | EasyOCRRecognizer | QCS8450 (Proxy) | QCS8450 Proxy | QNN | 36.541 ms | 0 - 169 MB | FP16 | NPU | Use Export Script |
95
+ | EasyOCRRecognizer | Snapdragon X Elite CRD | Snapdragon® X Elite | QNN | 24.492 ms | 0 - 0 MB | FP16 | NPU | Use Export Script |
96
+ | EasyOCRRecognizer | Snapdragon X Elite CRD | Snapdragon® X Elite | ONNX | 18.355 ms | 0 - 0 MB | FP16 | NPU | [EasyOCR.onnx](https://huggingface.co/qualcomm/EasyOCR/blob/main/EasyOCRRecognizer.onnx) |
97
 
98
 
99
 
 
157
  EasyOCRDetector
158
  Device : Samsung Galaxy S23 (13)
159
  Runtime : TFLITE
160
+ Estimated inference time (ms) : 41.9
161
+ Estimated peak memory usage (MB): [10, 141]
162
  Total # Ops : 42
163
  Compute Unit(s) : NPU (42 ops)
164
 
 
166
  EasyOCRRecognizer
167
  Device : Samsung Galaxy S23 (13)
168
  Runtime : TFLITE
169
+ Estimated inference time (ms) : 127.8
170
+ Estimated peak memory usage (MB): [2, 4]
171
  Total # Ops : 136
172
  Compute Unit(s) : CPU (136 ops)
173
  ```
 
191
  from qai_hub_models.models.easyocr import Model
192
 
193
  # Load the model
194
+ torch_model = Model.from_pretrained()
 
 
195
 
196
  # Device
197
+ device = hub.Device("Samsung Galaxy S24")
198
 
199
  # Trace model
200
+ input_shape = torch_model.get_input_spec()
201
+ sample_inputs = torch_model.sample_inputs()
202
 
203
+ pt_model = torch.jit.trace(torch_model, [torch.tensor(data[0]) for _, data in sample_inputs.items()])
204
 
205
  # Compile model on a specific device
206
+ compile_job = hub.submit_compile_job(
207
+ model=pt_model,
208
  device=device,
209
+ input_specs=torch_model.get_input_spec(),
210
  )
211
 
212
  # Get target model to run on-device
213
+ target_model = compile_job.get_target_model()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
 
215
  ```
216
 
 
222
  provisioned in the cloud. Once the job is submitted, you can navigate to a
223
  provided job URL to view a variety of on-device performance metrics.
224
  ```python
225
+ profile_job = hub.submit_profile_job(
226
+ model=target_model,
 
 
 
 
227
  device=device,
228
  )
229
+
230
  ```
231
 
232
  Step 3: **Verify on-device accuracy**
 
234
  To verify the accuracy of the model on-device, you can run on-device inference
235
  on sample input data on the same cloud hosted device.
236
  ```python
237
+ input_data = torch_model.sample_inputs()
238
+ inference_job = hub.submit_inference_job(
239
+ model=target_model,
 
 
 
 
 
 
 
240
  device=device,
241
+ inputs=input_data,
242
  )
243
+ on_device_output = inference_job.download_output_data()
244
 
245
  ```
246
  With the output of the model, you can compute like PSNR, relative errors or