【机器视觉】yolo-world-opencvsharp-.net4.8 C# 窗体应用程序

47bc49fe5390f5be826993fad8765be4.png

这段代码是基于 OpenCvSharp, OpenVinoSharp 和 .NET Framework 4.8 的 Windows Forms 应用程序。其主要目的是加载和编译机器学习模型,对输入数据进行推理,并显示结果。

下面是该程序的主要功能和方法的详细总结:

  1. 初始化 OpenVINO 运行时核心(Core)和设备列表

  • 在 Form1_Load 方法中,程序创建了 Core 类的实例,并获取了可用设备列表,然后将这些设备添加到下拉选择框中。

选择模型和输入文件:

  • 使用 OpenFileDialog 来引导用户选择模型文件和输入文件(图片或视频)。btn_select_model_Click 和 btn_select_input_Click 方法负责处理文件选择对话框,并更新文本框以显示所选文件的路径。

加载并编译模型:

  • btn_load_model_Click 方法中,程序通过 read_model 方法加载用户选定的模型,然后调用 compile_model 方法将模型编译到指定设备上。编译完成后,创建了对模型的推理请求(InferRequest)。

执行推理:

  • btn_infer_Click 方法负责执行推理过程。它根据输入路径(图片或视频)调用 image_predict 方法来处理数据,并显示预测结果。

处理图片并推理:

  • image_predict 方法接受一个 Mat 图像,将其调整大小、归一化,并通过排列(Permutation)转换成模型所需的输入格式。之后,程序执行推理请求,并获取输出tensor。

后处理推理结果并显示:

  • postprocess 方法接受推理结果作为一个浮点数数组,根据设定的类别数和因子对结果进行预处理,检测出物体的矩形框,过滤和非极大值抑制(NMS)后,识别出类别和置信度,最终,将识别出的对象和对应信息绘制在图像上。

显示 FPS 和预测结果:

  • 推理后,程序计算并显示当前的帧率(FPS),并将检测框和标签绘制在结果图像上,并在界面中更新 pictureBox2 控件来展示图像。

该程序是由几个部分组成的一个界面应用,通过读取模型文件、处理图像和视频输入、执行模型推理,并在界面上展示结果的流程,体现了一种典型的实时物体检测和分类的机器学习应用。

// 引入OpenCvSharp相关的命名空间,用于图像处理和计算机视觉
using OpenCvSharp;
// 引入OpenCvSharp的Dnn(深度神经网络)命名空间,用于深度学习模型的加载和推理
using OpenCvSharp.Dnn;
// 引入OpenVinoSharp命名空间,用于模型优化和推理加速
using OpenVinoSharp;
// 引入OpenVinoSharp的Extensions下的model命名空间,包含模型加载和处理的扩展方法
using OpenVinoSharp.Extensions.model;
// 引入OpenVinoSharp的Extensions下的p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值