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

[C#]winform部署官方yolov11-obb旋转框检测的onnx模型

【官方框架地址】

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

Yolov11-obb(You Only Look Once version 8 with Oriented Bounding Boxes)是一种先进的对象检测算法,它在传统的Yolov3和Yolov4基础上进行了优化,加入了OBB(Oriented Bounding Box)旋转框检测,能够更精确地检测并定位出目标物体的位置。

在传统的目标检测算法中,通常使用的是固定方向的边界框(Bounding Box),它假设所有物体在图像中的位置都是相对于图像中心来计算的。然而,这种假设并不总是成立,尤其在处理具有明显方向特征的物体时,固定方向的边界框就无法准确地定位物体的真实位置。

Yolov11-obb通过引入OBB旋转框检测,解决了这一问题。它允许边界框以任意角度存在,更能适应不同方向的目标物体。此外,Yolov11-obb还采用了一种称为“anchor”的机制,通过预设一系列不同大小和方向的锚点框,来逼近真实的物体位置。这种机制不仅提高了检测精度,还大大减少了需要训练的参数数量,提高了算法的效率。

除了旋转框检测,Yolov11-obb还在骨干网络、特征金字塔网络、分类器和回归器等方面进行了优化。例如,它采用了CSPDarknet53作为骨干网络,增强了特征提取能力;采用了多尺度特征融合策略,提高了对不同尺度目标的检测能力;采用了新的非极大值抑制算法,进一步筛选出最有可能的物体位置。

总的来说,Yolov11-obb通过引入旋转框检测和一系列优化策略,提高了目标检测的精度和效率,为计算机视觉领域带来了新的突破。

【效果展示】


【实现部分代码】

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{Bitmap src = null;Yolov11ObbManager detector = null;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 = new Bitmap(openFileDialog.FileName);pictureBox1.Image = src;}}private void button2_Click(object sender, EventArgs e){if(pictureBox1.Image==null){return;}var result = detector.Inference(src);var resultImg = detector.DrawImage(src, result);pictureBox2.Image = resultImg;}private void Form1_Load(object sender, EventArgs e){detector = new Yolov11ObbManager(Application.StartupPath+"\\weights\\yolo11n-obb.onnx", Application.StartupPath + "\\weights\\labels.txt");}private void button3_Click(object sender, EventArgs e){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 bmp = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(frame);var result = detector.Inference(bmp);var resultImg = detector.DrawImage(bmp, result);sw.Stop();fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds);sw.Reset();frame = OpenCvSharp.Extensions.BitmapConverter.ToMat(new Bitmap(resultImg));Cv2.PutText(frame, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3);//显示结果Cv2.ImShow("Result", frame);int key = Cv2.WaitKey(10);if (key == 27)break;}capture.Release();}}
}

【视频演示】

C# winform部署yolov11-obb旋转框检测onnx模型_哔哩哔哩_bilibili【测试环境】vs2019,netframework4.7.2,onnxruntime1.16.3更多信息和源码下载参考博文:https://blog.csdn.net/FL1623863129/article/details/142719514, 视频播放量 0、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1em1oYTEFU/
【测试环境】

vs2019,netframework4.7.2,onnxruntime1.16.3

【完整源码下载】

https://download.csdn.net/download/FL1623863129/89848988

http://www.lryc.cn/news/454528.html

相关文章:

  • 【GC日志和OOM日志分析】JVM GC日志和OOM Dump文件分析
  • 【电路】1.1 实际电路和电路模型
  • Vue - 打包部署
  • spring揭秘25-springmvc03-其他组件(文件上传+拦截器+处理器适配器+异常统一处理)
  • springboot项目中属性的使用优先级;maven编译插件切换环境变量
  • 【Qt】控件概述 (1)—— Widget属性
  • (笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第3关---浦语提示词工程实践
  • OpenCV视频I/O(11)视频采集类VideoCapture之设置视频捕获设备的属性函数 set()的使用
  • 数据结构之树(3)
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下docker学习02(yum源切换及docker安装配置)
  • 强化学习笔记之【Q-learning算法和DQN算法】
  • 面试经验02
  • 分层图 的尝试学习 1.0
  • 第 31 章 javascript 之 XPath
  • JavaScript中的高阶函数
  • Qt6.7开发安卓程序间接连接到MySQL的方法
  • ROW_NUMBER
  • Docker技术
  • 中小企业做网站需要考虑哪些因素?
  • 【d60】【Java】【力扣】509. 斐波那契数
  • 项目-坦克大战学习-游戏结束
  • MySQL基础之约束
  • 2024新版IDEA创建JSP项目
  • Conda创建,打包,删除环境相关及配置cuda
  • Linux和指令初识
  • Vortex GPGPU的github流程跑通与功能模块波形探索(二)
  • 【X线源】微焦点X射线源的基本原理
  • LeetCode hot100---栈专题(C++语言)
  • STM32-MPU6050+DAM库源码(江协笔记)
  • Ruby 数组(Array)