掌桥专利:专业的专利平台
掌桥专利
首页

对基于姿态的运动进行评估

文献发布时间:2023-06-19 11:02:01


对基于姿态的运动进行评估

背景技术

例如奥运会等各种运动事件正在吸引全世界越来越多的人们的关注。随着例如摄像机、智能电话等各种类型的数字设备的发展,运动视频的数量也呈现空前的增长。运动视频已经被运动者广泛地用于分析表现和改进技能。以自由式滑雪空中技巧比赛为例,最终得分与运动员姿态(pose)的很多细节部分相关联,因而,职业运动员经常反复地重放视频以分析他们自己和对手的详细动作。目前,针对运动视频的计算机视觉技术主要通过视频标记、视频摘要等来创建关于视频内容浏览和搜索的用户体验,这进一步导致出现了针对运动员、运动爱好者以及其他运动相关人员的大量应用,例如,基于文本的运动视频搜索、运动视频中的突出显示生成、运动员训练辅助应用等。

发明内容

提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。

本公开的实施例提出了用于对基于姿态的运动进行评估的方法和装置。可以获得关于基于姿态的运动的视频。可以从所述视频中提取关联于一个运动者的帧序列。可以通过对所述帧序列执行姿态估计,在所述帧序列的每个帧中标记一组关键点。可以通过至少基于所述一组关键点来对所述帧序列执行姿态分析,识别包括异常姿态的至少一个帧。可以基于所述至少一个帧来提供评估结果。

应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。

附图说明

以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。

图1示出了根据实施例的用于对基于姿态的运动进行评估的示例性过程。

图2示出了根据实施例的示例性关键点位置。

图3示出了根据实施例的对基于姿态的运动进行评估的实例。

图4示出了根据实施例的示例性运动者轨迹提取过程。

图5示出了根据实施例的示例性姿态估计过程。

图6示出了根据实施例的空间-时序相关模块的示例性部署。

图7示出了根据实施例的示例性三维姿态检测过程。

图8示出了根据实施例的示例性姿态分析过程。

图9示出了根据实施例的示例性参考角度。

图10示出了根据实施例的示例性参考角度。

图11示出了根据实施例的示例性评估结果提供过程。

图12至图14示出了根据实施例的示例性起跳点检测过程。

图15至图29示出了根据实施例的示例性用户界面。

图30示出了根据实施例的用于对基于姿态的运动进行评估的示例性方法的流程图。

图31示出了根据实施例的用于对基于姿态的运动进行评估的示例性装置。

图32示出了根据实施例的用于对基于姿态的运动进行评估的示例性装置。

具体实施方式

现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。

目前,运动视频主要被人为地处理,以分析运动者的表现。与完全自动的算法相比,这既是低效的也是不可扩展的。随着深度神经网络对计算机视觉领域的主导,用于检测、跟踪、姿态估计等的模型表现出处理运动视频的巨大潜力。然而,尽管这些模型在不断改进,运动视频中的多人物、快速移动、复杂动作等难题仍然造成了巨大的挑战。

本公开的实施例提供了通过人工智能(AI)技术在运动视频中对基于姿态的运动进行评估的方案,以为运动者提供个性化的训练体验、帮助运动者改进技能、帮助教练分析运动员表现、辅助裁判进行打分和评价、等等。基于姿态的运动可以广泛地指其表现或质量较大地取决于运动者姿态的正确性的那些运动。例如,基于姿态的运动可以包括:自由式滑雪空中技巧、跳台滑雪、滑冰、冰球、冰壶、体操、跳水、舞蹈、网球、羽毛球、乒乓球、棒球、高尔夫、等等。

在一个方面,本公开的实施例可以通过利用例如深度视觉跟踪等来在关于基于姿态的运动的视频中针对单个运动者执行轨迹(trajectory)提取,以获得关联于该运动者的帧序列。即便在运动视频包括多个运动者的情况下,本公开的实施例也可以准确地提取出每个运动者的运动轨迹。

在一个方面,本公开的实施例使用例如关键点的实例级别的特征来用于姿态估计和姿态分析。关键点是图像帧中能够被用于表征运动者的姿态并进而评估运动者的运动表现的点。关键点可以包括运动者身体中的点,例如,肩、膝盖、脚踝等。关键点还可以包括运动者所使用的运动器具中的点,例如,雪板的前端和后端、冰球杆的杆刃端部和根部、等等。由于不同的基于姿态的运动可能具有不同的运动表现评估标准,因此,可以对不同的基于姿态的运动采用不同类型的关键点。通过在帧序列上执行空间相关处理和时序相关处理,可以更准确地执行姿态估计以标记关键点,从而更准确地提取运动者的姿态信息。通过在帧序列上执行三维(3D)姿态检测,可以进一步获得关键点的深度信息。通过在空间域和时间域两者上对帧序列上的关键点执行相关处理,并且可选地在三维空间对姿态建模,即便在动作复杂度较高或者由于运动者的快速移动而导致视频模糊的情况下,本公开的实施例也能够更准确地标记关键点并更准确地表征运动者的姿态。由于本公开的实施例将以这种方式标记的关键点用于执行姿态分析,因此可以更准确地判断运动者的姿态是否标准、是否存在异常等。姿态分析可以基于分类方式,或者可以基于与标准动作参数进行比较的具体判断标准。

在一个方面,本公开的实施例可以在确定了视频中的异常姿态后,提供具有帮助性的评估结果,以协助运动者、教练、裁判或其他相关人员去更准确客观地回顾和评价运动表现、改进动作等。

本公开的实施例能够以更准确更高效的方式提取运动者姿态并且分析姿态的正确性,并且能够有针对性地提供建议和评估结果,因此,带来了显著更好的用户体验。

图1示出了根据实施例的用于对基于姿态的运动进行评估的示例性过程100。在一些情况下,过程100可以被实施为专用于运动评估的独立应用或软件,该应用或软件可以运行在各种类型的智能设备中,例如手机、笔记本电脑、平板电脑、台式机等或者专用于运动估计的独立设备。在一些情况下,过程100可以被实施为其它应用或软件所包括或调用的一个部分或功能,例如,作为AI聊天机器人的一个功能。本公开并不局限于用于实施过程100的任何具体手段,而是涵盖能够执行根据本公开实施例的对基于姿态的运动进行估计的过程的任何软件、硬件、用户界面等。

可以首先获得运动视频110。运动视频110可以是关于基于姿态的运动的视频。运动视频110可以包括在一个或多个运动者进行该运动时所拍摄的一系列视频图像。

在120处,可以在运动视频110中执行运动者轨迹提取,以获得单个运动者的帧序列。该帧序列包括聚焦于该运动者的多个图像帧。可以通过人物检测过程,从运动视频110中首次出现该运动者的帧中检测出该运动者。例如,可以利用包围该运动者的边界框来表示检测的结果。然后,可以通过跟踪过程在运动视频110的后续帧中跟踪该运动者。例如,可以将作为检测结果的边界框用于对跟踪过程进行初始化。在给定了运动视频110中出现该运动者的第一帧中的人物边界框的情况下,可以利用实时在线跟踪过程来从视频中提取该运动者的轨迹,以构建聚焦于该运动者的管道(tubelet)。

