TinyOCR 0.1.0

English-first, offline CPU OCR with 3.10 MB of ONNX model files. This is a compressed pretrained PaddleOCR PP-OCRv6 model pair, not a newly trained TinyOCR student. The detector is unchanged; the recognizer stores selected weights as per-channel int8 values with constant decoding to float32. Computation remains float32. No training or calibration was performed. The dataset tag describes evaluation, not TinyOCR training.

Use

Python 3.12:

pip install tinyocr-onnx==0.1.0
tinyocr receipt.png
tinyocr receipt.png --json
from tinyocr import TinyOCR

ocr = TinyOCR()
result = ocr("receipt.png")
print(result.text)
print(result.lines)
print(result.words)

The wheel bundles these exact model files and verifies their SHA-256 hashes. It needs no model download or HF account after installation. Dependencies and runtime memory are larger than the model files. Inputs are local image paths; outputs contain text, line polygons/xyxy bounds and native word polygons in original-image pixels. See the runtime documentation.

Artifacts and provenance

File Bytes SHA-256
PP-OCRv6_det_tiny.onnx 1,829,618 f42c0fbd294d95eac1a550e131b277dac97462c8025fa4b6c3cec1b7894bd3d5
PP-OCRv6_rec_tiny.onnx 1,269,595 38cd559cb4b24c5056592d981b13e086f9472db9b3c8968296f0d0c2b4a65531

Total: 3,099,213 bytes, versus 6,319,431 original bytes (50.957% smaller). Original recognizer SHA-256: e16e242de5937ad92609223f19bc2aff3727ee40b095f996907c24749bad251b. Source ONNX files came from RapidAI/RapidOCR v3.10.0 on ModelScope. NOTICE gives the exact URLs and upstream attribution. export-provenance.json records modified tensors; the export code is in the source repository.

Measured results

5,089 images per model with 120 prior-parent exclusions. These are comparative development results; public pretraining overlap is unknown.

Dataset Images Original E2E F1 (%) TinyOCR E2E F1 (%) Candidate p50 change
SROIE 341 41.036 40.779 +21.23%
TextOCR 3,027 43.412 43.334 -6.91%
HierText 1,721 40.330 40.204 +16.16%

Small observed E2E F1 losses of 0.079–0.257 percentage points, not exact accuracy preservation. SROIE/TextOCR use the shared HierText polygon evaluator, not their native leaderboard protocols. HierText uses its native word evaluator on the overlap-filtered subset. Latency is one pass per model on the same Windows CPU environment, not a repeated speed study. Peak process working set was 498.84 MiB original / 500.10 MiB candidate. No general speedup or RAM saving is claimed. See the full benchmark for counts, source rights, protocols, timing and caveats. Images/labels are not included in this model repository.

Configuration and limitations

RapidOCR 3.10.0; ONNX Runtime 1.31.0; one-thread CPU sessions and OpenCV; detector ImageNet normalization, maximum side 960, threshold 0.2, box threshold 0.4, unclip 1.4, no dilation; recognizer batch one; no orientation classifier. The installed API matches the frozen research text/line/word adapter on three development fixtures. English-first evaluation does not establish multilingual performance. Rotations, difficult scenes and complex layouts can fail. Reading order is geometric, not layout understanding. Native word polygons can have zero area; they are retained for benchmark parity. No mobile performance claim is made. A consumed final comparison is preserved in the research repo; future tuning needs a fresh, independently labeled final partition.

License and links

Apache-2.0 for the runtime and PaddleOCR-derived models. See LICENSE and NOTICE for PaddlePaddle / RapidAI attribution and the recognizer modification notice. No affiliation with or endorsement by PaddlePaddle or RapidAI is implied.

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

Model tree for maureesewilliams/tinyocr

Quantized
(3)
this model

Dataset used to train maureesewilliams/tinyocr