发明内容
本发明要解决的技术问题在于:现有技术难以在人体穿衣模式下获取准确的人体3D净模型以便于3D试衣的问题,提出一种建立人体3D净模型的方法及其在3D试衣中的应用。
本发明提出一种建立人体3D净模型的方法,包括以下步骤:
S1:建立含身高、体重、性别信息的人体3D净模型数据库;
S2:采集当前人体在着衣情形下的深度图像;
S3:获取当前人体的身高、体重及性别信息;
S4:从人体3D净模型数据库中提取与当前人体身高和体重相近以及性别相同的至少一个人体3D净模型作为样本净模型;
S5:根据样本净模型获取当前人体的净模型。
优选地,所述步骤S1中人体3D净模型为包含身高、体重、性别信息的3D点云净模型或3D网格净模型中的一种。
优选地,所述步骤S2中的深度图像是指当前人体局部的深度图像或者人体全局的深度图像。
优选地,所述步骤S5中根据样本净模型获取当前人体的净模型指的是:当所述样本净模型中仅有一个人体3D净模型时,将该人体3D净模型作为当前人体的3D净模型。
优选地,所述步骤S5中根据样本净模型获取当前人体的净模型指的是:当所述样本净模型中的人体3D净模型有两个或两个以上时,将所述样本净模型的平均模型作为当前人体的净模型,或者可以借助机器学习的算法得到准确的人体3D净模型。
优选地,当所述样本净模型中的人体3D净模型的数量为2-10个时,将所述样本净模型的平均模型作为当前人体的净模型。
优选地,当所述样本净模型中的人体3D净模型的数量大于10个时,可以借助机器学习的算法得到准确的人体3D净模型,并且具体的步骤为:
S51:选取样本净模型中的一个作为标准净模型;
S52:根据样本净模型中的其他模型经机器学习得到变形关系;
S53:以所述当前人体深度图像为依据,将标准净模型根据变形关系经变形后得到当前人体的3D净模型。
优选地,所述步骤S52中的变形关系包括由姿势决定的变形关系和/或由体型决定的变形关系。
优选地,所述步骤S53中将标准净模型根据变形关系经变形后得到当前人体的净模型,具体地包括以下步骤:
S531:建立用于衡量标准净模型与当前人体模型深度图像一致性的能量函数;
S532:在所述能量函数的约束下对所述标准净模型进行非刚性变形;
S533:将经非刚性变形后的标准净模型作为当前人体的3D净模型。
基于上述建立人体3D净模型的方法,本发明还提出一种建立人体3D净模型的***,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述建立人体3D净模型的***执行上述建立人体3D净模型的方法。
本发明又提出一种包含计算机程序的计算机可读存储介质,所述计算机程序可操作来使计算机执行上述建立人体3D净模型的方法。
基于上述建立人体3D净模型的方法,本发明还提出一种3D试衣方法,包括以下步骤:
T1:根据上述建立人体3D净模型的方法创建人体3D净模型;
T2:创建衣物模型;
T3:将衣物模型与人体3D净模型合成后展示试衣效果。
基于上述建立人体3D净模型的方法,本发明还提出一种3D试衣***,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述3D试衣***执行上述3D试衣方法。
本发明又提出一种包含计算机程序的计算机可读存储介质,所述计算机程序可操作来使计算机执行上述3D试衣方法。
与现有技术相比,本发明的有益效果为:本发明提供了一种建立人体3D净模型的方法,通过建立人体3D净模型数据库,并且考虑身高、体重以及性别的影响,有针对性地提取样本净模型,能够同时去除衣服的影响以及由身高、体重及性别等带来的局部特征的影响,可以仅利用人体在着衣情形下的深度图像准确地获取人体的净模型。
另外,基于上述人体3D净模型的创建方法,本发明还提出一种3D试衣方法和3D试衣***,无论人体穿着宽松衣物还是紧凑衣物,使用本发明的3D试衣方法或***,均能够实时且360°展示穿衣的效果。
具体实施方式
参数化建模方法的前提是测量出人体准确的模型,然而随着人们对个人隐私的注重,要求用户在近裸体状态下进行测量并非最佳的选择。因此在人们穿衣情形下,通过对穿衣模型进行去衣计算,得到准确的人体3D净模型,进一步进行3D试衣将会是一个较佳的选择。下面结合具体实施方式并对照附图对本发明做进一步详细说明。
1、建立人体3D净模型的方法
建立人体3D净模型的方法,如图1所示,包括以下几个步骤:S1:建立人体3D净模型数据库;S2:采集当前人体在着衣情形下的深度图像;S3:获取当前人体的身高、体重及性别信息;S4:从人体3D净模型数据库中选取样本净模型;S5:根据样本净模型获取当前人体的净模型。其中,步骤S1中建立人体3D净模型数据库,又包括获取人体3D点云或网格净模型、身高测量、体重测量以及性别获取等步骤;步骤S3中获取当前人体的身高、体重及性别信息,包括身高测量、体重测量以及性别获取等步骤;步骤S4中从人体3D净模型数据库中选取样本净模型,是指从所建立的人体3D净模型数据库中选取身高、体重相近以及性别相同的模型作为样本净模型。下面将对上述步骤进行详细描述。
S1:建立人体3D净模型数据库
建立人体3D模型数据库是获取人体参数化模型的前提,数据库内模型的种类也会影响到最终参数化模型的好坏。
模型数据库中净模型的数量要尽可能多,数据要尽可能全面,不仅包含人体身高、体重、性别信息,还包含同一人体在不同姿势下的人体模型数据,多个不同人体在相近姿势下的人体模型数据,多个身高、体重相近及性别相同的不同人体模型数据,分别用来反应人体在不同姿势下的差异,不同人体在体型上的差异以及不同人体在局部细节特征上的差异。
建立人体3D净模型数据库,每个净模型均是对未着衣或紧身衣情形下得到的,所说的未着衣是指仅穿内衣的情形。数据库的建立是为了后续穿衣模型进行去衣计算准备的。
在本具体实施方式中,数据库内的3D净模型除了本身的3D点云或网格净模型之外,还包括身高、体重及性别信息。因而,建立净模型数据库主要包括人体3D净模型测量、身高测量、体重测量以及性别确认几个方面。
人体3D净模型测量方法
目前用于3D测量的方法大致分为基于激光扫描仪以及基于深度相机的方法。激光扫描仪的精度高,但造价昂贵,扫描的速度也较慢,主要用于对一些小型刚性物体的3D测量;基于深度相机的方法是目前常用的人体测量方法,本具体实施方式中优先选取基于深度相机的方法,更进一步地选取基于结构光三角法的深度相机,来用于人体3D净模型的测量。
在其他具体实施方式中可以采用基于激光扫描仪,或者使用基于时间飞行法或者双目视觉原理的深度相机来用于人体3D净模型的测量。
基于结构光三角法的深度相机利用激光投影仪向空间中投射经编码的标准结构光图案,空间中目标深度的不同将标准结构光图案进行了调制,通过图像相关等算法获取调制后的结构光图像与标准结构光图案的差别,根据结构光三角法建立该差别与目标深度之间的关系就可求解出整个目标空间的深度图像。
一般地,难以通过一幅图像来得到全部的人体信息,需要获取人体各个部位的深度图像,再通过注册算法进行融合后得到整体的人体3D点云数据。由深度相机获取的3D点云数据一般不能够直接作为人体模型数据,还需要通过一些预处理的步骤。一般地,包括图像分割、去噪、网格化、建立对应关系等步骤。
图像分割。因而深度相机获取的深度图像中一般除了人体部分之外还包括其他背景成分,利用图像分割算法去除背景成为必要的步骤。由于深度图像数据的独特性,即其各像素值代表的物体的深度距离,一种简单的图像分割算法——阈值法就能够有效地去除背景。具体地,即通过设定合理的可以区别开人体与背景的阈值,将属于背景部分的像素值归零(或取最大值),保留属于人体部位的像素值。
图像去噪。由于获取的3D点云数据不可避免地会有噪声(即离群点)存在,同时由于人体部位之间的遮挡会出现孔洞,另外点云数据的平滑性也较差。因此,图像去噪的目的一方面要去除离群点,另一方面要对点云数据进行平滑及孔洞填充处理。
网格化。在具体的应用中,比如模型的变形转移、动画制作等,仅针对点云的处理较为复杂,因而点与点之间的相互关系在3D点云中没有得到反映。而3D网络模型则在保留点云的同时又增加了点云之间的拓扑关系,特别是变形处理中,3D网络模型具有较大的优势。因此,有必要将3D点云模型网格化成3D网格模型。网格的形式可以是三角形、多边形等,常用的是三角网格模型。
建立对应关系。不同人的体型和姿势都有所区别,因此由深度相机得到的3D点云数据数量上也有区别,在后面的处理中会有较大的困难。有必要在建立数据库时就对所有的人体模型建立对应关系。具体地,先选取一幅质量较高的3D点云数据作为参考。对于当前的人体3D净模型,利用刚性注册或非刚性注册算法,建立二者之间的点与点之间的对应关系,并将该对应关系也作为当前人体3D净模型的一部分。
人体体重测量
利用体重称对各个人体的体重进行测量,获取人体体重。
身高测量
在本具体实施方式中,身高测量采用较为准确的做法。首先对3D人体点云数据进行骨架提取,或者将3D人体分割成多个语义部分(头、上身、腿),然后将各个部分的长度相加后得到人体的身高。
在其他具体实施方式中,可以利用传统的尺寸测量方式进行身高测量,也可以直接利用3D人体点云或网格数据来测量身高。需要注意的是,当人体处在不同姿势时,不能一概而论的利用点云或网格数据中的最高点与最低点的差值进行身高估算。
性别获取
在本具体实施方式中,性别获取采用一种自动识别的方法。即利用人体模型的彩色图像,提取人脸部的彩色图像,将其输入经训练的性别分类器中进行判定。根据分类器的种类,处理方式也有区别,一般地首先对人脸的彩色图像进行主成分分析(PCA),可以提升识别效率。
在其他具体实施方式中,在人为辅助情形下,可以进行人为的设定。
模型数据库中人体3D净模型要尽可能全面,一方面要覆盖尽可能多的身高、体重以及性别的人体净模型;另一方面身高、体重相近,性别相同的人体也要有足够多的人体3D净模型数据。前者的目的在于能更加全面的反映人体在不同姿势、体型上的差异,后者的目的在于能更精确地反映人体在局部细节特征上的差异。
S2:采集当前人体在着衣情形下的深度图像
一般地,在对当前人体进行3D试衣时,首先需要获取其净模型,在这里有两个假设的前提:一是当前人体不在3D净模型数据库中,否则可以直接提取出该净模型即可;二是当前人体是在平常着衣的情形下进行试衣的,也就是说由深度相机获取的深度图像对应的人体模型包括了衣服的影响,该模型比人体3D净模型要大,本发明中则根据穿衣模型得到净模型。
当前人体在穿衣情形下被深度相机采集到深度图像,经图像分割及去噪后得到仅含人体的深度图像。这里的深度图像可以是人体局部或者全局的深度图像,对于全局的深度图像往往是由多幅深度图像经注册后融合而成。
S3:获取当前人体的身高、体重及性别信息
人体的体重、性别及身高信息利用前面所述的方法可以得到。
S4:从人体3D净模型数据库中选取样本净模型
在得到当前人体的深度图像以及相关信息后,则可以从所建立的人体3D净模型数据库中选取身高、体重相近以及性别相同的模型作为样本净模型。样本净模型的数量至少为1个。当样本数量为多个时,则能很好的反映该身高、体重、性别人群的局部特征差异,在后续的处理中可以得到更加精确的人体3D净模型。S5:根据样本净模型获取当前人体的净模型
根据样本净模型的数量不同,当前人体3D净模型的获取方式也有区别。
(1)当样本净模型仅有一个时,可以直接将该净模型作为当前人体的3D净模型。由于身高、体重、性别均一致,在仅有一个样本净模型的情形下,这种近似也可以被接受。
(2)当样本净模型数量较少,为2-10个时,可以取所有净模型的平均值作为当前人体的3D净模型。这种平均化的处理方式,虽然不能准确反映当前人体的实际体型特征,但是相比第一种情况而言,近似程度要更高。
(3)当样本净模型数量较多,为10个以上时,则可以借助于机器学习算法得到准确的人体3D净模型。具体的算法流程如图2所示,包括以下步骤:
S51:选取样本净模型中的一个作为标准净模型,一般选取点云或网格质量好的人体3D净模型作为标准净模型;
S52:根据样本净模型中的其他净模型经机器学习得到变形关系。这里的变形关系包括由姿势决定的变形关系以及由体型决定的变形关系。通俗地说,对于由姿势决定的变形关系,即是对于样本净模型中的其他所有净模型,都能够让标准净模型根据其他净模型的姿势参数经该变形关系计算后得到与其他净模型一致的净模型。对于由体型决定的变形关系,即是对于样本净模型中的其他所有净模型,都能够让标准净模型根据其他净模型的体型参数经该变形关系计算后得到与其他净模型一致的净模型。机器学习的目标即是通过对样本净模型中的所有净模型进行学习,得到姿势变形关系与体型变形关系。
S53:以所述当前人体深度图像为依据,将标准净模型根据变形关系经变形后得到当前人体的净模型。具体地,如图3所示,包括以下步骤:
S531:建立用于衡量标准净模型与当前人体模型深度图像一致性的能量函数。能量函数一般包括用距离表示的相似性函数、模型的平滑度函数以及局部特征函数。
S532:在所述能量函数的约束下对所述标准净模型进行非刚性变形。这一步中,实质上即是在能量函数的约束下,设定姿势参数、体型参数的初值,通过S52步骤中得到的变形关系进行迭代变形,当能量函数达到预设的最佳值(一般取最小值)时即变形结束。这里的变形指的是非刚性变形。
S533:将经非刚性变形后的标准净模型作为当前人体的净模型。经过变形后的标准净模型已经能非常准确地与当前人体局部或全部深度图像一致,因而可以作为当前人体的净模型。
2、建立人体3D净模型的***
在本具体实施方式中,建立人体3D净模型的***,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述建立人体3D净模型的***执行上述建立人体3D净模型的方法。
在其他具体实施方式中,建立人体3D净模型的***还可以为一种包含计算机程序的计算机可读存储介质,所述计算机程序可操作来使计算机执行上述建立人体3D净模型的方法。
3、人体3D净模型在3D试衣中的应用
3D试衣方法,如图4所示,包括以下步骤:T1:创建人体3D净模型;T2:创建衣物模型;T3:将衣物模型与人体3D净模型合成后展示试衣效果。一般地,首先对标准站立姿势的人体模型进行试衣,这一步可以看成是静态试衣;其次当实际人体姿势变化时的实时试衣,可以看成是动态试衣。其中动态试衣实际上是静态试衣在时间上的延伸。因而接下来主要说明静态试衣。
目前比较成熟的衣物仿真模型为质点-弹簧模型,建立衣物仿真模型后需要将衣物与人体3D净模型进行注册。一般认为衣物背面的最高点与人体后颈部的中心,据此可以实现衣物与人体模型的初步配准;然后根据人体当前的骨架信息实现各个部分的局部配准。在注册配准之后,还可以进行质点的力的计算、衣物碰撞检测等,以模拟出更加真实的衣物显示效果。
在后续的实时性显示过程中,只要通过识别出人体的骨架信息,然后根据该骨架信息进行局部的配准即可以实现实时的3D试衣。
3、3D试衣***
在本具体实施方式中,3D试衣***,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述3D试衣***执行上述3D试衣方法。
在其他具体实施方式中,3D试衣***还可以为一种包含计算机程序的计算机可读存储介质,所述计算机程序可操作来使计算机执行上述3D试衣方法。
本具体实施方式提供了一种基于深度相机的人体3D净模型的创建方法,首先通过建立含身高、体重和性别信息的人体3D净模型数据库,然后采集当前人体在着衣情形下的深度图像,并获取当前人体的身高、体重及性别信息,然后从人体3D净模型数据库中提取与当前人体身高、体重相近,性别相同的至少一个人体3D净模型作为样本净模型,最后再根据样本净模型获取当前人体的3D净模型。本具体实施方式通过建立人体3D净模型数据库,并且考虑身高、体重以及性别的影响,有针对性地提取样本净模型,能够同时去除衣服的影响以及由身高、体重及性别等带来的局部特征的影响,可以仅利用人体在着衣情形下的深度图像准确地获取人体的3D净模型。
另外,基于上述人体3D净模型的创建方法,本具体实施方式还提出一种3D试衣方法和3D试衣***,无论人体穿着宽松衣物还是紧凑衣物,使用本具体实施方式的3D试衣方法或***,均能够实时且360°展示穿衣的效果。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。