0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

YOLOv6在LabVIEW中的推理部署(含源码)

王立奇 2024-11-06 16:07 次阅读

‍‍

前言

前面我们给大家介绍了使用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版本来介绍相关的部署开发。

在这里插入图片描述
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.txt

3.下载预训练模型

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

import torch

# Model
model = 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.部署

模型初始化

  1. 加载yolov5s.engine文件
  2. 设置输入输出缓存
    • 输入大小为13640640
    • 输出大小为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 to BCHW

1.png

在这里插入图片描述

模型推理

  1. 推荐使用数据指针作为输入给到run.vi
  2. 数据的大小为13640*640
    在这里插入图片描述

获取推理结果

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

在这里插入图片描述

后处理

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

在这里插入图片描述

完整源码

在这里插入图片描述

运行结果

1.png

项目源码

源码下载链接: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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabVIEW
    +关注

    关注

    1959

    文章

    3651

    浏览量

    321864
  • 机器视觉
    +关注

    关注

    161

    文章

    4317

    浏览量

    119963
  • 目标检测
    +关注

    关注

    0

    文章

    200

    浏览量

    15578
  • 深度学习
    +关注

    关注

    73

    文章

    5459

    浏览量

    120865
收藏 人收藏

    评论

    相关推荐

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov
    发表于 10-23 14:06

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov
    发表于 08-12 11:03

    迅为RK3568手册上新 | RK3568开发板NPU例程测试

    6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov8目标检测 6.17
    发表于 07-12 14:44

    用OpenVINO C# APIintel平台部署YOLOv10目标检测模型

    的模型设计策略,从效率和精度两个角度对YOLOs的各个组成部分进行了全面优化,大大降低了计算开销,增强了性能。本文中,我们将结合OpenVINO C# API使用最新发布的OpenVINO 2024.1部署YOLOv10目标检
    的头像 发表于 06-21 09:23 900次阅读
    用OpenVINO C# API<b class='flag-5'>在</b>intel平台<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>10目标检测模型

    labview实例源码之控压取样系统

    labview源码,包含报表、曲线、通讯等
    发表于 06-06 11:23 1次下载

    maixcam部署yolov5s 自定义模型

    maixcam部署yolov5s 自定义模型 本博客将向你展示零基础一步步的部署好自己的yolov5s模型(博主展示的是安全帽模型),训练就引用我自己之前写过的,已经训练好的可以跳过
    发表于 04-23 15:43

    yolov5转onnxcubeAI上部署失败的原因?

    第一个我是转onnx时 想把权重文件变小点 就用了半精度 --half,则说17版本不支持半精度 后面则是没有缩小的单精度 但是显示哪里溢出了···· 也不说是哪里、、。。。 到底能不能部署yolov5这种东西啊?? 也没看见几个部署
    发表于 03-14 06:23

    基于OpenCV DNN实现YOLOv8的模型部署推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 1313次阅读
    基于OpenCV DNN实现<b class='flag-5'>YOLOv</b>8的模型<b class='flag-5'>部署</b>与<b class='flag-5'>推理</b>演示

    C++中使用OpenVINO工具包部署YOLOv5-Seg模型

    YOLOv5兼具速度和精度,工程化做的特别好,Git clone到本地即可在自己的数据集上实现目标检测任务的训练和推理产业界应用广泛。开源社区对
    的头像 发表于 12-21 10:17 2000次阅读
    <b class='flag-5'>在</b>C++中使用OpenVINO工具包<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>5-Seg模型

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署本教程,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告
    的头像 发表于 12-20 10:51 705次阅读
    基于<b class='flag-5'>YOLOv</b>8的自定义医学图像分割

    【爱芯派 Pro 开发板试用体验】ax650使用ax-pipeline进行推理

    ax650使用ax-pipeline进行推理 搭建交叉编译环境 拉取ax-pipeline源码及子模块 git clone --recursive https://github.com
    发表于 12-19 17:36

    【爱芯派 Pro 开发板试用体验】部署爱芯派官方YOLOV5模型

    继上文开箱后,本文主要依托爱芯元智官方的实例,进行官方YOLOV5模型的部署和测试。 一、环境搭建 由于8核A55的SoC,加上目前Debian OS的工具齐全,所以决定直接在板上编译程序
    发表于 12-12 22:58

    YOLOV7网络架构解读

    继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。
    的头像 发表于 11-29 10:00 1727次阅读
    <b class='flag-5'>YOLOV</b>7网络架构解读

    【爱芯派 Pro 开发板试用体验】爱芯元智AX650N部署yolov8s 自定义模型

    爱芯元智AX650N部署yolov8s 自定义模型 本博客将向你展示零基础一步步的部署好自己的yolov8s模型(博主展示的是自己训练的手写数字识别模型),本博客教你从训练模型到转化
    发表于 11-24 20:40

    【爱芯派 Pro 开发板试用体验】使用yolov5s模型(官方)

    =/soc/ -DAXERA_TARGET_CHIP=ax650 .. make -j6 make install 注意:就是电脑挂了梯子后,共享网络给板子,板子还是不会挂上代理的,所以我自己使用的是电脑
    发表于 11-13 11:04