Ubuntu 14.04:PaddleOCR基于PaddleServing的在线服务化部署(失败)

一、

二、安装

注:

安装 PaddleOCR 2.3 。

因为 PaddleOCR 2.4 的 推荐环境 PaddlePaddle >= 2.1.2。

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/environment.md

安装前的环境准备

在使用Paddle Serving之前,需要完成如下任务:

(1)安装python 3.8 

具体安装方法请参见 Ubuntu 14.04:安装PaddlePaddle(Conda安装)-CSDN博客 


(2)安装paddlepaddle 2.0.0

具体安装方法请参见 Ubuntu 14.04:安装PaddlePaddle(Conda安装)-CSDN博客 

 参考资料https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_ch/environment.md

安装时的运行环境准备

准备 PaddleOCR 的运行环境链接

下载 PaddleOCR 2.3

https://codeload.github.com/PaddlePaddle/PaddleOCR/zip/refs/heads/release/2.3

上传到目标位置,解压

unzip PaddleOCR-release-2.3.zip

注:

官方文档中,是 clone。

因为我 clone 时有异常,偷懒不想处理,就直接下载包,然后安装。

查看 github 中的 PaddleOCR 版本

GitHub - PaddlePaddle/PaddleOCR

准备 PaddleServing 的运行环境

参考资料:https://github.com/PaddlePaddle/Serving/blob/v0.9.0/doc/Latest_Packages_EN.md

 查看版本

https://github.com/PaddlePaddle/Serving

切换到 PaddleOCR 的运行环境中的 pdserving 目录

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving
 

paddle-serving-server:paddle_serving_server-0.9.0-py3-none-any.whl

安装server,用于启动服务

下载

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server-0.9.0-py3-none-any.whl

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_server-0.9.0-py3-none-any.whl

paddle-serving-app:paddle_serving_app-0.9.0-py3-none-any.whl

下载

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/arm/paddle_serving_app-0.9.0-py3-none-any.whl

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_app-0.9.0-py3-none-any.whl

paddle-serving-client: paddle_serving_client-0.9.0-cp38-none-any.whl

安装client,用于向服务发送请求。

下载

下载链接:

https://github.com/PaddlePaddle/Serving/blob/v0.9.0/doc/Latest_Packages_EN.md

注:不同的Python版本,对应不同哦!

也可以直接用wget:

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_client-0.9.0-cp38-none-any.whl

whl包放到目标位置

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_client-0.9.0-cp38-none-any.whl

inference 模型转换

使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。

模型存放位置

切换到 PaddleOCR 的运行环境中的 pdserving 目录
/home/xxx/PaddleOCR-release-2.3/deploy/pdserving

创建目录:inference

mkdir inference

模型存放位置

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving/inference

模型下载链接

模型下载链接1

GitHub - PaddlePaddle/PaddleOCR at release/2.3

 模型下载链接2https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_en/models_list_en.md

OCR 文本检测模型

下载并解压

可以下载包,上传至目标位置,也可以wget。

我这里是wget,省去上传的步骤。

wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar -O ch_PP-OCRv2_det_infer.tar && tar -xf ch_PP-OCRv2_det_infer.tar

转换模型

OCR 文本识别模型

下载并解压

可以下载包,上传至目标位置,也可以wget。

我这里是wget,省去上传的步骤。

wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_infer.tar -O ch_PP-OCRv2_rec_infer.tar &&  tar -xf ch_PP-OCRv2_rec_infer.tar

转换模型

异常处理

上面转换模型时,出现下面的异常

ImportError: dlopen: cannot load any more object with static TLS

问题点:~/workspace/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddle/fluid/core.py

dlopen: cannot load any more object with static TLS问题解决-CSDN博客

解决方案:升级glibc版本到2.23。

20240312 娟娟:因为glibc升级可能引起系统奔溃,所以下面流程不再处理,转 PaddleHub Serving 。