Ubuntu 14.04:PaddleOCR基于PaddleServing的在线服务化部署(失败)

news2024/11/26 16:45:17

一、

二、安装

注:

安装 PaddleOCR 2.3 。

因为 PaddleOCR 2.4 的 推荐环境 PaddlePaddle >= 2.1.2。

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/environment.md

安装前的环境准备

在使用Paddle Serving之前,需要完成如下任务:

(1)安装python 3.8 

具体安装方法请参见 Ubuntu 14.04:安装PaddlePaddle(Conda安装)-CSDN博客 


(2)安装paddlepaddle 2.0.0

具体安装方法请参见 Ubuntu 14.04:安装PaddlePaddle(Conda安装)-CSDN博客 

 参考资料:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_ch/environment.md

安装时的运行环境准备

准备 PaddleOCR 的运行环境链接

下载 PaddleOCR 2.3

https://codeload.github.com/PaddlePaddle/PaddleOCR/zip/refs/heads/release/2.3

上传到目标位置,解压

unzip PaddleOCR-release-2.3.zip

注:

官方文档中,是 clone。

因为我 clone 时有异常,偷懒不想处理,就直接下载包,然后安装。

查看 github 中的 PaddleOCR 版本

GitHub - PaddlePaddle/PaddleOCR

准备 PaddleServing 的运行环境

参考资料:https://github.com/PaddlePaddle/Serving/blob/v0.9.0/doc/Latest_Packages_EN.md

 查看版本

https://github.com/PaddlePaddle/Serving

切换到 PaddleOCR 的运行环境中的 pdserving 目录

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving
 

paddle-serving-server:paddle_serving_server-0.9.0-py3-none-any.whl

安装server,用于启动服务

下载

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server-0.9.0-py3-none-any.whl

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_server-0.9.0-py3-none-any.whl

paddle-serving-app:paddle_serving_app-0.9.0-py3-none-any.whl

下载

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/arm/paddle_serving_app-0.9.0-py3-none-any.whl

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_app-0.9.0-py3-none-any.whl

paddle-serving-client: paddle_serving_client-0.9.0-cp38-none-any.whl

安装client,用于向服务发送请求。

下载

下载链接:

https://github.com/PaddlePaddle/Serving/blob/v0.9.0/doc/Latest_Packages_EN.md

注:不同的Python版本,对应不同哦!

也可以直接用wget:

wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_client-0.9.0-cp38-none-any.whl

whl包放到目标位置

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving

安装

注:此处需要进入paddlepaddle所在的Anaconda虚拟环境,那里面才有pip3。

pip3 install paddle_serving_client-0.9.0-cp38-none-any.whl

inference 模型转换

使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。

模型存放位置

切换到 PaddleOCR 的运行环境中的 pdserving 目录
/home/xxx/PaddleOCR-release-2.3/deploy/pdserving

创建目录:inference

mkdir inference

模型存放位置

/home/xxx/PaddleOCR-release-2.3/deploy/pdserving/inference

模型下载链接

模型下载链接1

GitHub - PaddlePaddle/PaddleOCR at release/2.3

 模型下载链接2:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_en/models_list_en.md

OCR 文本检测模型

下载并解压

可以下载包,上传至目标位置,也可以wget。

我这里是wget,省去上传的步骤。

wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar -O ch_PP-OCRv2_det_infer.tar && tar -xf ch_PP-OCRv2_det_infer.tar

转换模型

OCR 文本识别模型

下载并解压

可以下载包,上传至目标位置,也可以wget。

我这里是wget,省去上传的步骤。

wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_infer.tar -O ch_PP-OCRv2_rec_infer.tar &&  tar -xf ch_PP-OCRv2_rec_infer.tar

转换模型

异常处理

上面转换模型时,出现下面的异常

ImportError: dlopen: cannot load any more object with static TLS

问题点:~/workspace/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddle/fluid/core.py

dlopen: cannot load any more object with static TLS问题解决-CSDN博客

解决方案:升级glibc版本到2.23。

20240312 娟娟:因为glibc升级可能引起系统奔溃,所以下面流程不再处理,转 PaddleHub Serving 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的常见车型识别系统(Python+PySide6界面+训练代码)

摘要:本文深入探讨了如何应用深度学习技术开发一个先进的常见车型识别系统。该系统核心采用最新的YOLOv8算法,并与早期的YOLOv7、YOLOv6、YOLOv5等版本进行性能比较,主要评估指标包括mAP和F1 Score等。详细解析了YOLOv8的工作机制&#xff0c…

【力扣白嫖日记】1321.餐馆营业额变化增长

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1321.餐馆营业额变化增长 表:Customer 列名类型cutomer_idintnamevarcharvisited_ondateamounti…

阻塞队列学习

1、什么是阻塞队列? 顾名思义,就是支持阻塞的队列,相比于其他的队列,阻塞队列支持以下特性: 队列为空的时候,获取元素的线程会等待队列变为非空。队列为满的时候,存储元素的线程会等待队列可以…

初学者必会的Python3文件操作

文件操作的步骤: 打开文件 -> 操作文件 -> 关闭文件 切记:最后要关闭文件。 打开文件 文件句柄 open(文件路径, 模式) 指定文件编码 文件句柄 open(文件路径,模式,encodingutf-8) 为了防止忘记关闭文件,可以使用上下文管理器来…

计算机steam_api.dll丢失的解决方法,轻松搞定steam游戏问题

