[C#]C# OpenVINO部署yolov8图像分类模型

【官方框架地址】

https://github.com/ultralytics/ultralytics.git
【算法介绍】

YOLOv8 抛弃了前几代模型的 Anchor-Base。

YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们已经对 YOLO 进行了多次更新迭代,模型性能越来越强大。现在,YOLOv8 已正式发布。

YOLOv8 是由小型初创公司 Ultralytics 创建并维护的,值得注意的是 YOLOv5 也是由该公司创建的。
【效果展示】

【实现部分代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;namespace FIRC
{public partial class Form1 : Form{Mat src = new Mat();Yolov8ClsManager ym = new Yolov8ClsManager();public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";openFileDialog.RestoreDirectory = true;openFileDialog.Multiselect = false;if (openFileDialog.ShowDialog() == DialogResult.OK){src = Cv2.ImRead(openFileDialog.FileName);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);}}private void button2_Click(object sender, EventArgs e){if(pictureBox1.Image==null){return;}Stopwatch sw = new Stopwatch();sw.Start();var result = ym.Inference(src);sw.Stop();this.Text = "耗时" + sw.Elapsed.TotalSeconds + "秒";var resultMat = ym.DrawImage(src,result);pictureBox2.Image= OpenCvSharp.Extensions.BitmapConverter.ToBitmap(resultMat); //Mat转Bitmap}private void Form1_Load(object sender, EventArgs e){ym.LoadWeights(Application.StartupPath+ "\\weights\\yolov8l-cls.onnx", Application.StartupPath + "\\weights\\labels.txt");}private void btn_video_Click(object sender, EventArgs e){}}
}


【视频演示】

https://www.bilibili.com/video/BV1uN4y1q7iu/
【源码下载】


【测试环境】

vs2019

netframework4.8

opencvsharp4.8.0

openvinosharp

注意无需额外安装openvino运行库直接可以运行


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319439.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 2807. 在链表中插入最大公约数

给你一个链表的头 head ,每个结点包含一个整数值。 在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。 两个数的 最大公约数 是可以被两个数字整除的最大正整数。 示例 1&#xf…

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

NVMe SSD IO压力导致宕机案例解读-1

近日,小编在内核pci模块变更提交记录里面,看到一条由联想工程师提交的一份变更,主要是针对DMA相关优化。小编根据提交内容,根据自己的理解分享给大家。(原始git地址获取,请在后台私信输入关键字“IO宕机”&…

【模拟电路】EDA软件、绘制原理图和PCB

一、EDA软件 二、常用的PCB的EDA软件 三、PCB生产工艺制造流程 四、国产嘉立创EDA专业版使用 五、EDA软件-绘制开关电路原理图 六、原理图转PCB绘制 七、检查DRC 八、PCB下单流程 一、EDA软件 EDA是电子设计自动化(Electronic Design Automation)的缩写…

清风数学建模排版

Overview 链接:https://pan.baidu.com/s/11QBw3zBFNicwQWvWCfW1Gg?pwdepnz 提取码:epnz Latex 范文排版练习 b站刘海洋latex工作室,待还愿 Word基础 Word VBA,待还愿 fnF4:重复上一步操作 ctrlY:恢…

视频通话录制 方案 教程

一些基本概要 1 市面流行的音视频产品,都包含一对一、一对多、多对多通话,云端录制等这些基本功能,有些厂商支持本地服务录制。 2 本地服务录制,云端录制区别 两个录制区别在于,本地服务端录制的 SDK 要求部署在 …

简易机器学习笔记(八)关于经典的图像分类问题-常见经典神经网络LeNet

前言 图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层次视觉任务的基础。图像分类在许多领域都有着广泛的应用,如:安防领域的人脸识别和…

对技术行业的深度思考

技术行业是当今世界最为热门和发展迅猛的领域之一。无论是互联网、人工智能还是区块链,技术的快速发展正在改变着我们的生活和社会。然而,我们是否真正思考过技术在我们生活中的影响和意义?本文将对技术行业展开深度思考,探讨其带…

LAMP平台搭建

目录 LAMP平台概述 1、Apache 网站服务基础 1.1、Apache 简介 (1)Apache 的起源 (2)Apache 的主要特点 1.2、安装 httpd 服务器 (1)准备工作 (2)源码编译及安装 &#…

【MySQL】MySQL如何查询和筛选存储的JSON数据?

MySQL如何查询和筛选存储的JSON数据? 一、背景介绍二、支持的JSON数据类型三、基础数据3.1 创建表3.2 插入 JSON 数据3.3 查询 JSON 数据 四、操作函数4.1 JSON_OBJECT4.2 JSON_ARRAY4.3 JSON_EXTRACT 一、背景介绍 JSON(JavaScript Object Notation)是一种轻量级的…

文心一言 VS 讯飞星火 VS chatgpt (171)-- 算法导论13.2 4题

四、用go语言,证明:任何一棵含n个结点的二叉搜索树可以通过 O(n)次旋转,转变为其他任何一棵含n个结点的二叉搜索树。(提示:先证明至多n-1次右旋足以将树转变为一条右侧伸展的链。) 文心一言: 这是一个有趣的问题&…

【JUC】Volatile关键字+CPU/JVM底层原理

Volatile关键字 volatile内存语义 1.当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 2.当读一个volatile变量时,JMM会把该线程对应的本地内存设置为无效,直接从主内存中读取共享变量 所以volatile…