paddleocr的基本使用

paddleocr是paddlepaddle专门做ocr的库,我们简单用一下

  • 参考 PaddleOCR—图片文字识别提取—快速使用教程_paddleocr使用教程-CSDN博客

目录

1  安装

1.1  前言

1.2  安装paddleocr

1.3  安装paddlepaddle

1.4  安装cuda

1.5  安装cudnn

1.6  配置 zlibwapi.dll

2  基本使用

3  针对单行文本的识别

3.1  识别本地图像

3.2  服务

3.3  请求


1  安装

1.1  前言

我使用的系统为windows,python版本为python3.7,paddleocr版本为2.7.0.2

我的显卡是GTX970M,估计是硬件问题,后续使用代码的时候如果使用GPU就不能预测出结果,但CPU可以预测出结果。但在更新CUDA后,在任务管理器中可以查看到GPU的使用情况(之前很少)

综上所述下面安装paddlepaddle-gpu版流程是不一定正确的

1.2  安装paddleocr

pip intall paddleocr

1.3  安装paddlepaddle

之后安装paddlepaddle,由于3.7是很早的版本了,所以直接执行 pip install paddlepaddle-gpu 大概率是可以对应上paddleocr的,最终安装paddlepaddle的版本为2.5.2

1.4  安装cuda

paddlepaddle-gpu-2.5.2需要cuda与cudnn,我目前这两个版本都比较落后,所以我们需要安装一下新的

首先找到cuda的安装包 CUDA Toolkit Archive | NVIDIA Developer

这里的Version指的是windows server,一般选最新的就行,感兴趣可以看一下这个 windows server_百度百科

之后你会下载下来这样一个exe

打开

OK

  • 这个只是临时存放的路径,如果我们C盘空间不够可以换其他的地方

到100%后,等一会儿会出现这个

安装完cuda之后,显卡驱动会自动更新到合适的版本

如果按照上面的方式安装的话,默认安装在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0

安装之后环境变量也自动给你搞好了

确定这里有环境变量之后,我们重新启动一下,重启后执行 nvcc -V 可以显示cuda12.0

1.5  安装cudnn

我们首先进入cudnn的下载地址 Log in | NVIDIA Developer ,首先你需要登录一下

之后需要做个问卷,随便选选就行了,但是你最好每个空都填一填,不然通过不了

同意

更多

进到这个页面,这个页面需要加载一会儿,完全加载完毕后再进行下面的操作

向下滚到这,然后点击

点开之后点这个

之后你会获得这样一个压缩包

解压之后的文件夹内会有这四个文件

把这三个文件夹的东西,手动复制到CUDA的安装目录下

lib会有一个x64的子文件夹,你打开x64,把这些lib文件扔进去

1.6  配置 zlibwapi.dll

  • 参考 解决问题:Could not locate zlibwapi.dll. Please make sure it is in your library path!-CSDN博客

我直接用的人家的百度云链接,解压之后会得到这么三个文件

打开dll_x64找到zlibwapi.dll与zlibwapi.lib

将zlibwapi.lib放在CUDA/v12.0/lib/x64中

将zlibwapi.dll放在 CUDA/v12.0/bin 中

2  基本使用

我们准备预测这个图像

在预测前我们需要准备simfang.ttf

simfang.ttf 是仿宋字体,可以在 C:\Windows\Fonts 中找到

之后我们直接使用文档中的代码 doc/doc_ch/quickstart.md · PaddlePaddle/PaddleOCR - Gitee.com

对代码做一些修改

运行后会生成result.jpg

打开后是这样的

3  针对单行文本的识别

3.1  识别本地图像

比如验证码,我们先写个demo

from paddleocr import PaddleOCR# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch",use_gpu=False)  # need to run only once to download and load model into memory
img_path = './RandCode.png'
result = ocr.ocr(img_path, cls=True)
print()
print(result[0][0][1][0])

我现在想识别这个图像

运行后可以得到结果

3.2  服务

现在每一次预测都实例化一次对象,这个时间比较长,我们简单搞一个服务

