【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)

前言前面我们给大家介绍了使用opencv以及onnx工具包实现yolov5在labview中的部署,有英伟达显卡的朋友们可能已经感受过使用cuda加速时yolov5的速度,今天主要和大家分享在labview中使用纯tensort工具包快速部署并实现yolov5的物体识别, 本博客中使用的智能工具包可到主页置顶博客[https://blog.csdn.net/virobotics/article/details/129304465]
中安装 。若配置运行过程中遇到困难,欢迎大家评论区留言,博主将尽力解决。
以下是yolov5的相关笔记总结,希望对大家有所帮助。
【yolov5】labview+openvino让你的yolov5在cpu上飞起来https://blog.csdn.net/virobotics/article/details/124951862
【yolov5】labview opencv dnn快速实现实时物体识别(object detection) https://blog.csdn.net/virobotics/article/details/124929483
【yolov5】手把手教你使用labview onnx runtime部署 tensorrt加速,实现yolov5实时物体识别(含源码) https://blog.csdn.net/virobotics/article/details/124981658
一、关于yolov5yolov5是在 coco 数据集上预训练的一系列对象检测架构和模型。表现要优于谷歌开源的目标检测框架 efficientdet,在检测精度和速度上相比yolov4都有较大的提高。本博客,我们以yolov5 6.1版本来介绍相关的部署开发。
yolov5相比于前面yolo模型的主要特点是:
1、小目标的检测精度上有明显的提高;
2、能自适应锚框计算
3、具有数据增强功能,随机缩放,裁剪,拼接等功能
4、灵活性极高、速度超快,模型超小、在模型的快速部署上具有极强优势
关于yolov5的网络结构解释网上有很多,这里就不再赘述了,大家可以看其他大神对于yolov5网络结构的解析。
二、yolov5模型的获取为方便使用, 博主已经将yolov5模型转化为onnx格式 ,可在百度网盘下载
链接:[https://pan.baidu.com/s/15dwobm4w-5_nlrj4g9ehrg?pwd=yiku]
提取码:yiku
1.下载源码将ultralytics开源的yolov5代码clone或下载到本地,可以直接点击download zip进行下载,
下载地址:[https://github.com/ultralytics/yolov5]
2.安装模块解压刚刚下载的zip文件,然后安装yolov5需要的模块,记住cmd的工作路径要在yolov5文件夹下:
打开cmd切换路径到yolov5文件夹下,并输入如下指令,安装yolov5需要的模块
pip install -r requirements.txt3.下载预训练模型打开cmd,进入python环境,使用如下指令下载预训练模型:
import torch# modelmodel = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5n - yolov5x6, custom成功下载后如下图所示:
4.转换为onnx模型将.pt文件转化为.onnx文件,在cmd中输入转onnx的命令(记得将export.py和pt模型放在同一路径下):
python export.py --weights yolov5s.pt --include onnx如下图所示为转化成功界面
其中yolov5s可替换为yolov5myolov5myolov5lyolov5x
三、labview+tensorrt的yolov5部署实战(yolov5_trt_img.vi)如需要查看tensorrt工具包相关vi含义,可查看:[https://blog.csdn.net/virobotics/article/details/129492651]
1.onnx转化为engine(onnx to engine.vi)使用onnx_to_engine.vi,将该vi拖拽至前面板空白区域,创建并输入onnx的路径以及engine的路径,type即精度,可选择fp32或fp16,肉眼观看精度无大差别。(一般fp16模型比fp32速度快一倍)
转换的完整程序如下:
点击运行,等待1~3分钟,模型转换成功,可在刚刚设定的路径中找到我们转化好的mobilenet.engine.
q:为什么要转换模型,不直接调用onnx?> a:tensorrt内部加载onnx后其实是做了一个转换模型的工作,该过程时间长、占用内存巨大。因此不推荐每次初始化都加载onnx模型,而是加载engine。
2.部署模型初始化加载yolov5s.engine文件设置输入输出缓存
• 输入大小为13640640
• 输出大小为125200*85
yolov5的预处理letterboxblobfromimage,包含如下步骤:1) img=img/255.02) img = img[none] #从(640,640,3)扩充维度至(1,640,640,3)3) input=img.transpose(0,3,1,2) # bhwc to bchw
模型推理推荐使用数据指针作为输入给到run.vi数据的大小为13640*640
获取推理结果循环外初始化一个25200*85的二维数组此数组作为get_result的输入,另一个输入为index=0输出为25200*85的二维数组结果
后处理本范例中,后处理方式和使用onnx一样
完整源码
运行结果
项目源码源码下载链接:https://pan.baidu.com/s/1y0scj8tg5nzjjk4ipvnwnq?pwd=yiku


空中交通将为城市交通注入新的活力飞行时代即将到来
AI时代,智能硬件如何照亮求学之路
LTC4121 太阳能电池板在 400mA 对 4.2V 锂离子电池充电
研扬科技的无风扇嵌入式Box PC系列打造您的专属项目
京东方公开“超声波指纹识别器件及其制备方法、显示装置”专利
【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)
常见的存储器及其应用
史上最快电动汽车量产,特斯拉或将成为美国市场上最畅销的汽车品牌
小米9成功登上DxOMark排行榜成为了全球第一的视频拍摄手机
传真机拨号
Linux内核,必要了解的编译知识
网联化背景下的“防火墙”:网络安全
千兆光模块和万兆光模块已经过时了吗?
传微软12日发布Project Pink手机
美国欲锁死中国高端芯片10年,即将通过芯片法案
OSRAM推出适合Table PC/Mobile的强力LED闪光灯
基于以太网的远程液位监控系统设计
如何做一个固态继电器电路
smt厂贴片加工有哪些常见不良?原因是什么?
未来全球物联网连接技术类型的市场预期与影响