PP-OCRv5

O PP-OCRv5 é o pipeline de detecção e reconhecimento de texto do PaddleOCR: um detector de binarização diferenciável localiza os quadriláteros de texto e um reconhecedor SVTR/CTC os lê. O LibreYOLO o porta para PyTorch em dois níveis.

Tarefas
ocr
Tamanhos
t, l at 960 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
PaddleOCR (PP-OCRv5) por PaddlePaddle Authors, Apache-2.0. Artigo, código-fonte
Licenças
Código Apache-2.0, pesos Apache-2.0. Uso comercial

Instalação

O PP-OCRv5 não precisa de nenhum extra além do pacote base.

bash
pip install libreyolo

Predição

Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache 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
Quadriláteros
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE) # polígonos (N, 4, 2) em ordem de leitura: superior-esquerdo,# superior-direito, inferior-direito, inferior-esquerdo. Os# quadriláteros de detecção são polígonos de verdade (texto# rotacionado), então preenchem result.ocr, não result.boxes.print(result.ocr.data.shape)print(result.ocr.det_conf)

Cada checkpoint reúne as duas etapas, detecção e reconhecimento, em um único arquivo .pt, com o charset de reconhecimento e os padrões do pipeline guardados nos metadados do checkpoint. O reconhecedor lê chinês simplificado e tradicional, inglês, japonês e pinyin com um único dicionário. result.ocr é um payload OCRRegions: .data guarda os polígonos de quatro pontos, .texts as transcrições, .conf a pontuação de reconhecimento de cada região e .det_conf a pontuação de detecção. Fontes com várias imagens rodam sequencialmente: o pipeline de duas etapas não agrupa em batch entre imagens. Veja predição para fontes, streaming e tratamento dos resultados.

Variantes

Dois níveis: t, construído sobre os backbones mais leves PP-LCNetV3/PP-OCRv5_mobile para uso em CPU, e l, construído sobre os backbones de servidor PP-HGNetV2 para maior acurácia. Os dois níveis rodam a detecção com um limite fixo do lado maior e reconhecem os recortes em batches; rec_batch controla quantos recortes passam pelo reconhecedor a cada forward pass.

Validação

val() mede o pipeline contra um diretório de imagens mais um arquivo labels/<split>.jsonl, ou o YAML de dataset equivalente, em que cada label lista os polígonos das regiões de texto de cada imagem e suas transcrições. Ele reporta o hmean de detecção (precisão/recall/F1 com correspondência por IoU), o F1 end-to-end (o hmean mais uma correspondência exata da transcrição depois da normalização, a métrica de fitness do checkpoint) e o 1-NED, a distância de edição normalizada média sobre os pares correspondentes.

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

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ocrocr to ONNX: incompatívelocr to TorchScript: incompatívelocr to ExecuTorch: incompatívelocr to TensorRT: incompatívelocr to OpenVINO: incompatívelocr to Paddle: incompatívelocr to MNN: incompatívelocr to RKNN: incompatívelocr to ncnn: incompatívelocr to TFLite: incompatívelocr to CoreML: incompatívelocr to Core AI: incompatível

O PP-OCRv5 é um pipeline de duas redes, detecção e reconhecimento andando juntos, não um único grafo rastreável, e a exportação não está implementada para ele: nenhum formato é suportado ainda. Faça fine-tuning direto no código de treinamento upstream sob Apache-2.0 e converta o resultado com weights/convert_ppocr_weights.py se você precisar de um checkpoint fora desse formato.

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
Licença original
Apache-2.0
Código-fonte original
github.com/PaddlePaddle/PaddleOCR
Código do LibreYOLO
MIT
Pesos
Apache-2.0, republicado em huggingface.co/LibreYOLO
Interpretação
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ção

@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 do bloco de citação dos autores em github.com/PaddlePaddle/PaddleOCR#citation.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.