当前位置: 首页 > 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

相关文章:

  • MySQL视图索引执行计划相关十五道面试题分享
  • 1、Excel工作场景和知识点总结
  • Liunx安装FTP和SFTP
  • MySQL数据库进阶-事务
  • 论文阅读记录SuMa SuMa++
  • rust中Atomic Ordering含义总结
  • Docker 镜像以及镜像分层
  • AI绘画Midjourney绘画提示词Prompt大全
  • Nougat:科学文档的OCR 使用记录
  • 12月笔记
  • 软件测试|Linux下Python安装配置指南
  • Parallels虚拟机启动后,Mac主机无法上网怎么办
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南
  • 力扣(leetcode)第482题密钥格式化(Python)
  • 71内网安全-域横向网络传输应用层隧道技术
  • 【LLM】大型语言模型:2023年完整指南
  • 【STM32】STM32学习笔记-ADC单通道 ADC多通道(22)
  • 网络安全(黑客)—2024自学
  • 渗透第四天 (抽空再看一天 )
  • 游戏进度恢复--备忘录模式
  • 第十一届世界雷达展开幕,尖端装备、“大国重器”集中亮相
  • 公示资费套餐、规范营销行为,今年信息通信行业将办好这十件实事
  • 官方通报汕头违建豪宅“英之园”将强拆:对有关人员严肃追责问责
  • 世界数字教育大会发布“数字教育研究全球十大热点”
  • 海昏侯博物馆展览上新,“西汉帝陵文化展”将持续展出3个月
  • 舱位已排到月底,跨境电商忙补货!美线订单大增面临爆舱,6月运价或翻倍