paddle v4 hubserving 部署

环境准备:https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.7/deploy/hubserving#24-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1
在这里插入图片描述

服务器启动命令

hub serving start -c deploy/hubserving/ocr_system/config.json

客户端请求
python tools/test_hubserving.py --server_url=server_url --image_dir=image_path

import base64
import sys
import time
import requests
import json
import asyncio
import aiohttpimport pandas as pd
from sqlalchemy import create_engine, text
import timefrom PIL import Image
from io import BytesIO
import cv2
import numpy as np
import iotime1 = time.time()def read_data():conn = create_engine('mysql+pymysql://xxx:xxx@xxx.xxx.xx.xx:3306/x?charset=uxxxtf8')connection = conn.connect()page = 0sql_select = f"SELECT * from xj_zsjh_png LIMIT {page * 10}, 100"  # 1000条100s  results = pd.read_sql(sql=text(sql_select), con=connection)out = json.loads(results.to_json(orient='records'))img_strs_list = [x['bas64_str'] for x in out]return img_strs_listdef cv2_to_base64(image):return base64.b64encode(image).decode('utf8')def save_data(results, file_name):df = pd.DataFrame([[i['text'] for i in x] for x in results])df.to_csv(file_name, index=False)def process_image_(img_str):binary = base64.b64decode(img_str)image = Image.open(BytesIO(binary))# 创建一个新的RGB图像,将Alpha通道设置为0rgb_image = Image.new('RGB', image.size, (255, 255, 255))# 将RGBA图像的颜色信息复制到RGB图像rgb_image.paste(image, (0, 0), mask=image)# 裁剪图片left = 535top = 0right = left + 240bottom = image.size[1]cropped_image = rgb_image.crop((left, top, right, bottom))# 创建一个BytesIO对象image_bytes = io.BytesIO()# 将图像保存到BytesIO对象中cropped_image.save(image_bytes, format='JPEG')return image_bytesdef main2():results = []img_strs_list = read_data()for i, img_str in enumerate(img_strs_list):image_bytes = process_image_(img_str)data = {'images': [cv2_to_base64(image_bytes.getvalue())]}headers = {'Content-Type': 'application/json'}response = requests.post("http://192.168.0.189:8868/predict/ocr_system", data=json.dumps(data), headers=headers)if response.status_code == 200:res = response.json()["results"][0]results.append(res)else:print('Error:', response.status_code)save_data(results, 'normal.csv')async def process_image(img_str):image_bytes = process_image_(img_str)headers = {'Content-Type': 'application/json'}# 发送 OCR 请求data = {'images': [cv2_to_base64(image_bytes.getvalue())]}async with aiohttp.ClientSession() as session:async with session.post("http://192.168.0.189:8868/predict/ocr_system", data=json.dumps(data),headers=headers) as response:if response.status == 200:res = (await response.json())["results"][0]return reselse:print(f'Error: {response.status}')return Noneasync def process_images(img_strs_list):tasks = []sem = asyncio.Semaphore(1)  # 限制并发数为5 当创建过多session时就会报错async with sem:for img_str in img_strs_list:task = asyncio.create_task(process_image(img_str))tasks.append(task)results = await asyncio.gather(*tasks)return results# 在主函数中调用异步任务
async def main():img_strs_list = read_data()results = await process_images(img_strs_list)save_data(results, 'async.csv')# asyncio.run(main()) #100条 8.666
main2() #100条 9.667 # 96.832
print(f'当前页 共花费--> ', round(time.time() - time1, 3), '\n') # 1.813

(异步与非异步结果差不多)
结果
在这里插入图片描述

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

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

相关文章

ImportError: cannot import name ‘is_npu_available‘ from ‘accelerate.utils

在做LoRa微调使用peft库的时候出现了下面的错误, ImportError: cannot import name is_npu_available from accelerate.utils 解决方法: pip uninstall peft pip install peftgithttps://github.com/huggingface/peft.git

知识库:提升客服效率的利器

相信大家都有过这样的经历:在需要帮助或解决问题时,与客服沟通却遇到了冗长的等待时间、低效的回答和重复的解决方案。这些问题不仅令人沮丧,也给企业带来了巨大的挑战。然而,随着技术的发展,客服系统中的知识库正逐渐…

tp8/6 插件PhpOffice\PhpSpreadsheet导入表格

一、安装 composer require phpoffice/phpspreadsheet 官网&#xff1a;phpoffice/phpspreadsheet - Packagist 二、代码 <?php namespace app\services\upload\model; use app\services\BaseServices; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php…

linux(mysql下载以及操作)

下载mysql 查看镜像 docker images 下载MySQL镜像 mysql/mysql-server:8.0 创建文件夹&#xff0c;创建配置文件和放数据文件 mkdir -p /data/mysql/{conf,,data} 创建配置文件 my.cnf 写入配置文件my.cnf的代码 [client] default-character-setutf8[mysql] de…

jar包反编译

tips&#xff1a;下载地址在评论区 一、解压出来单击.exe文件 二、 将jar包拖到灰色区域 如图所示 三、保存 1.File->Save All Sourses->解压缩 2.快捷键CtrlAltS

大创项目推荐 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

dp80之常州灵衡—抗凝剂电子秤__modbus读写例子(1)

读重量&#xff0c;我们是40001/40002,2个寄存器存放32的有符号整型数 01 地址 03 读寄存器功能码 00 00 地址 00 02寄存器个数 C4 0B为校验 仪表返回 01 地址 03 读寄存器功能码 04 寄存器个数 02 F8 00 00 为数据 7A 7A为校验码&#xff0c; 02 F8 00 00是这么处理的…

适合 C++ 新手学习的开源项目——在 GitHub 学编程

作者&#xff1a;HelloGitHub-小鱼干 俗话说&#xff1a;万事开头难&#xff0c;学习编程也是一样。在 HelloGitHub 的群里&#xff0c;经常遇到有小伙伴询问编程语言如何入门方面的问题&#xff0c;如&#xff1a; 我要学习某一门编程语言&#xff0c;有什么开源项目可以推荐…

Sharding Sphere 教程 简介

一 文档简介 1.1 分库分表诞生的前景 随着系统用户运行时间还有用户数量越来越多&#xff0c;整个数据库某些表的体积急剧上升&#xff0c;导致CRUD的时候性能严重下降&#xff0c;还容易造成系统假死。 这时候系统都会做一些基本的优化&#xff0c;比如加索引…

CentOS 7 实战指南:文件操作命令详解

写在前面 想要快速掌握 CentOS 7 系统下的文件操作技巧吗&#xff1f;不用担心&#xff01;我为你准备了一篇详细的技术文章&#xff0c;涵盖了各种常用的文件操作命令。无论您是初学者还是有一定经验的用户&#xff0c;这篇文章都能帮助您加深对 CentOS 7 文件操作的理解&…

中国供应链,出海大时代

尽量优化、打通跨境电商每一个参与方的物流、商流、信息流、资金流是电商供应链出海的解题之法。这个过程中数智化便是打通这些节点的钥匙。 作者|斗斗 编辑|皮爷 出品|产业家 “速卖通加持&#xff0c;阿里国际零售商业收入同比上涨73%”“拼多多发布Q3财报同比增长94%…

工具篇--Spring-Cloud--feign 通过feign 接口完成文件的下载

文章目录 前言一、feign接口获取文件流程&#xff1a;二、文件获取实现2.1 引入jar&#xff1a;2.2 实现&#xff1a; 总结 前言 通常在spring-boot 项目中&#xff0c;对于文件的下载都是直接调用到对应的服务中&#xff0c;而不是通过feign 接口获取文件&#xff1b;有时我们…