PaddleOCR/docker/hubserving
Tangmq 7ca76e8b00 change dockerfile memo language to english 2020-08-10 12:12:53 +08:00
..
cpu change dockerfile memo language to english 2020-08-10 12:12:53 +08:00
gpu change dockerfile memo language to english 2020-08-10 12:12:53 +08:00
readme.md 增加Docker化部署服务(HubServing模式) 2020-08-10 00:09:22 +08:00
sample_request.txt 增加Docker化部署服务(HubServing模式) 2020-08-10 00:09:22 +08:00

readme.md

Docker化部署服务

在日常项目应用中相信大家一般都会希望能通过Docker技术把PaddleOCR服务打包成一个镜像以便在Docker或k8s环境里快速发布上线使用。

本文将提供一些标准化的代码来实现这样的目标。大家通过如下步骤可以把PaddleOCR项目快速发布成可调用的Restful API服务。目前暂时先实现了基于HubServing模式的部署后续作者计划增加PaddleServing模式的部署

1.实施前提准备

需要先完成如下基本组件的安装: a. Docker环境 b. 显卡驱动和CUDA 10.0+GPU c. NVIDIA Container ToolkitGPUDocker 19.03以上版本可以跳过此步) d. cuDNN 7.6+GPU

2.制作镜像

a.下载PaddleOCR项目代码

git clone https://github.com/PaddlePaddle/PaddleOCR.git

b.切换至Dockerfile目录需要区分cpu或gpu版本下文以cpu为例gpu版本需要替换一下关键字即可

cd docker/cpu

c.生成镜像

docker build -t paddleocr:cpu . 

3.启动Docker容器

a. CPU 版本

sudo docker run -dp 8866:8866 --name paddle_ocr paddleocr:cpu

b. GPU 版本 (通过NVIDIA Container Toolkit)

sudo nvidia-docker run -dp 8866:8866 --name paddle_ocr paddleocr:gpu

c. GPU 版本 (Docker 19.03以上版本,可以直接用如下命令)

sudo docker run -dp 8866:8866 --gpus all --name paddle_ocr paddleocr:gpu

d. 检查服务运行情况出现Successfully installed ocr_system和Running on http://0.0.0.0:8866/等信息,表示运行成功)

docker logs -f paddle_ocr

4.测试服务

a. 计算待识别图片的Base64编码如果只是测试一下效果可以通过免费的在线工具实现http://tool.chinaz.com/tools/imgtobase/ b. 发送服务请求可参见sample_request.txt中的值

curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"填入图片Base64编码(需要删除'data:image/jpg;base64,'\"]}" http://localhost:8866/predict/ocr_system

c. 返回结果(如果调用成功,会返回如下结果)

{"msg":"","results":[[{"confidence":0.8403433561325073,"text":"约定","text_region":[[345,377],[641,390],[634,540],[339,528]]},{"confidence":0.8131805658340454,"text":"最终相遇","text_region":[[356,532],[624,530],[624,596],[356,598]]}]],"status":"0"}