银河麒麟之PaddleOCR模型部署

一、PaddleOCR简介

  PaddleOCR是一个基于飞桨框架开发的开源OCR工具,提供了一系列强大的文本识别功能。PaddleOCR支持多种文本识别任务,包括文字检测、文字识别、文本方向检测等。它具有高效、准确的特点,适用于多种场景下的文本识别需求,如身份证识别、车牌识别、表格识别等。PaddleOCR具有丰富的模型库,包括超轻量级的模型、高精度的模型等,用户可以根据具体需求选择合适的模型进行文本识别。此外,PaddleOCR还提供了易于使用的API接口和丰富的文档,方便用户快速部署和使用。博文实验环境如下:

  • 操作系统:银河麒麟V10 SP1
  • paddlepaddle:2.6
  • padleocr:2.7.1

二、安装要求

  PaddleOCR的最新版本是2.7.1,但是environment.md最近一次更新还是2年前了,所以这个环境要求已经过时,只是最低要求参考。PaddleOCR安装需要依赖PaddlePaddle,所以我们参照paddle安装时的版本python、cuda版本要求即可。我们安装PaddlePaddle最新稳定版本2.6
在这里插入图片描述

  • PaddlePaddle 2.6
  • python>=3.8
  • cuda>=11.2
  • swig=4.2.1

三、部署步骤

1、检查系统是否有GPU显卡

  使用命令"lspci | grep -i nvidia"查看主机是否有显卡,paddlenlp在cpu环境也可以运行,但是如果需要大模型功能需要GPU。
在这里插入图片描述

2、安装显卡驱动

  银河麒麟环境下安装显卡驱动参考博文银河麒麟之NVIDIA GeForce显卡驱动安装。使用nvidia-smi命令可以确认是否安装驱动,以及查看显卡参数和运行信息。
在这里插入图片描述

3、安装anaconda3

  anaconda3的安装可以参考博文Linux之anaconda3安装及使用,虽然系统略有区别,但是安装方式是一样的。anaconda3不是必须的,只是如果我们需要使用不同的python版本进行验证测试,anaconda3是一个非常不错的选择,通过虚环境管理,非常方便。

(base) wuhs@test:~/anaconda3$ conda --version
conda 24.1.2

4、创建一个paddleocr虚拟环境

  安装完成anaconda3后我们创建一个python版本为3.11.5的虚拟环境。

(base) wuhs@test:~$ conda create -n paddleocr python=3.11.5

5、切换到paddlenlp虚拟环境

  通过conda activate切换到新建的paddlenlp虚拟环境。

(base) wuhs@test:~$ conda activate paddlenlp
(paddleocr) wuhs@test:~$

6、安装paddle-gpu

  访问百度飞浆官网
在这里插入图片描述

(paddleocr) wuhs@test:~$ conda install paddlepaddle-gpu==2.6.0 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

7、验证paddle

(paddleocr) wuhs@test:~$ python
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import paddle
>>> paddle.version
‘2.6.0’

8、下载paddleocr的requirements文件

  访问paddlenlp的GitHub地址,可以下载该文件或者复制文件内容自己创建requirements.txt文件。
在这里插入图片描述

(paddleocr) bdsc@kylinv10:~/anaconda3/requirementfiles$ cat paddleocr_github.txt
shapely
scikit-image
imgaug
pyclipper
lmdb
tqdm
numpy
visualdl
rapidfuzz
opencv-python<=4.6.0.66
opencv-contrib-python<=4.6.0.66
cython
lxml
premailer
openpyxl
attrdict
PyMuPDF<1.21.0
Pillow

9、安装swig

  未安装swig,在安装依赖软件包PyMuPDF的时候会报错。
在这里插入图片描述

(paddleocr) wuhs@test:~/data/requirements$ pip3 install swig
Collecting swig
Downloading swig-4.2.1-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (3.6 kB)
Downloading swig-4.2.1-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 110.2 kB/s eta 0:00:00
Installing collected packages: swig
Successfully installed swig-4.2.1

10、根据requirements文件安装软件依赖

  根据创建的requirements.txt文件,使用pip3命令安装相关依赖软件包。

(paddlenlp) wuhs@test:~/data/requirements$ pip3 install -r paddleocr_github.txt
在这里插入图片描述

11、安装paddleocr

  pip方式安装paddleocr。

(paddleocr) wuhs@test:~/anaconda3$ pip3 install paddleocr
在这里插入图片描述

12、查验版本

  安装完成后使用pip3 show paddleocr或者conda list paddleocr命令查看版本是否正常输出显示。进入python交互模式,导入paddleocr模块看是否报错,无报错说明安装成功。

