Ubuntu上跑通PaddleOCR

news2024/12/27 16:22:29

书接上文。刚才说到我已经在NUC8里灌上了Windows Server 2019。接下来也顺利的启用了Hyper-V角色并装好了一台Ubuntu 22.04 LTS 的虚机。由于自从上回在树莓派上跑通了Paddle-Lite-Demo之后想再研究一下PaddleOCR但进展不顺,因此决定先不折腾了,还是从x64平台上做起,至少先能跑通体验一下。

进入Ubuntu,先做常规更新工作:
sudo apt update
sudo apt upgrade

安装一些远程工具。建议ssh装上:
sudo apt install xrdp ssh

其它实用工具,建议smbclient装上:
sudo apt install git smbclient

给$PATH添加一条路径,推荐这会儿先做掉:
cd
sudo nano ./.bashrc
最后添加一行:
export PATH=/home/ki/.local/bin:$PATH
sudo reboot

至此准备工作完毕,接下来开始安装PaddleOCR相关的软件:

sudo apt install cmake libopencv-dev python3-pip 
python3 -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple

期间可能有个报错,版本依赖有问题,暂时可以忽略。


至此就算安装完毕可以测试了。

 我的测试用例有一个图片和一个pdf。我是在Ubuntu上用smbclient命令访问Windows上共享目录得到的。在Windows上运行WinSCP也是个可行的办法。

先看看图片的识别效果:

 命令行为:paddleocr --image_dir 图片文件名 --lang ch。lang参数指出用什么语言去解读。ch是指中英文。第一次运行时会下载一些必要的模型。


 

 识别正确。

PDF识别稍微有点小问题,要改一下源代码。命令行和识别图片几乎一致,只要把图片文件名改成pdf文件名即可。


 

 但会报错。解决办法也很简单粗暴,根据提示直接改就是了。一共两处。

 之后就可以运行了。不妨对比下原始pdf和识别出的效果:

 识别率满意。

最后,如果实在介意那个版本依赖造成的错,有人说可以这么操作算是打个补丁:

pip uninstall onnx
python3 -m pip install protobuf==3.20.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m pip install onnx==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

尚未亲测,仅供参考。

====^^^^====
测过了,没用,但似乎也没影响。

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

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

相关文章

python常见问题总结

对于长期深耕在python爬虫的程序员来说,如何快速解决代码中的问题它是作为合格的程序员应该具备的基本素质。下面将我总结整理出有关python的一些常见问题记录下来方便后期查证。 Python python 没有多态,而是鸭子类型 多继承,没有接口&…

【操作系统】CPU 缓存一致性

【操作系统】CPU 缓存一致性、MESI 协议 参考资料: CPU缓存一致性协议(MESI) 【JUC】Java并发机制的底层实现原理 CPU 缓存一致性 文章目录 【操作系统】CPU 缓存一致性、MESI 协议CPU Cache 的数据写入写直达写回 缓存一致性问题总线嗅探MESI 协议总结 CPU Cache …

springboot:缓存不止redis,学会使用本地缓存ehcache

0. 引言 随着redis的普及,更多的同学对redis分布式缓存更加熟悉,但在一些实际场景中,其实并不需要用到redis,使用更加简单的本地缓存即可实现我们的缓存需求。 今天,我们一起来看看本地缓存组件ehcache 1. ehcache简…

python+vue 市政工程资源互助平台的设计与实现

该系统将由用户系统,管理员系统两部分组成。用户有个人和vip两种类型。 用户模块包括登录注册功能,登录字段包括用户名,密码,用户身份以及验证码。注册包括用户名,密码,邮箱,电话号码&#xff0…

vite+vue+element-plus完成一个admin管理后台

整体项目的 访问链接:https://bigmiss.top/demo/index.html 用到的技术整理 名称版本安装命令说明vite4.0.0npm init vitelatest构建Vue项目vue3.2.45npm install vuenext渐进式框架(在vite已安装)element-plus3.7.5npm install element-plu…

C#调用C++封装的SDK库(dll动态库)——下

C#调用C封装的SDK库(dll动态库)——下 一、说明 上一篇我们相当于封装的是C语言风格的动态dll库,供C#来调用的。 C#调用C封装的SDK库(dll动态库)——上 如果我们要封装的是下面的类呢?我们该怎么办?大家先思考下。 class Calculation { p…

Tomcat常用操作

Tomcat时间长不用,居然不会用了,这里用的Tomcat9.0.74,对应的jdk版本是jdk8与jdk11。 先看他的把Tomcat安装上去:Tomcat9的安装 运行与关闭Tomcat winr输入cmd。在运行窗口输入startup.bat,回车,启动Tom…

