云计算百科
云计算领域专业知识百科平台

Atlas800昇腾服务器(型号:3000)—YOLO全系列om模型转换测试(三)

服务器配置如下:

CPU/NPU:鲲鹏 CPU(ARM64)+A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-hdk-310p-npu-firmware_7.1.0.4.220.run【下载链接】 MCU版本:Ascend-hdk-310p-mcu_23.2.3【下载链接】 CANN开发套件:版本7.0.1【Toolkit下载链接】【Kernels下载链接】

测试om模型环境如下:

Python:版本3.8.11 测试YOLO系列:v5/6/7/8/9/10/11

专栏其他文章: Atlas800昇腾服务器(型号:3000)—驱动与固件安装(一) Atlas800昇腾服务器(型号:3000)—CANN安装(二) Atlas800昇腾服务器(型号:3000)—YOLO全系列om模型转换测试(三) Atlas800昇腾服务器(型号:3000)—AIPP加速前处理(四) Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【检测】(五) Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【实例分割】(六) Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【关键点】(七) Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【跟踪】(八)

1 环境安装

1.1 miniconda安装

链接:https://docs.anaconda.com/miniconda/index.html 在这里插入图片描述

安装后,创建一个名yolo的环境【Python==3.8.11】:

# 注意:创建普通用户并进入用户再运行如下
# 选择一个一个可下载的文件目录,使用wget命令下载(回车)
wget https://repo.anaconda.com/miniconda/Miniconda3latestLinuxaarch64.sh

# 安装中:
# 1.一路enter(回车)下去,直到问yes,输入yes。
# 2.我使用默认路径/gdu/miniconda/ ,不更改的继续回车就好。
# 3.然后最后一个问是否写入路径,提示为No,建议输入yes(如果输入No了,需要自己去配置下地址)
bash Miniconda3latestLinuxaarch64.sh

# 此时完成安装后没有在root用户前显示conda环境,输入
source ~/.bashrc

# 创建python=3.8.11基础环境
conda create n yolo python=3.8.11

换源参考:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

1.2 安装ATC所需依赖库

注意:安装为ATC转换的必须依赖环境,下面操作在CANN中有在root上装,这里是新用户新环境,需再安装配置一次!! 第一次(直接装均成功):

conda activate yolo

pip install attrs cython decorator sympy cffi pyyaml pathlib2 psutil protobuf requests abslpy i https://pypi.tuna.tsinghua.edu.cn/simple

第二次(利用pip进行scipy安装,1.8.0也可以,会顺带把numpy一起安装,版本为1.22.4):

pip install scipy==1.7.0 i https://pypi.tuna.tsinghua.edu.cn/simple

注意:安装完需source ~/bashrc才能生效!

# 1.进入运行环境yolo【普通用户】
conda activate yolo
# 2.激活atc【atc –help测试是否可行】
source ~/bashrc

2 om模型转换测试

2.1 静态onnx转换测试

注意:以下测试模型均为静态onnx! YOLOv5测试:【检测/分割om均生成成功】

# 转换示例
atc framework=5 model=yolov5s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov5s soc_version=Ascend310P3

YOLOv6测试:【检测/分割om均生成成功】

# 转换示例
atc framework=5 model=yolov6s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov6s soc_version=Ascend310P3

YOLOv7测试:【检测om均生成成功】

# 转换示例
atc framework=5 model=yolov7.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov7 soc_version=Ascend310P3

YOLOv8测试:【检测/分割/关键点om均生成成功】

# 转换示例
atc framework=5 model=yolov8s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov8s soc_version=Ascend310P3

YOLOv9测试:【检测om均生成成功】

# 转换示例
atc framework=5 model=yolov9s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov9s soc_version=Ascend310P3

YOLOv10测试:【检测om生成成功,但出现算子告警】

# 转换示例
atc framework=5 model=yolov10s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolov10s soc_version=Ascend310P3

在这里插入图片描述

YOLOv11测试:【检测/分割/关键点om均生成成功】

atc framework=5 model=yolo11s.onnx input_format=NCHW input_shape="images:1,3,640,640" output_type=FP32 output=yolo11s soc_version=Ascend310P3

成功显示如下: 在这里插入图片描述

YOLOv8s静态640*640耗时测试结果: 在这里插入图片描述

2.2 动态宽高onnx转换测试

(1)YOLOV8导出宽高动态ONNX 路径:ultralytics-main/ultralytics/engine/exporter.py 在这里插入图片描述 (2)生成宽高动态Om

atc framework=5 model=A_onnx/yolov8s_wh.onnx output=A_om/yolov8s_wh input_format=NCHW input_shape="images:1,3,-1,-1" dynamic_image_size "640,640;960,960;1024,1024;1280,1280;1536,1536;2048,2048" soc_version=Ascend310P3

YOLOv8s动态宽高640*640耗时测试结果:【存在om尺度检查机制,推理速度更慢】 在这里插入图片描述

赞(0)
未经允许不得转载:网硕互联帮助中心 » Atlas800昇腾服务器(型号:3000)—YOLO全系列om模型转换测试(三)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!