目录

  • 1.环境搭建
    • 1.1 创建conda环境
    • 1.2 安装paddlepaddle和paddlehub
    • 1.3 安装依赖
  • 2. 移动端模型部署
    • 2.1 安装移动端模型
    • 2.2 测试
  • 3. 服务部署
    • 3.1 启动PaddleHub Serving
    • 3.2 发送预测请求

1.环境搭建

1.1 创建conda环境

conda create --name paddlehub python=3.8
conda activate paddlehub

1.2 安装paddlepaddle和paddlehub

pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple

1.3 安装依赖

pip install shapely pyclipper

2. 移动端模型部署

2.1 安装移动端模型

hub install chinese_ocr_db_crnn_mobile

报错1:
在这里插入图片描述
增加download函数

vim /home/yinsuan/miniconda3/envs/paddlehub/lib/python3.8/site-packages/aistudio_sdk/hub.py 
def download(url, target_path):os.makedirs(os.path.dirname(target_path), exist_ok=True)response = requests.get(url, stream=True)with open(target_path, 'wb') as f:for chunk in response.iter_content(chunk_size=1024):if chunk:f.write(chunk)print(f"Downloaded {url} to {target_path}")

报错2:
在这里插入图片描述

export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

安装成功

2.2 测试

在这里插入图片描述
将其中的np.int 修改为int即可

vim /home/yinsuan/.paddlehub/modules/chinese_ocr_db_crnn_mobile/module.py
hub run chinese_ocr_db_crnn_mobile --input_path "/PATH/TO/IMAGE"

测试成功

3. 服务部署

3.1 启动PaddleHub Serving

hub serving start -m chinese_ocr_db_crnn_mobile

3.2 发送预测请求

import requests
import json
import cv2
import base64def cv2_to_base64(image):data = cv2.imencode('.jpg', image)[1]return base64.b64encode(data.tostring()).decode('utf8')# 发送HTTP请求
data = {'images':[cv2_to_base64(cv2.imread("/PATH/TO/IMAGE"))]}
headers = {"Content-type": "application/json"}
url = "http://127.0.0.1:8866/predict/chinese_ocr_db_crnn_mobile"
r = requests.post(url=url, headers=headers, data=json.dumps(data))# 打印预测结果
print(r.json()["results"])

参考:https://www.paddlepaddle.org.cn/hubdetail?name=chinese_ocr_db_crnn_mobile&en_category=TextRecognition

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

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

相关文章

408第三季part2 - 计算机网络 - ip地址II

理解路由聚合就是从第一个不一样的往后全置为0题目这里一般来说会到达2个目的地址,但中间有个路由,所以路由聚合一下就行了聚合出来这个然后下一跳就是跳到下一个路由器d前面一样的不动,不一样的开始全置为0c再次理解题目这个先匹配169.96.40…

【Unity】MiniGame编辑器小游戏(十一)消消乐【Crush】

更新日期:2025年7月9日。 项目源码:获取项目源码 索引 消消乐【Crush】一、游戏最终效果二、玩法简介三、正式开始1.定义游戏窗口类2.规划游戏窗口、视口区域3.方块 Block①.定义方块类②.生成方块所有类型③.生成消消乐棋盘④.绘制收集栏⑤.绘制方块阵列4.查看方块挡住的其他…

RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点

📖 推荐阅读:《Yocto项目实战教程:高效定制嵌入式Linux系统》 🎥 更多学习视频请关注 B 站:嵌入式Jerry RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点 作者:嵌入式 Jerry 一、前言 随着 AIoT、工业智…

从救火到赋能:运维的职责演进与云原生时代的未来图景

引言:刻板印象的瓦解 提起"运维工程师",许多人脑海中可能仍会浮现这样的画面:深夜里守着闪烁的监控屏幕、手忙脚乱地重启服务器、在布满网线的机房里穿梭…这曾是运维工作的真实片段,但绝非全貌,更非未来。 在云计算、DevOps、SRE理念和云原生技术栈的冲击下,…

UDP的socket编程

socket接口int socket(int domain, int type, int protocol);参数说明​​参数说明domain协议族(地址族),如 AF_INET(IPv4)、AF_INET6(IPv6)type套接字类型,UDP 使用 SOCK_DGRAM&…

基于SD-WAN的管件制造数字化产线系统集成方案

1. 背景与目标随着制造业向智能化、数字化方向转型,传统产线面临着数据割裂、协同效率低下等问题。管件制造作为典型场景,涉及多环节的设计、制造与质检流程,亟需一套高效的系统集成方案,保障全流程数据贯通与实时协同。本方案基于…

学习open62541 --- [79] 在docker中运行open62541工程

docker是非常流行的容器技术,解决了部署环境不一致的问题,open62541的工程也可以在docker容器中运行,本文讲述如何把open62541工程放到docker容器中运行。 本文使用WSL ubuntu 22.04作为宿主环境,其它linux也是一样。一 拉取debia…

