yolov8 pose 尝试部署到旭日派x3(1:模型的初步转化工作)

前言

最近买到手了一个旭日派x3,正好公司最近正在研究能不能把模型往一些轻量化的前端去部署,本人又刚刚好喜欢折腾,就开始研究这个东西了
顺便在这里感谢一下dalao提供的教程,让我能初步使用旭日派x3进行推理[BPU部署教程] 万字长文!通透解读模型部署端到端大流程——以终为始,以行为知,当然我做的还有一点问题,后续都会挨个修复

模型的转化

(1):pt转onnx,得到可用onnx模型

这个的话比较简单,只需要用pytorch读取yolov8n-pose模型后进行导出即可,虽然大佬、建议每次导出,都做个校队,以确保使用过程中不会出问题,但我懒,没有做校队
代码:

import os
import sys
sys.path.append(os.getcwd())
import cv2
import numpy as np
import torch
import onnx
# 1. 加载Pytorch模型
dataroot = "./data/"
modelpath = os.path.join(dataroot, "yolov8n-pose.pt")
net = torch.load(modelpath)['model']
net.eval()  # ※这个要有
net.float()
# 2. 转换ONNX
onnxpath = os.path.join(dataroot, "yolov8n_pose.onnx") # 定义onnx文件保存目录
im = torch.randn(1, 3, 640, 640).cpu() # 定义输入变量,维度重要,内容不重要
# 下面是转onnx的基本配置,为了能够用在BPU上,按照下面这个方式配置参数即可
# 对于多输入输出的模型,参考连接:https://www.cnblogs.com/WenJXUST/p/16334151.html
# 下面这个Warning可以忽略不管
# Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.
torch.onnx.export(net,
                  im,
                  onnxpath,
                  verbose=False,
                  training=torch.onnx.TrainingMode.EVAL,
                  do_constant_folding=True,
                  input_names=['images'],
                  output_names=['output'],
                  dynamic_axes=None,
                  opset_version=11)

# 3. 检查ONNX,如果ONNX有问题,这里会输出一些日志
print('Start check onnx')
model_onnx = onnx.load(onnxpath)
onnx.checker.check_model(model_onnx)

(2:)onnx模型转bin模型

正确做法,其实是先校队一下你的onnx模型有没有损失,转化过程中有没有错误,但我说了我比较懒,就越过这一步了

转化过程:
1、将上面得到的onnx模型移到你的ubuntu目录下
2、通过官方的模型转化工具来进行转化,当然,需要做一点点小小的修改
通过vscode打开官方转化工具包全局搜索672,将其改成640(这个按需求来做,如果是yolov8x我记得好像是1280了)
补充:我感觉的话,其实只需要改/yolov5s_v2.0/04_detection/03_yolov5s/mapper/preprocess.py和/yolov5s_v2.0/04_detection/03_yolov5s/mapper/postprocess.py
这俩处的672就可以了,其他地方不需要动

然后,继续按照官方文档
首先修改01_check_X3.sh和yolov5s_config_X3.yaml,吧里面的模型路径换成你的模型路径
修改后就可以按照官方的01_check_X3.sh,02_preprocess.sh,03_build_X3.sh的顺序去获取编译后得到的bin模型了

结尾

由于我也是刚刚开始使用旭日派x3,这篇文章可能写的不太好,中间如果大家有问题我也是欢迎提问,并优化文章的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值