姿态识别、手势识别(附代码)

news2024/11/19 5:56:50

姿态识别技术是一种基于计算机视觉的人体姿态分析方法,可以通过分析人体的姿态,提取出人体的关键点和骨架信息,并对人体的姿态进行建模和识别。随着深度学习技术的发展,近年来姿态识别技术得到了广泛的应用和研究,其中Pose是一种基于深度学习的姿态识别工具包。本篇博客将介绍Pose的原理和方法,并探讨其在姿态识别领域的应用。
目前识别手势,举左手 右手 双手 叉腰等姿态
在这里插入图片描述

一、 Pose的原理

Pose是开发的一种基于深度学习的姿态识别工具包,它可以通过摄像头或静态图像中的人体图像,快速准确地推断出人体的关键点和骨架信息。Pose的原理是通过卷积神经网络(CNN)来对人体的关键点进行预测。具体来说,e Pose使用的是一种称为卷积神经网络回归(Convolutional Neural Network Regression,简称CNN Regression)的方法,它可以将输入的图像映射到一个连续的空间,从而可以对图像中的每个像素位置进行预测。

#全部代码 1309399183 <------------qq
# ------------------------------------------------
#   计算姿态
# ------------------------------------------------
def get_pos(keypoints):
    str_pose = ""
    # 计算左臂与水平方向的夹角
    keypoints = np.array(keypoints)
    v1 = keypoints[12] - keypoints[11]
    v2 = keypoints[13] - keypoints[11]
    angle_left_arm = get_angle(v1, v2)
    

    if angle_left_arm<0 and angle_right_arm<0:
        str_pose = "举左手"
    elif angle_left_arm>0 and angle_right_arm>0:
        str_pose = "举右手"
    elif angle_left_arm<0 and angle_right_arm>0:
        str_pose = "举双手"
        if abs(angle_left_elow)<120 and abs(angle_right_elow)<120:
            str_pose = "三角形"
    elif angle_left_arm>0 and angle_right_arm<0:
        str_pose = "正常"
        if abs(angle_left_elow)<120 and abs(angle_right_elow)<120:
            str_pose = "AKIMBO"
    return str_pose

Pose的卷积神经网络由两个主要部分组成:特征提取器和回归器。特征提取器用于从输入图像中提取特征,回归器用于对每个关键点的坐标进行回归预测。特征提取器通常使用预训练的深度卷积神经网络模型,如MobileNet或ResNet,来提取输入图像的特征表示。回归器通常由多层卷积神经网络和全连接层组成,用于对特征进行处理,并对每个关键点的坐标进行回归预测。
在这里插入图片描述

二、姿态识别Pose的方法

MediaPipe Pose提供了多种不同的方法来进行姿态识别,包括实时视频姿态估计、静态图像姿态估计和持续视频姿态估计。以下是MediaPipe Pose的几种常见的姿态识别方法:

1. 实时视频姿态估计

实时视频姿态估计是ose最常用的姿态识别方法之一,它可以对实时视频流中的人体姿态进行准确的预测。在实时视频姿态估计中, Pose将输入视频流分成一系列的帧,在每一帧中对人体姿态进行分析和预测。在分析过程中, Pose使用卷积神经网络对每个关键点的坐标进行回归预测,并通过骨架连接来生成姿态估计结果。实时视频姿态估计可以应用于多种应用场景,如运动分析、姿势纠正和虚拟现实等。

2. 静态图像姿态估计

静态图像姿态估计是 Pose用于分析静态图像中人体姿态的一种方法。在静态图像姿态估计中,Pose将输入图像中的每个像素点作为输入,并将其映射到一个连续的空间中。然后,它使用卷积神经网络对每个关键点的坐标进行回归预测,并通过骨架连接来生成姿态估计结果。静态图像姿态估计可以应用于多种应用场景,如人体动作捕捉、人像编辑和人体分析等。

def get_angle(v1, v2):
    angle = np.dot(v1, v2) / (np.sqrt(np.sum(v1 * v1)) * np.sqrt(np.sum(v2 * v2)))
    angle = np.arccos(angle) / 3.14 * 180

    cross = v2[0] * v1[1] - v2[1] * v1[0]
    if cross < 0:
        angle = - angle
    return angle

3. 持续视频姿态估计

持续视频姿态估计是一种用于分析长时间视频流中人体姿态的方法。在持续视频姿态估计中,Pose使用滑动窗口技术对视频流进行分析,以提高姿态识别的准确性和稳定性。在分析过程中,它使用卷积神经网络对每个关键点的坐标进行回归预测,并通过骨架连接来生成姿态估计结果。持续视频姿态估计可以应用于多种应用场景,如安防监控、智能交通和社交媒体等。
在这里插入图片描述

