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/在线查看,或者下载离线版本查看。
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 sizeC
– number of channelsH
– image heightW
– 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 sizeC
– number of channelsH
– image heightW
– 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 sizeC
– number of channelsH
– image heightW
– 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 sizeC
– number of channelsH
– image heightW
– 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