仪酷LabVIEW OD实战(3)——Object Detection+onnx工具包快速实现yolo目标检测

news2024/11/21 1:25:15

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主
🎄所属专栏:『LabVIEW深度学习工具包』『仪酷LabVIEW目标检测工具包实战』
📑上期文章:『仪酷LabVIEW OD实战(2)——Object Detection VI函数详细介绍』
🍻本文由virobotics(仪酷智能)原创首发

🥳欢迎大家关注✌点赞👍收藏⭐留言📝订阅专栏

文章目录

  • 一、前言
  • 二、环境搭建
    • 2.1 部署本项目时所用环境
    • 2.2 LabVIEW工具包下载及安装
  • 三、项目实战
    • 3.1 快速打开范例
    • 3.2 加载yolo模型实现推理
    • 3.2.1 实时检测推理
    • 3.2.2 实现图片集推理检测
    • 在这里插入图片描述
  • 四、工具包获取方式
  • 总结
  • 系列文章链接:

一、前言

Hello,大家好,我是virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

上一篇文章给大家介绍了仪酷Object Detection工具包的VI函数,今天我们给大家详细介绍一下如何使用这些VI配合onnx工具包快速搭建yolo目标检测项目。


二、环境搭建

2.1 部署本项目时所用环境

  • 操作系统:Windows系统

  • LabVIEW:2018及以上 64位版本

  • VIPM :2021及以上版本

  • AI视觉工具包(techforce_lib_opencv_cpu):1.0.1.16及以上版本

  • ONNX工具包:virobotics_lib_onnx_cpu-1.13.1.8及以上版本 或virobotics_lib_onnx_cuda_tensorrt-1.13.1.15及以上版本

  • 仪酷Object Detection工具包(virobotics_lib_object_detection):1.0.0.5及以上版本

2.2 LabVIEW工具包下载及安装

  • AI视觉工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/123656523
  • onnx工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/124998746
  • 仪酷Object Detection工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/132529219

三、项目实战

3.1 快速打开范例

  1. 双击打开LabVIEW,在“Help”选项下找到“Find Examples…”单击打开。
    在这里插入图片描述

  2. 打开范例查找器,选择Directory Structure–VIRobotics AI Vision–Object Detection即可获取所有的范例。不同模型的范例,放到了不同文件夹下。
    在这里插入图片描述

  3. 以YOLOv5相关范例为例,双击“yolov5”范例文件夹,双击想要运行的vi(若您电脑当前无法使用相机,建议加载名字含有“imgs”的vi范例)。

    (注意:范例VI名字中带有onnx表示该范例使用onnx工具包实现推理;范例VI名字中带有openvino表示该范例使用OpenVINO工具包实现推理;范例VI名字中带有trt表示该范例使用TensorRT工具包实现推理;您可根据您目前已经安装的工具包来打开对应范例。范例VI中带有nivision表示使用NI VISION方式进行图像采集并实现推理,如您预计使用官方NI VISION来采集图像,则可使用此范例。不带有nivision则表示使用仪酷工具包进行图像采集或图像读取来实现推理。)

  4. 若您电脑没有安装NI VISION工具包,则在打开范例过程中会出现如下图所示弹窗,一直点击“Ignore Item”即可。
    在这里插入图片描述

3.2 加载yolo模型实现推理

范例VI名字中带有onnx表示该范例使用onnx工具包实现推理

3.2.1 实时检测推理

  1. 以yolov5为例,快速打开范例,双击yolov5文件夹,双击yolov5_onnx.vi,会直接打开前面板,可以选择切换加速方式(如果您安装的是GPU版的ONNX工具包且电脑有英伟达独立显卡,则可以在运行范例前type控件选择CUDA,实现更快速的推理。)点击运行,程序会自动加载默认yolov5模型及分类文件,开启摄像头实现目标检测。
    在这里插入图片描述
  2. 如下两幅图分别为使用cpu加速和使用gpu加速,实时物体识别画面,若需要停止本次检测,点击“STOP”按钮控件即可。
    CPU加速实现目标检测
    GPU加速实现目标检测
  3. 如果想要加载自己训练好的模型,则可按照如下步骤进行设置
    ①更换加速类型type(如果您安装的是GPU版的ONNX工具包且电脑有英伟达独立显卡,则可以在运行范例前type控件选择CUDA,实现更快速的推理);
    ②加载自己已经训练好的模型model_path(默认为yolov5s.onnx);
    ③加载模型对应的类别文件class_names_path(默认加载官方模型类别文件);
    ④全部设置完毕,点击运行,即可实现实时检测。
    ⑤需要停止本次检测,点击“STOP”按钮控件即可
    在这里插入图片描述
    程序框图如下图所示:
    在这里插入图片描述

