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

C# winform部署yolo26-pose姿态估计关键点的onnx模型演示源码+模型+说明

yolo26已经正式发布了,因此使用C#代码实现YOLO26-pose姿态估计的onnx模型部署,首先看yolo11n-pose网络结构,发现输出shape是1x56x8400

再来看看yolo26n-pose网络结构输出,输出shape是1x300x57

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

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

最后测试效果:

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

相关文章:

  • VAOne测量两个节点之间的距离
  • 深度测评研究生必用8款一键生成论文工具
  • 多智能体架构选型攻略:从单Agent到复杂系统的演进之路(建议收藏)
  • AIGNE框架:基于文件系统抽象的大模型上下文工程解决方案
  • 芒格的“关键少数“原则在量子科技人才投资中的应用
  • 大模型完整学习路线图:从入门到精通_大模型学习路线(2026最新)
  • 数据建模在大数据领域的金融风险评估应用
  • 01-15 11:29:05.724 21988 21988 E Zygote : java.lang.IllegalStateException: Signature|privileged perm
  • VLMEvalKit:大模型评测神器,一行命令让AI排队“考试“
  • Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)
  • RAG评估完整指南:12个核心指标+5步落地流程,让你的检索增强生成系统不再“答非所问“
  • 告别AI agent“金鱼脑“!CaveAgent框架让你的AI过目不忘,效率翻倍
  • “亿” 马当先 乘风而起 | 世冠科技 2026 主题年会精彩回顾
  • AIGC检测过不了?收藏这份降AI工具红黑榜就够了
  • 救命神器!专科生毕业论文必备TOP8 AI论文平台测评
  • 大模型学习路线图:程序员必备收藏,从入门到实战全覆盖_大模型学习路线(2026最新)
  • 论文AI率飙到80%别慌!这5款神器帮你稳稳降到安全线
  • 论文AI率90%怎么办?这5个工具帮你轻松降到10%以下
  • RAG评估方法:优化检索增强生成系统的关键技术(值得收藏)
  • 2026年中文论文降AI工具TOP10排行榜,第一名意外了
  • 《智能体设计模式》21种实战指南+代码示例:从入门到精通构建大模型系统(建议收藏)
  • 户外机柜吊耳螺丝防水防生锈设计
  • 学姐私藏:6款免费降AI工具推荐,最后一个用过都说好
  • 微通道散热器:传统设计真的过时了吗?
  • 保姆级教程:DeepSeek写的论文怎么把AI率从80%降到5%
  • DALI加速医疗影像预处理
  • VP引导定位软件-平移九点标定TB
  • 救命神器10个AI论文网站,MBA轻松搞定毕业论文!
  • AIGC检测率太高?2026年口碑最好的降AI工具盘点
  • 创作生命力与个体价值:基于AI大模型、AI智能名片与商城小程序的视角