掌桥专利:专业的专利平台
掌桥专利
首页

人体模型的骨骼绑定方法、装置及电子设备

文献发布时间:2023-06-19 11:35:49


人体模型的骨骼绑定方法、装置及电子设备

技术领域

本说明书涉及人体模型技术领域,尤其涉及一种人体模型的骨骼绑定方法、装置及电子设备。

背景技术

虚拟数字人作为人机交互界面的基础,已逐渐应用在很多领域。一个虚拟数字人的实现包括多个方面的内容,比如,人物设计建模、动画的实现、服装解算、渲染等。其中,一个关键的环节便是动画,而骨骼绑定是实现动画必不可少的一个步骤。目前的骨骼绑定技术,要么采用手工绑定的方式,十分耗费人力,且绑定效率较慢;要么可以实现自动绑定,但是绑定效果较差,需要美术人员做进一步修正后才能使用。因而,有必要提供一种自动实现人体模型的骨骼绑定且绑定效果较好的方案。

发明内容

基于此,本说明书提供了一种人体模型的骨骼绑定方法、装置及电子设备。

根据本说明书实施例的第一方面,提供一种人体模型的骨骼绑定方法,

所述方法包括:

获取待绑定骨骼的第一人体模型;

确定所述第一人体模型与第二人体模型之间的变换关系;

根据所述变换关系与所述第二人体模型的骨骼绑定信息确定所述第一人体模型的骨骼绑定信息;其中,所述骨骼绑定信息用于确定人体模型的骨骼关节点的位置,以及每根骨骼对人体模型各部位的影响。

根据本说明书实施例的第二方面,提供一种人体模型的骨骼绑定装置,所述装置包括:

获取模块,用于获取待绑定骨骼的第一人体模型;

变换关系确定模块,用于确定所述第一人体模型与第二人体模型之间的变换关系;

骨骼绑定信息确定模块,用于根据所述变换关系与所述第二人体模型的骨骼绑定信息确定所述第一人体模型的骨骼绑定信息;其中,所述骨骼绑定信息用于确定人体模型的骨骼关节点的位置,以及每根骨骼对人体模型各部位的影响。

根据本说明书实施例的第三方面,提供一种电子设备,所述电子设备包括处理器、存储器、存储在所述存储器可供所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面提及的方法。

应用本说明书实施例的方案,在为待绑定骨骼的第一人体模型绑定骨骼时,可以确定第一人体模型和已完成骨骼绑定的第二人体模型之间的变换关系,基于该变换关系和第二人体模型的骨骼绑定信息确定第一人体模型的骨骼绑定信息。通过将已绑定骨骼的人体模型的骨骼绑定信息迁移至待绑定骨骼的人体模型中,可以自动完成待绑定骨骼的人体模型的骨骼绑定,并且可以得到较好的绑定效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书一个实施例的一种人体网格模型的示意图。

图2是本说明书一个实施例的一种人体模型的骨骼绑定方法的流程图。

图3是本说明书一个实施例的一种人体模型骨骼绑定方法的示意图。

图4是本说明书一个实施例的一种人体模型骨骼绑定装置的逻辑结构框图。

图5是本说明书一个实施例的一种电子设备的逻辑结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

虚拟数字人作为人机交互界面的基础,已在很多领域使用。比如,可以用于影视行业中,以实现各种动画形象,或者可以用于各种服务行业中,代替工作人员进行语音播报和动作展示,或者也可以用于服装行业,完成虚拟试装等。一个虚拟数字人的实现通常包括多个方面的内容,比如,人物三维建模、动画的实现、服装解算、渲染等。其中,一个关键的环节便是动画的实现,而骨骼绑定是实现动画必不可少的一个步骤。

