YOLO11 For LabVIEW_一篇文章搞明白

2024年9月27日,Ultralytics在线直播长达九小时,为YOLO11召开“发布会”。YOLO11 是 Ultralytics YOLO 系列实时物体检测器的最新版本,它以尖端的准确性、速度和效率重新定义了可能性。YOLO11 在架构和训练方法方面进行了重大改进,使其成为各种计算机视觉任务的多功能选择。

详细信息参考官网:https://docs.ultralytics.com

github项目地址:https://github.com/ultralytics/ultralytics(python)

YOLO11提供了Detect、Segment、Classify、Pose、OBB 5种类别的模型,每种模型提供了 n、s、m、l、x 5种不同大小的模型,使用者可以根据速度及精度需求来选择。

YOLO11提供了全流程服务,图像lable、训练、模型导出的全部代码。不懂python也没关系可以使用提供的命令行的方式全流程操作。

这种方式还是嫌麻烦,可以使用Ultralytics HUB在线全流程服务。

YOLO11不仅提供了原生模型还提供了全流程模型模型训练生态。使用者可以使用该生态训练自己的特有模型,满足个性化需求。

YOLO11模型推理在LabVIEW环境作者使用OpenVINO开源工具进行推理。

OpenVINO™工具包是一个开源工具包,它以更低的延迟和更高的吞吐量加速人工智能推理,同时保持准确性,减少模型占用空间,并优化硬件使用。它简化了人工智能的开发和深度学习在计算机视觉、大型语言模型(LLM)和生成式人工智能等领域的集成

<推流流程>

打开模型—>推理数据—>销毁模型,3步轻松完成模型推理。LabVIEW推理模型相当简单,一看就会

LabVIEW推理分为3步,封装成3个VI。

1)OV_Load_Model.vi(打开模型并完成初始化)

OpenVINO支持的格式有以下5种,可以直接读取。

1)支持.IR模型(.xml+*.bin文件),OpenVINO格式

2)通用格式*.onnx

3)飞桨*.pdmodel

4)TensorFlow格式*.pb

5) TensorFlow轻量格式*.tflite

其他类型的格式,也可用通过工具转化为中间类型*onnx格式进行读取。YOLO11开源代码带有转换工具,命令行一句代码完成转化。

例如:yolo export model=yolo11x.pt format=openvino

2)OV_Run_Infer.vi(根据输入推理模型并输出推理结果)

要正确完成推理,Input_Nodes必须严格按照模型的输入类型设置

Input_Nodes

Input_Nodes设计成数组形式,输入可能会有多个。

Input Node Name: 输入数据的名称(模型制作的时候已经设计好的)

Input_Data:输入的数据,CPU一般是F32单精度格式

Shape:输入数据的维度,静态模型设计为固定输入维度信息,Shape可以不设置,直接模型读取;如果是动态模型非固定输入,此处Shape必须设置,否则推理工具不知道内存开多大。

如何获取模型的Input_Nodes信息?这里提供两种方式。

1) OpenVINO For LabVIEW 工具获取模型输入/输出

作者开发了OpenVINO_Get_Property.vi,可以获取OpenVINO版本、可用设备列表、加载模型的输入、输出的说明。

2)Netron APP查看模型输入与输出

使用该网址https://netron.app/在线查看,或者下载离线版本查看。

https://github.com/lutzroeder/netron/releases/tag/v7.9.6

3) OV_Release.vi(销毁模型)

YOLO11-object detection(目标识别)

对象检测是一项涉及识别图像或视频流中对象的位置和类别的任务。

对象检测器的输出是一组包围图像中对象的边界框,以及每个框的类标签和置信度得分。当您需要识别场景中感兴趣的对象,但不需要确切知道对象的位置或确切形状时,对象检测是一个不错的选择。

Inputs

Image, name: x, shape: 1, 3, 640, 640 in the format B, C, H, W, where:

  • B – batch size (批量大小)
  • C – number of channels(一般是RGB,有的模型是BGR)
  • H – image height (图像的高)
  • W – image width(图像的宽)

Image Normalization:0-1

Outputs

The net outputs a blob 1, 84, 8400

84:前4个数代表识别框的cx,cy,h,w。后面80个数代表80个识别类别的置信值。

输出会有很多框,需要设计置信度阈值以及非极大值抑制阈值来过滤。作者设计了输出后处理模块及推理结果渲染模块。

YOLO11 LabVIEW推理例子

