由于之前写了一篇 ”yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署“ 这一篇导出的onnx模型在板端芯片部署效率非常高的,高效率体现在模型的所有操作都在加速引擎(NPU或BPU)上,模型推理没有CPU和板端加速引擎的切换,且后处理对一些维度变换直接用了索引的方式,没有额外的维度变换操作;且导出的onnx模型通用性很强,可以转换成任何板端模型;但工程部署难道相对大一些,有网友希望提供一个基于官方导出的onnx进行板端部署,因此本篇就基于 yolov8 官方导出onnx的方式,进行模型在板端芯片部署和仿真测试。
1 模型训练修改部分
由于有些板端芯片对SiLU激活函数不支持,因此将激活函数 SiLU 替换成 ReLU,并基于 VOC 数据集进行了重新训练。
2 导出onnx模型修改
导出onnx需要修改一行
# 导出 onnx
from ultralytics import YOLO
model = YOLO('../weights/yolov8n_relu_20class.pt')
success = model.export(format="onnx")
3 onnx测试效果
4 板端高效部署方式
请参考板端芯片高效部署