仪酷LabVIEW OD实战(2)——Object Detection VI函数详细介绍

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

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

一、前言

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

上一节给大家介绍了仪酷Object Detection工具包的安装,这节我们来看看这个工具包可以帮助我们快速搭建我们的范例的VI具体有哪些,以及具体VI的参数是什么?


二、环境搭建

2.1 部署本项目时所用环境


三、Object_Detection VI函数

该插件一共六个vi函数,可帮助用户快速搭建自己的目标检测应用,具体vi介绍如下:
在这里插入图片描述

  1. IntialModel_Onnx.vi:多态VI,使用onnxruntime推理引擎加载onnx模型并实现初始化。用户可以在该多态vi下拉菜单中选择需要初始化的模型;
    在这里插入图片描述

    具体参数含义:
    在这里插入图片描述

  • device_id:设备号,可选0、1、2、3等,数字为GPU索引,默认为0;
  • type: 推理加速类型,可选CPU、CUDA、TensorRT,默认为CPU
  • path:模型路径,默认为空
  • class_names_path:对象类别名称文件路径,默认为空
  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。
  • use_letterbox:用于控制输入图像的缩放和填充方式,默认为True。当 use_letterbox 设置为 True 时,在推理过程中,输入图像将被缩放到固定的尺寸,并在保持图像纵横比的同时进行填充。这通常用于处理输入图像尺寸与模型期望输入尺寸不一致的情况。通过应用 letterbox 缩放和填充,可以确保输入图像的纵横比不变,避免图像形状的扭曲。当 use_letterbox 设置为 False 时,输入图像将根据模型的输入要求进行缩放,但不进行填充。这可能会导致输入图像的纵横比发生变化,但可以更准确地反映原始图像的内容。
  • swap rb:如果图像为三通道图片,是否交换Red通道和Blue通道。默认为True。swap rb设置为True,则将读取到的图片的Red通道和Blue通道交换,YOLO模型是在RGB图像上进行推理的。
  • yolox_onnx_out:用ONNX工具包推理yolovx的类(x可以为5/6/7/8)
  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。
  1. IntialModel_OpenVINO.vi:多态VI,使用OpenVINO推理引擎加载onnx模型并实现初始化。用户可以在该多态vi下拉菜单中选择需要初始化的模型;
    在这里插入图片描述

    具体参数含义:
    在这里插入图片描述

  • device_name:设备名,推理加速类型,可选CPU、GPU,默认为CPU;
  • path:模型路径,默认为空
  • class_names_path:对象类别名称文件路径,默认为空
  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。
  • use_letterbox:用于控制输入图像的缩放和填充方式,默认为True。当 use_letterbox 设置为 True 时,在推理过程中,输入图像将被缩放到固定的尺寸,并在保持图像纵横比的同时进行填充。这通常用于处理输入图像尺寸与模型期望输入尺寸不一致的情况。通过应用 letterbox 缩放和填充,可以确保输入图像的纵横比不变,避免图像形状的扭曲。当 use_letterbox 设置为 False 时,输入图像将根据模型的输入要求进行缩放,但不进行填充。这可能会导致输入图像的纵横比发生变化,但可以更准确地反映原始图像的内容。
  • swap rb:如果图像为三通道图片,是否交换Red通道和Blue通道。默认为True。swap rb设置为True,则将读取到的图片的Red通道和Blue通道交换,YOLO模型是在RGB图像上进行推理的。
  • yolox_openvino_out:用OpenVINO工具包推理yolovx的类(x可以为5/6/7/8)
  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。
  1. IntialModel_TensorRT.vi:多态VI,使用OpenVINO推理引擎加载onnx模型并实现初始化。用户可以在该多态vi下拉菜单中选择需要初始化的模型;
    在这里插入图片描述

    具体参数含义:
    在这里插入图片描述

  • config:包含多个需要配置的元素信息,具体含义如下
    在这里插入图片描述

  • device_id:设备号,可选0、1、2、3等,数字为GPU索引,默认为0;

  • path:engine模型路径,默认为空

  • class_names_path:对象类别名称文件路径,默认为空

  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。

  • use_letterbox:用于控制输入图像的缩放和填充方式,默认为True。当 use_letterbox 设置为 True 时,在推理过程中,输入图像将被缩放到固定的尺寸,并在保持图像纵横比的同时进行填充。这通常用于处理输入图像尺寸与模型期望输入尺寸不一致的情况。通过应用 letterbox 缩放和填充,可以确保输入图像的纵横比不变,避免图像形状的扭曲。当 use_letterbox 设置为 False 时,输入图像将根据模型的输入要求进行缩放,但不进行填充。这可能会导致输入图像的纵横比发生变化,但可以更准确地反映原始图像的内容。

  • swap rb:如果图像为三通道图片,是否交换Red通道和Blue通道。默认为True。swap rb设置为True,则将读取到的图片的Red通道和Blue通道交换,YOLO模型是在RGB图像上进行推理的。

  • yolox_tensorRT_out:用TensorRT工具包推理yolovx的类(x可以为5/6/7/8)

  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。

  1. Detect_1_Batch:使用opencv数据类型图像作为输入,进行模型的预处理和后处理,实现推理,具体参数含义:
    在这里插入图片描述
  • nms_threshold:NMS阈值,用于控制重叠边界框的合并条件,当两个边界框的重叠程度(通常使用IOU,即交并比)超过NMS阈值时,将被视为重叠边界框,并根据一定的规则选择其中一个作为最终的检测结果。较高的NMS阈值会保留更多的检测结果,但可能导致重叠边界框较多。较低的NMS阈值可以更严格地抑制重叠边界框,但可能会导致某些真实目标被错误地丢弃。通常情况下,NMS阈值的取值范围在0到1之间,常见的取值为0.5或0.6。默认为0.5
  • confThreshold:置信度阈值,置信度是一个介于0到1之间的概率值,表示模型对边界框所包含目标的置信程度。当某个边界框的置信度大于或等于置信度阈值时,该边界框被认为是有效的检测结果;当置信度小于阈值时,该边界框则被丢弃。通过调整confThreshold的值,可以控制模型对检测结果的准确性和召回率。较高的置信度阈值会提高准确性,但可能会导致一些真实目标被错误地丢弃;较低的置信度阈值则会增加召回率,但可能会引入一些误检测。默认为0.3
  • Object_Detection_Utils in:用于推理的类输入
  • image:OpenCV数据类型格式图像,是一个Mat
  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。
  • fontscale:字体缩放因子,用于调整文本或字体的大小比例,一个浮点数值,表示相对于原始字体大小的缩放比例。具体而言,当fontscale的值大于1时,文本将变大;当fontscale的值小于1时,文本将变小。默认为0.5。
  • Object_Detection_Utils out:用于推理的类输出,用于后续函数的输入
  • results:目标检测结果,包括目标检测框坐标,置信度以及目标检测结果
  • img out:带有检测结果的图像Mat索引,用于后续函数的输入
  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。
  1. Detect_1_Batch_nivison:使用NI Image数据类型图像作为输入,进行模型的预处理和后处理,实现推理,具体参数含义:
    在这里插入图片描述
  • nms_threshold:NMS阈值,用于控制重叠边界框的合并条件,当两个边界框的重叠程度(通常使用IOU,即交并比)超过NMS阈值时,将被视为重叠边界框,并根据一定的规则选择其中一个作为最终的检测结果。较高的NMS阈值会保留更多的检测结果,但可能导致重叠边界框较多。较低的NMS阈值可以更严格地抑制重叠边界框,但可能会导致某些真实目标被错误地丢弃。通常情况下,NMS阈值的取值范围在0到1之间,常见的取值为0.5或0.6。默认为0.5
  • confThreshold:置信度阈值,置信度是一个介于0到1之间的概率值,表示模型对边界框所包含目标的置信程度。当某个边界框的置信度大于或等于置信度阈值时,该边界框被认为是有效的检测结果;当置信度小于阈值时,该边界框则被丢弃。通过调整confThreshold的值,可以控制模型对检测结果的准确性和召回率。较高的置信度阈值会提高准确性,但可能会导致一些真实目标被错误地丢弃;较低的置信度阈值则会增加召回率,但可能会引入一些误检测。默认为0.3
  • Object_Detection_Utils in:用于推理的类输入
  • Image:NI Image控件的数据类型图像的引用
  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。
  • fontscale:字体缩放因子,用于调整文本或字体的大小比例,一个浮点数值,表示相对于原始字体大小的缩放比例。具体而言,当fontscale的值大于1时,文本将变大;当fontscale的值小于1时,文本将变小。默认为0.5。
  • Object_Detection_Utils out:用于推理的类输出
  • results:目标检测结果,包括目标检测框坐标,置信度以及目标检测结果
  • Image out:经过处理之后的图像的引用输出
  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。
  1. Release:推理结束,释放模型。
    在这里插入图片描述
  • Object_Detection_Utils in:用于推理的类输入
  • Object_Detection_Utils out:用于推理的类输出
  • error in:描述在此VI或函数运行之前发生的错误条件。默认值是没有错误的。
  • error out:包含错误信息。如果中的错误指示在此VI或函数运行之前发生了错误,则错误输出包含相同的错误信息。

