Paddle OCR 安装使用教程

news2024/10/7 16:27:00

简介

PaddleOCR是飞浆开源文字识别模型,最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测,并且支持使用paddle开源组件训练自己的超轻量模型,对于垂直领域的需求有很大帮助。

使用教程

  1. 环境安装
  • 说明:官方推荐使用python3.7以上版本,但是在实际安装使用中发现python3.8更稳定,如果本地python安装包过多,推荐使用Anaconda来进行python包管理,避免包冲突。
  • Anaconda下载:
    地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D
    按需下载自己需要的版本
  1. 安装程序运行所需库
  • 安装paddle

    pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
    

    默认安装CPU版本,安装paddle时建议使用百度源,若需要安装GPU版本,则请打开paddle官网选择适合的版本.

    paddle官网:https://www.paddlepaddle.org.cn/
    由于安装GPU版本需要先配置好CUDA和cudnn,建议有一定基础后再安装GPU版本

  • 安装paddlehub

    pip install paddlehub -i https://mirror.baidu.com/pypi/simple
    

    paddlehub介绍文档:https://github.com/PaddlePaddle/PaddleHub/blob/release/v2.1/README_ch.md

    对于Windows环境用户:直接通过pip安装的shapely库可能出现 找不到指定模块的问题。建议从下方地址下载shapely安装包完成安装
    https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely

  1. 安装ocr模型

     hub install ch_pp-ocrv3==1.2.0
    
    模型名称ch_pp-ocrv3
    网络Differentiable Binarization+SVTR_LCNet
    数据集icdar2015数据集
    是否支持Fine-tuning
    模型大小13M
    最新更新日期2022-05-11

    其它模型: chinese_ocr_db_crnn_server、PP-OCR、PP-OCRv2

模型调用

  1. 命令行预测

    hub run ch_pp-ocrv3 --input_path "/PATH/TO/IMAGE"
    
  2. python代码示例

    import paddlehub as hub
    import cv2
    
    img_path = r'C:\Users\26414\Downloads\test.jpg'
    
    ocr = hub.Module(name="ch_pp-ocrv3", enable_mkldnn=True)       # mkldnn加速仅在CPU下有效
    result = ocr.recognize_text(images=[cv2.imread(img_path)])
    
    # or 传递文件地址调用
    # result = ocr.recognize_text(paths=[img_path])
    

    注: img_path路径中不能包含中文字符,opencv不支持中文路径

    参数

    • paths (list[str]): 图片的路径;
    • images (list[numpy.ndarray]): 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
    • use_gpu (bool): 是否使用 - GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
    • box_thresh (float): 检测文本框置信度的阈值;
    • text_thresh (float): 识别中文文本置信度的阈值;
    • angle_classification_thresh(float): 文本角度分类置信度的阈值
    • visualization (bool): 是否将识别结果保存为图片文件;
    • output_dir (str): 图片的保存路径,默认设为 ocr_result;
    • det_db_unclip_ratio: 设置检测框的大小;

    返回

    • res (list[dict]): 识别结果的列表,列表中每一个元素为 dict,各字段为:
      • data (list[dict]): 识别文本结果,列表中每一个元素为 dict,各字段为: - text(str): 识别得到的文本 - confidence(float): 识别文本结果置信度 - text_box_position(list): 文本框在原图中的像素坐标,4*2的矩阵,依次表示文本框左下、右下、右上、左上顶点的坐标 如果无识别结果则data为[]
      • save_path (str, optional): 识别结果的保存路径,如不保存图片则save_path为’’

效果展示

  • 测试图片
    在这里插入图片描述

  • 结果展示
    在这里插入图片描述

参考文档
paddle ocr官方地址: https://www.paddlepaddle.org.cn/hubdetail?name=ch_pp-ocrv3&en_category=TextRecognition
paddle ocr GitHub地址: https://github.com/PaddlePaddle/PaddleHub
在线体验地址: https://www.paddlepaddle.org.cn/hub/scene/ocr

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

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

相关文章

微信小程序路由跳转,API调用,页面传值

路由跳转 wx.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 wx.switchTab({url: /pages/tarbar/index })wx.reLaunch 关闭所有页面,打开到应用内的某个页面。 wx.reLaunch({url: /pages/index/index })wx.redirectTo 关闭当前页面…

13服务端实战:初始化项目

本章开始将进行服务端的实战开发,包含了 Devops、服务端以及其他涉及到的中间件的模块。 由于 NestJS 的文档非常完善以及之前有写过比较完整的 NestJS 的小册,如果对 NestJS 非常熟悉的同学可以快速跳过本章,另外整个实战篇的代码都会按照流…

shell命令以及运行原理、Linux权限、粘滞位

今天我带来Linux重点知识:shell命令以及运行原理、Linux权限、粘滞位的知识点。 目录 shell命令以及运行原理Linux权限的概念Linux下的用户su命令 Linux权限管理文件访问者的分类文件的类型和访问权限文件权限值的表达方法 Linux关于权限的知识点补充1.Linux创建用户…

Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

前言 XCharts是开源且比较强大的插件,在Unity3d中搭建UI时常常使用的数据图表的制作插件, 特别是当下的数字沙盘、数字孪生等项目中应用较广。笔者公司也一直在使用该插件,本文主要是在开发过程中的一个小需求引发的整理分享。在项目中需要将…

vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片

此代码适用的场景是一个页面有多个数据图表。 首先需要拿到你生成数据图表的数据, 然后赋值给一个数组,数组需要在data定义,还需要去重。 // 检查是否有相同的parameter值const hasDuplicate this.toImageArr.some(iiem > iiem.paramete…

由于找不到xinput1_3.dll,无法继续执行代码的解决方法都有哪些?

关于由于找不到xinput1_3.dll,无法继续执行代码这个问题,其实在网上经常看别人提及,要解决这个问题,还是不难的,今天小编就来给大家详细的说说关于这个问题的解决方法吧,本文会介绍多种的修复方法,下面一起…

商品数据封装接口(PHP/Java/Python)

封装 在面向对象程式设计方法中,封装是指—种将抽象性函式接口的实现细节部分包装、隐藏起来的方法 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问 要访问该类的代码和数据,必须通过严格的接口控制 封装最…

提升生产效率的关键:如何选择适合您企业的设备管理系统?

在现代工业生产中,设备管理对于提升生产效率和降低成本至关重要。一个高效的设备管理系统可以帮助企业实现设备的有效监控、维护和优化,从而提高设备的可靠性、降低停机时间,并最终提升生产效率。选择适合企业的设备管理系统可能是一个复杂的…

Vision Pro:多人XR协作这样玩才对味

早在iOS 15系统更新中,苹果就推出了SharePlay功能,该功能主要针对多人协作和社交,允许用户在FaceTime会话中一起看剧、听歌、共享屏幕。Vision Pro头显也支持该功能,允许用户共享AR图像和空间上下文信息,实现远程可视化…

LeetCode 每日一题——2178. 拆分成最多数目的正偶数之和

1.题目描述 2178. 拆分成最多数目的正偶数之和 给你一个整数 finalSum 。请你将它拆分成若干个 互不相同 的正偶数之和,且拆分出来的正偶数数目 最多 。 比方说,给你 finalSum 12 ,那么这些拆分是 符合要求 的(互不相同的正偶…

Spring Boot 中的服务发现

Spring Boot 中的服务发现 Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了很多工具和组件来简化 Web 应用程序的开发。其中,服务发现是 Spring Boot 中的一个非常重要的组件,它可以帮助我们自动地发现和管理应用程序中的服务。 什…

Prometheus 时序数据

一 时序索引 Prometheus 存储的是时序数据,时间戳(timestamp)来源于服务端本地的系 统时间。Prometheus 使用 Unix 时间戳(即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数)表示时间。 数 据 格 式 : …

C#核心知识回顾——10.List、Dictionary、数据结构、LinkedList

1.List List<int> list new List<int>(); List<String> strings new List<String>();//增list.Add(0);list.Add(1);List<int> ints new List<int>();ints.Add(0);list.AddRange(ints);//插入list.Insert(0, 1);// 位置0插入1//删//1.移…

Java内存模型—工作流程、volatile原理

导入 最近在做项目的时候发现很多业务上用到了多线程&#xff0c;通过多线程去提升程序的一个运行效率&#xff0c;借此机会来复盘一下关于并发编程的相关内容。为什么要使用volatile&#xff1f;volatile底层原理是什么&#xff1f;JMM内存模型解决的是什么问题&#xff1f;带…

基于 OpenCV 开发实现眨眼计数器

文末提供免费的源代码下载链接 在本教程中,我们将了解如何使用 Dlib、Python 和 OpenCV 创建眨眼检测器/计数器。 我们将首先使用 Dlib 的人脸检测器来检测视频中的人脸。然后我们将使用 Dlib 中的形状预测器来确定眼睛在面部的位置。 最后,我们将使用眼睛的标志来计算眼睛…

小白必看:这些项目可以让你轻松月入过万

月入五W的互联网副业野路子。总有一个适合你!刷到这篇回答的。就不要在看其他的了。 这些互联网项目你也能做 1、认识个哥们&#xff0c;每天去一些热门的寺庙拍视频开直播&#xff0c;帮人代请手串&#xff0c;每串赚15元&#xff0c;月入5万多&#xff0c;非常非常稳定。 2…

基于SpringBoot+vue的口腔管家平台设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Image Sensor的像素时钟计算

本文介绍Image Sensor的像素时钟计算。 在配置Image Sensor寄存器的过程中&#xff0c;像素时钟至关重要&#xff0c;它的正确设置关系到帧率&#xff0c;曝光参数的正确与否。我们从相关资料中了解到像素时钟有多种方法&#xff0c;究竟该选择哪一种呢&#xff0c;本文来对常…

【C++】函数绑定器技术

1. 函数绑定器技术&#xff0c;什么情况可以用到这种技术实现? 占位符和函数绑定器技术&#xff08;如std::bind&#xff09;可以在以下情况下使用&#xff1a; 参数绑定&#xff1a;当你想要绑定函数的某些参数&#xff0c;但又不想立即提供这些参数的值时&#xff0c;可以…

在idea中使用Git技术

1.配置git环境 打开idea,点击file->setting->搜索git&#xff0c; 将git的安装路径填写进去 2.去gitee创建一个远程仓库 3.拉入一个.gitignore文件&#xff0c;过滤掉不需要管理的文件 4.在idea进行如下操作 5.选择要提交的内容 目前只是保存在了本地仓库 6.推送到远端…