TensorRT部署YOLOv5-02-环境介绍

本文对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++

      • cmake:构建C++程序

      • opencv:图像预处理、图像视频加载及显示

      • nvinfer:TensorRT C++库

  • 私有安装

    • Python

      • numba:张量计算加速,较难安装

      • cupy:张量计算加速,容易安装

    • lbtorch

      • pytorch的C++库,用于替代numpy,处理C++程序的张量计算