![关节运动数据调整方法、装置及电子设备与流程](https://img.xjishu.com/img/zl/2022/7/12/fhrbg3nqv.jpg)
1.本技术涉及数据处理技术领域,具体而言,涉及一种关节运动数据调整方法、装置及电子设备。
背景技术:2.在一些图像识别技术中,可以对二维视频图像中的人体或动物进行识别,从而获得人体或动物三维关节运动数据。例如,通过运动识别模型对二维视频图像中的人体目标进行关键肢体或关节识别,获得关键肢体或关节的三维运动位姿数据,然后根据三维运动位姿数据驱动相应的虚拟人体模型进行运动。但是,机器学习模型可能因为原视频图像质量缺陷或机器学习模型本身识别误差,导致输出的三维关节运动数据存在数据噪声,例如,存在数据突变。因此,通常运动识别模型输出的数据还需要进行去噪和平滑处理。常见平滑处理的方法通常是将多帧的结果进行加权平均,得到最终的输出结果。但是,这些平滑算法往往只针对位置和方向的处理,并未考虑到速度、角速度的处理,导致输出结果存在运动信息的缺失,而且也没将速度、角速度和位置、方向等数据结合起来处理,导致输出数据的自然度不够。
技术实现要素:3.为了克服现有技术中的上述不足,本技术的目的在于提供一种关节运动数据调整方法,包括:
4.从目标关节的关节运动数据序列中获取所述目标关节的第一数据帧的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据,其中,所述第一数据帧为在时间维度上位于所述第二数据帧之前的数据帧;
5.根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据;
6.根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在弹簧阻尼系统中所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据;
7.根据所述第二已调整偏差数据对所述第二关节运动数据进行调整。
8.在一种可能的实现方式中,所述根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在弹簧阻尼系统中所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据的步骤,包括:
9.根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在临界弹簧阻尼情况下,所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的
第二已调整偏差数据。
10.在一种可能的实现方式中,所述第二待调整偏差数据包括第二待调整位置偏差、第二待调整位移速度偏差、第二待调整角度偏差及第二待调整转动速度偏差;
11.所述第二已调整偏差数据包括第二已调整位置偏差、第二已调整位移速度偏差、第二已调整角度偏差及第二已调整转动速度偏差;
12.所述第二待调整位置偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的位置偏差数据,所述第二待调整位移速度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的位移速度偏差数据;所述第二待调整角度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的转动角度偏差数据,所述第二待调整转动速度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的角度转动速度偏差数据;
13.所述根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在临界弹簧阻尼情况下,所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据的步骤,包括:
14.按照以下公式计算所述第二已调整位置偏差所述第二已调整位移速度偏差所述第二已调整角度偏差及所述第二已调整转动速度偏差
[0015][0016][0017][0018][0019]
fast(z)=(1+z+0.48
×
z2+0.235
×
z3)-1
[0020]
其中,为所述第二待调整位置偏差,为所述第二待调整位移速度偏差,为所述第二待调整角度偏差,为所述第二待调整转动速度偏差,d为所述阻尼参数,δt为所述第一数据帧和所述第二数据帧之间的时间差;fast(z)为所述弹簧阻尼运动模型的多项式拟合函数。
[0021]
在一种可能的实现方式中,所述第一关节运动数据包括第一关节位置数据、第一关节转角数据、第一关节移动速度数据及第一关节转动速度数据;
[0022]
所述第二关节运动数据包括第二关节位置数据、第二关节转角数据、第二关节移动速度数据及第二关节转动速度数据;
[0023]
所述第一已调整偏差数据包括第一已调整位置偏差、第一已调整位移速度偏差、第一已调整角度偏差及第一已调整转动速度偏差;
[0024]
所述根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据的步骤,包括:
[0025]
按照以下公式计算所述第二待调整位置偏差所述第二待调整位移速度偏差所述第二待调整角度偏差及所述第二待调整转动速度偏差
[0026][0027][0028][0029][0030]
其中,为所述第一关节位置数据;为所述第一关节转角数据;为所述第一关节移动速度数据;为所述第一关节转动速度数据;
[0031]
为所述第二关节位置数据;为所述第二关节转角数据;为所述第二关节移动速度数据;为所述第二关节转动速度数据;
[0032]
为所述第一已调整位置偏差;为所述第一已调整位移速度偏差;为所述第一已调整角度偏差;为所述第一已调整转动速度偏差。
[0033]
在一种可能的实现方式中,所述方法还包括:
[0034]
获取二维目标视频图像;
[0035]
对所述二维目标视频图像进行关键关节识别,获得至少一个所述目标关节的三维的所述第二关节运动数据。
[0036]
在一种可能的实现方式中,所述方法还包括:
[0037]
根据调整后的所述第二关节运动数据驱动与所述目标关节对应的运动模型节点进行运动。
[0038]
在一种可能的实现方式中,所述获取所述目标关节的第一数据帧的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据的步骤,包括:
[0039]
分别获得多个不同的所述目标关节的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据;
[0040]
所述根据调整后的所述第二关节运动数据驱动与所述目标关节对应的运动模型节点进行运动的步骤,包括:
[0041]
根据多个不同的所述目标关节的调整后的所述第二关节运动数据,分别驱动同一运动模型中与各所述目标关节对应的不同运动模型节点进行运动。
[0042]
本技术的另一目的在于提供一种关节运动数据调整装置,包括:
[0043]
数据获取模块,用于从目标关节的关节运动数据序列中获取所述目标关节的第一数据帧的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据,其中,所述第一数据帧为在时间维度上位于所述第二数据帧之前的数据帧;
[0044]
偏差计算模块,用于根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据;
[0045]
偏差处理模块,用于根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在弹簧阻尼系统中所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据;
[0046]
数据调整模块,用于根据所述第二已调整偏差数据对所述第二关节运动数据进行调整。
[0047]
本技术的另一目的在于提供一种电子设备,包括处理器及机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述处理器执行时,实现本技术提供的关节运动数据调整方法。
[0048]
本技术的另一目的在于提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被一个或多个处理器执行时,实现本技术提供的关节运动数据调整方法。
[0049]
相对于现有技术而言,本技术具有以下有益效果:
[0050]
本技术实施例提供的关节运动数据调整方法、装置及电子设备,基于弹簧阻尼系统建模对关节运动数据进行动力学修正,从而在实现对关节运动数据平滑去噪的同时,可以很好的模拟真实的人体运动,使调整后的关节运动数据在驱动虚拟模型运动时有更高的自然度。
附图说明
[0051]
为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0052]
图1为本技术实施例提供的关节运动数据调整方法的步骤流程示意图。
[0053]
图2为本技术实施例提供的直播系统的示意图。
[0054]
图3为本技术实施例提供的电子设备的示意图。
[0055]
图4为本技术实施例提供的关节运动数据调整装置的功能模块示意图。
具体实施方式
[0056]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
[0057]
因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0058]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0059]
在本技术的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0060]
请参见图1,图1为本实施例提供的一种关节运动数据调整方法的步骤流程示意图,下面对该方法的各个步骤进行详细阐述。
[0061]
步骤s110,从目标关节的关节运动数据序列中获取所述目标关节的第一数据帧的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据,其中,所述第一数据帧为在时间维度上位于所述第二数据帧之前的数据帧。
[0062]
在一种可能的实现方式中,所述目标关节的关节运动数据可以为运动识别模型输出的目标关节的三维关节运动数据,如,所述目标关节的三维坐标位置、转动角度、位移速度、转动速度等。所述运动识别模型可以输出由多个数据帧组成的关节运动数据序列,在本实施例中,可以依次对各数据帧进行处理,其中,针对待调整的第二数据帧,需要使用所述第二数据帧和该第二数据帧之前的第一数据帧一起进行计算处理。
[0063]
步骤s120,根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据。
[0064]
在本实施例中,为了矫正所述目标关节的关节运动数据从第一数据帧变化至第二数据帧时可能产生的突变或者噪声,需要对第一数据帧和第二数据帧之间的偏差数据进行调整,因此,需要先根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据。
[0065]
步骤s130,根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在弹簧阻尼系统中所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据。
[0066]
在本实施例中,考虑将所述目标关节的运动视作在弹簧阻尼系统中运动,通过预设的弹簧阻尼运动模型根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,计算所述目标关节从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据。
[0067]
进一步地,考虑到通常情况下,人体关节活动时不会出现反复震荡,因此,在步骤s130中可以根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在临界阻尼(即,系统不存在震荡,且能够以最快的速度从第一数据帧指示的位置到达第二数据帧指示的位置)情况下,所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据。
[0068]
步骤s140,根据所述第二已调整偏差数据对所述第二关节运动数据进行调整。
[0069]
由于基于弹簧阻尼系统建模对关节运动数据进行动力学修正,从而在实现对关节运动数据平滑去噪的同时,可以很好的模拟真实的人体运动,使调整后的第二关节运动数据在驱动虚拟模型运动时有更高的自然度。
[0070]
具体地,在本实施例中,可以先对目标关节在进行临界阻尼的弹簧阻尼系统中的运动状态进行建模。设目标关节在一次运动中的目标位置和目标速度为xg,vg,初始位置和初始速度为x0,v0,则进行加权得到中间结果x
t
如下式(1):
[0071]
x
t
=(1-t
·
d)
·
x0+t
·d·
xg=x0+t
·d·
(x
g-x0)
[0072]
v0=d
·
(x
g-x0)
[0073]
x
t
=x0+t
·
v0[0074]
其中,t表示两个数据的间隔时间,d为与所述目标关键对应阻尼参数,t
·
d∈[0,1]表示加权的权重,可将d
·
(x
g-x0)视为数据变化的速度。
[0075]
因为当前的速度只和初始位置x0和目标位置xg的数据差有关,并未考虑之前的速度,导致速度上存在不连续性,因此增加速度的补偿项如下式(2):
[0076]
x
t
=x0+t
·
v0[0077]vt
=v0+t
·s·
(x
g-x0)+t
·d·
(v
g-v0)
[0078]
其中,s表示刚度参数,补偿项t
·s·
(x
g-x0)随着时间变化,保证速度的平滑性,引导项t
·d·
(v
g-v0)促使速度接近目标速度vg,得到速度的中间结果v
t
,由此完成运动状态的显示建模,其中主要参数为刚度参数s和阻尼参数d。
[0079]
然后对上述运动状态进行隐式建模,得到的弹簧阻尼系统的建模公式如下式(3):
[0080]
x
t
=j
·
e-yt
·
cos(w
·
t+p)+c
[0081]vt
=-y
·j·
e-yt
·
cos(w
·
t+p)-w
·j·
e-yt
·
sin(w
·
t+p)
[0082]
其中,j表示振幅,y控制衰减的时间,t表示系统时间,w表示振动频率,p表示振动相位,c表示整个函数的偏移,x
t
,v
t
表示t时刻的位置与速度,速度由位置表达式求导可得。
[0083]
根据目标位置xg、目标速度vg、初始位置x0和初始速度v0,对比显示与隐式建模公式,得到上述参数c,y,w的求解如下式(4):
[0084][0085][0086][0087]
当系统为临界阻尼时,满足条件w=0,即系统不存在震荡。基于临界阻尼条件,并根据系统初始状态计算,最终对式(3)进行简化,得到临界阻尼情况下的弹簧阻尼系统的运动公式如下式(5):
[0088]
x
t
=j0·
e-yt
+t
·
j1·
e-yt
+c
[0089]vt
=-y
·
j0·
e-yt-y
·
t
·
j1·
e-yt
+j1·
e-yt
[0090]
其中,参数c=xg+(d
·
vg)/(d2/4),参数y=d/2,参数j0=x
0-c,参数j1=v0+j0·
y,即式(5)可由参数x0,v0,d完全表示,由此可见,临界阻尼状态下,弹簧阻尼系统的响应只由阻尼参数d决定。类似的,方向与角速度的临界阻尼弹簧系统也能得到类似式(5)的结果。
[0091]
通常,运动识别模型输出关节运动数据包括根关节的位置、旋转角度、其他关键关节的局部旋转角度与局部位置。以第i个目标关节为例,记第t-1帧(如本实施例中的第一数据帧)时的第一关节位置数据和第一关节转角数据为p
it-1
和q
it-1
,记第t帧(如本实施例中的第二数据帧)时第二关节位置数据与第二关节转角数据分别为p
ti
和q
ti
。
[0092]
由此可计算该目标关节的在第t帧时的第二关节移动速度数据以及第二关节转动速度数据以及第二关节转动速度数据其中δt是前后两帧的之间的时间差,采用轴角表示。同理,可计算出第t-1帧时的第一关节移动速度数据和第一关节转动速度数据在本实施例中,针对每个数据帧均可以做类似计算,此处不再赘述。
[0093]
在步骤s120中,可以根据待调整的第二数据帧对应的第二关节运动数据和所述第二数据帧之前的第一数据帧对应的第一关节运动数据计算所述第二数据帧相较于第一数据帧的所述第二待调整偏差数据,所述第二待调整偏差数据包括第二待调整位置偏差、第二待调整位移速度偏差、第二待调整角度偏差及第二待调整转动速度偏差。所述第二待调整位置偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的位置偏差数据,所述第二待调整位移速度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的位移速度偏差数据;所述第二待调整角度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的转动角度偏差数据,所述第二待调整转动速度偏差表征所述目标关节在所述第一数据帧指示的位置和所述第二数据帧指示的位置之间的角度转动速度偏差数据。
[0094]
由于系统的运动偏差会随着时间传递,因此在计算偏差时还需要考虑之前的运动偏差,基于此,在本实施例中,采用上一帧已经过弹簧阻尼系统调整过的所述第一已调整偏差数据。应用弹簧阻尼系统的目的是逐渐降低运动偏差到无偏差,即从上一帧的运动状态过渡到当前帧的运动状态,其中系统初始帧的运动偏差为0,具体如下式(6):
[0095][0096][0097][0098][0099]
其中,为第二待调整位置偏差,为第二待调整位移速度偏差、为第二待调整角度偏差,为第二待调整转动速度偏差,也采用轴角表示;
[0100]
为所述第一已调整位置偏差;为所述第一已调整位移速度偏差;
为所述第一已调整角度偏差;为所述第一已调整转动速度偏差;
[0101]
为所述第一关节位置数据;为所述第一关节转角数据;为所述第一关节移动速度数据;为所述第一关节转动速度数据;
[0102]
为所述第二关节位置数据;为所述第二关节转角数据;为所述第二关节移动速度数据;为所述第二关节转动速度数据。
[0103]
假设当所述第二数据帧对应的弹簧阻尼系统的初始状态为位置偏差与速度偏差目标位置偏差及目标速度偏差为0,即xg=0,vg=0,时间参数t=δt,则式(5)中参数c,y,j0,1可以更新为c=0,y=d/2,
[0104]
在本实施例中,采用多项式拟合指数函数提高计算性能,即有e-z
=fast(z)=(1+z+0.48
×
z2+0.235
×
z3)-1
,则式(5)可表示为式(7),
[0105][0106][0107][0108][0109]
如此,在步骤s130中,可以根据所述第二待调整位置偏差所述第二待调整位移速度偏差所述第二待调整角度偏差所述第二待调整转动速度偏差所述阻尼参数d及所述第一数据帧和所述第二数据帧之间的时间差δt,计算所述第二已调整位置偏差所述第二已调整位移速度偏差所述第二已调整角度偏差及所述第二已调整转动速度偏差
[0110]
其中,所述第二待调整位置偏差所述第二待调整位移速度偏差所述第二待调整角度偏差及所述第二待调整转动速度偏差可以在步骤s120中根据所述第一关节运动数据(包括所述第一关节位置数据所述第一关节转角数据所述第一关节移动速度数据所述第一关节转动速度数据)、第二关节运动数据(包括所述第二关节位置数据所述第二关节转角数据所述第二关节移动速度数据所述第二关节转动速度数据)以及第一已调整偏差数据(所述第一已调整位置偏差所述
第一已调整位移速度偏差所述第一已调整角度偏差所述第一已调整转动速度偏差)计算获得。
[0111]
需要说明的是,步骤s130中计算获得的所述第二已调整偏差数据(包括所述第二已调整位置偏差所述第二已调整位移速度偏差所述第二已调整角度偏差及所述第二已调整转动速度偏差)可以针对所述第二数据帧的下一帧(如第t+1帧)执行步骤s120时使用。
[0112]
在步骤s130中,获得所述第二已调整偏差数据之后,可以在步骤s140中根据所述第二已调整偏差数据对所述第二关节运动数据进行调整,例如,调整后的所述第二关节位置数据调整后的所述第二关节移动速度数据调整后的所述第二关节转角数据调整后的所述第二关节转动速度数据
[0113]
在一种可能的实现方式中,在步骤s110中可以分别获得多个不同的所述目标关节的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据。然后针对每个所述目标关节均执行步骤s120和步骤s130的处理动作,最后在步骤s140中可以根据多个不同的所述目标关节的调整后的所述第二关节运动数据,分别驱动同一运动模型中与各所述目标关节对应的不同运动模型节点进行运动。
[0114]
在一种可能的实现方式中,在步骤s110中,可以获取二维目标视频图像,然后对所述二维目标视频图像进行关键关节识别,获得至少一个所述目标关节的三维的所述第二关节运动数据。例如,通过运动识别模型根据所述二维目标视频图像中所述关键关节的位置活动数据计算获得至少一个目标关节的关节运动数据序列。
[0115]
在一种可能的实现方式中,本实施例提供的关节运动数据调整方法可以应用于直播系统中的虚拟形象运动处理。例如,请参照图2,本实施例提供的所述关节运动数据调整方法可以运行于直播系统的服务器201,该服务器201可以从主播用户终端202获取包括主播用户全身或半身图像的二维直播视频图像,然后通过运动识别模型对所述二维直播视频图像进行识别,获得各所述目标关节的关节运动数据,并使用本实施例提供的所述关节运动数据调整方法对所述关节运动数据进行调整。然后根据调整后的关节运动数据驱动与该主播对应的虚拟形象进行活动,并将包括所述虚拟形象的直播视频图像发送给主播用户终端202和/或观众用户终端203。
[0116]
基于相同的发明构思,请参照图3,基于相同的发明构思,本实施例还提供一种电子设备,该电子设备可以具有一定的图像处理能力,例如,该电子设备可以为个人电脑或图2所示的服务器201。
[0117]
请参照图3,图3是所述电子设备100的方框示意图。所述电子设备100包括关节运动数据调整装置110、机器可读存储介质120、处理器130。
[0118]
所述机器可读存储介质120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述关节运动数据调整装置110包括至少一个可以软件或
固件(firmware)的形式存储于所述机器可读存储介质120中或固化在所述电子设备100的操作系统(operating system,os)中的软件功能模块。所述处理器130用于执行所述机器可读存储介质120中存储的可执行模块,例如所述关节运动数据调整装置110所包括的软件功能模块及计算机程序等。
[0119]
其中,所述机器可读存储介质120可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。其中,机器可读存储介质120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
[0120]
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0121]
请参照图4,本实施例还提供一种关节运动数据调整装置110,所述关节运动数据调整装置110包括至少一个可以软件形式存储于机器可读存储介质120中的功能模块。从功能上划分,所述关节运动数据调整装置110可以包括数据获取模块111、偏差计算模块112、偏差处理模块113及数据调整模块114。
[0122]
所述数据获取模块111用于从目标关节的关节运动数据序列中获取所述目标关节的第一数据帧的第一关节运动数据、所述第一数据帧的第一已调整偏差数据及第二数据帧的第二关节运动数据,其中,所述第一数据帧为在时间维度上位于所述第二数据帧之前的数据帧。
[0123]
本实施例中,所述数据获取模块111可用于执行图1所示的步骤s110,关于所述数据获取模块111的具体描述可参对所述步骤s110的描述。
[0124]
所述偏差计算模块112用于根据所述第一关节运动数据、所述第一已调整偏差数据及所述第二关节运动数据,计算所述第二数据帧的第二待调整偏差数据。
[0125]
本实施例中,所述偏差计算模块112可用于执行图1所示的步骤s120,关于所述偏差计算模块112的具体描述可参对所述步骤s120的描述。
[0126]
所述偏差处理模块113用于根据所述第一数据帧和所述第二数据帧之间的时间差、所述第二待调整偏差数据及与所述目标关节对应的阻尼参数,输入预设的弹簧阻尼运动模型,计算获得在弹簧阻尼系统中所述目标关节的关节运动数据从所述第一数据帧变化至所述第二数据帧时的第二已调整偏差数据。
[0127]
本实施例中,所述偏差处理模块113可用于执行图1所示的步骤s130,关于所述偏差处理模块113的具体描述可参对所述步骤s130的描述。
[0128]
所述数据调整模块114用于根据所述第二已调整偏差数据对所述第二关节运动数据进行调整。
[0129]
本实施例中,所述数据调整模块114可用于执行图1所示的步骤s140,关于所述数
据调整模块114的具体描述可参对所述步骤s140的描述。
[0130]
综上所述,本技术实施例提供的关节运动数据调整方法、装置及电子设备,基于弹簧阻尼系统建模对关节运动数据进行动力学修正,从而在实现对关节运动数据平滑去噪的同时,可以很好的模拟真实的人体运动,使调整后的关节运动数据在驱动虚拟模型运动时有更高的自然度。
[0131]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0132]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0133]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0134]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0135]
以上所述,仅为本技术的各种实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。