人体模型处理方法和装置、电子设备和存储介质与流程

文档序号:29626792发布日期:2022-04-13 14:40阅读:186来源:国知局
人体模型处理方法和装置、电子设备和存储介质与流程

1.本公开涉及数据处理技术领域,尤其涉及一种人体模型处理方法和装置、电子设备和存储介质。


背景技术:

2.随着人体模型应用场景越来越多,用户可能存在调整人体模型的身高或者体重等参数的需求,从而获得不同的人体模型。相关技术中,现有模型软件支持用户调整人体模型中的部分参数,从而形成静态的人体模型,以方便用户观察使用该人体模型。
3.然而,相关技术中仅支持生成静态的人体模型,使得人体模型的显示效果比较呆板,缺乏生动性,使用体验不高。


技术实现要素:

4.本公开提供一种人体模型处理方法和装置、电子设备和存储介质,以解决相关技术的不足。
5.根据本公开实施例的第一方面,提供一种人体模型处理方法,包括:
6.响应于检测到对当前所显示人体模型的触发操作,显示参数配置窗口;所述参数配置窗口内包括所述人体模型至少一个模型参数相关的图像组件;
7.响应于检测到对至少一个图像组件的触发操作,确定所述图像组件对应模型参数以及获取所述模型参数对应的人体模型;
8.显示所述模型参数对应的目标人体模型。
9.可选地,获取所述模型参数对应的人体模型,包括:
10.获取所述模型参数的目标值;
11.获取所述模型参数的典型值对应的典型人体模型;
12.基于所述目标值对所述典型人体模型进行处理,获得所述模型参数对应的目标人体模型。
13.可选地,获取所述模型参数的典型值对应的典型人体模型,包括:
14.获取所述参数取值的典型值;所述典型值包括第一数值、第二数值和第三数值,所述第一数值、所述第二数值和所述第三数值依次减小;
15.分别获取所述第一数值、所述第二数值和所述第三数值对应的人体模型,得到典型人体模型。
16.可选地,基于所述目标值对所述典型人体模型进行处理,包括:
17.基于所述目标值对所述典型人体模型中的骨骼点数据进行处理,获得所述目标人体模型的骨骼点数据。
18.可选地,基于所述目标值对典型人体模型进行处理,包括:
19.基于预设的骨骼点层次顺序和所述目标值,对所述典型人体模型中的骨骼点数据进行处理,获得所述目标人体模型的骨骼点数据。
20.可选地,对所述典型人体模型中的骨骼点数据进行处理,包括:
21.获取所述目标值和所述典型值的对应关系;
22.基于所述目标值、所述对应关系和所述典型值确定补偿系数;
23.根据所述对应关系从所述典型人体模型中选择2个模型,得到第一基准人体模型和第二基准人体模型;
24.根据所述补偿系数、所述第一基准模型中的骨骼点数据和所述第二基准人体模型中的骨骼点数据获取目标人体模型的骨骼点数据。
25.可选地,根据所述补偿系数、所述第一基准模型中的骨骼点数据和所述第二基准人体模型中的骨骼点数据获取目标人体模型的骨骼点数据,包括:
26.依次获取所述第一基准模型中的第一骨骼点数据,以及获取所述第二基准人体模型中与所述第一骨骼点同一位置的第二骨骼点数据;
27.根据所述补偿系数、所述第一骨骼点数据和所述第二骨骼点数据进行插值处理,得到新插入的骨骼点数据,并将新插入的骨骼点数据作为目标人体模型中与所述第一骨骼点相同位置的骨骼点数据。
28.可选地,所述目标人体模型的骨骼点数据采用以下公式计算:
29.gp=gm*β+gn*(1-β);
30.式中,gp表示新插入的骨骼点数据,gm表示第一骨骼点数据,gn表示第二骨骼点数据,β表示补偿系数。
31.可选地,基于所述目标值对所述典型人体模型进行处理,还包括:
32.基于所述目标值对所述典型人体模型中蒙皮点进行处理,
33.所述蒙皮点的处理方式与所述骨骼点的处理方式相同。
34.根据本公开实施例的第二方面,提供一种人体模型处理装置,用于执行如上述的方法;所述装置包括:
35.配置窗口显示模块,用于响应于检测到对当前所显示人体模型的触发操作,显示参数配置窗口;所述参数配置窗口内包括所述人体模型至少一个模型参数相关的图像组件;
36.人体模型获取模块,用于响应于检测到对至少一个图像组件的触发操作,确定所述图像组件对应模型参数以及获取所述模型参数对应的人体模型;
37.目标模型显示模块,用于显示所述模型参数对应的目标人体模型。
38.根据本公开实施例的第三方面,提供一种人体模型处理系统,包括:
39.输入单元,用于接收用户输入的模型参数的目标值;
40.处理器,与所述输入单元电连接,用于利用如上述的方法,生成所述模型参数对应的目标人体模型;
41.显示单元,与所述处理器电连接,用于展示所述目标人体模型。
42.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如上述的方法
43.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如第一方面任一项所述的方法。
44.本公开的实施例提供的技术方案可以包括以下有益效果:
45.由上述实施例可知,本公开实施例提供的方案中可以响应于检测到对当前所显示人体模型的触发操作,显示参数配置窗口;该参数配置窗口内包括人体模型至少一个模型参数相关的图像组件;然后,响应于检测到对至少一个图像组件的触发操作,确定所述图像组件对应模型参数以及获取所述模型参数对应的人体模型;之后,显示所述模型参数对应的目标人体模型。这样,本实施例中可以使目标人体模型与模型参数更匹配,方便后续动态显示时提升显示效果,有利于提升使用体验。
46.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
47.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
48.图1是根据一示例性实施例示出的一种人体模型处理方法的流程图。
49.图2是根据一示例性实施例示出的一种典型人体模型的流程图。
50.图3是根据一示例性实施例示出的一种获取目标人体模型的骨骼点数据的流程图。
51.图4是根据一示例性实施例示出的另一种获取目标人体模型的骨骼点数据的流程图。
52.图5是根据一示例性实施例示出的获取目标人体模型的效果示意图。
53.图6是根据一示例性实施例示出的一种人体模型处理装置的框图。
54.图7是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
55.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
56.考虑到相关技术中支持用户调整人体模型而生成静态人体模型,导致人体模型的显示效果比较呆板且缺乏生动性。经过仔细分析,相关技术中人体模型的骨骼和蒙皮是相互独立的,在调整人体模型的体型时其仅调整了蒙皮点的数据,从而使得体型与模型参数相匹配。由于骨骼与蒙皮仍采用原先的绑定关系,导致人体模型不适合动态场景,降低使用体验。
57.为解决上述技术问题,本公开实施例提供了一种人体模型处理方法,其发明构思在于,允许用户对当前显示模型的至少一个模型参数的取值进行调整,获得调整后的适于动态显示的人体模型即目标人体模型,从而提升使用体验。本公开各实施例提供的一种人体模型处理方法可以应用于人体模型处理系统。该人体模型处理系统可以是单独的终端设备,也可以包括服务器、云端设备与终端设备,在此不作限定。以该人体模型处理系统为单独的终端设备为例,该终端设备可以完成人体模型处理方法。以该人体模型处理系统包括
前端和服务器为例,前端可以作为显示和交互使用的设备,可以为显示人体模型;而服务器可以进行数据处理获取人体模型的骨骼点数据和蒙皮点数据,前端可以使用骨骼点数据和蒙皮点数据来生成目标人体模型。技术人员可以根据具体场景选择人体模型处理系统的架构,在计算资源和实时性满足要求的情况下以及能够实现获取模型参数、获得目标人体模型和显示目标人体模型的情况下,相应方案落入本公开的保护范围。为方便描述,本公开以人体模型处理系统为执行主体来实现各实施例的方案。
58.图1是根据一示例性实施例示出的一种人体模型处理方法的流程图。参见图1,一种人体模型处理方法,包括步骤11~步骤13。
59.在步骤11中,响应于检测到对当前所显示人体模型的触发操作,显示参数配置窗口;所述参数配置窗口内包括所述人体模型至少一个模型参数相关的图像组件。
60.本实施例中,人体模型处理系统也可以存储的预设人体模型,该预设人体模型可以具有不同的特征,例如身高较矮而体形偏胖的模型、身高较高而体形偏胖的模型、身高较矮而体形偏瘦的模型等等,人体模型处理系统在检测到用户选择其中一个预设人体模型的操作时可以显示所选择的预设人体模型。实际应用中,人体模型处理系统还可以根据用户的输入数据来生成人体模型并显示人体模型。其中上述输入数据可以包括但不限于模型参数、存储格式、存储位置等等,可以根据具体场景进行设置。模型参数可以包括但不限于年龄、身高、体重、头围、肩宽、胸围、腰围和臀围等等,可以根据具体场景选择合适的参数,相应方案落入本公开的保护范围。
61.本实施例中,在展示人体模型的过程中,用户可以调整人体模型的朝向,从而观察所显示人体模型的某一些模型参数(如身高、体重、胸围、腰围等参数)是否满足要求。在发现人体模型的一项或者多项参数不符合要求后可以仅对上述参数进行单独调整。
62.本实施例中,在展示人体模型的过程中,当在调整该人体模型的参数的需求时,用户可以触发(如单击或者双击)该人体模型,此时人体模型处理系统可以显示交互界面。用户可以根据交互界面的内容继续触发,使得交互界面内显示参数配置窗口。该参数配置窗口包括人体模型至少一个模型参数相关的图像组件。其中图像组件可以包括但不限于滚动条、增加参数取值的按键、减少参数取值的按键或者模型参数取值的输入栏。当然,在人体模型处理系统在未展示人体模型时,用户仍然可以找出交互界面,并在交互界面内显示参数配置窗口。
63.在步骤12中,响应于检测到对至少一个图像组件的触发操作,确定所述图像组件对应模型参数以及获取所述模型参数对应的人体模型。
64.本实施例中,在显示参数配置窗口的过程中,用户可以根据图像组件的特点来输入模型参数的取值。以图像组件为滚动条为例,用户可以拖动该滚动条到预期位置,人体模型处理系统可以根据目标位置确定该模型参数的预期取值并显示在图像组件的对应位置;如果预期取值不满足要求,用户可以继续拖动滚动条并调整其位置,直至到目标位置为止,人体模型处理系统可以获得滚动条在目标位置时模型参数的目标值。以图像组件为模型参数取值的输入栏为例,用户可以单击上述输入栏,以使人体模型处理系统在参数配置窗口内显示键盘组件。人体模型处理系统可以检测用户对键盘组件的触发操作并确定各按键对应的取值,获得模型参数的目标值。例如,模型参数可以是体重,且目标值为70kg。也就是说,人体模型处理参数在检测到对至少一个图像组件的触发操作后确定图像组件对应模型
参数以及模型参数的取值即目标值。
65.需要说明的是,用户还可以调整多个模型参数,此时人体模型处理系统可以选取第一个模型参数并执行本公开提供的一种人体模型处理方法得到第一个人体模型;人体模型处理系统可以选用第二个模型参数,并以第一个人体模型中的模型参数的取值为基础调整上述第二个模型参数,再执行一次一种人体模型处理方法,获得第二个人体模型,依次类推,直至处理完所有模型参数后得到最终的目标人体模型,再将该目标人体模型展示出来。
66.本实施例中,人体模型处理系统可以获取模型参数对应的人体模型,包括:人体模型处理系统可以获取模型参数的目标值,并获取上述模型参数的典型值对应的典型人体模型。然后,基于目标值对应典型人体模型进行处理,人体模型处理系统可以获得模型参数对应的目标人体模型。
67.对于获取上述模型参数的典型值对应的典型人体模型,参见图2,在步骤21中,人体模型处理系统在获得模型参数的目标值后,可以确定用户需要修改的模型参数,并且人体模型处理系统可以获取该模型参数的典型值,该典型值可以包括第一数值、第二数值和第三数值,并且第一数值、第二数值和第三数值依次减少。在一示例中,第一数据的范围为第一预设范围,该第一预设范围可以包括该模型参数取值的最大值。第二数据的范围为第二预设范围,该第二预设范围可以包括该模型参数取值的标准值,该标准值可以根据大数据统计得到。第三数据的范围为第三预设范围,该第三预设范围可以包括该模型参数取值的最小值。以模型参数是体重为例,体重的第一预设范围可以为[90,100]kg,且最大值为100kg;体重的第三预设范围可以为[40,70]kg,其最小值为40kg;体重的第二预设范围可以为(70,90),其标准值为80kg。技术人员可以根据模型参数来设置取值范围,相应方案落入本公开的保护范围。
[0068]
本实施例中,继续参见图2,在步骤22中,人体模型处理系统可以从预先存储的典型人体模型库中分别获取第一数值、第二数值和第三数值对应的人体模型,从而得到典型人体模型。可理解的是,第一数值、第二数值和第三数值对应的典型人体模型的区别仅在于上述模型参数的取值不同,而其他模型参数的取值均相同,从而可以体现出在模型参数取不同典型值时对人体模型的影响。
[0069]
在一实施例中,典型人体模型库中的典型人体模型中仅需要存储蒙皮点三维信息,而各典型人体模型的通用信息仅存储一次,在使用时直接读取即可,节省了大量的典型人体模型的固定信息的提取和保持等处理步骤,也有利于节省后续步骤的计算量,并且可以节省存储大量典型人体模型所占用的存储空间。其中,典型人体模型的蒙皮点的三维信息的获取方式可以包括:通过主成分分析法确定各个人体模型的主要形变分量以及主要形变分量对应的形变特征值。其中,主要形变分量为可引起人体模型部分形态变化的分量。根据主要形变分量和形变特征值确定典型人体模型。
[0070]
在一实施例中,根据主要形变分量和形变特征值确定至少一项人体模型的典型模型参数,根据确定出的每一项典型模型参数确定一个典型人体模型,作为反映形变特征的典型人体模型。其中,根据主要形变分量和形变特征值确定至少一项典型模型参数,可包括:根据主要形变分量和形变特征值对基础人体模型的人体参数进行调整,得到至少一项典型模型参数。基础人体模型可以是根据多个用户的人体实际参数的平均值生成的三维人体模型,也可以是根据其它根据需求设置的参数值生成的三维人体模型。
[0071]
在另一实施例中,可根据主要形变分量和形变特征值直接对基础人体模型的三维蒙皮点信息进行调整,得到相应的典型人体模型。
[0072]
在一实施例中,由于人体模型的人体参数和三维蒙皮点信息具有关联关系,典型模型参数的确定和典型人体模型的确定可以没有明确的先后顺序,典型人体模型的确定可不依赖于典型模型参数,也可通过直接调整三维蒙皮点信息来确定典型人体模型,因此在一实施例中可根据主要形变分量和形变特征值对基础人体模型中的人体参数和三维蒙皮点信息同步调整,同时得到典型模型参数及其对应的典型人体模型。
[0073]
下面结合一个具体示例对上述过程的原理进行介绍:
[0074]
假设共有m个实际人体模型作为主成分分析的样本,每个真实人体模型中含有n个曲面蒙皮点作为参数标记点,在主成分分析过程中,首先将每个实际人体模型用n个曲面蒙皮点的坐标集合的列向量表示如下:
[0075][0076]
在式(1)中,i代表样本编号,即本公开实施例中作为样本的真实人体模型的编号。
[0077]
然后通过如式(2)计算所有样本的平均形状向量(可作为基础人体模型的人体参数向量):
[0078][0079]
进一步通过如下式(3)计算各个样本的协方差矩阵:
[0080][0081]
进而通过奇异值分解(singular value decomposition,svd)求出该协方差矩阵s的主要形变分量(特征向量)φm及其对应的形变特征值λm,该主要形变分量(特征向量)φm及其对应的形变特征值λm可较大程度的保留原始m个样本的主要数据信息,以反映原始的m个样本的形变特征,同时删去无关或重复的数据信息,减少计算量。
[0082]
将求出的所有形变特征值按从大到小的顺序排序,选择数值最大的前c个形变特征值λm作为对样本的整体所有形状的估计,每一个人体的形状可以表示为:
[0083][0084]
在式(4)中,bm表示形状系数,可看作对样本形状的压缩表示,其它参数含义同前。
[0085]
通过调整形状系数bm可实现对的调整,根据形变特征值λm可确定形状系数bm的值,代入式(4)后可确定一个典型人体模型x。形变特征值λm和形状系数bm的对应关系,可根据实际需求或经验值确定,例如其中,根据实际需求3可以用其它数值替代。
[0086]
在一实施例中,人体模型处理系统获取典型人体模型后可以进行存储,包括:将典型人体模型的文件转换为二进制文件进行存储,典型人体模型的二进制文件中包括二进制格式的典型模型参数。
[0087]
在一示例中,人体模型处理系统可以创建二进制文件;将典型人体模型及其典型模型参数转换为二进制格式后,写入该二进制文件。
[0088]
在另一示例中,人体模型处理系统可以将二进制格式的典型人体模型的模型名
称、二进制格式的典型模型参数的蒙皮点个数、以及二进制格式的典型模型参数的蒙皮点三维位置,逐层写入二进制文件。
[0089]
在另一示例中,利用unity脚本存储二进制文件。unity3d是由unity technologies开发的一个让用户轻松创建诸如三维视频游戏、建筑可视化、或实时三维动画等类型互动内容的多平台的综合型开发工具,是一个全面整合的专业引擎。部署简单,对用户友好;具有成规模的插件和中间件,可以加快开发速度;支持基于c#语言的脚本,可以在编程漂亮和运行效率之间取得比较合适的平衡。
[0090]
利用本公开实施例,在存储大量典型人体模型时,固定信息是各典型人体模型通用的仅存一次即可,大量的典型人体模型仅需要存储蒙皮点三维信息,节省了大量的典型人体模型的固定信息的提取和保持等处理步骤,也有利于节省后续步骤的计算量,并且可以节省存储大量典型人体模型所占用的存储空间。
[0091]
在一些实施例中,对于人体模型处理系统可以获得模型参数对应的目标人体模型,人体模型处理系统可以基于目标值对上述典型人体模型进行处理,从而获取模型参数对应的目标人体模型。在一示例中,人体模型处理系统可以基于上述目标值对典型人体模型中的骨骼点数据进行处理,从而获得目标人体模型的骨骼点数据。在另一示例中,由于人体模型中骨骼点存在层次,人体模型处理系统可以获取预设的骨骼层次顺序,并基于目标值和上述骨骼层次顺序对典型人体模型中的骨骼点数据进行处理,从而获得目标人体模型的骨骼点数据。这样,本实施例中通过对典型人体模型中骨骼点数据进行处理,可以得到与目标人体模型相匹配的骨骼点数据,与相关技术中生成人体模型仅调整蒙皮的方案相比较,可以使骨骼与蒙皮相匹配,使得目标人体模型在动态过程中骨骼同样与蒙皮相匹配,可以提升展示效果。
[0092]
需要说明的是,骨骼层次是人体生成算法内预先设置的,其用于表示人体骨骼之间的连接关系,具体实现时可以采用骨骼的关节呈现层级结构即树结构,一副骨骼有一个根关节点,其余关节点是根关节点的子节点,或者子节点的子节点,或者子节点的子节点的子节点,依此类推,因此一副骨骼可以理解为一个树节点为坐标系的树结构。并且,子关节点存储的变换信息能将子关节空间中的顶点变换到父关节空间中。根关节点中存储的是从根关键点变换到人体模型空间中的变换信息。本实施例中,上述骨骼层次顺序可以是从根节点开始直至最后的叶节点来获取骨骼点数据,可以减少数据处理量,提升处理效率。
[0093]
在一实施例中,人体模型处理系统可以对典型人体模型中的骨骼点进行处理,参见图3,包括步骤31~步骤34。
[0094]
在步骤31中,人体模型处理系统可以获取目标值和典型值的对应关系。以典型值为模型参数的第一数值、第二数值和第三数值为例,人体模型处理系统可以对比目标值和第二数值,得到目标值和第二数值的大小关系。当上述大小关系表征目标值大于或等于第二数值时,人体模型处理系统可以确定目标值位于第二数值和第一数值之间,即对应关系表征目标值位于第二数值和第一数值之间;当上述大小关系表征目标值小于第二数值时,人体模型处理系统可以确定目标值位于第二数值和第三数值之间,即对应关系表征目标值位于第二数值和第三数值之间。
[0095]
以典型值为模型参数的最大值、最小值和标准值为例,那么人体模型处理系统可以对比目标值和标准值,得到目标值和标准值的大小关系。当目标值大于或等于标准值时,
人体模型处理系统可以确定表征目标值位于标准值和最大值之间的对应关系;当目标值小于标准值时,人体模型处理系统可以确定表征目标值位于标准值和最小值之间的对应关系。
[0096]
继续参见图3,在步骤32中,人体模型处理系统可以基于目标值、上述对应关系和典型值确定补偿系数。人体模型处理系统可以根据对应关系确定出待选用的2个典型值,例如,当对应关系表征目标值位于第二数值和第三数值之间时,可以确定待选用的2个典型值为第二数值和第三数值;又如,当对应关系表征目标值位于第二数值和第一数值之间时,可以确定待选用的2个典型值为第一数值和第二数值。然后,人体模型处理系统可以基于目标值和上述2个典型值来计算补偿系数。
[0097]
当典型值为第一数值和第二数值时,补偿系数计算公式为:
[0098]
β=(p-s)/(m-s);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0099]
当典型值为第二数值和第三数值时,补偿系数计算公式为:
[0100]
β=(p-n)/(s-n);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0101]
式(5)和式(6)中,β表示补偿系数,p表示模型参数的目标值,m表示第一数值,s表示第二数值,n表示第三数值。
[0102]
在步骤33中,人体模型处理系统可以根据所述对应关系从所述典型人体模型中选择2个模型,得到第一基准人体模型和第二基准人体模型。人体模型处理系统可以根据每个典型值生成一个人体模型,即第一数值对应一个人体模型、第二数值对应一个人体模型和第三数值对应一个人体模型,后续将所选择的2个模型分别称之为第一基准人体模型和第二基准人体模型。
[0103]
结合步骤32中根据目标值和典型值的对应关系可以确定出待使用的2个典型值,人体模型处理系统可以选择这2个典型值对应的人体模型。以模型参数是体重为例,第一数值对应的人体模型为较胖人体模型,第二数值对应标准人体模型,第三数值对应的人体模型为较瘦人体模型。当对应关系表征目标值位于第二数值和第三数值之间时,人体模型处理系统可以选择标准人体模型和较瘦人体模型;当对应关系表征目标值位于第一数值和第二数值之间时,人体模型处理系统可以选择标准人体模型和较胖人体模型。
[0104]
在步骤34中,人体模型处理系统可以根据所述补偿系数、所述第一基准模型中的骨骼点数据和所述第二基准人体模型中的骨骼点数据获取目标人体模型的骨骼点数据。参见图4,在步骤41中,人体模型处理系统可以依次获取第一基准模型中的第一骨骼点数据,以及获取第二基准人体模型中与第一骨骼点同一位置的第二骨骼点数据。在步骤42中,人体模型处理系统可以根据补偿系数、第一骨骼点数据和第二骨骼点数据进行插值处理,得到新插入的骨骼点数据,并将新插入的骨骼点数据作为目标人体模型中与第一骨骼点相同位置的骨骼点数据。这样,通过在第一骨骼点和第二骨骼点之间插入新的骨骼点可以使新骨骼点与补偿系数相匹配,最终获得介于第一基准人体模型和第二基准人体模型之间的新模型(即目标人体模型)的骨骼点。假设第一基准人体模型和第二基准人体模型两者之间仅有一个模型参数的取值不同,那么所得新模型与两个基准人体模型的骨骼点的差别也在于上述模型参数的改变,即达到骨骼点跟随模型参数改变的效果。
[0105]
也就是说,本步骤中人体模型处理系统可以利用第一基准人体模型中的第一骨骼点数据和第二基准人体模型中同位置的第二骨骼点数据为基准来生成目标人体模型中同
位置的骨骼点数据,函数关系为gp=f(gm,gn,β),其中gp为目标人体模型中骨骼点数据,gm表示第一基准人体模型中的骨骼点数据,gn表示第二基准人体模型中的骨骼点数据,β表示补偿系数,f()表示变量gm,gn,β与gp的函数关系。
[0106]
以函数关系为比例关系即线性插值为例,人体模型处理系统获取上述目标人体模型的骨骼点数据的计算公式为:
[0107]
gp=gm*β+gn*(1-β);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0108]
式(7)中,gm表示第一基准人体模型中的第一骨骼点数据,gn表示第二基准人体模型中的第二骨骼点数据,gp表示目标人体模型中的骨骼点数据,β表示补偿系数。
[0109]
继续以模型参数为体重为例,参见图5,(a)图表示第一骨骼点数据,其与外围框的距离为dm,(c)图表示第二骨骼点数据,其与外围框的距离为dn,(b)图表示目标人体模型的骨骼点数据,其与外围框的距离为dp,此时dp=dm*β+dn*(1-β),即随着体重的变化骨骼点距离外围框的距离也同步变化。由于上述外围框是人体模型的蒙皮,因此骨骼点与蒙皮点的位置同比例(即补偿系数)变化,达到骨骼点和蒙皮点相匹配的效果。
[0110]
需要说明的是,本实施例中除了采用线性插值外,还可以选用多项式关系、二次插值、拉格朗日多项式插值等方式获取骨骼点数据,同样可以获得目标人体模型,相应方案落入本公开的保护范围。
[0111]
需要说明的是,本实施例中通过获取第一数值、第二数值和第三数值对应的典型人体模型,并利用其中两个作为基准人体模型来生成目标人体模型,有利于快速获得目标人体模型。如果选用一个典型人体模型,则需要对典型人体模型进行重新计算处理和渲染处理,而选用二个典型人体模型仅是加法和乘法的计算,速度更快,适用于实时性较强的使用场景;如果选用多个典型人体模型则会增加典型人体模型所占用的存储空间以及增加计算量,不适用实时性较强的场景。
[0112]
在另一实施例中,人体模型处理系统可以对典型人体模型中的蒙皮点进行处理,并且该蒙皮点的处理方式与骨骼点的处理方式相同。参考处理骨骼点的实施例,在确定出第一基准人体模型和第二基准人体模型之后,人体模型处理系统可以依次获取第一基准人体模型中的第一蒙皮点数据以及获取第二基准人体模型中与第一基准人体模型中同一位置的第二蒙皮点数据。然后,基于上述补偿系数、第一蒙皮点数据和第二蒙皮点数据来确定目标人体模型中与第一基准人体模型中同一位置的蒙皮点数据,计算公式为:
[0113]
mp=mm*β+mn*(1-β);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0114]
式(8)中,mm表示第一基准人体模型中的第一蒙皮点数据,mn表示第二基准人体模型中的第二蒙皮点数据,mp表示目标人体模型中的蒙皮点数据,β表示补偿系数。
[0115]
在步骤13中,显示所述模型参数对应的目标人体模型。
[0116]
本实施例中,在获得骨骼点数据和蒙皮点数据之后,人体模型处理系统可以根据骨骼点数据和蒙皮点数据中的坐标数据置于预设坐标系的对应位置。由于第一基准人体模型和第二基准人体模型的权重系数是相同的,因此它们的权重系数可以直接赋值给目标人体模型。其中权重系数用于表征骨骼点对各蒙皮点的影响程度,即骨骼点距离蒙皮点越近则骨骼点与蒙皮点之间的权重系数越大,蒙皮点受到骨骼点的影响越大。人体模型处理系统可以使骨骼点和蒙皮点之间的权重系数生效,从而获取目标人体模型。也就是说,在骨骼点的位置发生变化后,其可以向相关联的蒙皮点施加影响,进而改变蒙皮点的位置。
[0117]
这样,本实施例中通过对典型人体模型进行处理获得目标人体模型,使得目标人体模型中的骨骼点和蒙皮点的位置在显示效果上同比例(即同一补偿系数)进行变化,有利于后续动态显示时提升显示效果,提升使用体验。
[0118]
在本公开实施例提供的一种人体模型处理方法的基础上,本公开实施例还提供了一种人体模型处理装置,用于执行如图1~图5所述的方法;参见图6,所述装置包括:
[0119]
配置窗口显示模块61,用于响应于检测到对当前所显示人体模型的触发操作,显示参数配置窗口;所述参数配置窗口内包括所述人体模型至少一个模型参数相关的图像组件;
[0120]
人体模型获取模块62,用于响应于检测到对至少一个图像组件的触发操作,确定所述图像组件对应模型参数以及获取所述模型参数对应的人体模型;
[0121]
目标模型显示模块63,用于显示所述模型参数对应的目标人体模型。
[0122]
需要说明的是,本实施例中示出的装置与方法实施例的内容相匹配,可以参考上述方法实施例的内容,在此不再赘述。
[0123]
在本公开实施例提供的一种人体模型处理方法的基础上,本公开实施例还提供了一种人体模型处理系统,参见图7,包括:
[0124]
输入单元71,用于接收用户输入的模型参数的目标值;
[0125]
存储单元72,用于存储处理器可执行的计算机程序;
[0126]
处理器73,与所述输入单元电连接,用于执行所述存储器中的计算机程序以实现图1~图5所示例的方法,并生成所述模型参数对应的目标人体模型;
[0127]
显示单元74,与所述处理器电连接,用于展示所述目标人体模型。
[0128]
在一实施例中,所述处理器用于获取所述模型参数对应的人体模型,包括:
[0129]
获取用户输入的所述模型参数的目标值;
[0130]
获取所述模型参数的典型值对应的典型人体模型;
[0131]
基于所述目标值对所述典型人体模型进行处理,获得所述模型参数对应的目标人体模型。
[0132]
在一实施例中,所述处理器用于获取所述模型参数的典型值对应的典型人体模型,包括:
[0133]
获取所述参数取值的典型值;所述典型值包括第一数值、第二数值和第三数值,所述第一数值、所述第二数值和所述第三数值依次减小;
[0134]
分别获取所述第一数值、所述第二数值和所述第三数值对应的人体模型,得到典型人体模型。
[0135]
在一实施例中,所述处理器用于基于所述目标值对所述典型人体模型进行处理,包括:
[0136]
基于所述目标值对所述典型人体模型中的骨骼点数据进行处理,获得所述目标人体模型的骨骼点数据。
[0137]
在一实施例中,所述处理器用于基于所述目标值对典型人体模型进行处理,包括:
[0138]
基于预设的骨骼点层次顺序和所述目标值,对所述典型人体模型中的骨骼点数据进行处理,获得所述目标人体模型的骨骼点数据。
[0139]
在一实施例中,所述处理器用于对所述典型人体模型中的骨骼点数据进行处理,
包括:
[0140]
获取所述目标值和所述典型值的对应关系;
[0141]
基于所述目标值、所述对应关系和所述典型值确定补偿系数;
[0142]
根据所述对应关系从所述典型人体模型中选择2个模型,得到第一基准人体模型和第二基准人体模型;
[0143]
根据所述补偿系数、所述第一基准模型中的骨骼点数据和所述第二基准人体模型中的骨骼点数据获取目标人体模型的骨骼点数据。
[0144]
在一实施例中,所述处理器用于根据所述补偿系数、所述第一基准模型中的骨骼点数据和所述第二基准人体模型中的骨骼点数据获取目标人体模型的骨骼点数据,包括:
[0145]
依次获取所述第一基准模型中的第一骨骼点数据,以及获取所述第二基准人体模型中与所述第一骨骼点同一位置的第二骨骼点数据;
[0146]
根据所述补偿系数、所述第一骨骼点数据和所述第二骨骼点数据进行插值处理,得到新插入的骨骼点数据,并将新插入的骨骼点数据作为目标人体模型中与所述第一骨骼点相同位置的骨骼点数据。
[0147]
在一实施例中,所述目标人体模型的骨骼点数据采用以下公式计算:
[0148]
gp=gm*β+gn*(1-β);
[0149]
式中,gp表示新插入的骨骼点数据,gm表示第一骨骼点数据,gn表示第二骨骼点数据,β表示补偿系数。
[0150]
在一实施例中,所述处理器用于基于所述目标值对所述典型人体模型进行处理,还包括:
[0151]
基于所述目标值对所述典型人体模型中蒙皮点进行处理,
[0152]
所述蒙皮点的处理方式与所述骨骼点的处理方式相同。
[0153]
需要说明的是,本实施例中示出的系统与方法实施例的内容相匹配,可以参考上述方法实施例的内容,在此不再赘述。
[0154]
在一实施例中,本公开实施例还提供了一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如图1~图5所述的方法。
[0155]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本公开实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state drives,ssd))等。
[0156]
本公开的一些实施例提供了一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质中存储有计算机程序指令,计算机程序指令在处理器上运行时,使得计算机执行如上述实施例中任一实施例所述的数据处理方法,例如所述的数据处理方法中的一个或多个步骤。
[0157]
示例性的,上述计算机可读存储介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,cd(compact disk,压缩盘)、dvd(digital versatile disk,数字通用盘)等),智能卡和闪存器件(例如,eprom(erasable programmable read-only memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。本公开描述的各种计算机可读存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读存储介质。术语“机器可读存储介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
[0158]
本公开实施例中所提到的处理器可以是中央处理器(central processing unit,cpu),通用处理器,数字信号处理器(digital signal processor,dsp),专用集成电路(application-specific integrated circuit,asic),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开所描述的各种示例性的逻辑方框和模块。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。
[0159]
此外,本公开实施例所提到的存储器可以是随机存取存储器(random access memory,ram)、闪存、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable rom,eprom)、电可擦可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质。
[0160]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0161]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1