通常,一个三维人体模型可以看成是由皮肤层和骨骼层构成,通过激光扫描仪扫描得到的人体模型或者经过三维重建得到人体模型通常只能得到人体模型皮肤层的数据。但是,仅有皮肤层的数据无法完成人体模型的动画控制,因为人体各个部位的皮肤的变形动作是依赖于人体骨骼的动作的。比如,以常用的人体网格模型为例,通常可以将一个人体模型的皮肤层划分成多个网格,如图1所示,知道这些网格的网格顶点的位置以及网格顶点的连接关系,即可以表示出该三维人体模型的皮肤层的数据。但是,仅知道这些网格顶点的位置和网格顶点连接关系,无法实现动画,还需进一步确定人体各个骨骼关节点在人体模型的位置,以及每根骨骼的控制范围。如图1所示,如果是肩关节和肘关节之间的骨骼运动,其会影响是这根骨骼表面及周围的皮肤(如图1中虚线框选的部分),对于距离其较远的皮肤的影响则很小。所以,人体模型的骨骼绑定的目的是在人体模型中确定骨骼关节点的位置,以及每根骨骼对人体各个部位的影响。

相关技术中,在实现人体模型的骨骼绑定时,大多采用手工绑定的方式,即通过人工手动在模型中标定骨骼关节点的位置,以及确定每根骨骼在人体模型中的影响范围,采用这种方式绑定一个高精度人体模型,一般需要耗费1-2周甚至更长的时间,效率很低,并且绑定效果也非常依赖绑定师的经验和技术。也有的技术实现了自动完成骨骼绑定,但是这些技术是针对任意形态的模型,比如,除了人体模型以外,对于其他各种模型(比如,猫、狗等动物)都通用,很明显,这种技术绑定效果较差,一般无法直接使用绑定结果,而是需要美术人员做进一步修正后才能使用。还有些技术需要人工标定人体模型骨骼关节点的位置,然后自动确定每个骨骼对人体各部位的影响,即实现半自动化绑定,还是不够智能。因而,业界迫切需要一种可以自动实现人体模型骨骼绑定的方案,并且可以达到较好的绑定效果。

基于此,本申请实施例提供了一种人体模型的骨骼绑定方法,可以确定待绑定骨骼的第一人体模型与已完成骨骼绑定的第二人体模型之间的变换关系,基于两者的变换关系以及第二人体模型的骨骼绑定信息确定第一人体模型的骨骼绑定信息,自动完成第一人体模型的骨骼绑定。

本申请实施例中的骨骼绑定方法可以用于各种可以实现骨骼绑定功能的动画制作软件或者用于实现骨骼绑定功能的插件等。该方法可以由手机、平板、笔记本电脑、云端服务器等各种电子设备执行。

具体的,如图2所示,所述人体模型的骨骼绑定方法包括以下步骤:

S202、获取待绑定骨骼的第一人体模型;

S204、确定所述第一人体模型与第二人体模型之间的变换关系;

S206、根据所述变换关系与所述第二人体模型的骨骼绑定信息确定所述第一人体模型的骨骼绑定信息;其中,所述骨骼绑定信息用于确定人体模型的骨骼关节点的位置,以及每根骨骼对人体模型各部位的影响。

由于人体模型中骨骼关节点的位置以及每根骨骼对人体模型各部位的影响会受到人体模型形态的影响,比如,人体模型的高矮胖瘦发生变化,其骨骼关节点的位置,以及每根骨骼影响的范围也会发生变化。因而,如果已知一个人体模型的骨骼关节点的位置,以及每根骨骼对该人体模型各部位的影响,可以基于其他人体模型与该人体模型之间的体型、姿态等的差异,确定其骨骼关节点的位置以及每根骨骼影响范围的差异,进而确定其他人体模型的骨骼关节点的位置以及每根骨骼对其他人体模型各部位的影响。

因此,在步骤S202中,可以先获取待绑定骨骼的第一人体模型,第一人体模型可以采用各种形式的数据表征,比如,第一人体模型可以是人体网格模型,即人体模型可以用组成模型的各网格的网格顶点和网格顶点之间的连接关系表征,当然,也可以是其他形式的数据来表征的人体模型。第一人体模型可以是各种类型的人体模型,比如,可以静态的人体模型,比如,不同的人体模型采用不同的网格顶点以及网格顶点的连接关系表示。当然,第一人体模型也可是参数化人体模型,比如,SMPL(Skinned Multi-Person Linear)参数化人体模型,STAR(Sparse Trained Articulated Human Body Regressor)参数化人体模型等。参数化人体模型可以通过对大量的三维人体进行扫描的得到的人体模型数据进行学习获得,它可以根据输入的模型参数的不同,而输出不同形态和姿势的人体网格模型。

