查看 Markdown

PP-OCRv5

PP-OCRv5 是 PaddleOCR 的文字检测与识别流水线:一个可微二值化(differentiable binarization)检测器定位文字四边形,一个 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 在基础包之外不需要任何 extra。

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.boxesprint(result.ocr.data.shape)print(result.ocr.det_conf)

每个检查点(checkpoint)都把检测和识别这两个阶段打包在同一个 .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(按 IoU 匹配的查准率/查全率/F1)、端到端 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 转换结果。

检查点

这个家族已发布的全部权重文件。

文件输入(px)权重许可
ocr
LibrePPOCRt-ocr.ptapache-2.0
LibrePPOCRl-ocr.ptapache-2.0

上面的每个文件目前都在 LibreYOLO 组织中,并会在首次使用时下载。

许可证

请检查你所下载的具体权重在 Hugging Face 仓库中的许可。LibreYOLO 组织里的每个检查点都附有许可,同一家族内也不一定相同。该仓库是权威来源;以下摘要说明本页上次验证时适用的情况。

这里只说明涉及的许可证,不构成法律意见。如果答案对商用很重要,请自行阅读许可证并咨询法律顾问。

原始工作
PaddleOCR (PP-OCRv5), PaddlePaddle Authors
上游许可
Apache-2.0
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 验证。本页的支持表、检查点和基准测试数据由已发布的库和权重生成,并非手工编写。