C# OpenVino Yolov8 Pose 姿态识别

news2025/1/22 13:03:45

效果

项目

代码

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;
using OpenCvSharp;

namespace OpenVino_Yolov8_Demo
{
    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 model_path;
        StringBuilder sb = new StringBuilder();
        Core core;
        Mat image;
        PoseResult result_pro;

        private void button1_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 = "";
            image = new Mat(image_path);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }
            // 配置图片数据
            Mat image = new Mat(image_path);
            int max_image_length = image.Cols > image.Rows ? image.Cols : image.Rows;
            Mat max_image = Mat.Zeros(new OpenCvSharp.Size(max_image_length, max_image_length), MatType.CV_8UC3);
            Rect roi = new Rect(0, 0, image.Cols, image.Rows);
            image.CopyTo(new Mat(max_image, roi));

            float[] result_array = new float[8400 * 56];
            float[] factors = new float[2];
            factors[0] = factors[1] = (float)(max_image_length / 640.0);

            byte[] image_data = max_image.ImEncode(".bmp");
            //存储byte的长度
            ulong image_size = Convert.ToUInt64(image_data.Length);
            // 加载推理图片数据
            core.load_input_data("images", image_data, image_size, 1);

            dt1 = DateTime.Now;
            // 模型推理
            core.infer();
            dt2 = DateTime.Now;

            // 读取推理结果
            result_array = core.read_infer_result<float>("output0", 8400 * 56);

            result_pro = new PoseResult(factors);
            Mat result_image = result_pro.draw_result(result_pro.process_result(result_array), image.Clone());

            pictureBox2.Image = new Bitmap(result_image.ToMemoryStream());
            textBox1.Text = "耗时:" + (dt2 - dt1).TotalMilliseconds + "ms";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            startupPath = System.Windows.Forms.Application.StartupPath;
            model_path = startupPath + "\\yolov8n-pose.onnx";
            core = new Core(model_path, "CPU");
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            core.delet();
        }
    }
}

Demo下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一起解读,从凌乱到智能,两种仓库物流管理的区别

百世慧与达索系统合作&#xff0c;为海量客户提供数字化转型。我们主要围绕仿真驱动创新和数字化精益两个板块进行实施。 在数字化精益板块中&#xff0c;产品全生命周期管理PLM、制造运营系统MOM这两个产品实施过的大型客户有宁德新能源、诺德股份、天津大众、中海寰宇等企业…

React使用useImperativeHandle实现父组件触发子组件事件

相关知识&#xff1a; useImperativeHandle forwardRef 相关代码&#xff1a; 获取子组件实例&#xff0c;由于这是函数组件&#xff0c;没有this因此不能整体获取&#xff0c;我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } fro…

华为“通卫星”,苹果“好奇心”,终端之争供应商受益

9月13日凌晨&#xff0c;苹果新品发布会如期举行&#xff0c;苹果正式发布了包括iPhone 15、15 Plus、15 Pro、15 Pro Max四款机型。 值得一提的是&#xff0c;这场科技界的“春晚”&#xff0c;不再是苹果的独角戏&#xff0c;会后的报道里&#xff0c;彭博社、华尔街日报等一…

Vmware Workstation安装说明

目录 一、下载二、安装 一、下载 下载地址&#xff1a;https://www.vmware.com/cn/products/workstation-pro.html 二、安装 双击下载下来的安装包&#xff0c;按提示一步步操作&#xff1a; 点击【许可证】输入许可证密钥&#xff0c;确认后点击【完成】完成安装。…

常用API(基础)

1.API 1.1 API概述-帮助文档的使用 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&a…

数据结构Map-Set和哈希表

目录 概念 模型 Map Map的常用方法 对于Map的总结 Set Set的常见方法 关于Set的总结 哈希表 概念 冲突 概念 哈希函数设计原则 常见的哈希函数 1.直接定制法(常用) 2.除留余数法(常用) 3.平方取中法 4.折叠法 5.随机数法 6.数学分析法 冲突避免-负载因子调…

【数据库】数据库系统概论(二)— 关系

关系数据库 关系数据库是支持关系模型的数据库系统。 关系模型的数据结构&#xff1a;关系&#xff1b;逻辑结构&#xff1a;扁平的二维表 域 是一组具有相同数据类型的值的集合。 例如&#xff1a;{a,b,c}、{0,1,2,3}等等 笛卡尔积 定义 笛卡尔积是域上的一种集合运算…

抓准时机,成为亚马逊,速卖通,国际站的领军者

下半年即将接踵而至的万圣节、黑色星期五、圣诞节等大型节日&#xff0c;不仅仅是海外消费者的重要消费节假日&#xff0c;也是中国出海企业势在必得的流量战场。 那么对于下半年重头戏&#xff0c;卖家该如何把握好黄金时机&#xff0c;赢得一年大丰收 旺季卖家怎么掠夺竞争…

安达发|APS自动排产软件帮助制造业实现“降本增效”

