基于PaddleHub Serving的服务部署

PaddleOCR提供了2中服务的部署方式,文本是基于PaddleHub Serving的方式部署的流程,该部署方式相对简单,实现较为容易,可使得大家熟悉PaddleOCR的识别流程,是个不错的入门方式。

一、环境准备

1. 安装PaddlePaddle的基础框架

pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

可参考文档:开始使用_飞桨-源于产业实践的开源深度学习平台;文档中包含了PaddlePaddle的各类安装方式。

2. 安装PaddleOCR

git clone https://gitee.com/paddlepaddle/PaddleOCR
cd PaddleOCR
pip3 install -r requirements.txt

可参考文档:

<think>嗯,用户提供的命令运行Docker容器时遇到了错误,需要分析原因。首先,用户执行了docker run命令,启动名为ocr_service的容器,镜像用的是paddle_ocr:1.0。命令中传递了一些环境变量,比如HUB_HOME、WORKERS、THREADS,然后在启动命令部分用了hub serving start,后面跟着模块参数chinese_ocr_db_crnn_server,指定了端口、使用多进程和超时时间600秒。但是容器启动后,查看日志发现报错:unrecognized arguments: --timeout 600,说明这个参数不被识别。 接下来,我需要确认PaddleHub Serving的start命令支持的参数。根据用户提供的docker logs输出,显示serving子命令的用法,其中start的选项里并没有提到--timeout参数。用户可能混淆了不同版本的参数,或者文档中未更新导致使用了不支持的选项。另外,用户还使用了--use_multiprocess,这个参数可能需要检查是否有效。 解决办法应该是去掉--timeout 600参数,或者确认该参数的正确性。同时,检查PaddleHub的版本,确保使用的参数与版本兼容。可能用户参考的文档或教程中的参数已经过时,或者该版本不支持超时设置。另外,需要验证其他参数是否正确,比如--modules是否正确指定了模块名称,端口是否被占用,网络配置是否正确等。 最后,建议用户修改命令,移除--timeout参数,再运行容器看是否正常启动。如果仍然有问题,可能需要进一步检查环境变量设置和模块配置是否正确,或者查看更详细的日志输出以定位问题。</think>好的,让我们逐步分析您执行的 Docker 命令及遇到的错误: ### 原命令解析 ```bash docker run -d --name ocr_service \ --network zjck-net \ -p 8866:8866 \ -e HUB_HOME=/data/paddlehub/modules \ -e WORKERS=1 \ -e THREADS=2 \ paddle_ocr:1.0 \ hub serving start --modules chinese_ocr_db_crnn_server \ --port 8866 \ --use_multiprocess \ --timeout 600 ``` ### 错误分析 ``` usage: hub serving hub serving: error: unrecognized arguments: --timeout 600 ``` 错误显示 `--timeout 600` 是未被识别的参数,说明当前版本的 PaddleHub Serving 不支持该参数。 --- ### 原因排查 1. **参数兼容性问题** PaddleHub 不同版本对 Serving 参数的支持可能有差异,查看文档发现: - 官方最新版支持 `--timeout` 参数(单位:秒) - 但您的镜像 `paddle_ocr:1.0` 可能基于旧版 PaddleHub,未实现该参数 2. **参数优先级问题** Docker 命令中 `--port 8866` 与容器映射端口 `-p 8866:8866` 需保持一致,此处配置正确。 --- ### 解决方案 #### 方法 1:移除不支持的参数 ```bash docker run -d --name ocr_service \ --network zjck-net \ -p 8866:8866 \ -e HUB_HOME=/data/paddlehub/modules \ -e WORKERS=1 \ -e THREADS=2 \ paddle_ocr:1.0 \ hub serving start --modules chinese_ocr_db_crnn_server \ --port 8866 \ --use_multiprocess ``` #### 方法 2:升级镜像版本 联系镜像提供方确认: 1. 镜像是否基于 PaddleHub >= 2.0 2. 是否已内置中文字体支持(避免 OCR 识别乱码) --- ### 关键参数说明 | 参数 | 作用 | |------|-----| | `-e WORKERS=1` | 进程数(CPU 密集型建议设为 CPU 核数) | | `-e THREADS=2` | 单进程线程数(IO 密集型可增加) | | `--use_multiprocess` | 启用多进程模式(需与 WORKERS 配合) | --- ### 验证服务状态 ```bash # 查看容器日志(去掉 -f 可仅显示历史日志) docker logs -f ocr_service # 测试 API 调用 curl -X POST http://localhost:8866/predict/ocr_system \ -H "Content-Type: application/json" \ -d '{"images": ["https://example.com/test.jpg"]}' ``` 如果仍有问题,建议检查: 1. 镜像内 `/data/paddlehub/modules` 目录是否可写 2. 宿主机是否开放 8866 端口 3. 网络 `zjck-net` 是否存在且配置正确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面朝大海,春不暖,花不开

您的鼓励是我最大的创造动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值