3.2.2 实现图片集推理检测

  1. 快速打开范例,如打开yolov5_onnx_imgs.vi,界面如下,依次完成:
    ①更换加速类型type(如果您安装的是GPU版的ONNX工具包且电脑有英伟达独立显卡,则可以在运行范例前type控件选择CUDA,实现更快速的推理);
    ②点击运行,启动程序,将会加载默认图片集;
    ③单击界面右侧imgs控件中需要进行检测的图片,即可实现图片检测;
    在这里插入图片描述
    ④如下图所示为检测结果,需要停止本次检测,点击“STOP”按钮控件即可。

在这里插入图片描述
3. 如果想要加载自己训练好的模型,则可按照如下步骤进行设置
①更换加速类型type(如果您安装的是GPU版的ONNX工具包且电脑有英伟达独立显卡,则可以在运行范例前type控件选择CUDA,实现更快速的推理);
②加载自己已经训练好的模型model_path(默认为yolov5s.onnx);
③加载模型对应的类别文件class_names_path(默认加载官方模型类别文件);
④全部设置完毕,点击运行,启动程序;
在这里插入图片描述

⑤选择需要检测的图片集,单击界面右侧imgs控件中需要进行检测的图片,即可实现图片检测;需要停止本次检测,点击“STOP”按钮控件即可
在这里插入图片描述

💡一些小技巧

  • 我们可以通过设置置信度阈值confThreashold(默认为0.3)和NMS阈值nms_threshold(默认为0.5)来控制检测结果,较高的置信度阈值和较低的NMS阈值可以提高结果的准确性,但可能会导致漏检和冗余检测。较低的置信度阈值和较高的NMS阈值可以增加检测结果,但可能会引入更多的误检和重复检测。因此,可以需要根据实际场景和性能要求调整这些阈值,即如下图所示中的Detect_1_Batch.vi中可进行参数设置

  • 可以设置Detect_1_Batch.vi中的fontscale,即字体缩放因子,用于调整文本或字体的大小比例,该参数是一个浮点数值,表示相对于原始字体大小的缩放比例。具体而言,当fontscale的值大于1时,文本将变大;当fontscale的值小于1时,文本将变小。默认为0.5。

在这里插入图片描述

四、工具包获取方式

如需该插件工具包,可查看:https://blog.csdn.net/virobotics/article/details/132529219


总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。下一篇我们将会给大家介绍Object Detection+openvino工具包快速实现yolo目标检测,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:CSDN

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

系列文章链接:

仪酷LabVIEW OD实战(1)——目标检测Object Detection工具包的安装
仪酷LabVIEW OD实战(2)——Object Detection VI函数详细介绍

推荐阅读

LabVIEW图形化的AI视觉开发平台(非NI Vision),大幅降低人工智能开发门槛
LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介
LabVIEW AI视觉工具包OpenCV Mat基本用法和属性
手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集

👇技术交流 · 一起学习 · 咨询分享,请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【微服务 SpringCloud】实用篇 · Eureka注册中心

微服务(3) 文章目录 微服务(3)1. Eureka的结构和作用2. 搭建eureka-server2.1 创建eureka-server服务2.2 引入eureka依赖2.3 编写启动类2.4 编写配置文件2.5 启动服务 3. 服务注册1)引入依赖2)配置文件3&am…

【Python搜索算法】广度优先搜索(BFS)算法原理详解与应用,示例+代码

