PP-OCRv5

PP-OCRv5 est le pipeline de détection et de reconnaissance de texte de PaddleOCR : un détecteur à binarisation différentiable localise les quadrilatères de texte et un module de reconnaissance SVTR/CTC les lit. LibreYOLO le porte vers PyTorch en deux niveaux.

Tâches
ocr
Tailles
t, l at 960 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
PaddleOCR (PP-OCRv5) par PaddlePaddle Authors, Apache-2.0. Article, source
Licences
Code Apache-2.0, poids Apache-2.0. Usage commercial

Installer

PP-OCRv5 ne nécessite aucun extra en plus du paquet de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE, save=True) for text, conf in zip(result.ocr.texts, result.ocr.conf):    print(text, float(conf))
CLI
libreyolo predict model=LibrePPOCRl-ocr.pt source=receipt.jpg save=True
Quadrilatères
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE) # Polygones (N, 4, 2) dans l'ordre de lecture : haut gauche, haut droit,# bas droit, bas gauche. Les quadrilatères de détection sont de vrais# polygones (texte pivoté), ils remplissent result.ocr, pas result.boxes.print(result.ocr.data.shape)print(result.ocr.det_conf)

Chaque checkpoint réunit les deux étapes, la détection et la reconnaissance, dans un seul fichier .pt, tandis que le jeu de caractères de reconnaissance et les valeurs par défaut du pipeline figurent dans les métadonnées du checkpoint. Le module de reconnaissance lit le chinois simplifié et traditionnel, l'anglais, le japonais et le pinyin à l'aide d'un seul dictionnaire. result.ocr est une charge utile OCRRegions : .data contient les polygones à quatre points, .texts les transcriptions, .conf le score de reconnaissance de chaque région et .det_conf le score de détection. Les sources contenant plusieurs images s'exécutent séquentiellement : le pipeline à deux étapes ne forme pas de batch entre les images. Consultez la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Deux niveaux sont proposés : t, construit sur les backbones plus légers PP-LCNetV3/PP-OCRv5_mobile pour le CPU, et l, construit sur les backbones serveur PP-HGNetV2 pour une meilleure exactitude. Les deux niveaux exécutent la détection avec une limite fixe sur le côté long et reconnaissent les recadrages par batch ; rec_batch contrôle le nombre de recadrages transmis au module de reconnaissance à chaque passe.

Valider

val() mesure le pipeline sur un dossier d'images accompagné d'un fichier labels/<split>.jsonl, ou sur le YAML de dataset équivalent. Chaque étiquette répertorie les polygones des régions de texte et leurs transcriptions pour l'image correspondante. La méthode rapporte la moyenne harmonique de détection (précision/rappel/F1 associés par IoU), le F1 de bout en bout (moyenne harmonique plus correspondance exacte de la transcription après normalisation, la métrique fitness du checkpoint) et 1-NED, la distance d'édition normalisée moyenne sur les paires correspondantes.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibrePPOCRl-ocr.pt")metrics = model.val(data="my-dataset") print(metrics["metrics/det_hmean"])print(metrics["metrics/e2e_f1"])       # métrique principaleprint(metrics["metrics/rec_1-NED"])
CLI
libreyolo val model=LibrePPOCRl-ocr.pt data=my-dataset

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ocrocr to ONNX : non pris en chargeocr to TorchScript : non pris en chargeocr to ExecuTorch : non pris en chargeocr to TensorRT : non pris en chargeocr to OpenVINO : non pris en chargeocr to Paddle : non pris en chargeocr to MNN : non pris en chargeocr to RKNN : non pris en chargeocr to ncnn : non pris en chargeocr to TFLite : non pris en chargeocr to CoreML : non pris en chargeocr to Core AI : non pris en charge

PP-OCRv5 est un pipeline à deux réseaux, où détection et reconnaissance se déplacent ensemble, et non un graphe unique pouvant être tracé. L'export n'est pas implémenté : aucun format n'est encore pris en charge. Effectuez directement le fine-tuning du code d'entraînement amont Apache-2.0 et convertissez le résultat avec weights/convert_ppocr_weights.py si vous avez besoin d'un checkpoint hors de ce format.

Checkpoints

Tous les fichiers de poids publiés pour cette famille.

FichierEntrée (px)Licence des poids
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
Licence du projet d'origine
Apache-2.0
Source du projet d'origine
github.com/PaddlePaddle/PaddleOCR
Code de LibreYOLO
MIT
Poids
Apache-2.0, republiés sur huggingface.co/LibreYOLO
Interprétation
Apache-2.0 is a permissive license: the architecture, the officially released PP-OCRv5 checkpoints this port converts, and LibreYOLO's own PyTorch port may all be used, modified and redistributed, including commercially, provided the license text and attribution notices travel with any copy. It grants a patent license and places no obligation on your own application code.

Citation

@misc{cui2025paddleocr30technicalreport,
      title={PaddleOCR 3.0 Technical Report}, 
      author={Cheng Cui and Ting Sun and Manhui Lin and Tingquan Gao and Yubo Zhang and Jiaxuan Liu and Xueqing Wang and Zelun Zhang and Changda Zhou and Hongen Liu and Yue Zhang and Wenyu Lv and Kui Huang and Yichao Zhang and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
      year={2025},
      eprint={2507.05595},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2507.05595}, 
}

Copié depuis le bloc de citation des auteurs sur github.com/PaddlePaddle/PaddleOCR#citation.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.