news 2026/4/28 3:44:58

C# winform部署yolo26-obb旋转框检测的onnx模型演示源码+模型+说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# winform部署yolo26-obb旋转框检测的onnx模型演示源码+模型+说明

yolo26已经正式发布了,因此使用C#代码实现YOLO26-obb旋转框检测的onnx模型部署,首先看yolo11n-obb网络结构,发现输出shape是1x20x21504

再来看看yolo26n-obb网络结构输出,输出shape是1x300x7

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

模型使用官方yolo26n-obb.pt转换成的onnx,转换命令
yolo export model=yolo26n-obb.pt format=onnx opset=12
如果你是自己训练的模型可以替换即可,但是需要yolo26-obb框架才行
测试环境:
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(); Yolo26ObbManager ym = new Yolo26ObbManager(); 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-obb.onnx"); } private void btn_video_Click(object sender, EventArgs e) { var detector = new Yolo26ObbManager(); detector.LoadWeights(Application.StartupPath + "\\weights\\yolo26n-obb.onnx"); 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(); } } }

最后测试效果:

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

让旧Mac焕发新生:OpenCore Legacy Patcher实战指南

让旧Mac焕发新生:OpenCore Legacy Patcher实战指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher "我的2013款MacBook Pro明明性能还很好,为…

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

Modbus协议集成:上位机软件开发图解说明

从零构建工业监控系统:Modbus协议与上位机开发实战指南你有没有遇到过这样的场景?车间里十几台设备来自不同厂家,PLC品牌五花八门,通信接口各不相同。你想做一个集中监控界面,结果发现每台设备都要写一套通信代码——有…

作者头像 李华
网站建设 2026/4/23 15:44:33

鸿蒙阅读器终极配置指南:从零搭建无广告数字书房

鸿蒙阅读器终极配置指南:从零搭建无广告数字书房 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 还在为各类阅读应用层出不穷的广告而烦恼吗?鸿蒙版开源阅读器为你提供完全自主…

作者头像 李华
网站建设 2026/4/26 15:46:34

开源阅读鸿蒙版:5步打造零广告的个性化阅读空间

开源阅读鸿蒙版:5步打造零广告的个性化阅读空间 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 你是否厌倦了传统阅读应用无休止的广告弹窗和内容限制?是否渴望拥有一个完全按…

作者头像 李华
网站建设 2026/4/23 1:20:12

LMStudio如何运行Qwen2.5-0.5B?桌面端免配置实战指南

LMStudio如何运行Qwen2.5-0.5B?桌面端免配置实战指南 1. 引言:为什么选择Qwen2.5-0.5B-Instruct? 在边缘计算和本地AI推理需求日益增长的今天,开发者和终端用户都迫切需要一个轻量、快速、功能完整的小模型解决方案。通义千问推出…

作者头像 李华
网站建设 2026/4/27 20:02:20

AI读脸术社区安防应用:独居老人监测系统部署案例

AI读脸术社区安防应用:独居老人监测系统部署案例 1. 引言 随着城市化进程加快,独居老人数量逐年上升,如何保障其居家安全成为社区治理的重要课题。传统的人工巡检方式效率低、响应慢,难以满足全天候监护需求。近年来&#xff0c…

作者头像 李华