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.
pip install libreyoloPredykcja
Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej.
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) # 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.
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"])libreyolo val model=LibrePPOCRl-ocr.pt data=my-datasetEksport
| Zadanie | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ocr | ocr to ONNX: brak obsługi | ocr to TorchScript: brak obsługi | ocr to ExecuTorch: brak obsługi | ocr to TensorRT: brak obsługi | ocr to OpenVINO: brak obsługi | ocr to Paddle: brak obsługi | ocr to MNN: brak obsługi | ocr to RKNN: brak obsługi | ocr to ncnn: brak obsługi | ocr to TFLite: brak obsługi | ocr to CoreML: brak obsługi | ocr 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.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| ocr | ||
| LibrePPOCRt-ocr.pt | apache-2.0 | |
| LibrePPOCRl-ocr.pt | apache-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.