PP-OCRv5

PP-OCRv5 є пайплайном PaddleOCR для виявлення та розпізнавання тексту: детектор із диференційовною бінаризацією знаходить чотирикутники тексту, а розпізнавач SVTR/CTC читає їх. LibreYOLO переносить його до PyTorch у двох рівнях.

Задачі
ocr
Розміри
t, l at 960 px
Встановлення
pip install libreyolo
Рівень підтримки
Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
Першоджерело
PaddleOCR (PP-OCRv5), автори: PaddlePaddle Authors, ліцензія Apache-2.0. Стаття, джерело
Ліцензії
Код: Apache-2.0, ваги: Apache-2.0. Комерційне використання

Встановлення

Для PP-OCRv5 не потрібні додаткові залежності понад базовий пакет.

bash
pip install libreyolo

Передбачення

Під час першого використання ваги завантажуються з Hugging Face і кешуються локально.

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
Чотирикутники
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibrePPOCRl-ocr.pt")result = model(SAMPLE_IMAGE) # Полігони (N, 4, 2) у порядку читання: верхній лівий, верхній правий,# нижній правий, нижній лівий. Чотирикутники виявлення є справжніми# полігонами (повернутий текст), тому вони заповнюють result.ocr, а не result.boxes.print(result.ocr.data.shape)print(result.ocr.det_conf)

Кожна контрольна точка об'єднує обидва етапи, виявлення та розпізнавання, в одному файлі .pt. Набір символів розпізнавання й типові параметри пайплайна зберігаються в метаданих контрольної точки. Один словник дає розпізнавачу змогу читати спрощену й традиційну китайську, англійську, японську та піньїнь. result.ocr є корисним навантаженням OCRRegions: .data містить чотириточкові полігони, .texts містить транскрипції, .conf містить оцінку розпізнавання для кожної області, а .det_conf містить оцінку виявлення. Джерела з кількох зображень обробляються послідовно: двостадійний пайплайн не формує батч із різних зображень. Типи джерел, потокове передбачення та обробку результатів описано в розділі передбачення.

Варіанти

Доступні два рівні: t використовує легші бекбони PP-LCNetV3/PP-OCRv5_mobile для CPU, а l використовує серверні бекбони PP-HGNetV2 для вищої правильності. Обидва рівні виконують виявлення з фіксованим обмеженням довгої сторони й розпізнають кропи батчами; rec_batch задає кількість кропів, що проходять через розпізнавач за один прямий прохід.

Валідація

val() вимірює пайплайн на каталозі зображень і файлі labels/<split>.jsonl або еквівалентному YAML датасету. Кожна мітка містить полігони текстових областей зображення та їхні транскрипції. Метод повідомляє гармонійне середнє виявлення (точність/повнота/F1 зі зіставленням за IoU), наскрізну F1 (гармонійне середнє разом із точним збігом нормалізованої транскрипції, метрика придатності контрольної точки) і 1-NED, середню нормалізовану відстань редагування для зіставлених пар.

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"])       # Основна метрикаprint(metrics["metrics/rec_1-NED"])
CLI
libreyolo val model=LibrePPOCRl-ocr.pt data=my-dataset

Експорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
ocrocr to ONNX: не підтримуєтьсяocr to TorchScript: не підтримуєтьсяocr to ExecuTorch: не підтримуєтьсяocr to TensorRT: не підтримуєтьсяocr to OpenVINO: не підтримуєтьсяocr to Paddle: не підтримуєтьсяocr to MNN: не підтримуєтьсяocr to RKNN: не підтримуєтьсяocr to ncnn: не підтримуєтьсяocr to TFLite: не підтримуєтьсяocr to CoreML: не підтримуєтьсяocr to Core AI: не підтримується

PP-OCRv5 є пайплайном із двох мереж, у якому виявлення та розпізнавання переміщуються разом, а не одним трасованим графом. Експорт для нього не реалізовано, і жоден формат поки не підтримується. Якщо потрібна контрольна точка поза цим форматом, донавчіть початковий код навчання під ліцензією Apache-2.0 та перетворіть результат за допомогою weights/convert_ppocr_weights.py.

Контрольні точки

Усі опубліковані файли ваг цього сімейства.

ФайлВхід (пікс.)Ліцензія ваг
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.

Ліцензування

Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.

Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.

Оригінальна робота
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
Ліцензія першоджерела
Apache-2.0
Джерело першоджерела
github.com/PaddlePaddle/PaddleOCR
Код LibreYOLO
MIT
Ваги
Apache-2.0, повторно опубліковано на huggingface.co/LibreYOLO
Тлумачення
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.

Цитування

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

Скопійовано з блоку цитування авторів на сторінці github.com/PaddlePaddle/PaddleOCR#citation.

Перевірено з LibreYOLO v1.5.0. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.