码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • rapidocr_paddle[gpu]:GPU端推理库来了


    简介

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

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

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

    安装

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

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

      pip install rapidocr_paddle
      
      • 1

    使用

    CPU 端推理

    前提是安装了 CPU 版的 PaddlePaddle

    import cv2
    
    from rapidocr_paddle import RapidOCR
    
    engine = RapidOCR()
    image_path = "tests/test_files/ch_en_num.jpg"
    result, elapse_list = engine(image_path)
    
    print(result)
    print(elapse_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    GPU 端推理

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

    import cv2
    
    from 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)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    其他使用详情,同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/

  • 相关阅读:
    Unity Shader当用户靠近的时候会出现吃鸡一样的光墙
    科技“蝶变”,两轮电动车下一个五年的“新动力”
    欠拟合、过拟合及优化:岭回归
    深入了解前端开发规范的区别《Commonjs、AMD、CMD、ES6模块化》
    阿里云对象存储oss私有桶生成链接
    Java项目:SSH学生学籍管理系统及教务管理系统
    AI大模型的制作:RAG和向量数据库,分别是什么?
    线程“八锁“ synchronized到底是对哪个对象加锁?
    暑期JAVA学习(45)动态代理
    y106.第六章 微服务、服务网格及Envoy实战 -- 可观测应用之指标和日志(十七)
  • 原文地址:https://blog.csdn.net/shiwanghualuo/article/details/133979637
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号