(paddleocr) wuhs@test :/data/bdscdata/code/lexical_analysis$ conda list paddleocr

paddleocr 2.7.0.3 pypi_0 pypi
(paddleocr) wuhs@test :~/anaconda3$ python
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import paddleocr
>>> paddleocr.version
‘2.7.0.3’

三、模型验证

  安装完成我们可以实验PaddleOCR在GitHub官网上的python代码进行功能验证。

1、上次一张图片到/tmp目录

  将需要识别的图片上传到指定目录。
在这里插入图片描述

2、python交互模式执行代码

  切换到paddleocr虚拟环境下,进入python交互模式执行如下代码。

from paddleocr import PaddleOCR, draw_ocr
ocr = PaddleOCR(use_angle_cls=True, lang="ch") 
result = ocr.ocr(img_path, cls=True)
for idx in range(len(result)):
    res = result[idx]
    for line in res:
        print(line)

3、查看结果

  执行完成后结果输出文字内容与图片一致说明,paddleocr大模型部署正常。
在这里插入图片描述

4、总结说明

  如果是基于GPU运行paddleocr还需要paddlepaddle支持,而paddle需要cuda、cudnn的支持,而且需要版本相匹配。如果没有GPU,也是支持CPU运行的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信息系统项目管理师——管理类计算

风险管理——风险曝光度 风险曝光度概率*影响&#xff0c;概率指风险发生的概率&#xff0c;影响指风险一旦发生&#xff0c;受到影响的项。 题号【GX20061101](61) 知识点[风险曝光度] 风险的成本估算完成后&#xff0c;可以针对风险表中每个风险计算其风险曝光度。某软件小…

Servlet测试1

通过按钮提交get,post请求&#xff0c;并且后端响应数据&#xff0c;显示到前端 当点击get按钮时 是发起Get请求 后端接收到Get请求后&#xff0c;把数据写入到body内 当点击pst按钮时 是发起Post请求 后端接收到Post请求后&#xff0c;把数据写入到body内 之后前端就从bod…

【机器学习300问】67、均方误差与交叉熵误差,两种损失函数的区别?

一、均方误差&#xff08;Mean Squared Error, MSE&#xff09; 假设你是一个教练&#xff0c;在指导学生射箭。每次射箭后&#xff0c;你可以测量子弹的落点距离靶心的差距&#xff08;误差&#xff09;。MSE就像是计算所以射击误差的平方后的平均值。它强调了每一次偏离靶心的…

Finetuning vs. Prompting:大语言模型两种使用方式

目录 前言1. 对于大型语言模型的两种不同期待2. Finetune(专才)3. Prompt(通才)3.1 In-context Learning3.2 Instruction-tuning3.3 Chain of Thought(COT) Prompting3.4 用机器来找Prompt 总结参考 前言 这里和大家分享下关于大语言模型的两种使用方式&#xff0c;一种是 Fine…

简单理解数据存取

1.存 1.从编写程序开始说起&#xff0c;源代码中初始化一个变量&#xff0c;在文本编辑器中显示的是10进制的数&#xff0c; 2.程序运行后&#xff0c;先在内存开辟相应空间&#xff0c;然后&#xff1a; &#xff08;开始实质用数据了&#xff09; 一.将十进制转换为二进制…

ASP.NET基于BS的计算机等级考试系统的设计与实现

摘 要 随着计算机技术的发展及计算机的日益普及&#xff0c;基于B/S结构的考试系统与无纸化办公一样已成为大势所趋。论文详细论述了一个基于B/S结构的计算机等级考试系统的设计过程。软件采用ASP.NET 2005作开发平台&#xff0c;C#作编程语言&#xff0c;SQL Server 2005作…

比较指令CMP

cmp 比较 将2个值比较输出给软元件 大于条件软元件得电 等于软元件1得电 小于软元件2得电 1&#xff0c;当计数起接通一次Y2得电 当计数器等于5时Y1 得电 当计数器大于5时Y0得电

python中time库的time.time()函数的作用是什么?

python中time库的time.time()函数的作用是什么&#xff1f; 作用&#xff1a;Python time time() 返回当前时间的时间戳&#xff08;1970纪元后经过的浮点秒数&#xff09;。 time()方法语法&#xff1a;time.time() #!/usr/bin/python # Write Python 3 code in this onlin…

蓝桥杯——18

学习视频&#xff1a;21-广度优先搜索练习_哔哩哔哩_bilibili Q&#xff1a;密码锁 #include<iostream> #include<queue> using namespace std; int s, e; bool vis[10000]; struct node {int state;int step;node(int s1, int s2) {state s1;step s2;} }; int…

