实例讲解昇腾 CANN YOLOV8 和 YOLOV9 适配
本文分享自华为云社区《
昇腾 CANN YOLOV8 和 YOLOV9 适配
》,作者:jackwangcumt。
1 概述
华为昇腾 CANN YOLOV8 推理示例 C++样例 , 是基于
Ascend CANN Samples
官方示例中的
sampleYOLOV7
进行的YOLOV8适配。一般来说,YOLOV7模型输出的数据大小为[1,25200,85],而YOLOV8模型输出的数据大小为[1,84,8400],因此,需要对
sampleYOLOV7
中的后处理部分进行修改,从而做到YOLOV8/YOLOV9模型的适配。因项目研发需要,公司购置了一台 Atlas 500 Pro 智能边缘服务器, 安装的操作系统为Ubuntu 20.04 LTS Server,并按照官方说明文档,安装的Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run等软件。具体可以参考另外一篇博文【
Atlas 500 Pro 智能边缘服务器推理环境搭建
】,这里不再赘述。
2 YOLOV8模型准备
在进行YOLOV8模型适配工作之前,首先需要获取YOLOV8的模型文件,这里以官方的 YOLOV8n.pt模型为例,在Windows操作系统上可以安装YOLOV8环境,并执行如下python脚本(pth2onnx.py)将.pt模型转化成.onnx模型:
import argparsefromultralytics import YOLO
def main():
parser=argparse.ArgumentParser()
parser.add_argument('--pt', default="yolov8n", help='.pt file')
args=parser.parse_args()
model=YOLO(args.pt)
onnx_model= model.export(format="onnx", dynamic=False, simplify=True, opset=11)if __name__ == '__main__':
main()
具体的YOLOV8环境搭建步骤,可以参考
https://github.com/ultralytics/ultralytics
网站。当成功执行后,会生成yolov8n.onnx模型。输出内容示例如下所示:
(base) I:\yolov8\Yolov8_for_PyTorch>python pth2onnx.py --pt=yolov8n.pt
Ultralytics YOLOv8.0.229