飞桨ONNX推理部署初探

ONNX,全称Open Neural Network Exchange(开放神经网络交换),是一个用于表示深度学习模型的标准,它定义了一组与环境、平台均无关的标准格式。这使得不同的人工智能框架,如飞桨、MXNet等,可以采用相同的格式来存储模型数据并进行交互。

ONNX的主要功能是为AI模型提供开源格式,定义了一个可扩展的计算图模型,以及内置运算符和标准数据类型的定义。它使模型能在不同框架之间进行转移,从而实现了跨平台的兼容性。此外,ONNX文件不仅存储了神经网络模型的权重,还存储了模型的结构信息、网络中每一层的输入输出以及一些其他的辅助信息。

Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括 TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。

ONNX支持RISCV平台,极大的提高了RISCV平台AI部署的方便性!

下面简要学习下ONNX的飞桨模型应用,理论上AIStudio平台可以使用,那么RISCV平台也可以!

安装Paddle2ONNX

下载源代码

git clone https://github.com/PaddlePaddle/Paddle2ONNX

安装需要的库

需要用低版本Pillow和numpy,否则会有报错。如果不降低numpy版本,则需要在涉及numpy.int的代码修改成int 

pip install onnxruntime
pip install Pillow==9.5.0 # 需要用低版本Pillow

在RISCV平台,需要安装特供的ONNX版本:https://github.com/zhangwm-pt/onnxruntime
安装方法为下载源代码,然后执行build.sh即可。

图像分类实践

cd /home/aistudio/Paddle2ONNX/model_zoo/classification/
wget https://bj.bcebos.com/paddle2onnx/model_zoo/mobilenetv3.onnx
python infer.py --model mobilenetv3.onnx --image_path images/ILSVRC2012_val_00000010.jpeg

 目标检测实践

cd /home/aistudio/Paddle2ONNX/model_zoo/detection/
# 下载PicoDet模型
wget https://bj.bcebos.com/paddle2onnx/model_zoo/picodet_l_640_coco.onnx

python3 infer.py \
    --model_path picodet_l_640_coco.onnx \
    --image_path ./images/hrnet_demo.jpg \
    --model_type=picodet


需要用低版本Pillow和numpy,否则会有报错。如果不降低numpy版本,则需要在涉及numpy.int的代码修改成int 

 文字识别实践

安装相关库

pip install shapely pyclipper

下载模型

cd /home/aistudio/Paddle2ONNX/model_zoo/ocr

# 下载det模型
wget https://bj.bcebos.com/paddle2onnx/model_zoo/ch_PP-OCRv2_det_infer.onnx

# 下载rec模型
wget https://bj.bcebos.com/paddle2onnx/model_zoo/ch_PP-OCRv2_rec_infer.onnx

# 下载cls模型
wget https://bj.bcebos.com/paddle2onnx/model_zoo/ch_ppocr_mobile_v2.0_cls_infer.onnx

执行识别

python3 infer.py  \
--det_model_dir=./ch_PP-OCRv2_det_infer.onnx  \
--rec_model_dir=./ch_PP-OCRv2_rec_infer.onnx  \
--cls_model_dir=./ch_ppocr_mobile_v2.0_cls_infer.onnx  \
--image_path=./images/lite_demo.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】Vue集成Element-UI框架

🙋‍ 一日之际在于晨 ⭐本期内容:Vue集成Element-UI框架 🏆系列专栏:从0开始的Vue之旅 文章目录 Element-UI简介安装Element-UInpm安装CDN安装 引入Element-UI测试是否引入成功总结 Element-UI简介 Element-UI官网:点…

划线铸铁平台是怎样进行人工采刮的——北重

划线铸铁平台是一种用于进行平整和划线的工具。它通常由铸铁制成,表面平整且耐用。人工采刮是一种在平台上使用刮刀进行刮擦的方法,以平整和划线。 以下是人工采刮的步骤: 1. 准备平台:确保划线铸铁平台表面清洁,没有…

多级页表查询

说明一下这个三级页表的查询,会需要上面的L2,L1,L0 如果在二级页表level就是2,PGSHIFT是12,那么就是往左移129*2位置,在&9bit就得到L2,其他以此类推 也表查询,首先有跟页表的地址pagetable,…

【计算机视觉】Gaussian Splatting源码解读补充(一)

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址:https://github.com/graphdeco-inria/gaussian-splatting 论文地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

JavaWeb -- HTTP -- WEB服务器TOMCAT

一.HTTP介绍: HTTP(Hyper Text Protocol) 实际上是一种超文本传输的协议,规定了浏览器跟服务器之间的一些数据传输的规则 例如B/S 对于浏览器的请求,以及相应服务器的响应,都必须依靠这种协议,规范,才能够彼此之间相互 理解 HTTP的协议特点: 1.基于TCP协议: 面向连接 更加安全…

抖音视频无水印爬虫下载工具|视频关键词批量采集软件