三、Pose的应用

Pose是一种功能强大的姿态识别工具包,可以应用于多种应用领域。以下是Pose的一些常见应用:

1. 运动分析和姿势纠正

Pose可以用于运动分析和姿势纠正,例如在健身应用程序中监测用户的姿势,并提供实时反馈以帮助他们改进姿势。它还可以应用于体育训练中,以监测运动员的姿势并提供反馈,以帮助他们改进技能。

2. 人体动作捕捉

Pose可以用于人体动作捕捉,例如在电影制作、游戏开发和虚拟现实中实现逼真的人体动作效果。它也可以应用于医疗领域,例如帮助康复患者进行运动训练。

3. 人像编辑和人体分析

Pose可以用于人像编辑和人体分析,例如在照片编辑应用程序中自动识别人体关键点并对照片进行优化。它也可以应用于人体分析中,例如通过分析人体姿态和动作来识别异常或危险行为。

综上所述, Pose是一种功能强大的姿态识别工具包,可以应用于多种应用领域。它的原理是通过卷积神经网络回归方法对人体关键点进行预测,方法包括实时视频姿态估计、静态图像姿态估计和持续视频姿态估计。随着深度学习技术的不断发展,Pose在姿态识别领域的应用前景将会越来越广泛。

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

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

相关文章

React框架的介绍、特点、安装及基本使用流程

一、react介绍 官网&#xff1a;React (docschina.org) react是由facebook前端开发团队开发和维护的js框架 react的实现功能类似VUE&#xff0c;但是由于国外的开发风格&#xff0c;导致在react上&#xff0c;并没有对数据渲染的步骤进行封装&#xff0c;需要开发者更多的使…

【计算几何】点在几何图形中定位问题

一、说明 点的定位属于几何查找&#xff0c;是计算几何中的一个重要的问题。其包括点在三角形内外&#xff0c;多边形内外判断&#xff0c;平面剖分中的位置等。 二、点和几何区域的关系 2.1 点和线的位置关系 两个平行向量的叉乘等于0。如果两个向量的叉乘等于0&#xff0c…

Kali下开启远程管理-ssh

1、使用管理员root修改/etc/ssh/sshd_config 配置文件 ┌──(kali㉿kali)-[~] └─# sudo -i //切换管理root ┌──(root㉿kali)-[~] └─# vim /etc/ssh/sshd_config PermitRootLogin prohibit-password > yes PasswordAuthentication 去掉#号 2、重启ssh.serv…

大数据项目之数仓相关知识

第1章 数据仓库概念 数据仓库&#xff08;DW&#xff09;: 为企业指定决策&#xff0c;提供数据支持的&#xff0c;帮助企业&#xff0c;改进业务流程&#xff0c;提高产品质量等。 DW的输入数据通常包括&#xff1a;业务数据&#xff0c;用户行为数据和爬虫数据等 ODS: 数据…

基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现) 有详细代码+部署+在线服务器尝试+开源可复现

基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现) 在线服务器体验网址&#xff1a; https://kedreamix-yologesture.streamlit.app/ 文章目录 基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现)1. 项目已完成的部分2. 部分尝试结果3. 项目整体框架3.1. 数据…

如何实现多个窗口同步操作?技术层面?借助工具?

朋友们&#xff01;你们是否曾经遇到过需要在多个窗口之间进行同步操作的情况&#xff1f;例如&#xff0c;你想在不同的浏览器窗口中同时滚动或者放大缩小网页。如果你有这样的需求&#xff0c;东哥今天就从技术和借助专业工具两方面给大家讲解如何实现对多个相同布局的窗口进…

【C++入门必备知识:|引用| +|auto关键字| + |范围for|】

【C入门必备知识&#xff1a;|引用| |auto关键字| |范围for|】 ①.引用Ⅰ.引用概念Ⅱ.引用使用Ⅲ.引用特性Ⅳ.使用场景1.做函数参数意义&#xff1a; 2.做函数返回值意义&#xff1a; Ⅵ.常引用Ⅶ.引用与指针区别 ②.auto关键字1.使用规则 ③.基于范围的for循环1.使用规则 在这…

如何在你的云服务器/云主机上更新并使用最新版本的python(python3.11)

更新并使用最新版本的python3.11 第一步&#xff0c;登录云服务器&#xff0c;并更新系统包 打开您的终端&#xff08;Terminal&#xff09;或使用任意SSH客户端&#xff0c;输入如下命令来登录云主机&#xff1a; ssh 用户名IP地址 在输入密码后&#xff0c;您将成功登录到云…

