1.模型的训练
首先完成yolov5模型的训练,直接训练得到的模型为.pt格式
YOLOv5——模型的训练train.py与图片的标注-优快云博客
https://blog.youkuaiyun.com/myhfory/article/details/143468220
2.模型格式.pt->.onnx
使用yolov5项目中自带的export.py文件,将.pt文件转换为.onnx模型文件,运行后会在pt文件同级文件夹生成onnx模型文件
格式转换完成后,可以使用detect.py文件对.onnx模型进行测试,只需将参数里的模型换为转换好的onnx模型
python detect.py --weight yolov5s.onnx --source demo.mp4 --data coco.yaml
# yolov5s.onnx为转换得到的onnx模型
YOLOv5推理——detect.py参数列表及常用参数-优快云博客
https://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,版本比较新,不过版本应该不是什么大问题。
安装配置虚拟机可以参考下面的链接:
然后安装进行ATC转换需要使用到的CANN包(建议不要用太新的版本T-T)
CANN 社区版历史版本-昇腾社区 (hiascend.com)
https://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.如果要从本地机器转移文件到虚拟机里,可以设置共享文件夹,参考下文中设置共享文件夹的方式:
五、参考
Ubuntu22.04安装教程&基于华为Ascend AI处理器的om模型atc转换环境安装_ubuntu安装atc工具-优快云博客
https://blog.youkuaiyun.com/m0_61062162/article/details/132676723使用ATC命令转换模型-在虚拟机安装Linux Ubuntu 22.04-在Ubuntu系统上转换模型-转换模型-应用开发指南-Atlas 200I DK A2开发者套件23.0.RC3开发文档-昇腾社区 (hiascend.com)
https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application%20Development%20Guide/tmuacop/tmuacop_0008.html
1万+

被折叠的 条评论
为什么被折叠?



