一切福田,不離方寸,從心而覓,感無不通。

PaddleOCR服务部署-并通过Java进行调用

上一篇讲了PaddleOCR的简单使用,但是最终的目的肯定是要将它进行服务部署方便我们调用的,这里介绍一下他的服务部署方式

选择部署方式

官方推荐有以下几种:
Python 推理
C++ 推理
Serving 服务化部署(Python/C++)
Paddle-Lite 端侧部署(ARM CPU/OpenCL ARM GPU)
Paddle.js 部署

各个方式优缺点如下
在这里插入图片描述

由于我本身是做Java开发,不会Python,所以采用Serving 服务化部署
PaddleOCR提供2种服务部署方式:

 

我选择的是通过PaddleHub Serving进行部署

安装Hub Serving

准备环境

 

安装好之后查看一下
在这里插入图片描述

下载推理模型

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提供的模型库下载,也可以替换成自己训练转换好的模型。

安装服务模块

 

这里最好把这几个模块都安装上,不然启动的时候会报错

启动服务

启动方式分两种,一种是全局启动,一种是指定到路径启动

 

我这里采用的是指定路径启动,需要切换到hubserving目录下通过命令

 

启动的其他参数参照官方文档说明

**注意:**如果启动报错xxx路径找不到,去PaddleOCR\deploy\hubserving下的ocr_system、ocr_det、ocr_rec的params.py文件,将所有的model_dir
替换为符合win格式的绝对路径即可;

这样就完成了一个服务化API的部署,使用默认端口号8868。
访问示例:
python tools/test_hubserving.py --server_url=http://127.0.0.1:8868/predict/ocr_system --image_dir=img/22.jpg
输出结果:
在这里插入图片描述

Java调取

我们可以通过Java代码进行服务的调取,代码如下:

 

然后运行,通过postman调取接口进行测试
在这里插入图片描述

控制台输出结果
在这里插入图片描述
完成!后面可以根据自己的业务需求来进行不同的处理修改

 

from:https://blog.csdn.net/f2315895270/article/details/128150679