当前位置: 首页 > news >正文

C# winform部署yolo26-seg实例分割的onnx模型演示源码+模型+说明

yolo26已经正式发布了,因此使用C#代码实现YOLO26-seg实例分割部署,首先看yolov11-seg网络结构,发现输出shape是1x116x8400

再来看看yolo26-seg网络结构输出,输出shape是1x300x38

可见yolo11和yolo26输出是不一样的是不能共用代码。

模型使用官方yolo26n-seg.pt转换成的onnx,转换命令
yolo export model=yolo26n-seg.pt format=onnx opset=12
如果你是自己训练的模型可以替换即可,但是需要yolo26-seg框架才行
测试环境:
vs2019
CPU推理,无需安装cuda+cudnn
onnxruntime==1.22.1
opecvsharp==4.11.0
.net framework4.8.0
ultralytics==8.4.0

实现界面代码和调用代码:

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 { OpenCvSharp.Mat src = new OpenCvSharp.Mat(); Yolo26SegManager ym = new Yolo26SegManager(); 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\\yolo26n-seg.onnx", Application.StartupPath + "\\weights\\labels.txt"); } private void btn_video_Click(object sender, EventArgs e) { var detector = new Yolo26SegManager(); detector.LoadWeights(Application.StartupPath + "\\weights\\yolo26n-seg.onnx", Application.StartupPath + "\\weights\\labels.txt"); VideoCapture capture = new VideoCapture(0); if (!capture.IsOpened()) { Console.WriteLine("video not open!"); return; } Mat frame = new Mat(); var sw = new Stopwatch(); int fps = 0; while (true) { capture.Read(frame); if (frame.Empty()) { Console.WriteLine("data is empty!"); break; } sw.Start(); var result = detector.Inference(frame); var resultImg = detector.DrawImage(frame,result); sw.Stop(); fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds); sw.Reset(); Cv2.PutText(resultImg, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3); //显示结果 Cv2.ImShow("Result", resultImg); int key = Cv2.WaitKey(10); if (key == 27) break; } capture.Release(); } } }

最后测试效果:

源码地址:https://download.csdn.net/download/FL1623863129/92562482

http://www.jsqmd.com/news/248827/

相关文章:

  • 解读GB/T4857.5跌落测试标准 助力医药包装NMPA注册合规
  • 适合PPT汇报的扁平化图片素材哪里找?10个优质网站推荐!
  • 2026精选10个商业海报背景图网站:设计师必藏!
  • 基于MATLAB Simulink R2015b平台的三相感应电机动态仿真建模与性能分析
  • 吐血推荐8个一键生成论文工具,研究生轻松搞定论文写作!
  • 阿德勒《自卑与超越》深度解读:于自卑中寻路,在合作中超越
  • 救命神器9个AI论文网站,专科生毕业论文格式规范+写作神器推荐!
  • 技术领先!优化电商系统源码,系统支持H5、公众号、移动端、平板、各种小程序
  • 电商源码系统集成海量促销功能,引爆销售增长
  • 【48】无人机数据集(有v5/v8模型)/YOLO无人机检测
  • 为什么本应比大多数人更擅长写作的人文学科教授,经常写出不知所云的东西呢?
  • 深度测评!研究生必备10款AI论文软件:开题报告到毕业论文全解析
  • 设计和开发基于大语言模型的AI应用系统
  • Notepad++无捆绑下载+超详细下载安装教程步骤(附加安装包下载)
  • django-flask基于python的大学生兼职系统
  • OpenLayers 框架核心概念全解析
  • 从农田到矿井:LoRa多参量传感器如何成为工业物联网的“通用感知节点”?
  • Python 的常用开发工具
  • 基于 YOLOv8 的 X 光安检图像违禁品智能识别系统 [目标检测完整源码]
  • 面向智能工地的钢筋视觉检测实践:基于 YOLOv8 的识别与计数系统设计【完整源码】
  • django-flask基于python的大学自动排课系统的设计与实现
  • 基于YOLOv8的空中异物识别系统-智能输电线路隐患检测 [目标检测完整源码]
  • WebGIS开发学习资源推荐
  • django-flask基于python的大棚蔬菜成熟预测与水果采摘预约系统
  • UUID函数的使用
  • 基于 YOLOv8 的无人机城市交通多目标检测系统 [目标检测完整源码]
  • 安全扫描器漏检97%的AI生成后门:现代开发流程的隐形危机
  • 智能合约重入攻击防护验证:测试从业者的全面指南
  • 无人机群控系统抗干扰测试技术白皮书
  • 数字人民币双离线支付技术原理与测试挑战