tags:
- ocr
- image-to-text
license: mit
library_name: transformers
Model Card: PHOCR
高性能文字识别工具包 PHOCR.
PHOCR:
PHOCR 是一个高性能的开源光学字符识别(OCR)工具包,专为多语种文本识别任务设计,支持包括中文、日文、韩文、俄文、越南文和泰文在内的多种语言。PHOCR 搭载了我们完全自研的识别模型 PH-OCRv1,在准确率上显著优于现有解决方案。
背景动机
当前基于下一个 token 预测的模型结构对上下文 token 的准确性非常敏感。即使仅有千次重复的模式,也可能导致模型产生永久性记忆。虽然大多数开源文字识别模型目前的字符错误率(CER)仍处于百分位水平,我们的目标是将其进一步提升至千分位(0.x%)。在这一精度下,对于处理 1 亿字符的系统,总错误字符数将下降至100万内,达到数量级的准确率提升。
主要特性
- 自研识别模型:PH-OCRv1,可在文档场景中实现千分位CER,英文场景下甚至可达0.0x%。
- 多语种支持:支持中文、英文、日文、韩文、俄文等多种语言。
- 丰富词表覆盖:中文 15316,韩文 17388,日文 11186,俄文 292。
- 高性能推理:深度优化的模型结构,集成 ONNX Runtime 支持。
- 轻松集成:提供简洁的 Python API。
- 跨平台:支持 CPU 与 CUDA 环境。
可视化效果
安装方式
# 请选择以下 **一种** 安装方式:
# 方法一:安装带 ONNX Runtime CPU 版本
pip install phocr[cpu]
# 方法二:安装带 ONNX Runtime GPU 版本
pip install phocr[cuda]
# 必须:确保已正确安装 CUDA Toolkit 和 cuDNN 库
# 你可以通过 conda 安装 cuda-runtime和cuDNN:
conda install -c nvidia cuda-runtime=12.1 cudnn=9
# 或者手动安装对应版本的 CUDA Toolkit 和 cuDNN 库
# 方法三:手动管理 ONNX Runtime
# 你可以自行安装 `onnxruntime` 或 `onnxruntime-gpu`,然后再安装 PHOCR
pip install phocr
快速开始
from phocr import PHOCR
# 初始化 OCR 引擎
engine = PHOCR()
# 对图像进行 OCR 识别
result = engine("path/to/image.jpg")
print(result)
# 可视化结果
result.vis("output.jpg")
print(result.to_markdown())
性能基准测试
我们进行了全面的基准测试,将 PHOCR 与领先的 OCR 解决方案在多种语言和场景下进行比较。我们自研的 PH-OCRv1 模型在现有解决方案基础上实现了显著改进。
整体性能对比
模型 | 中文 & 英文 CER ↓ |
日文 CER ↓ |
韩文 CER ↓ |
俄文 CER ↓ |
|||||
---|---|---|---|---|---|---|---|---|---|
英文 | 简体中文 | 中英混合 | 繁体中文 | 文档 | 场景 | 文档 | 场景 | 文档 | |
PHOCR | 0.0008 | 0.0057 | 0.0171 | 0.0145 | 0.0039 | 0.0197 | 0.0050 | 0.0255 | 0.0046 |
百度 | 0.0014 | 0.0069 | 0.0354 | 0.0431 | 0.0222 | 0.0607 | 0.0238 | 0.212 | 0.0786 |
阿里 | - | - | - | - | 0.0272 | 0.0564 | 0.0159 | 0.102 | 0.0616 |
PPOCR V5 | 0.011 | 0.060 | 0.032 | 0.061 | - | - | - | - | - |
PP-OCRv5 | 0.0149 | 0.0226 | 0.0722 | 0.0625 | 0.0490 | 0.1140 | 0.0113 | 0.0519 | 0.0348 |
说明:
- baidu: Baidu Accurate API
- Ali: Aliyun API
- 字符错误率(CER):总的编辑距离除以真实标签(ground truth)中字符的总数量。
高级用法
启用全局 KV 缓存后,我们使用 PyTorch (CUDA) 实现了一个简单版本。在使用 torch (CUDA) 运行时,您可以通过在 ORTSeq2Seq(...)
中设置 use_cache=True
来启用缓存,这也允许更大的批处理大小。
语言特定配置
更多示例请参见 demo.py。
评估与基准测试
PHOCR 提供全面的基准测试工具,用于评估模型在不同语言和场景下的性能。
快速基准测试
运行完整的基准测试流程:
sh benchmark/run_recognition.sh
计算模型预测的字符错误率 (CER):
sh benchmark/run_score.sh
基准测试数据集
PHOCR 使用标准化的基准测试数据集进行公平比较:
中英文混合文本识别主要来自于OmniDocBench的随机采样。 其它数据由我们的团队手工采集完成。
后续优化方向
- 通过进一步归一化训练语料,字符错误率(CER,包括标点符号)可以得到进一步降低。
- 通过采用更先进的检测框架,文字检测的准确率可以进一步提升。
贡献指南
我们欢迎任何贡献!请随时提交 issue、功能请求或 pull request。
支持
如有问题或需要支持,请在 GitHub 上提交 issue 或联系维护者。
鸣谢
特别感谢 RapidOCR 提供的检测模型及主框架支持。
许可证
- 本项目采用 Apache 2.0 开源许可证
- OCR 检测和分类模型的版权归百度所有
- PHOCR 识别模型采用修改版 MIT 许可证,详情请见 LICENSE 文件
引用方式
如果您在研究中使用了 PHOCR,请引用:
@misc{phocr2025,
title={PHOCR: High-Performance OCR Toolkit},
author={PuHui Lab},
year={2025},
url={https://github.com/puhuilab/phocr}
}