抖音视频批量下载工具 最新推出的抖音视频批量下载工具,针对市面上单个视频链接提取不方便的问题进行了全新设计,不仅可以通过单个视频链接提取,还可通过关键词进行视频搜索,实现批量和有选择性的提取功能。 操作说明 您可以通过…

牛客题霸-SQL篇(刷题记录二)

本文基于前段时间学习总结的 MySQL 相关的查询语法,在牛客网找了相应的 MySQL 题目进行练习,以便加强对于 MySQL 查询语法的理解和应用。 由于涉及到的数据库表较多,因此本文不再展示,只提供 MySQL 代码与示例输出。 以下内容是…

基于ssm的音乐视频网站系统(可听音乐和看视频+数据库+报告+免费远程调试

项目介绍: 基于ssm的音乐视频网站系统(可听音乐和看视频)。Javaee项目,ssm项目。采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvc Myba…

sd卡受损怎么恢复数据,sd卡受损了里面的数据怎么办

sd卡受损怎么恢复数据?听说你的SD卡出问题了?失去珍贵数据,简直就像是失去了一段珍贵的回忆,但别灰心,我们来解决这个问题!首先,我得说,SD卡受损是很常见的情况,可能是不小心摔了一下、插拔不当,或者是遇到了某种不可抗力的情况。sd卡受损了里面的数据怎么办?幸运的…

Linux--Flappy_bird实现

代码实现&#xff1a; #include<stdio.h> #include<curses.h> #include<signal.h> #include<sys/time.h> #include<stdlib.h>#define BIRD #define BLANK #define PIPE /**定义管道结构体**/ typedef struct Pipe {int x;//列int y;//横struc…

鸿蒙一次开发,多端部署(九)应用市场首页

本小节将以应用市场首页为例&#xff0c;介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口。 页面设计 一个典型的应用市场首页的UX设计如下所示。 观察应用市场首页的页面设计&#xff0c;不同断点下的页面设计有较多相似的地方。 据此&#xff0c;我们可以将页…

需求:JSON数据显示null值或者不显示null值

使用hutool的工具类 import cn.hutool.json.JSON; import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil;public class Main {public static void main(String[] args) {String sss "{\"1\":\"a\",\"2\":null}";// 不…

【算法】子集(LIS最长上升子序列)

文章目录 题目输入描述输出描述示例分析思路最长递增子序列dp解法&#xff08;2/10&#xff09;binarySearch 贪心&#xff08;AC&#xff09; 题目 小强现在有 n n n个物品&#xff0c;每个物品有两种属性 x i x^i xi和 y i y^i yi。他想要从中挑出尽可能多的物品满足以下条…

Bootloader/IAP零基础入门(1.0) —— 设计一个Bootloader引导进入APP的程序,不含中断向量偏移

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动/单片机/RTOS的实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff…

重磅消息!《大模型面试宝典》(2024版) 正式发布!

2022 年11月底&#xff0c;OpenAI 正式推出 ChatGPT &#xff0c;不到两个月的时间&#xff0c;月活用户就突破1亿&#xff0c;成为史上增长最快的消费者应用。 目前国内已发布的大模型超过200个&#xff0c;大模型的出现彻底改变了我们的生活和学习方式。 现在只要你想从事 A…

优化选址问题 | 模拟退火算法求解物流选址问题含Matlab源码

目录 问题代码问题 模拟退火算法(Simulated Annealing, SA)是一种概率性的全局优化算法,用于求解大规模组合优化问题。在物流选址问题中,模拟退火算法可以用来寻找成本最低、效率最高的仓库或配送中心位置。下面是一个简化的模拟退火算法求解物流选址问题的描述,并附带有…

阿里云OSS分布式存储

目录 &#x1f9c2;1.OSS开通 &#x1f32d;2.头像上传整合OSS &#x1f68d;2.1.引入依赖 &#x1f68d;2.2添加配置 &#x1f68d;2.3创建配置类 &#x1f68d;2.4添加实现类 &#x1f68d;2.5controller调用接口 &#x1f68d;2.6postman测试 1.OSS开通 1.登…

力扣---最长有效括号---动态规划,栈

动态规划思路&#xff1a; 最长xxxx的问题&#xff0c;从动态规划的角度去考虑&#xff0c;我们会将 g[i] 定义为以 第 i 位 结尾的小问题。在本道题中&#xff0c;我们将 g[i] 定义为以第 i 位为结尾的最长有效括号子串的长度。从头去遍历每一位&#xff0c;我们会发现只有s[i…

我的创作纪念日——在CSDN的三年

我的创作纪念日——在CSDN的三年 个人简介机缘收获个人成就学习成就墙文章专栏 日常成就憧憬 个人简介 &#x1f3d8;️&#x1f3d8;️个人主页&#xff1a;以山河作礼。 &#x1f396;️&#x1f396;️:Python领域新星创作者&#xff0c;CSDN实力新星认证&#xff0c;CSDN内…

134. 加油站(力扣LeetCode)

文章目录 134. 加油站题目描述暴力枚举&#xff08;超时&#xff09;代码一代码二&#xff08;优化&#xff09; 贪心算法方法一方法二 134. 加油站 题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&…