,时长00:15

YOLO11-OBB(目标识别)

定向对象检测比对象检测更进一步,引入了一个额外的角度,以便在图像中更准确地定位对象。

定向对象检测器的输出是一组旋转的边界框,它们精确地包围了图像中的对象,以及每个框的类标签和置信度得分。当您需要识别场景中感兴趣的对象,但不需要确切知道对象的位置或确切形状时,对象检测是一个不错的选择。

Inputs

Image, name: x, shape: 1, 3, 1024, 1024 in the format B, C, H, W, where:

  • B – batch size
  • C – number of channels
  • H – image height
  • W – image width

Image Normalization:[0-1]

Outputs

The net outputs a blob 1, 20, 21504

20:前4个数代表cx,cy,h,w;15个类别的置信度数;1个旋转弧度,4+15+1。

21504:代表检测了21504次,要在这里面挑出合适的检测结果。

输出会有很多框,需要设计置信度阈值以及非极大值抑制阈值来过滤。作者设计了输出后处理模块及推理结果渲染模块。

YOLO11-OBB LabVIEW推理例子

,时长00:25

YOLO11-Instance Segmentation(目标分割)

实例分割比对象检测更进一步,涉及识别图像中的单个对象并将其与图像的其余部分分割开来。

实例分割模型的输出是一组掩模或轮廓,它们勾勒出图像中的每个对象,以及每个对象的类标签和置信度得分。当您不仅需要知道对象在图像中的位置,还需要知道它们的确切形状时,实例分割非常有用。

Inputs

Image, name: x, shape: 1, 3, 640, 640 in the format B, C, H, W, where:

  • B – batch size
  • C – number of channels
  • H – image height
  • W – image width

Image Normalization:[0-1]

Outputs

output_1: 1, 116, 8400

116:前4个数是前4个数代表cx,cy,h,w;5-85是80个类别的置信度;51-116是32个mask的可能性,4+84+32=116。

8400:代表检测了8400次吧,按照置信度阈值以及非极大值抑制阈值挑选出合适的框。

output_2: 1, 32, 160, 160

32:32个mask的可能性

160*160:是mask大小。

作者设计了输出后处理模块及推理结果渲染模块。

YOLO11-SEG LabVIEW推理例子

,时长00:18

YOLO11-Pose Estimation(姿态评估)

姿态估计是一项涉及识别图像中特定点(通常称为关键点)位置的任务。关键点可以表示对象的各个部分,如关节、地标或其他独特特征。

姿态估计模型的输出是一组点,表示图像中对象上的关键点,通常还有每个点的置信度得分。当您需要识别场景中对象的特定部分及其相互关系时,姿态估计是一个不错的选择。

Inputs

Image, name: x, shape: 1, 3, 640, 640 in the format B, C, H, W, where:

  • B – batch size
  • C – number of channels
  • H – image height
  • W – image width

Image Normalization:[0-1]

Outputs

output_1: 1, 56, 8400

56:前4个数代表cx,cy,h,w,第5个数是置信度。接下来是17个点的(x,y,visible)4+1+17*3=56。

8400:代表检测了8400次吧,按照置信度阈值以及非极大值抑制阈值挑选出合适的框。作者设计了输出后处理模块及推理结果渲染模块。

YOLO11-POS LabVIEW推理例子

,时长00:14

YOLO11-Image Classification(图像分类)

图像分类是三项任务中最简单的一项,涉及将整个图像分类到一组预定义的类中。

图像分类器的输出是单个类标签和置信度得分。当您只需要知道图像属于哪个类,而不需要知道该类对象的位置或其确切形状时,图像分类非常有用。

Inputs

Image, name: x, shape: 1, 3, 224, 224 in the format B, C, H, W, where:

  • B – batch size
  • C – number of channels
  • H – image height
  • W – image width

Image Normalization:[0-1]

Outputs

output_1: 1, 1000

1000就是1000个类别的置信度,找到最大的那一个。

YOLO11-CLS LabVIEW推理例子

,时长00:09

YOLO11提供了完整的全流程生态,使用者可以自定义训练集,完成特定模型训练,可以快速应用于科研及工业生产中。作者封装了OpenVINO 在LabVIEW环境的推理工具(有需要的扫码↓加微信聊),并制作了YOLO11系列模型的推理例子,希望有助于开发者快速掌握YOLO11模型。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/422869.html

联系我们
联系我们
分享本页
返回顶部