环境:
TensorRT-8.5.1.7.
Windows10.x86_64
.cuda-11.6
.cudnn8.5
VS2022
TensorRT部署流程:
- 训练模型
- 导出模型为 ONNX 格式
- 选择精度
- 转化成 TensorRT 模型
- 部署模型
其中 ONNX 格式的导出和运行设备无关,可以在自己的电脑上导出,其他设备上使用。而第四步转化得到的 TensorRT 模型文件是和设备绑定的,在哪个设备上生成就只能在该设备使用。
导出命令:
python export.py --weights=best.pt
到处onnx查看结构:
转化模型:
转化成TensorRT的engine文件命令如下:
trtexec.exe --onnx=best.onnx --workspace=2048 --saveEngine=best.engine --fp16
使用shouxieai的TensorRT_Pro对engin文件推理
C++ TensorRT程序下载:
tensorRT_Pro/example-simple_yolo at main · shouxieai/tensorRT_Pro · GitHub
需要做如下5个操作
1.准备好best.onnx和best.FP16.trtmodel文件,放到如下目录下:
tensorRT_Pro-main\example-simple_yolo\workspace
2.可以为 best.FP16.engine文件后缀,但要修改程序main.cpp,trtmodel后缀修改为engine,如下:
修改后:
3.修改labels:
4.创建推理结果存放位置目录simple_yolo_result如下:
tensorRT_Pro-main\example-simple_yolo\workspace\simple_yolo_result
配置好import_lib.cpp中的opencv_world470d.lib
如下:
5. 并将如下所有的包放到C:\Windows\System32下
运行如下:
最后关于tensorRT推理文件后缀没有多大关系,可以是engine也可以为trtmodel。如可以使用TensorRT_Pro的程序不用修改main.cpp程序的后缀,直接修改导出 best.engine为best.trtmodel后缀文件也是可以的,不会影响推理。
参考: