本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。
原文链接:实践教程|旋转目标检测模型-TensorRT 部署(C++)
导 读
本文详细的记录了一次旋转目标检测模型的C++部署过程,附有详细的代码。
仓库地址(TensorRT,ncnn)github.com/Crescent-Ao/GGHL-Deployment:
https://github.com/Crescent-Ao/GGHL-Deployment
这次工程部署主要选择了比较熟悉的旋转选择框架-GGHL(Shank2358/GGHL: This is the implementation of GGHL (A General Gaussian Heatmap Label Assignment for Arbitrary-Oriented Object Detection) (github.com))。如果没有特殊算子的检测框架,依然可以使用下面的这个Pipeline, 旋转目标检测主要分成五参数和八参数的表征方法,分别对应的 x,y,w,h,θ, x,y,w,h,\theta, x,y,w,h,\theta,.以及对应的八参数的转化求法 x1,y1,x2,y2,x3,y3,x4,y4x_1,y_1,x_2,y_2,x_3,y_3,x_4,y_4x_1,y_1,x_2,y_2,x_3,y_3,x_4,y_4 。这两种方式在后处理的时候可以互相转换,我们这里选择后者。
TensorRT安装
找到TensorRT的下载地址,我这边选择的是TensorRT8,TensorRT支持以下几种方式安装,分别是deb,tar,rpm。我这边的系统是Ubuntu 22.04,CUDA版本是11.6,选择的安装方式是tar进行安装。
TensorRT地址developer.nvidia.com/tensorrt-getting-started:
https://developer.nvidia.com/tensorrt-getting-started
关于tar的安装方式,可以参考Nvidia官方文档中关于tar的部分。NVIDIA Deep Learning TensorRT Documentation(https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html%23installing-tar)关于tar的安装方式,可以参考Nvidia官方文档中关于tar的部分。这部分会说的比较详细。
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html%23installing-tar
然后需要配置CUDA和TensorRT环境变量以及代码仓库的地址,下面是我zshrc的详细配置,包括TensorRT、CUDA、以及OpenCV。
zshrc
在安装好之后,我们需要对TensorRT进行编译,记住TensorRT的安装位置,我这边是/home/crescent/TensorRT-8.4.15,在命令函数输入下面的命令。
cd /home/crescent/TensorRT-8.4.15
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out
make -j$(nproc)
等待一段时间完成编译后,如果不报错,那么按照英伟达github上官方SampleMnist的测试来检查你的TensorRT是否安装成功。出现下面的结果,代表之前的安装策略都没有错,可以进行下一步,否则要仔细检查编译阶段的问题,可以去stackoverflow找到相应的解决方法。
&&&& RUNNING TensorRT.sample_mnist # ./sample_mnist
[I] Building and running a GPU inference engine for MNIST
[I] Input:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@#-:.-=@@@@@@@@@@@@@@
@@@@@%= . *@@@@@@@@@@@@@
@@@@% .:+%%% *@@@@@@&