运动分析方法及装置与流程

文档序号:33115669发布日期:2023-02-01 02:49阅读:18来源:国知局
运动分析方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及一种运动分析方法。本技术同时涉及一种运动分析装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.随着人们生活水平的不断提高,越来越多的人开始注重体能锻炼,与之相关的训练也日益得到重视。目前针对体能锻炼常见的方法有两种:一是在健身房等专业的运动场所经由教练指导进行锻炼;二是使用健身软件,通过语音播报和视频引导的形式,利用碎片化的时间进行训练。
3.然而现代人群由于工作或学习压力,缺乏完整的时间去专业的运动场所进行锻炼;而使用健身软件进行锻炼时,缺乏动作识别功能,无法得知训练者的训练完成度,缺乏互动性。因此,急需一种有效的方案已解决上述问题。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种运动分析方法。本技术同时涉及一种运动分析装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
5.根据本技术实施例的第一方面,提供了一种运动分析方法,包括:
6.获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;
7.根据所述骨骼点数据,确定所述指定骨骼点的变化信息;
8.在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;
9.根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。
10.根据本技术实施例的第二方面,提供了一种运动分析装置,包括:
11.获取模块,被配置为获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;
12.第一确定模块,被配置根据所述骨骼点数据,确定所述指定骨骼点的变化信息;
13.分析模块,被配置为在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;
14.第二确定模块,被配置为根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。
15.根据本技术实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所
述运动分析方法的步骤。
16.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述运动分析方法的步骤。
17.本技术提供的运动分析方法,获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;根据所述骨骼点数据,确定所述指定骨骼点的变化信息;在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。通过骨骼点数据确定指定骨骼点的变化信息,并基于变化信息进行计数,可以降低计数的延迟,提高计数的快速性,从而可以及时给目标对象反馈计数,降低运动的枯燥感。进一步提高用户粘度。
附图说明
18.图1是本技术一实施例提供的一种运动分析方法的流程图;
19.图2是本技术一实施例提供的另一种运动分析方法的流程图;
20.图3a是本技术一实施例提供的一种运动分析方法的处理流程图;
21.图3b是本技术一实施例提供的另一种运动分析方法的处理流程图;
22.图4是本技术一实施例提供的一种运动分析方法的界面示意图;
23.图5是本技术一实施例提供的一种运动分析装置的结构示意图;
24.图6是本技术一实施例提供的一种计算设备的结构框图。
具体实施方式
25.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
26.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
29.tensorflow.js是一个开源的基于硬件加速的javascript库,用于训练和部署机器学习模型。
30.posenet是一种基于深度学习的拍照定位,可在浏览器上使用tensorflow.js实时
运行人体姿态检测。
31.然后,对本说明书一个或多个实施例提供的运动分析方法进行说明。
32.随着人们生活水平的不断提高,越来越多的人开始注重体能锻炼,与之相关的训练也日益得到重视。目前针对体能锻炼常见的方法有两种:一是在健身房等专业的运动场所经由教练指导进行锻炼;二是使用健身软件,通过语音播报和视频引导的形式,利用碎片化的时间进行训练。
33.然而现代人群由于工作或学习压力,缺乏完整的时间去专业的运动场所进行锻炼;而使用健身软件进行锻炼时,缺乏动作识别功能,无法得知训练者的训练完成度和标准度,缺乏互动性,例如课程与用户的互动性较弱,跟练课程与用户的运动体验是相对割裂的,对于运动的反馈常常是发生在训练完成之后,在训练中课程与用户的互动较弱。
34.因此,本技术提供了一种运动分析方法,获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;根据所述骨骼点数据,确定所述指定骨骼点的变化信息;在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。通过骨骼点数据确定指定骨骼点的变化信息,并基于变化信息进行计数,可以降低计数的延迟,提高计数的快速性,从而可以及时给目标对象反馈计数,降低运动的枯燥感。
35.在本技术中,提供了一种运动分析方法,本技术同时涉及一种运动分析装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
36.图1示出了本技术一实施例提供的一种运动分析方法的流程图,具体包括以下步骤:
37.步骤102:获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应。
38.具体的,目标对象可以是人、动物、机器人等;运动视频是指对目标对象运动进行采集到的实时的视频流;目标运动是指目标对象正在做的运动或者引动用户做的动作,如深蹲、开合跳等;预设周期是指预设的采集的时间间隔,如0.1秒、0.5秒、1秒等;指定骨骼点是指目标对象进行目标运动时预先指定的骨骼点,如深蹲时胯部和脸部对应的骨骼点;骨骼点数据是指骨骼点对应的数据,如指定骨骼点的位置、方位等;数据序列是指由按照预设周期采集到的骨骼点数据的序列。
39.实际应用中,客户端可以通过外界设备,如摄像头,接收目标对象的运动视频。例如,客户端通过带摄像头的台式机或者手机等智能设备,获取到目标对象的运动视频。此外,客户端还可以通过服务端获取目标对象的运动视频,也即客户端接收服务端发送的目标对象的运动视频。例如,客户端a1在通过智能设备实时接收到目标对象的运动视频时,将该运动视频上传至服务端;服务端检测到客户端a2与客户端a2关联,将该运动视频下发至客户端a2,即客户端a2获取到目标对象的运动视频。
40.在本说明书实施例的一种可能的实现方式中,为了提高运动分析的效率,还需要对指定骨骼点进行检测,在检测到之后,再获取运动视频。也即所述获取目标对象的运动视
频,具体实现过程可以如下:
41.对所述目标对象进行所述指定骨骼点的检测;
42.在检测到所述指定骨骼点的情况下,获取所述目标对象的所述运动视频。
43.实际应用中,为了保证能够获得目标对象在进行目标运动过程中生成的数据序列,从而使运动分析顺利进行,需要先对目标对象进行执行骨骼点的检测,如果检测不到指定骨骼点,则需要提醒目标对象进行调整,如调整姿势、调整与摄像头的距离等,直到检测到指定骨骼点;如果监测到指定骨骼点,则获取目标对象的运动视频。
44.由于图像的比例或者目标对象距离摄像头、显示屏幕的距离可以变化,所以需要目标对象满足客户端可以检测到指定骨骼点后,训练也即运动分析才会开始,比如深蹲训练开始之前需要监测到脸部、胯部、脚踝等指定骨骼点。
45.在本说明书实施例的一种可能的实现方式中,运动分析可以用于与好友的互动,也即目标对象受到邀请后与关联对象一起运动,从而使目标对象对应的客户端接收到运动视频。也即所述获取目标对象的运动视频,具体实现过程可以如下:
46.接收关联对象的运动互动请求,其中,所述关联对象为所述目标对象进行互动的对象;
47.在接收到针对所述运动互动请求的接受指令的情况下,获取目标对象的运动视频。
48.具体的,关联对象是指目标对象进行互动的对象,如目标对象的好友、关注的对象、被关注的对象等;运动互动请求是指目标对象与关联对象一起进行运动、比赛对应的请求;接受指令是指同意进行运动互动的指令,也即目标对象接受运动互动请求的指令。
49.实际应用中,关联对象想要和目标对象进行运动互动,则关联对象可以通过其所在的客户端,向目标对象所在的客户端发送运动互动请求。在目标对象上线后,如果目标对象拒绝运动互动请求,即目标对象所在的客户端接收到拒绝指令,则不获取目标对象的运动视频;如果目标对象接受运动互动请求,即目标对象所在的客户端接收到针对运动互动请求的接受指令,则获取目标对象的运动视频。如此,可以提供目标对象与其他对象,也即关联对象的连接感,可以使目标对象形成大规模的关系链,避免了与关联对象互动感弱的问题,如仅可以互相点赞,进一步提高用户黏度。
50.此外,目标对象也可以邀请关联对象一起进行运动:向关联客户端发送运动互动请求,其中,所述关联客户端为所述关联对象对应的客户端;在接收到所述关联客户端反馈的接受指令后,根据所述目标对象的运动分析结果和所述关联对象的运动分析结果生成互动结果。
51.需要说明的是,目标对象邀请关联对象时,关联对象可能不在线,也即关联对象无法及时处理运动互动请求。此时,目标对象可以先开始运动,待关联对象上线并同意运动互动后,关联对象开始运动。也即目标对象可以与关联对象进行异步运动互动。
52.可选地,目标对象可以去关联对象的虚拟房间做客,与关联对象pk一起运动,并且在拜访时,目标对象的虚拟形象会在关联对象的虚拟房间与虚拟房间一起运动,如此可以将虚拟形象与运动的结合。且当关联对象目前正在运动或是当前时刻已经完成运动时,关联对象的虚拟房间里的虚拟形象就会进行相应的运动,通过虚拟形象的动画效果提高目标用户运动过程中的沉浸感。此外,通过pk目标对象可以获得虚拟金币,虚拟金币可以用来购
买虚拟家具来装扮虚拟房间,通过这种可量化的形式来见证目标用户在健身方面的成长。
53.在获取到目标对象的运动视频之后,根据预设的解析策略对运动视频进行解析,以获得目标对象在进行目标运动过程中生成的数据序列,也即获得按照预设周期采集的指定骨骼点的骨骼点数据。例如,通过运行在tensorflow.js上的posenet,对运动视频进行解析,获得目标对象的指定骨骼点的骨骼点数据,如骨骼点坐标数据。
54.步骤104:根据所述骨骼点数据,确定所述指定骨骼点的变化信息。
55.在获取到目标对象的运动视频,对运动视频进行解析,获得目标对象在进行目标运动过程中生成的数据序列,也即按照预设周期采集的指定骨骼点的骨骼点数据的基础上,进一步地,根据骨骼点数据确定指定骨骼点的变化信息。
56.具体的,变化信息是指定骨骼点位置进行变化的信息,如指定骨骼点移动、反转等对应的信息。
57.实际应用中,在获取到骨骼点数据之后,可以根据当前预设周期采集的骨骼点数据与上一个预设周期采集的骨骼点数据进行比较,确定指定骨骼点的变化信息;还可以将当前预设周期采集的骨骼点数据与第一个预设周期采集的骨骼点数据进行比较,确定指定骨骼点的变化信息。
58.在本说明书实施例的一种可能的实现方式中,可以将当前预设周期采集的骨骼点数据与预设初始位置数据进行比较,从而确定指定骨骼点的变化信息。也即在所述骨骼点数据包括位置数据,所述变化信息包括位移信息的情况下,所述根据所述骨骼点数据,确定所述指定骨骼点的变化信息,具体实现过程可以如下:
59.根据所述指定骨骼点的当前位置数据和预设初始位置数据,确定所述指定骨骼点的位移信息。
60.具体的,位置数据是指定骨骼点在预设坐标系上的位置;预设初始位置数据是指预先设定的指定骨骼点对应的位置数据,如目标对象准备做目标运动时指定骨骼点的位置数据、目标对象垂直站立时指定骨骼点的位置数据。
61.实际应用中,可以将当前预设周期采集的骨骼点数据,也即指定骨骼点的当前位置数据与预设初始位置数据进行比较,计算出指定骨骼点的位移信息。
62.例如,指定骨骼点的预设初始位置数据为(0,0),该指定骨骼点的当前位置数据为(3,4),则该指定骨骼点的位移信息为
63.在本说明书实施例的一种可能的实现方式中,由于不同的目标对象,即使不同的目标对象都在做同一个目标运动或动作,运动视频中指定骨骼点的移动距离会存在不同,或者同一目标对象由于与显示屏幕或者摄像头的距离不同,运动视频中指定骨骼点的移动距离会存在不同。为了避免移动距离的不同,造成计数的错误,可以采用相对位移来作为位移信息。也即所述根据所述指定骨骼点的当前位置数据和预设初始位置数据,确定所述指定骨骼点的位移信息,具体实现过程可以如下:
64.确定第一预设骨骼点与第二预设骨骼点之间的基准距离,其中,所述第一预设骨骼点与所述第二预设骨骼点用于约束所述目标对象进行所述目标运动的运动范围;
65.将所述指定骨骼点的当前位置数据与预设初始位置数据进行比较,获得所述指定骨骼点的移动距离;
66.根据所述基准距离和所述移动距离,确定所述指定骨骼点的位移信息。
67.具体的,第一预设骨骼点和第二预设骨骼点是指约束目标对象做目标运动的运动范围的两个骨骼点,例如深蹲运动时,头部和脚对应的骨骼点可以为第一预设骨骼点和第二预设骨骼点。
68.实际应用中,可以根据目标运动确定目标对象对应的第一预设骨骼点和第二预设骨骼点。然后计算目标对象在准备做目标运动时后者垂直站立时第一预设骨骼点和第二预设骨骼点之间的基准距离。进一步地,将当前预设周期采集的骨骼点数据,也即指定骨骼点的当前位置数据与预设初始位置数据进行比较,计算出指定骨骼点的移动距离。然后使用移动距离除以基准距离,得到指定骨骼点的位移信息。
69.例如,目标运动为高抬腿,第一预设骨骼点为头部对应的骨骼点、第二预设骨骼点为脚掌对应的骨骼点,指定骨骼点为膝盖对用的骨骼点。目标对象在垂直站立时第一预设骨骼点与第二预设骨骼点的基准距离为10。假设指定骨骼点的预设初始位置数据为(0,3),该指定骨骼点的当前位置数据为(0,6),则该指定骨骼点的移动距离为3,则位移信息为3/10=0.3。
70.需要说明的是,目标对象的运动过程中,还可以将动作姿势,也即指定骨骼点数据转换为特征向量,可以使用预定义的骨骼点之间的成对距离,例如手腕和肩膀、脚踝和臀部以及左右手腕之间的距离。
71.步骤106:在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果。
72.在根据骨骼点数据确定指定骨骼点的变化信息,以及目标对象的姿态信息的基础上,进一步地,在变化信息达到预设计数条件的情况下,累加目标运动的完成数目,得到计数结果。
73.具体的,预设计数条件是指预先设置的用于计数的条件,例如变化信息大于变化阈值,又如变化信息从第一数值变为第二数值;计数结果是指目标对象做目标运动的数量。
74.实际应用中,在确定了变化信息后,可以将变化信息与预设计数条件进行比较,若不符合,则不计数;若符合,则确定目标对象完成一个目标运动(目标动作),累加目标对象完成目标运动的完成数目,得到计数结果。
75.需要说明的是,当每次累加目标运动的完成数目时,可以通过语音播报的功能,向目标对象反馈当前的计数结果,通过语音提高用户运动过程中的沉浸感。
76.在本说明书实施例的一种可能的实现方式中,变化信息可以包含两个子变化信息,也即所述变化信息包括所述目标对象从预设初始状态开始变化的第一变化信息、以及所述目标对象还原至所述预设初始状态的第二变化信息。此时,可以根据第一变化信息和第二变化信息,来确定目标运动的完成数目,得到计数结果。也即在所述变化信息包括所述目标对象从预设初始状态开始变化的第一变化信息、以及所述目标对象还原至所述预设初始状态的第二变化信息的情况下,所述在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果,具体实现过程可以如下:
77.监测所述第一变化信息;
78.在所述第一变化信息达到第一预设阈值的情况下,继续监测所述第二变化信息;
79.在所述第二变化信息小于第二预设阈值的情况下,累加所述目标运动的完成数目,得到计数结果。
80.具体的,第一变化信息是指目标对象从预设初始状态开始做目标运动的变化信息,例如目标对象从直立到下蹲过程中的变化信息;第一变化信息是指目标对象从目标运动还原到预设初始状态的变化信息,例如目标对象从下蹲还原至直立的变化信息;第一预设阈值是指用于衡量第一变化信息变化程度而与预先设置的值;第二预设阈值是指用于衡量第二变化信息变化程度而与预先设置的值。
81.实际应用中,实时检测目标对象从预设初始状态开始变化的第一变化信息,一旦第一变化信息达到第一预设阈值,则转而监测目标对象还原至预设初始状态的第二变化信息。在第二变化信息小于第二预设阈值时,则确定目标对象完成一个目标运动,则计数加一,即累加所述目标运动的完成数目,得到计数结果。
82.此外,还可以根据有限状态自动机(fsm)原理进行计数。也即在监测第一变化信息;在第一变化信息达到第一预设阈值的情况下,将运动状态设置为第一标识,并继续监测所述第二变化信息;在第二变化信息小于第二预设阈值的情况下,将运动状态转换位为第二标识;累加运动状态从第一标识转换为第二标识的次数,得到计数结果。
83.以深蹲为例,在下蹲过程中检测到第一变化信息达到第一预设阈值后,将运动状态设置为1,在蹲起后检测到第二变化信息脱离位移阈值,也即第二变化信息小于第二预设阈值后,将运动状态转换位为0,运动状态从1到0的过程将会作为一次计数。
84.步骤108:根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。
85.在基于变化信息累加目标运动的完成数目,得到计数结果,并根据姿态信息对识别目标对象进行识别,得到识别结果的基础上,进一步地,根据计数结果和识别结果,确定目标对象进行目标运动的运动分析结果。
86.具体的,运动分析结果是指目标对象进行目标运动的一些指标,如用时、消耗热量、标准度等。
87.实际应用中,可以将计数结果进行统计,确定运动分析结果,例如生成一个运动报表,表明目标对象在多长的时间内,做了多少个目标运动或动作,消耗了多少热量等。之后,还可以反馈给目标对象。
88.用户使用现有的健身软件进行训练时,对于动作的标准性无法判定,即用户在跟练的过程中,动作不规范不仅会影响运动的效果,甚至还有受伤的风险,用户对于自己动作是否标准,靠用户自己无法辨别,只能通过主观感受来判定。为此,还可以根据骨骼点数据对用户的目标运动进行识别,并基于识别结果和计数结果生成运动分析结果。也即所述获得所述目标对象在进行目标运动过程中生成的数据序列之后,还包括:
89.根据所述骨骼点数据,确定所述目标对象的姿态信息;
90.根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果;
91.相应地,所述根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果,还包括:
92.根据所述计数结果和所述识别结果,确定所述目标对象进行所述目标运动的运动分析结果。
93.具体的,姿态信息是指基于指定骨骼点确定目标对象的姿态、姿势对应的信息;预
设姿态是指目标运动的标准姿态,也即参考姿态;识别结果是指识别目标对象进行目标运动的结果,如动作标准、动作不达标等。
94.实际应用中,在获取到骨骼点数据之后,可以根据每个预设周期采集的骨骼点数据,组成目标对象的姿态信息;进一步地,在确定了姿态信息后,对姿态信息进行检测,来判断目标对象是否符合目标运动对应的预设姿态,也即根据姿态信息识别目标对象的目标运动是否标准,得到识别结果。在获得计数结果和识别结果之后,可以将计数结果和识别结果进行统计,确定运动分析结果,例如基于计数结果和识别结果生成一个运动报表,表明目标对象在多长的时间内,做了多少个目标运动或动作,其中有多少个目标运动是标准的,有多少个是不标准的。之后,还可以反馈给目标对象。如此,通过姿态数据对识别目标对象的目标运动是否标准,能够识别目标对象对目标运动的标准度与熟练度,进一步提高用户粘度。
95.此外,所述根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果之后,还可以根据所述识别结果,确定所述目标对象进行所述目标运动的运动分析结果。例如,在获得识别结果之后,根据识别结果生成一个运动报表,表明目标对象在做了n个目标运动或动作,其中有多少个目标运动是标准的,有多少个是不标准的,还有不标准的程度等信息。之后,还可以将该运动报表反馈给目标对象。
96.参见图2,图2示出本技术一实施例提供的另一种运动分析方法的流程图:
97.步骤202:获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应。
98.步骤204:根据所述骨骼点数据,确定所述指定骨骼点的变化信息。
99.步骤206:在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果。
100.步骤208:根据所述骨骼点数据,确定所述目标对象的姿态信息。
101.步骤210:根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果。
102.步骤212:根据所述计数结果和所述识别结果,确定所述目标对象进行所述目标运动的运动分析结果。
103.实际应用中,客户端可以通过外界设备或服务端获取目标对象的运动视频,然后对运动视频进行解析,获得目标对象在进行目标运动过程中生成的数据序列。接着,根据数据序列中的骨骼点数据确定变化信息,并基于变化信息和预设计数条件进行计数,得到计数结果。同时根据骨骼点数据确定姿态信息,并基于姿态信息,对目标对象的目标运动进行识别,得到识别结果。进而,根据计数结果和识别结果生成运动分析结果。
104.需要说明的是,步骤204至步骤206与步骤208至步骤210,可以同时执行,也可以先执行步骤204至步骤206,再执行步骤208至步骤210;还可以先执行步骤208至步骤210,再执行步骤204至步骤206,本技术对此不作限定。
105.在本说明书实施例的一种可能的实现方式中,为了提高识别的效率和准确率,才可以获取姿态信息对应的样本姿态,根据样本姿态中目标样本姿态的数量来得到识别结果。识别目标对象是否符合目标运动对应的预设姿态。也即所述根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果,具体实现过程可以如
下:
106.将所述姿态信息映射至预设坐标系中,得到所述姿态信息对应的坐标数据;
107.根据所述坐标数据,确定所述姿态信息对应的预设数量个样本姿态;
108.在预设数量个所述样本姿态中目标样本姿态的数量大于预设数值的情况下,确定所述姿态信息符合所述目标运动对应的预设姿态。
109.具体的,预设坐标系是指预先设置的基准坐标系;预设数量是指预先设置的数值,如100;样本姿态是指姿态库中预先存储的携带由标签的姿态,例如标签为标准,则该样本姿态为目标样本姿态,又如标签为非标准,则该样本姿态为非目标样本姿态;预设数值是指预先设置的数值,用于衡量姿态信息是否符合预设姿态。
110.实际应用中,可以将姿态信息标准化为具有相同的躯干尺寸和垂直躯干方向,也即将姿态信息映射至预设坐标系中,得到姿态信息对应的坐标数据。然后,采用k-nn算法等算法,根据坐标数据找到最接近姿态信息的预设数量个样本姿态,如果预设数量个样本姿态中目标样本姿态的数量小于或等于预设数值,则姿态信息不符合目标运动对应的预设姿态,即姿态信息对应的目标动作不标准;如果预设数量个样本姿态中目标样本姿态的数量大于预设数值,则姿态信息符合目标运动对应的预设姿态,即姿态信息对应的目标动作标准。例如,预设数值为s,根据坐标数据确定姿态信息与各个样本姿态之间的相似度,并选取相似度排名前m个样本姿态,如果这m个样本姿态中至少有s个目标样本姿态,则说明姿态信息符合目标运动对应的预设姿态,即姿态信息对应的目标动作标准;如果这m个样本姿态中目标样本姿态不够s个,则说明姿态信息不符合目标运动对应的预设姿态,即姿态信息对应的目标动作不标准。
111.此外,还可以采用k-nn算法等算法,将姿态信息映射至预设坐标系中,得到姿态信息对应的坐标数据;根据坐标数据,确定与姿态信息之间的相似度大于相似度阈值的所有样本姿态;在所有样本姿态中目标样本姿态的比重大于预设比重的情况下,确定姿态信息符合所述目标运动对应的预设姿态。例如,根据姿态信息的坐标数据,获取到k个与姿态信息之间的相似度大于相似度阈值的样本姿态,如果k个样本姿态存在百分之八十以上的目标样本姿态,则确定姿态信息符合所述目标运动对应的预设姿态。
112.在本说明书实施例的一种可能的实现方式中,还可以在计数的同时对运动视频进行截图,之后将符合预设姿态的姿态信息对应的截图进行组合,得到目标视频,并反馈。也即所述在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果,具体实现过程可以如下:
113.在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果,并对所述运动视频进行截取,得到多个初始截图;
114.相应地,所述根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果,包括:
115.根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态;
116.若符合,从所述多个初始截图中获取所述姿态信息对应的目标截图;
117.根据所述目标截图生成合成视频,并反馈所述合成视频。
118.具体的,初始截图是指在计数的同时对运动视频进行截图得到的图片;目标截图是指符合预设姿态的姿态信息对应的初始截图;合成视频是指基于目标截图合成的视频。
119.实际应用中,在确定了变化信息后,可以将变化信息与预设计数条件进行比较,若不符合,则不计数;若符合,则确定目标对象完成一个目标运动(目标动作),累加目标对象完成目标运动的完成数目,得到计数结果,同时计数的时刻将记录视频截图数据,也即对运动视频进行截取,得到多个初始截图。在确定了姿态信息后,对姿态信息进行检测,来判断目标对象是否符合目标运动对应的预设姿态,也即根据姿态信息识别目标对象的目标运动是否标准,若不符合,则不处理;若符合,则从多个初始截图中获取该姿态信息对应的目标截图;然后基于目标截图生成合成视频,也即目标对象的高光视频,之后反馈给目标对象。
120.为了减少数据处理量提高数据处理效率,可以将初始截图进行压缩来降低网络传输成本,如将初始截图转化为base64字符串传输到后端,利用java opencv将base64字符转换为图片格式的初始截图进行存储。在从初始图片中筛选出目标截图后,保证一个目标截图在固定30帧的视频帧率下合成视频,并将合成视频上传到分布式网络并将视频地址返回给前端,并清理本地残留数据。
121.可选地,为了提高获取目标截图的效率,可以基于时间戳从初始截图中获取目标截图。也即所述从所述多个初始截图中获取目标姿态信息对应的目标截图,具体实现过程可以如下:
122.确定所述目标姿态信息对应的时间戳;
123.根据所述时间戳,从所述多个初始截图中获取所述时间戳对应的所述目标截图。
124.具体的,时间戳是指时间信息。
125.实际应用中,在截图的同时会也会记录初始截图的时间戳。当根据某姿态信息,识别目标对象符合目标运动对应的预设姿态时,可以获取该姿态信息对应的时间戳,然后将该时间戳与各初始截图的时间戳进行比较,将与姿态信息的时间戳相同的初始截图确定为目标图片。
126.需要说明的是,计数与识别可以是同步进行,当目标对象每完成一个目标运动,计数加一,此时根据目标对象完成这个目标运动的姿态信息及逆行识别,识别目标对象动作是否标准,即目标对象是否符合目标运动对应的预设姿态;也可以是先计数后识别,当目标对象完成所有目标运动后,在根据目标对象完成各目标运动的姿态信息及逆行识别,识别目标对象动作是否标准。
127.参见图3a,图3a示出了本技术一实施例提供的一种运动分析方法的处理流程图:客户端获取目标对象的运动视频;然后对运动视频进行解析,获得目标对象在进行目标运动过程中生成的数据序列,即按照预设周期采集的指定骨骼点的骨骼点数据;接着根据骨骼点数据确定指定骨骼点的变化信息,并根据骨骼点数据确定目标对象的姿态信息;进一步地,在变化信息达到预设计数条件的情况下,累加目标运动的完成数目,得到计数结果,并根据姿态信息识别目标对象是否符合目标运动对应的预设姿态,得到识别结果;再根据计数结果和识别结果,确定目标对象进行目标运动的运动分析结果。
128.参见图3b,图3b示出了本技术一实施例提供的另一种运动分析方法的处理流程图,以目标对象为用户为例进行说明:目标用户登录虚拟社交空间,进入好友虚拟房间后,选择邀请好友上线,同时选择与好友pk。在邀请好友上线时会发送邀请,若好友上线,则好友开始准备,若好友不上线,则结束与好友pk。在与好友pk后,进行异步pk,先开启摄像头,对人体进行识别,识别成功后开始挑战,在挑战过程中,对目标用户和好友进行目标运动分
别计数。完成挑战后,到达挑战详情页,展示pk结果。之后还可以展示目标用户和/或好友的高光视频,也即目标视频。
129.结合图4对图3b进一步说明,图4示出了本技术一实施例提供的一种运动分析方法的界面示意图:在开始摄像头之后,进行人体识别,页面出现互动小提示,提示用户全身出现在屏幕识别更精准。在识别成功后,开始挑战,页面会提示即将开始的动作,如即将开始深蹲,同时显示深蹲对应的姿势。在屏幕显示“go”之后开始运动,屏幕将实时显示剩余时间,如8:00,以及用户与好友的计数结果,如5和3。剩余时间结束后,页面会提示即将开始的下一个动作,如高抬腿,同时显示高抬腿对应的姿势。相应地,在屏幕显示“go”之后开始运动,屏幕将实时显示剩余时间,如8:00,以及用户与好友的计数结果,如5和3。挑战结束后,显示挑战详情页,包含用户和好友的挑战结果,如用户胜利,好友失败,还包含本轮结算,如用户做了30个、好友做了25个。此外,挑战详情页还可以有继续挑战和送他小花花的按键,其中继续挑战用于与好友继续pk,送他小花花用于鼓励好友或者为好友点赞。如此,异步pk以及在pk过程中的动效和语音交互能帮助用户降低运动的枯燥感。此外,还可以把运动成果置换成金币来购买虚拟家具和虚拟服饰,增加了运动的成就感,通过熟人社交将用户与好友关联起来增加了运动的陪伴感。
130.需要说明的是,现有技术中对目标运动进行计数和标准度识别会先以实时的模型训练得出结果,虽然可以保证识别的准确率有所提高,但对使用者的设备性能也会有一定要求,在部分动作变化较快的训练(比如开合跳、跳绳),在实时采集到骨骼点数据后的模型计算都会造成延迟反馈的可能。本说明书骨骼点的相对位移给用户带来及时反馈和粗略定位高光时刻,即初始截图,但会对骨骼点数据进行校验即根据姿态信息进行识别,可以反馈到目标对象完成的标准动作数。如此,可以做到可持续学习的情况,在能够获得骨骼点数据,可以对基于姿态信息和识别结果后重新对样本动作的数据进行训练,配合人工检验,进行自动调参,达到持续完善的目的。
131.本技术提供的运动分析方法,获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;根据所述骨骼点数据,确定所述指定骨骼点的变化信息;在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;根据所述计数结果和所述识别结果,确定所述目标对象进行所述目标运动的运动分析结果。通过骨骼点数据确定指定骨骼点的变化信息,并基于变化信息进行计数,可以降低计数的延迟,提高计数的快速性,从而可以及时给目标对象反馈计数,降低运动的枯燥感。
132.其次,本技术提供的运动分析方法,通过姿态数据对识别目标对象的目标运动是否标准,能够识别目标对象对目标运动的标准度与熟练度。进一步提高用户粘度。
133.此外,在现有骨骼点检测计数上,针对多种训练动作增加了姿态识别和运动过程中实时计数的功能。当目标对象进行深蹲、开合跳、或者跳绳等幅度较大并带有重复率的训练动作时,利用实时检测骨骼点的相对位移来对重复动作进行一个计数,此类计数方式耗时短,对设备的性能要求低,在目标对象运动体验方面可以做到有效的及时反馈。与此同时,骨骼点数据可以持续传输到后端的对应训练动作模型进行二次校验来确保用户动作的标准化,从而在完练结束后筛选出标准动作数并作为报告的一部分返给目标对象。并且,在
实时计数的同时会对目标对象的当前动作进行截图,用于基于动作的标准生成目标视频,提供了能够分享运动成果的功能。
134.与上述方法实施例相对应,本技术还提供了运动分析装置实施例,图5示出了本技术一实施例提供的一种运动分析装置的结构示意图。如图5所示,该装置包括:
135.获取模块502,被配置为获取目标对象的运动视频,对所述运动视频进行解析,获得所述目标对象在进行目标运动过程中生成的数据序列,其中,所述数据序列包括按照预设周期采集的指定骨骼点的骨骼点数据,所述指定骨骼点与所述目标运动相对应;
136.第一确定模块504,被配置根据所述骨骼点数据,确定所述指定骨骼点的变化信息;
137.第一分析模块506,被配置为在所述变化信息达到预设计数条件的情况下,累加所述目标运动的完成数目,得到计数结果;
138.第二确定模块508,被配置为根据所述计数结果,确定所述目标对象进行所述目标运动的运动分析结果。
139.可选地,所述装置还包括:
140.第三确定模块,被配置为根据所述骨骼点数据,确定所述目标对象的姿态信息;
141.第二分析模块,被配置为根据所述姿态信息,识别所述目标对象是否符合所述目标运动对应的预设姿态,得到识别结果;
142.所述第二确定模块508,被配置为根据所述计数结果和所述识别结果,确定所述目标对象进行所述目标运动的运动分析结果。
143.可选地,所述获取模块502,还被配置为:
144.对所述目标对象进行所述指定骨骼点的检测;
145.在检测到所述指定骨骼点的情况下,获取所述目标对象的所述运动视频。
146.可选地,所述骨骼点数据包括位置数据,所述变化信息包括位移信息;
147.所述第一确定模块504,还被配置为:
148.根据所述指定骨骼点的当前位置数据和预设初始位置数据,确定所述指定骨骼点的位移信息。
149.可选地,所述第一确定模块504,还被配置为:
150.确定第一预设骨骼点与第二预设骨骼点之间的基准距离,其中,所述第一预设骨骼点与所述第二预设骨骼点用于约束所述目标对象进行所述目标运动的运动范围;
151.将所述指定骨骼点的当前位置数据与预设初始位置数据进行比较,获得所述指定骨骼点的移动距离;
152.根据所述基准距离和所述移动距离,确定所述指定骨骼点的位移信息。
153.可选地,所述变化信息包括所述目标对象从预设初始状态开始变化的第一变化信息、以及所述目标对象还原至所述预设初始状态的第二变化信息;
154.所述第一分析模块506,还被配置为:
155.监测所述第一变化信息;
156.在所述第一变化信息达到第一预设阈值的情况下,继续监测所述第二变化信息;
157.在所述第二变化信息小于第二预设阈值的情况下,累加所述目标运动的完成数目,得到计数结果。
local area network)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)接口,等等。
177.在本技术的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
178.计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
179.其中,处理器620执行所述计算机指令时实现所述的运动分析方法的步骤。
180.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的运动分析方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述运动分析方法的技术方案的描述。
181.本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述运动分析方法的步骤。
182.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的运动分析方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述运动分析方法的技术方案的描述。
183.上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
184.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
185.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
186.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
187.以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1