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

news/2024/7/10 1:56:46 标签: labview, 目标检测, 人工智能, YOLO, pytorch

‍‍🏡博客主页: 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加速实现<a class=目标检测" />
    GPU加速实现<a class=目标检测" />
  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.niftyadmin.cn/n/5094724.html

相关文章

atlas运维中遇到的问题

1、java.lang.NoClassDefFoundError&#xff1a;javax/ws/rs/core/Link$Builder 主要原因&#xff1a;jsr311-api包中javax.ws.rs.core包中没有Link类&#xff0c;而Atlas以HBase作为元数据存储&#xff0c;HBase本身使用的为javax.ws.rs-api包中的core包&#xff0c;其中有Lin…

【Axure高保真原型】3D柱状图_中继器版

今天和大家分享3D柱状图_中继器版的原型模板&#xff0c;图表在中继器表格里填写具体的数据&#xff0c;调整坐标系后&#xff0c;就可以根据表格数据自动生成对应高度的柱状图&#xff0c;鼠标移入时&#xff0c;可以查看对应圆柱体的数据……具体效果可以打开下方原型地址体验…

直播美颜技术的技术背后:美颜SDK的原理与实践

对于美颜美颜SDK来说大家都不会陌生&#xff0c;通过它&#xff0c;我们能够实现实时美颜效果&#xff0c;改善视频质量&#xff0c;吸引更多观众。 一、美颜SDK是什么&#xff1f; 美颜SDK为开发者提供了一整套美颜和图像处理功能&#xff0c;用于实时处理直播视频流。这个工…

解决axios不发起请求的问题

一个很简单axios发起的get请求&#xff0c;但是network就是没有xhr记录&#xff1a; 找了半天也没有找到原因&#xff0c;后来问了chatgpt才找到原因&#xff1a; 请求地址url前面没有const关键字&#xff0c;此时url相当于undefined&#xff0c;而axios在url为undefined时不会…

C语言---预处理详解

1.预定义符号 在C语言中有一些内置的预定义符号 __FILE__ __LINE__ __DATE__ __TIME__ __STDC__//进行编译的源文件 //文件当前的行号 //文件被编译的日期 //文件被编译的时间 //如果编译器遵循ANSI C&#xff0c;其值为1&#xff0c;否则未定义 编译器在__STDC__报错,说明,v…

nginx之正向代理、反向代理和负载均衡(重点)

一、nginx的两种代理方式 1、七层代理&#xff08;http协议&#xff09; 2、四层代理&#xff08;tcp/udp流量转发&#xff09; 二、四层代理和七层代理 &#xff08;一&#xff09;四层代理&#xff1a;基于tcp/udp协议的ip和端口转发数据包 1、四层代理无法获取http请求…

PHP 生成微信小程序码,并存储图片

背景 当前鄙人接手的项目&#xff0c;需要在设备机器上展示 小程序二维码 为了记录扫码用户从哪台机器注册的 那么&#xff0c;实现方案就是&#xff1a;在小程序码中&#xff0c;绑定设备编号参数 在此&#xff0c;记录一番实现步骤 … 小程序开发文档 - 【 获取不限制的小程…

火山引擎、腾讯们,看透了大模型这场“猫鼠游戏”

文丨智能相对论 作者丨沈浪 “数据飞轮”是火山引擎面向B端市场重点打造的概念&#xff0c;其目的在于以“数据消费”为核心&#xff0c;构建“用数据驱动业务提升&#xff0c;用业务推动数据提效”的数字商业模式。 尽管当前AI大模型引爆了市场&#xff0c;各大厂商相继发布…