随着科技的不断发展&#xff0c;制造业在生产过程中所面临的问题也在不断地改变和升级。如今&#xff0c;制造业所面临的生产问题主要包括以下几个方面&#xff1a; 1. 生产效率低下 在传统的制造业中&#xff0c;生产过程往往依赖于人工操作&#xff0c;这导致了生产效率低下的…

紫光展锐5G芯T820 解锁全新应用场景,让机器人更智能

数字经济的持续发展正推动机器人产业成为风口赛道。工信部数据显示&#xff0c;2023年上半年&#xff0c;我国工业机器人产量达22.2万套&#xff0c;同比增长5.4%&#xff1b;服务机器人产量为353万套&#xff0c;同比增长9.6%。 作为国内商用服务机器人领先企业&#xff0c;云…

PMP含金量再升级!北京上海等地可评职称!

最近PMP证书又“升级”了&#xff0c;不过不是证书上的改变&#xff0c;而是含金量在原有基础上又上升了一个档次。 9月4日&#xff0c;北京市人力资源和社会保障局联合北京市人才工作局发布关于印发《北京市境外职业资格认可目录(3.0版)》的通知&#xff0c;PMP项目管理证书也…

实时时钟和日历电路芯片MS85163/MS85163M

MS85163/MS85163M 是一款 CMOS 实时时钟 (RTC) 和 日历电路&#xff0c;针对低功耗进行了优化&#xff0c;内置了可编程的时钟输出、中断输出和低电压检测器。所有寄存器地址和数据都通过两线双向I 2 C 总线进行串行传输&#xff0c;最大总线传输速度为 400kbit/s 。采用SOP8…

02目标检测-传统检测方法

目录 一、目标学习的检测方法变迁及对比 二、 基于传统手工特征的检测算法的定义 三、传统主要手工特征与算法 Haar特征与 人脸检测算法 - Viola-Jones(了解) HOG特征与 SVM 算法(了解)&#xff08;行人检测、opencv实现&#xff09; SIFT特征与SIFT算法(了解) DPM&#…

mysql数据库的全量与增量的备份以及恢复

目录 一、全量备份与恢复 1.全量备份 2.删掉某个数据库 3.全量恢复数据库 二、增量备份与恢复 1.查看增量是否开启&#xff0c;我们发现log_bin开启证明开启了 2.创建一个数据库并创建表中信息 3.插入数据 4.进行一次全量的备份 5.做完备份刷新一下数据库&#xff0c;…

(UI资源)4k Full Fantasy GUI + over 400 png + samples

资源包含超400个4k高清png文件 窗口资源包含:登录、角色创建、探索日志、库存、商店、设定、手工艺、NPC对话、技能、6个弹出窗口 72个独特的图标 4种颜色主题的56个图标 按钮:大按钮(3种色)、小按钮(5种颜色)、复选框和单选按钮 其他要素 使用简单的填充脚本轻松自定义健康与…

【多线程】常见的几种锁策略以及synchronized的锁策略

目录 一、乐观锁与悲观锁 二、读写锁与互斥锁 三、轻量级锁与重量级锁 四、自旋锁与挂起等待锁 五、公平锁与非公平锁 六、synchronized锁策略 1、锁升级 2、锁消除 3、锁粗化 一、乐观锁与悲观锁 乐观锁与悲观锁描述了两种不同的加锁态度&#xff0c;乐观锁就预测锁冲…

怎么为Web服务器配置虚拟主机?【步骤演示】

在安装了Web服务器Apache后&#xff0c;为了更好地使用Apache&#xff0c;还需要学习如何对Apache进行配置。在项目开发中&#xff0c;经常需要配置虚拟主机和访问权限&#xff0c;下面对Web服务器的配置进行详细讲解。 配置虚拟主机 在默认情况下&#xff0c;Apache只有Chwe…

Detectron2 安装踩坑

在服务器上安装Detectron2&#xff1a; 设备&#xff1a;NVIDIA GeForce RTX 3090 显卡驱动和cuda&#xff1a; 安装detectron2时&#xff0c;报错为&#xff1a; Installing collected packages: detectron2Running setup.py develop for detectron2error: subprocess-exited…

智能博弈技术军事应用展望

源自&#xff1a;指挥与控制学院 作者&#xff1a;马悦 吴琳 郭圣明 摘 要 为利用智能技术解决现代战争中的意图判断、威胁评估与指挥控制, 提高军事决策水平, 将军事问题转化为博弈问题, 综合利用博弈论和人工智能&#xff08;artificial intelligence, AI&#xff…

【Python 实战】---- 实现批量图片的切割

1. 需求场景 在实际开发中&#xff0c;我们会遇到一种很无聊&#xff0c;但是又必须实现的需求&#xff0c;就是比如协议、大量的宣传页面、大量的静态介绍页面、或者大量静态页面&#xff0c;但是页面高度很高&#xff0c;甚至高度可能会达到50000px&#xff0c;但是为了渲染…