| --- |
| license: apache-2.0 |
| tags: |
| - libreyolo |
| - ocr |
| - text-detection |
| - text-recognition |
| - pp-ocr |
| --- |
| |
| # LibrePPOCRl-ocr |
|
|
| PP-OCRv5 server tier (quality tier) converted to the LibreYOLO checkpoint |
| format: one composite `.pt` bundling the DB text detector (`det.*`) and the |
| CTC text recognizer (`rec.*`) plus the PP-OCRv5 recognition dictionary as |
| `charset` metadata. Recognition covers Simplified Chinese, Traditional |
| Chinese, English, Japanese, and Chinese pinyin with one dictionary and one |
| model. |
|
|
| ```python |
| from libreyolo import LibreYOLO |
| |
| model = LibreYOLO("LibrePPOCRl-ocr.pt") |
| r = model("receipt.jpg") |
| for poly, text, conf in zip(r.ocr.polygons, r.ocr.texts, r.ocr.conf): |
| print(text, float(conf)) |
| ``` |
|
|
| ## Provenance |
|
|
| Converted with `weights/convert_ppocr_weights.py` from the official Apache-2.0 |
| PP-OCRv5 training checkpoints released by the |
| [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) project |
| (paper: [PaddleOCR 3.0 Technical Report](https://arxiv.org/abs/2507.05595)): |
|
|
| | Upstream checkpoint | SHA-256 | |
| |---|---| |
| | `PP-OCRv5_server_det_pretrained.pdparams` | `2802f7d4748ea592819ae4550c195c5bdb43755dfdb5ebd25e01bb4d885aebc9` | |
| | `PP-OCRv5_server_rec_pretrained.pdparams` | `8ce5dfc1294af6ee680d562841a9909257d6a9a9242387c2e8dc50ea8f647143` | |
|
|
| This file: `LibrePPOCRl-ocr.pt`, SHA-256 |
| `6a58b6a2af947a40d48e50c2aa2f050b300d10367bdba5840993b900bf59358e`. |
|
|
| The conversion is a name-mapped metadata wrap (batch-norm buffer renames, |
| Linear transposes, `det.`/`rec.` namespacing); learned parameters are |
| unchanged. Stage parity vs the official PP-OCRv5 inference graphs on |
| identical input tensors: detection maps match to <= 1e-4 and recognition |
| probabilities to <= 6e-5 with identical argmax. |
|
|
| Code and weights are used under the |
| [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0). |
| Copyright (c) 2020 PaddlePaddle Authors. |
|
|