一种创建人体虚拟模型的方法及其装置与流程

文档序号:17794122发布日期:2019-05-31 20:37阅读:382来源:国知局
一种创建人体虚拟模型的方法及其装置与流程

本申请涉及图像处理技术领域,尤其涉及一种创建人体虚拟模型的方法及其装置。



背景技术:

现有人体虚拟模型的建立方式包括手工建模的方式或用通用模板缩放的方式。但是通过手工建模的方式创建人体虚拟模型建模速度慢,并且需要高水准的美术功底才能得到精准的人体模型。通过通用模板缩放的方式创建人体虚拟模型,由于通用模板只有固定身材,无法反应每个人的比例,更无法匹配精确的三维人体模型。

因此,如何快速的创建符合每个人身体比例的人体虚拟模型,是本领域技术人员目前急需解决的技术问题。



技术实现要素:

本申请提供了一种创建人体虚拟模型的方法及装置,以快速的创建符合每个人身体比例的人体虚拟模型。

为解决上述技术问题,本申请提供如下技术方案:

一种创建人体虚拟模型的方法,包括以下步骤:创建人体标准模型;对人体标准模型的骨骼和肌肉进行分组,并且将分组后的骨骼和肌肉分别绑定控制器;对人体标准模型各部分的控制器进行标定,得到控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系;根据控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系,以及人体测量数据,计算控制器需要调整的三维空间坐标;按照骨骼和/或肌肉拓扑关系,根据需要调整的三维空间坐标依次调整控制器得到符合实际测量的人体的虚拟模型。

如上所述的创建人体虚拟模型的方法,其中,优选的是,创建人体标准模型具体包括:采用符合人体构造的骨骼和肌肉进行绑定,并且人物蒙皮的位移权重分配给骨骼节点,人物蒙皮的缩放权重分配给肌肉节点。

如上所述的构建人体虚拟模型的方法,其中,优选的是,对控制身高的控制器进行标定具体包括:将控制人体身高的骨骼模拟为不同的骨骼节点;按照人体标准模型的比例为各骨骼节点分配权重值,并得到相应的权重区;将期望调整的身高区间加权平均到所述权重区,得到每个骨骼节点在改变身高时的期望变化区间;通过调整控制身高的控制器,使骨骼节点在期望变化区间变化,得到控制器的三维空间坐标区间。

如上所述的构建人体虚拟模型的方法,其中,优选的是,得到控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系具体为:根据骨骼节点在改变身高时的期望变化区间与控制器的三维空间坐标区间构建反应其关系的线性函数。

如上所述的构建人体虚拟模型的方法,其中,优选的是,将控制人体身高的骨骼模拟为不同的骨骼节点具体为:将控制人体身高的骨骼划分为脊柱区、骨盆区和腿部区,骨盆区模拟为1根骨骼节点spine1,脊柱区模拟为2根骨骼节点spine2和spine3,腿部区模拟为左右腿2组各2根骨骼节点thigh和calf。

如上所述的构建人体虚拟模型的方法,其中,优选的是,按照人体标准模型的比例为各骨骼节点分配权重值,并得到相应的权重区具体为:人体身高标记为:h=spine3*mul3+spine2*mul2+spine1*mul1+thigh*mul4+calf*mul5,其中h为人体标准模型的身高,mul1~mul5为权重值,权重值根据标准模型的比例计算得到。

如上所述的构建人体虚拟模型的方法,其中,优选的是,将人体测量数据进行归一化转换,通过归一化转换的数据进行控制器需要调整的三维空间坐标的计算。

如上所述的构建人体虚拟模型的方法,其中,优选的是,控制器需要调整的三维空间坐标具体通过函数target=mathf.lerp(llower,lupper,eva)计算,其中llower为骨骼节点和/或肌肉节点期望变化区间中的极小值,lupper为骨骼节点和/或肌肉节点期望变化区间中的极大值,eva为人体测量数据归一化过后的输入数据,target为计算出的控制器需要调整到的三维空间坐标,mathf.lerp为线性插值函数。

如上所述的构建人体虚拟模型的方法,其中,优选的是,骨骼和/或肌肉拓扑关系具体为:控制骨骼位移类调整的控制器先于控制肌肉缩放类的控制器进行调整,控制骨骼位移类调整的控制器按照身高、肩宽和臂长的顺序调整,控制肌肉缩放类的控制器按照胸围、腰围、臀围、大腿围的顺序进行调整;并且后调整数据应用到除之前调整的控制器以外的后续其他控制器。

一种创建人体虚拟模型的装置,包括:存储介质和处理器,其中存储介质存储处理器创建的人体标准模型,处理器执行上述任一项所述的创建人体虚拟模型的方法。

