rapidocr_paddle[gpu]:GPU端推理库来了

简介

rapidocr_paddle系列包是基于PaddlePaddle框架作为推理引擎的,支持CPU和GPU上推理。值得说明的是,这个包和PaddleOCR相比,代码基本都是一样的,只不过这个库将里面核心推理代码抽了出来,更加精简而已。

推荐GPU上用这个,CPU端还是以rapidocr_onnxruntimerapidocr_openvino为主。毕竟PaddlePaddle的CPU端还是比较重的。

封装这个包的原因是为了弥补GPU端推理的空缺。因为面对成千上万的图像需要提取文字时,CPU端上推理速度还是较慢,不能满足需求。

安装

  1. 根据自己需求,先安装 PaddlePaddle 框架(CPU/GPU),并验证,参见: 官方教程,注意验证是否安装成功:

    import paddleprint(paddle.utils.run_check())
    # 如果出现PaddlePaddle is installed successfully!,说明您已成功安装。
    
  2. 安装rapidocr_paddle

    pip install rapidocr_paddle
    

使用

CPU 端推理

前提是安装了 CPU 版的 PaddlePaddle

import cv2from rapidocr_paddle import RapidOCRengine = RapidOCR()
image_path = "tests/test_files/ch_en_num.jpg"
result, elapse_list = engine(image_path)print(result)
print(elapse_list)
GPU 端推理

前提是安装了 GPU 版的 PaddlePaddle,注意在实例化RapidOCR类时,需要通过参数显式指定使用 GPU。

import cv2from rapidocr_paddle import RapidOCR# 注意这里的参数
engine = RapidOCR(det_use_cuda=True, cls_use_cuda=True, rec_use_cuda=True)image_path = "tests/test_files/ch_en_num.jpg"
result, elapse_list = engine(image_path)

其他使用详情,同rapidocor_onnxruntime系列,参见: link

推理速度比较

相关测评代码,参见AI Studio,Fork 可直接运行查看。

经过初步粗略估计,同一张图像,推理 10 次,耗时情况见下表:

推理库平均耗时(s/img)备注
rapidocr_onnxruntime1.6505
rapidocr_paddle[GPU]0.0508V100 16G

原文链接:https://rapidai.github.io/RapidOCRDocs/docs/install_usage/rapidocr_paddle/

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

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

相关文章

《java核心卷Ⅰ》知识点总结(可作面试题)

🛫 JDK和JRE傻傻分不清?🛫 HelloWorld的输出都经历了啥?🛫 Java的三个版本都是啥?🛫 关于main方法你都知道啥?main方法被声明为private会怎样?🛫 强制and自动类型转换都…

8.1 矢量图层符号化整体说明

文章目录 前言符号化与图层渲染符号符号层渲染器 总结 前言 地图制图是QGIS的优势所在,QGIS包含完整的地图制图功能,如标注与注记、符号化与地图综合等多种功能。 符号化(Symbolization)是指利用符号将地理事物或现象抽象化。 QGi…

强化学习代码实战---多臂赌博机---AttributeError: ‘EntryPoints‘ object has no attribute ‘get‘

1.问题 配置window10,python3.7,tensorflow1.14.0,运行第一节多臂赌博机代码时遇到AttributeError: ‘EntryPoints‘ object has no attribute ‘get‘。 2.解决 执行以下代码: pip install frozenlist1.3.1 geopy2.2.0 humanize…

小知识(5) el-table行样式失效问题

