游乐游手机版
首页/AI热点日报/热点详情

手把手教你LabVIEW TensorRT图像分类实战附源码

类型:热点整理2026-07-12
之前我们介绍了在LabVIEW中通过OpenCV和ONNX工具包部署YOLOv5的方法。如果您拥有NVIDIA显卡,相信已经感受到CUDA加速带来的流畅体验。本文则聚焦于如何直接利用LabVIEW中的TensorRT工具包,快速实现YOLOv5目标检测——纯TensorRT部署方案,效率更高、部署流

之前我们介绍了在LabVIEW中通过OpenCV和ONNX工具包部署YOLOv5的方法。如果您拥有NVIDIA显卡,相信已经感受到CUDA加速带来的流畅体验。本文则聚焦于如何直接利用LabVIEW中的TensorRT工具包,快速实现YOLOv5目标检测——纯TensorRT部署方案,效率更高、部署流程也更简洁。

本文汇总了YOLOv5部署的完整笔记,希望能为您提供实用的参考。

一、YOLOv5概述

YOLOv5是基于COCO数据集预训练的一系列目标检测架构与模型。相较于谷歌的EfficientDet,YOLOv5在检测精度和速度上均有显著提升,尤其在小目标检测方面表现更佳。本文以YOLOv5 6.1版本为例,详细介绍其部署开发流程。

YOLOv5相较于前代YOLO模型,主要特点包括:

  • 小目标检测精度显著增强
  • 支持自适应锚框计算
  • 内置数据增强功能(如随机缩放、裁剪、拼接等)
  • 模型灵活、速度快、体积小,部署优势突出

关于网络结构的具体解析,已有大量资料可供参考,此处不再赘述。

二、YOLOv5模型的获取

为方便后续部署,我们已将YOLOv5模型转换为ONNX格式,可直接用于LabVIEW。

1. 下载源码

将Ultralytics开源的YOLOv5代码克隆或下载至本地(可直接点击Download ZIP按钮)。

2. 安装模块

解压下载的zip文件,在命令行中切换至yolov5文件夹路径,运行以下命令安装所需依赖:

pip install -r requirements.txt

3. 下载预训练模型

进入Python环境,执行以下代码下载预训练模型:

import torch
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # 也可替换为yolov5n ~ yolov5x6, custom

下载成功后界面如下:

4. 转换为ONNX模型

要将.pt文件转换为.onnx文件,请在cmd中执行以下命令(确保export.py与.pt模型位于同一目录):

python export.py --weights yolov5s.pt --include onnx

转化成功界面:

其中yolov5s可替换为yolov5m、yolov5l、yolov5x等不同规模的模型。

三、LabVIEW+TensorRT的YOLOv5部署实战(yolov5_trt_img.vi)

1. ONNX转化为engine(onnx to engine.vi)

调用onnx_to_engine.vi,将该vi拖拽至前面板空白区域,创建并输入ONNX文件路径与engine文件路径。type参数用于选择精度:FP32或FP16。肉眼观察两者精度差异不大,但FP16模型的推理速度通常是FP32的两倍。

完整的转换程序如下图所示:

点击运行,等待1~3分钟,模型转换成功后,即可在指定路径找到生成的.engine文件。

问:为何要转换模型而不直接调用ONNX?

答:TensorRT在加载ONNX时内部会执行一次模型转换,该过程耗时且占用大量内存。因此,不建议每次初始化都加载ONNX模型,而是直接加载engine文件,以提升效率。

2. 部署

模型初始化

  1. 加载yolov5s.engine文件
  2. 配置输入输出缓存,输入尺寸为1×3×640×640,输出尺寸为1×25200×85

YOLOv5的预处理

  1. 执行LetterBox操作
  2. 调用blobFromImage,具体步骤如下:
    1) img = img / 255.0
    2) img = img[None]  # 从(640,640,3)扩展到(1,640,640,3)
    3) input = img.transpose(0,3,1,2)  # BHWC -> BCHW

模型推理

  1. 建议将数据指针作为输入传递给run.vi
  2. 数据尺寸为1×3×640×640

获取推理结果

  1. 在循环外部初始化一个25200×85的二维数组
  2. 将该数组作为Get_Result的输入,另一输入参数index设为0
  3. 输出结果为25200×85的二维数组

后处理

在本示例中,后处理方式与使用ONNX时保持一致。

完整源码

运行结果

附加说明

  • 操作系统:Windows 10
  • Python版本:3.6及以上
  • LabVIEW版本:2018及以上(64位)
  • 视觉工具包:techforce_lib_opencv_cpu-1.0.0.98.vip
  • LabVIEW TensorRT工具包:virobotics_lib_tensorrt-1.0.0.22.vip
  • 运行结果所用显卡:RTX 3060
来源:https://m.elecfans.com/article/2091584.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。