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.pswp.cn/diannao/35286.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35286.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35286.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

終極指南:解決iCloud備份錯誤代碼的全面策略

終極指南&#xff1a;解決iCloud備份錯誤代碼的全面策略 在數字化時代&#xff0c;數據安全至關重要。iCloud作為Apple提供的云服務&#xff0c;為我們的iPhone、iPad等設備提供了便捷的數據備份與恢復功能。然而&#xff0c;在使用過程中&#xff0c;我們可能會遇到各種備份錯…

ros,open3d單線激光雷達數據可視化

之前一直嘗試將可視化寫在ros的回調函數中&#xff0c;visualization一直會阻塞進程&#xff0c;換一種方式可以順利實現可視化 import rospy import open3d as o3d import numpy as np from sensor_msgs.msg import LaserScanglobal scan_data scan_data Nonedef callback_l…

機器學習之對比學習方法SimSiam(Simple Siamese)

SimSiam(Simple Siamese)是一種自監督對比學習方法,由Facebook AI Research于2021年提出。SimSiam的設計旨在避免負樣本對,并且不使用動量編碼器,進一步簡化了對比學習的實現過程。 SimSiam的基本概念 自監督學習: 自監督學習方法通過從數據本身獲取監督信號進行學習,不…

qt 播放音頻 c++

目錄 不能播放&#xff1a; 可以播放&#xff1a; 原因&#xff1a; QT core gui sql network multimedia 不能播放&#xff1a; #include <QMediaPlayer>QMediaPlayer player;// player.setMedia(QUrl("qrc:/res/raw/qs.mp3"));player.setMedia(QU…

近鄰算法基礎概念

近鄰算法&#xff0c;尤其是K-最近鄰&#xff08;K-Nearest Neighbors, KNN&#xff09;算法&#xff0c;是一種基于實例的學習方法&#xff0c;廣泛應用于分類和回歸分析中。 基本概念 目的&#xff1a;KNN算法的目的是對新的未知樣本進行分類&#xff08;或預測其數值&…

一款強大的上位機模擬通訊工具----HslCommunicationDemo

目錄 引言 工具概述 官網下載鏈接 安裝步驟 使用教程 引言 在工業自動化和機器人控制領域&#xff0c;上位機模擬通訊工具是工程師和開發者日常工作中不可或缺的一部分。這些工具不僅能幫助我們驗證設備間的通信狀態&#xff0c;還能在設備調試和集成過程中提供極大的便利。…

38.控制功能實現

上一個內容&#xff1a;37.添加簡易的調試功能 以 37.添加簡易的調試功能 它的代碼為基礎進行修改 效果圖&#xff1a; 下圖紅框位置的功能實現 Dlls項目中添加一個Dialog Dialog如下 然后給它添加一個類&#xff0c;MFC添加的類可能會報錯添加 #include "afxdialogex.h…

聚酰胺-酰亞胺(PAI)應用前景廣闊 酰氯法和異氰酸酯法為其主流制備方法

聚酰胺-酰亞胺&#xff08;PAI&#xff09;應用前景廣闊 酰氯法和異氰酸酯法為其主流制備方法 聚酰胺-酰亞胺又稱PAI&#xff0c;是一種分子鏈呈酰亞胺環和酰胺鍵有規則交替排列的高性能熱塑性樹脂。PAI具有耐磨耗性能好、摩擦系數低、尺寸穩定性好、耐高溫、耐輻射、化學穩定性…

通俗易懂的Chat GPT以及國內GPT推薦

ChatGPT是一種先進的聊天機器人&#xff0c;它的全稱是“生成式預訓練變換器”&#xff08;Generative Pre-trained Transformer&#xff09;。ChatGPT背后的基本原理可以簡化為以下幾個關鍵點&#xff1a; 大規模語言模型&#xff1a; ChatGPT建立在一個大規模的語言模型之上&…

如何選擇OLED弧形屏廠家

在選擇OLED弧形屏廠家時&#xff0c;為確保采購到高質量且符合需求的產品&#xff0c;需要綜合考慮多個因素。以下是一份詳細的指南&#xff0c;幫助您清晰、系統地選擇OLED弧形屏廠家&#xff1a; 一、技術實力 研發能力&#xff1a;了解廠家在OLED顯示技術方面的研發能力&…

華為云L實例云服務器部署前后端分離項目全過程記錄

1、配置云服務器 https://blog.csdn.net/modaoshi51991/article/details/139547630 2、上傳前端項目并配置nginx 首先在前端項目運行以下代碼將項目打包 我遇到node.js和openssl兩個版本不兼容問題&#xff0c;更新版本依次解決即可 vue-cli-service build看一下package.json…

第12集《大乘起信論》

請大家打開《講義》第二十四頁&#xff0c;卯三、總顯四種大義。 這一大科是講到心生滅門。生滅的因緣是依止阿賴耶識&#xff0c;阿賴耶識當中有兩種功能&#xff1a;一個是覺&#xff0c;一個是不覺。覺悟的功能又分成兩種&#xff1a;一個是始覺&#xff0c;一個是本覺。我…

解決SpringMVC使用MyBatis-Plus自定義MyBaits攔截器不生效的問題

自定義MyBatis攔截器 如果是SpringBoot項目引入Component注解就生效了&#xff0c;但是SpringMVC不行 import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.parameter.ParameterHandler; import org.apache.ibatis.executor.statement.StatementHandler; i…

亮數據,一款新的低代碼爬蟲利器!

在當今數據驅動型時代&#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;帶來“大…

web學習筆記(六十八)項目總結

目錄 1.如何取到對象的第一項的鍵名 2.如何在鍵名不確定的情況下取到對象的第一項的值 3.如何獲取對象的長度 4.計算屬性和watch監聽監聽深層數據 5.樣式穿透 1.如何取到對象的第一項的鍵名 可以通過Object.keys將對象轉化為一個包含對象所有可枚舉屬性名的數組&#xff…

Java中的微服務架構實現方法

Java中的微服務架構實現方法 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在當今軟件開發的環境中&#xff0c;微服務架構已經成為了構建大型應用程序的主流…

NIVision-LabVIEW在灰度圖上畫圓

問題來源 在csdn上看到的這樣一個問題&#xff0c;好像也沒個正經答案&#xff0c;都用chatGPT回答&#xff0c;挺沒勁的。不說提供個vi源代碼&#xff0c;至少也來張截圖嘛。我想著問題也不難&#xff0c;就自己動動手吧。 代碼展示1 1、首先使用imaq ArrayToImage.vi創建了一…