一、实现效果 子级呈现不同颜色去区分 二、最初代码 tips: 我这里使用的vue3 elementplus <el-table :row-class-name"tableRowClassName" >... </el-table>function tableRowClassName({ row, rowIndex }) {if (row.children.length 0) {return …

Java面试题:链表-反转链表

问题描述 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 如当输入链表{1,2,3}时&#xff0c;经反转后&#xff0c;原链表变为{3,2,1}&#xff0c;…

Django 地址接口开发

应用 Mixin 混合类进行收货地址接口开发 python ../manage.py startapp address继承了mixins扩展类&#xff0c;进到里面可以稍微看下源码 该方法帮我们实现了获取验证及保存的功能 address/views from rest_framework.generics import GenericAPIView from rest_framewo…

移动端滚动穿透与滚动溢出解决方案

滚动穿透 问题描述 在移动端 WEB 开发的时候&#xff08;小程序也雷同&#xff09;&#xff0c;如上录屏所示&#xff0c;如果页面超过一屏高度出现滚动条时&#xff0c;在 fixed 定位的弹窗遮罩层上进行滑动&#xff0c;它下面的内容也会跟着一起滚动&#xff0c;看起来好像事…

PC连wifi,网线连接旭日X3派以共享网络

PC电脑连好wifi&#xff0c;找到【控制面板->网络和Internet->网络和共享中心->查看网络状态和任务->更改适配器设置】 找到WLAN&#xff0c;右键【属性->共享】勾上允许&#xff0c;然后【确定】。 现在去与PC通过网线连接好的X3派上配置&#xff1a; 参考&a…

SAP MM学习笔记38 - 入库/请求自动决济(ERS - Evaluated Receipt Settlement)

之前的章节学习了请求书的方方面面&#xff0c;这一章来个终章&#xff0c;入库/请求自动决济&#xff1a;&#xff09;。 1&#xff0c;什么是 ERS ERS&#xff0c;即 入库/请求自动决济&#xff0c;是 自動決済&#xff08;Automatic Settlement&#xff09;功能的一种。 以…

C++ Primer 11 术语表【1】生僻词释义

参数&#xff08;实参&#xff0c;argument&#xff09;向函数传递的值。 赋值&#xff08;assignment&#xff09;抹去一个对象的当前值&#xff0c;用一个新值取代之。 程序块&#xff08;block&#xff09;零条或多条语句的序列&#xff0c;用花括号包围。 缓冲区&#xff0…

python之Cp、Cpk、Pp、Ppk

目录 1、Cp、Cpk、Pp、Ppk 2、python计算 1、Cp、Cpk、Pp、Ppk Cp Process Capability Ratio 可被译为“过程能力指数” Cpk Process Capability K Ratio 可被译为“过程能力K指数” Pp Process Performance Ratio 可被译为“过程绩效指数” Ppk Process Performance K Ra…

关于一篇“范式详解”博文的批注

本篇文章是对于下面这个链接中的文章的批注。这篇文章详细讲述了第一、二、三范式和BCNF范式&#xff0c;希望我的这篇文章能帮助您更好的理解这篇优秀的博文 详解第一范式、第二范式、第三范式、BCNF范式-CSDN博客 “范式”批注 这样理解范式的概念&#xff1a;一张数据表的表…

我的创作纪念日 - 第四年

机缘 几乎自己的所有文章都用同一个模板&#xff0c;虽然高效&#xff0c;但也乏味&#xff0c;就让每年都有一次例外吧。 不知不觉已经过去了四年了&#xff0c;虽然很早就在CSDN查阅资料&#xff0c;但是真正落笔创作是在4年前。那个时候自己已经是一个从事培训讲师&#x…

ETL实现实时文件监听

一、实时文件监听的作用及应用场景 实时文件监听是一种监测指定目录下的文件变化的技术&#xff0c;当产生新文件或者文件被修改时&#xff0c;可实时提醒用户并进行相应处理。这种技术广泛应用于数据备份、日志管理、文件同步和版本控制等场景&#xff0c;它可以帮助用户及时…

桥梁结构健康监测系统落地方案

桥梁结构健康监测的意义是多方面的。首先&#xff0c;它可以实时采集桥梁的结构数据&#xff0c;并对其进行处理和分析&#xff0c;以确定结构损伤的位置、评估桥梁的健康状况&#xff0c;并预测承载力的发展趋势。这有助于及时发现桥梁的结构问题和潜在风险&#xff0c;为采取…

JAVA入门总结回顾

1.常用的DOS命令&#xff1a;DOS窗口常用命令-CSDN博客 2.检查jdk是否安装成功&#xff1a;在cmd中输入java -version或者java或者javac。出现相应的对应显示内容。 3.JDK&#xff0c;JRE之间的关系&#xff1a;JDK是JAVA的开发工具包&#xff0c;JRE是JAVA的的运行环境。JRE…

Vue之样式绑定事件,按键修饰符常用控件

样式绑定 class绑定 使用方式&#xff1a;v-bind:&#xff0c;expression的类型&#xff1a;字符串、数组、对象 style绑定 v-bind:style“expression”&#xff0c; expression的类型&#xff1a;字符串、数组、对象 示例&#xff1a; <--定义示例样式--> <style&g…

rabbitMQ(3)

RabbitMq 交换机 文章目录 1. 交换机的介绍2. 交换机的类型3. 临时队列4. 绑定 (bindings)5. 扇形交换机&#xff08;Fanout &#xff09; 演示6. 直接交换机 Direct exchange6.1 多重绑定6.2 direct 代码案例 7. 主题交换机7.1 Topic 匹配案例7.2 Topic 代码案例 8. headers 头…

Kubernetes-进阶(Pod生命周期/调度/控制器,Ingress代理,数据存储PV/PVC)

Kubernetes-进阶 Pod详解 每个Pod中都可以包含一个或多个容器&#xff0c;这些容器可以分两类 用户程序所在容器&#xff0c;数量用户决定Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个 可以以它为依据&#xff0c;评估整个Pod的健康状态可以…

itbuilder软件在线设计数据库模型,AI与数据库擦出的火花

今天要介绍一款强大的软件&#xff0c;它就是itBuilder软件&#xff0c;一款在线设计数据库模型软件&#xff0c;借助人工智能提高效率&#xff0c;可以生成CRUD代码并推送至开发工具中&#xff1b;它涵盖了几乎所有语言&#xff0c;如Java、Python、JavaScript等&#xff0c;并…