yoloV8导出engine模型
引言:
目的是TensorRT加速YOLO实例分割模型。
本博客记录达成此目的所需的步骤,及步骤中可能遇到的问题。
as follow:
1. 首先导出onnx模型的脚本命令:
yolo export model=best.pt format=onnx opset=12 simplify=True
脚本命令的参数:
不同格式使用的模型对应:
我遇到的几个问题:
ImportError: DLL load failed while importing _imaging: 找不到指定的模块。
解决:pip卸载Pillow,再重新安装
pip uninstall Pillow
pip install Pillow
ModuleNotFoundError: No module named 'onnx'
解决:pip安装onnx
pip install onnx
requirements: Ultralytics requirements ['cmake', 'onnxsim>=0.4.33', 'onnxruntime'] not found, attempting AutoUpdate...
requirements: ❌ AutoUpdate skipped (offline)
解决:pip安装cmake、onnxsim【版本>=0.4.33,可能遇到文件名过长的问题】、onnxruntime
pip install cmake
pip install onnxsim==0.4.33 #可能会报错文件名过长【原因可能是安装python的时候没有禁用文件名长度限制】
#进入conda虚拟环境后
mountvol -x D:\ /s
#然后再次
pip install onnxsim==0.4.33
pip install onnxruntime
最后导出best.onnx模型:
2. 先测试一下导出onnx模型【脚本命令】:
yolo task=segment mode=predict model=best.onnx source=18.JPG show=True save=True device=0
测试效果:
3. TensorRT安装、onnx转engine:
TensorRT官网:https://developer.nvidia.com/tensorrt/download
安装教程【参考博客】:https://blog.csdn.net/qq_44747572/article/details/129022225
版本对应【参考博客】:
https://blog.csdn.net/initative/article/details/138213992
安装完成后,可以使用trtexec 命令:
trtexec --onnx=best.onnx --saveEngine=best.engine
即可得到yolo的engine模型。
trtexec命令参数【参考博客】:
https://blog.csdn.net/HW140701/article/details/120360642