提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言一、配置tensorRT二、使用vs cuda10.2编译tensorrt代码1.首先把代码和模型文件下载备用2.配置sln/props里的配置文件3.配置sln/dll_detector里的dll_detector.vcxproj配置文件4.先build dll_detector这个项目5.build test_dll这个最后的项目三、int8 和 fp16 和 batch inference功能使用1、int82、fp163、batch inference总结前言
参考一个大佬的代码,知乎链接:/p/102453331
GitHub代码链接:/enazoe/yolo-tensorrt
一、配置tensorRT
参考之前的博客文章或者网上其他教程。
二、使用vs cuda10.2编译tensorrt代码
1.首先把代码和模型文件下载备用
2.配置sln/props里的配置文件
把里面cuda opencv tensorrt这三个包的路径修改为自己的路径
3.配置sln/dll_detector里的dll_detector.vcxproj配置文件
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 10.2.props" />
因为原始是11.0我使用的是10.2所以要修改像上面那样(有两个地方)
如果报错没有props文件:如下
error : 找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.2.targets”。请确认 Import 声明“C:\Program Files %28x86%29\MSBuild\Microsoft.Cpp\v4.0\V140\\BuildCustomizations\CUDA 10.2.targets”中的表达式正确,且文件位于磁盘上。
就把下面几个cuda文件的路径复制到c盘vs那个报错的路径里。
4.先build dll_detector这个项目
修改项目属性,因为vs有个api改了所以改成用build就能用。
5.build test_dll这个最后的项目
这个没改成也可以编译出来,要依赖上一个项目生成的detector.lib就是了
然后把模型放到…/configs/yolov5-3.0/目录下
把sample_detector.cpp 里改成yolov5版本或者其他支持的版本
detector->init(config_v5);
三、int8 和 fp16 和 batch inference功能使用
1、int8
我使用的是cuda10.2,最新的tensorrt最好使用cuda11,我降版本使用tensorRT7.0后解决了问题,
同时calibration_images.txt里面改为测试图片的路径。
目前tensorRT7.0 cuda10.2不支持int8的批推理,单张可以。不知道最新版本修复没有。
2、fp16
同样是注意cuda的版本和tensorRT的版本,同时fp16支持批推理功能。
3、batch inference
需要使用scripts的yaml2cfg.py的转换,修改–batch 导出的模型才支持批推理,注意使用的是yolov5的v3.0的版本。
总结
非常的厉害的一个大佬写的代码,膜拜ing,我也是在他的指导下才弄好。
其他的功能慢慢去摸索源码了。。
待添加。。