rapidocr-onnxruntime库及在open-webui上传PDF 图像处理 (使用 OCR)应用

背景

rapidocr-onnxruntime是一个跨平台的OCR库,基于ONNXRuntime推理框架。

 目前已知运行速度最快、支持最广,完全开源免费并支持离线快速部署的多平台多语言OCR。
 缘起:百度paddle工程化不是太好,为了方便大家在各种端上进行ocr推理,
            我们将它转换为onnx格式,使用Python/C++/Java/Swift/C# 将它移植到各个平台。
 名称来源: 轻快好省并智能。基于深度学习技术的OCR技术,主打人工智能优势及小模型,以速度为使命,效果为主导。

rapidocr-onnxruntime · PyPI

pip install rapidocr-onnxruntime

注:ONNXRuntime是微软推出的一款推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。可以说ONNXRuntime是对ONNX模型最原生的支持。

1、单独离线部署RapidOcr,可以参考这个博客文档:
RapidOcr-Onnxruntime实现离线文字识别(依赖库) icon-default.png?t=N7T8https://www.52pojie.cn/thread-1834278-1-1.html

2、本文重点是阐述在本地大语言模型提供图形化界面的开源项目库Open WebUI 中PDF文件(使用OCR做图像处理)的应用。

open-webui上传PDF 图像处理 (使用 OCR)

在Open WebUI安装运行时,默认PDF文件是只支持转文本部分,不使用OCR做图像处理。 即下图中的该项功能是关闭状态。

在我们的实验中(linux环境,centos系统),我们尝试打开该项功能,即对于PDF中图像包含的文字,能够通过OCR识别软件做处理。

但是,当我们把上图开关启动(使用OCR)后, 在open-webui对话框上传PDF文件,会报如下错误:Something went wrong :/ `rapidocr-onnxruntime` package not found, please install it with `pip install rapidocr-onnxruntime`
查看了相关资料,解决过程如下:

1、直接运行安装命令:pip install rapidocr-onnxruntime

未能按照,给出如下提示,pip在‘root’权限下,不允许安装,建议虚拟环境安装。

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

于是,参考pip虚拟环境设置: https://docs.python.org/3/tutorial/venv.html

成功运行,命令如下:

(open-webui) [root@master ~]# python -m venv tutorial-env
(open-webui) [root@master ~]# source tutorial-env/bin/activate
(tutorial-env) (open-webui) [root@master ~]# pip install rapidocr-onnxruntimeInstalling collected packages: pyclipper, mpmath, flatbuffers, sympy, six, PyYAML, protobuf, Pillow, packaging, numpy, humanfriendly, Shapely, opencv-python, coloredlogs, onnxruntime, rapidocr-onnxruntime
Successfully installed Pillow-10.3.0 PyYAML-6.0.1 Shapely-2.0.4 coloredlogs-15.0.1 flatbuffers-24.3.25 humanfriendly-10.0 mpmath-1.3.0 numpy-2.0.0 onnxruntime-1.18.0 opencv-python-4.10.0.84 packaging-24.1 protobuf-5.27.1 pyclipper-1.3.0.post5 rapidocr-onnxruntime-1.3.22 six-1.16.0 sympy-1.12.1

虽然rapidocr安装成功了,重启open-webui服务,发现仍然无法上传pdf文件。 

查看资料并且单独在python环境测试导入rapidocr库,发现会报错:

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

(open-webui) [root@master backend]# python
Python 3.10.14 (main, May  6 2024, 19:42:50) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from rapidocr_onnxruntime import RapidOCR
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/root/miniconda3/envs/open-webui/lib/python3.10/site-packages/rapidocr_onnxruntime/__init__.py", line 4, in <module>from .main import RapidOCRFile "/root/miniconda3/envs/open-webui/lib/python3.10/site-packages/rapidocr_onnxruntime/main.py", line 8, in <module>import cv2File "/root/miniconda3/envs/open-webui/lib/python3.10/site-packages/cv2/__init__.py", line 181, in <module>bootstrap()File "/root/miniconda3/envs/open-webui/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrapnative_module = importlib.import_module("cv2")File "/root/miniconda3/envs/open-webui/lib/python3.10/importlib/__init__.py", line 126, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

