当前位置:   article > 正文

PaddleOCR基于PaddleHub Serving的在线服务部署_paddlehub ocr

paddlehub ocr

官网参考文档

使用paddlepaddle需要先安装python环境,可以通过anaconda一键安装python环境 anaconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

Q: 为啥用anaconda?

用 anaconda 新建一个虚拟环境(paddlepaddle 和 paddleocr 都有依赖库,以防与之前环境安装库的版本冲突)。

Linux下使用wget下载

wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh

开始anaconda安装python环境

sh Anaconda3-2023.09-0-Linux-x86_64.sh

过程中会提示安装位置,yes选择默认,no需要自定义安装位置

手动将conda加入环境变量

  1. vim ~/.bashrc
  2. # 在第一行输入:
  3. export PATH="~/anaconda3/bin:$PATH"
  4. # 刷新环境变量
  5. source ~/.bash_profile

验证是否能识别conda命令

conda info --envs

显示当前有base环境,则conda已加入环境变量

  • 创建conda环境

创建paddle_env的运行环境

  1. # 此处为加速下载,使用清华源
  2. conda create --name paddle_env python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

激活paddle_env环境

conda activate paddle_env

【注意】如果报以下错误就先执行conda init bash命令再重新激活paddle_env环境

  • 安装paddle

  1. # 默认安装CPU版本
  2. pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
  • 安装PaddleOCR whl包(好像不需要装,到时候再试一下)

pip install "paddleocr>=2.0.1"
  • 安装paddlehub

  1. # paddlehub 需要 python>3.6.2 pip3
  2. install paddlehub==2.1.0 --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装第三方库

  1. cd PaddleOCR
  2. pip3 install -r requirements.txt
  • 安装模型(需要什么模型下载什么即可)

  1. # 进入PaddleOCR
  2. cd PaddleOCR
  3. # 创建inference目录
  4. mkdir inference
  5. # 下载 OCR 文本检测模型
  6. https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar
  7. # 解压 OCR 文本检测模型
  8. tar -xf ch_PP-OCRv3_det_infer.tar
  9. # 下载 OCR 文本识别模型
  10. https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar
  11. # 解压 OCR 文本识别模型
  12. tar -xf ch_PP-OCRv3_rec_infer.tar
  13. # 下载 方向分类器模型 https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar # 解压 方向分类器模型
  14. tar -xf ch_ppocr_mobile_v2.0_cls_infer.tar
  15. # 下载版面分析模型 https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_infer.tar
  16. # 解压版面分析模型 tar -xvf picodet_lcnet_x1_0_fgd_layout_infer.tar
  17. # 下载表格结构识别模型 https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar
  18. # 解压表格结构识别模型
  19. tar -xvf ch_ppstructure_mobile_v2.0_SLANet_infer.tar
  20. # 下载关键信息抽取SER模型 https://paddleocr.bj.bcebos.com/ppstructure/models/vi_layoutxlm/ser_vi_layoutxlm_xfund_infer.tar
  21. # 解压关键信息抽取SER模型 tar -xvf ser_vi_layoutxlm_xfund_infer.tar
  22. # 下载关键信息抽取RE模型 https://paddleocr.bj.bcebos.com/ppstructure/models/vi_layoutxlm/re_vi_layoutxlm_xfund_infer.tar
  23. # 解压关键信息抽取RE模型
  24. tar -xvf re_vi_layoutxlm_xfund_infer.tar

修改/home/PaddleOCR/deploy/hubserving/ocr_system/params.py文件

  • 安装服务模块

PaddleOCR提供5种服务模块,根据需要安装所需模块。我们只需装检测+识别串联服务ocr_system即可。

