本页介绍了 PaddleOCR Python 包的安装、CLI 使用和开发接口。PaddleOCR 同时提供用于快速 OCR 任务的命令行接口和用于应用程序开发的全面 Python API。该包是开发和原型制作的主要接口,而生产部署可能使用 C++ 推理(请参阅 C++ 推理)或移动部署(请参阅 移动和边缘部署)。
PaddleOCR 为 OCR 任务提供了 CLI 和 Python API 接口。该包架构支持用于快速任务的命令行使用和用于应用程序开发的编程访问。
来源
PaddleOCR 作为 Python 包通过 PyPI 分发。安装最新稳定版本
这将同时安装 Python 库和 CLI 工具,使 paddleocr 命令在您的系统 PATH 中可用。
要进行开发或使用最新功能,请从源代码安装
设置 -e 标志以可编辑模式安装,允许您修改源代码并立即看到更改。
该包通过 GitHub Actions 自动发布到 PyPI,当创建新版本时。
核心依赖包括
可选依赖
来源
paddleocr 命令提供了一个便捷的 OCR 任务 CLI。
CLI 系统使用基于 CLISubcommandExecutor 抽象类的可插拔架构。
该包尊重环境变量的配置
| 环境变量 | 描述 | 默认 |
|---|---|---|
PADDLEOCR_DISABLE_AUTO_LOGGING_CONFIG | 禁用自动日志配置 | "0" |
来源
PaddleOCR 类提供了一个高级 Python 接口。
ocr() 方法返回带有边界框坐标、识别出的文本和置信度分数的检测到的文本区域。
OCR 引擎接受多种输入格式
来源
推理系统由三个主要组件组成,这些组件可以独立使用或一起使用。
TextDetector 类处理图像中的文本检测。它支持多种检测算法,如 DB、EAST 和 SAST。
TextClassifier 类处理文本方向分类(0° 或 180°)。
TextRecognizer 类识别裁剪文本区域中的文本。
来源
在使用 PaddleOCR 类时,完整的 OCR 过程遵循此顺序。
来源
PaddleOCR 通过 PaddleOCR 构造函数提供了广泛的配置选项。以下是关键参数:
| 参数 | 描述 | 默认 |
|---|---|---|
use_gpu | 是否使用 GPU 进行推理 | True |
use_xpu | 是否使用 XPU 进行推理 | 否 |
use_npu | 是否使用 NPU 进行推理 | 否 |
use_mlu | 是否使用 MLU 进行推理 | 否 |
use_gcu | 是否使用 GCU 进行推理 | 否 |
gpu_mem | 要分配的 GPU 内存(MB) | 500 |
det | 是否启用文本检测 | True |
rec | 是否启用文本识别 | True |
use_angle_cls | 是否使用角度分类 | 否 |
lang | 识别模型的语言 | 'ch' |
ocr_version | OCR 模型版本 | 'PP-OCRv4' |
| 参数 | 描述 | 默认 |
|---|---|---|
det_algorithm | 检测算法 | 'DB' |
det_model_dir | 检测模型目录 | 自动下载 |
det_limit_side_len | 检测图像最长边限制 | 960 |
det_db_thresh | DB 算法阈值 | 0.3 |
det_db_box_thresh | DB 框阈值 | 0.6 |
det_db_unclip_ratio | DB 解锁比率 | 1.5 |
| 参数 | 描述 | 默认 |
|---|---|---|
rec_algorithm | 识别算法 | 'SVTR_LCNet' |
rec_model_dir | 识别模型目录 | 自动下载 |
rec_image_shape | 识别图像输入的形状 | '3, 48, 320' |
rec_batch_num | 识别推理的批次大小 | 6 |
rec_char_dict_path | 字符字典路径 | 自动选择 |
| 参数 | 描述 | 默认 |
|---|---|---|
cls_model_dir | 分类模型目录 | 自动下载 |
cls_image_shape | 分类图像输入的形状 | '3, 48, 192' |
cls_batch_num | 分类推理的批次大小 | 6 |
cls_thresh | 分类阈值 | 0.9 |
来源
PaddleOCR 会根据配置自动下载合适的模型。模型默认保存在 ~/.paddleocr/whl/ 目录中。
支持的 OCR 版本
支持的语言包括中文、英文以及韩语、日语、阿拉伯语等多种语言。
来源
PaddleOCR 支持多种推理后端
默认的推理后端是 Paddle Inference,它提供了优化的推理能力。
您可以使用 ONNX 模型进行推理,通过 use_onnx 参数。
来源
对于大图像,PaddleOCR 提供了一种切片推理机制,可以单独处理图像的各个部分,然后合并结果。
这种方法将图像分成小块,单独处理每个块,然后合并结果。
来源
启用 TensorRT 以获得显著的性能提升。
对于处理多张图像,批量推理可提供更好的吞吐量。
较低的精度可以在一定程度上牺牲准确性来加快推理速度。
| 精确率 | 描述 |
|---|---|
fp32 | 全精度,最高精度 |
fp16 | 半精度,速度和精度的良好平衡(需要 TensorRT) |
int8 | 8 位整数精度,最快但精度较低(需要校准) |
来源
PaddleOCR 提供各种日志记录和调试工具。
在排查推理问题时,请检查:
来源
PaddleOCR 的 Python 推理提供了一种灵活高效的方式来执行 OCR 任务,支持各种模型和配置。从简单的单行 API 调用到推理管道的详细定制,该系统支持广泛的用例和部署场景。
核心组件(检测、分类、识别)可以单独或一起使用,并且有多种后端选项为不同的部署环境提供了灵活性,从高性能 GPU 服务器到纯 CPU 部署。