Java基础:对象的克隆(复制)

假如想复制一个简单变量。很简单: int apples 5; int pears apples; 不仅int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就复杂了。 假设说我是一个b…

webpack----开发服务器

文章目录 devServer抽取csscss的兼容性压缩cssjs语法检查js的兼容性 devServer 每次编辑源码后,都要webpack重新打包,才能看到效果,麻烦!使用webpack-dev-server 自动打包编译源码配置 // webpack.config.js ... mode: "de…

shell中的for循环和if判断

一.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10 1.创建脚本for1.sh [rootserver ~]# vim for1.sh 2.编写脚本for1.sh 3.执行脚本for1.sh [roo…

linux命令----- mkdir与rmdir

创建与删除目录 一 mkdir1.mkdir 目录名2.mkdir -p 目录一/目录二 二 rmdir1.rmdir 目录名2.删除非空目录时失败3. rmkdir -p 目录1/目录2 一 mkdir mkdir是make directories的缩写,主要用于linux中创建目录 创建的目录不能和同级目录中已经存在的目录重名可以mkd…

【产品经理】系统上线自查清单

产品上线之前的准备工作,看起来简单,实际做起来是非常繁杂的,如果没有尽早考虑和准备,可能会手忙脚乱甚至导致产品延迟上线。 产品上线前的准备工作听起来简单,但实际做起来非常繁杂。除了要考虑用户需求、商业需求外&…

计算广告(十八)

营销组合模型 MMM 分析背景 随着媒体类型和销售渠道的不断变化,客户旅程日益复杂化。单一活动层面的优化已无法满足客户需求。为了应对这一挑战,品牌方需在战略和活动层面构建完整的营销视图,优化各营销渠道间的效率并实现最高投资回报率。…

【BIM+GIS】ArcGIS Pro3.0打开多种格式三维模型案例教程

本文讲解在ArcGIS Pro3.0打开BIM模型(.rvt)、倾斜模型OSGB、Sketchup(.skp)、3d max(.3ds)、点云数据(.las)的方法及注意事项。 文章目录 一、ArcGIS Pro打开BIM(.rvt)二、ArcGIS Pro打开倾斜OSGB三、ArcGIS Pro打开Sketchup(.skp)四、ArcGIS Pro打开3d max(.3ds)…

C++ [模板]

本文已收录至《C语言》专栏! 作者:ARMCSKGT 目录 前言 正文 泛型编程 问题引入 泛型 函数模板 概念 格式 使用方式 模板原理 模板的实例化 隐式实例化 显示实例化 模板匹配规则 类模板 类模板定义格式 类模板的实例化 非类型模板参数 …

【13 Listener 学习笔记】

Listener 笔记记录 1. Listener监听器2. 监听对象的监听器2.1 ServletContetListener2.2 HttpSessionListener2.3 ServletRequestListener 3. 监听域对象属性变化的监听器3.1 ServletContextAttributeListener3.2 HttpSessionAttributeListener3.3 ServletRequestAttributeList…

每日一个小技巧:如何去水印而不损图片?赶紧学起来

在数码时代中,照片的处理与分享已经成为了我们日常中不可或缺的一部分。但是,大家在网上保存的图片常常会带有水印,非常影响图片的观赏性。水印旨在防止照片被盗用或侵权,但有时候它也很破坏照片的美感,因此许多人都在…

超级实用的C++学习网站

重要说明:该博客长期更新,方便读者查阅! 一、参考资料 学习C这几个网站足矣 二、C学习网站 C中文网 cppreference 当之无愧的C学习第一网站。该网站希望给程序员提供一个关于C和C的完整的在线参考,所以它的内容非常的丰富。有…

动态类型语言、静态类型语言、强类型语言、弱类型语言解释

首先要明确这些名词都是针对数据类型展开的各自定义,同样针对数据类型在编译时和运行时会有一些限定或者规则存在。动态类型语言不能等同于弱类型语言,静态类型语言也不能等同于强类型语言。 静态类型语言和动态类型语言放到一个维度来进行评价类型系统&…

ClickHouse物化视图

目录 1 概述1.1 物化视图与普通视图的区别1.2 优缺点1.3 基本语法 2 案例实操2.1 准备测试用表和数据2.2 创建物化视图2.3 导入增量数据2.4 导入历史数据 1 概述 ClickHouse 的物化视图是一种查询结果的持久化,它确实是给我们带来了查询效率的提升。用户查起来跟表没…