在步骤S204中,在获取到待绑定骨骼的第一人体模型后,可以确定第一人体模型和第二人体模型之间的变换关系。其中,第二人体模型的可以基于预先存储的静态的人体模型确定,也可以基于预先存储的参数化人体模型确定,第二人体模型的骨骼绑定信息已预先确定。第一人体模型与第二人体模型之间的变换关系可以是各种用于表征如何从第一人体模型变换到第二人体模型的参数,比如,可以是变换矩阵,也可以是其他的参数。第二人体模型的骨骼绑定信息已预先确定并存储,其中,骨骼绑定信息可以是用于确定人体模型的骨骼关节点的位置各种信息,以及用于确定每根骨骼对人体模型各部位的影响的各种信息。比如,骨骼绑定信息可以直接是关节点的位置信息,人体模型中各网格顶点相对于每根骨骼的蒙皮权重,也可以是用于确定关节点位置或者用于确定该蒙皮权重的其他参数,当然,骨骼绑定信息除了上述信息之外,还可以是与动画控制有关的其他信息。

通过确定待绑定骨骼的第一人体模型与携带有骨骼绑定信息的第二人体模型的变换关系,然后基于该变换关系将第二人体模型的骨骼绑定信息迁移至第一人体模型,以确定第一人体模型的骨骼绑定信息,可以自动完成人体模型的骨骼绑定,并且可以得到比较准确的绑定结果。

通常,两个形态大体一致的人体模型,其骨骼关节点的位置以及每根骨骼影响范围也往往比较接近,因而,根据两个模型之间的变换关系以及其中一个人体模型的骨骼绑定信息确定另一个人体模型的骨骼绑定信息会比较准确。因而,为了确定绑定该信息尽可能准确,第二人体模型可以是形态和第一人体模型形态比较接近的模型,比如,两者的体型和姿态比较接近,比如,两者的高矮胖瘦等相差不大。所以,在一些实施例中,第二人体模型的形态与第一人体模型的形态的偏差小于预设偏差。比如,第二人体模型的高矮胖瘦、姿态等人体特征参数与第一人体模型的高矮胖瘦、姿态等人体特征参数小于预设值,具体可以根据实际需求设定,只要保证两个模型体型大体一致,不会相差太大即可。

骨骼绑定信息可以是各种用于完成对人体模型进行骨骼绑定的信息。在一些实施例中,骨骼绑定信息包括以下一种或多种:骨骼关节点的位置、骨骼计算矩阵、蒙皮权重和肌肉变形器。

比如,在一些场景,如果第二人体模型可以是预先存储的静态的人体模型,即第二人体模型的皮肤层的各网格顶点的位置和连接关系是固定的,那么骨骼绑定信息可以直接包括骨骼关节点的位置,骨骼关节点的位置可以是表征人体模型中各骨骼关节点的位置的三维坐标,通常人体的骨骼模型是一个由24个关节点构成的树状模型,这些骨骼关节点可以是头、颈关节、肩关节、肘关节、踝关节等。

在一些场景,第二人体模型可以基于预先存储的参数化人体模型确定,对于参数化人体模型,如果输入的模型参数不同,那么最终输出的人体模型的形状、姿态等也各不一样,其骨骼关节点的位置以及各关节点对人体模型各部位的影响也必然不一样。因此,针对参数化人体模型,骨骼绑定信息中可以包括骨骼计算矩阵,其中,骨骼计算矩阵可以用于根据所述人体模型的皮肤层的各网格顶点的位置确定所述人体模型的骨骼关节点的位置。即当模型参数确定后,其人体模型的形状、姿态也可以确定,即网格顶点的位置和连接关系可以确定,因而可以根据网格顶点的位置和连接关系以及该骨骼计算矩阵确定骨骼关节点的位置。

