[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();
        Yolov8SegManager ym = new Yolov8SegManager();
        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\\yolov8s-seg.onnx", Application.StartupPath + "\\weights\\labels.txt");

        }

        private void btn_video_Click(object sender, EventArgs e)
        {
        
  
        }
    }
}


【视频演示】

https://www.bilibili.com/video/BV1fe411S7ag/
【源码下载】
【测试环境】

vs2019

netframework4.8

opencvsharp4.8.0

opencvsharp

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS-ArkTS基本语法及声明式UI描述

初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,建议开发者具备TS语…

基于springboot的火锅店管理系统设计与实现

🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅一 、设计说明 1.1选题动因 当前…

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

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

每周一算法:倍增法查找位置

倍增法 倍增法(Binary Lifting),顾名思义,就是利用“以翻倍的速度增长”的思想来解决问题的一类算法。 下面介绍如何使用倍增法在有序的序列中查找满足条件的位置。 题目描述 给定一个单调不降的序列,以及 m m m个…

三、C语言中的分支与循环—for循环 (6)

本章分支结构的学习内容如下: 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句(4)分支结构 完 本章循环结构的…

缓存和数据库,1+1如何大于2?

一、缓存的本质 缓存,简单说就是为了节约对原始资源重复获取的开销,而将结果数据副本存放起来以供获取的方式。 首先,缓存往往针对的是“资源”。我们前面已经多次提到过,当某一个操作是"幂等"的和“安全"的&#…

从传统到现代:知识服务如何被数字化工具重新定义

随着数字技术的快速发展,教育行业正在经历一场前所未有的变革。乔拓云作为知识产品与用户服务的数字化工具,以其卓越的技术实力和创新能力,引领着这场变革。 乔拓云开发的教育系统,为广大知识分享博主提供了一个全新的舞台。这个系…

【springboot实现CURD模版项目-Jesus】

springboot实现CURD模版项目-Jesus STEP 1 项目创建 1.1 新建Spring Initializr项目   1.2 选择需要的依赖 springboot有2.7.2直接选272STEP 2 配置更改 2.1更改maven配置   2.2 检查项目配置jdk、sdk、jre版本一致   2.3 检查pom文件,Maven-Reload project构…

数据库02-06 形式化

01. 03. 04. 05. 06. 07. 08. 09.

【Linux Shell】2. Shell 变量

文章目录 【 1. 变量命名规则 】【 2. 变量的使用 】【 3. 只读变量 】【 4. 删除变量 】【 5. 变量类型 】【 6. Shell 字符串 】6.1 字符串的分类6.2 字符串操作 【 7. Shell 数组 】7.1 定义数组7.2 读取数组7.3 获取数组的长度 【 8. Shell 注释 】8.1 单行注释8.2 多行注释…

『开发工具篇』- 配置 gradle 等相关依赖镜像源

『开发工具篇』- 配置 gradle 等相关依赖镜像源 1.更换gradle下载源2. 配置setting.gradlekts文件gradle文件 1.更换gradle下载源 使用腾讯云的镜像库https://mirrors.cloud.tencent.com/gradle/ gradle-x.x-all.zip:编译后的二进制发布版以及源码和文档gradle-x.…

C++面向对象语法总结(二)

目录 《C面向对象语法总结(一)》 十一、继承 继承,可以让子类拥有父类的多有成员(变量、函数)如下面的代码:Student是子类(subclass,派生类),Person是父类(superclass…

感恩客户·持续向上-契约锁电子签章

2023年,电子签章成为组织数字化建设中的刚性需求,市场机遇帮助契约锁实现了产品、伙伴、客户、应用场景等全方位的持续发展。 感恩客户和伙伴的支持,让契约锁在2023年不断成长和进步。 感恩客户相伴成长 2023年,契约锁为“政府机关…

【2024.01.03】转行小白-刷css面试题01

总结 1.margin 负值问题 margin-top 和 margin-left 负值,元素向上、向左移动,自己动margin-right 负值,右侧元素左移,自身不受影响,别人动margin-bottom 负值,下方元素上移,自身不受影响 &am…

虾皮跨境电商选品有哪些规则

如何在虾皮(Shopee)平台上进行跨境电商选品在如今全球化的商业环境中,跨境电商已成为许多卖家拓展业务的重要途径。虾皮(Shopee)作为一家知名的跨境电商平台,为卖家提供了丰富的销售机会。然而,…

C++八股学习心得.3

1.C 数组 C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个…

图像识别原理

图像识别是计算机视觉领域中的一个重要任务,其目标是使计算机系统能够理解和解释图像中的信息。以下是图像识别的基本原理: 1. 数据采集:首先,需要获取图像数据。这可以通过摄像头、传感器、扫描仪等设备来实现。图像可以是静态的…

专访 | STIF2023第四届国际科创节访第七在线CEO赵嘉程

12月15日,在STIF2023第四届国际科创节暨数服会上,第七在线获得年度数智化创新典范奖,第七在线CEO赵嘉程在颁奖典礼现场接受了媒体专访。 主持人:赵总,您好,欢迎您接受我们的专访,首先我们特别想…

业务中台-UAT测试用例示例

今天我来和大家分享一下我们在业务中台UAT测试用例的案例,这个案例的编写方式是参考了其他项目来编写的。这个测试用例主要分为两个部分:用例目录和测试具体内容。 对于UAT测试用例,我们理解应该存在两种不同的编写方式,一种是功…

为自己办一场个展和你的2023告别,上传图片就能生成720云3D线上展厅

来和你的2023告个别吧。只需上传图片并选择一个漂亮的3D展厅,就能生成你的专属展览。在这里,你可以回顾手机里的精彩瞬间,分享你的美好生活或是你的摄影大片、书画作品,也可以是任何值得纪念的瞬间。 通过720云3D空间漫游模板&…