服务器win10server,python安装paddleocr的踩坑日记

news2024/12/23 19:47:58

最近由于需要图像文字识别的简单业务,研究了一下,一是用大厂的文字识别api,如百度腾讯等,但这种免费版只有有限的调用次数,如百度只有每月只有1000次调用额度,个人也够用,但由于业务量大,所以再看看其他本地识别的模型,现在做的比较完善的就是paddleocr,于是开始了一段折磨之旅

paddleocr官方github:GitHub - PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)icon-default.png?t=N7T8https://github.com/PaddlePaddle/PaddleOCR我的安装在云服务器win10 server2022版,在此之前已经安装了python3.12.3,所以只需要安装paddleocr即可

在此之前,先确认cpu架构是否是64位,执行下面python指令

python -c "import platform;print(platform.architecture()[0]);print(platform.machine())"

输出为如下,第一行输出的是”64bit”,第二行输出的是”x86_64”、”x64”或”AMD64”即可:

1. 我们打开上面的网址,找到文档教程-》快速开始,点进来之后,下拉有个安装步骤,看起来挺简单的,两步就行

先说明安装paddleocr之前必须先安装paddlepaddle(飞浆)框架,它是百度研发的深度学习框架,我们只需要成功安装它,之后只会用到paddlerocr,你可以理解paddlerocr是paddlepaddle的子集,是通过模型训练出来的针对图像文字识别的开源库,也说明paddleocr依赖于paddlepaddle。如下官网:

paddlepaddle官网:飞桨PaddlePaddle-源于产业实践的开源深度学习平台飞桨致力于让深度学习技术的创新与应用更简单。具有以下特点:同时支持动态图和静态图,兼顾灵活性和效率;精选应用效果最佳算法模型并提供官方支持;真正源于产业实践,提供业界最强的超大规模并行深度学习能力;推理引擎一体化设计,提供训练到多端推理的无缝对接;唯一提供系统化技术服务与支持的深度学习平台icon-default.png?t=N7T8https://www.paddlepaddle.org.cn根据上面的安装教程,由于我的服务器没有英伟达显卡,所以我装cpu版本的paddlepaddle一切顺利,再安装paddleocr第一次报错

ModuleNotFoundError: No module named 'patch_ng'

它的意思是找不到patch_ng的模块,网上有个教程是手动安装patch_ng,我试了再安装paddleocr还是报一样的错

pip install patch_ng

接着我又找到一个说法是python3.12会有问题,可以安装python3.9解决,于是我将3.12卸载,并把安装目录删除,本身我不太想装太老的python版本,我就从3.11开始往下试(由于我并没有在安装时记录每一步安装和报错截图,所以只能回忆踩坑经历)

2. 我先成功安装好3.11和paddlepaddle最新版本,再安装paddleocr后第二次报错

'libpaddle' is not defined ImportError: DLL load failed while importing libpaddle

开始我只搜了一下网上有没有解决方法,看到一个说法是:没有安装2015 Redistributable库,下载地址:Download Microsoft Visual C++ 2015 Redistributable Update 3 from Official Microsoft Download Center

我查看了一下我的电脑是已经装了的,但我还是将它卸载后重新安装,但还是报这个错,于是我认为可能是python版本不对,我将3.10/3.9都按相同的方法进行安装,(tips:卸载后一定记得把之前的安装目录删除,不然如果又安装在同一个文件夹下,会报错Could not install packages due to an OSError; [Errno 2] No such file or directory: "")

但还是报相同的'libpaddle'错,于是又在网上查询,有一个说法是paddlepaddle2.6开始有些机器会报'libpaddle'错,必须降版本,于是按照说法将paddlepaddle的版本降到了2.4

3. 安装2.4后,开始第三次报错

Your machine doesn't support AVX, but the installed PaddlePaddle is avx core

这个报错是说我的机器不支持avx,但安装的paddlepaddle版本是一个只支持avx指令集的框架,我用cpuz看了下,确实不支持,很老的cpu了

于是我在网上又搜了下解决方法,是说可以装个noavx的paddlepaddle版本,而支持的python版本最高版本也只有3.8,又开始重复步骤,卸载3.9安装3.8.10的版本python,并安装支持noavx最高版本为2.4.2的paddlepaddle

由于不支持avx指令集,只能用以下命令安装

  • cpu、mkl版本noavx机器下载paddlepaddle包:

    python -m pip download paddlepaddle==2.4.2 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/noavx/stable.html --no-index --no-deps
  • cpu、openblas版本noavx机器下载paddlepaddle包:

    python -m pip download paddlepaddle==2.4.2 -f https://www.paddlepaddle.org.cn/whl/windows/openblas/noavx/stable.html --no-index --no-deps
  • 最后进行安装,使用如下命令:

    python -m pip install .\paddlepaddle-2.4.2-cp38-cp38-win_amd64.whl -i https://mirror.baidu.com/pypi/simple

