当前位置: 首页 > news >正文

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调用等方面的内容。

相关文章:

  • 【算法滑动窗口】最大的连续1的个数III
  • 一种快速计算OTA PSRR的方法(Ⅱ)
  • ARM架构详解:定义、应用及特点
  • Qt结构体运算符重载指南
  • 爱胜品ICSP YPS-1133DN Plus黑白激光打印机报“自动进纸盒进纸失败”处理方法之一
  • patch命令在代码管理中的应用
  • 【论文速递】2025年09周 (Robotics/Embodied AI/LLM)
  • RAG技术完全指南(三):LlamaIndex架构解析与私有知识库搭建
  • 【五一培训】Day 2
  • 【quantity】5 derive_more库 2.0 版介绍
  • 藏文情感分析器入门学习实践
  • 正态分布全景解析:理论、推导与应用
  • aws(学习笔记第四十课) image-content-search
  • 【Java IO流】字节输入流FileInputStream、字节输出流FileOutputStream
  • Servlet 解决了什么问题?
  • 数字智慧方案6190丨智慧应急综合平台解决方案(49页PPT)(文末有下载方式)
  • 数字智慧方案5856丨智慧环保综合解决方案(50页PPT)(文末有下载方式)
  • C# 多态性详解:从静态到动态的编程艺术
  • 类与对象(中)
  • SpringBoot基础(原理、项目搭建、yaml)
  • 加拿大总理将赴美同特朗普会晤,重点谈贸易压力
  • 受天气等影响SC8041航班三次备降延误超12小时,山航致歉
  • 七部门联合发布《终端设备直连卫星服务管理规定》
  • 五大国货美妆去年业绩分化:珀莱雅百亿营收领跑,上海家化转亏
  • 秦洪看盘|资金切换主线,重构市场风格
  • 十四届全国人大常委会举行第四十四次委员长会议