当前位置: 首页 > 科技观察

人体姿势评估技术的开发与实施_0

时间:2023-03-12 10:01:56 科技观察

【.com快译】据相关研究报告显示,到2022年,数字健身市场预计将达到274亿美元。如果有人告诉你有某种技术可以取代健身教练,那么他指的一定是3D人体姿势估计(HumanPoseEstimation)技术。它是一种相对较新但发展迅速的数字健身技术,它使用用户输入锻炼的视频以自动方式分析他们的表现指标。下面,我将结合自身的实现经验,与大家探讨如何开发和实现面向AI健身领域的3D人体姿态估计应用。什么是人体姿势估计?人体姿态估计作为一种基于计算机视觉的技术,可以通过人体建模来检测和分析人体的各种运动和姿势。此类技术通常包括三种类型的人体模型:基于骨架的模型-由一组关节(关键点)组成,例如脚踝、膝盖、肩膀、肘部、手腕和四肢姿势。这些构成了人体的骨骼结构。考虑到它们的灵活性,此类模型可用于2D和3D人体姿势估计技术。基于轮廓的模型-由人体躯干和肢体轮廓的粗略宽度组成,其中身体部位表示为轮廓边界和矩形。基于体积的模型-由3D人体形状和姿势组成。这些姿势是通过对具有几何网格和形状的体积模型进行3D扫描来捕获的。来源-https://arxiv.org/pdf/2006.01423.pdf下面,我将主要讨论通过2D或3D视点检测到的基于骨骼的模型。其中:2D姿态估计的检测分析是基于RGB图像中人体关节的X、Y坐标;而3D姿态估计检测和分析X、Y和Z坐标。一般来说,对于健身应用,最好使用3D估计来更准确地分析运动中的人体姿势。因此,一个AI健身教练APP的基本流程是:1.捕捉用户在运动过程中的动作2.分析运动表现的正确性3.在用户界面上显示错误下面我们来讨论3D人体姿势估计技术如何检测人体关键点:如上图所示,该过程首先提取人体的关节,然后通过深度学习算法分析人体的姿势。如果人体姿势估计系统使用视频记录作为数据源,则需要从一系列实际动作的帧中检测关键点(即关节位置),而不是从稳定姿势的单张图片中检测关键点(即关节位置)以获得更高的准确性。尽管目前有多种方法可用于开发3D人体姿态估计系统,但最常用的方法是通过训练深度学习模型从给定图像/帧中提取3D或2D关键点。我们将使用具有时空卷积的卷积神经网络(CNN)分析以下视频。来源-https://github.com/facebookresearch/VideoPose3D/blob/master/images/convolutions_anim.gif通过对现有模型的分析,我们发现VideoPose3D是适合健身应用的选择。它能够使用COCO2017数据集作为来自输入的预训练2D检测器来检测一组2D关键点。同时,为了准确预测特定关节的位置,它处理在不同时间段捕获的多帧视觉数据。如何在AI健身教练应用程序中使用人体姿势估计假设我们的目标是使系统能够检查给定的输入视频是否存在常见的运动错误。也就是说,应用程序需要将输入视频与展示相同动作的专业运动员的参考视频进行比较。下面我们来讨论一下具体的处理流程:1.根据动作的开始和结束来切割输入视频。对于起点和终点,我们可以使用任何阈值来自动检测身体控制点的位置。例如:在深蹲时,我们可以检测手臂的角度和手的高度位置,然后使用任意阈值(arbitrarythresholds)来比较捕捉到的运动动作的起点和终点(如下图所示)).视频来源-https://www.youtube.com/watch?v=M-qAx0yGK9w当然,我们也可以使用另一种方法:让用户有意地示意他们动作的开始和结束。2.检测用户身体上的2D和3D关键点。根据以上检测到的起点和终点,算法会自动将它们转换为2D和3D关键点。3.练习阶段的分解在提取关键点(关节)位置的过程中,我们需要将其与参考视频的位置进行比较。由于用户的实际移动速度与参考视频中专业运动员的移动速度不同,我们无法进行直接比较。对于这样的差异,我们可以通过把练习动作分解成阶段来解决。如下图所示,深蹲运动可以分为两个主要阶段,深蹲和站立。来源--stronglifts.c??om接下来我们可以通过逐帧分析的方式分析从输入视频中检测到的关键点,然后通过动作标准与参考视频中的关键点一一对比,完成分解.4.常见错误搜索完成3D关键点检测和练习阶段分解后,我们可以在输入视频中检测出练习动作中的常见错误。如下图所示,当这个用户下蹲时,我们检测到他们的腿是向外弯曲的,而不是伸直的。此外,他的膝盖应该比他的脚更靠近他的躯干。视频来源--https://www.youtube.com/watch?v=W73Mc0Gil9A&t=244s5。逐帧比较输入视频和参考视频为了更准确地纠正用户的动作,我们需要经过以下一步一步的过程,将输入视频和参考视频逐帧比较:1)通过放慢或快进参考视频以匹配输入视频的进度。2)对齐用户和专业运动员骨骼模型,使它们的旋转角度与参考点相匹配。3)由于参考视频和输入视频可能取自不同的距离,我们需要合并或归一化两组骨骼。4)通过逐帧比较关键点来检测和发现运动不一致。5)对不同的关节(如脚、膝、手、肘等)重复上述过程。6.显示结果并为用户生成建议当整个分析周期完成后,用户需要得到以不同格式显示的结果。例如,输出可以包括各种带有错误消息的交互式3D重建,以便用户可以放大、缩小、倒回、前进或暂停某个动作细节。当然,输出还可以收集和显示某些动作的统计数据,例如:重复次数、动作单次循环的平均速度、持续时间等。下图是一个基于视频的3D人体姿势估计系统的输出示例:来源--stronglifts.c??om男性健康频道经验总结综上所述,我从AI健身教练App开发的角度描述3D人体姿态估计系统的基本工作原理和运行过程。当然,根据实际项目的具体特点,流程可能会随着业务需求的变化而增删减改。以下是我的一些经验总结:3D人体姿势估计可用于检测健身运动中的运动错误。选择合适的2D关键点检测器对于获得高质量的3D关键点至关重要。快速移动的关节对于检测2D关键点模型和查找错误极具挑战性。预训练模型可能无法很好地应对不寻常的动作和身体姿势。此时,您可能需要微调或重新训练以针对具有特定属性的数据优化模型。注:本文来自https://mobidev.biz。MobiDev是一个提供技术研究和软件开发服务经验的网站。原标题:HumanPoseEstimationTechnology2021Guide,作者:MaksymTatariants