资讯动态

PaddleOCR 高性能推理(HPI)实战指南:一键开启多后端推理加速

发布时间:2026/9/19 21:30:58 来源:尧图企业网站定制
PaddleOCR 高性能推理HPI实战指南一键开启多后端推理加速【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR导读在生产环境中OCR 服务的响应速度往往直接决定系统体验与业务吞吐。PaddleOCR 提供了开箱即用的高性能推理High Performance Inference, HPI能力用户无需手动配置底层推理细节即可让模型自动匹配最优推理后端如 Paddle Inference、OpenVINO、ONNX Runtime、TensorRT并叠加线程、FP16 精度等加速策略。本文以官方高性能推理文档为主体结合仓库源码完整介绍 HPI 的依赖安装、GPU 环境准备、CLI 与 Python API 两种启用方式以及引擎缓存、ONNX 转换等实战要点帮助你在自己的环境中快速落地加速方案。1. 高性能推理能做什么在实际生产环境中许多应用对部署策略的性能指标尤其是响应速度有着较严苛的标准以确保系统的高效运行与用户体验的流畅性。PaddleOCR 提供高性能推理能力让用户无需关注复杂的配置和底层细节一键提升模型的推理速度。具体而言PaddleOCR 的高性能推理功能能够自动选择推理后端结合先验知识自动选择合适的推理后端Paddle Inference、OpenVINO、ONNX Runtime、TensorRT 等并配置加速策略如增大推理线程数、设置 FP16 精度推理自动完成模型格式转换根据需要自动将飞桨静态图模型转换为 ONNX 格式以使用更优的推理后端实现加速直接使用 ONNX 模型支持加载用户准备好的 ONNX 模型完成推理。从源码层面看该能力并非从零实现而是深度依托于 PaddleX。PaddleOCR 在推理部署环节复用 PaddleX 的底层能力高性能推理通过 PaddleX 的 Paddle2ONNX 插件及高性能推理插件实现相关说明可参见 PaddleOCR 与 PaddleX 的区别与联系。同时得益于 PaddleX 的可选依赖安装机制安装paddleocr分发包时只会安装 OCR 类任务所需依赖不会因高性能推理引入过大的体积膨胀。2. 前置条件飞桨框架与高性能推理依赖2.1 安装高性能推理依赖高性能推理功能依赖于飞桨框架因此在执行后续步骤前需要确保环境中已经安装飞桨框架。通过 PaddleOCR CLI 安装高性能推理所需依赖paddleocr install_hpi_deps {设备类型}从 CLI 命令注册与实现 可以看出该命令内部实际上执行了两步操作调用paddlex --install hpi-{设备类型}安装对应设备类型的高性能推理插件调用paddlex --install paddle2onnx安装 Paddle2ONNX 插件用于后续的模型格式转换。当前支持的设备类型包括cpu仅使用 CPU 推理。目前支持 Linux 系统、x86-64 架构处理器、Python 3.8-3.12。gpu使用 CPU 或 NVIDIA GPU 推理。目前支持 Linux 系统、x86-64 架构处理器、Python 3.8-3.12。如果希望使用完整的高性能推理功能还需要确保环境中安装有符合要求的 TensorRT见 2.3 小节详细说明。从仓库源码看该子命令还同时支持npu设备类型选项见 paddleocr/_cli.py 中的choices[cpu, gpu, npu]具体可用性以对应设备的官方支持情况为准。注意同一环境中只应该存在一种设备类型的依赖。对于 Windows 系统目前建议在 Docker 容器或者 WSL 环境中安装。2.2 推荐使用 PaddleX 官方 Docker 镜像推荐使用 PaddleX 官方 Docker 镜像安装高性能推理依赖。各设备类型对应的镜像如下cpuccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-cpugpuCUDA 11.8ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6gpuCUDA 12.6ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-gpu-cuda12.6-cudnn9.5-trt10.5注意目前 CUDA 12.6 cuDNN 9.5 的高性能推理仅支持 OpenVINO 和 ONNX Runtime 后端暂不支持 TensorRT 后端。需要 TensorRT 加速时请选择 CUDA 11.8 对应的镜像。2.3 GPU 环境详细说明首先需要确保环境中安装有符合要求的 CUDA 与 cuDNN。目前 PaddleOCR 支持与以下组合兼容的 CUDA 和 cuDNN 版本CUDA 11.8 cuDNN 8.9CUDA 12.6 cuDNN 9.5如果使用飞桨官方镜像镜像中的 CUDA 和 cuDNN 版本已满足要求无需额外安装。如果通过 pip 安装飞桨通常 CUDA、cuDNN 的相关 Python 包会被自动安装。在这种情况下仍需通过安装非 Python 专用的 CUDA 与 cuDNN即系统级安装。同时建议安装的 CUDA 和 cuDNN 版本与环境中存在的 Python 包版本保持一致以避免不同版本的库共存导致的潜在问题。可以通过如下方式查看 CUDA 和 cuDNN 相关 Python 包的版本# CUDA 相关 Python 包版本 pip list | grep nvidia-cuda # cuDNN 相关 Python 包版本 pip list | grep nvidia-cudnn其次建议确保环境中安装有符合要求的 TensorRT否则 Paddle Inference TensorRT 子图引擎将不可用程序可能无法取得最佳推理性能。目前 PaddleOCR 仅支持在 CUDA 11.8 环境使用 TensorRT 8.6.1.6。如果使用飞桨官方 3.0 镜像可执行如下命令安装 TensorRT wheel 包python -m pip install /usr/local/TensorRT-*/python/tensorrt-*-cp310-none-linux_x86_64.whl对于其他环境请参考 TensorRT 官方文档安装对应版本的 TensorRT示例如下# 下载 TensorRT tar 文件 wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz # 解压 TensorRT tar 文件 tar xvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz # 安装 TensorRT wheel 包 python -m pip install TensorRT-8.6.1.6/python/tensorrt-8.6.1-cp310-none-linux_x86_64.whl # 添加 TensorRT 的 lib 目录的绝对路径到 LD_LIBRARY_PATH 中 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:TensorRT-8.6.1.6/lib3. 执行高性能推理3.1 CLI 方式一条命令开启加速对于 PaddleOCR CLI指定--enable_hpi为True即可执行高性能推理。例如paddleocr ocr --enable_hpi True ...从 公共 CLI 参数定义 可以看到--enable_hpi接受布尔值通过str2bool解析默认值由各模块的_DEFAULT_ENABLE_HPI决定。在 CLI 调用过程中该开关会与以下配套参数一起被解析并下发给底层 PaddleX 预测器参数默认值说明--device自动选择默认 GPU 0不可用则 CPU推理设备如cpu、gpu、gpu:0--enable_hpi模块默认值是否启用高性能推理--use_tensorrtFalse是否使用 Paddle Inference TensorRT 子图引擎--precisionfp32使用 TensorRT 子图引擎时的推理精度支持fp32/fp16--enable_mkldnnTrue是否启用 MKL-DNN 加速CPU 场景--mkldnn_cache_capacity10MKL-DNN 缓存容量--cpu_threads10CPU 推理线程数--enable_cinnFalse是否使用 CINN 编译器上述默认值定义在 paddleocr/_constants.py 中。从 引擎配置构建逻辑 可以看到当设备为 GPU 且启用 TensorRT 时会根据precision自动映射trt_fp32或trt_fp16运行模式当设备为 CPU 时则会应用cpu_threads、mkldnn_cache_capacity等配置——这正是 HPI 自动配置加速策略的底层实现。3.2 Python API 方式初始化即开启对于 PaddleOCR Python API在初始化产线对象或者模块对象时设置enable_hpi为True即可在调用推理方法时执行高性能推理。例如from paddleocr import PaddleOCR pipeline PaddleOCR(enable_hpiTrue) result pipeline.predict(...)3.3 从源码看 enable_hpi 的传递链路理解参数流转有助于排查问题。从源码看enable_hpi的传递路径如下公共参数解析parse_common_args将enable_hpi等参数合并进默认值字典并校验engine、precision的合法性初始化参数准备prepare_common_init_args将enable_hpi转换为 PaddleX 预测器认识的use_hpip字段同时根据设备类型构建paddle_static引擎配置TensorRT / MKL-DNN / CINN 等预测器创建PaddleXPredictorWrapper基类调用 PaddleX 的create_predictor完成预测器构建最终由 PaddleX 高性能推理插件接管推理加速。简而言之enable_hpiTrue→use_hpipTrue→ PaddleX 高性能推理插件加载并执行加速推理。4. 使用说明与注意事项首次构建耗时与缓存复用对于部分模型在首次执行高性能推理时可能需要花费较长时间完成推理引擎的构建。推理引擎相关信息将在第一次构建完成后被缓存在模型目录后续可复用缓存中的内容以提升初始化速度。部分模型无法加速目前由于使用的不是静态图格式模型、存在不支持算子等原因部分模型可能无法获得推理加速。模型格式自动转换在进行高性能推理时PaddleOCR 会自动处理模型格式的转换并尽可能选择最优的推理后端。同时PaddleOCR 也支持用户指定 ONNX 模型。4.1 手动获取 ONNX 模型如需手动完成飞桨静态图模型到 ONNX 格式的转换可参考 获取 ONNX 模型。转换前先安装 Paddle2ONNX 插件paddlex --install paddle2onnx然后执行如下命令完成模型转换paddlex \ --paddle2onnx \ # 使用 paddle2onnx 功能 --paddle_model_dir /your/paddle_model/dir \ # 指定 Paddle 模型所在的目录 --onnx_model_dir /your/onnx_model/output/dir \ # 指定转换后 ONNX 模型的输出目录 --opset_version 7 # 指定要使用的 ONNX opset 版本参数说明如下参数类型描述paddle_model_dirstr包含 Paddle 模型的目录。onnx_model_dirstrONNX 模型的输出目录可以与 Paddle 模型目录相同。默认为onnx。opset_versionint使用的 ONNX opset 版本。当使用低版本 opset 无法完成转换时将自动选择更高版本的 opset 进行转换。默认为7。注意上述手动转换操作与 HPI 内部的自动转换是两条可选的路径——日常使用中你无需手动转换HPI 会自动完成手动转换适用于需要固定 ONNX 产物如后续接入其他推理框架或指定 ONNX 模型推理的场景。4.2 通过 PaddleX 产线配置文件精细调优PaddleOCR 的高性能推理能力依托于 PaddleX 及其高性能推理插件。通过传入自定义 PaddleX 产线配置文件可以对推理后端等进行配置。相关细节可参考以下两份资料PaddleOCR 与 PaddleX 的区别与联系了解 PaddleOCR 与 PaddleX 的协作关系、版本对应关系例如 PaddleOCR3.0.x对应 PaddleX3.0.x及飞桨 3.0.0各版本对应关系以文档中的表格为准以及安装时的依赖控制PaddleX 高性能推理指南了解如何调整高性能推理配置如指定推理后端、线程数、精度等。5. 小结PaddleOCR 高性能推理的核心价值在于免配置、自动加速通过paddleocr install_hpi_deps一键补齐依赖通过--enable_hpi TrueCLI或enable_hpiTruePython API一键启用底层由 PaddleX 高性能推理插件自动完成后端选择、模型格式转换与加速策略配置。结合仓库源码可以看到enable_hpi最终以use_hpip字段传递给 PaddleX 预测器并与 TensorRT 精度、CPU 线程数、MKL-DNN 等配置协同生效。部署时需重点关注两点一是同一环境只保留一种设备类型的依赖二是 CUDA 12.6 环境暂不支持 TensorRT 后端需要 TensorRT 加速时应选用 CUDA 11.8 TensorRT 8.6.1.6 的组合。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价