PP-OCRv5

PP-OCRv5 es el pipeline de detección y reconocimiento de texto de PaddleOCR: un detector de binarización diferenciable localiza los cuadriláteros de texto y un reconocedor SVTR/CTC los lee. LibreYOLO lo porta a PyTorch en dos niveles.

Tareas
ocr
Tamaños
t, l at 960 px
Instalación
pip install libreyolo
Nivel de compatibilidad
Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
Proyecto original
PaddleOCR (PP-OCRv5) de PaddlePaddle Authors, Apache-2.0. Artículo, fuente
Licencias
Código Apache-2.0, pesos Apache-2.0. Uso comercial

Instalación

PP-OCRv5 no necesita ningún extra más allá del paquete base.

bash
pip install libreyolo

Predicción

Los pesos se descargan de Hugging Face en el primer uso y quedan cacheados localmente.

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
Cuadriláteros
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE) # polígonos (N, 4, 2) en orden de lectura: arriba-izquierda,# arriba-derecha, abajo-derecha, abajo-izquierda. Los cuadriláteros de# detección son polígonos reales (texto rotado), así que rellenan# result.ocr, no result.boxes.print(result.ocr.data.shape)print(result.ocr.det_conf)

Cada checkpoint agrupa las dos etapas, detección y reconocimiento, en un único archivo .pt, con el charset de reconocimiento y los valores por defecto del pipeline guardados en los metadatos del checkpoint. El reconocedor lee chino simplificado y tradicional, inglés, japonés y pinyin con un único diccionario. result.ocr es un payload OCRRegions: .data contiene los polígonos de cuatro puntos, .texts las transcripciones, .conf la puntuación de reconocimiento de cada región y .det_conf la puntuación de detección. Las fuentes con varias imágenes se procesan de forma secuencial: el pipeline de dos etapas no agrupa en batch entre imágenes. Consulta predicción para fuentes, streaming y manejo de resultados.

Variantes

Dos niveles: t, construido sobre los backbones más ligeros PP-LCNetV3/PP-OCRv5_mobile para uso en CPU, y l, construido sobre backbones de servidor PP-HGNetV2 para mayor precisión. Ambos niveles ejecutan la detección con un límite fijo del lado largo y reconocen los recortes en batches; rec_batch controla cuántos recortes pasan por el reconocedor en cada forward pass.

Validación

val() mide el pipeline contra un directorio de imágenes más un archivo labels/<split>.jsonl, o el YAML de dataset equivalente, donde cada etiqueta enumera los polígonos de las regiones de texto de cada imagen y sus transcripciones. Informa del hmean de detección (precisión/recall/F1 emparejados por IoU), el F1 end-to-end (el hmean más una coincidencia exacta de la transcripción tras normalizarla, la métrica de fitness del checkpoint) y 1-NED, la distancia de edición normalizada media sobre los pares emparejados.

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étrica principalprint(metrics["metrics/rec_1-NED"])
CLI
libreyolo val model=LibrePPOCRl-ocr.pt data=my-dataset

Exportación

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ocrocr to ONNX: no compatibleocr to TorchScript: no compatibleocr to ExecuTorch: no compatibleocr to TensorRT: no compatibleocr to OpenVINO: no compatibleocr to Paddle: no compatibleocr to MNN: no compatibleocr to RKNN: no compatibleocr to ncnn: no compatibleocr to TFLite: no compatibleocr to CoreML: no compatibleocr to Core AI: no compatible

PP-OCRv5 es un pipeline de dos redes, detección y reconocimiento avanzando juntos, no un único grafo trazable, y la exportación no está implementada para él: todavía no hay ningún formato soportado. Haz fine-tuning directamente del código de entrenamiento upstream con licencia Apache-2.0 y convierte el resultado con weights/convert_ppocr_weights.py si necesitas un checkpoint fuera de este formato.

Checkpoints

Todos los archivos de pesos publicados de esta familia.

ArchivoEntrada (px)Licencia de los pesos
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.

Licencia

Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.

Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.

Trabajo original
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
Licencia del proyecto original
Apache-2.0
Fuente del proyecto original
github.com/PaddlePaddle/PaddleOCR
Código de LibreYOLO
MIT
Pesos
Apache-2.0, republicados en huggingface.co/LibreYOLO
Interpretación
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.

Cita

@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}, 
}

Copiado del bloque de cita de los autores en github.com/PaddlePaddle/PaddleOCR#citation.

Verificado con LibreYOLO v1.5.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.