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

这篇具有很好参考价值的文章主要介绍了【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主
🎄所属专栏:『LabVIEW深度学习实战』
🍻上期文章: 手把手教你使用LabVIEW TensorRT实现图像分类实战(含源码)
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家✌关注、👍点赞、✌收藏、👍订阅专栏

前言

前面我们给大家介绍了使用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

一、关于YOLOv5

YOLOv5是在 COCO 数据集上预训练的一系列对象检测架构和模型。表现要优于谷歌开源的目标检测框架 EfficientDet,在检测精度和速度上相比yolov4都有较大的提高。本博客,我们以YOLOv5 6.1版本来介绍相关的部署开发。

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划
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
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

2.安装模块

解压刚刚下载的zip文件,然后安装yolov5需要的模块,记住cmd的工作路径要在yolov5文件夹下:
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划
打开cmd切换路径到yolov5文件夹下,并输入如下指令,安装yolov5需要的模块

pip install -r requirements.txt

3.下载预训练模型

打开cmd,进入python环境,使用如下指令下载预训练模型:

import torch

# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5n - yolov5x6, custom

成功下载后如下图所示:
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

4.转换为onnx模型

将.pt文件转化为.onnx文件,在cmd中输入转onnx的命令(记得将export.py和pt模型放在同一路径下):

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

如下图所示为转化成功界面
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划
其中yolov5s可替换为yolov5m\yolov5m\yolov5l\yolov5x
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

三、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速度快一倍
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划
转换的完整程序如下:
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

点击运行,等待1~3分钟,模型转换成功,可在刚刚设定的路径中找到我们转化好的mobilenet.engine.

Q:为什么要转换模型,不直接调用ONNX?
A:tensorRT内部加载ONNX后其实是做了一个转换模型的工作,该过程时间长、占用内存巨大。因此不推荐每次初始化都加载ONNX模型,而是加载engine。

2.部署

模型初始化

  1. 加载yolov5s.engine文件
  2. 设置输入输出缓存
    • 输入大小为13640640
    • 输出大小为1
    25200*85
    labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

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 to BCHW

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划
labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

模型推理

  1. 推荐使用数据指针作为输入给到run.vi
  2. 数据的大小为13640*640
    labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

获取推理结果

  1. 循环外初始化一个25200*85的二维数组
  2. 此数组作为Get_Result的输入,另一个输入为index=0
  3. 输出为25200*85的二维数组结果

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

后处理

本范例中,后处理方式和使用onnx一样

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

完整源码

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

运行结果

labview 深度学习,LabVIEW深度学习实战,深度学习:物体识别(目标检测),深度学习,人工智能,计算机视觉,目标检测,机器学习,原力计划

项目源码

源码下载链接:https://pan.baidu.com/s/1y0scJ8tg5nzjJK4iPvNwNQ?pwd=yiku

附加说明

操作系统:Windows10
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
运行结果所用显卡:RTX3060

总结

以上就是今天要给大家分享的内容,希望对大家有用

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏文章来源地址https://www.toymoban.com/news/detail-623588.html