在130处,可以对关联于运动者的帧序列执行姿态估计,以在帧序列的每个帧中标记一组关键点。由于运动者的多个关键点之间通常具有较强的空间相关性和时序相关性,因此,姿态估计可以至少基于帧序列中运动者关键点的空间相关信息和时序相关信息。此处,空间相关性可以指示运动者身体的不同关键点之间的结构信息,例如,肘部靠近肩部和手腕等。时序相关性可以指示一个关键点沿着时间维度的平滑移动。根据关键点之间的空间相关性,对一个关键点(例如,肘部)的位置的估计可以至少基于在该时间戳处其它关键点(例如,肩部和手腕)的位置。根据每个关键点的时间相关性,对该关键点(例如,肘部)在某个时间戳处的位置的估计可以至少基于该关键点在一系列时间戳处的位置,例如,沿着时间维度的一系列的肘部位置。在一种实施方式中,姿态估计过程可以包括在利用基本的图像姿态估计模型生成了指示关键点位置的特征图后,利用特征图之间的空间相关和时间相关来对特征图进行优化和更新,以估计出更为准确的关键点位置。特征图可以为例如热力图(heatmap)。经过130处的姿态估计,帧序列中的每个帧都将被标记上一组关键点。应当理解,不仅可以在运动者的身体上标记关键点,也可以在运动者使用的运动器具上标记关键点。此外,在一种实施方式中,姿态估计过程也可以包括通过3D姿态检测来生成关键点的深度信息。在可能涉及到类似空中旋转的动作的运动中,来自3D姿态检测的深度信息将能够更准确地表征运动者的翻滚、转体等动作。

在140处,可以对标记了关键点的帧序列执行姿态分析,以便识别出包括异常姿态的帧。异常姿态可以广泛地指错误的、不符合标准的、或超出允许范围的姿态。通常,运动中的动作是具有时间持续性的,从而运动者的一个动作的完成具有一个对应的时间段。这将导致一个动作将以连续的多个帧中的一系列姿态来表示。通过对包括异常姿态的帧的识别,可以确定相应动作是否存在异常。姿态分析可以包括基于每个帧中的多个关键点来计算一组参考角度,并且使用该组参考角度来判断姿态是否异常。在一种实施方式中,可以通过姿态分类模型,基于所计算的参考角度来将一个帧分类为包括异常姿态或不包括异常姿态。该姿态分类模型可以为例如支持向量机(SVM)。在一种实施方式中,可以预先基于该运动的标准动作参数等建立判断标准,并且通过将所计算的参考角度与该判断标准进行比较来确定一个帧中是否包括异常姿态。

在150处,可以基于所识别出的包括异常姿态的帧来提供评估结果。本公开的实施例可以提供各种不同类型的评估结果。在一种实施方式中,评估结果可以是对该运动者的运动表现进行评价的分数。该分数可以是至少基于在140处所识别的帧中的姿态异常程度来确定的。在一种实施方式中,评估结果可以是针对至少一个包括异常姿态的帧而提供的包括正常姿态的演示帧。该演示帧可以通过视觉方式来直观地提供标准动作的呈现。在一种实施方式中,评估结果可以是针对至少一个包括异常姿态的帧而提供的动作纠正建议。该纠正建议可以包括如何改进动作以达到标准或更好效果。在一种实施方式中,评估结果可以是针对至少一个包括异常姿态的帧而提供的身体损伤分析。该身体损伤分析可以指示该帧中的异常姿态可能对运动者带来的身体损伤。

应当理解,上述的过程100是本公开实施例所提出的对基于姿态的运动进行评估的方法的概括性描述,后面将进一步给出过程100的示例性的实施细节。此外,应当理解,尽管以下讨论主要针对自由式滑雪空中技巧运动,但是本公开并不局限于该运动,而是可以以类似的方式应用于任何其它基于姿态的运动。

图2示出了根据实施例的示例性关键点位置。在图2中以自由式滑雪空中技巧为例示出了示例性的关键点的位置。

在运动者的身体上示出了15个示例性的关键点,包括:头顶202、鼻子204、脖子206、右肩膀208、左肩膀210、右肘部212、左肘部214、右手腕216、左手腕218、右髋部220、左髋部222、右膝盖224、左膝盖226、右脚踝228和左脚踝230。此外,在两个雪板上示出了4个示例性的关键点,包括:右板前端232、左板前端234、右板后端236和左板后端238。

应当理解,图2中示出的关键点的位置以及数量都是示例性的。根据具体的应用场景和需求,可以对运动者标记不同数量的关键点以及处于不同位置的关键点。此外,应当理解,对于其它运动,可以标记有助于表征运动者姿态并评估运动表现的任何其它类型和数量的关键点。

图3示出了根据实施例的对基于姿态的运动进行评估的实例300。在图3中,针对自由式滑雪空中技巧的运动视频310进行评估。

通过对运动视频310执行运动者轨迹提取,可以获得关联于运动者的帧序列。该帧序列示例性地包括在时间维度上连续的帧320-1、帧320-2、帧320-3、帧320-4、帧320-5等。如图所示,帧序列中的每个帧包括从运动视频310中提取的聚焦于该运动者的图像。

通过对帧序列执行姿态估计,可以在每个帧上标记一组关键点。标记有关键点的帧序列包括例如帧330-1、帧330-2、帧330-3、帧330-4、帧330-5等。以标记有关键点的帧330-1为例,该帧是通过在对应的帧320-1上添加关键点而得到的。为了便于查看和突出关键点的位置,图3示出了在部分关键点之间的连线。

通过对标记有关键点的帧序列执行姿态分析,可以识别出包括异常姿态的帧。例如,方框340圈出了示例性的包括异常姿态的帧330-4和330-5。在帧330-4中识别出运动者的膝盖弯曲,并且在帧330-5中识别出运动者前后分腿,这两个姿态都是异常姿态。

在图3中进一步示出了评估结果,其包括演示帧350-4和350-5。演示帧350-4示出了与帧330-4相对应的正确的姿态,其中,运动者的膝盖是伸直的。演示帧350-5示出了与帧330-5相对应的正确的姿态,其中,运动者的双腿是并拢的,而没有前后分腿。演示帧350-4和350-5可以来自于做出正确姿态的其他运动者的视频。

应当理解,图3中的运动视频、所提取的帧、关键点的标记、演示帧等都是示例性的,其仅用于便于展示示例性的评估过程。根据不同的实施方式,图3中的任意元素可以进行相应地改变。例如,除了在评估结果中提供演示帧350-4和350-5外,还可以在评估结果中进一步提供与帧330-1、帧330-2和帧330-3分别对应的演示帧。此外,评估结果中也可以包括分数、纠正建议、身体损伤分析等信息。

图4示出了根据实施例的示例性运动者轨迹提取过程400。过程400可以被执行用于快速准确地从运动视频410中截取包含运动者的区域并在时间维度上跟踪运动者,从而提供聚焦于该运动者的帧序列。

