原始yolov8的输出维度是,会造成后处理的时候会造成内存访问不连续,不利于我们对推理结果做解码。
修改
/ultralytics/nn/modules/head.py
文件中的这两部分:
将
return y if self.export else (y, x)
更改为
return y.permute(0, 2, 1) if self.export else (y, x)
修改代码后执行安装命令:
pip install -e '.[dev]'
使代码生效,使用如下命令导出onnx文件:
yolo export model=yolov8n.pt format=onnx opset=12
可以获得更改输出维度之后的onnx文件:
补充:
使用TensorRT将onnx文件导出为engine文件的命令:
trtexec --onnx=yolov8n.onnx --saveEngine=yolov8n.engine