【软考备战·希赛网每日一练】2023年4月21日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题 三、知识查缺 题目及解析来源&#xff1a;2023年04月21日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; 第二题 解析&#xff1a; 活动图 是一种特殊的状态图&#xff0c;它展现了在系统…

【谷歌扩展程序入门】简单制作一个查看网页结构的扩展程序

简言 在想看网页结构的时候一般会F12查看元素内容。 太麻烦了 还不简单方便。 扩展程序 扩展建立在诸如 HTML、JavaScript 和 CSS 之类的 Web 技术之上。它们在单独的沙盒执行环境中运行并与 Chrome 浏览器交互。 扩展允许您通过使用 API 修改浏览器行为和访问 Web 内容来“扩…

wsl2-ubuntu20编译Lineage17(Android10)

WSL2安装Ubuntu20 wsl2安装 略 安装Ubuntu20 wsl.exe --list --online 列出当前支持的所有系统&#xff0c;不过这个命令是从https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json来获取&#xff0c;所以有很大概率会失败。失败就…

解忧杂货铺(三):工作相关资源搜集

1、概述 此文档记录一些对自己很有用的小工具或者其他资源的链接 2、资源 2.1 Hightec生成HEX的方法 Hightec生成HEX的方式https://blog.csdn.net/qq_31225611/article/details/113696362 2.2 UML各个图解析 UML图https://blog.csdn.net/qq_35423190/article/details/1250…

ChatGPT: 深入解读OpenAI的语言模型技术

ChatGPT: 深入解读OpenAI的语言模型技术 引言 引言部分旨在介绍ChatGPT是什么&#xff0c;为什么它是近年来最受欢迎的语言模型之一&#xff0c;并概述本文的主要内容。 1.1 简介 ChatGPT是由OpenAI开发的一种基于深度学习技术的对话生成模型。它采用了最先进的自然语言处理技…

python之流程控制练习题(二)

1、计算1~100的和&#xff08;包含1和100&#xff09;2、计算1~6的乘积&#xff08;包含1和6&#xff09;3、计算1~100之间偶数的和&#xff08;包含1和100&#xff09;4、计算1~100之间可以被3又能被5整数的数的个数&#xff08;包含1和100&#xff09;5、使用循环&#xff0c…

Uboot、Linux BSP定制,最小系统移植

目录 一、linux操作系统支持哪些处理器 二、linux支持哪些版本 三、linux支持哪些外设IP 四、 现有操作系统举例 一、linux操作系统支持哪些处理器 目前已经linux SOC有Cortex-A5x2 Cortex-A9x4,Cortex-A53x4&#xff0c;Riscv-v 二、linux支持哪些版本 已经支持的linux版…

氧气与肠道菌群失调

谷禾健康 健康的肠道微生物群特点是氧气含量低&#xff0c;并且存在大型专性厌氧菌细菌群落&#xff0c;这些共生菌通过限制肠道病原体的扩张为宿主提供益处。 那么是什么导致肠道健康走下坡路&#xff0c;是什么原因引起肠道菌群失调&#xff0c;在科学界一直有2种观点&#x…

转化率暴增的秘密,如何使用营销自动化?

我们生活在自动化时代&#xff0c;聪明的公司正在利用技术将手动流程转变为自动流程。营销自动化是指使用软件、插件、人工智能和分析工具来执行常见和重复的营销流程&#xff0c;例如发送电子邮件和为网站访问者部署应用内消息。 而SaleSmartly&#xff08;ss客服&#xff09…

Linux用户的分类与家目录,ls、pwd、cd、mkdir、touch、rmdir、rm指令与选项等

Linux中用户的分类与用户的家目录 在Linux当中&#xff0c;用户的分类只分为两类&#xff0c;一类叫做超级用户root&#xff0c;还有就是其他也就是传说中的普通用户。我们刚刚登进去时&#xff0c;默认所处的目录是***/root或者/home/用户名***&#xff0c;比如说/root, /hom…

deepstream开发学习笔记: 追踪越界

main.cpp 文件解析 1. 创建元素前的准备 GStreamer是一个开源的流媒体框架&#xff0c;用于构建音频和视频流应用程序。它提供了一组库和工具&#xff0c;可以通过它们将多个组件&#xff08;element&#xff09;组合在一起以构建流媒体应用程序。以下是对几个常见组件的简要解…

仅需三步,快速打造指标数据应用

Kyligence Zen 一站式指标平台&#xff0c;致力于通过低代码的使用体验&#xff0c;帮助企业简洁高效地开发指标数据应用&#xff0c;将数据价值转化为业务洞察。 下面我们以零售交易和绩效管理场景为例&#xff0c;一起来看下如何通过简单三步&#xff0c;快速打造指标数据应用…