YOLOv5 + TensorRT(MX150显卡)完整操作手册
YOLOv5 + TensorRT(MX150显卡)完整操作手册
整体流程概览
一、前置条件安装(基础环境搭建)
1. 安装 Anaconda/Miniconda
- 下载地址:https://www.anaconda.com/download/success(选 Windows 64位)
- 安装步骤:
- 双击安装包,勾选
Add Anaconda3 to my PATH environment variable(添加环境变量); - 其余选项默认,等待安装完成;
- 验证:打开 cmd,输入
conda --version,输出版本号即成功。
- 双击安装包,勾选
2. 安装 CUDA 10.2(适配 MX150)
- 下载地址:https://developer.nvidia.com/cuda-10.2-download-archive(选 Windows 10/11 64位)
- 安装步骤:
- 双击安装包,选择
自定义安装; - 取消勾选
Visual Studio Integration(无VS可忽略); - 安装路径默认(
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2); - 验证:cmd 输入
nvcc -V,输出 CUDA 10.2 版本信息即成功。
- 双击安装包,选择
3. 安装 cuDNN 8.2.0(适配 CUDA 10.2)
- 下载地址:https://developer.nvidia.com/rdp/cudnn-archive(需登录NVIDIA账号,选 cuDNN 8.2.0 for CUDA 10.2)
- 安装步骤:
- 解压下载的压缩包,得到
include、lib、bin三个文件夹; - 将三个文件夹分别复制到 CUDA 10.2 安装目录(
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)对应的文件夹中; - 验证:CUDA 示例可运行(可选,仅需确保文件复制到位)。
- 解压下载的压缩包,得到
4. 安装 TensorRT 8.2.5.1
- 下载地址:https://developer.nvidia.com/nvidia-tensorrt-8x-download(选 TensorRT 8.2.5.1 for CUDA 10.2 Windows 64-bit)
- 安装步骤:
- 解压压缩包到
D:\TensorRT-8.2.5.1(路径无中文/空格); - 配置环境变量:
- 新增系统变量
TENSORRT_DIR,值为D:\TensorRT-8.2.5.1; - 将
D:\TensorRT-8.2.5.1\lib添加到系统变量Path中;
- 新增系统变量
- 验证:解压后
D:\TensorRT-8.2.5.1\python下有tensorrt-8.2.5.1-cp38-none-win_amd64.whl即成功。
- 解压压缩包到
二、配置专属 Python 环境
# 1. 打开 Anaconda Prompt(管理员模式)# 2. 创建 Python 3.8 环境(命名为 trt-yolo,适配所有依赖)conda create-ntrt-yolopython=3.8-y# 3. 激活环境(所有后续操作必须在此环境执行)conda activate trt-yolo三、安装核心依赖(适配 CUDA 10.2/TensorRT)
# 1. 安装 PyTorch 1.8.1+cu102(适配 CUDA 10.2 和 Python 3.8)pip3installtorch torchvision# 2. 安装 TensorRT Python 绑定(关键,从解压包安装)cdD:\TensorRT-8.2.5.1\python pipinstalltensorrt-8.2.5.1-cp38-none-win_amd64.whl# 3. 下载 YOLOv5-7.0 代码(无 Git 则手动下载 zip 解压)cdD:\Users\24611\homework\专业实习\projectgitclone-bv7.0 https://github.com/ultralytics/yolov5.gitcdyolov5# 4. 安装 YOLOv5 基础依赖pipinstall-rrequirements.txt# 5. 安装 ONNX 相关依赖(适配 TensorRT 模型转换)pipinstallonnx==1.12.0onnxruntime==1.13.1 onnx-simplifier==0.4.18# 6. 降级兼容包(解决版本冲突,关键!)pip uninstall pandas matplotlib numpy-ypipinstallpandas==1.3.5matplotlib==3.3.4numpy==1.19.5四、导出 YOLOv5 为 ONNX 模型
# 在 yolov5 文件夹下执行(自动下载 yolov5s.pt 权重)python export.py--weightsyolov5s.pt--includeonnx--opset12--simplify# 成功标志:终端输出 "ONNX export success: yolov5s.onnx"五、转换为 TensorRT 引擎(FP16 精度,MX150最优)
# 在 yolov5 文件夹下执行trtexec--onnx=yolov5s.onnx--saveEngine=yolov5s.engine--fp16--workspace=4096# 成功标志:终端输出 "[I] PASSED",生成 yolov5s.engine 文件(等待 3-10 分钟)六、运行 TensorRT 加速推理
trtexec--onnx=yolov5s.onnx--saveEngine=yolov5s.engine--fp16# 在 yolov5 文件夹下执行python detect.py--weightsyolov5s.pt--sourcedata/images/bus.jpg--devicecpu七、验证最终成果
1. 终端验证(核心输出)
YOLOv5 v7.0-0-g915bbf29 Python-3.8.20 torch-1.8.1+cu102 CUDA:0 (GeForce MX150, 2048MiB) Loading yolov5s.engine for TensorRT inference... image 1/1 ... 4 persons, 1 bus, 31.0ms Speed: 11.7ms pre-process, 31.0ms inference, 85.5ms NMS per image Results saved to runs\detect\exp32. 可视化验证
- 打开路径:
D:\Users\24611\homework\专业实习\project\yolov5\runs\detect\exp3; - 查看
bus.jpg,可见公交车(bus)和4个行人(person)被红色框标注,附带置信度。
关键注意事项
- 路径要求:所有软件/代码解压路径均不能包含中文、空格或特殊字符;
- 环境唯一性:全程必须在
trt-yolo环境中执行,退出后需重新激活; - 显存适配:若转换引擎提示内存不足,将
--workspace=4096改为--workspace=2048; - 速度参考:MX150 显卡推理速度约 32 FPS(原生 PyTorch 仅 3-5 FPS),加速效果显著。
总结
| 阶段 | 核心目标 | 验证标准 |
|---|---|---|
| 前置安装 | 搭建 CUDA/TensorRT 基础环境 | nvcc -V输出 CUDA 10.2,TENSORRT_DIR配置生效 |
| 环境配置 | 适配 Python 3.8 依赖 | import tensorrt/torch无报错,torch.cuda.is_available()返回 True |
| 模型转换 | 生成 TensorRT 引擎 | 生成 yolov5s.engine,无转换报错 |
| 加速推理 | 完成 GPU 目标检测 | 生成带检测框的图片,推理速度提升 2-5 倍 |
YOLOv5 + TensorRT 部署核心软件作用清单(含CMake补充)
| 软件名称 | 核心作用 |
|---|---|
| Anaconda/Miniconda | 1. 创建独立Python环境,隔离不同项目的依赖冲突; 2. 一键管理Python版本和第三方包。 |
| CUDA Toolkit 10.2 | 1. 提供NVIDIA显卡的GPU计算底层接口; 2. 是PyTorch/TensorRT调用GPU的基础。 |
| cuDNN 8.2.0 | 1. CUDA的深度神经网络加速库; 2. 优化卷积、池化等深度学习核心运算,提升GPU计算效率。 |
| TensorRT 8.2.5.1 | 1. NVIDIA专属的推理加速引擎,将ONNX模型转换为GPU优化的.engine文件; 2. 通过FP16精度压缩模型,实现MX150显卡的硬件级加速。 |
| CMake | 1. 跨平台编译工具,ONNX安装过程中需要通过CMake编译底层C++代码; 2. 缺失会导致ONNX源码编译失败,无法完成安装。 |
| YOLOv5 v7.0 | 1. 提供目标检测基础代码和预训练权重(yolov5s.pt); 2. 内置ONNX导出和TensorRT推理接口,衔接全流程。 |
| PyTorch 1.8.1+cu102 | 1. 加载YOLOv5预训练模型,完成ONNX格式导出; 2. 适配CUDA 10.2,提供GPU版模型推理能力。 |
| ONNX/ONNX Runtime | 1. ONNX:作为YOLOv5到TensorRT的模型格式转换中间件; 2. ONNX Runtime:支撑ONNX模型的解析和验证。 |
| NumPy/Pandas/Matplotlib | 1. NumPy:提供数值计算基础,支撑模型张量运算; 2. Pandas:处理YOLOv5数据加载和标注; 3. Matplotlib:实现检测结果可视化。 |
补充说明
- CMake 是ONNX安装的前置依赖:在安装onnx==1.12.0时,其底层C++代码需要通过CMake编译,因此必须提前安装CMake并配置环境变量,否则会报
Could not find cmake executable!错误。 - 所有软件的核心作用围绕“MX150显卡加速YOLOv5”展开:CUDA/cuDNN提供GPU计算基础,TensorRT实现核心加速,YOLOv5提供检测逻辑,其余工具均为流程衔接和环境适配的必要支撑。
