PaddleOCR(PaddleHub Serving)离线部署包制作
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:
- 安装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程序执行
- 输入安装路径, 直接输入
anaconda3即可,程序继续执行
- 提示是否写进环境变量,输入
yes
- 验证
conda info - 重新打开终端命令窗口
- 此时前边会出现 (base)
创建虚拟环境:
conda create -n paddle python=3.8-- python=3.8 : 指定Python版本,不指定默认Anacond3带的,这里不指定也可以
进入刚创建的虚拟环境
conda avtivate paddle
根据官网说明安装Paddlepaddle 和 paddlehub
- 执行命令:
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版本(顶部表格中有),如果支持直接执行上边命令即可。
验证Paddlepaddle 和 paddlehub:
执行命令
python3在 python 环境中 执行import paddle不报错即可exit()退出 python环境
直接执行 hub 验证 paddlehub是否安装成功
如果不成功显示却什么依赖安装什么依赖即可
将下载好的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 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)离线部署包制作的更多相关文章
- 最简单的方式离线部署Python依赖包
最简单的方式离线部署Python依赖包 SHOW ME CODE! 打包: $ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX) $ pip wheel -r re ...
- 利用ArcGIS-Server瓦片制作离线地图包(*.tpk)_详细流程
1.写在前面 本人是综合了好几个资料才最终制作成功,在这个过程中发现网上好多博客写的步骤不是很详细,因此就把自己的详细制作步骤全部分享出来,可以供需要的小伙伴参考. (1)本文档不讨论tpk文件的详细 ...
- C#开发BIMFACE系列47 IIS部署并加载离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>与<C#开发BIMFACE系 ...
- C#开发BIMFACE系列48 Nginx部署并加载离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列47 IIS部署并加载离线数据包>中详细介绍了IIS部署并访问的完整步 ...
- 手把手教你一套完善且高效的k8s离线部署方案
作者:郝建伟 背景 面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案. 系统资源 编号 主机名称 IP 资源类型 CPU 内存 磁盘 01 ...
- 微服务架构 - 离线部署k8s平台并部署测试实例
一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
- Node服务一键离线部署
背景说明 项目测试通过,到了上线部署阶段.部署的机器安全限制比较严格,不允许访问外网.此外,没有对外网开放ssh服务,无法通过ssh远程操作. 针对上面提到的两条限制条件,通过下面方式解决: 无法访问 ...
- CentOS6.9下离线部署Django项目
最近项目服务器变动,研究了CentOS6.9下httpd2.4+django1.11.16+python3.6+PostgreSQL的部署,之前还有一个ubuntu16.04下的部署等以后整理好后再来 ...
- Cesium 之简介以及离线部署运行篇
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. C ...
随机推荐
- python怎么实现正确的浮点数四舍五入
round 以下示例展示对于结构相同的两组数据(1.03575000和1.03425000)保留小数后4位,使用内置函数round方法的输出结果,并不是需要的结果 print(round(1.0357 ...
- node 内存全局配置(--max-old-space-size)
安装完了node和angular之后,使用powershell 窗口进行 ng build --prod打包,会提示内存溢出:JavaScript heap out of memory. 项目内打包解 ...
- 个人css样式
<style> .div1{ width:200px; height:100px; border:1px solid #dddddd; transition:all 0.5s linear ...
- 前端之Vue day07 混入、插件、elementui、Router、Vuex
一.Props补充 1.父传子在子组件标签上起自定义属性 使用数组 就不演示了,太简单了 2.限制传入的数据类类型 使用对象 同样,展示过的 3.props补充 就是套对象,加以限制 props:{ ...
- ctfshow web入门 命令执行 web29-36
29-36 全是基于get传参执行 eval() 函数,均采用黑名单匹配,不同点在于黑名单的变化 web29 1 error_reporting(0); 2 if(isset($_GET['c'])) ...
- 浏览器是如何区分http和https协议的
浏览器的默认解析 我们在浏览器的地址栏中输入一个域名 taobao.com(不要按回车), 然后将地址栏进行复制,粘贴到文本文件后,发现是 http://taobao.com/. 这是浏览器的默认解析 ...
- json 解析,JSON数组
public class resuleobj { public int returncode { get; set; } public string message { get; set; } pub ...
- java中取整数绝对值_Java之——位运算求整数绝对值通过下面的位运算可以得到一个整数的绝对值
public int abs( int a ) {return (a + (a >> 31)) ^ (a >> 31) ;//前半部分-1或+0,后半部分取反 } a为正数的情 ...
- 用有限差分估计(Finite Difference Estimate)解决地理坐标与平面像素坐标转换过程的误差造成风场粒子向量失真问题
下载NCEP的气象场grib2数据,风场是二维的向量,包含u和v两个分量.这个用经纬度投影到像素坐标会产生误差,直接绘制效果不太对:( 通过插值计算得到风场粒子的预测数据wind = interp ...
- Unity旧版图集和新版图集
1.关于旧版图集 ===>结论:设置PackingTag就可以了. ===>分析:设置好PackingTag,那么在进行打包的时候,同一个标签的会被打到1个图集里面,图集最大为2048x2 ...