服务模块命令
检测hub install /home/PaddleOCR/deploy/hubserving/ocr_det
分类hub install /home/PaddleOCR/deploy/hubserving/ocr_cls
识别hub install /home/PaddleOCR/deploy/hubserving/ocr_rec
检测+识别串联hub install /home/PaddleOCR/deploy/hubserving/ocr_system
表格识别hub install /home/PaddleOCR/deploy/hubserving/structure_table
PP-Structurehub install /home/PaddleOCR/deploy/hubserving/structure_system
版面分析hub install /home/PaddleOCR/deploy/hubserving/structure_layout
关键信息抽取SERhub install /home/PaddleOCR/deploy/hubserving/kie_ser
关键信息抽取SER+REhub install /home/PaddleOCR/deploy/hubserving/kie_ser_re
  • 启动服务

  1. # 方式一 启动服务 如果不加--port指定端口,默认端口就是8866 需要哪个模块,启动哪个就可以
  2. hub serving start -m ocr_system --port 8868
  3. hub serving start -m kie_ser --port 8871
  4. hub serving start -m kie_ser_re --port 8872
  5. # 方式二 后台启动命令
  6. # 检测+识别串联
  7. nohup hub serving start -m ocr_system --port 8868 &
  8. # 关键信息抽取
  9. SER nohup hub serving start -m kie_ser --port 8871 &
  10. # 关键信息抽取SER+RE nohup hub serving start -m kie_ser_re --port 8872 &
  11. # 方式三 –use_multiprocess 代表启动多线程 –workers 代表线程数 一般为2*cpu-1
  12. nohup hub serving start -m ocr_system --use_multiprocess --workers=3 &
  • 测试

  1. # 测试示例
  2. python /home/PaddleOCR/tools/test_hubserving.py --server_url=http://127.0.0.1:8868/predict/ocr_system --image_dir=/home/PaddleOCR/myimag/身份证竖排.jpg --visualize=false

需要给脚本传递2个参数:

server_url:服务地址,格式为http://[ip_address]:[port]/predict/[module_name]

例如,如果使用配置文件启动分类,检测、识别,检测+分类+识别3阶段,表格识别和PP-Structure服务

并为每个服务修改了port,那么发送请求的url将分别是:

http://127.0.0.1:8865/predict/ocr_det http://127.0.0.1:8866/predict/ocr_cls http://127.0.0.1:8867/predict/ocr_rec http://127.0.0.1:8868/predict/ocr_system http://127.0.0.1:8869/predict/structure_table http://127.0.0.1:8870/predict/structure_system http://127.0.0.1:8870/predict/structure_layout http://127.0.0.1:8871/predict/kie_ser http://127.0.0.1:8872/predict/kie_ser_re

image_dir:测试图像路径,可以是单张图片路径,也可以是图像集合目录路径

visualize:是否可视化结果,默认为False

output:可视化结果保存路径,默认为./hubserving_result

  • 关闭服务

  1. # 指定服务端口关闭即可
  2. hub serving stop -p 8868 hub serving stop -p 8871
  • 报错

报错ImportError: libGL.so.1: cannot open shared object file: No such file or directory

  1. # 下载mesa-libGL.x86_64
  2. yum install mesa-libGL.x86_64

报错ModuleNotFoundError: No module named 'ppocr'

  1. # 把paddleocr下ppocr模块,复制到paddleocr同级目录
  2. cp -r /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddleocr/ppocr/ /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/

报错ModuleNotFoundError: No module named 'deploy'

  1. # 把PaddleOCR下deploy模块,复制到python3.8/site-packages下
  2. cp -r /home/PaddleOCR/deploy/ /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages

【注意】一定要是修改完param.py配置之后的deploy,涉及到params.py文件里模型参数的修改

报错ImportError: cannot import name 'RNNCell' from 'paddle.fluid.layers' (/root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddle/fluid/layers/__init__.py)

paddle是2.5.1 gpu,Linux运行时cannot import name 'RNNCell' from 'paddle.fluid.layers',这是因为2.5.0后没有fluid了,这时不用降版本(因为我将版本后出现了另一个错误,这时只需要把/root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddlehub/compat/task/text_generation_task.py这个文件

from 'paddle.fluid.layers import RNNCell 。。。换成from paddle.nn import RNNCellBase。。。对应其他同名的也做替换就可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/670393
推荐阅读
相关标签
  

闽ICP备14008679号