Hi3519DV500移植Yolov8

1.总概述

本文主要是整理海思3519dv500 NPU的代码,把完整操作流程记录,整理demo代码,能完整实现一个demo程序,完成在端侧推理,图片到图片的流程,结果输出展示到图片上面.Demo相关代码路径
hi3519dv500 Yolov8Demo

2.模型转换环境和模型转换移植

2.1 Yolov8环境安装(Conda)python3.7.5
conda create -n yolov8 python=3.7.5
conda actiavate yolov8
2.2 下载Yolov8源代码,安装相关依赖

这部分主要参考SDK目录下文档

Hi3519DV500R001C01SPC011\SVP_PC\SVP_PC\SVP_NNN_PC_V3.0.2.1\SVP_NNN_PC_V3.0.2.1\Sample\samples\samples\2_object_detection\yolo\onnx_model\README_yolov8.md

下载代码

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
#这个地方reset主要目的是后面需要打rpn的补丁,需要从这个commit id上打补丁
git reset --hard d3f097314f9478de7f995d4e4b4ccb0c6fbc65d3

安装yolov8依赖

#在ultralytics目录
pip install --upgrade pip
pip install -r requirements.txt #需要打开导出onnx相关的
2.3 打rpn补丁

补丁的路径
Hi3519DV500R001C01SPC011\SVP_PC\SVP_PC\SVP_NNN_PC_V3.0.2.1\SVP_NNN_PC_V3.0.2.1\Sample\samples\samples\2_object_detection\yolo\onnx_model\0001-yolov8-rpn.patch

复制0001-yolov8-rpn.patch到ultralytics目录
执行

#要确定commit id为d3f097314f9478de7f995d4e4b4ccb0c6fbc65d3 否则打补丁失败
git apply --reject 0001-yolov8-rpn.patch
2.4 下载开源模型,导出为onnx
#在ultralytics目录执行python3,然后在执行下面三行
from ultralytics import YOLO
model = YOLO("yolov8n.pt") #这个会从github下载pt权重文件https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
success = model.export(format="onnx", opset=13) #opset需要指定为13
2.5 安装ATC转换工具

atc转工具在sdk目录

Hi3519DV500R001C01SPC011\SVP_PC\SVP_PC\SVP_NNN_PC_V3.0.2.1\SVP_NNN_PC_V3.0.2.1\MindStudio\Ascend-cann-toolkit_6.10.t03spc011b010_linux.x86_64.run

复制MindStudio\Ascend-cann-toolkit_6.10.t03spc011b010_linux.x86_64.run 到虚拟机,因为atc工具依赖python3.7.5环境,和上面yolov8的环境一样,就直接用yolov8的虚拟环境安装,可以指定自己的路径,或者用默认路径,注意下面source的路径需要和你的路径一致

./Ascend-cann-toolkit_6.10.t03spc011b010_linux.x86_64.run --install --install-path=/home/ll/work/code/sda/3519dv500/ascend

source /home/ll/work/code/sda/3519dv500/ascend/ascend-toolkit/svp_latest/x86_64-linux/script/setenv.sh
2.6 模型转换ONNX转om

参考文档
Hi3519DV500R001C01SPC011\SVP_PC\SVP_PC\SVP_NNN_PC_V3.0.2.1\SVP_NNN_PC_V3.0.2.1\Sample\samples\samples\2_object_detection\yolo\README.md

转换命令

source /home/ll/work/code/sda/3519dv500/ascend/ascend-toolkit/svp_latest/x86_64-linux/script/setenv.sh #按实际路径source
atc --dump_data=0 --input_shape="images:1,3,640,640" --input_type="images:UINT8" --log_level=0 --online_model_type=0 --batch_num=1 --input_format=NCHW --output="yolov8n" --soc_version=Hi3519DV500 --insert_op_conf=./inser
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱爬山的木木

佛系

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值