在计算机运行相关游戏软件时,我们常常会遇到一些错误提示,其中之一就是“由于找不到steamapi.dll,无法继续执行代码”,如果找不到steam_api.dll文件,将无法正常启动并运行基于Steam平台的游戏。。那么,如何…

镜面不锈钢氮气柜主要功能和应用领域介绍

镜面不锈钢氮气柜是一种专为特殊物品储存设计的高级储存设备,它结合了不锈钢材质的优良耐腐蚀性、易清洁性和氮气储存技术,确保内部储存的物品处于高度洁净、干燥且稳定的低氧环境中。以下是其主要功能介绍: 防潮保护:氮气柜通过填…

字节跳动也启动春季校园招聘了(含二面算法原题)

字节跳动 - 春招启动 随着各个大厂陆续打响春招的响头炮,字节跳动也官宣了春季校园招聘的正式开始。 还是那句话:连互联网大厂启动校招计划尚且争先恐后,你还有什么理由不马上行动?! 先来扫一眼「春招流程」和「面向群…

双环PID控制详细讲解

参考博客: (1)PID双环控制(速度环和位置环) (2)PID控制(四)(单环与双环PID) (3)内外双环pid算法 0 单环PID 目标位置→系…

【spring】-多模块构建二-问题整理

1、bean注入问题 The injection point has the following annotations: - org.springframework.beans.factory.annotation.Autowired(requiredtrue) 解决1: 由于引入的bean类 不属于启动类的子模块下,需要在启动类手动声明扫描的类 也适用于公共子模…

探索HDFS读写流程、节点机制和数据完整性

目录 写在前面一、HDFS的读写流程1.1 HDFS写数据流程1.2 机架感知1.3 HDFS读数据流程1.4 小结 二、 NameNode和SecondaryNameNode2.1 NN和2NN工作机制2.2 Fsimage和Edits解析2.2.1 oiv查看Fsimage文件2.2.2 oev查看Edits文件 2.3 CheckPoint时间设置 三、DataNode3.1 DataNode工…

每日一题——LeetCode2129.将标题首字母大写

方法一 个人方法 将字符串转为数组&#xff0c;遍历数组&#xff0c;对数组的每一个元素&#xff0c;先全部转为小写&#xff0c;如果当前元素长度大于2&#xff0c;将第一个字符转为大写形式 var capitalizeTitle function(title) {titletitle.split( )for(let i0;i<tit…

[嵌入式系统-37]:龙芯1B 开发学习套件 -6-协处理器CP0之CPU异常处理与外部中断控制器的中断处理

目录 一、MPIS CPU Core与32个异常exception 1.1 龙芯1B的MIPS CPU IP Core 1.2 MIP32指令系统 1.3 MIPS CPU寄存器 1.4 龙芯异常exception与中断interrupt的区别 1.5 向量中断与非向量中断 1.6 MIPS CPU的异常向量与异常向量号&#xff1a;向量中断的支持 二、协议处理…

PAT-素数专题、质因子分解、大整数计算

素数专题 1007.素数对的猜想 让我们定义dn​为&#xff1a;​ &#xff0c;其中pi​是第i个素数。显然有d1​1&#xff0c;且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<105)&#xff0c;请计算不超过N的满足猜想…

新火种AI|在撕裂中求前进:OpenAI最近的日子,属实不太好过。

作者&#xff1a;小岩 编辑&#xff1a;彩云 伴随着ChatGPT 火遍全球&#xff0c;OpenAI俨然成为了备受全世界关注的主角。因为有横空出世的GPT-4&#xff0c;重磅炸弹视频生成模型Sora等产品&#xff0c;OpenAI始终都是以行业霸主的姿态出现在人们的视野中。也正是因为OpenA…

vue使用elementPlus ui框架,如何给Dialog 对话框添加Loading 自定义类名显示隐藏

vue使用elementPlus ui框架时&#xff0c;如何给Dialog 对话框添加Loading 自定义类名&#xff0c;想要实现dialog对话框区域有loading效果 官方给出的这个API配置项customClass&#xff0c;使用不太明确。暂时无法实现绑定class。 最后的实现方式&#xff1a; <template&…

数据分析-Pandas如何观测数据的中心趋势度

数据分析-Pandas如何观测数据的中心趋势度 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据…

Redis中的缓存设计

缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常处于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失去了缓存保护后端存储的意义。…

基于PyTorch深度学习实战入门系列-Numpy基础全

Numpy的使用 导入Numpy模块 import numpy as np创建数组&#xff08;一维数组、小数数组、二维数组&#xff09; # 创建一个一维数组 n1 np.array([1, 2, 3]) # 创建一个含有小数的一维数组 n2 np.array([0.1, 0.2, 0.3]) # 创建一个简单的二维数组 n3 np.array([[1, 2], [3…

Apache SkyWalking 监控 Linux 实战

SkyWalking 从 8.4 版本开始支持监控主机&#xff0c;用户可以轻松从 dashboard 上检测可能的问题&#xff0c;例如当 CPU 使用过载、内存或磁盘空间不足或者当网络状态不健康时等。 与监控 MySQL Server 类似&#xff0c;SkyWalking 也是利用 Prometheus 和 OpenTelemetry 收集…

数据结构-链表(一)

一、链表简介 链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储和组织数据。与数组不同&#xff0c;链表的元素&#xff08;节点&#xff09;在内存中不必连续存储&#xff0c;而是通过指针链接在一起。 链表由多个节点组成&#xff0c;每个…