一、闲扯部分
因工作和学习需要,需要对yolo5s进行GPU的加速推理,参考了大佬前辈们的经验,可能个人原因,居然步步是坑,因此记录下此次的辛酸历程。
二、环境的搭建
1. ubuntu20.04 ,因为18.04 实在是搞不定驱动和内核的匹配,因此放弃了哈哈。
2. CUDA 11.06 nvidia-smi 提示选用11.7,忽略就好,没啥用,实际编译过程是自己的安装版本。
因为个人采用的是安装包的形式,就是解压配置路径,随便一个大佬的安装经验都能满足。如果出现没有“没有符号连接怎么办”,先不管,继续往下走。
3. cudnn 8.4.0 继续剽窃大佬博客的安装方式,随便搜就有。
4. TensorRT 8.4.2.4 这个安装就比较坑了,正常安装测试后没有问题,但是需要注意一点:
配置完路径后记得(有点重要哦):
cp /你的tensorRT路径/include /usr/include
cp /你的tensorRT路径/lib /usr/lib
这样方便避免后续出现的找不到NvInfer.h 之类的情况。
5. 下载安装对应的deepstream 6.1
三 、部署流程
写在前面:如果不想重新来一遍,建议 yolo5版本 和 TensorRTR版本一直,从git分支进行对应的下载。
1. git clone https://github.com/wang-xinyu/tensorrtx.git
2. git clone https://github.com/ultralytics/yolov5.git
3. git clone https://github.com/marcoslucianops/Deepstream-yolo.git
版本去分支下载一致版本,不然最后的.engine文件运行不起来,因为yololayer.cu.0会提示你 某些层解析不了哈哈。
4. 打开3克隆的Deepstream-yolo文件,将/utils 下面的gen_wts_yoloV5.py 拷贝到 2的yolov5文件夹下,执行 python3 gen_wts_yoloV5.py -w yolov5s.pt
5. 打开1 下载的tensorrtx/yolov5文件夹,将4生成的yolov5s.pt 拷贝进来,CmakeList文件里面添加 include_directories(/你的tensorRT路径/include)
6 .cd tensorrtx/yolov5
cmake ..
make
7. 正常情况已经可以得到动态连接库libmyplugins.so和.engine文件了。
8. 将7生成的两个文件放到Deepstream-yolo下面,进入/nvdsinfer_custom_impl_Yolo 下,进行make,会生成.cfg和libnvdsinfer_custom_impl_yolo.so .
9. 最后就是配置文件啦,全网统一,不写啦。deepstream-app -c 你的配置文件
10.不出意外跑不起来,因为egl渲染库会出问题,glxinfo | gerp OpenGl 看看是不是只有集成显卡可用,如果是,切换到nvidia显卡, sudo pri-selet nvidia
11. reboot重启
12.可以运行啦