PaddleOCR服务化部署

一、分析与选择

PaddleOCR 提供 2 种服务部署方式:

一种是 PaddleServing 的部署方式, 仅使用 CPU 推理预测在 Windows 和 Linux都能进行部署.

若要使用 GPU 进行推理预测, 在 Windows 上只能使用 Docker 进行部署 (这步没有进行尝试).

在 Linux 上可以手动部署, 也可以使用 Docker 部署 (这步没有进行尝试).

另一种是 PaddleHub 的部署方式, 由于在 Windows 上设置 CUDA_VISIBLE_DEVICES=0 出现错误, 所以 PaddleHub 依旧部署到 Linux 上.

在 Linux 上使用 PaddleServing 手动部署的过程中, 程序出现意外的错误,

出现只能预测一部分图片的结果. 经过排除发现, 是 PaddleServing 的部署方式占满所有显存.

以下表格为各种系统各种配置下不同的部署方式实现情况.

Windows/Linux CPUWindows GPULinux GPU
PaddleServingSuccessNo显存不够
PaddleHubNo显卡设置错误Success

其中 Success 表示成功部署, No 表示未尝试

在显存足够的情况下选择 PaddleServing 部署方式可以提高并发量, 这里仅测试就选择相对简单的 PaddleHub 进行部署.

二、PaddleHub 部署

基于 Github PaddleOCR/PaddleHub 部署文档 编写.

1. GPU 环境描述

GPU : 1050Ti Mobile 4G

CUDA : 11.2 (Driver API Version: 11.4, Runtime API Version: 11.2)

cuDNN : 8.6

2. 快速启动服务

以下操作默认下载了 PaddleOCR 项目并安装了 PaddleOCR 的 GPU 运行环境. 安装教程 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/quickstart.md

注意在 PaddlePaddle 官网 去查找需要的 paddlepaddle-gpu 版本.

2.1 准备环境

# 安装paddlehub  
# paddlehub 需要 python>3.6.2
pip3 install paddlehub==2.1.0 --upgrade -i https://mirror.baidu.com/pypi/simple

2.2 下载推理模型

安装服务模块前, 需要准备推理模型并放到正确路径. 默认使用的是PP-OCRv3模型, 默认模型路径为

检测模型:./inference/ch_PP-OCRv3_det_infer/
识别模型:./inference/ch_PP-OCRv3_rec_infer/
方向分类器:./inference/ch_ppocr_mobile_v2.0_cls_infer/

需要注意! 此步的当前路径是在 PaddleOCR/ 下.

模型路径可在 params.py 中查看和修改. 更多模型可以从 PaddleOCR 提供的模型库 PP-OCR 下载, 也可以替换成自己训练转换好的模型.

需要注意! params.py 的路径是 PaddleOCR/deploy/hubserving/xxx/params.py .

2.3 安装服务模块

! 执行命令的当前路径实在 PaddleOCR/ 下

# 安装检测服务模块:  
hub install deploy/hubserving/ocr_det/

# 或,安装分类服务模块:  
hub install deploy/hubserving/ocr_cls/

# 或,安装识别服务模块:  
hub install deploy/hubserving/ocr_rec/

# 或,安装检测+识别串联服务模块:  
hub install deploy/hubserving/ocr_system/

这里我们可以只选择

hub install deploy/hubserving/ocr_system/

2.4 启动服务

启动命令:

# 使用 0 号显卡
export CUDA_VISIBLE_DEVICES=0
hub serving start -c deploy/hubserving/ocr_system/config.json

3. 发送预测请求

配置好服务端, 可使用以下命令发送预测请求, 获取预测结果:

python tools/test_hubserving.py --server_url=server_url --image_dir=image_path

需要给脚本传递2个参数:

  • server_url: 服务地址, 格式为
    http://[ip_address]:[port]/predict/[module_name]
    例如, 如果使用配置文件启动分类, 检测、识别, 检测 + 分类 + 识别 3 阶段服务, 那么发送请求的 url 将分别是:
    http://127.0.0.1:8865/predict/ocr_det
    http://127.0.0.1:8866/predict/ocr_cls
    http://127.0.0.1:8867/predict/ocr_rec
    http://127.0.0.1:8868/predict/ocr_system
  • image_dir: 测试图像路径,可以是单张图片路径, 也可以是图像集合目录路径
  • visualize: 是否可视化结果, 默认为 False
  • output:可视化结果保存路径, 默认为 ./hubserving_result

访问示例:

python tools/test_hubserving.py --server_url=http://127.0.0.1:8868/predict/ocr_system --image_dir=./doc/imgs/ --visualize=false

4. 自定义修改服务模块

如果需要修改服务逻辑, 你一般需要操作以下步骤 (以修改ocr_system为例):

  • 1、停止服务

hub serving stop --port/-p XXXX

  • 2、到相应的module.pyparams.py等文件中根据实际需求修改代码.

强烈建议修改后先直接运行module.py调试,能正确运行预测后再启动服务测试。

  • 3、卸载旧服务包

hub uninstall ocr_system

  • 4、安装修改后的新服务包

hub install deploy/hubserving/ocr_system/

  • 5、重新启动服务

hub serving start -m ocr_system

三、PaddleHub 运行结果

服务端测试

客户端测试

四、对接工作

通过观察代码可以了解到这样一个接口, 使用其他编程语言发送这样的一个请求即可.

其中的 headers 为

图片传输需转编码后发送

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在Linux下部署PaddleOCR有两种方式。一种是使用PaddleHub进行部署,但由于在Windows上设置CUDA_VISIBLE_DEVICES=0可能出现错误,所以推荐将PaddleHub部署到Linux上进行使用。另一种方式是使用PaddleServing进行部署,这种方式仅使用CPU进行推理预测,可以在Windows和Linux上都进行部署。具体操作步骤如下: 1. 进入PaddleOCR目录下,可以参考https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/hubserving/readme.md 进行启动参数的修改。 2. 根据PaddleOCR部署文档,按照指示进行环境配置和依赖安装。 3. 确保您的Linux系统已经安装好了必要的软件和库文件,比如Python、PaddlePaddle等。 4. 根据文档中的说明,执行相应的命令来启动PaddleOCR的服务。 5. 在部署完成后,您可以使用PaddleOCR进行图像识别和文字识别等任务。 需要注意的是,以上是一种基本的部署方式,具体的部署步骤可能会因环境和需求的不同而有所差异,您可以根据具体情况进行相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [PaddleOCR服务化部署](https://blog.csdn.net/qq_44309220/article/details/127458611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Linux服务器下部署安装PaddleOCR](https://blog.csdn.net/eqcjx/article/details/109336341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值