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

基于PaddleServing的串联部署 ocr 识别模型

要点:

  • 使用paddleserving服务


1 首先需要安装PaddleServing部署相关的环境

PaddleServing是PaddlePaddle推出的一种高性能、易扩展、高可用的机器学习服务框架。PaddleOCR中使用PaddleServing主要是为了将训练好的OCR模型部署到线上环境,提供API服务,从而方便用户使用。PaddleServing还提供了一些高级特性,比如多模型融合、负载均衡等,可以帮助用户构建更加完整的机器学习服务系统。

!python -m pip install paddle-serving-server-gpu
!python -m pip install paddle_serving_client
!python -m pip install paddle-serving-app
  • 第一行代码安装 paddle-serving-server-gpu 包,用于启动 PaddleServing 的服务端,并支持 GPU 加速。
  • 第二行代码安装 paddle_serving_client 包,用于通过 API 调用 PaddleServing 的服务端提供的预测服务
  • 第三行代码安装 paddle-serving-app 包,提供了一些 PaddleServing 相关的工具和应用,例如模型转换、模型压缩等。

转化检测模型为serving格式

%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python -m paddle_serving_client.convert --dirname ../../inference/det_ppocrv3/Student/  \--model_filename inference.pdmodel          \--params_filename inference.pdiparams       \--serving_server ./ppocr_det_v3_serving/ \--serving_client ./ppocr_det_v3_client/

这段代码是将 PaddleOCR 检测模型的参数文件和模型文件转换为 PaddleServing 使用的格式并保存在指定的目录中,然后可以使用指定的配置文件部署以进行推理服务。

  • %cd /home/aistudio/PaddleOCR/deploy/pdserving/: 切换到 PaddleOCR 代码库中的 PaddleServing 部分的目录中。
  • --dirname ../../inference/det_ppocrv3/Student/: 参数文件和模型文件所在的目录。
  • --model_filename inference.pdmodel: 转换后的模型文件名称。
  • --params_filename inference.pdiparams: 转换后的参数文件名称。
  • --serving_server ./ppocr_det_v3_serving/: serving_server参数指定用于运行检测模型服务的 PaddleServing 配置的目录位置。在这种情况下,指定的位置是./ppocr_det_v3_serving/
  • --serving_client ./ppocr_det_v3_client/: serving_client参数指定 PaddleServing 客户端的目录位置,用于在服务期间调用检测模型。在这种情况下,指定的位置是./ppocr_det_v3_client/。

转化识别模型为serving格式

%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python -m paddle_serving_client.convert --dirname ../../inference/rec_ppocrv3/Student \--model_filename inference.pdmodel          \--params_filename inference.pdiparams       \--serving_server ./ppocr_rec_v3_serving/ \--serving_client ./ppocr_rec_v3_client/

4 启动服务端 

修改后处理代码,首先可以将后处理代码加入到web_service.py中,具体修改154-155行:

# 代码154-155行修改为下面代码
def _postprocess(rec_res):keys = ["型号", "厂家", "版本号", "检定校准分类", "计量器具编号", "烟尘流量","累积体积", "烟气温度", "动压", "静压", "时间", "试验台编号", "预测流速","全压", "烟温", "流速", "工况流量", "标杆流量", "烟尘直读嘴", "烟尘采样嘴","大气压", "计前温度", "计前压力", "干球温度", "湿球温度", "流量", "含湿量"]key_value = []if len(rec_res) > 1:for i in range(len(rec_res) - 1):rec_str, _ = rec_res[i]for key in keys:if rec_str in key:key_value.append([rec_str, rec_res[i + 1][0]])breakreturn key_value
key_value = _postprocess(rec_list)
res = {"result": str(key_value)}
# res = {"result": str(result_list)}

 

4.1 启动服务

%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python web_service.py 2>&1 >log.txt

4.2 客户端发送请求

%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python pipeline_http_client.py --image_dir ../../train_data/icdar2015/text_localization/test/142.jpg
  • 执行pipeline_http_client.py命令,将图片路径传入进行识别

在这个过程中,使用了PaddleServing的HTTP API进行图片的传输和识别,pipeline_http_client.py文件是一个Python脚本,用于向PaddleServing发送HTTP请求并获取识别结果。该脚本将输入的图片读取并编码成base64格式,然后将编码后的字符串作为HTTP请求的参数发送给PaddleServing。PaddleServing将接收到的图片解码后送入PaddleOCR中的检测和识别模型进行OCR识别,最后返回识别结果

http://www.lryc.cn/news/63378.html

相关文章:

  • java OutputStream学习
  • java 上传文件生成二进制流文件
  • 质量小议22 -- 多少分合适
  • 变频器参数设定说明
  • 实用调试技巧
  • 谁是液冷行业真龙头?疯狂的液冷技术!
  • 自动化运维工具之Ansible
  • 霍兰德人格分析雷达图
  • 《Odoo开发者模式必知必会》—— 缘起
  • Java8的Options介绍
  • SpringBoot 多数据源及事务解决方案
  • tcpdump使用教程
  • Zynq-7000、FMQL45T900的GPIO控制(五)---linux应用层配置GPIO输出控制
  • 带你搞懂人工智能、机器学习和深度学习!
  • Android 11.0 framework中Launcher的启动流程分析
  • 2023年第十五届华中杯赛题C 题 空气质量预测与预警
  • Go官方指南(一)包、变量、函数
  • liunx笔记
  • vue3 封装ECharts组件
  • Spring Security 6.0系列【30】授权服务器篇之JOSE规范
  • 维度表设计原则
  • 【requests模块上】——02爬虫基础——如桃花来
  • Springboot +Flowable,详细解释啥叫流程实例(一)
  • 信息安全复习十:Web与电子商务安全
  • flutter 启动其他app server或者页面失败
  • 【linux-进程2】进程控制
  • 【五一创作】多域名环境和Office 365混合部署方案
  • Vue:路由route
  • Windows系统被faust勒索病毒攻击勒索病毒解密服务器与数据库解密恢复
  • Java面试题总结 | Java面试题总结7- Redis模块(持续更新)