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
    +关注

    关注

    2013

    文章

    3681

    浏览量

    344353
  • 机器视觉
    +关注

    关注

    163

    文章

    4732

    浏览量

    125032
  • 目标检测
    +关注

    关注

    0

    文章

    230

    浏览量

    16379
  • 深度学习
    +关注

    关注

    73

    文章

    5591

    浏览量

    123917
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于瑞芯微RK3576的 yolov5训练部署教程

    5s、YOLOv5m、YOLOv5l、YOLOv5x 四个模型。YOLOv5 相比YOLOv4 而言,
    的头像 发表于 09-11 16:43 2409次阅读
    基于瑞芯微RK3576的 <b class='flag-5'>yolov</b>5训练<b class='flag-5'>部署</b>教程

    K230,如何使用AI Demo的object_detect_yolov8n,YOLOV8多目标检测模型?

    K230的AI开发教程文档,可以看到有源码的AI Demo,其中包括yolov8n模型,仓库里可以看到
    发表于 08-07 06:48

    yolov5训练部署全链路教程

    5m、YOLOv5l、YOLOv5x四个模型。YOLOv5相比YOLOv4而言,检测平均精度降低不多的基础上,具有均值权重文件更小,训练时
    的头像 发表于 07-25 15:22 1359次阅读
    <b class='flag-5'>yolov</b>5训练<b class='flag-5'>部署</b>全链路教程

    K230上部署yolov5时 出现the array is too big的原因?

    重现步骤 1将yolov5的kmodel放入k230的data数据 2使用yolo大作战里的视频流推理代码 3运行 期待结果和实际结果 期待的结果 将目标检测的框圈起来 实际看到的结果
    发表于 05-28 07:47

    labview调用yolov8/11目标检测、分割、分类

    labview使用2020版本64位编辑,调用yolov8/11的onnx模型案例。 源码: 通过网盘分享的文件:Labview_cls.zip等4个文件 链接: https
    发表于 04-21 19:37

    RV1126 yolov8训练部署教程

    YOLOv8 是 ultralytics 公司 2023 年 1月 10 号开源的基于YOLOV5进行更新的 下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,鉴于Yolov
    的头像 发表于 04-16 14:53 1149次阅读
    RV1126 <b class='flag-5'>yolov</b>8训练<b class='flag-5'>部署</b>教程

    RK3576 yolov11-seg训练部署教程

    yolov11-seg 是YOLO(You Only Look Once)系列的最新成员,专为实时实例分割任务设计。它在保持YOLO家族高效推理速度的同时,通过创新的网络结构和分割头设计,实现了像素
    的头像 发表于 04-16 09:43 1892次阅读
    RK3576 <b class='flag-5'>yolov</b>11-seg训练<b class='flag-5'>部署</b>教程

    OrinNano yolov11训练部署教程

    ORinNano yolov11训练部署教程
    的头像 发表于 04-10 15:26 2234次阅读
    OrinNano  <b class='flag-5'>yolov</b>11训练<b class='flag-5'>部署</b>教程

    RK3576 yolov8训练部署教程

    本章展示yolov8模型的EASY EAI Orin nano的部署过程。
    的头像 发表于 04-02 16:04 1578次阅读
    RK3576 <b class='flag-5'>yolov</b>8训练<b class='flag-5'>部署</b>教程

    labview调用yolo目标检测、分割、分类、obb

    labview调用yolo目标检测、分割、分类、obb、pose深度学习,支持CPU和GPU推理,32/64位labview均可使用。 (yolov5~
    发表于 03-31 16:28

    【幸狐Omni3576边缘计算套件试用体验】RKNN 推理测试与图像识别

    Python API 开发板上进行部署。 环境搭建 本节介绍了 RKNN 推理测试的开发环境搭建流程,包括 Ubuntu 系统、Conda 环境部署等。 Ubuntu 22.04
    发表于 03-20 16:14

    YOLOv5类rgb888p_size这个参数要与模型推理和训练的尺寸一致吗?一致会达到更好的效果?

    YOLOv5类rgb888p_size这个参数要与模型推理和训练的尺寸一致吗,一致会达到更好的效果
    发表于 03-11 08:12

    yolov5转onnxcubeAI进行部署部署失败的原因?

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

    为什么深度学习的Frame per Second高于OpenVINO™演示推理脚本?

    DL Workbench 上使用 Microsoft 通用对象上下文 (MS COCO) 数据集运行 YOLOv4 对象检测模型,并获得 50 - 60 FPS。 OpenVINO™演示推理脚本运行,并获得更高的 FP
    发表于 03-06 07:27

    如何开启Stable Diffusion WebUI模型推理部署

    如何开启Stable Diffusion WebUI模型推理部署
    的头像 发表于 12-11 20:13 1155次阅读
    如何开启Stable Diffusion WebUI模型<b class='flag-5'>推理</b><b class='flag-5'>部署</b>