实现动画控制,需要知道每根骨骼运动后,会对人体模型的哪些部位造成影响,以及影响有多大,从而才可以预测皮肤会发生什么样的形变。因此,在进行人体模型的骨骼绑定时,可以确定用于表征每根骨骼对人体模型中皮肤层的各网格顶点影响大小的蒙皮权重。举个例子,假设肘关节与腕关节之间的骨骼发生运动后,其对手小臂部分的皮肤的影响较大,会带动其运动,因而,其蒙皮权重较大,而对腿部的皮肤影响很小,因而其蒙皮权重较小。基于蒙皮权重,可以确定每个骨骼运动后,会带动人体模型的哪些皮肤运动,从而实现动画的控制。

当然,在有些场景,为了使得人体模型的动画达到更形象生动的效果,人体模型还可以包括肌肉层,即在皮肤层表面增加一个肌肉层模型,通过改变肌肉层模型与皮肤层表面的位置关系,可以将人体模型进行各种变形,以实现更加逼真的效果。肌肉层模型通常可以用多个网格顶点的位置以及这多个网格顶点与皮肤层的网格顶点之间的位置偏差表示。肌肉层模型和人体皮肤层模型融合后,可以得到更加逼真的人体模型。举个例子,假设要表示一个大肚子人体模型,除了用人体皮肤层数据表征该模型外之外,还可以在肚子部位增加一个局部的肌肉层模型,该肌肉层模型和人体皮肤层模型融合后,即可以得到最终的大肚子形象的人体模型。所以,在一些实施例中,骨骼绑定信息还可以包括肌肉变形器,肌肉变形器可以用于表征人体模型中肌肉层与皮肤层的位置变化,即肌肉层的网格顶点相对于皮肤层网格顶点的位置偏移,通过肌肉变形器,可以实现更复杂的皮肤变形。

由于两个人体模型的体型比较接近的情况下,通过骨骼绑定信息迁移的方式对待绑定骨骼的人体模型进行骨骼绑定才能得到比较准确的效果。而第二人体模型可以是预先存储的静态的人体模型,也可以基于参数化人体模型确定。在一些实施例中,可以预先确定多个不同形态(比如,不同高矮胖瘦)的人体模型的骨骼绑定信息并存储,在获取到第一人体模型后,可以从预先存储的静态人体模型中挑选出形态与第一人体模型比较接近的第二人体模型,将第二人体模型的骨骼绑定信息迁移至第一人体模型。当然,在一些实施例中,第二人体模型可以基于参数化人体模型确定,比如,可以预先存储一个参数化人体模型以及该模型的骨骼绑定信息,为了获得和待绑定骨骼的第一人体模型体型比较接近的第二人体模型,可以不断调整预先存储的参数化的人体模型的模型参数,直至第一人体模型与该参数化人体模型的形态偏差小于预设偏差,将此时的模型参数作为第二人体模型的模型参数,输入至该参数化人体模型中得到第二人体模型。通过不断优化参数化人体模型的模型参数,以得到形态和第一人体模型形态大致拟合的第二人体模型,再进行骨骼绑定信息的迁移,可以得到更加准确的骨骼绑定结果。

由于第一人体模型的皮肤层和第二人体模型的皮肤层均可以表示成由多个网格构成的人体模型,通过这些网格的网格顶点和网格顶点之间的连接关系即可以表示出该人体模型。为了便于区分,以下将第一人体模型的皮肤层的网格顶点统称为第一网格顶点,第二人体模型的皮肤层的网格顶点统称为第二网格顶点。