到了这里,关于【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【TensorRT】基于C#调用TensorRT 部署Yolov5模型 - 上篇:构建TensorRTSharp

      NVIDIA TensorRT™ 是用于高性能深度学习推理的 SDK,可为深度学习推理应用提供低延迟和高吞吐量。详细安装方式参考以下博客: NVIDIA TensorRT 安装 (Windows C++)   前文中已经介绍了在C++中利用TensorRT 部署Yolov5模型,但在实际应用中,经常会出现在C#中部署模型的需求,目前T

    2023年04月24日
    浏览(53)
  • 使用TensorRT对yolov5进行部署(基于python,超详细)

    哈喽大家好 ! 我是唐宋宋宋,很荣幸与您相见!!! 我的环境: cuda:11.1 cudnn:8.7.0 TensorRT:8.4.1.5 首先需要下载TensorRT,官网链接附下: NVIDIA TensorRT 8.x Download | NVIDIA Developer 注:下载TensorRT版本需要和你电脑上的cuda版本对应 yolov5的代码需要大家上github自己扒 链接已经提供

    2024年02月07日
    浏览(46)
  • 【深度学习】YOLOv5实例分割 数据集制作、模型训练以及TensorRT部署

    yolov5-seg:官方地址:https://github.com/ultralytics/yolov5/tree/v6.2 TensorRT:8.x.x 语言:C++ 系统:ubuntu18.04 前言:由于yolo仓中提供了标准coco的json文件转txt代码,因此需要将labelme的json文件转为coco json. labelme JSON 转COCO JSON 使用labelme的CreatePolygons按钮开始绘制多边形,然后保存为json格式。

    2024年02月06日
    浏览(60)
  • 【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    断断续续地前后花了一个多星期配置环境以及部署模型,期间也报了无数错误,参考了很多文档,求助了身边的朋友,因此尽可能详细的记录一下这个过程。 此处感谢Xnhyacinth在配置过程中对我的帮助哈哈哈꒰ঌ( ⌯’ \\\'⌯)໒꒱ 我主机上的环境是python3.9,cuda11.6 jetson nano环境

    2023年04月12日
    浏览(57)
  • 在ubuntu20.04上利用tensorrt部署yolov5(C++和Python接口)

    在ubuntu20.04上利用tensorrt部署yolov5(C++和Python接口)‘下个博客是yolov7的部署’ 一、CUDA、CUDNN、TensorRT以及OpenCV安装 CUDA安装 CUDNN安装 TensorRT安装 OpenCV安装 二、YOLOv5部署 文件准备 模型文件转换 3.生成wts文件 4.生成部署引擎 5.端侧部署模型测试图片 6.视频检测 7.安卓部署 8.C+

    2024年02月02日
    浏览(68)
  • 【目标检测】YOLOv5推理加速实验:TensorRT加速

    前两篇博文分别讨论了YOLOv5检测算法的两种加速思路:采用多进程或批量检测,不过效果均收效甚微。本问将讨论使用TensorRT加速以及半精度推理/模型量化等优化策略对检测加速的实际影响。 测试图片分辨率:13400x9528 GPU:RTX4090 Cuda:11.7 YOLOv5版本:最新版(v7.0+) 检测策略:将

    2024年02月05日
    浏览(57)
  • LibTorch实战三:C++版本YOLOV5.4的部署

    目录 一、环境配置 二、.torchscript.pt版本模型导出 三、C++版本yolov5.4实现 四、问题记录 4.1、注释 detector.h中,注释如下头文件 4.2、错误: “std”: 不明确的符号 4.3、建议常被debug版本libtorch 4.4、问题:编译成功后,运行代码,发现torch::cuda::is_available()返回false 4.5、导出模型,

    2024年02月06日
    浏览(46)
  • 利用python版tensorRT进行推理【以yolov5为例】

    上一篇文章中已经详细叙述了如何用tensorRT将onnx转为engine【利用python版tensorRT导出engine【以yolov5为例】_爱吃肉的鹏的博客-CSDN博客】。 本篇文章将继续讲解trt的推理部分。 与之前一样,在讲解之前需要先介绍一些专业术语,让大家看看这些内置函数都有什么功能。 1.Binding含

    2024年02月12日
    浏览(44)
  • 模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

    测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7 关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程 本文代码同时支持 yolov5 、 yolov8 两个模型,详细过程将在文中给出, 完整代码仓库最后给出 其中,yolov8在opencv-DNN + CUDA下的效果如下: 新建VS项目,名

    2024年02月16日
    浏览(43)
  • 利用python版tensorRT导出engine【以yolov5为例】

    环境说明: tensorRT:8.2.4.2 CUDA:10.2 pytorch:1.7 显卡:NVIDIA 1650 Windows10 python 3.7 另一篇文章中写过C++版的trt推理。本篇文章是python版本的trt yolov5推理。 构建engine一般有两种方式。 方式1:torch模型-wts(序列化网络)-engine-推理 方式2:torch模型-onnx-engine-推理 第一种方式如果网络结构简

    2023年04月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包