前言

YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。如何使用python进行该模型的部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW中实现该模型的部署,笔者目前还没有看到相关介绍文章,所以笔者在实现YOLOv6 ONNX 在LabVIEW中的部署推理后,决定和各位读者分享一下如何使用LabVIEW实现YOLOv6的目标检测。


一、什么是YOLOv6

YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。本框架同时专注于检测的精度和推理效率,在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可达 35.0% AP,在 T4 上推理速度可达 1242 FPS;YOLOv6-s 在 COCO 上精度可达 43.1% AP,在 T4 上推理速度可达 520 FPS。在部署方面,YOLOv6 支持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平台的部署,极大地简化工程部署时的适配工作。

从模型性能对比图来看,YOLOv6的性能也是再创新高。YOLOv6-s在COCO上精度达到了43.1%AP,在T4上推理速度也高达520FPS!

YOLOv6提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。今天我们一起来看一下如何在LabVIEW中部署YOLOv6 ONNX。


二、环境搭建

1、部署本项目时所用环境

  • 操作系统:Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位版本
  • AI视觉工具包:techforce_lib_opencv_cpu-1.0.0.73.vip
  • onnx工具包:virobotics_lib_onnx_cuda_tensorrt-1.0.0.16.vip【1.0.0.16及以上版本】

2、LabVIEW工具包下载及安装


三、模型的获取与转化

注意:本教程已经为大家提供了YOLOV6的模型,可跳过本步骤,直接进行步骤四-推理。若是想要了解YOLOV6的onnx模型如何获取,则可继续阅读本部分内容。

下面我们来介绍两种模型获取的方式(以yolov6s为例,想要获取其他模型的方式也一样,只需要修改名字即可)

1、方式一:直接在官网下载yolov6s的onnx模型

具体地址如下:https://github.com/meituan/YOLOv6/tree/main/deploy/ONNX



单击YOLOv6-s,可直接下载yolov6s.onnx

2、方式二:将标准模型pt转化为onnx(较为复杂)

1、下载并安装YOLOv6所依赖的库

https://github.com/meituan/YOLOv6中下载YOLOv6源码并解压



在YOLOv6-main文件夹中打开cmd,输入以下指令安装需要的库:

pip3 install -U pip && pip3 install -r requirements.txt

注意:YOLOv6比V5多了一个addict库,如果之前已经安装过了YOLOv5的相关库,也可以只下载一个addict

2、安装pycocotools

pip install pycocotools

!!!注:若安装pycocotools时遇到ERROR: Could not build wheels for pycocotools ……,则使用以下指令来安装:

pip install pycocotools-windows

3、从基准表下载标准预训练模型

https://github.com/meituan/YOLOv6



将模型放置到如下路径”\YOLOv6-main\”



4、将标准模型pt转化为onnx

切换到YOLOv6-main文件夹路径下,运行以下指令实现模型的转换

python ./deploy/ONNX/export_onnx.py --weights yolov6s.pt --img 640 --batch 1

输出如下,得到yolov6s.onnx

四、在LabVIEW实现YOLOV6的部署推理

本项目整体的文件结构如下图所示,各位读者可在文章末尾链接处下载整个项目源码。

本例中使用LabVIEW ONNX工具包中的Create_Session.vi载入onnx模型,可选择使用cpu,cuda进行推理加速。

1、查看模型

我们可以使用netron 查看ppyoloe_crn_s_300e_coco.onnx的网络结构,浏览器中输入链接:https://netron.app/,点击Open Model,打开相应的网络模型文件即可。



查看模型属性,可看到模型的输入输出如下图所示:

我们发现,该模型输出和YOLOx输出一直,均为1x8400x85

2、项目运行

将我们已经转化好的onnx模型放置到model文件夹中,打开yolov6_onnx_camera.vi,在前面板中修改程序中加载的模型路径为实际模型路径,本项目中已经将YOLOV6 onnx模型【yolov6s.onnx】放置到了model文件夹中,如需其他模型,读者也可自行放置到model文件及下,实现模型的加载。运行程序,可得到目标检测的结果。

  • 主程序源码如下(可以选择使用CUDA或者TensorRT进行推理加速):

  • 运行结果如下:


五、完整项目下载链接

链接:https://blog.csdn.net/virobotics/article/details/126356929?spm=1001.2014.3001.5501

总结

以上就是今天要给大家分享的内容。大家可根据链接下载相关源码与模型。

如果有问题可以在评论区里讨论,提问前请先点赞支持一下博主哦,如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:LabVIEW机器学习

**如果文章对你有帮助,欢迎关注、点赞、收藏

