**
本篇基于YoloV8工程的目标检测模块,Tensorrt推理库进行介绍,按需阅读
C++编译工程,C#部署工程基本源于@椒颜皮皮虾྅,感谢,以下两篇文章供参考
**
Ace
https://mp.weixin.qq.com/s/Sw9ukiM9ZKOuzzGePVV4mg
https://mp.weixin.qq.com/s/tT_21llcfGvkkq-HjdEOiw
以下为版本要求对应,相应资源工具会放在文章最后,请预先下载完毕
显卡建议RTX3060及以上,VisualStudio2022(安装所需框架即可,会自动配置所需.net框架 和 .net Framework框架),python3.8,cuda_11.0.3,cudnnv8.2.1,TensorRT-8.2.4.2,opencv-4.7.0,netron最新版本
**
Python篇
**
- 使用LabelImg进行个人数据集的标注(如何操作请百度)
- 下载YoloV8工程以及对应目标检测模型(本篇使用Detection的yolov8m模型),按文末资源中的requirements.txt配置环境
- 基于YoloV8工程进行训练,可得best.pt,使用其中的转换模块将pt模型转为onnx模型
https://github.com/ultralytics/ultralytics
**
C++篇
**
请进入文末资源工具集中得工程目录下的 TensorRT-CSharp-API-TensorRtSharp2.0
- CUDA,CUDNN,Tenssorrt安装,请参考文头的第一篇文章,版本请以此文所注为准
- 文章1的C++ 编译篇的第四步:设置附加依赖项,请按以下设置
cublas.lib
cublasLt.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cudnn.lib
cudnn64_8.lib
cudnn_adv_infer.lib
cudnn_adv_infer64_8.lib
cudnn_adv_train.lib
cudnn_adv_train64_8.lib
cudnn_cnn_infer.lib
cudnn_cnn_infer64_8.lib
cudnn_cnn_train.lib
cudnn_cnn_train64_8.lib
cudnn_ops_infer.lib
cudnn_ops_infer64_8.lib
cudnn_ops_train.lib
cudnn_ops_train64_8.lib
cufft.lib
cufftw.lib
curand.lib
cusolver.lib
cusolverMg.lib
cusparse.lib
nppc.lib
nppial.lib
nppicc.lib
nppidei.lib
nppif.lib
nppig.lib
nppim.lib
nppist.lib
nppisu.lib
nppitc.lib
npps.lib
nvblas.lib
nvinfer.lib
nvinfer_plugin.lib
nvjpeg.lib
nvml.lib
nvonnxparser.lib
nvparsers.lib
nvrtc.lib
OpenCL.lib
- C++工程编译得TensorRtExtern.dll,C#工程编译得 TensorRtSharp.dll
**
C#篇
**
使用文末的CSharpYoloV2工程(基于.net Framework 4.8)
- 将python转化出来的onnx模型放入bin\Debug\modelPath下,引用TensorRtSharp.dll,点击 ConvertToEngine进行转换engine操作
- 使用netron查看onnx模型,找到最后的output0输出层,我的模型如下,供参考
其中1不变,5=类别数+4,34000每个模型可能结果不一样
-
修改如下图所示参数为34000(这个值需要查询onnx模型结构得出,每个人得出的结果可能都不一样),修改Img Path指向你所要预测的图片路径,点击Infer即可进行预测
-
类别设置等配置 请自行阅读工程代码进行修改
-
预测结果图片为bin路径得res.jpg(下图为预测结果),修改结果得路径及结果显示,请按需修改代码即可
资源工具集
链接:链接:https://pan.baidu.com/s/1fWPdYsrSjA4WA7XFjZU1SQ?pwd=bae0
提取码:bae0