根据实施例的运动者轨迹提取架构可以包括检测模块、跟踪模块以及可选的验证模块。这三个模块可以共享相同的主干(backbone)网络,以实现更快的执行速度。此外,检测模块和跟踪模块可以是在以人物为中心的数据上精调的,从而使得整个架构对于人物检测和跟踪可以具有更高的鲁棒性和准确性。

在420处,可以由例如检测模块在运动视频410上执行运动者检测,以在首次出现该运动者的第一帧中识别出该运动者的位置和区域。检测模块可以是例如二维人物检测模块。检测模块可以包括区域提议网络,其在帧中提取候选区域。检测模块还可以包括分类网络,其识别一个候选区域是不是人物,例如运动者。区域提议网络和分类网络都可以是由例如两个全连接层来实施的。区域提议网络在候选锚点上运行。锚点以滑动窗口为中心,并且关联于缩放量(scale)和纵横比(aspect ratio)。假设缩放量为3且纵横比为3,则在每个滑动位置处将存在9个锚点。对于运动视频,由于目标运动者通常呈现在图像的中心或附近,因此,可选地,可以移除或忽略图像边缘的候选区域。检测模块可以输出在第一帧中定位了运动者的至少一个边界框,并且将边界框的坐标提供给跟踪模块。

在430处,可以由例如跟踪模块在运动视频410中的、在所述第一帧之后的后续帧中跟踪运动者的移动和位置。跟踪模块可以是例如在Siamese跟踪器上构建的。Siamese跟踪架构采用图像对作为输入,该图像对包括示例图像和候选搜索图像。示例图像表示所关注的目标,例如以第一帧中的所检测到的人物为中心的图像块,该图像块可以由例如检测模块在第一帧中所提供的边界框来指示。候选搜索图像通常更大并且表示后续帧的图像搜索区域。通过对两个输入的图像执行互相关,可以生成分数图。互相关旨在在候选搜索图像上对示例图像执行穷尽搜索。分数图中的最大响应指示了候选搜索图像中的目标的位置,例如,运动者在候选搜索图像中的区域或位置。由于跟踪模块在本地图像区域中仅搜索示例图像,其执行速度较快。

为了避免由于前面的预测不准确而导致跟踪模块无法在接下来的帧中进行准确预测,可选地,在440处可以由验证模块执行验证过程。如果跟踪模块在某个帧中所识别的图像区域的分数低于预定阈值,例如跟踪结果具有较低的置信度,则验证模块可以对该跟踪结果进行验证,例如验证该图像区域是不是目标运动者。验证模块可以是例如基于卷积神经网络(CNN)的二分类模型。验证模块的网络中的最后几层卷积层可以被更新为训练出能够有效区分前景目标和背景的基于softmax的分类器,其中前景目标可以指所要跟踪的运动者。验证模块可以将待验证的图像区域作为输入,并且通过两个神经元分别输出该图像区域是前景目标的概率和该图像区域是背景的概率。如果跟踪结果没有通过验证,例如,该图像区域是前景目标的概率低于预定标准,则可以进而触发检测模块在整个图像上重新检测目标运动者。通过上述的验证和重新检测过程,可以进一步确保运动者轨迹提取架构的鲁棒性。

通过以上过程400,可以最终获得关于运动者的帧序列450。帧序列450中的每个帧都聚焦于该运动者,从而沿着视频形成了关于该运动者的管道。

图5示出了根据实施例的示例性姿态估计过程500。通过在关于运动者的帧序列上执行姿态估计过程500,可以在每个帧上标记一组关键点。姿态估计过程500是针对包含T个帧的帧序列来执行的,而并非仅考虑一个帧或两个连续帧。空间-时序相关模块被提出用于在T个帧上获得空间上下文相关性和时序上下文相关性,并将其用于姿态特征提取和关键点位置优化。姿态估计过程500可以更准确地标记关键点,从而更准确地提取运动者的姿态信息。

关联于运动者的帧序列510可以对应于图4中的帧序列450。在520处,可以通过例如CNN模型来从帧序列510中提取特征图(feature map)集合530。特征图集合530包括与帧序列510中的每个帧对应的特征图。特征图可以至少指示对应帧中的可能的关键点的位置,这些可能的关键点的位置可以在后续的过程中进行优化。CNN模型可以采用例如ResNet-50等。特征图的大小或形式可以被表示为[T,C,H,W],其中,T表示帧号,C表示与可能的关键点相对应的通道(channel),H表示高度,W表示宽度。在一种情形下,H可以表示边界框的高度,W可以表示边界框的宽度。特征图集合530可以进而作为输入而被提供给空间-时序相关模块540。

空间-时序相关模块540可以包括空间相关部分542和时序相关部分544。空间相关部分542和时序相关部分544中的每一个部分可以包括两个分支。一个分支传递特征之间的关系,另一个分支应用位置变换。假设Δp

空间相关部分542可以在多个不同的关键点之间提取空间相关性,其是单独地针对每个帧来执行的,并且沿着时间维度而重复T次。空间相关部分542可以在一个帧的特征图上学习位置变换。例如,当前帧的特征图中所指示的每个通道的点是可以基于该特征图中其它通道的点的信息来进行变换或调整的。可选地,为了节省计算成本,在将特征图集合530中的一个特征图提供给空间相关部分542之前,可以首先降低该特征图的维度,例如,缩小C、H、W等的表示。在方框E 542-2中,可以在对应于一个帧的特征图上应用例如两个全连接层,以便预测用于该特征图中每个通道的点的变换参数。变换参数可以被包括在偏移图(offset map)542-4中,其大小可以被表示为例如[T,C,Δp

时序相关部分544可以提取特定关键点在不同的时间位置之间的时序相关性,其是单独地针对每个关键点来执行的。时序相关部分544可以在T个帧的特征图上学习位置变换。例如,当前帧的特征图中所指示的某个通道的点是可以基于其它帧的特征图中所指示的该通道的点的信息来进行变换或调整的。时序相关部分544的位置变换是在每个通道上执行的,并且依次遍历所有的通道。可选地,可以首先将特征图集合530中的具有[T,C,H,W]形式的特征图转置成[C,T,H,W]形式,然后,通过例如组卷积操作来降低通道的大小。经过处理的特征图可以被提供给时序相关部分544。在方框E 544-2中,针对某个通道,可以在多个帧的特征图上应用例如全连接前馈网络,以预测用于当前帧的该通道的点的变换参数,例如变换权重、位置偏移等。变换参数可以被包括在偏移图544-4中,其大小可以被表示为例如[C,T,Δp

空间相关部分542和时序相关部分544所输出的特征在546处进行级联,并且进而在550处通过例如残差网络来与特征图集合530中的特征合并,以便得到经更新的特征图集合560。经更新的特征图集合560中的每个特征图至少可以指示对应帧中的经优化的关键点的位置。从而,可以获得与帧序列510对应的、标记了关键点的帧序列570。

应当理解,上述的姿态估计过程500中的所有步骤以及空间-时间相关模块的具体架构都是示例性的,并且可以根据具体的应用场景和需求而进行任意形式的改变。

图6示出了根据实施例的空间-时序相关模块的示例性部署600。示例性部署600可以被视为是对图5的姿态估计过程500的增强和改进。在示例性部署600中,对图5中的空间-时序相关模块540进行了多头(multi-head)和多层的堆叠。通过堆叠,可以迭代式地优化所标记的关键点的位置,从而显著地改进标记关键点的准确性。图6中示出的多个空间-时序相关模块中的每一个可以对应于图5中的空间-时序相关模块540。这些空间-时序相关模块被划分为多个层,例如,层1、层2、…、层N。每一层中的多个空间-时序相关模块可以作为多个头。应当理解,不同层中可以包括不同数量的头。同一层中的多个头的输出被叠加在一起并作为下一层的输入。经由示例性部署600的处理,可以针对特征图集合610获得经更新的特征图集合620,其中,特征图集合610可以对应于图5中的特征图集合530。通过在图5中采用图6的空间-时序相关模块的示例性部署600,可以基于经更新的特征图集合620获得更准确地标记了关键点的帧序列570。

图7示出了根据实施例的示例性三维(3D)姿态检测过程700。3D姿态检测过程700可以作为姿态估计过程的一部分,以用于生成关键点的深度信息。

对于帧序列710,可以在720处通过例如CNN模型来从帧序列710中提取特征图集合730。特征图集合730包括与帧序列710中的每个图像帧对应的特征图或图像特征,其可以被表示为特征

时序编码器740可以在以帧t为中心的时间窗口上生成帧t的3D动态(dynamics)表示742,即Φ

可以将时序编码器740所生成的3D动态表示742提供给3D回归器760。3D回归器760可以根据3D动态表示Φ

L

其中,

为了将3D人物动态表示迁移到静态图像,可以使用幻觉器(hallucinator)750来将单个图像帧的特征

此外,幻觉器750所生成的3D动态表示752也可以被输入给3D回归器760以及3D预测器770和780。这将使得幻觉器所幻觉出的特征不仅类似于实际电影条,也能够预测动态。可以在实际动态表示与幻觉出的动态表示之间共享回归器和预测器的权重。

基于以上讨论,可以利用如下的总体目标L来联合地训练时序编码器、幻觉器以及3D回归器和预测器:

在3D姿态检测过程700中,通过时序编码器740和幻觉器750可以分别获得3D动态表示742和752,其可以进一步用于建立每个帧中的3D人物网格表示,从而确定帧中的关键点的深度信息790。

可选地,尽管图7中示出3D姿态检测过程是针对特征图集合730来执行的,其中该特征图集合730是以类似于获得图5的特征图集合530的方式而从帧序列710提取的,但是,3D姿态检测过程也可以针对经更新的特征图集合来执行,例如基于图5的经更新的特征图集合560来执行。此外,通过将图7的3D姿态检测过程700与图5的姿态估计过程500进行组合,可以获得既标记了二维关键点的位置也标记了关键点的深度信息的帧序列570。

通过3D姿态检测过程所获得的深度信息既能够用于更准确地表征运动者的姿态,也有助于在后续的姿态分析过程中更准确地确定运动者的旋转角度。

根据本公开的实施例,如果通过图5至图7所示的过程而标记的关键点中存在位置异常的关键点,则还可以执行关键点纠正过程。关键点的位置异常可以包括例如左右颠倒、前后颠倒、关键点重合、关键点错位等。可以通过参考同一帧中的其它关键点的位置、其它帧中的同一关键点的位置等来识别和纠正位置异常的关键点。在一种实施方式中,可以基于同一帧中的其它关键点的位置来识别一个关键点的异常位置。例如,假设在该帧中以高置信度标记了左肩膀、右肩膀、左髋部、右髋部等关键点,而关键点“头顶”被标记在左髋部与右髋部之间,则可以确定关键点“头顶”具有异常位置。在这种情况下,可以至少基于其它关键点的位置,重新估计头顶的位置。在一种实施方式中,可以识别所标记的一组关键点在帧序列上的变化趋势。例如,识别每个关键点沿着时间维度在多个帧上的变化趋势。可以基于变化趋势来识别一个帧中的一个关键点是否被标记在异常位置,例如是否偏离了该关键点的特定轨迹趋势。例如,如果运动者正在做直体翻腾的动作,则其各个关键点应当沿着时间维度在垂直平面上呈现近似圆环的轨迹,如果关键点“左脚踝”在当前帧中出现在较远偏离其圆环轨迹的位置处,则可以确定该关键点在当前帧中存在异常位置。可以至少基于当前帧中的其它关键点的位置或者基于关键点“左脚踝”在其它帧中的位置,来重新估计关键点“左脚踝”在该帧中的位置。通过上述方式,可以实现对包括异常位置的关键点的纠正。可选地,为了提高计算效率,当确定出某个帧中包括位置异常的关键点时,可以仅在符合该关键点的变化趋势的区域里重新估计该关键点的位置。

图8示出了根据实施例的示例性姿态分析过程800。可以针对标记了关键点的帧序列810来执行姿态分析过程800,以便在帧序列810中识别出包括异常姿态的帧。帧序列810可以对应于例如通过以上讨论的各种方式所获得的图5中的帧序列570。

在820处可以至少基于在帧序列810中每个帧上标记的一组关键点来计算一组参考角度。在本文中,参考角度可以指能够用于判断姿态是否异常的角度。在830处,可以通过不同的方式,基于所计算的一组参考角度来判断每个帧是否包括异常姿态,从而可以识别出包括异常姿态的帧840。应当理解,取决于异常姿态的定义以及用于判断一个帧是否包括异常姿态的具体方式,可能采用不同类型的参考角度并且采用不同的判断手段。

在一种实施方式中,可以通过例如SVM的姿态分类模型来判断一个帧是否包括异常姿态。在这种情况下,可以采用一组关键点中的不同关键点来计算特定的参考角度。在表1中示出了对于自由式滑雪空中技巧运动,采用示例性的12个关键点来计算8个示例性参考角度的方式。

表1

关键点之间的角度是采用两个向量V

其中,向量V

V

其中,(x

假设在自由式滑雪空中技巧中将例如屈膝、屈髋、雪板交叉等视为是异常姿态。可以预先在自由式滑雪空中技巧数据集中利用上述参考角度来标记这些异常姿态和对应的正确姿态,并且利用经标记的数据集来对SVM进行训练。在实际应用中,当将针对某个帧所计算的参考角度提供给SVM时,SVM可以将该帧分类为包括异常姿态或不包括异常姿态。

在一种实施方式中,可以基于预先建立的判断标准来确定一个帧是否包括异常姿态。例如,可以预先基于标准动作参数等建立判断标准,并且通过将所计算的参考角度与该判断标准进行比较来确定一个帧是否包括异常姿态。仍然以自由式滑雪空中技巧为例,可以参考该运动的一些标准动作参数来预先规定所要计算的多个参考角度,以用于识别该运动中常见的异常姿态。

图9示出了根据实施例的示例性参考角度。图9所示的帧可能采用不同的视角,例如,对应于正面摄像机机位的正面视角、对应于侧面摄像机机位的侧面视角等。在一些情况下,用于判断不同异常姿态的参考角度可能是在采用不同视角的帧中计算的。

在910处示出了侧面视角下的参考角度912。参考角度912可以通过以下任何方式确定:在由左膝盖和左髋部形成的向量与由左膝盖和左脚踝形成的向量之间的角度;在由右膝盖和右髋部形成的向量与由右膝盖和右脚踝形成的向量之间的角度;在由左右膝盖中点和左右髋部中点形成的向量与由左右膝盖中点和左右脚踝中点形成的向量之间的角度;等等。参考角度912可以用于例如判断是否存在异常姿态“屈膝”。在自由式滑雪空中技巧的一些动作中要求运动者在完成动作期间膝盖不能弯曲,即,参考角度912对应的标准动作参数应当是180度。如果参考角度912小于180度或预定值,则可以确定存在异常姿态“屈膝”。

在920处示出了侧面视角下的参考角度922。参考角度922可以通过以下任何方式确定:在由左髋部和左脚踝形成的向量与由右髋部和右脚踝形成的向量之间的角度;在由左髋部和左膝盖形成的向量与由右髋部和右膝盖形成的向量之间的角度;等等。参考角度922可以用于例如判断是否存在异常姿态“前后分腿”。在自由式滑雪空中技巧的一些动作中要求运动者在完成动作期间不能前后分腿,即,参考角度922对应的标准动作参数应当是0度。如果参考角度922大于0度或预定值,则可以确定存在异常姿态“前后分腿”。

在930处示出了正面视角下的参考角度932。参考角度932可以通过以下任何方式确定:在由左髋部和左脚踝形成的向量与由右髋部和右脚踝形成的向量之间的角度;在由左髋部和左膝盖形成的向量与由右髋部和右膝盖形成的向量之间的角度;等等。参考角度932可以用于例如判断是否存在异常姿态“左右分腿”。在自由式滑雪空中技巧的一些动作中要求运动者在完成动作期间不能左右分腿,即,参考角度932对应的标准动作参数应当是0度。如果参考角度932大于0度或预定值,则可以确定存在异常姿态“左右分腿”。

在940处示出了侧面视角下的参考角度942。参考角度942可以对应于在由左板前端和左板后端形成的向量与由右板前端和右板后端形成的向量之间的角度。在950处示出了正面视角下的参考角度952。参考角度952可以对应于在由左板前端和左板后端形成的向量与由右板前端和右板后端形成的向量之间的角度。在自由式滑雪空中技巧的一些动作中要求运动者在完成动作期间不能存在雪板交叉,例如上下雪板交叉和左右雪板交叉。参考角度942可以用于例如判断是否存在上下雪板交叉。参考角度942对应的标准动作参数应当是0度。如果参考角度942大于0度或预定值,则可以确定存在异常姿态“上下雪板交叉”。参考角度952可以用于例如判断是否存在左右雪板交叉。参考角度952对应的标准动作参数应当是0度。如果参考角度952大于0度或预定值,则可以确定存在异常姿态“左右雪板交叉”。

图10示出了根据实施例的示例性参考角度。图10中的参考角度不仅考虑了由关键点形成的向量,也考虑了水平向量或垂直向量。

在1010处示出了侧面视角下的参考角度1012。参考角度1012可以对应于在由头顶和左右膝盖中点形成的向量与水平向量1014之间的角度。可选地,可以采用任何其它能够表征运动者身体指向的向量来代替由头顶和左右膝盖中点形成的向量以计算参考角度1012,例如,由头顶和左右脚踝中点形成的向量、由头顶和左右髋部中点形成的向量、由脖子和左右膝盖中点形成的向量等。在1020处示出了正面视角下的参考角度1022。参考角度1022可以对应于在由左右板前端中点和左右板后端中点形成的向量与垂直向量1024之间的角度。

在一个方面,参考角度1012和参考角度1022可以指示运动者在三维空间中的三维位置,例如,平躺、直立等。三维位置可以被用于进行视角选择。在一些情况下,运动视频中可能包括在正面视角和侧面视角下同时拍摄的图像,因此,可以在同一时间点处选择能够更有效地计算参考角度的视角。返回到图8,当在820处计算参考角度时,可能需要进一步在822处进行视角选择,例如选择正面视角或侧面视角,以便能够在具有适当视角的帧中为特定异常姿态计算专门的参考角度。在822处的视角选择可以至少基于参考角度1012和参考角度1022。可以为每一个异常姿态定义一个主要视角,在该主要视角中通常可以更准确直观地计算用于识别该异常姿态的特定参考角度。如果基于参考角度1012和/或参考角度1022确定在该主要视角中无法有效地计算该特定参考角度,则可以进一步判断是否可以在辅助视角中有效地计算该特定参考角度。如果可以在辅助视角中有效地计算该特定参考角度,则进一步基于该特定参考角度确定是否存在该异常姿态。如果不能在辅助视角中有效地计算该特定参考角度,则可以跳过当前时间点的帧,而尝试在后面的帧中识别该异常姿态。以异常姿态“屈膝”为例,参考角度可以为图9中的角度912,主要视角可以是侧面视角。如果参考角度1022小于45度,即,雪板与垂直向量之间的角度小于45度,则可以确定能够在侧面视角的帧中有效地计算参考角度912,从而识别是否存在“屈膝”。如果参考角度1022大于45度,即,雪板与垂直向量之间的角度大于45度,并且参考角度1012大于45度,即,人体与水平向量之间的角度大于45度,则可以确定能够在例如正面视角的辅助视角的帧中有效地计算参考角度912,从而识别是否存在“屈膝”。如果参考角度1022大于45度并且参考角度1012小于45度,则可以确定无论是在正面视角的帧中还是在侧面视角的帧中都无法有效地计算参考角度912,从而无法识别是否存在“屈膝”。在其它实施方式中,可以在识别异常姿态时综合考虑基于在主要视角的帧中计算的参考角度的异常姿态识别结果以及基于在辅助视角的帧中计算的参考角度的异常姿态识别结果。例如,只要两个异常姿态识别结果中有一个指示异常,就认为存在异常姿态。

在另一个方面,参考角度1012和参考角度1022还可以用于判断是否存在异常姿态“转体时机错误”。在自由式滑雪空中技巧的一些动作中要求运动者的转体时机应当匹配翻腾时机。以“翻腾一周、转体两周”动作为例,第一次转体的开始不能早于翻腾的开始,并且第二次转体的结束不能晚于翻腾的结束。参考角度1012指示了人体与水平向量之间的角度,其可以用于确定翻腾的开始帧和结束帧。例如,可以预先规定当参考角度1012小于预定值时翻腾开始,而当参考角度1012再次小于预定值时一周翻腾结束。参考角度1022指示了雪板与垂直向量之间的角度,其可以用于确定转体的开始帧和结束帧。例如,可以预先规定当参考角度1022小于预定值时转体开始,而当参考角度1022再次小于预定值时一周转体结束。如果基于参考角度1012所确定的翻腾开始帧在基于参考角度1022所确定的转体开始帧之后,则可以确定存在转体提前开始的转体时机错误。如果基于参考角度1012所确定的翻腾结束帧在基于参考角度1022所确定的转体结束帧之前,则可以确定存在转体延迟结束的转体时机错误。仍以“翻腾一周、转体两周”动作为例,可以基于参考角度1012来确定翻腾的开始帧和结束帧,从而确定一周翻腾的翻腾帧区间。可以基于参考角度1022确定每一周转体的开始帧和结束帧,从而确定每一周转体的转体帧区间。可以确定在所述翻腾帧区间内存在多少个转体帧区间,这些转体帧区间的数量将对应于在一周翻腾期间的转体的周数。如果转体帧区间数量不等于二,即,完成的转体小于或大于两周,则可以确定不符合上述动作的要求,存在异常姿态。可选地,为了减小误差影响,可以将间距小于阈值的转体帧区间进行合并。

应当理解,图8的姿态分析过程800可以进一步基于通过图7的3D姿态检测过程700所确定的深度信息。深度信息可以用于确定运动者的旋转角度。例如,可以基于一个或多个关键点的深度信息生成运动者的深度向量,并且可以计算该深度向量在多个帧上的旋转角度。例如,该旋转角度可以表征运动者绕水平轴或垂直轴的旋转动作,从而可用于确定例如翻腾和转体的开始帧和结束帧。基于深度信息所确定的翻腾和转体的开始帧和结束帧可以进一步用于根据上述的方式来识别例如“转体时机错误”等异常姿态。

图11示出了根据实施例的示例性评估结果提供过程1100。评估结果提供过程1100可以被执行用于至少基于包括异常姿态的帧1102来提供评估结果,其中,包括异常姿态的帧1102可以对应于例如图8中的包括异常姿态的帧840。

在1110处,可以对包括异常姿态的帧1102执行帧区间划分,以获得多个异常姿态帧区间1112,每个异常姿态帧区间对应于一个异常姿态。例如,多个异常姿态帧区间1112可以包括对应于“屈膝”的帧区间[40,46],对应于“前后分腿”的帧区间[65,78],等等,其中帧区间[m,n]表示在从第m个帧到第n个帧中检测到同一个异常姿态。可选地,可以将对应于同一个异常姿态的两个间隔较小的帧区间合并。例如,如果异常姿态帧区间[40,46]和异常姿态帧区间[48,52]都对应于“屈膝”,由于这两个帧区间仅间隔一个帧,即第47个帧,因此可以将这两个帧区间合并成一个帧区间[40,52]以共同对应于异常姿态“屈膝”。此外,可选地,如果一个异常姿态帧区间的持续时间足够短,例如仅包括2个帧,则可以忽略该帧区间。

在1120处,可以在多个异常姿态帧区间1112中的每个帧区间内,基于姿态异常程度选择一个代表性帧。例如,如果在对应于“屈膝”的帧区间[40,46]内,第44个帧的对应于“屈膝”的参考角度912最大,则可以将该第44个帧选择作为该异常姿态帧区间的代表性帧。

在1130处,可以确定每一个代表性帧所对应的动作1132。通常,在自由式滑雪空中技巧中,运动者将按照预定的跳跃代码(jump code)来做出一系列动作。该跳跃代码可以指示运动视频中将涉及的一个或多个动作。以跳跃代码bLF(Back Lay Full)为例,其指示两个连续的动作,第一个动作为向后直体翻腾一周,第二个动作为翻腾一周加转体一周。如前所述,图10中的参考角度1012可以用于确定每次翻腾的开始帧和结束帧,因此可以至少基于参考角度1012来将帧序列划分为对应于第一个动作的部分和对应于第二个动作的部分。相应地,可以将帧序列中的每一个帧映射到对应的动作,从而可以确定每个代表性帧所对应的动作。

在1140处,可以至少基于与多个异常姿态帧区间分别对应的多个代表性帧来确定评估结果。可选地,可以基于为每一个代表性帧所计算的参考角度1122与对应动作1132来确定评估结果。

在一种实施方式中,评估结果可以是对运动者的运动表现进行评价的分数。例如,至少基于多个代表性帧而确定的分数1152。分数1152可以是通过参考预先建立的评分规则1150,基于代表性帧中的姿态异常程度来确定的。评分规则1150可以是特定于异常姿态的,并且可以包括例如不同的参考角度大小所对应的减扣分数。下表2示出了示例性的针对屈膝的一部分评分规则。

表2

假设在当前代表性帧中计算的对应于“屈膝”的参考角度为170度,则可以在表2中找到该参考角度所处于的区间“168.75°≤x<180°”。如果该参考角度是在一周台内计算的,则可以确定将在总分中减去位于减分区间“0.1~0.3”中的一个分数,例如0.2分。

下表3示出了示例性的针对转体时机错误的一部分评分规则。假设滑雪方向为从右到左,9点钟方向为0度,12点钟方向为90度。表3中的评分规则针对跳跃代码bLF(BackLay Full),即,向后(Back)直体翻腾一周(Lay),接着翻腾一周加转体一周(Full)。

表3

假设在当前代表性帧中计算的对应于“翻腾”的参考角度为140度,对应于“转体”的参考角度为20度,则可以在表3中找到对应的翻腾区间“135°≤x<150°”以及对应的转体区间“0°

以上表2和表3仅仅给出了评分规则1150的两个示例,其中的评分细节可以根据实际需要而进行任何形式的修改。此外,还可以建立针对其它异常姿态的评分规则。通过与上述结合表2和表3所述的类似方式,可以获得每一个代表性帧所导致的扣减分数。通过从总分中减去所有的扣减分数,可以获得最终分数1152。

此外,应当理解,尽管在表3中未示出,也可以在针对转体时机错误的评分规则中考虑基于深度信息所计算的旋转角度。例如,不同的旋转角度可以对应不同的扣减分数。

在一种实施方式中,评估结果可以是针对至少一个代表性帧而提供的动作纠正建议1162。该纠正建议1162可以包括关于如何改进动作以达到标准或更好效果的描述。纠正建议1162可以是从预先建立的纠正建议数据库1160中检索的。纠正建议数据库1160可以包括针对不同异常姿态、不同参考角度大小的纠正建议。例如,假设在一个代表性帧中计算的对应于“屈膝”的参考角度为170度,其指示了相对微小的屈膝错误,则可以从纠正建议数据库1160中检索出对应的纠正建议,例如,“此处,你应当再略微伸直双腿”等。

在一种实施方式中,评估结果可以是针对至少一个代表性帧而提供的身体损伤分析1172。该身体损伤分析1172可以指示该帧中的异常姿态可能对运动者带来的身体损伤。身体损伤分析1172可以是从预先建立的身体损伤数据库1170中检索的。身体损伤数据库1170可以包括针对不同异常姿态、不同参考角度大小的身体损伤分析信息。例如,假设在一个代表性帧中计算的对应于“屈膝”的参考角度为160度,并且该帧处于运动者着陆动作的过程中。这样的屈膝角度大小对于着陆而言过大,影响身体缓冲并可能造成膝盖损伤。可以基于例如参考角度、对应动作等信息从身体损伤数据库1170中检索出对应的身体损伤分析,例如,“在着陆时膝盖角度约160度,该角度对于身体缓冲而言过大,容易损伤膝盖。建议的角度为100度至130度。请尽量放低身体,以确保着陆力量得到缓冲”。

在一种实施方式中,评估结果可以是与至少一个代表性帧相对应的、包括正常姿态的演示帧1182。演示帧1182可以涉及与该代表性帧相同的动作。演示帧1182可以是从预先建立的演示帧数据库1180中检索的。演示帧数据库1180可以包括对应于不同动作的、具有正常姿态的帧,其可以是从任何现有的比赛视频、训练视频等中提取的。例如,如果代表性帧对应于异常姿态“屈膝”,则可以从演示帧数据库1180中检索出不存在“屈膝”错误的演示帧。可选地,演示帧1182可以包括与代表性帧的动作相关联的多个连续的帧,以便演示完整的动作过程。

应当理解,图11仅仅给出了几种示例性的评估结果,还可以根据实际需求提供任何其它类型的评估结果。此外,通过图11的过程1100所确定的评估结果可以通过任何形式来呈现,例如文本、语音、图像、视频等。

根据本公开的实施例,可以在运动视频中执行起跳点检测过程,以便识别出运动者离开跳台时的起跳帧。此处,起跳帧可以指运动者离开雪道或跳台并跳跃到空中时的帧。从而,可以针对在该起跳帧之后的视频部分执行前述的评估过程。可以采用各种方式来执行起跳点检测。

图12示出了根据实施例的示例性起跳点检测过程1200。过程1200是基于物理模型来检测起跳帧的。

可以在侧面视角下针对雪道1210和运动者建立物理模型,将运动者投影为雪道1210上的投影点1220。通过在运动视频上对运动者进行跟踪,可以计算投影点1220的x轴和y轴坐标在雪道1210上的变化趋势。当投影点1220到达雪道1210的末端点1212时,可以确定检测到了起跳帧。

图13示出了根据实施例的示例性起跳点检测过程1300。过程1300是基于移动轨迹来检测起跳帧的。

可以在每一帧中提取运动者边界框的特征,例如,基于x轴上的变化△x和y轴上的变化△y而计算的边界框的速度、边界框的移动方向、边界框的加速度等。可以构建基于上述特征的分类器。该分类器可以被训练为基于这些特征来预测一个帧是起跳帧的概率。假设分类器为边界框1312所在的帧给出了最高的概率,则可以将该帧作为起跳帧。

图14示出了根据实施例的示例性起跳点检测过程1400。过程1400是基于对象检测来检测起跳帧的。

初始图像采用正面视角,其中显示了雪道1410以及位于雪道1410末端的跳台1420。可以基于任何已有的分类技术来从初始图像中识别出跳台1420,并且使用方框1430进行标示。

可以在后续的帧中检测对应于运动者的可视范围的目标方框1440。随着运动者逐渐从跳台1420上端露出,目标方框1440的可视范围逐渐增大。当运动者完全脱离跳台1420并跳起时,目标方框1440的可视范围达到最大值。可以将目标方框达到最大值的帧作为起跳帧。如图14所示,在帧t+2处,目标方框1440的可视范围达到最大值,因此可以将帧t+2作为起跳帧。在一种实施方式中,考虑到运动者的不同起跳方式可能对应不同的最大可视范围,因此可以基于运动视频中的运动者的最大可视像素分布来确定目标方框1440的最大可视范围。

应当理解,图12至图14仅仅示出了几种示例性的起跳点检测过程,本公开的实施例还可以采用任何其它方式的起跳点检测过程来检测起跳帧。

图15至图29示出了根据实施例的示例性用户界面(UI)。假设这些UI是在用户的智能手机上呈现的。

图15示出了在聊天机器人与用户之间的UI 1500。在UI 1500的聊天流中,聊天机器人试图通过向用户提供天气信息而引导用户使用根据本公开实施例实现的滑雪助手应用。如图所示,聊天机器人可以启动滑雪助手应用,并引导到图16的UI。

图16示出了自由式滑雪助手程序的起始UI 1600。自由式滑雪助手程序可以实现上述的根据本公开实施例的用于对基于姿态的运动进行评估的功能,例如,该程序可以对自由式滑雪空中技巧运动进行评估。UI 1600包括两个示例性选项,即“开始”和“高分演示”。当用户选择“开始”选项时,可以进入评估模式。当用户选择“高分演示”选项时,可以呈现演示视频。应当理解,尽管图16的自由式滑雪助手程序是在图5中由聊天机器人启动的,该程序也可以是安装在用户的例如智能手机的终端上的独立应用,从而可以被用户自主地启动。

当用户在UI 1600中点击“开始”选项时,呈现图17中的UI 1700。在UI 1700中,可以向用户要求使用摄像头的许可,以便自由式滑雪助手程序能够访问用户智能手机中的摄像头。

如果用户在UI 1700中点击按钮“是的”,则可以进入图18的UI 1800。UI 1800示出了用于视频文件管理的按钮1802、用于开始拍摄视频的按钮1804以及用于拍照的按钮1806。如果用户点击按钮1804以开始拍摄运动视频,则转入图19的UI 1900。UI 1900示出了用于停止拍摄视频的按钮1904。所拍摄的视频可以保存在用户的智能手机中,或者上传到服务器上。

当已经完成运动视频拍摄或者用户加载了已有的运动视频时,可以呈现图20的UI2000。在UI 2000中要求用户输入与运动视频对应的跳跃代码。用户也可以通过点击按钮“样本库”来在图21的UI 2100中选择预先准备的跳跃代码。如果用户在UI 2000中输入的跳跃代码错误,则可以呈现图22的UI 2200,以便用户可以重新输入跳跃代码,或者选择跳转到UI 2100以寻找跳跃代码。如前所述,在对运动视频进行评估的过程中可以使用跳跃代码。

由于对运动视频的评估需要占用一定的时间,因此,可选地,可以呈现例如图23的UI 2300、图24的UI 2400等来提示用户正在执行处理。

在完成了评估过程后,可以呈现图25的UI 2500。UI 2500可以示出针对该运动视频所计算的最终分数“5.8”和扣减分数的次数“3个减分”、难度级别、添加了边界框或关键点的视频等等。可选地,UI 2500还可以通过时间线2510的形式来示出扣减分数的时间点,例如,在第1秒的时间点2512处减去0.3分、在第3秒的时间点2514处减去0.2分、在第6秒的时间点2516处减去0.1分等。扣减分数的时间点可以是基于对应的代表性帧的时间来确定的。用户可以点击任意时间点以查看扣减分数的具体信息。

假设用户在UI 2500中点击了时间点2512,可以呈现图26的UI 2600。UI 2600可以示出该时间点对应的代表性帧。可选地,UI 2600还可以示出作为评估结果的一部分的示例性的纠正建议2610等。

假设用户在图16的UI 1600中选择了“高分演示”选项,则可以呈现图27的UI2700,以便用户可以选择跳跃代码。假设用户点击了跳跃代码“bdff”,则可以呈现图28的UI2800。在UI 2800中,用户可以查看与跳跃代码“bdff”对应的演示视频。当演示视频播放完后,可以呈现图29的UI 2900,以便用户进行下一步的操作。

应当理解,图15至图29的UI都是示例性的,根据具体的应用需求和设计,可以对这些UI中的元素进行任意的修改,并且可以为自由式滑雪助手程序设计任何其它UI。例如,可以设计使得用户能够查看历史视频的UI,可以设计提示用户加载视频失败的UI,可以设计要求访问本地存储的UI,等等。

图30示出了根据实施例的用于对基于姿态的运动进行评估的示例性方法3000的流程图。

在3010处,可以获得关于基于姿态的运动的视频。

在3020处,可以从所述视频中提取关联于一个运动者的帧序列。

在3030处,可以通过对所述帧序列执行姿态估计,在所述帧序列的每个帧中标记一组关键点。

在3040处,可以通过至少基于所述一组关键点来对所述帧序列执行姿态分析,识别包括异常姿态的至少一个帧。

在3050处,可以基于所述至少一个帧来提供评估结果。

在一种实施方式中,所述一组关键点可以包括:所述运动者的身体中的关键点和/或运动器具中的关键点。

在一种实施方式中,所述执行姿态估计可以包括:生成与所述帧序列相对应的一组特征图,每个特征图至少指示对应帧中的关键点的位置;以及通过对所述一组特征图执行空间相关处理和/或时序相关处理来获得一组经更新的特征图,每个经更新的特征图至少指示对应帧中的经优化的关键点的位置。

所述执行姿态估计还可以包括:通过对所述一组特征图或所述一组经更新的特征图执行3D姿态检测,生成每个关键点的深度信息。所述执行3D姿态检测可以包括:通过时序编码器,基于以目标帧为中心的多个帧的特征图来生成所述目标帧的第一3D动态表示;通过幻觉器,基于所述目标帧的特征图来生成所述目标帧的第二3D动态表示;以及至少基于所述第一3D动态表示和所述第二3D动态表示来确定所述目标帧中的每个关键点的深度信息。所述执行姿态分析可以包括:至少基于所述深度信息来确定所述运动者的旋转角度。

在一种实施方式中,所述执行姿态分析可以包括:对于所述帧序列中的每个帧,至少基于所述一组关键点来计算一组参考角度;以及基于所述一组参考角度来确定所述帧是否包括异常姿态。

所述确定所述帧是否包括异常姿态可以包括:通过SVM,基于所述一组参考角度来将所述帧分类为包括异常姿态的帧或不包括异常姿态的帧。

所述确定所述帧是否包括异常姿态可以包括:确定与所述帧中的姿态相关联的动作;以及通过将所述一组参考角度中的至少一个参考角度与所述动作的标准动作参数进行比较,来识别所述帧是否包括异常姿态。

所述执行姿态分析可以包括:对于所述一组参考角度中的至少一个参考角度,基于所述运动者的三维位置,来从正面视角或侧面视角的帧中选择用于计算所述至少一个参考角度的帧。

在一种实施方式中,所述提供评估结果可以包括:将所述至少一个帧划分成与多个异常姿态分别对应的多个帧区间;在所述多个帧区间中的每个帧区间内,基于姿态异常程度选择代表性帧;以及基于与所述多个帧区间分别对应的多个代表性帧来确定所述评估结果。

在一种实施方式中,所述评估结果可以包括以下至少之一:至少基于所述多个代表性帧而确定的分数;与至少一个代表性帧相对应的、包括正常姿态的演示帧;与至少一个代表性帧相对应的纠正建议;以及与至少一个代表性帧相对应的身体损伤分析。

在一种实施方式中,所述方法还可以包括:识别所述一组关键点在所述帧序列上的变化趋势;基于所述变化趋势来识别至少一个帧中的至少一个关键点的异常位置;以及基于所述至少一个帧中的其它关键点的位置和/或基于所述至少一个关键点在其它帧中的位置,来纠正所述至少一个关键点在所述至少一个帧中的位置。

在一种实施方式中,所述基于姿态的运动可以包括以下至少之一:自由式滑雪空中技巧、跳台滑雪、滑冰、冰球、冰壶、体操、跳水、舞蹈、网球、羽毛球、乒乓球、棒球、高尔夫。

在一种实施方式中,所述基于姿态的运动可以包括自由式滑雪空中技巧,并且所述异常姿态可以包括以下至少之一:屈膝、雪板交叉、左右分腿、前后分腿、转体时机错误。

应当理解,方法3000还可以包括根据上述本公开实施例的用于对基于姿态的运动进行评估的任何步骤/处理。

图31示出了根据实施例的用于对基于姿态的运动进行评估的示例性装置3100。

装置3100可以包括:视频获得模块3110,用于获得关于基于姿态的运动的视频;运动者轨迹提取模块3120,用于从所述视频中提取关联于一个运动者的帧序列;姿态估计模块3130,用于通过对所述帧序列执行姿态估计,在所述帧序列的每个帧中标记一组关键点;姿态分析模块3140,用于通过至少基于所述一组关键点来对所述帧序列执行姿态分析,识别包括异常姿态的至少一个帧;以及评估结果提供模块3150,用于基于所述至少一个帧来提供评估结果。

在一种实施方式中,所述姿态估计模块3130可以用于:生成与所述帧序列相对应的一组特征图,每个特征图至少指示对应帧中的关键点的位置;以及通过对所述一组特征图执行空间相关处理和/或时序相关处理来获得一组经更新的特征图,每个经更新的特征图至少指示对应帧中的经优化的关键点的位置。

所述姿态估计模块3130还可以用于:通过对所述一组特征图或所述一组经更新的特征图执行3D姿态检测,生成每个关键点的深度信息。

在一种实施方式中,所述姿态分析模块3140可以用于:对于所述帧序列中的每个帧,至少基于所述一组关键点来计算一组参考角度;确定与所述帧中的姿态相关联的动作;以及通过将所述一组参考角度中的至少一个参考角度与所述动作的标准动作参数进行比较,来识别所述帧是否包括异常姿态。

此外,装置3100还可以包括执行根据上述本公开实施例的用于对基于姿态的运动进行评估的方法中的任何步骤/处理的任何其它模块。

图32示出了根据实施例的用于对基于姿态的运动进行评估的示例性装置3200。

装置3200可以包括至少一个处理器3210以及存储了计算机可执行指令的存储器3220。当执行所述计算机可执行指令时,处理器3210可以:获得关于基于姿态的运动的视频;从所述视频中提取关联于一个运动者的帧序列;通过对所述帧序列执行姿态估计,在所述帧序列的每个帧中标记一组关键点;通过至少基于所述一组关键点来对所述帧序列执行姿态分析,识别包括异常姿态的至少一个帧;以及基于所述至少一个帧来提供评估结果。此外,处理器3210还可以执行根据上述本公开实施例的用于对基于姿态的运动进行评估的任何步骤/处理。

本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于对基于姿态的运动进行评估的方法的任何操作。

应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。

还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。

已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。

软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。

以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将被包含到本文中,并且旨在由权利要求所覆盖。

相关技术
  • 对基于姿态的运动进行评估
  • 基于改进的反向运动学进行姿态解算的方法及相关设备
技术分类

06120112772445