PP-OCRv5

PP-OCRv5 to pipeline detekcji i rozpoznawania tekstu z PaddleOCR: detektor z różniczkowalną binaryzacją lokalizuje czworokąty tekstu, a rozpoznawanie SVTR/CTC je odczytuje. LibreYOLO przenosi go do PyTorch w dwóch poziomach.

Zadania
ocr
Rozmiary
t, l at 960 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
PaddleOCR (PP-OCRv5), autorzy: PaddlePaddle Authors, licencja: Apache-2.0. Publikacja, kod źródłowy
Licencje
Kod: Apache-2.0, wagi: Apache-2.0. Użycie komercyjne

Instalacja

PP-OCRv5 nie wymaga żadnego dodatku poza pakietem podstawowym.

bash
pip install libreyolo

Predykcja

Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej.

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
Czworokąty
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE) # Wielokąty (N, 4, 2) w kolejności odczytu: lewy górny, prawy górny,# prawy dolny, lewy dolny. Czworokąty detekcji są prawdziwymi wielokątami# (obrócony tekst), dlatego trafiają do result.ocr, a nie result.boxes.print(result.ocr.data.shape)print(result.ocr.det_conf)

Każdy checkpoint zawiera oba etapy, detekcję i rozpoznawanie, w jednym pliku .pt, a zestaw znaków rozpoznawania i wartości domyślne pipeline'u są zapisane w metadanych checkpointu. Rozpoznawanie odczytuje jednym słownikiem chiński uproszczony i tradycyjny, angielski, japoński oraz pinyin. result.ocr jest elementem OCRRegions: .data zawiera czteropunktowe wielokąty, .texts transkrypcje, .conf wynik rozpoznawania dla każdego regionu, a .det_conf wynik detekcji. Źródła z wieloma obrazami działają sekwencyjnie. Dwustopniowy pipeline nie tworzy batcha z wielu obrazów. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Dostępne są dwa poziomy: t, oparty na lżejszych backbone PP-LCNetV3/PP-OCRv5_mobile do zastosowań CPU, oraz l, oparty na serwerowych backbone PP-HGNetV2 zapewniających większą dokładność. Oba poziomy uruchamiają detekcję ze stałym limitem dłuższego boku i rozpoznają przycięcia w batchach. rec_batch określa liczbę przycięć przekazywanych do rozpoznawania w jednym przebiegu w przód.

Walidacja

val() mierzy pipeline względem katalogu obrazów z plikiem labels/<split>.jsonl lub równoważnego pliku YAML zbioru danych. Każda etykieta wymienia wielokąty regionów tekstowych obrazu i ich transkrypcje. Zwracane są: hmean detekcji (precision/recall/F1 dopasowane przez IoU), F1 od początku do końca (hmean połączone z dokładnym dopasowaniem znormalizowanej transkrypcji, metryka fitness checkpointu) oraz 1-NED, czyli średnia znormalizowana odległość edycyjna dla dopasowanych par.

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"])       # główna metrykaprint(metrics["metrics/rec_1-NED"])
CLI
libreyolo val model=LibrePPOCRl-ocr.pt data=my-dataset

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ocrocr to ONNX: brak obsługiocr to TorchScript: brak obsługiocr to ExecuTorch: brak obsługiocr to TensorRT: brak obsługiocr to OpenVINO: brak obsługiocr to Paddle: brak obsługiocr to MNN: brak obsługiocr to RKNN: brak obsługiocr to ncnn: brak obsługiocr to TFLite: brak obsługiocr to CoreML: brak obsługiocr to Core AI: brak obsługi

PP-OCRv5 jest pipelinem dwóch sieci, detekcji i rozpoznawania działających wspólnie, a nie pojedynczym grafem możliwym do śledzenia. Eksport nie jest dla niego zaimplementowany i nie jest jeszcze obsługiwany żaden format. Jeśli potrzebny jest checkpoint poza tym formatem, należy bezpośrednio dostroić kod trenowania projektu źródłowego na licencji Apache-2.0 i przekonwertować wynik za pomocą weights/convert_ppocr_weights.py.

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
Licencja projektu źródłowego
Apache-2.0
Kod źródłowy projektu
github.com/PaddlePaddle/PaddleOCR
Kod LibreYOLO
MIT
Wagi
Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Cytowanie

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

Skopiowano z bloku cytowania autorów w github.com/PaddlePaddle/PaddleOCR#citation.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.