搭建自己的OCR服务,第二步:PaddleOCR环境安装

news2025/2/26 2:57:14

PaddleOCR环境安装,遇到了很多问题,根据系统不同问题也不同,不要盲目看别人的教程,有的教程也过时了,根据实际情况自己调整。

我这边目前是使用windows 10系统+CPU + python 3.7 搭建。

熟悉OCR的人应该知道,最好用GPU,性能差距不是一点点,但是普通人没有那个条件怎么办,只能退而求其次,好在自己学习使用也不需要那么好性能。

PaddleOcr环境安装步骤:

第一步:先安装 C++ 开发环境

我在搭建过程中遇到的最大的问题就是,本机电脑没有Microsoft Visual  c++开发环境,毕竟不是从事c++开发的很容易忽略这个问题,后来找了很多技术文章才确定这个大问题。

Visual Studio下载
首先从微软官网( https://visualstudio.microsoft.com/zh-hans/downloads/ )下载 Visual Studio 的安装程序,如下图所示:

选择社区版,免费,如果是企业用户还是另选版本。

 主要安装过程,主要选择c++应用就行,其他不是本次重点

  主要安装过程,主要选择c++的桌面开发就行,其他不是本次重点

 这步完成后,后面相对就容易多了。

第二步:按照PaddleOCR官网安装步骤操作就行

进入百度飞浆官网安装地址:

https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html

1,选择版本,系统,安装方式和计算机平台。

2,执行安装CPU版本的paddlepaddle命令

python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

注意事项:

pip安装过程中会自动下载相关依赖库,其中就有2个依赖库(lanms-neo和polygon3)跟上面第一步的c++开发环境相关,如果没有安装c++环境的话,一直安装报错。

3,验证安装

安装完成后您可以使用 python 进入 python 解释器,输入 import paddle ,再输入 paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。运行检测,还能检测到电脑有几个cpu。

也可以参考gitee上的安装教程:

gitee 源码地址 : 

https://gitee.com/paddlepaddle/PaddleOCR

https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/quickstart.md

4,python脚本使用OCR识别图片

测试图片:1.png

 paddleocr_test.py :

from paddleocr import PaddleOCR
'''
测试ocr方法
'''
def test_ocr():
    # paddleocr 目前支持的多语言语种可以通过修改lang参数进行切换
    # 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
    # 使用CPU预加载,不用GPU
    ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)
    # 打开图片文件
    result = ocr.ocr("1.png", cls=True)
    # 打印所有结果信息
    print(result)
    for index in range(len(result)):
        rst = result[index]
        for line in rst:
            points = line[0]
            text = line[1][0]
            score = line[1][1]
            print('points : ', points)
            print('text : ', text)
            print('score : ', score)


if __name__ == "__main__":
    test_ocr()

第一次运行识别程序,会自动下载3个 中英文超轻量PP-OCRv3 模型(检测模型,方向分类器,识别模型)。

也可以自己主动下载想要的模型。gitee上。

也可以取百度飞浆官网下载各种预训练好的模型,拿来就能用。

官网地址: https://aistudio.baidu.com/aistudio/modelsoverview?lang=zh_CN

通过python脚本测试使用PaddleOCR可以正常运行,只是识别率没有那么高,这就需要后面自己慢慢训练新的模型了,不断优化识别模型。 

或者选择官网预训练好的模型,简单省事。

第三步:下载PaddleOCR源码

github开源地址: https://github.com/PaddlePaddle/PaddleOCR.git

gitee开源地址:  https://gitee.com/paddlepaddle/PaddleOCR

下载PaddleOCR源码到本地,而不只是简单安装PaddleOCR库,直接调用他的方法等,目的是学习和研究的话,看源码还是很有用的。

源码目录结构如下:

 其中,pip安装 paddlepaddle 过程中下载的相关依赖库就在 requirements.txt 文件里。

------------------------------到此,安装PaddleOCR基本完成------------------------------

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

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

相关文章

