C# OpenVinoSharp PP-TinyPose 人体姿态识别

这篇具有很好参考价值的文章主要介绍了C# OpenVinoSharp PP-TinyPose 人体姿态识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

效果

模型信息

项目

代码

下载 


效果

C# OpenVinoSharp PP-TinyPose 人体姿态识别,AI,C#,OpenVino,C#人体姿态识别,OpenVino

C# OpenVinoSharp PP-TinyPose 人体姿态识别,AI,C#,OpenVino,C#人体姿态识别,OpenVino

模型信息

Inputs
-------------------------
name:image
tensor:Float[1, 3, 256, 192]
---------------------------------------------------------------

Outputs
-------------------------
name:conv2d_441.tmp_1
tensor:Float[1, 17, 64, 48]
name:argmax_0.tmp_0
tensor:Int64[1, 17]
---------------------------------------------------------------

项目

VS2022

.net framework 4.8

OpenCvSharp 4.8

openvino_2023.0.1.11005

C# OpenVinoSharp PP-TinyPose 人体姿态识别,AI,C#,OpenVino,C#人体姿态识别,OpenVino

代码

//推理模型路径中不能不含中文,否则会报错
mode_path_det = Application.StartupPath + @"\TinyPoseModel\picodet_v2_s_320_pedestrian\ir\picodet_s_320_lcnet_pedestrian.xml";
mode_path_pose = Application.StartupPath + @"\TinyPoseModel\tinypose_256_192\tinypose_256_192.onnx";

//设备名称
device_name = "CPU";
//行人区域检测
pico_det = new PicoDet(mode_path_det, device_name);
//人体姿势检测
tiny_pose = new PPTinyPose(mode_path_pose, device_name);


image = Cv2.ImRead(image_path);

OpenCvSharp.Size size_det = new OpenCvSharp.Size(320, 320);
pico_det.set_shape(size_det, 2125);

dt1 = DateTime.Now;
List<Rect> result_rect = pico_det.predict(image);

//人体姿势检测
OpenCvSharp.Size size_pose = new OpenCvSharp.Size(256, 192);
tiny_pose.set_shape(size_pose);

List<Rect> point_rects;
List<Mat> person_rois = tiny_pose.get_point_roi(image, result_rect, out point_rects);

for (int p = 0; p < person_rois.Count; p++)
{
    // 关键点识别
    float[,] person_point = tiny_pose.predict(person_rois[p]);
    tiny_pose.draw_poses(person_point, point_rects[p], ref image);
}
dt2 = DateTime.Now;

for (int i = 0; i < result_rect.Count; i++)
{
    Cv2.Rectangle(image, result_rect[i], new Scalar(255, 0, 0), 2);
}
pictureBox2.Image = BitmapConverter.ToBitmap(image);
textBox1.Text = "耗时:" + (dt2 - dt1).TotalMilliseconds + "ms";

using OpenCvSharp;
using OpenCvSharp.Extensions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OpenVinoSharp_PP_TinyPose人体姿态识别
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
        string image_path = "";
        String startupPath;
        DateTime dt1 = DateTime.Now;
        DateTime dt2 = DateTime.Now;
        // 行人检测模型
        string mode_path_det;
        // 关键点检测模型
        string mode_path_pose;
        // 设备名称
        string device_name;
        //行人区域检测
        PicoDet pico_det;
        //人体姿势检测
        PPTinyPose tiny_pose;
        Mat image;

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;

            pictureBox1.Image = null;

            image_path = ofd.FileName;
            pictureBox1.Image = new Bitmap(image_path);
            textBox1.Text = "";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            startupPath = Application.StartupPath;

            //推理模型路径中不能不含中文,否则会报错
            mode_path_det = Application.StartupPath + @"\TinyPoseModel\picodet_v2_s_320_pedestrian\ir\picodet_s_320_lcnet_pedestrian.xml";
            mode_path_pose = Application.StartupPath + @"\TinyPoseModel\tinypose_256_192\tinypose_256_192.onnx";

            // 设备名称
            device_name = "CPU";
            //行人区域检测
            pico_det = new PicoDet(mode_path_det, device_name);
            //人体姿势检测
            tiny_pose = new PPTinyPose(mode_path_pose, device_name);
        }


        private void button1_Click(object sender, EventArgs e)
        {
            tiny_pose_image();
        }


        public void tiny_pose_image()
        {
            if (image_path == "")
            {
                return;
            }

            image = Cv2.ImRead(image_path);

            OpenCvSharp.Size size_det = new OpenCvSharp.Size(320, 320);
            pico_det.set_shape(size_det, 2125);

            dt1 = DateTime.Now;
            List<Rect> result_rect = pico_det.predict(image);

            //人体姿势检测
            OpenCvSharp.Size size_pose = new OpenCvSharp.Size(256, 192);
            tiny_pose.set_shape(size_pose);

            List<Rect> point_rects;
            List<Mat> person_rois = tiny_pose.get_point_roi(image, result_rect, out point_rects);

            for (int p = 0; p < person_rois.Count; p++)
            {
                // 关键点识别
                float[,] person_point = tiny_pose.predict(person_rois[p]);
                tiny_pose.draw_poses(person_point, point_rects[p], ref image);
            }
            dt2 = DateTime.Now;

            for (int i = 0; i < result_rect.Count; i++)
            {
                Cv2.Rectangle(image, result_rect[i], new Scalar(255, 0, 0), 2);
            }
            pictureBox2.Image = BitmapConverter.ToBitmap(image);
            textBox1.Text = "耗时:" + (dt2 - dt1).TotalMilliseconds + "ms";
        }
    }
}

