PaddleOCR(PaddleHub Serving)离线部署包制作

环境与版本:

系统 CPU架构 Anaconda3 PaddlePaddle PaccleOCR
银河麒麟Server V10 X86 Anaconda3-2021.04-Linux-x86_64 paddlepaddle-2.3.2-cp38-cp38-linux_x86_64 PaddleOCR-release-2.3

因为本次下载的是noavx核心版本的Paddlepaddle,所以需要Anaconda3默认自带Python3.8的版本

安装Anaconda3:

  1. 安装Anaconda3:
  • ./Anaconda3-2021.04-Linux-x86_64.sh 或sh Anaconda3-2021.04-Linux-x86_64.sh
  • 根据提示按住回车继续(此部分是协议内容)
  • 一直到底部出现 Do you accept the license terms? [yes|no]
  • 输入 yes 程序执行

img0

  • 输入安装路径, 直接输入 anaconda3 即可,程序继续执行

img1

  • 提示是否写进环境变量,输入 yes

img2

  • 验证 conda info
  • 重新打开终端命令窗口
  • 此时前边会出现 (base)

img3

创建虚拟环境:

  1. conda create -n paddle python=3.8

    -- python=3.8 : 指定Python版本,不指定默认Anacond3带的,这里不指定也可以

  2. 进入刚创建的虚拟环境

    conda avtivate paddle

根据官网说明安装Paddlepaddle 和 paddlehub

  1. 执行命令:

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

    pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple
  • 如果cpu不支持avx指令需要下载 Paddlepaddle-noavx版本(顶部表格中有),如果支持直接执行上边命令即可。
  1. 验证Paddlepaddle 和 paddlehub:

    执行命令 python3 在 python 环境中 执行 import paddle 不报错即可 exit() 退出 python环境

img6

直接执行 hub 验证 paddlehub是否安装成功

img7

如果不成功显示却什么依赖安装什么依赖即可

  • 将下载好的PaddleOCR解压到需要的目录:

    在PaddleOCR-release-2.3目录下创建reference并将下载好的推理模型解压进去

    模型名称 模型简介 配置文件 推理模型大小 下载地址
    ch_ppocr_mobile_v2.0_rec 原始超轻量模型,支持中英文、数字识别 rec_chinese_lite_train_v2.0.yml 5.20M 推理模型
    ch_ppocr_mobile_v2.0_det 原始超轻量模型,支持中英文、多语种文本检测 ch_det_mv3_db_v2.0.yml 3.0M 推理模型
    ch_ppocr_mobile_v2.0_cls 原始分类器模型,对检测到的文本行文字角度分类 cls_mv3.yml 1.38M 推理模型
  • 修改参数文件 PaddleOCR-release-2.3\deploy\hubserving\ocr_system\params.py 文件中模型路径

    cfg.det_model_dir = "./inference/ch_PP-OCRv3_det_infer/"

    cfg.rec_model_dir = "./inference/ch_PP-OCRv3_rec_infer/"

    cfg.cls_model_dir = "./inference/ch_ppocr_mobile_v2.0_cls_infer/"

    将以上路径修改为

    cfg.det_model_dir = "./reference/ch_ppocr_mobile_v2.0_det_infer/"

    cfg.rec_model_dir = "./reference/ch_ppocr_mobile_v2.0_rec_infer/"

    cfg.cls_model_dir = "./reference/ch_ppocr_mobile_v2.0_cls_infer/"

  • 修改配置文件 PaddleOCR-release-2.3\deploy\hubserving\ocr_system\config.json

    "use_gpu": true

    将使用gpu修改为false

    "use_gpu": false

测试是否能安装服务

执行 hub install ./deploy/hubserving/ocr_system/

和运行服务 hub serving start -c ./deploy/hubserving/ocr_system/config.json

建议在当前路径新建两个shll脚本 install.sh脚本 和 run.sh脚本

install.sh脚本 :

#!/bin/bash
hub install ./deploy/hubserving/ocr_system/

run.sh脚本 :

#!/bin/bash
hub serving start -c ./deploy/hubserving/ocr_system/config.json

显示缺依赖"shapely"

直接安装 pip install shapely

继续执行install.sh脚本,如果还却依赖继续安装,直到可以安装和启动服务

如果pip速度慢可以设置清华源

下载离线安装包

查看当前环境的所有依赖

pip list

新建一个文件夹并进入

makdir paddle && cd paddle

创建requirements.txt文件

然后执行命令:pip install -r requirements.txt

将所有环境依赖写入requirements.txt :pip list --format=freeze > requirements.txt

