一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

人体姿态还原方法、装置、终端设备及存储介质

2022-09-02 19:09:45 来源:中国专利 TAG:


1.本技术属于运动捕捉技术领域,尤其涉及一种人体姿态还原方法、装置、终端设备及存储介质。


背景技术:

2.运动捕捉技术目前已广泛应用于步态分析、生物力学、医疗康复、人机交互与控制等领域。越来越多的运动捕捉设备出现在人们的生活中,例如,用于动画制作的运动捕捉设备、实现人与虚拟环境交互的运动捕捉设备以及用于分析人体体能训练的运动捕捉设备等。但是现有的运动捕捉设备为获取更多的人体运动数据,在人体上安装数量过多,不仅存在穿戴耗时、安装复杂的问题,还对人体的正常运动造成负担,导致获取的人体运动数据测量不精确。因此,如何使运动捕捉设备穿戴简便且不影响人体的正常运动成为了一个急需解决的重要问题。


技术实现要素:

3.本技术实施例提供了一种人体姿态还原方法、装置、终端设备及存储介质,可以解决现有技术中运动捕捉设备穿戴复杂且运动数据测量不精确的问题。
4.本技术实施例的第一方面提供了一种人体姿态还原方法,所述人体姿态还原方法包括:
5.获取与目标运动场景相关的目标运动数据,所述目标运动场景是指人体的运动所属的场景;
6.根据所述目标运动数据,确定运动捕捉设备在所述人体上的目标安装位置;
7.在所述运动捕捉设备已安装在所述目标安装位置的情况下,获取所述运动捕捉设备捕捉的运动数据;
8.根据所述目标运动数据与所述人体上的目标安装位置,训练神经网络;
9.将所述运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,还原出所述人体的运动姿态。
10.本技术实施例的第二方面提供了一种人体姿态还原装置,所述人体姿态还原装置包括:
11.目标获取模块,用于获取与目标运动场景相关的目标运动数据,所述目标运动场景是指人体的运动所属的场景;
12.位置确定模块,用于根据所述目标运动数据,确定运动捕捉设备在所述人体上的目标安装位置;
13.运动数据获取模块,用于在所述运动捕捉设备已安装在所述目标安装位置的情况下,获取所述运动捕捉设备捕捉的运动数据;
14.训练模块,用于根据所述目标运动数据与与所述人体上的目标安装位置,训练神经网络;
15.还原模块,用于将所述运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,还原出所述人体的运动姿态。
16.本技术实施例的第三方面提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的人体姿态还原方法。
17.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的人体姿态还原方法。
18.本技术实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述第一方面所述的人体姿态还原方法。
19.本技术实施例与现有技术相比存在的有益效果是:在本技术实施例中,首先获取与目标运动场景相关的目标运动数据,根据该目标运动数据可以确定运动捕捉设备在人体上的目标安装位置,该目标安装位置为运动捕捉设备在人体上的最佳安装位置,根据该目标安装位置可以获取到人体上需要安装的运动捕捉设备的数量,该数量少于现有技术中在人体各个部位都安装运动捕捉设备的数量,故本技术需安装的运动捕捉设备的数量较少,可以节约安装成本,穿戴较为方便。其次,由于目标安装位置为运动捕捉设备在人体上的最佳安装位置,这些位置可以在传感器数量一定的情况下最大程度地获取人体运动信息,从而使运动捕捉设备捕捉的运动数据为还原人体姿态精确度更高的运动数据。最后,将运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,就可以还原出人体的运动姿态。采用上述技术方案,可以解决现有技术中运动捕捉设备穿戴复杂且针对具体应用场景下还原精度不高的问题。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例一提供的一种人体姿态还原方法的流程示意图;
22.图2是本技术实施例二提供的一种人体姿态还原方法的流程示意图;
23.图3是运动捕捉设备在人体上的待安装位置的示意图;
24.图4是运动捕捉设备在人体上的目标安装位置的示意图;
25.图5是本技术实施例三提供的一种人体姿态还原装置的结构示意图;
26.图6是本技术实施例四提供的一种终端设备的结构示意图。
具体实施方式
27.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
28.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
29.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
30.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
31.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
32.应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
33.为了说明本技术的技术方案,下面通过具体实施例来说明。
34.参照图1,示出了本技术实施例一提供的一种人体姿态还原方法的流程示意图,该人体姿态还原方法应用于终端设备,如图所示该人体姿态还原方法可以包括如下步骤:
35.步骤101,获取与目标运动场景相关的目标运动数据。
36.其中,目标运动场景是指人体的运动所属的场景,该目标运动场景包括但不限于走路、跑步、跳跃、打篮球、打乒乓球等运动场景。目标运动数据是指从人体运动数据库中获取的与目标运动场景相关的运动数据,该目标运动数据的数据类型包括但不限于加速度、姿态角度、速度等。
37.可选地,获取与目标运动场景相关的目标运动数据包括:
38.获取与目标运动场景相关的样本运动数据,样本运动数据的数量小于目标运动数据的数量;
39.根据样本运动数据,从人体运动数据库中获取目标运动数据。
40.在本技术实施例中,与目标运动场景相关的样本运动数据可以根据目标运动场景随机采集,例如,目标运动场景为步行运动场景,则可以从各种步行测试中收集样本运动数据,包括健康受试者的步态数据和患者的步态数据。
41.其中,与目标运动场景相关的样本运动数据是作为参考数据,采用样本运动数据作为参考数据的目的是:在获取目标运动数据时,给予一定的参考标准,以基于较少的样本运动数据,从人体运动数据库中获取较多的目标运动数据。使用较多的目标运动数据训练神经网络,能够提高神经网络的准确性。使用较多的目标运动数据确定运动捕捉设备在人体上的目标安装位置,能够提高目标安装位置的准确性。
42.可选地,根据样本运动数据,从人体运动数据库中获取目标运动数据包括:
43.从人体运动数据库中获取候选运动数据,候选运动数据的数量小于或等于人体运动数据库中的运动数据的数量;
44.根据候选运动数据和样本运动数据,利用启发式算法逐个计算候选运动数据序列
组合的价值函数;
45.确定价值函数取最大值时的候选运动数据序列组合为目标运动数据。
46.在本技术实施例中,首先从人体运动数据库中获取运动数据,该运动数据可以称为人体运动数据库中所选运动数据,人体数据库中所选运动数据可直接作为候选运动数据,该候选运动数据中包括候选运动序列。根据候选运动数据和样本数据,计算候选运动数据序列组合的价值函数,当候选运动数据序列组合的价值函数取最大值时,确定该候选运动数据序列组合为目标运动数据。其中候选运动数据序列组合为候选运动数据中任意数据序列的组合。
47.可选地,从人体运动数据库中获取候选运动数据还包括:
48.计算样本运动数据与人体运动数据库中各运动数据的相似度;
49.若人体运动数据库中存在与样本运动数据的相似度大于相似度阈值的运动数据,则获取与样本运动数据的相似度大于相似度阈值的运动数据中数据序列的数据帧数量;
50.若与样本运动数据的相似度大于相似度阈值的运动数据中存在数据帧数量大于预设数量的数据序列,则确定该数据序列为候选运动数据。
51.在本技术实施例中,首先从人体运动数据库中获取运动数据,该运动数据可以称为人体运动数据库中所选运动数据,再从样本运动数据中获取样本数据,计算样本运动数据与人体运动数据库所选运动数据的相似度,若样本运动数据与人体运动数据库所选运动数据的相似度大于相似度阈值,则确定该所选运动数据为候选运动数据。其次继续从人体运动数据库中获取运动数据,并进行上述的相似度判断,将满足与样本数据的相似度大于相似度阈值的运动数据确定为候选运动数据,直至人体运动数据库中的运动数据全部获取并判断完毕,从而确定出人体运动数据库中的所有候选运动数据。最后根据候选运动数据和样本数据,计算候选运动数据序列组合的价值函数,当候选运动数据序列组合的价值函数取最大值时,确定该候选运动数据序列组合为目标运动数据。其中候选运动数据序列组合为候选运动数据中任意数据序列的组合。
52.示例性地,假定人体运动数据库中包含的运动数据集为da,由于大多数运动数据的周期为50帧,因此可以以50帧为一个单元将da分为f等份,同时以50帧为一个单元将样本运动数据分为e等份,其中f和e均为正整数。首先随机从f等份中选择一个数据单元作为数据单元1。同时,从样本运动数据的e等份中选择一个数据单元作为数据单元2。其次使用余弦角计算该数据单元1和数据单元2之间的相似度,其中相似度的具体计算方法可以表示如下:
[0053][0054]
其中,n是指数据单元中的帧数,一般将n取值为50;u1为数据单元1,u2为数据单元2;x
1i
是指数据单元1中的第i帧运动数据,x
2i
是指数据单元2中的第i帧运动数据数据;《x
1i
,x
2i
》是指x
1i
和x
2i
之间的点积计算;||x
1i
||,||x
2i
||分别是指数据单元1中第i帧运动数据的长度和数据单元2中第i帧运动数据的长度。
[0055]
若d(u1,u2)的值大于相似度阈值,则确定数据单元1为候选运动数据中的一个单元,其中,相似度阈值一般设置为0.89。遍历人体运动数据库中所有数据单元,取与样本数
据单元的相似度大于0.89的数据单元组成候选运动数据。
[0056]
需要说明的是,所选的数据单元1中的数据类型与所选的数据单元2的数据类型相同,以避免在获取目标运动数据时,由于不同数据类型之间相互比较产生较大的误差。例如,数据单元1的数据类型为姿态角度,则所选的数据单元2的数据类型也为姿态角度。
[0057]
还需要说明的是,在本技术实施例中,人体运动数据库中的运动数据包含于运动数据集中,且运动数据集包含于人体运动数据库中,其中运动数据中包括了数据序列,每个数据序列都包括h个数据帧,其中h为正整数。
[0058]
在本技术实施例中,首先从人体运动数据库中获取与样本数据的相似度大于相似度阈值的运动数据,进而获取该运动数据中数据序列的数据帧数量。其次将获取到的运动数据中数据序列的数据帧数量与预设数量作比较,若获取到的运动数据中数据序列的数据帧数量大于预设数量,则确定该数据序列为候选运动数据。
[0059]
其中,与样本运动数据的相似度大于相似度阈值的运动数据为满足相似度条件的运动数据。候选运动数据在通过价值函数的运算之后,可以得到目标运动数据,而目标运动数据在人体姿态还原过程中可以用于bi-rnn的训练,由于bi-rnn中数据序列长度为300帧,若输入序列长度小于300帧的数据,会导致bi-rnn的训练不准确。因此,应在满足相似度条件的运动数据中选择序列长度大于300帧的数据。又由于序列长度较短的运动数据无法表达人体运动中一个动作的连贯性,且与样本运动数据的运动类型不同,所以该序列长度较短的运动数据在满足相似度条件的运动数据中属于冗余数据,可以删除,以提高神经网络的准确性以及目标安装位置的准确性。因此,可以在满足相似度条件的运动数据选择序列长度较长的运动数据,例如选择序列长度在1200帧以上的运动数据作为目标运动数据,即将上述预设数量设置为1200。
[0060]
可选地,根据候选运动数据和样本运动数据,利用启发式算法逐个计算候选运动数据序列组合的价值函数包括:
[0061]
获取候选数据特征和样本数据特征,候选数据特征是指候选运动数据的数据特征,样本数据特征是指样本运动数据的数据特征;
[0062]
根据候选数据特征和样本数据特征,计算候选运动数据与样本运动数据之间的概率分布差异;
[0063]
根据候选数据特征,计算候选运动数据的信息量;
[0064]
根据候选运动数据与样本运动数据之间的概率分布差异、候选运动数据的信息量和候选运动数据包括的数据帧数量,利用启发式算法逐个计算候选运动数据序列组合的价值函数。
[0065]
在本技术实施例中,上述每个数据帧都包括l个数据特征,其中l为正整数,根据该数据特征可区分人体动作的方向和大小。候选数据特征为候选运动数据中的一个子集,且该候选数据特征为候选运动数据中的最小单位。同样,样本数据特征为样本运动数据中的最小单位。
[0066]
在具体实现中,每个候选数据特征和每个样本数据特征都具有边际分布概率,首先计算候选运动数据中的每个候选数据特征的边际分布概率,同时计算样本运动数据中每个样本数据特征的边际分布概率,其次对每个候选数据特征的边际分布概率求和可以得出候选运动数据的联合概率分布,对每个样本数据特征的边际分布概率求和可以得出样本运
动数据的联合概率分布,最后将候选运动数据的联合概率分布与样本运动数据的联合概率分布相减,可以得出候选运动数据与样本运动数据之间的概率分布差异。
[0067]
示例性地,本技术采用相对熵(又被称为kullback-leibler散度)来度量候选数据特征和样本数据特征之间边际概率分布的差异,具体可以通过如下公式计算候选运动数据与样本运动数据之间的概率分布差异:
[0068][0069]
其中,db是指候选运动数据,d
ref
是指样本运动数据;nf是指候选数据特征的数量;本技术分别根据候选运动数据和样本运动数据中每个特征的最大值和最小值将每个特征分为20个间隔,即根据x的分布范围将x划分成20个间隔,χ是指其中的一个间隔,x是指该间隔中的数值;pi(x)是指候选运动数据db的第i个候选数据特征的边际概率分布,qi(x)是指样本运动数据d
ref
的第i个样本数据特征的边际概率分布。pi(x)的具体计算过程可以表示如下:
[0070][0071]
其中,k是指候选运动数据的数据序列数量;lk是指候选运动数据中第k个数据序列包含的数据帧数量;ni(x)的具体计算方法可以由以下公式表示:
[0072][0073]
其中,δ
kji
(x)是指候选运动数据中第k个数据序列中第j帧中的第i个数据特征,具体计算方法可以由以下公式表示:
[0074][0075]
在本技术实施例中,qi(y)的计算方法与上述pi(x)相同,具体计算过程可以表示如下:
[0076][0077][0078][0079]
其中,kq是指样本运动数据的数据序列数量;l
kq
是指样本运动数据中第k个数据序列包含的数据帧数量,δ
kqji
(x)是指样本运动数据中第k个数据序列中第j帧中的第i个数据
特征。
[0080]
在本技术实施例中,候选运动数据的信息量可以是指候选运动数据的信息熵。为了保证在候选运动数据的信息量保持不变的情况下,减少候选运动数据的数量,以获取更精确的目标运动数据,可以删除候选运动数据的冗余数据,以提高系统的运行效率。
[0081]
示例性地,计算候选运动数据信息熵的方法具体可以通过以下方式:
[0082][0083]
其中,h(db)是指候选运动数据的信息量;nf是指候选数据特征的数量。
[0084]
候选运动数据包括的数据帧数量可以通过以下计算公式得到:
[0085][0086]
其中,n(db)是指候选运动数据包括的数据帧数量。
[0087]
根据上述公式,利用启发式算法,候选运动数据中数据序列的价值函数具体可以表示为:
[0088][0089]
其中,α是指价值系数;nf是指候选数据特征和样本数据特征的数量;当从候选运动数据db中选择的d使上式最大时,d是最佳的,确定此时的d为目标运动数据,其中d是指候选运动数据序列组合。
[0090]
需要说明的是,本技术根据可以选择出数据帧数量较小的数据;根据可以删除候选运动数据中存在的冗余数据,进而通过贪婪算法(启发式算法的一种)获取最佳候选运动数据序列组合d,并确定d为目标运动数据。
[0091]
步骤102,根据目标运动数据,确定运动捕捉设备在人体上的目标安装位置。
[0092]
在本技术实施例中,运动捕捉设备可以是指惯性测量单元(inertial measurement unit,imu)imu主要由三个微电机系统(micro-electro-mechanical system,mems)加速度传感器及三个陀螺和解算电路组成,mems加速度传感器是利用传感质量的惯性力测量的传感器,通常由标准质量块(传感元件)和检测电路组成。
[0093]
在本技术实施例中,根据选择尽可能少的运动捕捉设备以准确还原人体的运动姿态这一思想,确定运动捕捉设备在人体上的目标安装位置。首先在选择运动捕捉设备的位置时,需考虑不同位置的运动捕捉设备捕捉到的运动数据的信息量,且选择一个位置后,可以根据运动捕捉设备在该位置捕捉到的运动数据的信息量来选择后续位置,因此,需要最大化已选择位置的运动捕捉设备与未选择位置的运动捕捉设备之间的相关性。其次,虽然不同位置的运动捕捉设备之间存在相关性,但是已选择位置的运动捕捉设备捕捉到的运动数据之间也包含了冗余的数据信息。为了使目标安装位置上的运动捕捉设备可以准确地还
原人体的运动姿态,可以采用最大相关性和最小冗余特征选择算法,确定运动捕捉设备在人体上的目标安装位置。
[0094]
步骤103,在运动捕捉设备已安装在目标安装位置的情况下,获取运动捕捉设备的运动数据。
[0095]
在本技术实施例中,在运动捕捉设备已安装在目标安装位置的情况下,其运动捕捉设备捕捉的运动数据包括相对于世界坐标系的加速度
was
和旋转矩阵其中,旋转矩阵是指运动捕捉设备在世界坐标系中的方向,同时获取在当前姿势中人体每个骨骼的方向通过将运动捕捉设备在世界坐标系中的方向与当前姿势中每个骨骼的已知方向进行匹配,可以确定从运动捕捉设备到人体的旋转矩阵。确定从运动捕捉设备到人体的旋转矩阵具体可以表示如下:
[0096][0097]
其中,是指人体到运动捕捉设备的旋转矩阵,对计算逆矩阵可以得到运动捕捉设备到人体的旋转矩阵。
[0098]
由于神经网络输入的运动数据方向应与人体的运动方向一致,即无论人体面对哪个方向进行运动,运动捕捉设备捕捉的运动数据方向都应与神经网络输入的运动数据的方向一致,所以需要对安装在人体骨骼上的运动捕捉设备做相对于人体脊柱的标准化。每个骨骼的标准化方向和加速度的计算可以表示如下:
[0099][0100][0101]
其中,是指世界坐标系相对于根骨骼的旋转矩阵;是指每个骨骼的标准化旋转矩阵;
rootab
是指每个骨骼的标准化速度;
wab
是指骨骼相对于世界坐标系的加速度;
waroot
是指根骨骼相对于世界坐标系的加速度,其中根骨骼是指人体脊柱。
[0102]
可选地,在获取运动捕捉设备捕捉的运动数据之后还包括:
[0103]
根据预设的人体骨骼的姿态对运动捕捉设备捕捉的运动数据进行归一化处理,得到归一化之后的运动数据,人体骨骼的姿态是指人体骨骼上的局部坐标系相对于世界坐标系的旋转矩阵;
[0104]
在本技术实施例中,人体骨骼上的局部坐标系相对于世界坐标系的旋转矩阵是由人体骨骼上局部坐标系相对于世界坐标系的旋转角度组成的。假定人体骨骼中可安装运动捕捉设备的骨骼有w个,而归一化之后的运动数据包括v个骨骼的归一化旋转矩阵和加速度,其中w和v都为正整数,且v小于w。
[0105]
步骤104,根据目标运动数据与人体上的目标安装位置,训练神经网络。
[0106]
在本技术实施例中,目标运动数据可以用于神经网络的训练,该神经网络用于还原人体的运动姿态。其中,人体运动数据库中包括不同运动场景下的运动数据,且人体运动数据库中的数据具有随机性和任意性,不具备相应的运动类型的标签。因此,在目标运动场景下,如果直接采用人体运动数据库中的运动数据对神经网络进行训练,所训练的神经网
络并没有针对性,无法准确地还原出目标运动场景下人体的运动姿态,而本技术通过采用人体运动数据库中与目标运动场景相关的目标运动数据以及运动捕捉设备在人体上的目标安装位置捕捉到的运动数据对神经网络进行训练,可以对神经网络进行针对性训练,确保神经网络能够较为准确地还原出目标运动场景下人体的运动姿态。
[0107]
其中,根据目标运动数据与人体上的目标安装位置训练的神经网络包括但不限于双向递归神经网络(bidirection recursive neural network,bi-rnn)。
[0108]
步骤105,将运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,还原出人体的运动姿态。
[0109]
在本技术实施例中,运动捕捉设备捕捉的运动数据包括v个骨骼的归一化旋转矩阵和加速度,将上述v个骨骼的归一化旋转矩阵和加速度输入到已训练的神经网络中,输出为剩余骨骼的归一化轴角和加速度,获取人体所有骨骼的归一化轴角和加速度,可以还原出人体的运动姿态,其中剩余骨骼为可安装运动捕捉设备的骨骼减去v个骨骼的剩余骨骼。
[0110]
其中,归一化轴角是指人体骨骼上的局部坐标系相对于世界坐标系的旋转轴和旋转角度。
[0111]
在本技术实施例中,首先获取与目标运动场景相关的目标运动数据,根据该目标运动数据可以确定人体上需要安装的运动捕捉设备的数量和运动捕捉设备的目标安装位置,该目标安装位置为运动捕捉设备在人体上的最佳安装位置,根据安装位置可以获取到人体上需要安装的运动捕捉设备的数量,该数量少于现有技术中在人体各个部位都安装运动捕捉设备的数量,运动捕捉设备的数量少可以节约安装成本,同时穿戴方便。最后,将运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,输出未安装运动捕捉设备的骨骼处的测量数据,就可以还原出所述人体的运动姿态。采用上述技术方案,可以提高现有人体姿态还原方法中还原模型的运行速度,并提高还原的准确性。
[0112]
参照图2,示出了本技术实施例二提供的一种人体姿态还原方法的流程示意图,如图所示该人体姿态还原方法可以包括如下步骤:
[0113]
步骤201,获取与目标运动场景相关的目标运动数据。
[0114]
本实施例步骤201与前述实施例中步骤101类似,可以相互参阅,本实施例在此不再赘述。
[0115]
步骤202,获取运动捕捉设备在人体上的待安装位置,确定所有待安装运动捕捉设备中与除本身外的其他所有待安装运动捕捉设备捕捉的运动数据相关性最大的运动捕捉设备为第一运动捕捉设备。
[0116]
在本技术实施例中,获取运动捕捉设备在人体上的待安装位置,需要对安装在人体骨骼上的运动捕捉设备做相对于根骨骼的标准化转换,由于所有除安装在人体臀部以外的运动捕捉设备捕捉的运动数据都要转换成相对于臀部的标准化格式,所以待安装位置是指除臀部以外的其余待安装设备的安装位置。
[0117]
具体地,如图3所示的运动捕捉设备在人体上的待安装位置可以有20个,包括手、前臂、手臂、腿、大腿、脚、肩、脊柱、头和脖子等,臀部作为必要安装位置,不属于本技术实施例中的待安装位置。
[0118]
示例性地,20个待安装位置的待安装运动捕捉设备为本技术实施例中的所有待安装运动捕捉设备,确定第一运动捕捉设备的安装位置可以通过计算所有待安装运动捕捉设
备中与除本身外其他待安装运动捕捉设备的相关性的方法。例如,假定所有待安装运动捕捉设备中任一运动捕捉设备为x,其他待安装运动捕捉设备为y,那么相关性的计算方法具体可以表示如下:
[0119][0120]
其中,rele(x;y)是指x和y之间的相关性;range(x)是指第一运动捕捉设备位置的旋转幅度,range(y)是指运动捕捉设备y位置的旋转幅度;s是指每个运动捕捉设备捕捉的数据的维数;xi为第一运动捕捉设备捕捉的第i个运动数据,yj是y位置的运动捕捉设备捕捉的第i个运动数据,mic(xi,yj)是指xi和yj的最大信息系数。mic(xi,yj)的具体计算方法如下所示:
[0121][0122][0123]
其中,b是一个参数,通常取值为xi或yj数据帧数量的0.6次方;p(xi,yj)是x位置和y位置上分别捕捉到的第i个运动数据的联合概率密度函数,p(xi)是x位置上捕捉到的第i个运动数据的概率密度函数,p(yj)是y位置上捕捉到的第i个运动数据的概率密度函数。
[0124]
根据上述方法,确定所有待安装运动捕捉设备中任一运动捕捉设备为x与其他所有待安装设备的相关性最大时的x为第一运动捕捉设备,其余19个运动捕捉设备为第二运动捕捉设备。
[0125]
应理解,本技术实施例中,获取运动捕捉设备的待安装位置,根据待安装位置的目标运动数据,确定目标安装位置,可根据目标安装位置获取安装在目标安装位置的运动捕捉设备捕捉的运动数据,将该运动数据输入至已训练的神经网络中,神经网络可输出在所有待安装位置中除目标安装位置外的其他安装位置的运动数据,根据在目标安装位置捕捉的运动数据以及神经网络输出的运动数据,可还原人体姿态。
[0126]
步骤203,根据目标运动数据,计算所有第二运动捕捉设备与除本身外的其他所有第二运动捕捉设备捕捉的运动数据的相关性,并确定所有第二运动捕捉设备与所有第一运动捕捉设备的冗余性。
[0127]
在本技术实施例中,由于上述神经网络的输出的其他安装位置的变量个数大于1,在计算所有第二运动捕捉设备与除本身外的其他第二运动捕捉设备的相关性时,若直接根据已选择的传感器的数量计算相关性的平均值,无法达到归一化的效果,故计算所有第二捕捉运动设备与除本身外的其他第二运动捕捉设备的相关性具体可以通过以下方法:
[0128][0129]
其中,|s|是指从第二运动捕捉设备中选择出的运动捕捉设备的数量,一般取值为1;|c|是指第二运动捕捉设备中未被选择的运动捕捉设备的数量;si是指第二运动捕捉设备中选择出的运动捕捉设备捕捉的第i个运动数据,cj是指第二运动捕捉设备中未被选择
的运动捕捉设备捕捉的第j个运动数据;d(s,c)是指第二运动捕捉设备中选择出的运动捕捉设备与未被选择的运动捕捉设备之间相关性的值。
[0130]
在本技术实施例中,确定所有第二运动捕捉设备与所有第一运动捕捉设备的冗余性。其中所有第一运动捕捉设备是指已选择的所有第一运动捕捉设备,例如,所有第一运动捕捉设备的数量为两个,则所有第二运动捕捉设备与所有第一运动捕捉设备的冗余性是根据两个第一运动捕捉设备与所有第二运动捕捉设备分别计算冗余性,然后再进行累加得出的。
[0131]
示例性地,计算所有第二运动捕捉设备与所有第一运动捕捉设备的冗余性时,其冗余性的值越小,说明从第二运动捕捉设备选择出的运动捕捉设备与已选择出的所有第一运动捕捉设备的冗余度越低,其冗余性的计算方法具体可以表示如下:
[0132][0133]
其中,si是指从第二运动捕捉设备选择出的运动捕捉设备捕捉的第i个运动数据,sj是指所有第一运动捕捉设备捕捉的第j个运动数据;r(s)是指所有第二运动捕捉设备与所有第一运动捕捉设备的冗余性的值。
[0134]
步骤204,针对所有第二运动捕捉设备中的第i个第二运动捕捉设备,确定第i个第二运动捕捉设备的相关性和冗余性的差值为第i个第二运动捕捉设备的价值函数。
[0135]
在本技术实施例中,第i个第二运动捕捉设备为所有第二运动捕捉设备中任意一个运动捕捉设备,确定第i个第二运动捕捉设备的价值函数是指对所有第二运动捕捉设备依次计算各自的价值函数。其中,第i个第二运动捕捉设备的价值函数越大,说明将第i个第二运动捕捉设备作为第一运动捕捉设备之后,所有第一运动捕捉设备的测量信息量越大,测量信息量越大,输入神经网络之后输出的其他待安装的运动捕捉设备的运动数据越精确,因此,还原出的人体姿态也更精确。第i个第二运动捕捉设备的价值函数可以用第i个第二运动捕捉设备的测量信息量表示,第i个第二运动捕捉设备的价值函数具体可以表示如下:
[0136]
maxφi(di,ri),φi=d
i-ri[0137]
其中,φi是指第i个第二运动捕捉设备的价值函数,di是指第i个第二运动捕捉设备的相关性的值,ri是指第i个第二运动捕捉设备的冗余性的值。
[0138]
步骤205,将所有第二运动捕捉设备中价值函数最大的运动捕捉设备加入第一运动捕捉设备。
[0139]
在本技术实施例中,当根据步骤204计算出所有第二运动捕捉设备的价值函数后,将其中价值函数的值最大的第二运动捕捉设备加入第一捕捉运动设备,例如,原有第一捕捉运动设备的数量是2个,第二运动捕捉设备的数量是18个,在经过步骤205之后,第一运动捕捉设备的数量变为了3个,第二运动捕捉设备的数量变为了17个,即此时只有3个第一运动捕捉数量安装在人体上进行捕捉运动数据,神经网络输出为第二运动捕捉设备中的17个运动捕捉设备的运动数据,其中神经网络输出的运动数据为预测值。
[0140]
步骤206,判断其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量是否满足预设条件。
[0141]
在本技术实施例中,其他所有第二运动捕捉设备的测量误差是指第二运动捕捉设
备捕捉的真实值与预测值之间的差值,所有第一运动捕捉设备的总数量是根据步骤205所得出的第一运动捕捉设备的总数量,预设条件是指其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量满足对应的关系,该对应的关系具体可以表现为:
[0142][0143]
由上述公式可以获得其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量之间的关系图,根据关系图可以获取斜率发生突变的点,而斜率发生突变的点就是其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量需满足的预设条件,若其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量不满足预设条件,则返回执行步骤203;若其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量满足预设条件,则执行下述步骤207。
[0144]
步骤207,确定所有第一运动捕捉设备的安装位置为目标安装位置。
[0145]
在本技术实施例中,当其他所有第二运动捕捉设备的测量误差与所有第一运动捕捉设备的总数量满足预设条件时,可以获取此时所有第一运动捕捉的总数量量,并确定所有第一运动捕捉设备安装在人体上的数量。
[0146]
示例性地,当其他所有第二运动捕捉设备剩余15个,所有第一运动捕捉设备的总数量为5个,获取15个其他所有第二运动捕捉设备捕捉的真实运动数据与神经网络中输出的预测运动数据的测量误差,若该测量误差与所有第一运动捕捉设备的总数量在关系图中对应的点为斜率发生突变的点,则确定这5个第一运动捕捉设备的安装位置为目标安装位置。如图4所示为运动捕捉设备在人体上的目标安装位置,由于臀部为必要安装位置,故本技术确定的目标安装位置为除臀部外的另外5个安装位置。
[0147]
步骤208,在运动捕捉设备已安装在目标安装位置的情况下,获取运动捕捉设备的运动数据。
[0148]
本实施例步骤208与前述实施例中步骤103类似,可以相互参阅,本实施例在此不再赘述。
[0149]
步骤209,将运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,还原出人体的运动姿态。
[0150]
本实施例步骤209与前述实施例中步骤104类似,可以相互参阅,本实施例在此不再赘述。
[0151]
本技术实施例为了提高运动捕捉设备测量运动数据的精确度,且减少运动捕捉设备的穿戴数量,使受试者穿戴更加方便,使用基于最大相关性和最小冗余性的增量搜索算法对运动捕捉设备的安装数量和安装位置进行了优化,该安装数量少于现有技术中在人体各个部位都安装运动捕捉设备的数量,运动捕捉设备的数量少可以节约安装成本,同时采用优化算法确定的运动捕捉设备的安装位置可以准确还原人体姿态。
[0152]
参照图5,示出了本技术实施例三提供的一种人体姿态还原装置的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分,人体姿态还原装置具体可以包括如下模块:
[0153]
目标获取模块501,用于获取与目标运动场景相关的目标运动数据,目标运动场景
是指人体的运动所属的场景;
[0154]
位置确定模块502,用于根据目标运动数据,确定运动捕捉设备在人体上的目标安装位置;
[0155]
运动数据获取模块503,用于在运动捕捉设备已安装在目标安装位置的情况下,获取运动捕捉设备捕捉的运动数据;
[0156]
训练模块504,用于根据所述目标运动数据与所述人体上的目标安装位置,训练神经网络。
[0157]
还原模块505,用于将运动捕捉设备捕捉的运动数据输入到已训练的神经网络中,还原出人体的运动姿态。
[0158]
在本技术实施例中,目标数据获取模块501具体可以包括如下子模块:
[0159]
样本获取子模块,用于获取与目标运动场景相关的样本运动数据,样本运动数据的数量小于目标运动数据的数量;
[0160]
目标获取子模块,用于根据样本运动数据,从人体运动数据库中获取目标运动数据。
[0161]
可选地,目标获取子模块具体可以包括如下单元:
[0162]
候选获取单元,用于从人体运动数据库中获取候选运动数据,候选运动数据的数量小于或等于人体运动数据库中的运动数据的数量;
[0163]
函数计算单元,用于根据候选运动数据和样本运动数据,利用启发式算法逐个计算候选运动数据序列组合的价值函数;
[0164]
目标确定单元,用于确定价值函数取最大值时的候选运动数据序列组合为目标运动数据。
[0165]
可选地,候选获取单元具体可以用于:
[0166]
确定人体运动数据库中的运动数据为候选运动数据;
[0167]
或者计算样本运动数据与人体运动数据库中各运动数据的相似度;
[0168]
若所述人体运动数据库中存在与所述样本运动数据的相似度大于相似度阈值的运动数据,则获取所述与所述样本运动数据的相似度大于相似度阈值的运动数据中数据序列的数据帧数量;
[0169]
若所述与所述样本运动数据的相似度大于相似度阈值的运动数据中存在数据帧数量大于预设数量的数据序列,则确定该数据序列为所述候选运动数据。
[0170]
可选地,函数计算单元具体用于:
[0171]
获取候选数据特征和样本数据特征,候选数据特征是指候选运动数据的数据特征,样本数据特征是指样本运动数据的数据特征;
[0172]
根据候选数据特征和样本数据特征,计算候选运动数据与样本运动数据之间的概率分布差异;
[0173]
根据候选数据特征,计算候选运动数据的信息量;
[0174]
根据候选运动数据与样本运动数据之间的概率分布差异、候选运动数据的信息量和候选运动数据包括的数据帧数量,利用启发式算法逐个计算候选运动数据序列组合的价值函数。
[0175]
在本技术实施例中,位置确定模块502具体可以包括如下子模块:
programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0189]
所述存储器620在一些实施例中可以是所述终端设备600的内部存储单元,例如终端设备600的硬盘或内存。所述存储器620在另一些实施例中也可以是所述终端设备600的外部存储设备,例如所述终端设备600上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器620还可以既包括所述终端设备600的内部存储单元也包括外部存储设备。所述存储器620用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器620还可以用于暂时地存储已经输出或者将要输出的数据。
[0190]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0191]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0192]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0193]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0194]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0195]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0196]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0197]
本技术实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行时实现可实现上述各个方法实施例中的步骤。
[0198]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制。尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献