相对上述背景技术,本发明所提供的创建人体虚拟模型的方法,包括以下步骤:创建人体标准模型;对人体标准模型的骨骼和肌肉进行分组,并且将分组后的骨骼和肌肉分别绑定控制器;对人体标准模型各部分的控制器进行标定,得到控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系;根据控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系,以及人体测量数据,计算控制器需要调整的三维空间坐标;按照骨骼和/或肌肉拓扑关系,根据需要调整的三维空间坐标依次调整控制器得到符合实际测量的人体的虚拟模型。由于本申请实施例提供的构建人体虚拟模型的方法对人体结构进行了拆分,量化到特征组进行模型的构建,因此可以按照骨骼和/或肌肉拓扑关系进行调整,从而能够快速的构建不同身高、臂长、胖瘦的人体虚拟模型,并且通过少量的数据就可以实现全身特征组间联动适配。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的创建人体虚拟模型方法的流程图;

图2是本申请实施例提供的位移类分组图;

图3是本申请实施例提供的缩放类分组图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

如图1所示,本申请实施例提供了一种创建人体虚拟模型的方法,包括以下步骤:

步骤s110、创建人体标准模型;

具体的,预先构造符合人体构造的骨骼和肌肉,并对这些骨骼和肌肉进行绑定。进行绑定时,要确保人物蒙皮的位移权重分配给骨骼节点,人物蒙皮的缩放权重分配给肌肉节点。其中,将人物蒙皮的位移权重分配给骨骼节点意味着通过调整骨骼节点可以调整人体标准模型的位移类参数,也就是可以调整骨骼的长短;而将人物蒙皮的缩放权重分配给肌肉节点意味着通过调整肌肉节点可以调整人体标准模型的缩放参数,也就是可以调整肌肉的大小。

其中,符合人体构造的骨骼和肌肉可以为不同人种、不同性别、不同年龄的标准身材,例如:亚洲成年男性的身材,当然也可以是其他人种、性别的身材,本申请实施例中以亚洲成年男性的身材为例。

步骤s120、对人体标准模型的骨骼和肌肉进行分组,并且将分组后的骨骼和肌肉分别绑定控制器;

按照调整形式例如位移类调整和缩放类调整,将骨骼和肌肉分为两大类单独进行分组划分。具体的,可以按照调整比例将骨骼划分为若干区域,将肌肉也划分为若干区域。例如:如图2所示,将骨骼分为肩膀区210、手臂区220、脊柱区230、骨盆区240和腿部区250;如图3所示,将肌肉分为上肢区310、胸部320、腹部330、臀部340和腿部350。

将划分为不同区域的骨骼和划分为不同区域的肌肉分别绑定控制器。例如,将肩膀区210、手臂区220、脊柱区230、骨盆区240和腿部区250分别绑定肩膀骨控制器、手臂骨控制器、脊柱骨控制器、骨盆骨控制器和腿部骨控制器,以通过控制器调整相应骨骼的长短;将上肢区310、胸部320、腹部330、臀部340和腿部350分别绑定上肢区肌肉控制器、胸部肌肉控制器、腹部肌肉控制器、臀部肌肉控制器和腿部肌肉控制器,以通过控制器调整相应肌肉的大小。

步骤s130、对人体标准模型各部分的控制器进行标定,得到控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系;

对人体标准模型各部分的控制器进行标定就是将控制器在3d引擎内的虚拟坐标与构建人体标准模型的实际人体身材的参数建立对应关系。

首先,对控制身高的控制器进行标定。具体的,需要将控制人体身高的骨骼模拟为不同的骨骼节点。例如:控制人体身高的骨骼可以划分为脊柱区、骨盆区和腿部区,将骨盆区模拟为1根骨骼节点spine1,为了调整人体标准模型使之与实际人体更加精准的匹配,还可以将脊柱区模拟为2根骨骼节点spine2和spine3,腿部区模拟为左右腿2组各2根骨骼节点thigh和calf,当然也可以模拟为更多的节点。

按照人体标准模型的比例为各骨骼节点分配权重值得到相应的权重区。作为举例,将骨骼节点spine1、骨骼节点spine2、骨骼节点spine3、骨骼节点thigh和骨骼节点calf分为5个权重区,标记为:h=spine3*mul3+spine2*mul2+spine1*mul1+thigh*mul4+calf*mul5,其中h为人体标准模型的身高,mul1~mul5为权重值,权重值是可以根据标准模型的比例计算的,例如可以根据亚洲成年男性身材比例计算权重值。

