Paddle Serving|部署一個自己的OCR識別服務器

前言

??之前使用C++部署了自己的OCR識別服務器,Socket網絡傳輸部分是自己寫的,回過頭來一看,自己犯傻了,PaddleOCR本來就有自己的OCR服務器項目,叫PaddleServing,這里記錄一下部署過程。

1 下載依賴環境

1.1 下載python

官網要求是python3.6之上就行,我這里下載python3.8。

conda create -n pdsrv python=3.8

注:這里用不用conda都可以,我這里是習慣用conda,只要有python環境就行.
下載完成之后,加到環境變量里面去,并且優先級設置成最高:
在這里插入圖片描述

1.2 下載wget和git(可選)

  • wget下載網址為:wget下載

下載解壓(安裝)完成后,同樣將其添加到系統變量中,如步驟1.1的圖最后一行所示,我已經添加上去了,優先級無所謂。
wget驗證: 打開powershell直接打wget,訪問成功即可,如圖所示:
在這里插入圖片描述

  • git下載網址為:git下載
    git的使用就不贅述,有手就行。

如果選擇了步驟1.2,下載git和wget,則需要下載模型和項目,使用以下命令下載:

# 使用git下載PaddleServing項目
git clone https://github.com/paddlepaddle/Serving
# 使用wget下載模型
cd Serving/examples/C++/PaddleOCR/ocr/
python -m paddle_serving_app.package --get_model ocr_rec
tar -xzvf ocr_rec.tar.gz
python -m paddle_serving_app.package --get_model ocr_det
tar -xzvf ocr_det.tar.gz

1.3 下載PaddleServing依賴