四、工具包获取方式

如需改插件工具包,可关注微信公众号:VIRobotics ,回复关键字:目标检测插件


总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续还会继续给各位朋友分享其他案例,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

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

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

推荐阅读

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
LabVIEW虚拟仪器是一种基于图形化编程的软件平台,可以帮助工程师和科学家们设计、测试和控制各种仪器。在LabVIEW虚拟仪器课程作业中,我们可以设计一个红绿灯VI,用来模拟控制交通红绿灯的工作原理。 首先,我们需要创建一个空的VI窗口,然后将红绿灯的图标和LED灯等控件添加进去。我们可以使用LabVIEW提供的基本图形控件库来创建这些控件。 接下来,我们需要设置红绿灯的时序控制。我们可以通过使用有限状态机来实现这个功能。首先,我们创建一个全局的状态变量,用来记录当前红绿灯的状态。然后,我们可以使用一个无限循环结构,将每个状态的执行条件和子VI进行连接。 在每个循环迭代中,我们可以使用条件结构来判断当前状态,并执行相应的操作。例如,当状态为“红灯”时,我们可以使红灯LED点亮,同时等待一定的时间后切换状态为“绿灯”。当状态为“绿灯”时,我们可以使绿灯LED点亮,并等待一定的时间后切换状态为“黄灯”,依此类推。 除了红绿灯的时序控制,我们还可以添加一些控制按钮,如“开始”、“停止”和“重置”等,以便手动控制红绿灯的状态。我们可以使用事件结构来监听这些按钮的按下事件,并根据按钮状态进行相应的操作。 最后,我们可以通过添加一些额外的功能来增强这个红绿灯VI的实用性,如添加声音效果、显示倒计时器等。这些功能可以使用LabVIEW提供的各种函数和工具箱来实现。 总的来说,通过设计和实现这个红绿灯VI,我们可以加深对LabVIEW虚拟仪器的使用和理解,并提高我们在工程和科学领域中使用LabVIEW软件开发的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

virobotics

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值