PostgresSQL----基于Kubernetes部署PostgresSQL

【PostgresSQL----基于Kubernetes部署PostgresSQL】 文章目录 一、创建SC、PV和PVC存储对象1.1 准备一个nfs服务器1.2 编写SC、PV、PVC等存储资源文件1.3 编写部署PostgresSQL数据库的资源声明文件 二、部署PostgresSQL2.1 部署 PV、PVC等存储对象2.2 部署PostgresSQL数据库2.3…

SpringMVC之前端增删改查实现

SpringMVC是一个基于MVC架构的框架&#xff0c;它可以帮助我们实现前后端的分离&#xff0c;同时也能很好地支持前端的增删改查操作。 配置 Cloudjun <?xml version"1.0" encoding"UTF-8" ?><taglib xmlns"http://java.sun.com/xml/ns/j…

Spring 家族框架常用注解

反射相关 Target Spring核心注解&#xff0c;指定自定义注解MyAnno可以应用到的java类型,从而提供编译时的类型检查和错误检测 指定类型时用枚举类ElementType下的具体枚举值&#xff0c;包括&#xff1a;ElementType.TYPE&#xff1a;表示MyAnno适用于类、接口、枚举。Eleme…

Java多线程(一)多线程概要

多线程概要 多线程概要 什么是进程&#xff1f; 进程的特点&#xff1a; 什么是多线程 多线程编程&#xff1a; 创建线程 1.继承 Thread 类 2.实现 Runnable 接口 多线程的优势 中断问题&#xff1a; 1. 通过共享的标记来进行沟通 2. 调用 interrupt() 方法来通知 …

flutter开发实战-实现自定义bottomNavigationBar样式awesome_bottom_bar

flutter开发实战-实现自定义bottomNavigationBar样式awesome_bottom_bar 在开发过程中&#xff0c;需要自定义bottomNavigationBar样式&#xff0c;可以自定义实现&#xff0c;这里使用的是awesome_bottom_bar库 一、awesome_bottom_bar 在pubspec.yaml中引入awesome_bottom_…

滑动谜题 -- BFS

滑动谜题 输入&#xff1a;board [[4,1,2],[5,0,3]] 输出&#xff1a;5 解释&#xff1a; 最少完成谜板的最少移动次数是 5 &#xff0c; 一种移动路径: 尚未移动: [[4,1,2],[5,0,3]] 移动 1 次: [[4,1,2],[0,5,3]] 移动 2 次: [[0,1,2],[4,5,3]] 移动 3 次: [[1,0,2],[4,5,3]…

前端实现展开收起的效果 (react)

需求背景&#xff1a;需要实现文本的展开收起效果&#xff0c;文本是一行一行的&#xff0c;数据格式是数组结构。 如图所示&#xff08;图片已脱敏&#xff09; 简单实现&#xff1a;使用一个变量控制展开收起效果。 展开收起逻辑部分&#xff08;react&#xff09; const […

layer is not a constructor缺少报错解决方案参考开发教程并在相关页面引入

问题场景&#xff1a; 1.在使用Mars3d热力图功能时&#xff0c;提示mars3d.layer.HeatLayer is not a constructor 问题原因: 1.mars3d的热力图插件mars3d-heatmap没有安装引用。 解决方案&#xff1a; 1.参考开发教程&#xff0c;找到相关的插件库&#xff1a;Mars3D 三维…

Power BI依据列中值的范围不同计算公式增加一列

Power BI依据列的范围不同计算公式增加一列&#xff0c;在我们遇到了依据范围不同的公式计算时&#xff0c;就可以采用下面公式 一、增加组计算公式 佣金分组 SWITCH(TRUE(), ry_vue clawer_zhuan[到手价]>0&&ry_vue clawer_zhuan[到手价]<475,80, ry_vue claw…

华为OD机考算法题:数字加减游戏

目录 题目部分 解读与分析 代码实现 题目部分 题目数字加减游戏难度难题目说明小明在玩一个数字加减游戏&#xff0c;只使用加法或者减法&#xff0c;将一个数字 s 变成数字 t 。 每个回合&#xff0c;小明可以用当前的数字加上或减去一个数字。 现在有两种数字可以用来加减…

华为云云耀云服务器L实例评测|华为云上试用主机安全产品Elkeid

文章目录 华为云云耀云服务器L实例评测&#xff5c;华为云上试用主机安全产品Elkeid一、背景&#xff1a;什么是主机安全二、主机安全之Elkeid1. Elkeid 介绍2. Elkeid Server3. Elkeid Server 架构Elkeid AgentCenter&#xff08;下面简称AC&#xff09;Elkeid Service Discov…

[构建自己的 Vue 组件库] 小尾巴 UI 组件库

文章归档于&#xff1a;https://www.yuque.com/u27599042/row3c6 组件库地址 npm&#xff1a;https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee&#xff1a;https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee&#xff1a…

Java(四)数组与类和对象

Java&#xff08;四&#xff09;数组与类和对象 六、数组&#xff08;非常重要&#xff09;1.定义2.遍历2.1遍历方法2.2Arrays方法 3.二维数组数组小总结 七、类和对象1. 定义&#xff08;重要&#xff09;1.1 类1.2 对象 2. this关键字&#xff08;重要&#xff09;2.1 特点 3…

方差分析的核心概念“方差分解“

方差是统计学中用来衡量数据集合中数值分散或离散程度的一种统计量。它表示了数据点与数据集合均值之间的差异程度&#xff0c;即数据的分散程度。方差越大&#xff0c;表示数据点更分散&#xff0c;而方差越小&#xff0c;表示数据点更集中。 方差的计算公式如下&#xff1a;…

自己开发一个接口文档页面html

演示效果 具体代码如下 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>框架框架文档页面</…

网络原理(一)网络基础,包括IP ,网络相关的定义

网络基础 以下图片是书上的网图。 什么是IP地址&#xff1f; IP地址&#xff08;Internet Protocol Address&#xff09;是指互联网协议地址&#xff0c;又译为网际协议地址。P地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一…

电商(淘宝1688京东拼多多等)API接口服务:提升商业效率和用户体验的关键

电商API接口服务&#xff1a;提升商业效率和用户体验的关键 随着电子商务的飞速发展&#xff0c;电商企业需要不断提升自身的业务能力和服务质量&#xff0c;以应对日益激烈的市场竞争。为了更好地满足商家和消费者的需求&#xff0c;电商API接口服务应运而生。本文将探讨电商…

【进阶篇】Redis内存淘汰详解

文章目录 Redis内存淘汰详解0. 前言大纲Redis内存淘汰策略 1. 什么是Redis内存淘汰策略&#xff1f;1.1.Redis 内存不足的迹象 2. Redis内存淘汰策略3. 原理4. 主动和被动1. 主动淘汰1.1 键的生存周期1.2 过期键删除策略 2. 被动淘汰2.2 被动淘汰策略的实现 5. 项目实践优化策略…

【autodl/linux配环境心得:conda/本地配cuda,cudnn及pytorch心得】-未完成

linux配环境心得&#xff1a;conda/本地配cuda&#xff0c;cudnn及pytorch心得 我们服务器遇到的大多数找不到包的问题一&#xff0c;服务器安装cuda和cudnn使用conda在线安装cuda和cudnn使用conda进行本地安装检查conda安装的cuda和cudnn本地直接安装cuda和cudnn方法一&#x…

MDK-Keil AC6 Compiler屏蔽特定警告

最近在使用STM32CubeMX生成MDK工程是&#xff0c;使用了 AC6 版本的编译器进行编译代码&#xff0c;然后发现了一些警告&#xff0c;但是在 AC5 版本下编译又正常。于是研究了下怎么屏蔽特定的警告&#xff0c;这里记录一下。 1. Keil AC6屏蔽特定警告 遇到的警告如下&#x…