# CPU用戶下載命令
python -m pip install -U paddle_serving_server paddle_serving_client paddle_serving_app paddlepaddle`
# GPU用戶下載命令
python -m pip install -U paddle_serving_server_gpu paddle_serving_client paddle_serving_app paddlepaddle-gpu
# 下載其依賴
cd Serving
pip install -r python/requirements_win.txt

之所以說步驟1.2是可選,是因為我上傳了源碼(需要使用git下載的部分)和模型(需要使用wget下載的部分),驚不驚喜,意不意外!!!

2 運行OCR識別服務器

2.1 啟動OCR識別服務器:

# 啟動服務器
python ocr_debugger_server.py cpu/gpu

啟動界面大概是這樣的:
在這里插入圖片描述

2.2 啟動OCR客戶端:

python ocr_web_client.py

可以看到結果與imgs路徑下的圖片對比:

在這里插入圖片描述
在這里插入圖片描述
如果不想使用這個腳本,也可以使用我寫的python腳本測試:

import requests
import json
import base64def cv2_to_base64(image):"""將圖片轉換為Base64編碼"""return base64.b64encode(image).decode('utf8')def ocr_prediction(image_path):"""接受圖片文件的絕對路徑,發送OCR請求并返回結果"""# 設置請求頭和URLheaders = {"Content-type": "application/json"}url = "http://127.0.0.1:9292/ocr/prediction"# 打開圖片文件并進行Base64編碼with open(image_path, 'rb') as file:image_data = file.read()image_base64 = cv2_to_base64(image_data)# 構造請求數據data = {"feed": [{"x": image_base64}], "fetch": ["res"]}print(type(data))data2 = json.dumps(data)print(type(data2))print(data2)# 發送POST請求try:r = requests.post(url=url, headers=headers, data=data2)r.raise_for_status()  # 如果請求失敗,拋出異常return r.json()  # 返回OCR結果except requests.exceptions.RequestException as e:print(f"請求失敗: {e}")return None# 這里替換為你的圖片文件絕對路徑
image_path = "xxx/imgs/bbb.jpg"  
result = ocr_prediction(image_path)
if result:print(result)

總結

本文主要簡要記錄了PaddleServing項目的部署過程,旨在幫助讀者快速了解如何搭建和配置PaddleServing服務。PaddleServing是一個基于PaddlePaddle的高效推理服務框架,能夠幫助用戶便捷地將訓練好的模型部署為可供實時預測的服務。本文將詳細介紹部署過程的步驟,包括環境配置、服務啟動、模型加載以及API調用等方面的內容。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79954.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79954.shtml

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

相關文章

React Native【詳解】搭建開發環境,創建項目,啟動項目

下載安裝 node https://nodejs.cn/download/ 查看 npx 版本 npx -v若無 npx 則安裝 npm install -g npx創建項目 npx create-expo-applatestRN_demo 為自定義的項目名稱 下載安裝 Python 2.7 下載安裝 JAVA JDK https://www.oracle.com/java/technologies/downloads/#jdk24-…

NVIDIA Halos:智能汽車革命中的全棧式安全系統

高級輔助駕駛行業正面臨一個尷尬的"安全悖論"——傳感器數量翻倍的同時,事故率曲線卻遲遲不見明顯下降。究其原因,當前行業普遍存在三大技術困局: 碎片化安全方案 傳統方案就像"打補丁",激光雷達廠商只管點云…

數據資產管理與AI融合:物聯網時代的新征程

一、引言 在當今數字化浪潮席卷全球的時代,數據資產已成為企業和組織的核心競爭力之一。隨著物聯網(IoT)技術的飛速發展,海量的數據如潮水般涌來,如何高效地管理和利用這些數據資產成為了亟待解決的問題。與此同時&am…

MySQL 表的內外連接

文章目錄 表的內外連接(重點)內連接外連接左外連接右外連接 表的內外連接(重點) 內連接 內連接實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選,我們前面學習的查詢都是內連接,也是在開發過程中使…

VTK 交互類介紹

基本概念 交互器(Interactor): 處理用戶輸入事件的基礎類 交互樣式(InteractorStyle): 定義具體的交互行為 Widgets: 可交互的UI組件,如滑塊、按鈕等 Picker: 用于選擇場景中的對象 常用交互類 類名功能描述vtkRenderWindowInteractor渲染窗口交互器vtkInteractorStyle交互樣式…

C語言動態庫與靜態庫編譯測試示例詳細介紹終結篇

C語言動態庫與靜態庫編譯鏈接時的詳細對比與示例 下面我將提供更詳細的示例,并通過對比表格清晰地展示靜態庫和動態庫的特性差異以及它們之間的各種鏈接關系。 ## 1. 靜態庫與動態庫特性對比 | 特性 | 靜態庫(.a/.lib) | 動態…

神經網絡:節點、隱藏層與非線性學習

神經網絡:節點、隱藏層與非線性學習 摘要: 神經網絡是機器學習領域中一種強大的工具,能夠通過復雜的結構學習數據中的非線性關系。本文從基礎的線性模型出發,逐步深入探討神經網絡中節點和隱藏層的作用,以及它們如何…

POI創建Excel文件

文章目錄 1、背景2、創建表格2.1 定義表頭對象2.2 Excel生成器2.3 創建模板2.4 處理Excel表頭2.5 處理Excel內容單元格樣式2.6 處理單個表頭 3、追加sheet4、靜態工具5、單元測試6、完整代碼示例 1、背景 需求中有需要用戶自定義Excel表格表頭,然后生成Excel文件&a…

【分布式系統中的“瑞士軍刀”_ Zookeeper】三、Zookeeper 在實際項目中的應用場景與案例分析

在分布式系統日益復雜的當下,Zookeeper 憑借強大的協調能力成為眾多項目的關鍵組件。本篇文章將結合實際項目場景,詳細介紹 Zookeeper 在電商秒殺、微服務架構、分布式配置管理以及大數據處理集群等領域的應用,以及在不同的案例場景下的具體分…

【翻譯、轉載】MCP 提示 (Prompts)

原文地址:https://modelcontextprotocol.io/docs/concepts/prompts#python 提示 (Prompts) 創建可重用的提示模板和工作流 提示 (Prompts) 使服務器能夠定義可重用的提示模板和工作流,客戶端可以輕松地將其呈現給用戶和 LLM。它們提供了一種強大的方式來…

accept() reject() hide()

1. accept() 用途 確認操作:表示用戶完成了對話框的交互并確認了操作(如點擊“確定”按鈕)。 關閉模態對話框:結束 exec() 的事件循環,返回 QDialog::Accepted 結果碼。適用場景 模態對話框(通過 exec()…

如何查看電腦IP地址和歸屬地:全面指南

在數字化時代,了解自己電腦的IP地址和歸屬地信息變得越來越重要。無論是進行網絡故障排查、遠程辦公設置,還是出于網絡安全考慮,掌握這些基本信息都很有必要。本文將詳細介紹如何查看電腦的公網IP、內網IP以及歸屬地信息,并提供常…

基于python生成taskc語言文件--時間片輪詢

目錄 前言 utf-8 chinese GB2312 utf-8 排除task.c chinese GB2312 排除task.c 運行結果 前言 建議是把能正常工作的單個功能函數放到一起(就和放while函數里的程序一樣),程序會按順序自動配置。 不同的格式已經對應給出。 utf-8 impo…

Docker手動重構Nginx鏡像,融入Lua、Redis功能

核心內容:Docker重構Nginx鏡像,融入Lua、Redis功能 文章目錄 前言一、準備工作1、說明2、下載模塊3、Nginx配置文件3、Dockerfile配置文件3、準備工作全部結束 二、構建鏡像三、基于鏡像創建容器三、lua腳本的redis功能使用總結 前言 ???? ????…

DeepSeek+Excel:解鎖辦公效率新高度

目錄 一、引言:Excel 遇上 DeepSeek二、認識 DeepSeek:大模型中的得力助手2.1 DeepSeek 的技術架構與原理2.2 DeepSeek 在辦公場景中的獨特優勢 三、DeepSeek 與 Excel 結合的準備工作3.1 獲取 DeepSeek API Key3.2 配置 Excel 環境 四、DeepSeekExcel 實…

解決Vue2------You may use special comments to disable some warnings.問題

問題截圖 解決辦法 打開項目中.eslintrc.js在rules中,添加以下代碼,并extends的 vue/standard注釋掉 space-before-function-paren: 0, semi: off, quotes : off, comma-dangle : off, vue/comment-directive: off

數據集-目標檢測系列- 牙刷 檢測數據集 toothbrush >> DataBall

數據集-目標檢測系列- 牙刷 檢測數據集 toothbrush >> DataBall DataBall 助力快速掌握數據集的信息和使用方式。 貴在堅持! * 相關項目 1)數據集可視化項目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/over…

解決:前后端跨域請求

目錄 關于跨域請求出現的原因 同源策略 示例(跨域問題) 如何解決跨域請求 方法一:配置后端服務器以允許跨域請求(后端) 方法二:使用代理服務器(前端) 一 ,使用aja…

AI內容檢測的技術優勢與應用場景

隨著互聯網的普及和數字內容的爆發式增長,文本、圖片、音頻、視頻等多樣化內容已成為信息傳播的主要載體。然而,伴隨內容增長的是違法違規信息的泛濫,如涉黃、涉政、虛假廣告、惡意引流等,不僅威脅用戶體驗,還對平臺合…

DockerDesktop替換方案

背景 由于DockerDesktop并非開源軟件,如果在公司使用,可能就有一些限制,那是不是除了使用DockerDesktop外,就沒其它辦法了呢,現在咱們來說說替換方案。 WSL WSL是什么,可自行百度,這里引用WS…