YOLOv5——从.pt模型到昇腾.om离线模型

该文章已生成可运行项目,

1.模型的训练

首先完成yolov5模型的训练,直接训练得到的模型为.pt格式

YOLOv5——模型的训练train.py与图片的标注-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/myhfory/article/details/143468220

2.模型格式.pt->.onnx

使用yolov5项目中自带的export.py文件,将.pt文件转换为.onnx模型文件,运行后会在pt文件同级文件夹生成onnx模型文件

YOLOv5——使用export.py把pt格式模型输出为onnx模型_yolov5 pt转onnx-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/myhfory/article/details/141441442?spm=1001.2014.3001.5501

格式转换完成后,可以使用detect.py文件对.onnx模型进行测试,只需将参数里的模型换为转换好的onnx模型

python detect.py --weight yolov5s.onnx --source demo.mp4 --data coco.yaml 
 
# yolov5s.onnx为转换得到的onnx模型

YOLOv5推理——detect.py参数列表及常用参数-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/myhfory/article/details/143466597

3.ATC工具.onnx->.om

使用ATC工具完成把.onnx模型转换为.om模型

1)查看型号

使用npu-smi info查看香橙派什么型号

2)模型转换

模型转换指令

atc --model=yolov5s.onnx --framework=5 --output=yolov5s --input_format=NCHW --input_shape="images:1,3,640,640" --soc_version=Ascend310B4 

--model:ONNX模型文件存储路径
--framework:原始框架类型,5表示ONNX
--output:离线om模型的路径以及文件名
--input_format:原模型输入张量格式,yolov5.onnx模型为NCHW格式
--input_shape:执行推理时模型输入数据的shape
--soc_version:昇腾AI处理器的型号

有两种方式:

直接在板子上进行模型转换,但速度较慢

或者使用虚拟机,搭建环境,在虚拟机上进行模型转换

①直接在昇腾机器上运行ATC工具

由于转换速度太慢所以我选择在虚拟机中进行模型的转换

②使用虚拟机转换模型

首先要有一个虚拟机,本文使用的是unbuntu24.04,版本比较新,不过版本应该不是什么大问题。

安装配置虚拟机可以参考下面的链接:

VMware虚拟机下安装Ubuntu20.04(保姆级教程)_ubuntu 20.04 虚拟机-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/qq_45657288/article/details/116084337#:~:text=%E6%9C%AC%E6%96%87%E8%AF%A6%E7%BB%86%E4%BB%8B%E7%BB%8D%E4%BA%86%E5%A6%82%E4%BD%95%E5%9C%A8VMware%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E5%AE%89%E8%A3%85%EE%80%80Ubuntu20.04%EE%80%81%E7%B3%BB%EE%80%80%E7%BB%9F%EF%BC%8C%E5%8C%85%E6%8B%AC%E9%95%9C%EE%80%81%E5%83%8F%E4%B8%8B%E8%BD%BD%E3%80%81%E8%99%9A%E6%8B%9F%E6%9C%BA%E9%85%8D%E7%BD%AE%E3%80%81%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE%E3%80%81%E7%BD%91%E7%BB%9C%E6%B5%8B%E8%AF%95%E7%AD%89%E6%AD%A5%E9%AA%A4%EF%BC%8C%E5%B9%B6%E6%8F%90%E4%BE%9B%E4%BA%86%E7%BD%91%E7%9B%98%E9%93%BE%E6%8E%A5%E5%92%8C%E6%88%AA%E5%9B%BE%E3%80%82%E9%80%82%E5%90%88%E5%88%9D%E5%AD%A6%E8%80%85%E5%92%8C%E6%83%B3%E8%A6%81%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAUbuntu%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%E7%94%A8%E6%88%B7%E5%8F%82%E8%80%83%E3%80%82

然后安装进行ATC转换需要使用到的CANN包(建议不要用太新的版本T-T)

CANN 社区版历史版本-昇腾社区 (hiascend.com)icon-default.png?t=O83Ahttps://www.hiascend.com/zh/software/cann/community-history本文使用的是6.2.RC2.alpha001版本,因此在虚拟机里需要下载两个软件包:

Ascend-cann-nnrt_6.2.RC2_linux-x86_64.run

Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run

把他们转移到虚拟机里,或者直接在虚拟机里下载,然后使用命令行进入软件所在目录,检查包完整性并安装

chmod +x Ascend-cann-nnrt_6.2.RC2_linux-x86_64.run
chmod +x Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run
#赋予权限
 
./Ascend-cann-nnrt_6.2.RC2_linux-x86_64.run --check
./Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run --check
#检查安装包完整性
 

安装软件包

./Ascend-cann-nnrt_6.2.RC2_linux-x86_64.run--install
./Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run --install
#安装

最终显示成功安装。

然后配置环境变量,否则不能在命令行直接使用atc工具

vi ~/.bashrc
 
export ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest
export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/devlib/:$LD_LIBRARY_PATH
export PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/op_impl/built-in/ai_core/tbe:$PYTHONPATH
export PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:$PATH
export ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}
export ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp
export TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit
export ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}
 
source ~/.bashrc

配置完成后,直接命令行输入atc显示如图,即为成功(root权限下)

然后就可以进行愉快的模型格式转换了!!

run success!

转换成功,就可以在昇腾AI处理器上部署项目啦

四、注意!!

        1.安装CANN包的时候可能会安装失败,一般是因为空间不足导致的,可以用虚拟机的磁盘管理器看下空间占用情况

空间不足就及时给虚拟机分配空间

        2.atc转换总是失败并且找不到什么原因,检查一下会不会是自己下载的CANN版本太高,降低一下版本,当初就是因为版本的问题困扰了我半个多月T-T

        3.如果要从本地机器转移文件到虚拟机里,可以设置共享文件夹,参考下文中设置共享文件夹的方式:

挂载镜像安装VMware Tools,与设置共享文件夹,实现主机与虚拟机文件传输_vmware tools镜像-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/myhfory/article/details/141288305?spm=1001.2014.3001.5501

五、参考

Ubuntu22.04安装教程&基于华为Ascend AI处理器的om模型atc转换环境安装_ubuntu安装atc工具-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/m0_61062162/article/details/132676723使用ATC命令转换模型-在虚拟机安装Linux Ubuntu 22.04-在Ubuntu系统上转换模型-转换模型-应用开发指南-Atlas 200I DK A2开发者套件23.0.RC3开发文档-昇腾社区 (hiascend.com)icon-default.png?t=O83Ahttps://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application%20Development%20Guide/tmuacop/tmuacop_0008.html

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值