下载requirements.txt中所有依赖到当前目录: pip download -d ./ -r requirements.txt

这里也建议写一个安装install.sh脚本

此脚本是离线安装所有依赖

#!/bin/bash
pip3 install --no-index --find-links=./ -r requirements.txt

整理安装文件

最后文件目录结构

部署文档详见另一篇文章

PaddleOCR(PaddleHub Serving)离线部署包制作的更多相关文章

  1. 最简单的方式离线部署Python依赖包

    最简单的方式离线部署Python依赖包 SHOW ME CODE! 打包: $ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX) $ pip wheel -r re ...

  2. 利用ArcGIS-Server瓦片制作离线地图包(*.tpk)_详细流程

    1.写在前面 本人是综合了好几个资料才最终制作成功,在这个过程中发现网上好多博客写的步骤不是很详细,因此就把自己的详细制作步骤全部分享出来,可以供需要的小伙伴参考. (1)本文档不讨论tpk文件的详细 ...

  3. C#开发BIMFACE系列47 IIS部署并加载离线数据包

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>与<C#开发BIMFACE系 ...

  4. C#开发BIMFACE系列48 Nginx部署并加载离线数据包

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列47 IIS部署并加载离线数据包>中详细介绍了IIS部署并访问的完整步 ...

  5. 手把手教你一套完善且高效的k8s离线部署方案

    作者:郝建伟 背景 面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案. 系统资源 编号 主机名称 IP 资源类型 CPU 内存 磁盘 01 ...

  6. 微服务架构 - 离线部署k8s平台并部署测试实例

    一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...

  7. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

  8. Node服务一键离线部署

    背景说明 项目测试通过,到了上线部署阶段.部署的机器安全限制比较严格,不允许访问外网.此外,没有对外网开放ssh服务,无法通过ssh远程操作. 针对上面提到的两条限制条件,通过下面方式解决: 无法访问 ...

  9. CentOS6.9下离线部署Django项目

    最近项目服务器变动,研究了CentOS6.9下httpd2.4+django1.11.16+python3.6+PostgreSQL的部署,之前还有一个ubuntu16.04下的部署等以后整理好后再来 ...

  10. Cesium 之简介以及离线部署运行篇

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. C ...

随机推荐

  1. C# 委托/回调

    public delegate void MyDelegate();//定义一个委托类型 MyDelegate myDelegate;//创建一个委托变量 myDelegate = new MyDel ...

  2. 转发-》c++ stl multimap基本操作使用技巧详细介绍

    c++ stl multimap基本操作使用技巧详细介绍 C++ stl  Multimap 和C++ stl  map 很相似,但是MultiMap允许重复的元素. C++ stl  Multima ...

  3. Linux下设置目录或文件可读写,但不可以删除权限

    例如:现在/home目录下有 :目录 data 和 文件 test.txt (1)设置/home/test.txt可读写但是不可以删除命令(文件设置): sudo chattr +a /home/te ...

  4. cocos2d-lua 控制台输入Lua指令方便调试

    用脚本进行开发,如果不能实时去输入指令,就丧失了脚本的一大特色,所以对cocos2d-x程序稍微修改下,使其可以直接从控制台读入lua指令,方便调试. 1 首先在行首加入lua的引用,如下 1 #in ...

  5. Python的入门复习一 Day 8——from“夜曲编程”

    Day 8 time: 2021.8.5. 原来P课程已经安排好了专题复习呢.所以,今天的重心就落在了角落知识点于相关课程实践上了.这次总结,也是一如既往地兵分两路呢. 注意事项: 格式化时,在前,引 ...

  6. web服务器应答状态代码(status)及其含义

    Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答 头,一个空行,内容文档.下面是一个最简单的应答   : 状态行包含HTTP版本.状态代码.与状态代码对 ...

  7. css可继承与不可继承的属性

    一.可继承性的属性 字体相关的:font-size/font-family/font-weight/font-style/font-variant/font-stretch 文本相关的:color/t ...

  8. XMind8破解,详细版(亲测)

    废话不多说,直接上料: 一.资源 百度网盘XMind8: 链接:https://pan.baidu.com/s/1h2DXkni4-POEpHyBqLxjwA 提取码:kqgy 破解补丁: 链接:ht ...

  9. Android学习——控件Notification

    1.创建Notification和NotificationManager 2.NotificationChannel 3.常用方法说明

  10. yolov5的训练中断恢复

    Yolov5的恢复训练 方法一:使用自带参数-resume 1. train.py文件中找到函数parse_opt,修改参数–resume的默认参数为Ture 2. runs/train/exp*/w ...