将期望调整的身高区间加权平均到上述权重区,得到每个骨骼节点在改变身高时的期望变化区间。例如,亚洲成年男性身高参考1.72m,上下浮动区间+/-0.3m,得到期望调整的身高区间[1.42,2.02]。将1.42m相对于1.72m的变化加权平均到上述5个权重区,得到骨骼节点spine1、骨骼节点spine2、骨骼节点spine3、骨骼节点thigh和骨骼节点calf的调整的最小值。同理可以得到骨骼节点spine1、骨骼节点spine2、骨骼节点spine3、骨骼节点thigh和骨骼节点calf的调整的最大值。通过骨骼节点调整的最小值和骨骼节点调整的最大值可以得到每个骨骼节点在改变身高时的期望变化区间。

通过调整控制身高的控制器(脊柱骨控制器、骨盆骨控制器和腿部骨控制器),使骨骼节点在期望变化区间变化,得到控制器的三维空间坐标区间。例如,调整骨盆骨控制器,使骨骼节点spine1满足期望变化区间的最小值,记录骨盆骨控制器的三维空间最小坐标;调整骨盆骨控制器,使骨骼节点spine1满足期望变化区间的最大值,记录骨盆骨控制器的三维空间最大坐标,通过骨盆骨三维空间最小坐标和骨盆骨三维空间最大坐标得到骨盆骨控制器的三维空间坐标区间。

根据骨骼节点在改变身高时的期望变化区间和控制器的三维空间坐标区间构建线性函数。例如:根据骨骼节点spine1的期望变化区间与骨盆骨控制器的三维空间坐标区间,构建线性函数,同理也可以计算其他骨骼节点的期望变化区间与相应的控制器的三维空间坐标区间的之间的关系。

此外,计算肩宽时,以亚洲成年男性为例,通过人体黄金比取标准成年男性肩宽参考0.45m,上下浮动区间+/-0.05m,得到线性区间为[0.40,0.55]。设立肩膀区中点为参考系,标定横向距离。将两侧肩膀骨控制器沿本地坐标z轴调整到距离满足最小极值0.40处,同时保持xy轴不变,记录肩膀骨控制器位移坐标。同理将肩膀骨控制器调整到距离满足最大极值0.55处,记录肩膀骨控制器位移坐标,以此得到肩膀骨控制器的三维空间坐标区间。

另外,还对控制臂长的控制器进行标定。控制人体臂长的骨骼为手臂区和肩膀区,也就是对手臂骨控制器和肩膀骨控制器进行标定。其中,对手臂骨控制器的标定具体如下:臂长可以表示为w臂长=h-d修正值,d修正值为一个与人种相关的常数,对于亚洲人种来说d修正值可以为2.12cm。为了调整人体标准模型使之与实际人体更加精确的匹配,还可以将手臂区拆分为掌骨、小臂、大臂和肩胛骨左右一共8组骨骼节点,按照标准人体模型计算8个权重值,并得到8组骨骼节点的期望变化期间,通过调整手臂骨控制器使骨骼节点满足期望变化区间,得到手臂骨控制器的三维空间坐标区间。

在此基础上,对缩放类数据进行处理,同理先将周长(如胸围)数据转化为人体宽度,计算周长(控制胸围的肌肉节点)的期望变化期间,根据周长的期望变化区间对肌肉节点进行xz轴向的缩放,以匹配期望变化区间的极值,得到缩放类控制器的三维空间坐标区间。

以上,不管是位移类的控制器的三维坐标区间和骨骼节点的期望变化区间,还是缩放类的控制器的三维坐标区间和肌肉节点的期望变化区间,均是可以构建为代表两者之间关系的线性函数。

步骤s140、根据控制器的三维空间区间与人体标准模型的骨骼节点和/或肌肉节点期望变化区间的关系,以及人体测量数据,计算控制器需要调整的三维空间坐标;

在计算控制器需要调整的三维空间坐标(也就是目标值)之前,一般会将人体测量数据进行归一化转换。具体的,采用线性模型建模,将人体测量数据(单位可以是m、cm等)转换为0~1区间的浮点数。例如:在肩宽模型中,线性区间为[0.40,0.55],以此区间建模,得到肩宽线性模型eva=input*6.8727-2.7799,其中input为肩宽测量数据(单位:m),eva为得到的归一化的肩宽值(0~1)。

由于人体标准模型的骨骼节点和/或肌肉节点期望变化区间与控制器的三维空间区间之间具有线性的关系,因此将人体的测量数据带入至线性关系函数中后就可以得到控制器需要调整的三维空间坐标。

