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

C#使用纯OpenCvSharp部署yolov8-pose姿态识别

【源码地址】 

github地址:https://github.com/ultralytics/ultralytics

【算法介绍】

Yolov8-Pose算法是一种基于深度神经网络的目标检测算法,用于对人体姿势进行准确检测。该算法在Yolov8的基础上引入了姿势估计模块,通过联合检测和姿势估计的方式来实现准确的姿势检测。

Yolov8-Pose算法的基本思想是将姿势检测任务转化为多个关键点的检测任务。人体姿势可以看作是由多个关键点组成的,例如头部、肩膀、手肘、手腕等。Yolov8-Pose算法通过在Yolov8的基础上增加额外的关键点检测层,来实现对这些关键点的检测和定位。

Yolov8-Pose算法的网络结构是在Yolov3的基础上进行改进和优化得到的。它采用了Darknet作为主干网络,并在其上添加了一系列的卷积层、上采样层和连接层,以提取更丰富的特征信息。同时,为了实现人体姿态点的检测和估计,Yolov8-Pose在输出层上引入了关键点检测的任务分支。

通过以上原理,Yolov8-Pose算法能够在保持检测速度的同时,实现对人体姿势的准确检测,从而在人体姿态估计领域具有一定的应用价值。

【效果】

【部分实现代码】

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{Mat src = new Mat();Yolov8PoseManager ypm = new Yolov8PoseManager();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 = ypm.Inference(src);sw.Stop();this.Text = "耗时" + sw.Elapsed.TotalSeconds + "秒";var resultMat = ypm.DrawImage(src,result);pictureBox2.Image= OpenCvSharp.Extensions.BitmapConverter.ToBitmap(resultMat); //Mat转Bitmap}private void Form1_Load(object sender, EventArgs e){ypm.LoadWeights(Application.StartupPath+ "\\weights\\yolov8n-pose.onnx");}private void btn_video_Click(object sender, EventArgs e){}}
}

【测试环境】

vs2019

net framework4.7.2

【视频演示】

bilibili.com/video/BV1T64y1E7ws/

【源码下载地址】

download.csdn.net/download/FL1623863129/88691350

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

相关文章:

  • [AutoSar]基础部分 RTE 04 数据类型的定义及使用
  • c#调试程序一次启动两个工程(多个工程)
  • 轻松搭建企业知识库:10款必备工具推荐
  • 第三天学习记录
  • 内核线程创建-kthread_create
  • uniappVue3版本中组件生命周期和页面生命周期的详细介绍
  • 任务驱动式编程
  • python数据可视化之折线图案例讲解
  • QT工具栏开始,退出
  • @Async正确使用姿势
  • 试除法判定质数算法总结
  • vuetify 回到顶部
  • Socket与TCP的关系
  • RKE安装k8s及部署高可用rancher之证书私有证书但是内置的ssl不放到外置的LB中 4层负载均衡
  • 使用爬虫爬取热门电影
  • 【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果
  • C语言基础知识(6):UDP网络编程
  • 12月笔记
  • 三、C语言中的分支与循环—for循环 (6)
  • tolist()读取Excel列数据,(Excel列数据去重后,重新保存到新的Excel里)
  • ChatGPT大升级,文档图像识别领域迎来技术革新
  • 2023年全国职业院校技能大赛软件测试—测试报告模板参考文档
  • 【BCC动态跟踪PostgreSQL】
  • 汽车架构解析:python cantools库快速解析arxml
  • Vue 之 修饰符汇总
  • 如何通过内网穿透实现无公网IP远程访问内网的Linux宝塔面板
  • 综合跨平台全端ui自动化测试框架Airtest——AirtestIDE录制微信小程序脚本教学
  • 如何在ArcGIS Pro中指定坐标系
  • macOS 老版本系统恢复中出现“MacBook Pro无法与恢复服务器取得联系”
  • [C#]使用OpenCvSharp实现二维码图像增强超分辨率