解决方案:sudo yum install mesa-libGL

(open-webui) [root@master backend]# sudo yum install mesa-libGL

成功安装后。

再次启动运行webUI,可以正确上传解析PDF文件。

大概测试了一下, rapidocr库,对于pdf文本格式(印刷体)转换成文本的准确率较高(95%+),但是对于手写文字(来自几位医生),识别准确率稍差(约60%)。

参考资料:

bug: [RAG] v0.1.109 Breaks PDF upload #1069

Issue: Pypdf extract_image=True is not working on docker(production) #15576

[Windows] RapidOCR 1.3.0安装使用 

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

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

相关文章

一款强大的上位机模拟通讯工具----HslCommunicationDemo

目录 引言 工具概述 官网下载链接 安装步骤 使用教程 引言 在工业自动化和机器人控制领域&#xff0c;上位机模拟通讯工具是工程师和开发者日常工作中不可或缺的一部分。这些工具不仅能帮助我们验证设备间的通信状态&#xff0c;还能在设备调试和集成过程中提供极大的便利。…

38.控制功能实现

上一个内容&#xff1a;37.添加简易的调试功能 以 37.添加简易的调试功能 它的代码为基础进行修改 效果图&#xff1a; 下图红框位置的功能实现 Dlls项目中添加一个Dialog Dialog如下 然后给它添加一个类&#xff0c;MFC添加的类可能会报错添加 #include "afxdialogex.h…

聚酰胺-酰亚胺(PAI)应用前景广阔 酰氯法和异氰酸酯法为其主流制备方法

聚酰胺-酰亚胺&#xff08;PAI&#xff09;应用前景广阔 酰氯法和异氰酸酯法为其主流制备方法 聚酰胺-酰亚胺又称PAI&#xff0c;是一种分子链呈酰亚胺环和酰胺键有规则交替排列的高性能热塑性树脂。PAI具有耐磨耗性能好、摩擦系数低、尺寸稳定性好、耐高温、耐辐射、化学稳定性…

如何选择OLED弧形屏厂家

在选择OLED弧形屏厂家时&#xff0c;为确保采购到高质量且符合需求的产品&#xff0c;需要综合考虑多个因素。以下是一份详细的指南&#xff0c;帮助您清晰、系统地选择OLED弧形屏厂家&#xff1a; 一、技术实力 研发能力&#xff1a;了解厂家在OLED显示技术方面的研发能力&…

亮数据,一款新的低代码爬虫利器!

在当今数据驱动型时代&#xff0c;数据采集和分析能力算是个人和企业的核心竞争力。然而&#xff0c;手动采集数据耗时费力且效率低下&#xff0c;而且容易被网站封禁。 我之前使用过一个爬虫工具&#xff0c;亮数据&#xff08;Bright Data&#xff09; &#xff0c;是一款低…

力扣随机一题 哈希表 排序 数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2491.划分技能点相等的团队【中等】 题目&#xff1a; 给你一个正整数数组…

【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(9)

Hi٩(๑o๑)۶, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机&#xff01;带你一周内快速走进嵌入式的大门&#xff0c;let’s go&#xff01; &#xff08;9&#x…

殷山:摩斯大模型隐私保护技术和应用探索

背景介绍 6月20日下午&#xff0c;“2024信通院数据智能大会”圆满落幕&#xff0c;摩斯技术负责人殷山在论坛上分享了摩斯在大模型隐私保护技术和行业应用的探索。 殷山发表“大模型隐私保护”主题演讲 摩斯技术负责人殷山在“数据智能安全主题论坛“上&#xff0c;带来“大…

NIVision-LabVIEW在灰度图上画圆

问题来源 在csdn上看到的这样一个问题&#xff0c;好像也没个正经答案&#xff0c;都用chatGPT回答&#xff0c;挺没劲的。不说提供个vi源代码&#xff0c;至少也来张截图嘛。我想着问题也不难&#xff0c;就自己动动手吧。 代码展示1 1、首先使用imaq ArrayToImage.vi创建了一…

