PP-OCRv6-tiny for Torq (SL2619 NPU)

PP-OCRv6-tiny optical character recognition compiled for the Synaptics Torq NPU: DBNet text detection followed by CTC text recognition. Both stages run on the NPU. Used by the ppocr demo in torq-examples.

The recognition dictionary is Chinese + English (6,904 characters), so Latin text, digits and punctuation decode natively; Japanese, Korean, Cyrillic and Arabic are not covered.

Input — samples/sample.jpg NPU output — boxes + recognized text

All ten lines are read correctly at confidence ≥ 0.966, in 1.7 s end to end on an SL2619.

Files

File Purpose
ppocr_det_800x608.vmfb Detection (DBNet), static 800×608 bf16 input
rec_buckets/rec_w320.vmfb Recognition, 48×320 lines
rec_buckets/rec_w640.vmfb Recognition, 48×640 lines
rec_buckets/rec_w1280.vmfb Recognition, 48×1280 lines
rec_buckets/rec_w2432.vmfb Recognition, 48×2432 lines
ppocr_rec.yml Recognizer character dictionary
ppocr_det_dynamic.onnx fp32 detection, CPU reference for accuracy checks
ppocr_rec_dynamic.onnx fp32 recognition, CPU reference for accuracy checks
samples/sample.jpg Sample café menu card, 10 text lines

Why four recognition models

Recognition input width is static per vmfb. Each detected line is routed to the narrowest bucket it fits in, so a short label is padded to 320 rather than to the widest width. Lines longer than 2432 clamp to the widest bucket.

Usage

git clone https://github.com/synaptics-torq/torq-examples
cd torq-examples
python setup_demos.py ppocr

cd ppocr
python src/infer.py \
  --image  ../models/Synaptics/paddle-paddle-tiny/samples/sample.jpg \
  --models ../models/Synaptics/paddle-paddle-tiny \
  --save-image

Either stage can be switched to ONNX Runtime with --det-backend ort / --rec-backend ort (plus the matching --det-onnx / --rec-onnx) to compare NPU output against a CPU reference.

Measured on SL2619

samples/sample.jpg, 912×1200, 10 text lines detected:

Stage Time
Detection (800×608) ~0.53 s
Recognition (10 lines, bucketed) ~1.19 s

Recognition scales with the number of detected lines, because each line is a separate invocation — the bucket models are compiled with a static batch of 1. A dense page of 99 lines takes roughly 22 s.

About sample.jpg

A 912×1200 café menu card, rendered synthetically in DejaVu Serif rather than photographed, so it carries no third-party image licensing.

Its width/height ratio of 0.76 matches the detector's static 608×800 input. Preprocessing resizes straight to that shape without preserving aspect, so an off-ratio image reaches the model stretched — worth matching if you swap in your own sample.

Recognized output, all ten lines at confidence ≥ 0.966:

  1   [0.991] BLUE DOOR CAFE          6   [0.995] Smoked Salmon Bagel  9.75
  2   [0.996] all day breakfast       7   [1.000] DRINKS
  3   [0.999] BREAKFAST               8   [0.975] Espresso  2.75
  4   [0.996] Avocado Toast  6.50     9   [0.966] Fresh Orange Juice  4.00
  5   [0.996] Buttermilk Pancakes  7.00  10  [0.993] open 7am - 3pm daily
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