菜单

服务端部署

相关源文件

本文档涵盖了 PaddleOCR 的服务器部署选项,重点关注生产就绪的 Web 服务 API。服务器部署提供基于 HTTP 的接口,用于将 PaddleOCR 功能集成到 Web 应用程序、微服务和分布式系统中。

有关本地开发和命令行使用,请参阅 Python 包和 CLI。有关高性能 C++ 部署,请参阅 C++ 推理。有关移动和边缘计算,请参阅 移动和边缘部署

部署架构概述

PaddleOCR 通过 deploy/ 目录结构提供了两种主要的服务器部署方法

来源: deploy/hubserving/readme_en.md16-18 deploy/hubserving/readme.md17-19

PaddleHub Serving 系统

PaddleHub Serving 提供了一个轻量级的 HTTP API 框架,专为 PaddleOCR 服务设计。该系统采用模块化架构,每个 OCR 功能都被打包为一个独立的 خدمة 模块。

来源: deploy/hubserving/ocr_system/module.py39-47 deploy/hubserving/ocr_system/module.py48-69 deploy/hubserving/ocr_system/params.py24-68

可用的服务模块

Hub Serving 部署提供了九个不同的服务模块,每个模块都实现了特定的 OCR 功能

模块目的主类关键依赖项
ocr_system完整的 OCR 流程OCRSystemTextSystem
ocr_det仅文本检测OCRDetTextDetector
ocr_rec仅文本识别OCRRecTextRecognizer
ocr_cls文本方向分类OCRClsTextClassifier
structure_table表格识别TableSystem_TableSystem
structure_system文档结构分析StructureSystemPPStructureSystem
structure_layout布局检测-Layout analysis models
kie_ser关键信息提取 (SER)-SER models
kie_ser_re带关系提取的关键信息提取-SER+RE models

来源: deploy/hubserving/readme_en.md22-34 deploy/hubserving/ocr_system/module.py47 deploy/hubserving/ocr_det/module.py46

模块结构和配置

每个服务模块遵循标准的结构,包含四个核心文件

来源: deploy/hubserving/readme_en.md36-43 deploy/hubserving/ocr_system/module.py39-46 deploy/hubserving/ocr_system/params.py20-25

安装与设置

安装 PaddleHub

PaddleHub Serving 需要 PaddleHub 版本 2.1.0

模型准备

服务模块在特定的目录路径中需要推理模型。默认的模型位置定义在每个模块的 params.py 文件中

模型类型默认路径配置变量
检测./inference/PP-OCRv3_mobile_det_infer/det_model_dir
识别./inference/ch_PP-OCRv3_rec_infer/rec_model_dir
分类./inference/ch_ppocr_mobile_v2.0_cls_infer/cls_model_dir
布局分析./inference/picodet_lcnet_x1_0_fgd_layout_infer/layout_model_dir
表格识别./inference/ch_ppstructure_mobile_v2.0_SLANet_infer/table_model_dir

来源: deploy/hubserving/readme_en.md60-72 deploy/hubserving/ocr_system/params.py29 deploy/hubserving/ocr_system/params.py47

安装服务模块

使用 hub install 命令安装所需的服务模块

来源: deploy/hubserving/readme_en.md74-86

启动服务

命令行启动(CPU)

使用命令行参数启动服务,仅支持 CPU 部署

参数

  • --modules/-m:服务模块名称和版本
  • --port/-p:HTTP 服务端口(默认:8866)
  • --use_multiprocess:启用多进程
  • --workers:工作进程数

来源: deploy/hubserving/readme_en.md89-111

配置文件启动(CPU/GPU)

对于 GPU 部署和高级配置,请使用 JSON 配置文件

使用配置文件启动

来源: deploy/hubserving/readme_en.md113-154 deploy/hubserving/ocr_system/config.json1-15

API 接口和使用

请求格式

服务接受指向 /predict/{module_name} 端点的 HTTP POST 请求。请求体包含 base64 编码的图像

来源: tools/test_hubserving.py114-119 deploy/hubserving/readme_en.md156-188

响应格式

服务响应因模块类型而异,但遵循一致的结构

来源: deploy/hubserving/readme_en.md190-217 deploy/hubserving/ocr_system/module.py136-143

测试与验证

test_hubserving.py 脚本提供了全面的测试功能

测试脚本功能

  • cv2_to_base64():请求的图像编码
  • draw_server_result():OCR 结果可视化
  • save_structure_res():结构分析输出处理
  • main():批量处理和性能测量

来源: tools/test_hubserving.py148-162 tools/test_hubserving.py39-72

服务自定义

修改服务逻辑

要自定义服务行为,请修改服务模块目录中的相关文件。

  1. 停止现有服务

  2. 修改配置params.py

  3. 更新服务逻辑(如果需要)在 module.py

  4. 重新安装模块

  5. 重启服务

来源: deploy/hubserving/readme_en.md219-249 deploy/hubserving/ocr_system/params.py24-68

配置参数

用于自定义的 params.py 中的关键参数

参数目的示例值
det_model_dir检测模型路径"./inference/custom_det/"
rec_model_dir识别模型路径"./inference/custom_rec/"
use_angle_cls启用文字方向识别true/false
det_db_thresh检测阈值0.3
rec_batch_num识别批次大小6
cls_thresh分类阈值0.9

来源: deploy/hubserving/ocr_system/params.py28-67 deploy/hubserving/readme_en.md227-234