《经典论文阅读2》基于随机游走的节点表示学习—Deepwalk算法

word2vec使用语言天生具备序列这一特性训练得到词语的向量表示。而在图结构上&#xff0c;则存在无法序列的难题&#xff0c;因为图结构它不具备序列特性&#xff0c;就无法得到图节点的表示。deepwalk 的作者提出&#xff1a;可以使用在图上随机游走的方式得到一串序列&#x…

Java 设计模式系列:模板方法模式

简介 模板方法模式是一种行为型设计模式&#xff0c;它定义一个操作中的算法骨架&#xff0c;将一些步骤推迟到子类中。模板方法模式使得子类可以不改变一个算法的结构&#xff0c;即可重定义该算法的某些特定步骤。 在模板方法模式中&#xff0c;抽象类中定义了一系列基本操…

网络篇10 | 网络层 IP

网络篇10 | 网络层 IP 01 简介02 名称解释03 IP报文格式(IPv4)1&#xff09;4位版本协议(version)2&#xff09;4位首部长度(header length)3&#xff09;8位服务类型(Type Of Service, TOS)4&#xff09;16位总长度5&#xff09;16位(分片)标识6&#xff09;3位(分片)标志7&am…

深度学习学习日记4.14 数据增强 Unet网络部分

数据增强 transforms.Compose([&#xff1a;这表示创建一个转换组合&#xff0c;将多个数据转换操作串联在一起 transforms.RandomHorizontalFlip()&#xff1a;这个操作是随机水平翻转图像&#xff0c;以增加数据的多样性。它以一定的概率随机地水平翻转输入的图像。 transfo…

coreldraw2024直装版下载 永久免费使用附下载安装教程( 仅限 win10用户 )

CorelDRAW 2024具有一些特别的优势&#xff0c;这些优势不仅体现在其丰富的功能和卓越的性能上&#xff0c;还体现在其跨平台的兼容性上。 首先&#xff0c;CorelDRAW 2024支持多种操作系统平台&#xff0c;包括但不限于Windows 10和Windows 11等高级操作系统。这意味着无论是…

webpack-(plugin,本地服务器,路径别名,安装vue)

安装vue npm i vue-loader -D npm i vue 编写一个vue文件&#xff1a; 在index.html中设置 一个id为app的div 将vue文件挂载到app中 vue比较特殊&#xff0c;除了使用loader外&#xff0c;还使用了plugin const path require("path"); const { VueLoaderPlugin …

zabbix 使用 dataease 做数据大屏

1、环境介绍 操作系统&#xff1a;龙蜥os 7.9 软件&#xff1a;dataease v1.18.18 zabbix&#xff1a; 6.0 2、软件下载 https://community.fit2cloud.com/#/products/dataease/downloads 3、将软件包上传到服务器并解压缩 tar -xvf dataease-v1.18.18-offline.tar.gz4、修改…

鸿蒙端云一体化开发--开发云函数--适合小白体制

开发云函数 那什么是云函数&#xff1f;我们将来又怎么去使用这个云函数呢&#xff1f; 答&#xff1a;我们之前要编写一些服务端的业务逻辑代码&#xff0c;那现在&#xff0c;在这种端云一体化的开发模式下&#xff0c;我们是把服务端的业务逻辑代码&#xff0c;通过云函数来…

Mybatis中SqlSession接口中的selectList方法

1、SqlSession SqlSession是Mybatis持久层框架提供的接口&#xff0c;该接口中包含了大量的CRUD操作方法&#xff08;既增删改查方法&#xff09;。 2、selectList方法 selectList方法是用于查询的方法&#xff0c;该方法具有多态性&#xff0c;如图所示&#xff08;打开myb…

qemu源码解析一

基于qemu9.0.0 简介 QEMU是一个开源的虚拟化软件&#xff0c;它能够模拟各种硬件设备&#xff0c;支持多种虚拟化技术&#xff0c;如TCG、Xen、KVM等 TCG 是 QEMU 中的一个组件&#xff0c;它可以将高级语言编写的代码&#xff08;例如 C 代码&#xff09;转换为可在虚拟机中…

51单片机-独立按键模块

1. 独立按键控制LED状态 轻触按键实现原理&#xff1a;按下时&#xff0c;接通&#xff0c;通过金属弹片受力弹动来实现接通和断开。 松开按键 按下之后&#xff1a;就会被连接 同时按下K1和K2时&#xff0c;P2_0,接口所连LED灯才亮。 #include <REGX52.H> void ma…