java error ConcurrentModificationException 并发修改异常

ConcurrentModificationException 概述 这个异常在 Java 中通常发生在以下场景&#xff1a;当某个线程在遍历一个集合&#xff08;如 ArrayList、HashMap 等&#xff09;的过程中&#xff0c;另一个线程尝试修改这个集合的结构&#xff08;如添加、删除元素&#xff09;&#…

sheng的学习笔记-AI-学习向量量化

AI目录 sheng的学习笔记-AI目录-CSDN博客 需要学习前置知识&#xff1a;聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 什么是学习向量量化 “学习向量量化”&#xff08;Learning Vector Quantization&#xff0c;简称LVQ&#xff09;是试图找到一…

Qt | 子类化 QStyle(Qt自带图标大全)

01、简介 1、把绘制自定义部件外观的步骤大致分为三大板块,如下: ①、样式元素:即指定需要绘制的图形元素(比如焦点框、按钮,工具栏等)。样式元素使 用 QStyle 类中的一系列枚举(共有 11 个枚举)进行描述。 ②、样式选项:包含了需要绘制的图形元素的所有信息,比如包含…

Tomcat 下载部署到 idea

一、下载Tomcat Tomcat 是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;下的一个核心项目&#xff0c;免费开源、并支持Servlet 和JSP 规范。属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发…

启动VMWare虚拟机报错

1. 无法打开内核设备“\\.\VMCIDev\VMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。 解决办法: 解决办法: 将 Ubuntu 64 位.vmx 找到vmci0.present"TRUE"这行改成 vmci0.present "FAL…

wireshark工具获取设备IP地址

背景&#xff1a; 一个网口抓包工具&#xff0c;主要是升级XX设备时候不知道网口的ip地址。每次需要一个一个试&#xff0c;比较麻烦。 使用步骤&#xff1a; 1、连接好XX设备与笔记本&#xff0c;在网络连接里面找到以太网&#xff0c;没有出现红色X号&#xff0c;表示网线连…

文心一言 VS 讯飞星火 VS chatgpt (289)-- 算法导论21.3 2题

二、写出使用路径压缩的 FIND-SET 过程的非递归版本。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在并查集&#xff08;Union-Find&#xff09;数据结构中&#xff0c;路径压缩&#xff08;Path Compression&#xff09;是一种优化技术&#xff0c;用于减少…

智能仓储:立体仓WCS设计

自动化立体仓库简称高架仓库&#xff0c;是采用高层货架存放货物&#xff0c;以巷道堆垛起重机为主&#xff0c;结合入库出库周边设备来进行作业的一种仓库。 立体仓主体由货架、巷道式堆垛机、输送机等组成。 电气控制系统、上位监控系统&#xff08;Warehouse Control Syste…

【前后端实现】AHP权重计算

AHP权重计算&#xff1a; 需求&#xff1a;前端记录矩阵维度、上三角值&#xff0c;后端构建比较矩阵、计算权重值并将结果返回给前端 比较矩阵构建 如果你想要根据上三角&#xff08;不包括对角线&#xff09;的值来构建对称矩阵&#xff0c;那么你可以稍作修改上述的generate…

量化交易面临的难题

量化交易面临的难题 1、监管机构对于算法交易、量化交易的监管越来越严格3、回测场景于实盘交易场景的不匹配性4、策略并非100%有效&#xff0c;并非100%的收益5、股票、基本面、市场新闻之间的关系时刻在变化并且难以捉摸6、很难使用一套通用的交易规则去匹配所有的股票/市场/…

U盘数据恢复实战:两大方案助您找回珍贵数据

在数字化时代&#xff0c;U盘作为我们随身携带的数据存储工具&#xff0c;承载着无数重要的文件和信息。然而&#xff0c;由于误操作、系统崩溃或硬件故障等原因&#xff0c;U盘中的数据可能会突然消失&#xff0c;给我们带来极大的困扰。本文将深入探讨U盘数据恢复的概念、方法…