基于PaddleHub Serving的服务部署
hubserving服务部署目录下包括检测、识别、2阶段串联三种服务包,请根据需求选择相应的服务包进行安装和启动。目录结构如下:
deploy/hubserving/
└─ ocr_det 检测模块服务包
└─ ocr_rec 识别模块服务包
└─ ocr_system 检测+识别串联服务包
每个服务包下包含3个文件。以2阶段串联服务包为例,目录如下:
deploy/hubserving/ocr_system/
└─ __init__.py 空文件,必选
└─ config.json 配置文件,可选,使用配置启动服务时作为参数传入
└─ module.py 主模块,必选,包含服务的完整逻辑
└─ params.py 参数文件,必选,包含模型路径、前后处理参数等参数
快速启动服务
以下步骤以检测+识别2阶段串联服务为例,如果只需要检测服务或识别服务,替换相应文件路径即可。
1. 准备环境
克隆代码:https://gitee.com/paddlepaddle/PaddleOCR.git,解压并进入PaddleOCR文件夹
# 安装paddlehub
pip3 install paddlehub --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 下载推理模型
PaddleOCR下新建‘inference’文件夹,准备推理模型并放到‘inference’文件夹里面,默认使用的是v1.1版的超轻量模型,
https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/quickstart.md
默认模型路径为:
检测模型:./inference/ch_ppocr_mobile_v1.1_det_infer/
识别模型:./inference/ch_ppocr_mobile_v1.1_rec_infer/
方向分类器:./inference/ch_ppocr_mobile_v1.1_cls_infer/
模型路径可在params.py
中查看和修改。 更多模型可以从PaddleOCR提供的模型库下载,也可以替换成自己训练转换好的模型。
3. 安装服务模块
PaddleOCR提供3种服务模块,根据需要安装所需模块。
- 在Linux环境下,安装示例如下:
# 安装检测服务模块:
hub install deploy/hubserving/ocr_det/
# 或,安装识别服务模块:
hub install deploy/hubserving/ocr_rec/
# 或,安装检测+识别串联服务模块:
hub install deploy/hubserving/ocr_system/
- 在Windows环境下(文件夹的分隔符为
\
),安装示例如下:
# 安装检测服务模块:
hub install deploy\hubserving\ocr_det\
# 或,安装识别服务模块:
hub install deploy\hubserving\ocr_rec\
# 或,安装检测+识别串联服务模块:
hub install deploy\hubserving\ocr_system\
4. 启动服务
方式1. 命令行命令启动(仅支持CPU)
启动命令: hub serving start -c D:\XHX\Develop\Paddale\PaddleOCR\deploy\hubserving\ocr_system\config.json
在内网环境实现离线安装方式
安装
1、安装python
参见7.python安装
2、安装setuptools_scm模块——进入~/ocr/setuptools_scm/ 目录下
pip3 install --no-index --find-links=~/ocr/setuptools_scm -r requirements.txt
3、安装paddle hub依赖模块——进入到~/ocr/dependency 文件夹下
pip3 install --no-index --find-links=~/ocr/dependency -r requirements.txt
4、配置模型路径、检测方式,进入 ~/ocr/PaddleOCR/deploy/hubserving/ocr_system 目录
3、配置模型路径、识别模式,进入 ~/ocr/PaddleOCR/deploy/hubserving/ocr_system 目录
① 将reference文件夹解压,拷贝至 ~/ocr/PaddleOCR/ 目录下
② 配置模型路径,修改params.py文件
cfg.det_model_dir="~/ocr/PaddleOCR/reference/ch_ppocr_mobile_v2.0_det_infer/"
cfg.rec_model_dir="~/ocr/PaddleOCR/reference/ch_ppocr_mobile_v2.0_rec_infer/"
cfg.cls_model_dir="~/ocr/PaddleOCR/reference/ch_ppocr_mobile_v2.0_cls_infer/"
③ 配置识别模式,修改config.json文件
"use_gpu": false
5、初始化ocr_system模块,进入 ~/ocr/PaddleOCR/
hub install ./deploy/hubserving/ocr_system/
启动服务
进入 ~/ocr/PaddleOCR/ 目录下,执行如下命令
hub serving start -c ~/PaddleOCR/deploy/hubserving/ocr_system/config.json
~:PaddleOCR所在目录