本文对TensorRT部署YOLOv5模型的整体环境配置及软件包进行介绍。实验环境主要从主机和JestonNano两方面进行介绍,在主机端完成模型训练并转换为onnx中间模型表示,在JestonNano进行onnx模型转换为TensorRT引擎、图片/视频加载、编解码处理、模型推理、后处理等工作
主机环境
主机是一台Windows11的台式机,使用Tensorflow的GPU版进行模型训练,生成模型文件,由于在windows操作系统上安装onnx存在一些问题,比较麻烦,不想折腾,因此我选择在Ubuntu虚拟机上进行Tensorflow模型到onnx模型的转换
主机端主要使用的软件及版本如下
- Windows11
- tensorflow-gpu 2.5.0
- CUDA 11.0
- Ubuntu20.0.4虚拟机
- tensorflow-gpu 2.2.0:没啥用处,主要是为了安装tf2onnx
- tf2onnx 1.12.0:用于将tensorflow模型转换为onnx
- sdkmanager 1.8.1:Nvidia官方提供的镜像及软件包下载烧写工具,用于向JestonNano烧写Linux镜像和软件包
JestonNano环境
JestonNano环境的配置主要包括两方面,一方面是通过sdkmanager烧写的官方镜像所携带的软件包以及官方额外提供的软件包,另一方面是自己下载并安装到JestonNano的第三方软件和库
- 官方提供,列举一些常用到的
- bin
- trtexec:TensorRT的命令行工具,可以进行推理引擎生成及性能评估
- nsys:CUDA性能分析工具,生成Profile文件
- python包
- numpy:张量计算,前后处理都会用到
- pycuda:与nvinfer配合进行数据的拷贝(devToHost/hostToDev),以及部分计算加速
- opencv:图像预处理、图像视频加载及显示
- nvinfer:TensorRT的Python包,可以进行推理引擎生成以及推理计算
- C++
- opencv:图像预处理、图像视频加载及显示
- nvinfer:TensorRT C++库
- bin
- 私有安装的
- numba:张量计算加速,较难安装
- cupy:张量计算加速,容易安装
- lbtorch:pytorch的C++库,用于替代numpy,处理C++程序的张量计算