Spring Boot微服务中集成gRPC实践经验分享

Spring Boot微服务中集成gRPC实践经验分享 一、业务场景描述 在某电商系统中,推荐服务、库存服务、订单服务等微服务需要高效、双向流式通信,RESTHTTP已无法满足低延迟、高并发和严格类型安全的需求。为此,我们选择在Spring Boot微服务中集成…

springboot项目编写测试类,乱码问题解决

​MockMvc 的默认行为​ MockMvc ​默认使用 ISO-8859-1 解码响应,而服务端实际返回 UTF-8 编码数据 。 Postman 无乱码是因浏览器自动识别编码,但 MockMvc 需显式配置。 ​过滤器失效场景​ Spring 的 CharacterEncodingFilter ​默认只对 POST 请求生效…

打破传统,开启 AR 智慧课堂​

在教育领域,AR 智慧课堂宛如一场及时雨,为传统教育模式带来了革命性的变革,让学习变得更加生动有趣、高效互动。通过 AR 技术,抽象的知识瞬间变得鲜活起来,学生们可以在虚拟与现实交织的世界中,探索历史的长…

热烈祝贺 Flink 2.0 存算分离入选 VLDB 2025

VLDB 2025 论文热烈祝贺 Apache Flink 2.0 的重磅研究成果《Disaggregated State Management in Apache Flink 2.0 》被数据库领域顶级会议 VLDB 2025 正式接收!这项工作由 Apache Flink 社区 联合 阿里巴巴实时计算 Flink 团队 以及多位学术界研究人员共同完成&…

蓄电池能量管理matlab的simulink仿真

蓄电池能量管理matlab的simulink仿真模型 AlternatorTableData.mat , 7395 Battery_Management_Lib.mdl , 577258 Readme.txt , 1293 license.txt , 1551 ssc_battery_management.mdl , 221248 ssc_lead_acid_battery_50Ah_ini.m , 1760 ssc_lead_acid_battery_80Ah_ini.m , 1…

MyBatisPlus-03-扩展功能

文章目录【README】【1】基于MyBatisPlus的代码生成器【2】MyBatisPlus-DB静态工具【2.1】使用MyBatisPlus的DB静态工具查询单个及多个用户地址【查询单个用户的访问效果】【查询多个用户的访问效果】【3】逻辑删除【3.1】代码实现【4】枚举处理器【4.1】代码实现【5】JSON处理…

初识Neo4j之Cypher(三)

目录 一、介绍 二、语法 1、节点 2、关系 3、属性 4、模式 一、介绍 Cypher 是 Neo4j 的声明式查询语言,兼容 GQL 标准。通过 openCypher 项目,Cypher 以开源方式提供。它类似于 SQL,但专为图数据优化。 Cypher 直观且接近自然语言&…

19-C#静态方法与静态类

C#静态方法与静态类 1.static-静态方法animal.eat();//直接调用 public class animal {public static void eat()//定义静态方法{messagebox.show("animal eat");} }2.static-静态类animal.eat();//直接调用public stat…

基于YOLO的足球检测Web应用:从训练到部署的完整实战

用Python和深度学习技术打造一个完整的足球检测系统,支持图片检测、视频分析和实时监控。本文带你从零开始构建一个专业的Web应用。🎯 项目背景 在体育赛事分析和足球训练中,准确识别和定位足球是一个重要需求。本项目利用YOLO深度学习算法&a…

npm 切换 node 版本 和npm的源

在开发过程中,不同项目可能需要不同版本的 Node.js,同时 于由XX原因,我们需要切换npm的源。这时如果需要切换node版本或者npm的源,我们可以使用以下方法。 使用 nvm 切换 Node 版本 1、安装 npm install nvm -g2、使用 # 列出所有…

Java学习第二十部分——EasyMock

目录 一.概述 二.作用 三.工作原理 四.使用示例 五.主要特点 六.适用场景 七.其他模拟框架比较 八.idea简单项目实战 1.打开idea创建Java项目,注意构建系统选“Maven” 2.为pom.xml文件添加如下依赖,并重新加载Maven依赖,直至不报错…

机器学习模型在C++平台的部署

一、概述机器学习模型的训练通常在Python环境下完成,而现实生产环境的复杂性和多样性使得模型的部署成为一个值得关注的重点。不同应用场景下有不同适应的实现方式,这里主要介绍通过一种通用中间格式——ONNX(Open Neural Network Exchange&a…

保姆级安装 Ruby 环境下载及安装教程, RubyInstaller下载及安装教程

一、下载安装 RubyInstaller 1.打开 RubyInstaller 官网:https://rubyinstaller.org/ 点击跳转, 官网界面如下图: 点击下载最新的 RubyDevkit 版本(如 RubyDevkit 3.4.X (x64) )。如下图所示: 注意点:如果…