菜单

Python 包和命令行界面

相关源文件

本页介绍了 PaddleOCR Python 包的安装、CLI 使用和开发接口。PaddleOCR 同时提供用于快速 OCR 任务的命令行接口和用于应用程序开发的全面 Python API。该包是开发和原型制作的主要接口,而生产部署可能使用 C++ 推理(请参阅 C++ 推理)或移动部署(请参阅 移动和边缘部署)。

包架构

PaddleOCR 为 OCR 任务提供了 CLI 和 Python API 接口。该包架构支持用于快速任务的命令行使用和用于应用程序开发的编程访问。

CLI 架构

Python API 架构

来源

包安装

PyPI 安装

PaddleOCR 作为 Python 包通过 PyPI 分发。安装最新稳定版本

这将同时安装 Python 库和 CLI 工具,使 paddleocr 命令在您的系统 PATH 中可用。

开发安装

要进行开发或使用最新功能,请从源代码安装

设置 -e 标志以可编辑模式安装,允许您修改源代码并立即看到更改。

包发布

该包通过 GitHub Actions 自动发布到 PyPI,当创建新版本时。

依赖项

核心依赖包括

  • PaddlePaddle (>=2.0) - 深度学习框架
  • OpenCV - 计算机视觉库
  • PIL (Pillow) - 图像处理
  • NumPy - 数值计算

可选依赖

  • onnxruntime - ONNX 模型推理
  • TensorRT - GPU 加速

来源

CLI 使用

命令行界面

paddleocr 命令提供了一个便捷的 OCR 任务 CLI。

CLI 架构

CLI 系统使用基于 CLISubcommandExecutor 抽象类的可插拔架构。

环境配置

该包尊重环境变量的配置

环境变量描述默认
PADDLEOCR_DISABLE_AUTO_LOGGING_CONFIG禁用自动日志配置"0"

来源

Python API用法

基本 PaddleOCR API

PaddleOCR 类提供了一个高级 Python 接口。

ocr() 方法返回带有边界框坐标、识别出的文本和置信度分数的检测到的文本区域。

输入类型

OCR 引擎接受多种输入格式

  • 图像文件路径(字符串)
  • 图像的 URL
  • OpenCV 图像(numpy 数组)
  • 图像的字节
  • 用于批量处理的图像列表

来源

推理组件

推理系统由三个主要组件组成,这些组件可以独立使用或一起使用。

文本检测

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_versionOCR 模型版本'PP-OCRv4'

检测参数

参数描述默认
det_algorithm检测算法'DB'
det_model_dir检测模型目录自动下载
det_limit_side_len检测图像最长边限制960
det_db_threshDB 算法阈值0.3
det_db_box_threshDB 框阈值0.6
det_db_unclip_ratioDB 解锁比率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 版本

  • PP-OCR(原始版本)
  • PP-OCRv2
  • PP-OCRv3
  • PP-OCRv4(默认)

支持的语言包括中文、英文以及韩语、日语、阿拉伯语等多种语言。

来源

推理后端

PaddleOCR 支持多种推理后端

Paddle Inference

默认的推理后端是 Paddle Inference,它提供了优化的推理能力。

ONNX Runtime

您可以使用 ONNX 模型进行推理,通过 use_onnx 参数。

来源

高级用法

大图像切片推理

对于大图像,PaddleOCR 提供了一种切片推理机制,可以单独处理图像的各个部分,然后合并结果。

这种方法将图像分成小块,单独处理每个块,然后合并结果。

定制预处理和可视化

来源

性能优化

TensorRT 加速

启用 TensorRT 以获得显著的性能提升。

批处理

对于处理多张图像,批量推理可提供更好的吞吐量。

推理精度选项

较低的精度可以在一定程度上牺牲准确性来加快推理速度。

精确率描述
fp32全精度,最高精度
fp16半精度,速度和精度的良好平衡(需要 TensorRT)
int88 位整数精度,最快但精度较低(需要校准)

来源

错误处理和调试

PaddleOCR 提供各种日志记录和调试工具。

在排查推理问题时,请检查:

  1. 图像格式和预处理
  2. 模型兼容性(版本、语言)
  3. 设备要求(GPU 内存、驱动程序)

来源

总结

PaddleOCR 的 Python 推理提供了一种灵活高效的方式来执行 OCR 任务,支持各种模型和配置。从简单的单行 API 调用到推理管道的详细定制,该系统支持广泛的用例和部署场景。

核心组件(检测、分类、识别)可以单独或一起使用,并且有多种后端选项为不同的部署环境提供了灵活性,从高性能 GPU 服务器到纯 CPU 部署。