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 датасета, где каждая метка перечисляет полигоны текстовых областей изображения и их текст. Считаются hmean детекции (точность/полнота/F1 при сопоставлении по IoU), сквозная F1 (тот же hmean плюс точное совпадение текста после нормализации — метрика fitness чекпойнта) и 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. Таблицы поддержки, чекпойнты и результаты бенчмарков на этой странице сгенерированы из выпущенной библиотеки и опубликованных весов, а не написаны вручную.