作者首先在本地机win和ubuntu18上尝试直接配tensorrt,进而使用tensorRTX中的yolov5。遗憾的是,两者都异常。最终尝试在ubuntu上用Docker配置,成功跑通。
在win上碰到的问题是:卡在了编译yolov5上。
vs这个东西很难搞就是了。
在ubuntu上碰到的问题是:卡在了安装TensorRT上。
安装tensorrt有tar.gz安装,还有deb安装。我这时选的是deb,结果就是,还需要重要把CUDA卸了,重新装一遍。因为deb格式对cuda的安装方式有要求。
1.安装docker和TensorRT
1.1 docker
安装docker的部分,直接参考这里的教程:Docker TensorRT教程
1.2 TensorRT C++
上面那个版本,是Python的。如果要使用C++版本,需要额外执行:
apt-get install cmake
cd TensorRT-8.2.1.8 #改成你解压的TensorRT目录,这里是我的
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
2.编译opencv
这部分也没啥好说的,经典教程多的一批。
值得注意的是,不能用3.2.0以下的版本(具体哪个版本我也不知道)我编的是3.4.16。
3.编译yolov5
cd tensorrtx-master/yolov5/
mkdir build
cmake ..
make
如果顺利,会生成一个yolov5的可执行文件。
4.转模型
首先,下载一个预训练模型,在yolov5的官方有很多。
python gen_wts.py -w yolov5s.pt -o yolov5s.wts
cd build
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
sudo ./yolov5 -d yolov5s.engine ../samples
此时,你的build目录下多了两张图片(samples下本来得两张测试图片)