File size: 2,416 Bytes
697af99 8b0eb8b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | ---
license: apache-2.0
---
# Introduction
This repository hosts [PaddleOCR PP-OCRv6](https://github.com/PaddlePaddle/PaddleOCR) (the
[detector](https://huggingface.co/PaddlePaddle/PP-OCRv6_small_det_safetensors) +
[recognizer](https://huggingface.co/PaddlePaddle/PP-OCRv6_small_rec_safetensors)) for the
[React Native ExecuTorch](https://www.npmjs.com/package/react-native-executorch) library,
exported to `.pte` for the **ExecuTorch** runtime (XNNPACK, CoreML and Vulkan backends).
If you'd like to run these models in your own ExecuTorch runtime, refer to the
[official documentation](https://pytorch.org/executorch/stable/index.html) for setup instructions.
PP-OCRv6 is the **primary** OCR pipeline — smallest and fastest. It ships as **one fused `.pte`** per backend, using **static bucketed
methods**. The `.pte` is a pure tensor→tensor function; all pre/post-processing (resize,
normalize, DBNet box decode, perspective crop, CTC decode) is the client's job and is driven by
`config.json`. One model covers **all languages** (18 709-entry multilingual charset).
## Backends
| backend | target | detect | recognize |
|---|---|---|---|
| `xnnpack` | CPU | int8 (DBNet) | fp32 (SVTR) |
| `coreml` | Apple ANE | weight-only int8 | weight-only int8 |
| `vulkan` | Android GPU | fp16 (GPU) | fp32 on **XNNPACK** (mixed-delegate) |
> **Vulkan is mixed-delegate**: DBNet detects on the GPU, but the SVTR recognizer runs on the
> CPU (XNNPACK). int8 SVTR is lossy on the 18 709-token vocab — so the recognizer stays fp32 on CPU for correctness.
## Buckets
`is_bucketed()` reports `[detect sides ; recognize widths]`:
- **detect** (square sides ÷32): `640, 960, 1280` → `detect_640 / detect_960 / detect_1280`
(+ a `1280×640` portrait method `detect_640x1280`)
- **recognize** (widths ÷8, height 48): `160, 320, 480, 640` → `recognize_160 … recognize_640`
Detector input is RGB, normalized `(x/255 − 0.5)/0.5`.
## Compatibility
If you intend to use these models outside of React Native ExecuTorch, make sure your runtime is
compatible with the **ExecuTorch** version used to export the `.pte` files. For more details, see
the compatibility note in the
[ExecuTorch GitHub repository](https://github.com/pytorch/executorch/blob/main/runtime/COMPATIBILITY.md).
If you work with React Native ExecuTorch, the library constants guarantee compatibility with the
runtime used behind the scenes.
|