目录 1 广度优先搜索 2 应用示例 2.1 迷宫路径搜索 2.2 社交网络中的关系度排序 2.3 查找连通区域 1 广度优先搜索 广度优先搜索(Breadth-First Search,BFS)是一种图遍历算法,用于系统地遍历或搜索图(或树…

python的搜索引擎系统设计与实现 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python的搜索引擎系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:5分创新点:3分 该项目较为新颖&#xff…

申请400电话需要的条件及办理流程

随着企业的发展和市场竞争的加剧,越来越多的企业开始意识到拥有一个400电话的重要性。400电话是一种以400开头的电话号码,可以为企业提供统一的客户服务热线,提高客户满意度和企业形象。下面将介绍申请400电话所需要的条件以及办理流程。 一…

python篇---python打印报错行

Python打印报错行的实现 步骤1:捕获异常步骤2:输出异常信息步骤3:打印报错行完整代码示例 作为一名开发者,我将教你如何在Python中打印报错行。这个技巧对于定位和解决代码中的错误非常有帮助。下面是详细的步骤和代码说明。 步…

小程序之如何学习一个新的知识,首先就是通过官网进行讲解!!(2)

⭐⭐ 小程序专栏:小程序开发专栏 ⭐⭐ 个人主页:个人主页 目录 ​编辑 一.前言 二.视图层 2.1 WXML的使用: 2.2 事件系统​编辑 三逻辑层(生命周期)--跳转页面 3.1生命周期 3.2 案例 3.3总结 今天就是给大家…

计算机网络中的CSMA/CD算法的操作流程(《自顶向下》里的提炼总结)

具有碰撞检测的载波侦听多路访问(CSMA/CD算法) 以下内容总结,对应《计算机网络自顶向下第七版》第六章链路层和局域网P299 操作流程: NIC(适配器,即网络接口)从网络层接收数据报,…

微信小程序前端生成动态海报图

//页面显示<canvas id"myCanvas" type"2d" style" width: 700rpx; height: 600rpx;" />onShareShow(e){var that this;let user_id wx.getStorageSync(user_id);let sharePicUrl wx.getStorageSync(sharePicUrl);if(app.isBlank(user_i…

基于OFDM通信系统的PAPR抑制算法matlab仿真,对比IPTS,OPTS,CEPTS三种算法

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、IPTS算法 4.2、OPTS算法 4.3、CEPTS算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 for k1:Nframesif mod(k,10) 0k/10end%产生…

Python自动化运维实战——Telnetlib和Netmiko自动化管理网络设备

❤️博客主页&#xff1a; iknow181&#x1f525;系列专栏&#xff1a; Python、JavaSE、JavaWeb、CCNP&#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 目录 一、前言 二、准备工作 三、Telnetlib Telnetlib介绍 Telnetlib模块及操作方法介绍 Telnetlib配置设备 T…

Unity SRP 管线【第一讲:自定义渲染管线】

来源&#xff1a; https://edu.uwa4d.com/lesson-detail/282/1308/0?isPreviewfalse 文章目录 来源&#xff1a;自定义渲染管线前置工作渲染管线资产渲染管线实例 正式渲染CommandBuffer清除渲染目标剔除&#xff08;Culling&#xff09;绘制绘制集合体 透明和不透明物体分开…

MySQL学习(二)——MySQL内置函数

文章目录 1. 函数1.1 字符串函数1.2 数值函数1.3 日期函数1.4 流程函数 2. 约束2.1 概述2.2 外键约束2.2.1 外键使用2.2.2 删除/更新行为 1. 函数 和其他编程语言一样&#xff0c;MySQL也有函数的定义。函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着&#…

jmeter接口测试实战:接口加密、接口解密、签名sign接口实战详解

在接口测试中&#xff0c;签名&#xff08;sign&#xff09;是一种重要的加密方式&#xff0c;用于保障数据传输的安全性和完整性。在这篇文章中&#xff0c;我们将通过一个具体的案例来学习如何使用 JMeter 进行签名接口的测试&#xff0c;并用 Python 代码进行实战演示。 比…

集成友盟qq互联分享,导出风险问题处理

处理方案&#xff1a;移除 android:exported"true"即可。 注意友盟SDK QQ share 里默认配置是android:exported"true"&#xff0c;所以要覆盖即可。

为什么CDN能创造这么利益

互联网的快速发展带来了更多的在线内容和应用&#xff0c;但同时也引发了对网站性能的高要求。用户对快速加载的期望越来越高&#xff0c;这就需要采用高效的内容分发解决方案。在这方面&#xff0c;CDN&#xff08;内容分发网络&#xff09;扮演了关键角色&#xff0c;通过其分…

uniapp(uncloud) 使用生态开发接口详情2(使用 schema创建数据, schema2code创建页面, iconfont 引入项目)

上一篇介绍如何创建项目,接下来该是如何使用 在项目中pages 目录下,新建界面 项目运行,浏览器中用账号密码登录, 新建一级和二级页面 2.1 系统管理 > 菜单管理 (新增一级界面) 2.2 找到刚刚创建的菜单, 操作行有 子菜单(点击) 用DB Schema创建页面, 3.1 在uniCloud > d…

大规模语言模型人类反馈对齐--RLHF

大规模语言模型在进行监督微调后&#xff0c; 模型具备了遵循指令和多轮对话的能力&#xff0c; 具备了初步与用户进行对话 的能力。然而&#xff0c; 大规模语言模由于庞大的参数量和训练语料&#xff0c; 其复杂性往往难以理解和预测。当这些模型被部署 时&#xff0c; 它们可…

经济不景气时,企业如何通过反向竞价节省成本?

在经济不景气时期&#xff0c;企业往往被迫寻找创新方法来削减成本&#xff0c;争取提高盈利。其中一种越来越受欢迎的方法就是使用反向竞价。 反向竞价是一种采购策略&#xff0c;它颠覆了传统的采购流程&#xff0c;允许供应商竞争买方的业务。这种方法可以节省大量成本&…

退税政策线上VR互动科普展厅为税收工作带来了强大活力

缴税纳税是每个公民应尽的义务和责任&#xff0c;由于很多人缺乏专业的缴税纳税操作专业知识和经验&#xff0c;因此为了提高大家的缴税纳税办事效率和好感度&#xff0c;越来越多地区税务局开始引进VR虚拟现实、web3d开发和多媒体等技术手段&#xff0c;基于线上为广大公民提供…

C# Winform编程(2)常用控件

C# Winform编程&#xff08;2&#xff09;常用控件 常用控件 常用控件 标签&#xff0c;文本&#xff0c;按钮&#xff0c;列表框&#xff0c;组合框等的使用 Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks…