安装环境接上篇:Ubuntu安装配置opencv
安装tensorRT:https://developer.nvidia.com/nvidia-tensorrt-7x-download
我这里安装的是:TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz
因为我的环境配的是:cuda10.2,这里我特别注意了下cudnn,在下载的时候链接没有说明,但是下载下来后压缩包上有写cudnn的版本,如果下载下来为7.6.5会与我的cudnn为8.0.3不匹配。
安装tensorRT
解压完后,拖到home目录下,或者你工作的目录下
tar xzvf TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz
将lib绝对路径添加到环境变量中
vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/TensorRT-7.1.3.4/lib
source ~/.bashrc
TensorRT路径复制到 usr下面
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
使用tensorRT转yolov5
下载tensorerx实例:
https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5
找到里面的yolov5,根据git上的步骤做:
举个例子:(在v5目录下)
1.pt–>wts
python gen_wts.py -w yolov5s.pt -o yolov5s.wts
2.cmake和make编译
cd yolov5
mkdir build
cd build
# 将刚刚得到wts复制到build中
cp /yolov5/yolov5s.wts /yolov5/build
# 编译
cmake ..
make
结束会得到yolov5
遇到问题:
/usr/bin/ld: warning: libzstd.so.1, needed by //home/jh/anaconda3/lib/libtiff.so.5, not found (try using -rpath or -rpath-link)
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_initCStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_compressStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_freeCStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_maxCLevel'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_createDStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_decompressStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_initDStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_createCStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_isError'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_freeDStream'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_getErrorName'
//home/jh/anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_endStream'
collect2: error: ld returned 1 exit status
你可以找到在/home/jh/anaconda3/lib目录下看到,有/libtiff.so.5,应该是没有识别,加入环境变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jh/anaconda3/lib
转yolov5.engine并使用yolov5的模型
-s 转模型
-d 前向推理
// For example yolov5s
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
sudo ./yolov5 -d yolov5s.engine ../samples
// For example Custom model with depth_multiple=0.17, width_multiple=0.25 in yolov5.yaml
sudo ./yolov5 -s yolov5_custom.wts yolov5.engine c 0.17 0.25
sudo ./yolov5 -d yolov5.engine ../samples