news 2026/4/24 22:13:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 21:36:45

适合PPT汇报的扁平化图片素材哪里找?10个优质网站推荐!

很多小伙伴在准备PPT汇报时,都会为找不到合适的图片素材而头疼。太复杂的图片容易分散观众注意力,太普通的又显得缺乏专业感。而扁平化设计的图片凭借简洁的线条、明快的色彩和极简的风格,正好能解决这个问题——它们既能突出重点&#xff0c…

作者头像 李华
网站建设 2026/4/22 17:11:09

2026精选10个商业海报背景图网站:设计师必藏!

对于设计师来说,找一张合适的商业海报背景图简直是日常工作中的“小难题”——既要高清美观,又要符合品牌调性,最好还能免费商用。尤其是在商业场景下,背景图的选择直接影响海报的传播效果和品牌形象。今天,我们就来盘…

作者头像 李华
网站建设 2026/4/18 7:42:47

django-flask基于python的城中村民宿租赁管理系统

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着城市化进程加快,城中村民宿租赁市场逐渐兴起,传统管理方式效率低下且难以满足现代需求。基…

作者头像 李华
网站建设 2026/4/19 1:35:36

django-flask基于python的大棚蔬菜成熟预测与水果采摘预约系统

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着智慧农业的发展,利用现代技术提升农业生产效率成为研究热点。基于Python的Django-Flask框架&#xff…

作者头像 李华
网站建设 2026/4/19 12:31:34

为什么企业级环境监测正全面转向LoRa多参量无线传感系统?

在工业4.0与“双碳”目标双重驱动下,环境参数的实时、精准、低成本采集已成为智能工厂、智慧农业、危化品管理等场景的核心需求。然而,传统有线传感器或单一功能无线节点,在复杂部署环境下面临布线难、功耗高、扩展性差等瓶颈。近年来&#x…

作者头像 李华