具体的,各个骨骼、肌肉的控制器的极值是静态常量,例如亚洲男性的肩宽的区间为[0.40,0.55],是静态的常量,因此与之对应的肩胛骨控制器的极值也为静态常量。由于人体标准模型的骨骼节点和/或肌肉节点期望变化区间与控制器的三维空间区间之间具有线性的关系,采用线性插值的方法构建函数,target=mathf.lerp(llower,lupper,eva)。其中,llower为骨骼节点和/或肌肉节点期望变化区间中的极小值,lupper为骨骼节点和/或肌肉节点期望变化区间中的极大值,eva为归一化过后的输入数据,target为计算出的控制器需要调整到的目标值,mathf.lerp为线性插值函数。该函数中,通过llower,lupper对超出区间的范围值进行钳位值保护,以避免误差数据。

步骤s150、按照骨骼和/或肌肉拓扑关系,根据需要调整的三维空间坐标依次调整控制器,从而通过调整人体标准模型实现构建符合实际测量的人体的虚拟模型。

实际人体测量值和人体的虚拟模型的分区(肩膀区、手臂区、脊柱区、骨盆区、腿部区、上肢区、胸部、腹部、臀部和腿部)之间存在拓扑关系。每一个人体测量值会影响若干控制器的调整。具体的,骨骼和/或肌肉拓扑关系如下拓扑表:

具体的,骨骼和/或肌肉拓扑关系为:

控制骨骼位移类调整的控制器先于控制肌肉缩放类的控制器进行调整。控制骨骼位移类调整的控制器按照身高、肩宽和臂长的顺序调整,将控制身高的控制器按照脊柱区、盆骨区和腿部区的顺序调整,将控制臂长的控制器按照肩膀区和手臂区的顺序调整。其中脊柱骨控制器、骨盆骨控制器和腿部骨控制器为控制身高的控制器,肩膀骨控制器为控制肩宽的控制器,肩膀骨控制器和手臂骨控制器为控制臂长的控制器。并且后调整数据应用到除之前调整的控制器以外的后续所有控制器。例如:调整肩宽时,将需要调整的肩宽数据应用于除控制身高的控制器之外的所有控制器。又例如:调整身高时,将需要调整的盆骨数据应用于除控制脊柱的控制器之外的所有控制器。

控制肌肉缩放类的控制器按照胸围、腰围、臀围、大腿围的顺序进行调整;其中,上肢区肌肉控制器、胸部肌肉控制器为控制胸围的控制器,腹部肌肉控制器、臀部肌肉控制器为控制腰围和臀围的控制器,腿部肌肉控制器为控制大腿围的控制器。并且后调整数据应用到除之前调整的控制器以外的后续其他控制器。例如:调整胸围时,需要调整的胸围数据应用于除控制身高、肩宽、臂长的控制器之外的所有控制器。

具体的,获取测量值后,对测量数据全部进行归一化转换,然后按上述拓扑表中的计算顺序计算需要调整的三维空间坐标(也就是目标值)。

首先,计算身高值,并以身高值的归一化数值应用到全身控制器,此时会形成此身高的人体标准模型,也就是该模型的身材的比例与人体标准模型的比例相同。

然后,将肩宽数值归一化,并应用到除身高控制器以外的后续其他控制器,以此修正这些控制器的目标值。以此类推进行后续数值的迭代,直至按照拓扑表中的顺序调整完毕所有关键拓扑关系对应的所有控制器,也就是调整完毕这些控制器后就可以得到实际测量的人的虚拟模型。例如:按照拓扑表中的计算顺序,已经调整了1-7计算顺序中的所有控制器。

其中,在计算过程中,若缺少任何计算顺序大于1的测量值,采用其前后相邻两项的归一化值的平均值应用到该项,以保证身材连续线性过度的效果。例如:若缺少腰围的测量值,则将胸围测量值的归一化值和臀围测量值的归一化值的平均值应用为腰围的控制器的目标值。

关键拓扑关系的控制器调整完毕后,根据拓扑表中的附加测量值(计算顺序:附件1和附加2)计算细节。根据具体数值,调整相应的控制器(如大臂围控制整个上肢的粗细),也可单独控制单一控制器(如手腕围控制小臂肌肉节点)。其中,附加测量值影响其对应的控制器,不向下迭代到后续计算,也就是不影响后续的控制器。

由于本申请实施例提供的构建人体虚拟模型的方法对人体结构进行了拆分,量化到特征组进行模型的构建,因此可以按照骨骼和/或肌肉拓扑关系进行调整,从而能够快速的构建不同身高、臂长、胖瘦的人体虚拟模型,并且通过少量的数据就可以实现全身特征组间联动适配。

本申请还提供了一种创建人体虚拟模型的装置,包括:存储介质和处理器,其中,存储介质存储处理器创建的人体标准模型,处理器执行上述创建人体虚拟模型的方法。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1