一种数据匹配方法、装置、电子设备及存储介质与流程

文档序号:23706033发布日期:2021-01-23 13:19阅读:90来源:国知局
一种数据匹配方法、装置、电子设备及存储介质与流程

[0001]
本发明涉及数据处理技术领域,尤其涉及一种数据匹配方法、装置、电子设备及存储介质。


背景技术:

[0002]
3d虚拟人物在动画制作、电影特效中有很多的应用,大体流程就是通过动作捕捉技术捕捉演员的各种动作,再将这些动作迁移到指定的3d模型上。但是迁移过程中会存在很多问题,比如由于演员和需要驱动的3d模型身材不一样,导致3d模型作出一些不符合物理原理的动作,比如把手伸到了肢体内部,这种情况业界称之为“穿模”。
[0003]
目前遇到了这种情况,一般都是用人工修正的方式,对模型穿模动作进行修正,俗称“手抠”。但是这样的方法耗时长、成本高,不利于快速制作3d内容。而且随时直播的兴起,对虚拟3d模型的实时驱动需求也多了起来,也就是能实时进行交互。这种是没办法提前对动作进行录制以及穿模修复的,因此现有方式无法满足实时解决穿模的需求。


技术实现要素:

[0004]
本发明提供一种数据匹配方法、装置、电子设备及存储介质,解决现有技术中对模型穿模修复方式耗时长、成本高的问题。
[0005]
在本发明实施的第一方面,提供了一种数据匹配方法,包括:
[0006]
将原始运动序列包含的多个时刻的原始运动数据,分别通过预设的n组重定向模型进行重定向处理,获得每个时刻分别对应的n组候选运动数据;其中任一时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位相对运动程度不同,n为大于或等于1的整数;
[0007]
检测每个时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位与预设相关部位是否存在碰撞;
[0008]
根据检测结果,在每个时刻对应的n组候选运动数据中,获取每个时刻对应的不存在碰撞的候选运动数据;
[0009]
在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0010]
优选的,所述在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据的步骤包括:
[0011]
在每个时刻对应的不存在碰撞的候选运动数据中,分别选取迁移到目标模型中目标部位相对运动程度最小的第一候选运动数据,获得每个时刻对应的第一候选运动数据;
[0012]
在每个时刻对应的第一候选运动数据中,选取迁移到目标模型中目标部位相对运动程度最大的第二候选运动数据;
[0013]
根据所述第二候选运动数据,在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0014]
优选的,所述根据所述第二候选运动数据,在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据的步骤包括:
[0015]
将标准时刻初始化为所述第二候选运动数据对应时刻,以及将标准数据初始化为所述第二候选运动数据;
[0016]
根据所述标准数据,确定所述标准时刻的相邻时刻待匹配的候选运动数据;
[0017]
判断所述待匹配的候选运动数据是否属于不存在碰撞的候选运动数据;
[0018]
当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述待匹配的候选运动数据作为所述标准时刻的相邻时刻匹配的运动数据,并将所述标准时刻更新为所确定出的相邻时刻,以及将所述标准数据更新为所确定出的相邻时刻匹配的运动数据;
[0019]
当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述标准时刻更新为第二候选运动数据对应时刻,以及将所述标准数据更新为所述第二候选运动数据对应时刻的第三候选运动数据;其中所述第三候选运动数据迁移到目标模型中,比所述第二候选运动数据迁移到目标模型中获得的目标部位相对运动程度大;
[0020]
当所述标准时刻和所述标准数据发生更新时,根据更新后的标准数据,确定更新后的标准时刻的相邻时刻待匹配的候选运动数据。
[0021]
优选的,所述方法还包括:
[0022]
当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述第二候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据;或者
[0023]
当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述第三候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据。
[0024]
优选的,所述根据所述标准数据,确定所述标准时刻的相邻时刻待匹配的候选运动数据的步骤包括:
[0025]
将所述标准数据与所述标准时刻的相邻时刻对应的每组候选运动数据分别进行相似度匹配,并选取与所述标准数据相似度最大的候选运动数据作为所述待匹配的候选运动数据。
[0026]
优选的,所述根据所述标准数据,确定所述标准时刻的相邻时刻待匹配的候选运动数据的步骤包括:
[0027]
根据所述标准数据,确定所述标准时刻的前一相邻时刻待匹配的第四候选运动数据,和/或所述标准时刻的后一相邻时刻待匹配的第五候选运动数据。
[0028]
在本发明实施的第二方面,还提供了一种数据匹配装置,包括:
[0029]
重定向处理模块,用于将原始运动序列包含的多个时刻的原始运动数据,分别通过预设的n组重定向模型进行重定向处理,获得每个时刻分别对应的n组候选运动数据;其中任一时刻的n组候选运动数据分别迁移到目标模型中,目标模型的目标部位相对运动程度不同,n为大于或等于1的整数;
[0030]
碰撞检测模块,用于检测每个时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位与预设相关部位是否存在碰撞;
[0031]
第一获取模块,用于根据检测结果,在每个时刻对应的n组候选运动数据中,获取每个时刻对应的不存在碰撞的候选运动数据;
[0032]
匹配模块,用于在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻
匹配的运动数据。
[0033]
优选的,所述匹配模块包括:
[0034]
第一选取子模块,用于在每个时刻对应的不存在碰撞的候选运动数据中,分别选取迁移到目标模型中目标部位相对运动程度最小的第一候选运动数据,获得每个时刻对应的第一候选运动数据;
[0035]
第二选取子模块,用于在每个时刻对应的第一候选运动数据中,选取迁移到目标模型中目标部位相对运动程度最大的第二候选运动数据;
[0036]
匹配子模块,用于根据所述第二候选运动数据,在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0037]
在本发明实施的第三方面,还提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过通信总线完成相互间的通信;
[0038]
存储器,用于存放计算机程序;
[0039]
处理器,用于执行存储器上所存放的程序时,实现如上任一项所述的数据匹配方法中的步骤。
[0040]
在本发明实施的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一项所述的数据匹配方法。
[0041]
针对在先技术,本发明具备如下优点:
[0042]
本发明实施例中,首先通过n组重定向模型将目标部位原始运动数据重定向成不同运动程度的n组候选运动数据,从而在原始运动数据的基础上扩大了目标部位的运动程度,然后从中排除掉存在碰撞,即导致穿模的候选运动数据,最后从不存在碰撞的候选运动数据中确定匹配的运动数据,能够实时解决穿模问题,且提高了处理效率,减少了穿模修复时间,降低了成本。
[0043]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0044]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
[0045]
图1为本发明实施例提供的数据匹配方法的流程示意图;
[0046]
图2为本发明实施例提供的重定向模型重定向示意图;
[0047]
图3为本发明实施例提供的重定向获得的候选运动数据示意图;
[0048]
图4为本发明实施例提供的数据匹配方法的另一流程示意图;
[0049]
图5为本发明实施例提供的数据匹配装置的示意框图;
[0050]
图6为本发明实施例提供的电子设备的示意框图。
具体实施方式
[0051]
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解的是,还可以以各种形式实现本发明而不应被这里阐述的
实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0052]
图1是本发明实施例提供的数据匹配方法的流程示意图,参见图1所示,该数据匹配方法包括:
[0053]
步骤11:将原始运动序列包含的多个时刻的原始运动数据,分别通过预设的n组重定向模型进行重定向处理,获得每个时刻分别对应的n组候选运动数据;其中任一时刻的n组候选运动数据分别迁移到目标模型中,目标模型的目标部位相对运动程度不同,n为大于或等于1的整数。
[0054]
这里,首先通过n组重定向模型对每个时刻的原始运动数据分别进行重定向处理,n组重定向模型会将每个时刻的运动数据重定向成目标部位不同运动程度的n组候选运动数据,从而在原始运动数据的基础上扩大了目标部位的运动程度,以规避掉存在穿模现象的数据。
[0055]
其中,原始运动序列为在一段时间t内通过捕捉人体或动物等原型的动作信息,获得的一组按照时序有序排列的原始运动数据。其中捕捉动作信息的频率可根据需求进行设定,例如以每秒50帧的频率捕捉动作信息,t=10s,则在时间段t内可捕捉到500帧原始运动数据,对应到时序中即为500个时刻的原始运动数据,原始运动序列即包括按照时序有序排列的这500个时刻的原始运动数据。
[0056]
假定原始运动序列共包括t个时刻的原始运动数据,t为大于或等于1的整数。原始运动序列可记为m={m
1
,m
2
,m
3


m
i

,m
t
},其中,m
i
表示第i时刻的原始运动数据,1≤i≤t。
[0057]
本发明实施例利用重定向方法对m
i
进行重定向处理,如图2所示,通过重定向模型1,重定向模型2,重定向模型3,