在一些实施例中,在确定第一人体模型和第二人体模型之间的变换关系时,可以先确定第一人体模型皮肤层的第一网格顶点在第二人体模型中的对应点,然后根据第一人体模型中的第一网格顶点以及这些第一网格顶点在第二人体模型中的对应点确定两个模型之间的变换关系。其中,在确定第一人体模型的第一网格顶点在第二人体模型中的对应点时,可以确定第一人体模型的皮肤层的所有网格顶点在第二人体模型中的对应点,当然,也可以只确定第一人体模型的皮肤层的部分网格顶点在第二人体模型中的对应点,比如,假设第一人体模型的皮肤层的第一网格顶点数量较多,只需取其中一部分比较关键的第一网格顶点,比如,对模型体型和姿态影响比较大的第一网格顶点,并确定其在第二人体模型中的对应点。在根据第一网格顶点以及这些第一网格顶点在第二人体模型中的对应点确定两个模型之间的变换关系时,可以基于第一网格顶点以及其对应点的位置偏差或者坐标变换关系等确定两个模型之间的变换关系。具体确定两者变换关系的方式很多,可以根据实际需求选取。

在一些实施例中,在确定第一人体模型的皮肤层的第一网格顶点在第二人体模型中的对应点时,可以针对第一人体模型中的每个第一网格顶点,分别从第二人体模型的第二网格顶点中确定与第一网格顶点距离最近的目标网格顶点作为第一网格顶点的对应点,即第一网格顶点的对应点可以是第二人体模型的网格顶点。其中,该距离可以是欧式距离,也可以是其他距离,具体可以根据实际需求设置。这种方式在第一人体模型和第二人体模型的网格数量较多,每个网格的面积较小的场景下会比较准确,但是对于第一人体模型和第二人体模型中网格数量较少,每个网格面积较大的场景,准确度比较低。

在一些实施例中,为了确定的第一网格顶点的对应点比较准确,偏差较小,也可以针对第一人体模型中的每个第一网格顶点,分别从第二人体模型的网格面中确定与该第一网格顶点距离最近的目标网格面,将该目标网格面中与第一网格顶点距离最近的点作为第一网格顶点的对应点。通过在第二人体模型中确定与第一网格顶点距离最近的目标网格面,再从该目标网格面中确定与第一网格顶点距离最近的点作为对应点,其中,对应点可以是第二人体模型中的非网格顶点,从而确定的对应点可以更加准确。

在一些实施例中,如果对应点是与第一网格顶点距离最近的目标网格面中与该第一网格顶点距离最近的点,目标网格面为三角形网格面,则在基于第一网格顶点及其对应点确定两个人体模型的变换关系时,可以先确定第一网格顶点的对应点的质心坐标,然后基于该质心坐标确定表征两个模型之间的变换关系的变换矩阵,其中,该变换矩阵可以表示为矩阵A

在一些实施例中,骨骼绑定信息包括人体模型的皮肤层的各网格顶点相对于每根骨骼的蒙皮权重,在根据第一人体模型与第二人体模型的变换关系以及第二人体模型的骨骼绑定信息确定第一人体模型的骨骼绑定信息时,可以直接根据该变换关系与第二人体模型的各网格顶点相对于每根骨骼的蒙皮权重确定第一人体模型的各网格顶点相对于每根骨骼的蒙皮权重。但是,直接通过两个模型的变化关系转换过来的蒙皮权重可能不太准确。为了提高确定的蒙皮权重的准确度,在一些实施例中,在根据该变换关系与第二人体模型皮肤层的各网格顶点相对于每根骨骼的蒙皮权重确定第一人体模型的各网格顶点相对于每根骨骼的蒙皮权重后,还可以进一步确定第一人体模型中各第一网格顶点对应的余弦权重,然后根据第一人体模型中各第一网格顶点的余弦权重对该蒙皮权重进行平滑处理,从而得到更加准确的蒙皮权重。其中,平滑处理时可以采用拉普拉斯平滑处理,也可以采用其他平滑处理,本申请实施例不作限制。

