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.
- 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.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y quedan cacheados localmente.
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))libreyolo predict model=LibrePPOCRl-ocr.pt source=receipt.jpg save=Truefrom 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.
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"])libreyolo val model=LibrePPOCRl-ocr.pt data=my-datasetExportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ocr | ocr to ONNX: no compatible | ocr to TorchScript: no compatible | ocr to ExecuTorch: no compatible | ocr to TensorRT: no compatible | ocr to OpenVINO: no compatible | ocr to Paddle: no compatible | ocr to MNN: no compatible | ocr to RKNN: no compatible | ocr to ncnn: no compatible | ocr to TFLite: no compatible | ocr to CoreML: no compatible | ocr 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.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| ocr | ||
| LibrePPOCRt-ocr.pt | apache-2.0 | |
| LibrePPOCRl-ocr.pt | apache-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.