,重定向模型n,共n组重定向模型,对m
i
进行重定向处理,获得第i时刻的n组候选运动数据其中,表示第i时刻第j个重定向模型输出的候选运动数据,j表示第几个重定向模型输出,1≤j≤n。
[0058]
为了便于计算,可设定j越大,其对应的重定向模型重定向的目标部位运动程度越大,即迁移到目标模型后获得的目标部位运动程度大于迁移到目标模型后获得的目标部位运动程度大于迁移到目标模型后获得的目标部位运动程度大于的目标部位运动程度大于迁移到目标模型后获得的目标部位运动程度大于依次类推。
[0059]
其中,利用这n组重定向模型对m
i
进行重定向处理之后,获得的n组候选运动数据迁移到目标模型中的目标部位相对运动程度不同。优选的,可设定n组重定向模型的参数,使得n组候选运动数据的目标部位相对运动程度在原始运动数据m
i
的基础上逐级扩大。例如假n=10,即共10组重定向模型,且原始运动数据m
i
的目标部位相对运动程度为45度,可设定这10组重定向模型的参数,使得对m
i
重定向处理后获得的10组候选运动数据的目标部位相对运动程度依次为45度、46度、47度

50度。
[0060]
当然,本发明实施例也可通过调整n组重定向模型的参数,使得n组候选运动数据的目标部位相对运动程度在原始运动数据m
i
的基础上按照其他方式变化,例如使得n组候选运动数据中的一半数据的目标部位相对运动程度在原始运动数据m
i
的基础上逐级缩小,另一半数据的目标部位相对运动程度在原始运动数据m
i
的基础上逐级扩大,在此不做限
定。
[0061]
通过上述方式对原始序列中每个时刻的原始运动数据进行处理,就获得了如图3所示的数据,即每个时刻对应的n组候选运动数据。
[0062]
需要说明的是,本发明实施例对重定向模型不做限定,任何能够实现对运动数据通过重定向方式获得目标部位不同运动程度的模型,都能够应用到本发明实施例中。
[0063]
步骤12:检测每个时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位与预设相关部位是否存在碰撞。
[0064]
这里,获取到每个时刻重定向后的n组候选运动数据后,会对所有重定向动作进行碰撞检测,即检测候选运动数据迁移到目标模型后是否会导致目标部位与预设相关部位发生碰撞。
[0065]
其中,目标部位和预设相关部位可根据实际需求进行设定,目标部位和预设相关部位可以是目标模型的任意部位。例如,由于目前穿模概率最高的案例就是虚拟模型的手臂与胸部的穿模,则可将目标部位设定为手臂,预设相关部位设定为躯干。则本发明实施例的方法,可通过重定向方式改变手臂开度,即步骤11通过n组重定向模型将每个时刻的运动数据重定向成手臂不同开度的n组候选运动数据,步骤12检测每个时刻的n组候选运动数据是否会导致手臂与躯干存在碰撞,从而避免手臂和躯干部分的穿模问题。
[0066]
步骤13:根据检测结果,在每个时刻对应的n组候选运动数据中,获取每个时刻对应的不存在碰撞的候选运动数据。
[0067]
这里,根据碰撞检测结果,排除掉每个时刻存在碰撞,即导致穿模的候选运动数据,以避免穿模问题。
[0068]
步骤14:在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0069]
这里,在每个时刻不存在碰撞的候选运动数据中,确定匹配的运动数据,避免了穿模问题。
[0070]
本发明实施例的数据匹配方法,首先通过n组重定向模型将目标部位原始运动数据重定向成不同运动程度的n组候选运动数据,从而在原始运动数据的基础上扩大了目标部位的运动程度,然后从中排除掉存在碰撞,即导致穿模的候选运动数据,最后从不存在碰撞的候选运动数据中确定匹配的运动数据,能够实时解决穿模问题,且提高了处理效率,减少了穿模修复时间,降低了成本。
[0071]
优选的,上述步骤14包括:
[0072]
步骤141:在每个时刻对应的不存在碰撞的候选运动数据中,分别选取迁移到目标模型中目标部位相对运动程度最小的第一候选运动数据,获得每个时刻对应的第一候选运动数据。
[0073]
这里,首先在每个时刻不存在碰撞的候选运动数据中,分别选取目标部位相对运动程度最小的第一候选运动数据,以基于最小程度扩大目标部位相对运动程度,避免动作过大影响美观。
[0074]
例如,以第i时刻的n组候选运动数据为例,假定目标部位为手臂,目标部位相对运动程度为手臂开度,j越大代表手臂开度越大,本步骤选取的就
是第i时刻不存在碰撞的最小j值,可记做k
i
,如假定和是存在碰撞,即穿模的数据,则k
i
=3。
[0075]
步骤142:在每个时刻对应的第一候选运动数据中,选取迁移到目标模型中目标部位相对运动程度最大的第二候选运动数据。
[0076]
这里,获得每个时刻目标部位相对运动程度最小的第一候选运动数据后,从中选取目标部位相对运动程度最大的第二候选运动数据,将其作为标准进行数据匹配,能够保证整个动作过程中目标部位动作最大时也不存在穿模现象,且目标部位动作最大时也是基于最小程度扩大的相对运动,不会动作过大影响美观。
[0077]
例如,假定目标部位为手臂,目标部位相对运动程度为手臂开度,j越大代表手臂开度越大,通过步骤141获得每个时刻不存在碰撞的最小j值{k
1
,k
2
,k
3


,k
t
},本步骤就是选取最大的k值和出现最大k值的时刻s,最大的k值可记做c
s
,c
s
=max(k
1
,k
2
,k
3


,k
t
),则第二候选运动数据可记为
[0078]
步骤143:根据所述第二候选运动数据,在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0079]
这里,基于第二候选运动数据,在每个时刻不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据,能够保证每个时刻的运动数据都满足不穿模的需求,且保证每个时刻的运动数据都在最小程度上扩大目标部位相对运动程度。
[0080]
此时,所有时刻的运动数据都能够满足不穿模的需求,且所有时刻的运动数据都是基于最小程度扩大目标部位相对运动程度,不会导致动作过大影响美观。
[0081]
优选的,上述步骤143包括:
[0082]
步骤1431:将标准时刻初始化为所述第二候选运动数据对应时刻,以及将标准数据初始化为所述第二候选运动数据。
[0083]
这里,首先进行标准数据和标准时刻的初始化,将标准数据初始化为第二候选运动数据,并将标准时刻初始化为第二候选运动数据对应时刻,以将第二候选运动数据作为标准,分别确定第二候选运动数据对应时刻的前序时刻和后序时刻的运动数据。
[0084]
步骤1432:根据所述标准数据,确定所述标准时刻的相邻时刻待匹配的候选运动数据。
[0085]
这里,初始化之后,首先以第二候选运动数据为标准,确定第二候选运动数据对应时刻的相邻时刻待匹配的运动数据,如果确定出的待匹配的运动数据不存在穿模现象,则将其作为对应时刻匹配的运动数据,并以此为标准,确定下一个相邻时刻待匹配的候选运动数据,如此循环,直至所有时刻的运动数据匹配完成。由于任一时刻的运动数据都是以其相邻时刻的数据为标准确定的,因此保证了动作的连续自然。
[0086]
其中,标准时刻的相邻时刻可能包括前一相邻时刻和后一相邻时刻,因此,优选的,上述步骤1432包括:
[0087]
根据所述标准数据,确定所述标准时刻的前一相邻时刻待匹配的第四候选运动数据,和/或所述标准时刻的后一相邻时刻待匹配的第五候选运动数据。
[0088]
这里,以第二候选运动数据对应时刻s为节点,将整个运动序列分成了的前序时刻和后序时刻,根据标准数据,分别确定前一相邻时刻待匹配的第四候选运动数据以及后一
相邻时刻待匹配的第五候选运动数据,以基于标准数据分别确定前序时刻的运动数据和后序时刻的运动数据。
[0089]
步骤1433:判断所述待匹配的候选运动数据是否属于不存在碰撞的候选运动数据。
[0090]
这里,验证待匹配的候选运动数据是否存在穿模现象。
[0091]
具体的,步骤1433分别判断前一相邻时刻的第四候选运动数据和后一相邻时刻的第五候选运动数据是否属于不存在碰撞的候选运动数据。
[0092]
步骤1434:当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述待匹配的候选运动数据作为所述标准时刻的相邻时刻匹配的运动数据,并将所述标准时刻更新为所确定出的相邻时刻,以及将所述标准数据更新为所确定出的相邻时刻匹配的运动数据。
[0093]
这里,只有待匹配的候选运动数据不存在碰撞,即不存在穿模时,才将其作为对应时刻匹配的候选运动数据,以避免穿模现象,并对标准时刻和标准数据进行更新,将确定出的运动数据作为新的标准,确定下一个相邻时刻匹配的运动数据。
[0094]
具体的,步骤1434当第四候选运动数据属于不存在碰撞的候选运动数据时,将第四候选运动数据作为其对应的前一相邻时刻匹配的候选运动数据,并将第四候选运动数据作为新的标准,确定下一个前一相邻时刻的运动数据。同理,当第五候选运动数据属于不存在碰撞的候选运动数据时,将第五候选运动数据作为其对应的后一相邻时刻匹配的候选运动数据,并将第五候选运动数据作为新的标准,确定下一个后一相邻时刻的运动数据。
[0095]
步骤1435:当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述标准时刻更新为第二候选运动数据对应时刻,以及将所述标准数据更新为所述第二候选运动数据对应时刻的第三候选运动数据;其中所述第三候选运动数据迁移到目标模型中,比所述第二候选运动数据迁移到目标模型中获得的目标部位相对运动程度大。
[0096]
这里,当待匹配的候选运动数据存在碰撞时,需要进一步扩大目标部位的相对运动程度,以避免穿模现象。对于这种情况,本步骤将标准时刻更新为第二候选运动数据对应时刻,以从头重新确定运动数据,并将标准更新为目标部位相对运动程度更大的第三候选运动数据。
[0097]
其中,当设定n组重定向模型(1,2,3,

,n)输出的候选运动数据对目标部位相对运动程度逐渐增加时,若第二候选运动数据为第j个重定向模型输出的数据,且待匹配的候选运动数据存在碰撞,则可选择第j+1个重定向模型输出的候选运动数据作为第三候选运动数据,并将其设置为新的标准。若第j+1个重定向模型输出的候选运动数据仍然使待匹配的候选运动数据发生碰撞,则选择第j+2个重定向模型输出的候选运动数据作为第三候选运动数据,并将其设置为新的标准。依次类推,即逐级增加目标部位相对运动程度,从而以最小程度扩大目标部位相对运动程度,保证动作美观性。
[0098]
具体的,步骤1435当第四候选运动数据或第五候选运动数据不属于不存在碰撞的候选运动数据时,即前序过程或后序过程出现穿模时,都需要将标准时刻更新为最初的第二候选运动数据对应时刻,以及将标准数据更新为第二候选运动数据对应时刻的第三候选运动数据,并根据新的标准重新确定每个前序时刻和后序时刻的运动数据,从而避免穿模,并保证整个动作连续自然。
[0099]
步骤1436:当所述标准时刻和所述标准数据发生更新时,根据更新后的标准数据,确定更新后的标准时刻的相邻时刻待匹配的候选运动数据。
[0100]
这里,初始化之后,首先以第二候选运动数据为标准,确定第二候选运动数据对应时刻的相邻时刻匹配的运动数据,然后步骤1434对标准时刻和标准数据进行更新,将当前确定的相邻时刻作为下一个相邻时刻的标准,然后步骤1436根据新的标准,确定下一个相邻时刻匹配的运动数据,如此循环,直至所有相邻时刻的运动数据确定完成,保证了动作的连续自然。
[0101]
在循环过程中,如果出现待匹配的候选运动数据存在碰撞,就需要将标准时刻更新为初始化值,即第二候选运动数据对应时刻,并选取目标部位相对运动程度更大的候选运动数据作为新的标准,之后步骤1436根据新的标准,重新确定每个时刻匹配的运动数据。
[0102]
优选的,所述方法还包括:
[0103]
步骤15:当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述第二候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据;或者
[0104]
步骤16:当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述第三候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据。
[0105]
这里,当第二候选运动数据作为标准,确定出来的前序待匹配的候选运动数据和后序待匹配的候选运动数据都能够满足不穿模的要求,将第二候选运动数据作为其对应时刻匹配的候选运动数据即可。但如果第二候选运动数据作为标准确定出来的任何一个待匹配的候选运动数据存在碰撞,即导致穿模,就需要提高标准,通过前述步骤步骤1435将标准数据更新为目标部位相对运动程度更大的第三候选运动数据,本步骤将提高标准后的第三候选运动数据作为其对应时刻匹配的候选运动数据。
[0106]
需要说明的是,本发明实施例提到的“第一”、“第二”、“第三”等并不是特指某一个候选运动数据,而是仅用于区分不同情况下的候选运动数据,无特殊含义。
[0107]
优选的,上述步骤1432包括:
[0108]
将所述标准数据与所述标准时刻的相邻时刻对应的每组候选运动数据分别进行相似度匹配,并选取与所述标准数据相似度最大的候选运动数据作为所述待匹配的候选运动数据。
[0109]
这里,通过将标准数据与相邻时刻的每组候选数据进行相似度匹配,并选取相似度最大的候选运动数据作为待匹配的候选数据,能够保证动作的连续性。
[0110]
当然,本发明实施例的上述数据选取方式仅为一种优选的实施方式,也可按照其他方式确定相邻时刻匹配的运动数据,例如,选取与标准数据相似度接近但不是最大的运动数据作为匹配的运动数据,在此不一一说明。
[0111]
下面对本发明实施例的一具体应用流程举例说明如下。
[0112]
假定目标部位为手臂,目标部位相对运动程度为手臂开度,表示标准数据,其中t表示时刻,c代表第c个重定向模型输出,c越大代表手臂开度越大,每个时刻不存在碰撞的最小重定向模型为{k
1
,k
2
,k
3


,k
t
},第二候选运动数据为第二候选运动数据对应时刻为s。如图4所示,本发明实施例的方法包括:
[0113]
s0:开始。
[0114]
s1:初始化标准时刻t=s,c=c
s
,则标准数据
[0115]
s2:将与中的每一个分别进行相似度匹配。
[0116]
s3:获取与相似度最大的候选运动数据
[0117]
s4:判断o是否小于k
t-1
,若是,则跳转到步骤s51,若否,则跳转到步骤s52。
[0118]
s51:更新t=s,c=c+1,之后跳转到步骤s2。
[0119]
s52:将作为标准时刻的前一相邻时刻匹配的运动数据,并更新t=t-1,c=o,之后跳转到步骤s6。
[0120]
s6:判断t是否大于1,若是,则跳转到步骤s2,若否,则跳转到步骤s7。
[0121]
s7:结束。
[0122]
此时,通过上述过程实现了第二候选运动数据对应时刻s的前序时刻所有运动数据的匹配,由于前一相邻时刻的数据都是与后一时刻相似度最大的数据,因此在不穿模的基础上,保证了动作的连续自然。
[0123]
需要说明的是,步骤s4判断出来的结果也会影响到s的后序时刻的运动数据匹配过程,当s4的判断结果为是时,后序时刻的运动数据匹配过程也会执行s51,以基于新的标准重新匹配运动数据。同理,如果后序时刻的判断过程中出现后一相邻时刻待匹配的候选运动数据存在碰撞,前序时刻运动数据匹配过程也会执行s51,以基于新的标准重新匹配运动数据。
[0124]
由于后序过程与前序类似,后序过程可参见前序过程,在此不不做赘述。
[0125]
本发明实施例的数据匹配方法,首先通过n组重定向模型将目标部位原始运动数据重定向成不同运动程度的n组候选运动数据,扩大了目标部位的运动程度,然后从中排除掉存在碰撞,即导致穿模的候选运动数据,最后从不存在碰撞的候选运动数据中确定匹配的运动数据,能够实时解决穿模问题,并保证整个动作连贯自然,且提高了处理效率,减少了穿模修复时间,降低了成本。
[0126]
参见图5所示,本发明的实施例还提供了一种数据匹配装置500,包括:
[0127]
重定向处理模块501,用于将原始运动序列包含的多个时刻的原始运动数据,分别通过预设的n组重定向模型进行重定向处理,获得每个时刻分别对应的n组候选运动数据;其中任一时刻的n组候选运动数据分别迁移到目标模型中,目标模型的目标部位相对运动程度不同,n为大于或等于1的整数;
[0128]
碰撞检测模块502,用于检测每个时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位与预设相关部位是否存在碰撞;
[0129]
第一获取模块503,用于根据检测结果,在每个时刻对应的n组候选运动数据中,获取每个时刻对应的不存在碰撞的候选运动数据;
[0130]
匹配模块504,用于在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0131]
本发明实施例的数据匹配装置,首先通过n组重定向模型将目标部位原始运动数据重定向成不同运动程度的n组候选运动数据,扩大了目标部位的运动程度,然后从中排除掉存在碰撞,即导致穿模的候选运动数据,最后从不存在碰撞的候选运动数据中确定匹配
的运动数据,能够实时解决穿模问题,并保证整个动作连贯自然,且提高了处理效率,减少了穿模修复时间,降低了成本。
[0132]
优选的,所述匹配模块504包括:
[0133]
第一选取子模块,用于在每个时刻对应的不存在碰撞的候选运动数据中,分别选取迁移到目标模型中目标部位相对运动程度最小的第一候选运动数据,获得每个时刻对应的第一候选运动数据;
[0134]
第二选取子模块,用于在每个时刻对应的第一候选运动数据中,选取迁移到目标模型中目标部位相对运动程度最大的第二候选运动数据;
[0135]
匹配子模块,用于根据所述第二候选运动数据,在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0136]
优选的,所述匹配子模块包括:
[0137]
初始化单元,用于将标准时刻初始化为所述第二候选运动数据对应时刻,以及将标准数据初始化为所述第二候选运动数据;
[0138]
第一确定单元,用于根据所述标准数据,确定所述标准时刻的相邻时刻待匹配的候选运动数据;
[0139]
第一判断单元,用于判断所述待匹配的候选运动数据是否属于不存在碰撞的候选运动数据;
[0140]
第一更新单元,用于当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述待匹配的候选运动数据作为所述标准时刻的相邻时刻匹配的运动数据,并将所述标准时刻更新为所确定出的相邻时刻,以及将所述标准数据更新为所确定出的相邻时刻匹配的运动数据;
[0141]
第二更新单元,用于当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述标准时刻更新为第二候选运动数据对应时刻,以及将所述标准数据更新为所述第二候选运动数据对应时刻的第三候选运动数据;其中所述第三候选运动数据迁移到目标模型中,比所述第二候选运动数据迁移到目标模型中获得的目标部位相对运动程度大;
[0142]
所述第一确定单元还用于,当所述标准时刻和所述标准数据发生更新时,根据更新后的标准数据,确定更新后的标准时刻的相邻时刻待匹配的候选运动数据。
[0143]
优选的,所述匹配子模块还包括:
[0144]
匹配单元,用于当所述待匹配的候选运动数据属于不存在碰撞的候选运动数据时,将所述第二候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据;或者当所述待匹配的候选运动数据不属于不存在碰撞的候选运动数据时,将所述第三候选运动数据作为所述第二候选运动数据对应时刻匹配的候选运动数据。
[0145]
优选的,所述第一确定单元具体用于:
[0146]
将所述标准数据与所述标准时刻的相邻时刻对应的每组候选运动数据分别进行相似度匹配,并选取与所述标准数据相似度最大的候选运动数据作为所述待匹配的候选运动数据。
[0147]
优选的,所述第一确定单元具体用于:
[0148]
根据所述标准数据,确定所述标准时刻的前一相邻时刻待匹配的第四候选运动数
据,和/或所述标准时刻的后一相邻时刻待匹配的第五候选运动数据。
[0149]
本发明实施例的数据匹配装置,首先通过n组重定向模型将目标部位原始运动数据重定向成不同运动程度的n组候选运动数据,扩大了目标部位的运动程度,然后从中排除掉存在碰撞,即导致穿模的候选运动数据,最后从不存在碰撞的候选运动数据中确定匹配的运动数据,能够实时解决穿模问题,并保证整个动作连贯自然,且提高了处理效率,减少了穿模修复时间,降低了成本。
[0150]
对于上述装置实施例而言,由于其与方法实施例基本相似,相关之处参见方法实施例的部分说明即可。
[0151]
本发明实施例还提供了一种电子设备,该电子设备可以是移动终端。如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
[0152]
存储器603,用于存放计算机程序。
[0153]
处理器601用于执行存储器603上所存放的程序时,实现如下步骤:
[0154]
将原始运动序列包含的多个时刻的原始运动数据,分别通过预设的n组重定向模型进行重定向处理,获得每个时刻分别对应的n组候选运动数据;其中任一时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位相对运动程度不同,n为大于或等于1的整数;
[0155]
检测每个时刻的n组候选运动数据分别迁移到目标模型后,目标模型的目标部位与预设相关部位是否存在碰撞;
[0156]
根据检测结果,在每个时刻对应的n组候选运动数据中,获取每个时刻对应的不存在碰撞的候选运动数据;
[0157]
在每个时刻对应的不存在碰撞的候选运动数据中,确定每个时刻匹配的运动数据。
[0158]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0159]
通信接口用于上述电子设备与其他设备之间的通信。
[0160]
存储器可以包括随机存取存储器(randomaccess memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0161]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0162]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的
数据匹配方法。
[0163]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中所述的数据匹配方法。
[0164]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0165]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0166]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0167]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1