五、TensorRT加速配置
TensorRT是一个高效的深度学习推理引擎,针对NVIDIA GPU进行了优化,可以提供高度并行化的推理性能。TensorRT的优点包括:
-
快速推理:TensorRT可以将深度学习模型转换为高度优化的计算图,从而加速神经网络的推理速度,同时使用高度并行化的计算方法,减少了计算时间。
-
减少模型大小:TensorRT使用量化、剪枝、缩放和融合等技术,可以将深度学习模型的大小缩小到原始大小的一半或更少,从而减小了模型的存储和传输成本。
-
可移植性:TensorRT支持多种语言和框架,包括TensorFlow、PyTorch、Caffe等,并且可以轻松地在不同的平台上使用。
-
易于使用:TensorRT提供了一个简单的API,可以快速地将深度学习模型集成到应用程序中,并且可以使用TensorRT的优化技术,轻松地优化模型进行推理。
总之,TensorRT的加速优势可以让深度学习模型在实际应用中更快速、更高效地进行推理。
1.Pycuda安装
如果您使用Python编写的应用程序需要进行深度学习模型推理,并且您想要使用CUDA进行加速,那么在使用TensorRT之前安装和使用PyCUDA是非常有用的。在这里为防止报错,我们从源代码编译安装Pycuda。
a) 输入以下指令获取文件并解压。
wget https://files.pythonhosted.org/packages/78/09/9df5358ffb74d225243b56a65ffe196de481fcd8f731f55e41f2d5d36015/pycuda-2022.2.2.tar.gz tar -zxvf pycuda-2022.2.2.tar.gz
tar -zxvf pycuda-2022.2.2.tar.gz
b) 进入pycuda-2022.2.2目录,执行安装命令。
cd pycuda-2022.2.2
sudo python3 configure.py --cuda-root=/usr/local/cuda-10.2
sudo python3 setup.py install
出现下图就说明正在编译文件安装,等待一段时间后即可安装完成。
完成安装。
c) 为了避免使用时报错,比如:
FileNotFoundError: [Errno 2] No such file or directory: ‘nvcc’
将nvcc的完整路径写到pycuda-2022.2.2/pycuda的compiler.py文件中的compile_plain()
中,约在第 73 行的位置。如下图所示。
nvcc = '/usr/local/cuda/bin/'+nvcc
2.TensorRT加速
tensorRT本质上就是把模型压缩,变得更快,因为jetson nano算力不够所以需要减弱精度加强速度,以实现临近实时检测。
由于目前YOLOv5版本主目录里有export.py,且Jetson Nano自带tensorRT包,可实现把模型从.pt转换为.engine文件,而无需其他冗杂操作。(如果使用的虚拟环境,还需要将conda环境里的包的安装目录与tensorRT包建立软连接,具体方法不在这里赘述)
以下操作均以我自己的YOLOv5-6.0项目为例,大家可以用自己的YOLOv5源码进行测试。
a-1) 可直接在终端执行以下代码,权重以及数据集yaml文件换为自己的:
python3 export.py --weights ./runs/train/exp/weights/best.pt --data ./mask_parameter.yaml --imgsz 384 --include engine --device 0
# 如果想要在开发板上跑得更快,可以加 "--half"
a-2) 或着直接打开YOLOv5源码中的export.py文件进行编辑,然后直接运行export.py文件,如下图所示。
修改完文件相应内容后运行下面命令。
python3 export.py
b) 等待一段时间后,即会在.pt文件同目录下生成.engine文件。
c-1) 再执行detect.py,可以在文件detect.py中编辑修改。
注意:--source 0意为开启摄像头;imgsz一定要与前面export.py设置的相对应。
c-2) 如果懒得改也可以直接命令行改模型。
python3 detect.py --weights ./runs/train/exp/weights/best.engine --source 0
注意,要选对模型的路径。
d) 如下图,启动tensorRT加速,进行USB摄像头识别。
可见检测速度有着不小的提升。
参考文献:[1] https://blog.csdn.net/weixin_46007139/article/details/129597153?spm=1001.2014.3001.5506