赞
踩
如果要用TensorRT部署YOLOv8,需要先使用下面的命令将模型导出为onnx格式:
yolo export model=yolov8n.pt format=onnx opset=12
YOLOv8的3个检测头一共有80x80+40x40+20x20=8400个输出单元格,每个单元格包含x,y,w,h这4项再加80个类别的置信度总共84项内容,所以通过上面命令导出的onnx模型的输出维度为1x84x8400。
这样的通道排列顺序有个问题,那就是后处理的时候会造成内存访问不连续。为了解决这个问题,我们可以修改一下代码,具体做法是把ultralytics/nn/modules.py文件中的421行做如下修改,交换一下张量y的通道顺序:
修改代码后需要执行前面的安装命令pip install -e '.[dev]'使代码生效。这样修改后再执行上面的模型导出命令,模型的输出维度变为1x8400x84。
参考:YOLOv8初体验:检测、跟踪、模型部署
参考:
参考:
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。