PaddleOCR服务部署-Hub Serving服务器上搭建

基础环境

查看服务器默认安装

ls -l /usr/bin | grep python

paddle基础环境要求

python>=3.7.0

pip>20.0.0

推荐anaconde安装python,会携带一些基础库

【OCR文字识别】Linux下基于PaddleHub Serving部署-php黑洞网 (phpheidong.com)

手动安装

./configure --prefix=/usr/local/python3.7.1

如果后续openssl有问题就重新编译

./configure --with-openssl=/usr/local/openssl1.1.1/ --prefix=/usr/local/python3.7.1/

建立软链接

ln -s /usr/local/python3.7.1/bin/pip3 /usr/bin/pip

ln -s /usr/local/python3.7.1/bin/python3 /usr/bin/python

如果存在就删除原文件夹

手动安装后 pip install失败

mv /usr/bin/lsb_release /usr/bin/lsb_release_back

pip版本不足 升级使用外部源

pip install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

PaddleOCR

从git上拉取paddleOCR源码

目录大致如下

在PaddleOCR(刚解压的目录下)里mkdir inference


从PaddleOCR提供的模型库下载以下三个模型压缩包

检测模型:ch_PP-OCRv3_det_infer.tar

识别模型:ch_PP-OCRv3_rec_infer.tar

方向分类器:ch_ppocr_mobile_v2.0_cls_infer.tar

把压缩包上传到Paddle/inference目录里,解压


修改模型位置

因为这里安装部署用模块ocr_sysyem,路径PaddleOCR/deploy/hubserving/ocr_system/params.py


Hub Serving安装

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

或加源拉取

pip install paddlehub==2.1.0 --upgrade -i https://mirror.baidu.com/pypi/simple


pip install paddlepaddle --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple

无法拉取升级openssl   python3.7有对应openssl版本

下载完的文件在/usr/local/python3.7.1/lib/python3.7/site-packages


下载时出现Running pip as the ‘root‘ user can result in broken permissions and conflicting

创建一个虚拟环境

python -m venv tutorial-env

进入虚拟环境

source tutorial-env/bin/activate

再次检查一下pip版本号,版本号变回低版本重新更新pip 及重拉paddlehub


在解压完paddleOCR位置目录下执行

安装检测模块

hub install deploy/hubserving/ocr_det/

或,安装识别模块

hub install deploy/hubserving/ocr_rec

或,安装检测+识别串联模块 推荐

hub install deploy/hubserving/ocr_system/


如下是成功安装

特别报错注意点

报错ModuleNotFoundError: No module named '_lzma'

按报错文件位置找到文件处理

https://blog.csdn.net/yujinlong2002/article/details/128210188


报错ImportError: cannot import name 'RNNCell' from 'paddle.fluid.layers' (/usr/local/tutorial-env/lib/python3.7/site-packages/paddle/fluid/layers/__init__.py)

paddle新版本没有fluid

降版本会出现其他一些问题

https://zhuanlan.zhihu.com/p/652867620?utm_id=0


python手动安装一些模块,大部分模块缺少可以直接pip install 模块名称

以下是特别情况

报错ModuleNotFoundError: No module named 'skimage'

pip install scikit-image


报错ModuleNotFoundError: No module named 'Polygon'

先执行卸载pip uninstall Polygon或  pip uninstall Polygon3

pip install Polygon3 -i https://pypi.tuna.tsinghua.edu.cn/simple


报错ModuleNotFoundError:No module named 'lanms'

pip install lanms-neo或 pip install lanms-neo==1.0.2


报错ModuleNotFoundError:No module named 'lmdb'

pip install lmdb -i https://pypi.tuna.tsinghua.edu.cn/simple


报错ModuleNotFoundError:No module named 'cv2'

pip install opencv_python


服务启停

启动服务 端口默认为8866

hub serving start -m ocr_system

后台启动  命令行启动(仅支持CPU)

nohup hub serving start -m ocr_system &

nohup hub serving start -m ocr_system --use_multiprocess --workers=3 &

–use_multiprocess 代表启动多线程  –workers 代表线程数 一般为2*cpu-1

指定路径启动,需要切换到hubserving目录下通过命令

hub serving start -c deploy\hubserving\ocr_system\config.json

关闭服务

hub serving stop -p 8866


接口测试

使用自带图片测试接口是否可用

python tools/test_hubserving.py --server_url=http://127.0.0.1:8866/predict/ocr_system --image_dir=/home/PaddleOCR/doc/imgs/12.jpg



接口调用

http://127.0.0.1:8868/predict/ocr_system

string param = "{\"images\":[\"" + base64Date + "\"]}";


参考文章:

PaddleOCR服务部署-并通过Java进行调用 (xjx100.cn)

paddleOCR服务端安装部署二:paddleOCR hubserving 服务安装配置_paddleocr进行服务部署_J_caicaicai的博客-CSDN博客

https://blog.csdn.net/m0_62317155/article/details/132168164

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容