YOLOv6在LabVIEW中的推理部署(含源码)的更多相关文章

  1. WinForm中使用DDE技术(含源码)

    提起DDE技术,相信很多人不知道是啥东东,尤其是90后的程序员们.不过,有时候这个东西还是有用处的,用一句话可以总结:实现Winform程序间的通信.比如:两个Winform程序A和B需要实现通信,用 ...

  2. WinForm中播放视频示例(含源码)

    1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的WM控件,也是通过COM方式集 ...

  3. WinFom中经典小游戏(含源码)

    最近整理了若干经典的小游戏,无聊时可以打发时间.程序本身不大,练手非常不错,主要是GDI编程,主界面地址如下图所示 源码下载方式 1,关注微信公众号:小特工作室(也可直接扫描签名处二维码) 2,发送: ...

  4. c++实现游戏开发中常用的对象池(含源码)

    c++实现游戏开发中常用的对象池(含源码) little_stupid_child2017-01-06上传   对象池的五要素: 1.对象集合 2.未使用对象索引集合 3.已使用对象索引集合 4.当前 ...

  5. Fabric2.2中的Raft共识模块源码分析

    引言 Hyperledger Fabric是当前比较流行的一种联盟链系统,它隶属于Linux基金会在2015年创建的超级账本项目且是这个项目最重要的一个子项目.目前,与Hyperledger的另外几个 ...

  6. C++ JsonCpp 使用(含源码下载)

    C++ JsonCpp 使用(含源码下载) 前言 JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择JSON的全称为:JavaScri ...

  7. 微信公众平台开发-OAuth2.0网页授权(含源码)

    微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...

  8. 微信公众平台开发-access_token获取及应用(含源码)

    微信公众平台开发-access_token获取及应用(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 很多系统中都有access_token参数,对于微信公众平台的access_to ...

  9. 微信公众平台开发-微信服务器IP接口实例(含源码)

    微信公众平台开发-access_token获取及应用(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 学习了access_token的获取及应用后,正式的使用access_token ...

  10. jQuery使用():Deferred有状态的回调列表(含源码)

    deferred的功能及其使用 deferred的实现原理及模拟源码 一.deferred的功能及其使用 deferred的底层是基于callbacks实现的,建议再熟悉callbacks的内部机制前 ...

随机推荐

  1. 1 分钟给 Siri 升个级!从智Z变身 ChatSiri!

    原文链接:https://forum.laf.run/d/79/17 众所周知,Siri 是一个智 Z!那么如果能接入大火的 chatGPT,是不是就会从智 Z 变成人工智能?! 众所周知,Laf 是 ...

  2. DeFi4-稳定币

    稳定币--稳定 是一个相对的度量指标 波动性,收益率标准差 在一个时间段内最大跌幅 Fiat,例如: 欧元.英镑的波动率为6-12% (波动本身并不能反映价格的范围 稳定币 vs 锚定币 稳定币类型 ...

  3. Prometheus监控之SNMP Exporter介绍和数据展现

    由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢. 1 SNMP协议介绍 SNMP协议全称是:Simple Network Management Protocol,译为简单网 ...

  4. [Pytorch框架] 3.3 通过Sin预测Cos

    文章目录 3.3 通过Sin预测Cos 3.3 通过Sin预测Cos %matplotlib inline import torch import torch.nn as nn from torch. ...

  5. Azure Devops上模版化K8s部署

    在2022年我们终于完成了主要业务系统上K8s的计划,在这里总结下我们上K8s时候的模版工程. 前提条件 本文不讨论K8s是什么,什么是容器化,为什么需要容器化,什么是微服务等这些基础内容,这些到处说 ...

  6. nginx配置文件编写及日志文件相关操作

    nginx配置文件编写及日志文件相关操作 目录 nginx配置文件编写及日志文件相关操作 nginx主配置文件扩展详解 部署nginx网站 注意事项 Nginx虚拟主机 nginx配置虚拟主机的三种方 ...

  7. Django4全栈进阶之路3 apps.py 文件

    在 Django 4 中,每个应用(app)都需要定义一个 apps.py 文件,用于配置应用的基本信息,如应用的名称.显示名称.图标.默认路径.启动时需要执行的操作等.apps.py 文件是一个 P ...

  8. operation not supported on selected printer

    operation not supported on selected printer 版本原因 解决办法, 每次打印前先选择一次打印机属性,弹窗点确认还是取消都行,最后返回再点打印即可

  9. Python从零到壹丨详解图像锐化Roberts、Prewitt算子实现边缘检测

    摘要:图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础.本章主要介绍Robert算子.Prewitt算子.Sobel算子.Laplacian算子.S ...

  10. Burpsuite抓包工具的使用

    一.打开工具 1处箭头为 代理127.0.0.1 端口8080 2处箭头为 证书 将证书ca下载到桌面上 选择第一个 选择下载到桌面即可 可以修改其后缀为der 此即为证书文件 此处使用火狐浏览器为示 ...