下载 

exe程序下载

完整Demo下载文章来源地址https://www.toymoban.com/news/detail-704125.html

到了这里,关于C# OpenVinoSharp PP-TinyPose 人体姿态识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习之基于Yolov5人体姿态摔倒识别分析报警系统(GUI界面)

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。   系统设计概述: 传感器采集:通过在场景中布置摄像头或红外传感器等设备,采集人体姿态数据,包括人体位置、姿态、运动轨迹等信息。 数据预处理:对采集到的数据进行预处理,包括图

    2024年02月05日
    浏览(45)
  • C# OpenCvSharp Yolov8 Pose 姿态识别

    目录 效果 项目 模型信息 代码 下载  VS2022 .net framework 4.8 OpenCvSharp 4.8 Microsoft.ML.OnnxRuntime 1.16.2 Model Properties ------------------------- date:2023-09-07T17:11:43.091306 description:Ultralytics YOLOv8n-pose model trained on /usr/src/app/ultralytics/datasets/coco-pose.yaml author:Ultralytics kpt_shape:[17, 3] task:pose l

    2024年02月07日
    浏览(38)
  • 3D人体姿态估计

    3D人体姿态估计是指通过算法对输入的图像或视频进行分析,推断出人体的三维姿态信息。该技术可以应用于许多领域,如虚拟现实、运动分析、人机交互等。 1. 算法原理: 3D人体姿态估计利用深度学习模型作为算法的核心,通过网络学习人体姿态的表示和映射关系。该算法

    2024年02月03日
    浏览(43)
  • 基于视频的人体姿态检测

    基于视频的人体姿态检测 设计目的和要求 1.根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方法的有效性,完成系统软件设计。 2.基本教学要求:每

    2024年01月24日
    浏览(51)
  • 人体姿态估计和手部姿态估计任务中神经网络的选择

    一、 人体姿态估计 任务适合使用 卷积神经网络(CNN) 来解决。         人体姿态估计任务的目标是从给定的图像或视频中推断出人体的关节位置和姿势。这是一个具有挑战性的计算机视觉任务,而CNN在处理图像数据方面表现出色。         使用CNN进行人体姿态估计

    2024年02月05日
    浏览(41)
  • 【姿态估计】MediaPipe部分solution(手势,人体姿态,面部动作)的用法

    Mediapipe介绍 MediaPipe是个基于图形的跨平台框架,用于构建多模式应用的机器学习管道。 MediaPipe可在移动设备,工作站和服务器上跨平台运行,并支持移动GPU加速。使用MediaPipe,可以将应用的机器学习管道构建为模块化组件的图形。 MediaPipe专为机器学习从业者而设计包括研究

    2024年02月01日
    浏览(85)
  • Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    1、人体姿态估计简介 2、人体姿态估计数据集 3、OpenPose库 4、实现原理 5、实现神经网络 6、实现代码 人体姿态估计(Human Posture Estimation),是通过将图片中已检测到的人体关键点正确的联系起来,从而估计人体姿态。 人体关键点通常对应人体上有一定自由度的关节,比如颈、

    2024年02月04日
    浏览(46)
  • 基于matlab视频的人体姿态检测

    设计目的和要求 1.根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方法的基于MATLAB的人体姿态 设计原理 首先利用统计的方法得到背景模型,并实时

    2024年02月02日
    浏览(49)
  • CVPR2023新作:3D人体姿态估计

    Title: 3D Human Pose Estimation via Intuitive Physics Affiliation: Max Planck Institute for Intelligent Systems, Tübingen, Germany Authors: Shashank Tripathi, Lea Müller, Chun-Hao P. Huang, Omid Taheri, Michael J. Black, Dimitrios Tzionas Keywords: 3D human pose estimation, physics engine, intuitive-physics terms, pressure heatmap, stable configuration. Su

    2024年02月16日
    浏览(39)
  • Python Opencv实践 - 人体姿态检测

            本文仍然使用mediapipe做练手项目,封装一个PoseDetector类用作基础姿态检测类。         mediapipe中人体姿态检测的结果和手部跟踪检测的结果是类似的,都是输出一些定位点,各个定位点的id和对应人体的位置如下图所示:         关于mediapipe的pose解决方案类更详细

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包