赞
踩
本文旨在构建一个 AI 健身教练,帮助判断姿态标准与否,并且矫正姿态!无论您是初学者还是专业人士,它都可以帮助您无缝地进行深蹲。为了完成这项任务,我们可以利用基于深度学习的人类姿态估计算法的强大功能。
身体姿态估计
用于姿势分析的正面和侧视图的直觉]
姿势构建 AI 健身教练来分析深蹲
深蹲时的状态图解释]
AI Fitness Trainer 的应用流程]
设计应用程序时的关键概念
AI Fitness Trainer 应用程序中的测试用例]
深蹲模式 – 初学者与专业人士
使用检测器,管道首先定位帧内的人物/姿势感兴趣区域 (ROI)。跟踪器随后使用 ROI 裁剪的帧作为输入来预测 ROI 中的姿态地标和分割掩码。
下图描述了我们的应用程序所需的地标。
我们将考虑髋-膝、膝-踝和肩-髋线与垂直线的角度,以计算状态(在后续部分中解释)并执行适当的反馈消息。如下图所示。
在设计一个应用程序来分析各种健身锻炼时,人们可能会好奇地执行各种计算,同时牢记相机对物体(人)的视野。
使用正面视图,我们可以访问左侧和右侧,因此可以利用各种地标点的坡度和角度,例如膝臀线和膝臀线之间的角度等。这些信息可能有助于分析头顶推举、侧板支撑、仰卧起坐、卷曲等练习。
我们可以使用侧视图来更好地估计有关垂直或水平的各种倾斜度。这些信息有助于分析硬拉、俯卧撑、深蹲、俯卧撑等运动。
由于我们正在分析深蹲和所有关于垂直方向适当倾斜度的重要计算,因此我们选择了侧视图。
为确保健康的生活方式,罗马尼亚主动向进行 20 次深蹲的人提供免费巴士票。看看这个Instagram帖子!
下图描述了我们的应用程序所需的地标。
我们将考虑髋-膝、膝-踝和肩-髋线与垂直线的角度,以计算状态(在后续部分中解释)并执行适当的反馈消息。如下图所示。
状态转换图解释了执行深蹲时保持的各种状态。
请注意,所有状态都是根据髋膝线和垂直线之间的角度计算的(为简单起见,我们将此阶段压缩为膝盖和垂直线之间的角度).
以下 gif 说明了过渡的各个阶段。
我们将处理应用程序的三种状态:s1、s2 和 s3。
状态 s1: 如果膝盖与垂直方向的夹角落在32°以内,则处于正常阶段,其状态为s1。它本质上是更新正确和不当深蹲计数器的状态。
状态 s2: 如果膝盖和垂直方向之间的角度落在 35° 和 65° 之间,则处于过渡阶段,随后进入状态 s2.
状态 s3: 如果膝盖和垂直方向之间的角度在特定范围内(例如,在 75° 和 95° 之间),则它处于通过阶段,随后进入状态 s3.
我们最终也可以提供状态转换图。
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5Cadmin%5CDesktop%5C%E5%9B%BE%E5%BA%93%5C5.png&pos_id=img-3im2gicr-1698838611908
注意:
与反馈相关的所有计算都是针对状态 s2 和 s3 计算的。
在实施过程中,我们维护一个列表:state_sequence
。它包含人员从状态 s1 到 s3 再回到 s1 时的一系列状态。state_sequence
中的最大状态数 为 3 ([s2**, s3, s2]**)。此列表确定是否执行正确或不正确的深蹲。
一旦遇到状态 s1,我们将state_sequence
重新初始化为空列表,以便进行后续的深蹲计数。
3 点之间的角度,其中 1 个是参考点,如下所示。
该等式由下式给出:
例如,要计算偏移角,我们将找到鼻子和肩膀之间的角度,鼻子的坐标是参考点。
当偏移角度超过某个OFFSET_THRESH
时,我们假设该人面向相机前方,并显示相应的警告消息。
同样,可以参考下图来计算肩臀线与垂直线之间的夹角.
我们的应用程序应提供五条反馈消息,而一条执行深蹲,即:
当髋部垂直角度高于阈值(例如 45°)时,将显示反馈 2, 如下所示
unzip myproject.zip
cd my_project
conda create -n pose python =3.9
pip install -r requirements.txt
python run.py
到目前为止,我们已经展示了如何使用 姿态识别解决方案构建一个简单的应用程序来分析深蹲。该应用程序的关键组件包括:
该应用程序假设该人应保持相机的良好侧视图。如果一个人完全面对镜头前,我们会显示适当的警告信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。