相关技术中,在为人体模型进行骨骼绑定时,通常只会确定人体主要的24个骨骼关节点的位置,以及这24个主要的骨骼关节点构成的骨骼对人体模型各部位的影响。其存在的问题是,在进行较大幅度的动作时,比如大幅度旋转时,依然不够流畅和自然。为了使得人体模型的动画更加顺畅和自然,在一些实施例中,骨骼关节点可以包括次级骨骼关键点,其中,次级骨骼关节点可以是两个主骨骼关节点之间新增的关节点,比如,可以是手指关节点、手肘与手腕之间增加的关节点、膝盖与踝关节之间增加的关节点。进而骨骼绑定信息可以包括一些次级骨骼关节点的绑定信息,比如,手指的绑定信息,两个主骨骼关节点之间添加的次级关节点的绑定信息。通过在原来的骨骼关节点之间添加一些次级骨骼关节点,并增加这些次级骨骼关节点的骨骼绑定信息,可以使得人体模型在进行一些大幅度的动画动作时更加流畅和自然。

为了进一步解释本申请实施例中的人体模型骨骼绑定方法,以下结合一个具体的实施例加以解释。

人体模型的骨骼绑定是实现动画过程中必不可少的一个环节,目前的骨骼绑定技术,要么不够智能化,效率较低,要么绑定精度较差。为了实现人体模型的骨骼绑定可以自动完成,且达到较好的绑定效果。以下提供一种人体模型的骨骼绑定方法,具体原理如图3所示,即确定待绑定骨骼的人体模型与携带有骨骼绑定信息的人体模型的变换关系,基于两者的变换关系将携带有骨骼绑定信息的人体模型的骨骼绑定信息迁移至待绑定骨骼的人体模型,已完成该人体模型的骨骼绑定。具体过程如下:

1、可以预先设置一个参数化的人体模型,该参数化人体模型可以是STAR参数化模型。之所以选用参数化人体模型,是因为后续针对不同体型的待绑定模型,可以调整该参数化人体模型的模型参数,使其形态与待绑定模型的形态大体一致,然后再进行后续的骨骼绑定信息的迁移,可以得到比较准确的结果。这样,使用一个参数化人体模型,便可以适用不同体型的待骨骼绑定的人体模型。

该参数化人体模型携带有骨骼绑定信息,其中,骨骼绑定信息包括骨骼计算矩阵,该骨骼计算矩阵K

为了让骨骼绑定的人体模型在做一些旋转比较大的动作仍能保持自然,本申请实施例中的骨骼绑定信息增加了手指以及一些次级骨骼(两个主骨骼关节点之间新增次级骨骼关节点)的绑定信息,比如,在前小臂和小腿处增加了次级骨骼。

2、可以获取待绑定骨骼的第一人体模型,然后不断调整参数化人体模型的模型参数,使得参数人体模型的体型和第一人体模型的体型大体拟合,此时确定的模型参数对应的模型称为第二人体模型。

3、确定第一人体模型的皮肤层的各网格顶点在第二人体模型的对应点。

针对第一人体模型的皮肤层的每个网格点,可以在第二人体模型的三角网格面中确定与该个网格点距离最近的三角网格面,然后从该三角网格面中与该网格点距离最近的点作为该网格点的对应点。通过这种方式,在人体模型网格较少,每个网格面积较大的情况下,也可以准确确定出对应点。

4、确定第一人体模型的骨骼计算矩阵K

可以确定第一人体模型每个网格点的对应点的质心坐标,根据对应点的质心坐标可以确定第一人体模型与第二人体模型之间的变换矩阵A,变换矩阵A的维数为N1

K

K

5、求第一人体模型皮肤层每个网格顶点相对于每根骨骼的蒙皮权重,假设用矩阵M

M

6、求第一人体模型的肌肉变形器,假设用矩阵J

J

7、对第一人体模型的蒙皮权重进行平滑处理。

确定第一人体模型每个网格点顶点的余弦权重,基于该余弦权重对蒙皮权重进行拉普拉斯平滑处理,其中,平滑次数和平滑程度可以通过设置的参数控制。

通过本申请实施例的方案,可以实现自动对人体模型进行骨骼绑定,且绑定结果的精度较高,效果较好。

相应的,本申请实施例还提供一种人体模型的骨骼绑定装置,如图4所示,所述装置40包括:

获取模块41,用于获取待绑定骨骼的第一人体模型;