3.3  请求

之后我们直接发请求就可以了

经测试车牌也可以检测出来,比如

但必须是单行文本(服务端只做了简单处理,如果处理好一点也没有问题),比如这个就不行

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++--ProtoBuf使用

一.什么是ProtoBuf 1.序列化和反序列化概念 序列化:把对象转变为字节序列的过程,称为系列化。 反序列化:把字节序列的内容恢复为对象的过程,称为反序列化。 2.什么情况下需要序列化和反序列化 存储数据:将内存中的对象…

Jmeter接口自动化02--JMeter的安装和使用

p02 高清B站视频链接 2.1 Windows环境 首先需要安装JDK,然后再部署JMeter。注意,JMeter对JDK的版本是有要求的,一般至少要JDK8,这也是目前开发过程中使用频繁的版本。 1. 安装JDK 从官网下载JDK:https://www.oracl…

Transformer详解【学习笔记】

文章目录 1、Transformer绪论2、Encoders和Decoder2.1 Encoders2.1.1 输入部分2.1.2 多头注意力机制2.1.3 残差2.1.4 LayNorm(Layer Normalization)2.1.5 前馈神经网路 2.2 Decoder2.2.1 多头注意力机制2.2.2 交互层 1、Transformer绪论 Transformer在做…

Hive数据定义(1)

hive数据定义是hive的基础知识,所包含的知识点有:数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、表的修改、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍:数据仓库的创建、数据仓…

2024年【电工(初级)】最新解析及电工(初级)模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 电工(初级)最新解析根据新电工(初级)考试大纲要求,安全生产模拟考试一点通将电工(初级)模拟考试试题进行汇编,组成一套电…

【数据链路层】802.11无线局域网的基本概述(湖科大慕课自学笔记)

802.11无线局域网基本概述 1:无线局域网(WLAN) 1:基本概述 2:802.11无线局域网可以分为以下两类 有固定基础设施的与无固定基础设施的 固定基础设施是指 我们来举例说明: 2:有固定基础设施…

python如何安装numpy

1. 根据python版本下载相应版本的numpy保存至D:\Program Files (x86)\Python\Python37\Scripts\ numpy下载地址 2. winR,输入cmd,打开命令行窗口,定位到python的安装目录 3. 输入python -m pip install numpy或定位到目录:D:\P…

02. 坦克大战项目-准备工作和绘制坦克

02. 坦克大战项目-准备工作和绘制坦克 01. 准备工作 1. 首先我们要创建四个类 1. Tank类 介绍:Tank 类主要用来表示坦克的基本属性和行为 public class Tank {private int x;//坦克的横坐标private int y;//坦克的纵坐标public int getX() {return x;}public v…

Pandas十大练习题,掌握常用方法

文章目录 Pandas分析练习题1. 获取并了解数据2. 数据过滤与排序3. 数据分组4. Apply函数5. 合并数据6. 数据统计7. 数据可视化8. 创建数据框9. 时间序列10. 删除数据 代码均在Jupter Notebook上完成 Pandas分析练习题 数据集可从此获取: 链接: https://pan.baidu.co…

基于Linux的Flappy bird游戏开发

项目介绍 主要是使用C语言实现,开启C项目之旅。 复习巩固C语言、培养做项目的思维。 功能: 按下空格键小鸟上升,不按下落; 显示小鸟需要穿过的管道; 小鸟自动向右飞行;(管道自动左移和创建&a…

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码,并对代码进行了详细的注释。最后,对算法的效果进行了测试。相信通过这个专栏,你可以对这些算法的原理及实现有深入的理解!   如有疑问&#xf…

NVMe系统内存结构 - PRP与PRP List

NVMe系统内存结构 - PRP与PRP List 1 为什么需要PRP2 PRP3 PRP List4 PRP寻址算法4.1 仅PRP1指向数据4.2 PRP1指向数据,PRP2指向数据4.3 PRP1指向数据,PRP2指向PRP List 本文属于《 NVMe协议基础系列教程》之一,欢迎查看其它文章。 1 为什么…