赞
踩
使用paddlepaddle需要先安装python环境,可以通过anaconda一键安装python环境 anaconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D
Q: 为啥用anaconda?
用 anaconda 新建一个虚拟环境(paddlepaddle 和 paddleocr 都有依赖库,以防与之前环境安装库的版本冲突)。
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
sh Anaconda3-2023.09-0-Linux-x86_64.sh
过程中会提示安装位置,yes选择默认,no需要自定义安装位置
- vim ~/.bashrc
- # 在第一行输入:
- export PATH="~/anaconda3/bin:$PATH"
- # 刷新环境变量
- source ~/.bash_profile
conda info --envs
显示当前有base环境,则conda已加入环境变量
- # 此处为加速下载,使用清华源
- conda create --name paddle_env python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda activate paddle_env
【注意】如果报以下错误就先执行conda init bash命令再重新激活paddle_env环境
- # 默认安装CPU版本
- pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install "paddleocr>=2.0.1"
- # paddlehub 需要 python>3.6.2 pip3
- install paddlehub==2.1.0 --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
- cd PaddleOCR
- pip3 install -r requirements.txt
- # 进入PaddleOCR
- cd PaddleOCR
-
- # 创建inference目录
- mkdir inference
-
- # 下载 OCR 文本检测模型
- https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar
- # 解压 OCR 文本检测模型
- tar -xf ch_PP-OCRv3_det_infer.tar
-
- # 下载 OCR 文本识别模型
- https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar
- # 解压 OCR 文本识别模型
- tar -xf ch_PP-OCRv3_rec_infer.tar
-
- # 下载 方向分类器模型 https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar # 解压 方向分类器模型
- tar -xf ch_ppocr_mobile_v2.0_cls_infer.tar
-
- # 下载版面分析模型 https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_infer.tar
- # 解压版面分析模型 tar -xvf picodet_lcnet_x1_0_fgd_layout_infer.tar
-
- # 下载表格结构识别模型 https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar
- # 解压表格结构识别模型
- tar -xvf ch_ppstructure_mobile_v2.0_SLANet_infer.tar
-
- # 下载关键信息抽取SER模型 https://paddleocr.bj.bcebos.com/ppstructure/models/vi_layoutxlm/ser_vi_layoutxlm_xfund_infer.tar
- # 解压关键信息抽取SER模型 tar -xvf ser_vi_layoutxlm_xfund_infer.tar
-
- # 下载关键信息抽取RE模型 https://paddleocr.bj.bcebos.com/ppstructure/models/vi_layoutxlm/re_vi_layoutxlm_xfund_infer.tar
- # 解压关键信息抽取RE模型
- 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-Structure | hub install /home/PaddleOCR/deploy/hubserving/structure_system |
版面分析 | hub install /home/PaddleOCR/deploy/hubserving/structure_layout |
关键信息抽取SER | hub install /home/PaddleOCR/deploy/hubserving/kie_ser |
关键信息抽取SER+RE | hub install /home/PaddleOCR/deploy/hubserving/kie_ser_re |
- # 方式一 启动服务 如果不加--port指定端口,默认端口就是8866 需要哪个模块,启动哪个就可以
- hub serving start -m ocr_system --port 8868
- hub serving start -m kie_ser --port 8871
- hub serving start -m kie_ser_re --port 8872
-
- # 方式二 后台启动命令
- # 检测+识别串联
- nohup hub serving start -m ocr_system --port 8868 &
- # 关键信息抽取
- SER nohup hub serving start -m kie_ser --port 8871 &
- # 关键信息抽取SER+RE nohup hub serving start -m kie_ser_re --port 8872 &
-
- # 方式三 –use_multiprocess 代表启动多线程 –workers 代表线程数 一般为2*cpu-1
- nohup hub serving start -m ocr_system --use_multiprocess --workers=3 &
- # 测试示例
- 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
- # 指定服务端口关闭即可
- hub serving stop -p 8868 hub serving stop -p 8871
- # 下载mesa-libGL.x86_64
- yum install mesa-libGL.x86_64
- # 把paddleocr下ppocr模块,复制到paddleocr同级目录
- cp -r /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddleocr/ppocr/ /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/
- # 把PaddleOCR下deploy模块,复制到python3.8/site-packages下
- cp -r /home/PaddleOCR/deploy/ /root/anaconda3/envs/paddle_env/lib/python3.8/site-packages
【注意】一定要是修改完param.py配置之后的deploy,涉及到params.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。。。对应其他同名的也做替换就可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。