成功安装后,命令行进行python,输入下面的代码,出现 PaddlePaddle is installed successfully!,说明安装成功

import paddle
paddle.utils.run_check()

4. 感觉已经成功一半了,接下来就是安装paddleocr了,结果开始第四次报错

TypeError: Descriptors cannot be created directly.If this call came from a _pb2.py file

TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

网上查了下,解决方法是降protobuf版本降级至3.20,pip安装低版本的即可

pip install protobuf==3.20 -i https://mirror.baidu.com/pypi/simple

5. 再次重新安装paddleocr,开始第五次报错

name 'predict_system' is not defined

因为我安装paddleocr没有指定版本,默认是最新版2.7.5,但好像这个版本可能会出上面这个报错,解决方法是降级,我安装的是2.7.0版本,成功运行

pip install paddleocr==2.7.0.0 -i https://mirror.baidu.com/pypi/simple

随便截了一张图进行测试,如下图进行ocr文字识别

代码如下:

from paddleocr import PaddleOCR, draw_ocr
 
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)
img_path = r'testocr.PNG'
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)

输出结果:

[[[[373.0, 27.0], [552.0, 27.0], [552.0, 51.0], [373.0, 51.0]], ('示例-高精Al翻译', 0.9320504069328308)], [[[29.0, 51.0], [86.0, 51.0], [86.0, 77.0], [29.0, 77.0]], ('原文:', 0.9745678305625916)], [[[31.0, 91.0], [544.0, 90.0], [544.0, 113.0], [31.0, 114.0]], ('天下事有
难易乎?为之,则难者亦易矣;不为,则易者亦难矣', 0.9740261435508728)], [[[31.0, 140.0], [104.0, 140.0], [104.0, 165.0], [31.0, 165.0]], ('Al翻译:', 0.9500085115432739)], [[[33.0, 182.0], [536.0, 182.0], [536.0, 202.0], [33.0, 202.0]], ('Isthereanythingdifficultoreasyintheworld?Doit,', 0.9869545698165894)], [[[34.0, 212.0], [514.0, 213.0], [514.0, 234.0], [34.0, 233.0]], ('andthedifficultthingbecomeseasy;Donotdoit,', 0.9875576496124268)], [[[34.0, 245.0], [386.0, 245.0], [386.0, 265.0], [34.0, 265.0]], ('andtheeasythingbecomesdifficult.', 0.9863361120223999)], [[[471.0, 288.0], [526.0, 288.0], [526.0, 310.0], [471.0, 310.0]], ('去试试', 0.9974588751792908)]]

看起来还是蛮准确的,不错

安装过程中给我一路折腾,我以为我的cpu太老可能使用不了这个本地模型,但结局是好的,初步能运行起,之后遇到其他问题再记录。

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

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

相关文章

通天星CMSV6车载定位监控平台 point_manage/merge SQL注入致RCE漏洞复现

0x01 产品简介 通天星CMSV6车载定位监控平台拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队,专注于为定位、无线视频终端产品提供平台服务,通天星CMSV6产品覆盖车载录像机、单兵录像机、网络监控摄像机、行驶记录仪等产品的视频综合平台。 0x02 漏洞概述 …

泛微E9开发 根据判断条件,控制字段的编辑/必填属性

根据判断条件,控制字段的编辑/必填属性 1、需求说明2、实现方法3、扩展知识点1. 注册钩子事件,指定动作完成后触发1.1 接口名称及参数说明1.2 案例 2. 改变单个字段显示属性(只读/必填等)2.1 参数说明2.2 案例 1、需求说明 当字段“填报人”和字段“姓名…

测试基础15:测试用例设计方法-场景设计(流程分析)

课程大纲 1、定义 系统多个功能串联形成业务流程,不仅需要验证正确的主流程,而且需要验证各个功能点各种异常情况。 2、应用场景 与因果图&判定表方法的相似之处:界面需手动填写的输入框少,基本只需选择有限的几个&#xff08…

小型数据中心是什么?如何建设?

在数字化时代,小型数据中心正成为许多企业和组织加强数据管理和服务扩展的理想选择。与传统大型数据中心相比,小型数据中心以其灵活性、高效性和相对较低的运营成本吸引着越来越多的关注。然而,要成功建设一个小型数据中心,并确保…

TC3xx启动的功能安全机制浅析(1)

目录 1.SM基本概念 2.芯片启动阶段safety相关解读 3.小结 之前描述TC3xx Boot Firmware逻辑时提到了功能安全的内容,但没有完全展开;启动阶段与功能安全相关的内容如下图所示: 其中, 灰色背景指在BootRom Fireware里的运行逻辑…

720漫游工具又双叒叕上新了一批新功能

一、720漫游全景图片上传支持「自定义水印」 全景图片素材上传支持自定义水印设置,通过自定义水印,可以在全景图片上打上自定义的水印图片保护用户版权利益,同时强化自身品牌露出。具体操作如下: 打开「创建720漫游作品页」-选择…

一文搞懂Linux命令行下载OneDrive分享文件

一文搞懂Linux命令行下载OneDrive分享文件 什么问题? 因为OneDrive有些坑,无法从分享界面获取真实下载链接,比如下面这个链接: https://connecthkuhk-my.sharepoint.com/:f:/g/personal/jhyang13_connect_hku_hk/EsEgHtGOWbJIm…

信息系统分析与设计:重点内容|UML在线绘制|数据库技术

目录 UML在线绘图工具信息系统分析与设计第1章 系统思想第2章 信息、管理与信息系统第3章 信息系统建设概论🌟第4章 系统规划🌟第5章 系统分析概述第6章 流程建模🌟业务流程图DFD数据流图🌟数据字典 第7章 用例建模(用例图)&#…

【扫雷游戏】C语言详解

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

这才是真正的在线VS Code,其他的只能算是在线文本编辑器

前言 在数字化时代,编程已成为各行各业不可或缺的技能。然而,传统的编程环境往往需要在本地安装复杂的开发工具和软件,这不仅占用了大量的存储空间,还可能导致系统资源的浪费。为此在网上冲浪找了许多在线代码编辑器,…

昂科烧录器支持HangShun航顺芯片的32位微控制器HK32F030C8T6

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中HangShun航顺芯片的32位微控制器HK32F030C8T6已经被昂科的通用烧录平台AP8000所支持。 HK32F030C8T6使用ARM Cortex-M0内核,最高工作频率96 MHz,内置最…

国际网络专线的开通流程

1. 选择服务商:首先,您需要选择一个可靠的服务商来提供国际网络专线服务。确保服务商具有良好的声誉和专业知识,以便为您提供高质量的网络连接和支持。 2. 评估需求:在与服务商沟通之前,您需要明确自己的网络需求。这…

TikTok美妆护肤热销背后:达人的力量与品牌崛起

TikTok不仅是一个娱乐和社交的平台,更是一个强大的电商平台。在美妆护肤领域,TikTok更是展现出其强大的带货能力,成为美妆护肤类商品热销的新势力。本文Nox聚星将和大家探讨TikTok上美妆护肤类商品的特点、热销原因,以及美妆博主和…

虚拟机中VSCode+gcc环境配置

一、安装VSCode 1、在官网下载软件包: 地址:Documentation for Visual Studio Code 2、下载后在放置deb包的文件夹直接打开终端,然后输入sudo dpkg -i code_1.90.2-1718751586_amd64.deb 3、安装成功提示,并显示该图标

使用Fiddler如何创造大量数据!

1、找到评论提交接口 找到我们的评论 2、构造数据 怎么再次发送呢? 这里发送了4次 我们创造了4条数据,我们再去评论区瞅瞅 3、如何解决图片显示问题? 手机端-设置-Wlan-高级-网址不适用代理,将不需要图片的域名加入 4、不抓包的…

手机看cad图的软件有哪些?软件推荐

手机看cad图的软件有哪些?随着科技的不断发展,CAD图纸在手机上的查看和编辑需求日益增加。为了满足这一需求,市面上涌现出了众多手机CAD看图软件。本文将为大家推荐四款优秀的手机CAD看图软件,并分别介绍它们的功能特点、受众定位…

iOS之如何创建.framework静态库

番外:想要查看如何创建.a静态库可前往看我iOS之如何创建.a静态库-CSDN博客这篇文章。 一、创建framework项目 创建framework工程要选择iOS --> Cocoa Touch Framework输入项目名称PrintFramework也是编译生成的framework的名称。framework的名称也可以以后在项目…

iPhone卡在恢复模式无法退出时,有那些退出恢复模式方法?

iPhone用户有时会遇到需要将手机进入恢复模式的情况。恢复模式可以帮助解决一些软件问题,但如果iPhone卡在恢复模式,不知道如何退出就会非常麻烦。小编将介绍几种iPhone退出恢复模式的方法。 一、苹果手机的恢复模式是什么意思 iPhone的恢复模式是针对i…

从基础到高级:视频直播美颜SDK的开发教学

本篇文章,小编将从基础到高级,详细讲解视频直播美颜SDK的开发过程,帮助开发者更好地掌握这一技术。 一、基础知识 什么是视频直播美颜SDK? 视频直播美颜SDK包含了一系列用于视频处理的功能模块,特别是美颜效果的实现…

不翻墙安装yolov8环境下的RT-DETR并实现PCB表面缺陷检测

目录 一、新建conda环境二、安装yolov8环境1.克隆安装包2.安装依赖包3.测试模型 任务2:基于RT-DETR实现PKU-PCB表面缺陷检测数据准备 数据增强测试 总结 一、新建conda环境 创建并激活conda环境: 在conda创建一个名为yolov8的新环境,并在其中…