bcdl-ppocr-v5 / README.md
ruisv's picture
Compiled BPU models for RDK S100/S100P
143005d verified
|
Raw
History Blame Contribute Delete
3.1 kB
metadata
license: apache-2.0
library_name: bcdl
tags:
  - rdk-s100
  - rdk-s100p
  - d-robotics
  - bpu
  - hbm
  - ocr
  - text-recognition

PP-OCRv5 for RDK S100/S100P β€” detection + recognition + angle

Compiled BPU models (.hbm) for the D-Robotics RDK S100 / S100P, ready to load β€” no ONNX export, no calibration, no hb_compile. Built and measured with BCDL, a C++17 inference and media library for the RDK S-series with Python bindings.

Upstream: PaddleOCR PP-OCRv5 server

Redistributable, including commercially. The licence chain was checked on the code, the pretrained weights it started from, and the data it was trained on β€” all three, because a permissive repository badge does not by itself say anything about the weights. See Licence.

Files

file what it is
ppocrv5_server_det_960x960.hbm text detection, 960x960 β€” 33.7 MB
ppocrv5_server_rec_48x320.hbm recognition, 48x320 β€” 24.8 MB
ppocrv5_lcnet_cls_80x160.hbm textline angle 0/180 β€” 2.3 MB
ppocr_keys_v5_18385.txt dictionary β€” required by the recogniser

Measured on an S100P

stage latency throughput
detection 19.86 ms 50 FPS
recognition 4.83 ms 207 FPS
angle classifier 0.37 ms 2710 FPS

hrt_model_exec perf, one thread, minimum of three runs, on a board first gated against its own previously recorded numbers. BPU time only β€” CPU pre/post-processing is on top and is listed per task in BCDL's benchmark results.

Use it

conda install -c https://mirrors.ruis.ai/conda -c conda-forge bcdl
import bcdl
engine = bcdl.Engine("ppocrv5_server_det_960x960.hbm")
print(engine.input_shape(0), engine.output_shape(0))

Each task has a decoder in BCDL that turns those raw outputs into boxes, keypoints, masks, disparity or text β€” see the Python API (δΈ­ζ–‡).

What to know before deploying

Prefer v6 unless you need something here. The v6 package is faster and more accurate for detection and recognition. This one is kept for two reasons: it is a fallback, and its angle classifier is the one v6 does not ship β€” the same file appears in the v6 package for that reason.

The dictionary is version-specific: v5 recognises 18385 classes. The matching key file ships here.

Licence

Apache-2.0, on the code and on every model card.

BCDL itself is Apache-2.0 and is unrelated to these terms β€” it is a general-purpose runtime that loads any .hbm. The licence above constrains these weights and this compiled artefact.

The conversion recipe β€” ONNX export, calibration, hb_compile config and the acceptance numbers β€” is public in bcdl-model-zoo, so this build can be reproduced or retargeted rather than taken on trust.