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.shsh 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. 1163:阿克曼(Ackmann)函数

    我的博客: https://www.cnblogs.com/haoningdeboke-2022/ 1163:阿克曼(Ackmann)函数 时间限制: 1000 ms         内存限制: 65 ...

  2. XYZtoZXY

    Quaternion XYZtoZXY(Vector3 p) { Vector3 v = new Vector3(p.x, -p.y, -p.z); Quaternion qx = Quaternio ...

  3. go 下的查询数据库的框架 ORM框架:访问mysql数据库

    运维的基友 习惯使用python了,学习go的时候是不是被gorm 恶心死了 例如python flask 框架下的orm那么好用简单 ,或者号称 世界上最好用的语言php的同学们也是非常的苦恼呢 很 ...

  4. 卸载K8s集群及k8s命令自动补全

    一.配置命令自动补全 yum install -y bash-completion source /usr/share/bash-completion/bash_completion source & ...

  5. web基础(4): CSS布局与定位

    chapter 5 CSS 布局与定位 web 前端开发的时候不是马上就考虑字体 字号这些细节,而是要先定下布局,也就是页面结构.    右图中一个个栏目就像是"盒子",每个盒子的 ...

  6. 升级grafana

    We recommend everyone to upgrade Grafana often to stay up to date with the latest fixes and enhancem ...

  7. Java脚本操作mysql和接口

    一.Java操作MySQL 1.插入insert 1 import java.sql.*; 2 import java.util.UUID; 3 4 public class BigData { 5 ...

  8. Laravel ORM 常用方法

    1. 数据查询 ->find($id);  //需要一个主键$id并返回一个模型对象.若不存在则返回null ->findOrFail($id);  //需要一个主键$id并返回一个模型对 ...

  9. springboot+mybatis实现增删改查

    开发工具IDEA 一.创建springboot项目(可以百度或者点击查看) 二.添加依赖pom.xml 1 <?xml version="1.0" encoding=&quo ...

  10. 快速排序(QuiteSort)

    快速排序算法(QuiteSort)是基于分治策略的一个算法.其基本算法是,对于输入的子数组a[p,r],按以下3个步骤进行排序: (1)分解(divide):以 a[p]为基准元素将a[p:r]划分成 ...