变换关系确定模块42,用于确定所述第一人体模型与第二人体模型之间的变换矩阵;

骨骼绑定信息确定模块43,用于根据所述变换矩阵与所述第二人体模型的骨骼绑定信息确定所述第一人体模型的骨骼绑定信息;其中,所述骨骼绑定信息用于确定人体模型的骨骼关节点的位置,以及每根骨骼对人体模型各部位的影响。

在一些实施例中,所述骨骼绑定信息包括以下一种或多种:

骨骼关节点的位置信息;

骨骼计算矩阵,用于根据所述人体模型的皮肤层的各网格顶点的位置确定所述人体模型的骨骼关节点的位置;

蒙皮权重,用于表征每根骨骼对所述人体模型的皮肤层的各网格顶点影响的大小;

肌肉变形器,用于表征所述人体模型中的肌肉层相对于所述皮肤层的位置变化。

在一些实施例中,所述第一人体模型和所述第二人体模型的形态偏差小于预设偏差。

在一些实施例中,所述第二人体模型基于以下方式得到:

调整预先存储的参数化人体模型的模型参数,直至所述第一人体模型与所述参数化人体模型的形态偏差小于预设偏差,以得到所述第二人体模型,其中,所述参数化人体模型携带有骨骼绑定信息。

在一些实施例中,所述变换关系确定模块用于确定所述第一人体模型与第二人体模型之间的变换关系,具体用于:

确定所述第一人体模型的皮肤层的第一网格顶点在所述第二人体模型中的对应点;

基于所述第一网格顶点以及所述对应点确定所述变换关系。

在一些实施例中,所述变换关系确定模块用于确定所述第一人体模型的皮肤层的第一网格顶点在所述第二人体模型中的对应点,具体用于:

针对所述第一人体模型的皮肤层的每个第一网格顶点,分别执行以下操作:

从所述第二人体模型的皮肤层的第二网格顶点中确定与所述第一网格顶点距离最近的目标网格顶点作为所述第一网格顶点的对应点;或

从所述第二人体模型的皮肤层的网格面中确定与所述第一网格顶点距离最近的目标网格面,将所述目标网格面中与所述第一网格顶点距离最近的点作为所述第一网格顶点的对应点。

在一些实施例中,所述对应点包括所述目标网格面中与所述第一网格顶点距离最近的点,所述目标网格面为三角形网格面,所述变换关系确定模块用于基于所述第一网格顶点以及所述对应点确定所述变换关系,具体用于:

确定所述对应点的质心坐标;

基于所述质心坐标确定用于表征所述变换关系的变换矩阵,所述变换矩阵为A

在一些实施例中,所述骨骼绑定信息包括人体模型的皮肤层的各网格顶点相对于每根骨骼的蒙皮权重,所述骨骼绑定信息确定模块用于根据所述变换关系与所述第二人体模型的骨骼绑定信息确定所述第一人体模型的骨骼绑定信息,具体用于:

根据所述变换关系与所述第二人体模型的所述蒙皮权重确定所述第一人体模型的所述蒙皮权重;

基于所述第一人体模型的皮肤层的各第一网格顶点的余弦权重对所述第一人体模型的所述蒙皮权重进行平滑处理。

在一些实施例中,所述骨骼关节点包括次级骨骼关节点,所述次级骨骼关节点包括以下一种或多种:手指关节点、手肘与手腕之间增加的关节点、膝盖与踝关节之间增加的关节点。

其中,所述骨骼绑定装置实现骨骼绑定的具体过程参考上述方法实施例中的描述,在此不再赘述。

进一步地,本申请实施例还提供了一种电子设备,如图5所示,所述电子设备包括处理器51、存储器52、存储在所述存储器52可供所述处理器51执行的计算机程序,所述处理器51执行所述计算机程序时实现上述实施例任一项所述的方法。

相应地,本申请实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中所述的方法。

本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

相关技术
  • 人体模型的骨骼绑定方法、装置及电子设备
  • 一种三维人体模型的骨骼绑定方法
技术分类

06120112984038