news 2026/4/18 14:08:52

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

作者头像

张小明

前端开发工程师

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

最后测试效果:

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

一文搞懂大模型剪枝

一、什么是大模型剪枝? 通俗来讲,大模型剪枝就是识别并移除模型中“没用”或“用处极小”的部分,这些被移除的部分就是模型的“冗余成分”。 我们可以把大模型想象成一个精密的工厂,里面有无数条生产线(对应模型的层、…

作者头像 李华
网站建设 2026/4/16 4:26:13

深度测评研究生必用8款一键生成论文工具

深度测评研究生必用8款一键生成论文工具 2026年研究生论文写作工具测评:精准匹配学术需求的高效助手 在当前学术研究日益精细化、智能化的背景下,研究生群体对论文写作工具的需求也愈发多元化。从选题构思到文献综述,从内容生成到格式排版&am…

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

RAG评估方法:优化检索增强生成系统的关键技术(值得收藏)

本文详细介绍了RAG(检索增强生成)系统的评估方法,包括检索评估(精确度、召回率、F1分数)和响应评估(忠实度、答案相关性)两大核心指标,以及人工与自动化评估方法。重点讲解了两个实用…

作者头像 李华
网站建设 2026/4/17 23:02:32

VP引导定位软件-平移九点标定TB

VP引导定位软件-平移九点标定TB一 加载图像private void materialButton19_Click(object sender, EventArgs e){OpenFileDialog openFileDialog new OpenFileDialog();if (openFileDialog.ShowDialog() DialogResult.OK){string filePath openFileDialog.FileName;m_ImageFi…

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

Java全栈工程师的面试实战:从基础到高阶的技术对话

Java全栈工程师的面试实战:从基础到高阶的技术对话 面试场景还原:技术与业务的深度融合 今天,我作为一位经验丰富的Java全栈开发工程师,正在参与一场针对互联网大厂的面试。这次面试的候选人是一位28岁的硕士毕业生,拥…

作者头像 李华
网站建设 2026/4/17 12:30:53

Kimi降AI vs 人工降重:效果、价格、速度三维度横向评测

Kimi降AI vs 人工降重:效果、价格、速度三维度横向评测 TL;DR:Kimi降AI效果有限,AIGC检测指数有时不降反升,因为AI改写依然带有明显的AI痕迹。人工降重效果稳定但耗时长、成本高。综合效果、价格、速度三个维度,专业降…

作者头像 李华