一种人体三维模型生成方法、设备和装置与流程

文档序号:30583150发布日期:2022-06-29 13:35阅读:110来源:国知局
一种人体三维模型生成方法、设备和装置与流程

1.本技术涉及人工智能技术领域,尤其涉及一种人体三维模型生成方法、设备和装置。


背景技术:

2.随着深度摄像头的不断发展,以及对数字化人体、虚拟试衣、人体测量等需求的兴起,三维人体重建正成为学术界和工业界的研究热点。
3.在进行三维人体重建时,可以通过深度摄像头对人体进行采集,基于采集到的数据进行三维人体重建,得到与人体对应的人体三维模型。基于生成的人体三维模型可以更加形象的展示人体姿态。


技术实现要素:

4.本技术实施例提供一种人体三维模型生成方法、设备和装置,用以提高生成的人体三维模型的准确性。
5.第一方面,本技术实施例一种人体三维模型生成方法,该方法包括:
6.通过摄像头采集目标人体的多个不同视角的人体图像;
7.根据采集到的人体图像和所述摄像头的拍摄参数,分别得到所述摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到所述目标人体对应的点云数据;
8.根据所述目标人体对应的点云数据,确定所述目标人体对应的预设人体位置的特征点;并根据所述特征点对目标人体进行测量,得到用于表示所述目标人体形态的人体测量参数;
9.根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型。
10.可选的,所述根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型,具体包括:
11.将所述人体测量参数输入所述训练后的人体网格模型;
12.基于所述训练后的人体网格模型,对所述人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;根据所述人体网格模型对应的相关性掩码、所述人体网格模型对应的映射矩阵以及所述目标人体测量参数,生成所述目标人体对应的人体三维模型;其中,所述目标人体测量参数的参数个数大于插值处理前的所述人体测量参数的参数个数,所述人体网格模型对应的相关性掩码、所述映射网络对应的映射矩阵是在对所述映射网络训练过程中确定的。
13.可选的,所述人体网格模型包含多个三角形面片;
14.所述根据所述人体网格模型对应的相关性掩码、所述人体网格模型对应的映射矩阵以及所述目标人体测量参数,生成所述目标人体对应的人体三维模型,具体包括:
15.所述基于所述训练后的人体网格模型中的任意一个三角形面片,根据所述三角形面片对应的相关性掩码,从所述目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;根据所述三角形面片对应的映射矩阵,将筛选出的所述映射人体测量参数进行映射处理,得到变换后的人体特征向量;
16.根据基于各个三角形面片变换得到的所述人体特征向量,确定所述目标人体对应的网格顶点位置信息;
17.基于所述目标人体对应的网格顶点位置信息,生成所述目标人体对应的人体三维模型。
18.可选的,根据下列公式确定变换后的人体特征向量:
[0019][0020]
其中,m为所述三角形面片对应的映射矩阵,p为所述映射人体测量参数样本组成的矩阵,q为变换后的人体特征向量组成的矩阵。
[0021]
可选的,根据下列方式对所述人体网格模型进行训练:
[0022]
获取用于对所述人体网格模型进行训练的训练样本集;其中所述训练样本集中包含多个训练样本,每个训练样本包含人体测量参数样本和人体特征样本,且所述人体特征样本中包含各个三角形面片对应的人体特征向量样本;
[0023]
基于包含多个人体网格模型的拓扑人体模型以及所述训练样本集,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵;
[0024]
根据确定出的各个三角形面片分别对应的相关性掩码和映射矩阵,得到训练后的人体网格模型。
[0025]
可选的,所述基于包含多个人体网格模型的拓扑人体模型以及所述训练样本集,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵,具体包括:
[0026]
从所述训练样本集中筛选出需要分别输入所述拓扑人体模型的多个人体网格模型的多个人体测量参数样本;分别对筛选出的各个人体测量参数样本进行插值处理,得到插值处理后的各个目标人体测量参数样本;其中所述目标人体测量参数样本的参数个数大于插值处理前的所述人体测量参数样本的参数个数;
[0027]
根据插值处理后的各个目标人体测量参数样本,以及筛选出的多个人体测量参数样本分别对应的人体特征样本,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵。
[0028]
可选的,根据下列方式确定所述人体网格模型的各个三角形面片分别对应的相关性掩码:
[0029]
针对所述人体网格模型的任意一个三角形面片:
[0030]
根据插值处理后的各个目标人体测量参数样本,生成与所述拓扑人体模型包含的多个人体网格模型的所述三角形面片对应的测量参数矩阵;以及
[0031]
从筛选出的多个人体测量参数样本分别对应的人体特征样本,分别确定多个人体网格模型的所述三角形面片分别对应的人体特征向量样本;并根据所述多个人体网格模型的所述三角形面片分别对应的人体特征向量样本,生成所述三角形面片对应的特征结果向
量;
[0032]
根据所述三角形面片对应的测量参数矩阵以及特征结果向量,调用特征递归消除算法,确定所述三角形面片对应的相关性掩码。
[0033]
可选的,根据下列方式确定所述人体网格模型的各个三角形面片分别对应的映射矩阵:
[0034]
针对所述人体网格模型的任意一个三角形面片:
[0035]
根据所述三角形面片对应的相关性掩码,从所述三角形面片对应的目标人体测量参数样本筛选出需要进行映射处理的映射人体测量参数样本;
[0036]
根据所述映射人体测量参数样本,以及所述三角形面片对应的人体特征向量样本,确定所述三角形面片对应的映射矩阵。
[0037]
第二方面,本技术实施例提供一种人体三维模型生成设备,该设备包括至少一个处理器、以及至少一个存储器;其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行下列过程:
[0038]
通过摄像头采集目标人体的多个不同视角的人体图像;
[0039]
根据采集到的人体图像和所述摄像头的拍摄参数,分别得到所述摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到所述目标人体对应的点云数据;
[0040]
根据所述目标人体对应的点云数据,确定所述目标人体对应的预设人体位置的特征点;并根据所述特征点对目标人体进行测量,得到用于表示所述目标人体形态的人体测量参数;
[0041]
根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型。
[0042]
第三方面,本技术实施例提供一种人体三维模型生成装置,该装置包括:
[0043]
采集模块,用于通过摄像头采集目标人体的多个不同视角的人体图像;
[0044]
确定模块,用于根据采集到的人体图像和所述摄像头的拍摄参数,分别得到所述摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到所述目标人体对应的点云数据;
[0045]
测量模块,用于根据所述目标人体对应的点云数据,确定所述目标人体对应的预设人体位置的特征点;并根据所述特征点对目标人体进行测量,得到用于表示所述目标人体形态的人体测量参数;
[0046]
生成模块,用于根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型。
[0047]
第四方面,本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本技术提供的人体三维模型生成方法。
[0048]
由于本技术实施例通过摄像头采集目标人体,并得到目标人体在对应的摄像头坐标空间中的人体点云;然后将不同视角下得到的点云数据分别进行全局对齐;基于全局对齐后的点云数据确定预设人体位置的特征点,根据确定出的特征点对目标人体进行测量,得到目标人体的人体测量参数;最后基于人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型;本技术实施例在生成人体三维模型时,通过采集到不同视
角的人体点云可以更加全面的体现目标人体的轮廓,然后基于将不同视角的人体点云分别对齐得到的点云数据以及特征点进行测量,得到可以反映目标人体形态的人体测量参数;基于测量得到的人体测量参数生成人体三维模型,由于测量得到的人体测量参数与目标人体的外在形态近似一致,则根据人体测量参数生成的人体三维模型与目标人体更为接近,从而生成更加准确的人体三维模型。
附图说明
[0049]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050]
图1为本技术实施例一种可选的生成人体三维模型的应用场景示意图;
[0051]
图2为本技术实施例另一种可选的生成人体三维模型的应用场景示意图;
[0052]
图3为本技术实施例一种人体三维模型生成方法流程图;
[0053]
图4为本技术实施例地面站位示意图;
[0054]
图5为本技术实施例基于训练后的人体网格模型生成人体三维模型的示意图;
[0055]
图6为本技术实施例人体三维模型生成方法整体流程图;
[0056]
图7为本技术实施例对人体网格模型进行训练的方法流程图;
[0057]
图8为本技术实施例一种人体三维模型生成设备的结构示意图;
[0058]
图9为本技术实施例一种人体三维模型生成装置的结构示意图。
具体实施方式
[0059]
为了使本技术的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0060]
需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
[0061]
如图1所示,本技术实施例一种可选的生成人体三维模型的应用场景;其中包括目标人体10、两个tof(time of flight,飞行的时间)摄像头11、服务器12。
[0062]
两个tof摄像头11通过旋转,使这两个tof摄像头位于同一垂直线上,从而使距离地面较高的tof摄像头11对目标人体10人体的上半部分进行拍摄,距离地面较低的tof摄像头11对目标人体10人体的下半部分进行拍摄。两个tof摄像头11将在不同视角下采集到人体图像和各tof摄像头的拍摄参数通过通信网络发送给服务器12。
[0063]
服务器12根据采集到的人体图像和各个摄像头的拍摄参数,分别得到各个摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对
齐,得到目标人体对应的点云数据;根据目标人体对应的点云数据,确定目标人体对应的预设人体位置的特征点;并根据特征点对目标人体进行测量,得到用于表示目标人体形态的人体测量参数;根据人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型。
[0064]
如图2所示,本技术实施例另一种可选的生成人体三维模型的应用场景;其中包括目标人体20、kinect摄像头21、服务器22。
[0065]
kinect摄像头21包括一个可以上下旋转的马达,可以控制马达以上下旋转,以从不同视角拍摄目标人体20;kinect摄像头21将在不同视角下采集到人体图像和kinect摄像头的拍摄参数通过通信网络发送给服务器22。
[0066]
服务器22根据采集到的人体图像和摄像头的拍摄参数,分别得到摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到目标人体对应的点云数据;根据目标人体对应的点云数据,确定目标人体对应的预设人体位置的特征点;并根据特征点对目标人体进行测量,得到用于表示目标人体形态的人体测量参数;根据人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型。
[0067]
如图3所示,本技术实施例一种人体三维模型生成方法流程图,具体可以包括以下步骤:
[0068]
步骤s301、通过摄像头采集目标人体的多个不同视角的人体图像;
[0069]
步骤s302、根据采集到的人体图像和摄像头的拍摄参数,分别得到摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到目标人体对应的点云数据;
[0070]
步骤s303、根据目标人体对应的点云数据,确定目标人体对应的预设人体位置的特征点;并根据特征点对目标人体进行测量,得到用于表示目标人体形态的人体测量参数;
[0071]
步骤s304、根据人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型。
[0072]
由于本技术实施例通过摄像头采集目标人体,并得到目标人体在对应的摄像头坐标空间中的人体点云;然后将不同视角下得到的点云数据分别进行全局对齐;基于全局对齐后的点云数据确定预设人体位置的特征点,根据确定出的特征点对目标人体进行测量,得到目标人体的人体测量参数;最后基于人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型;本技术实施例在生成人体三维模型时,通过采集到不同视角的人体点云可以更加全面的体现目标人体的轮廓,然后基于将不同视角的人体点云分别对齐得到的点云数据以及特征点进行测量,得到可以反映目标人体形态的人体测量参数;基于测量得到的人体测量参数生成人体三维模型,由于测量得到的人体测量参数与目标人体的外在形态近似一致,则根据人体测量参数生成的人体三维模型与目标人体更为接近,从而生成更加准确的人体三维模型。
[0073]
在步骤s301中,本技术实施例可以通过两个tof摄像头采集目标人体的多个不同视角的人体图像,或者可以通过kinect摄像头目标人体的多个不同视角的人体图像。下面针对不同类型的摄像头,分别说明采集目标人体的多个不同视角的人体图像的具体方式。
[0074]
方式1、通过两个tof摄像头采集目标人体的多个不同视角的人体图像;
[0075]
在采集之前,将两个tof摄像头旋转90度以使tof摄像头的视野覆盖整个人体,且位于同一垂直线上;推荐高处tof摄像头的深度镜头离地距离为165cm,低处tof摄像头的深度镜头离地距离为80cm;人需要站在离tof摄像头水平距离1m处,且正对摄像头,为了固定站姿,推荐使用引导双脚站位的纸张贴在地板上,如图4所示。
[0076]
被采集者站好位置后,双手稍微向两侧伸直使得手臂和躯干外侧能够被区分开来;开启两个tof摄像头进行扫描,目标人体从正面面对两个tof摄像头时位置,及人体在360度旋转过程中每旋转60度的位置分别采集设定数量的人体图像。其中,采集到的人体图像包括人体彩色图像和人体深度图像;例如可以采集6*2*n张深度图像与6*2张彩色图像,其中n是单次采集过程中tof摄像头需要连续采集的次数,可以用于后续的时间性滤波操作。
[0077]
方式2、通过kinect摄像头目标人体的多个不同视角的人体图像;
[0078]
在采集之前,人需要站在离tof摄像头水平距离1m处,且正对摄像头,为了固定站姿,推荐使用引导双脚站位的纸张贴在地板上,如图4所示;在目标人体正面面对kinect摄像头时,kinect摄像头向上旋转20度采集一张人体图像、原平视角度采集一张人体图像、以及向下旋转20度采集一张人体图像;待目标人体正面扫描完成后,人体在360度旋转过程中每旋转60度的位置分别采集三张的人体图像。其中,采集到的人体图像包括人体彩色图像和人体深度图像;例如可以采集6*3张深度图像与6*3张彩色图像。
[0079]
在采集到深度图像之后,单张深度图由于存在深度值抖动的现象,可以使用时间性滤波算法对连续采集的n帧进行平滑处理。
[0080]
由于较低的视角在地面部分也会存在深度值,故需要将地面进行分割操作,通过去噪的操作得到只包含人体信息的深度图。对于kinect摄像头,只需要对向下旋转20度视角包含地面信息的点云进行分割操作。
[0081]
在步骤s302中,针对tof摄像头采集到的人体图像,根据采集的图片数据和各tof摄像头的拍摄参数,得到各tof摄像头对应的tof摄像头坐标空间中的人体点云,其中tof摄像头的拍摄参数包括摄像头的焦距和光心。具体为利用采集到的图片数据d,以及各tof摄像头的焦距f
x
、fy、光心c
x
、cy用于生成人体点云。由于tof摄像头是竖直放置的,在像素位置(x,y)对应的深度值d(x,y)不为0的前提下,到摄像机空间坐标(p
x
,py,pz)的具体表示为:
[0082]
p=(p
x
,py,pz)=((y-cy)*d(x,y)/fy,(c
x-x)*d(x,y)/f
x
,d(x,y));
[0083]
其中,cx、cy为tof摄像头的光心像素位置,fx、fy为tof摄像头的焦距。
[0084]
而人体点云的颜色则直接根据像素位置访问彩色图来获取,得到了2个tof摄像头乘以6个视角共12份人体点云。
[0085]
针对kinect摄像头采集到的人体图像,针对kinect摄像头采集到的人体图像,根据人体图像和kinect摄像头的拍摄参数,得到kinect摄像头对应的摄像头坐标空间中的人体点云,其中kinect摄像头的拍摄参数包括摄像头的水平、垂直视场角。具体为利用采集到的人体图像d的像素宽度和高度以及摄像头的水平、垂直视场角生成人体点云。
[0086]
在像素位置(x,y)对应的深度值d(x,y)不为0的前提下,到摄像机空间坐标(p
x
,py,pz)的具体表示为:
[0087]
p
x
=(x/w-0.5)*d(x,y)*2tan(fov_h/2);
[0088]
py=(0.5-y/w)*d(x,y)*2tan(fov_v/2);
[0089]
其中,fov_h和fov_v分别为摄像头的水平、垂直视场角,w和h分别为图片像素宽度和高度。
[0090]
步骤s302中,在得到摄像头对应的摄像头坐标空间中的人体点云之后,将不同视角下分别对应的人体点云进行全局对齐,得到目标人体对应的点云数据;
[0091]
实施中,针对同一视角的不同人体图像得到的人体点云进行局部对齐,得到不同视角下分别对应的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到目标人体对应的点云数据。
[0092]
在得到目标人体对应的点云数据之后,根据目标人体对应的点云数据,确定目标人体对应的预设人体位置的特征点;根据特征点对目标人体进行测量,得到用于表示目标人体形态的人体测量参数;
[0093]
其中,本技术实施例表示目标人体形态的人体测量参数包括但不限于:
[0094]
身高、肩宽、胸围、腰围、臀围、最大腿围、臂长、腿长。
[0095]
本技术实施例在得到目标人体的人体测量参数之后,根据人体测量参数以及训练后的人体网格模型,生成目标人体对应的人体三维模型;
[0096]
一种可选的实施方式为,将人体测量参数输入训练后的人体网格模型;基于训练后的人体网格模型,对人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;根据人体网格模型对应的相关性掩码、人体网格模型对应的映射矩阵以及目标人体测量参数,生成目标人体对应的人体三维模型;其中,目标人体测量参数的参数个数大于插值处理前的人体测量参数的参数个数,人体网格模型对应的相关性掩码、映射网络对应的映射矩阵是在对映射网络训练过程中确定的。
[0097]
本技术实施例训练后的人体网格模型包括多个三角形面片,在对人体网格模型训练过程中,需要生成每个三角形面片对应的相关性掩码和映射矩阵。
[0098]
训练后的人体网格模型包括数据处理网络和映射网络;
[0099]
实施中,将人体测量参数输入训练后的人体网格模型后,基于训练后的人体网格模型中的数据处理网络,对人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;
[0100]
其中,目标人体测量参数的参数个数大于插值处理前的人体测量参数的参数个数。
[0101]
可选的,在对人体测量参数进行插值处理过程中,可以调用多重插补处理缺失值(multiple imputation by chained equations,mice)的方法进行插值处理,基于多重插补处理缺失值方法,为了模拟缺失数据的不确定性,通过调用该方法为缺失的参数生成一系列可能的值,对这些生成的值进行标准统计分析后,预测出缺失参数的最终值。
[0102]
例如,本技术实施例的人体测量参数包括身高、肩宽、胸围、腰围、臀围、最大腿围、臂长、腿长;则对人体测量参数进行插值处理,插值处理后得到的目标人体测量参数可以如表1所示:
[0103][0104][0105]
表1
[0106]
本技术实施例在得到插值处理后的目标人体测量参数之后,基于训练后的人体网格模型中的映射网络,根据人体网格模型的映射网络对应的相关性掩码、人体网格模型对应的映射矩阵以及目标人体测量参数,生成目标人体对应的人体三维模型;
[0107]
需要说明的是,本技术实施例的人体网格模型包含多个三角形面片,且每个三角形面片均对应一个映射矩阵和相关性掩码;且,针对不同的三角形面片,相关性掩码不同时对应的映射矩阵也不相同。
[0108]
实施中,基于训练后的人体网格模型中的任意一个三角形面片,根据三角形面片对应的相关性掩码,从目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;根据三角形面片对应的映射矩阵,将筛选出的映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0109]
本技术实施例中三角形面片对应的相关性掩码的维度,与目标人体测量参数组成的输入向量的维度相同;例如,若目标人体测量参数有19个,目标人体测量参数组成的输入向量的维度为19,则三角形面片对应的相关性掩码的维度也为19。
[0110]
其中,三角形面片对应的相关性掩码中部分取值为true,部分取值为false;假设预先设置目标人体测量参数中包含k个重要参数,则将相关性掩码中与重要参数对应的取值设置为true,那么相关性掩码中取值为true的个数为k。
[0111]
针对训练后的人体网格模型中的任意一个三角形面片,根据该三角形面片对应的相关性掩码,从目标人体测量参数中筛选出需要进行映射处理的映射人体测量参数;
[0112]
实施中,将相关性掩码中取值为true的位置对应的人体测量参数从目标人体测量参数中筛选出来,组成映射人体测量参数;
[0113]
例如,假设目标人体测量参数有19个,目标人体测量参数组成的输入向量为[p1、p2、p3、p4、p5、p6、p7、p8、p9、p
10
、p
11
、p
12
、p
13
、p
14
、p
15
、p
16
、p
17
、p
18
、p
19
],且三角形面片对应的相关性掩码为[true、true、true、true、false、false、true、true、true、false、true、true、false、true、false、false、false、true、true];则筛选出的映射人体测量参数为[p1、p2、p3、p4、p7、p8、p9、p
11
、p
12
、p
14
、p
18
、p
19
]。
[0114]
在筛选出需要进行映射处理的映射人体测量参数之后,根据三角形面片对应的映射矩阵,将筛选出的映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0115]
实施中,本技术实施例根据下列公式确定变换后的人体特征向量:
[0116][0117]
其中,m为三角形面片对应的映射矩阵,p为映射人体测量参数样本组成的矩阵,q为变换后的人体特征向量组成的矩阵。
[0118]
本技术实施例在基于各个三角形面片变换得到的人体特征向量之后,将人体特征向量转换为人体特征矩阵;
[0119]
例如,假设基于各个三角形面片变换得到的人体特征向量为则转换后的人体特征矩阵
[0120]
本技术实施例各个三角形面片变换得到的人体特征矩阵,确定目标人体对应的网格顶点位置信息;基于目标人体对应的网格顶点位置信息,生成目标人体对应的人体三维模型。
[0121]
本技术实施例在生成目标人体对应的人体三维模型之后,可以将生成的人体三维模型进行展示。
[0122]
如图5所示的本技术实施例基于训练后的人体网格模型生成人体三维模型的示意图;
[0123]
通过对目标人体进行采集得到人体图像,假设对进行测量得到9个人体测量参数;例如9个人体测量参数组成的输入向量为[p1、p2、p3、p4、p7、p8、p9]。则将9个人体测量参数组
成的输入向量[p1、p2、p3、p4、p7、p8、p9]输入训练后的人体网格模型。
[0124]
训练后的人体网格模型的数据处理网络,对输入向量[p1、p2、p3、p4、p7、p8、p9]进行插值处理,得到插值处理后的目标人体测量参数;假设目标人体测量参数对应的向量为[p1、p2、p3、p4、p5、p6、p7、p8、p9、p
10
、p
11
、p
12
、p
13
、p
14
、p
15
、p
16
、p
17
、p
18
、p
19
]。
[0125]
将向量[p1、p2、p3、p4、p5、p6、p7、p8、p9、p
10
、p
11
、p
12
、p
13
、p
14
、p
15
、p
16
、p
17
、p
18
、p
19
]输入训练后的人体网格模型的映射网络;基于映射网络,根据三角形面片对应的相关性掩码,从目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;假设相关性掩码为[true、true、true、true、false、false、true、true、true、false、true、true、false、true、false、false、false、true、true];则筛选出的映射人体测量参数为[p1、p2、p3、p4、p7、p8、p9、p
11
、p
12
、p
14
、p
18
、p
19
]。
[0126]
映射网络根据三角形面片对应的映射矩阵,将筛选出的映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0127][0128]
m为三角形面片对应的映射矩阵,p为映射人体测量参数样本组成的矩阵,q为变换后的人体特征向量组成的矩阵。
[0129]
根据基于各个三角形面片变换得到的人体特征向量,确定目标人体对应的网格顶点位置信息;基于目标人体对应的网格顶点位置信息,生成目标人体对应的人体三维模型。
[0130]
如图6所示,本技术实施例人体三维模型生成方法整体流程图,具体可以包括以下步骤:
[0131]
步骤s601、通过摄像头采集目标人体的多个不同视角的人体图像;
[0132]
步骤s602、根据采集到的人体图像和摄像头的拍摄参数,分别得到摄像头对应的摄像头坐标空间中的人体点云;
[0133]
步骤s603、将不同视角下分别对应的人体点云进行全局对齐,得到目标人体对应的点云数据;
[0134]
步骤s604、根据目标人体对应的点云数据,确定目标人体对应的预设人体位置的特征点;
[0135]
步骤s605、根据特征点对目标人体进行测量,得到用于表示目标人体形态的人体测量参数;
[0136]
步骤s606、将人体测量参数输入训练后的人体网格模型;
[0137]
步骤s607、基于训练后的人体网格模型,对人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;
[0138]
下面步骤s608和步骤s609是针对训练后的人体网格模型中的任意一个三角形面片:
[0139]
步骤s608、根据三角形面片对应的相关性掩码,从目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;
[0140]
步骤s609、根据三角形面片对应的映射矩阵,将筛选出的映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0141]
步骤s610、根据基于各个三角形面片变换得到的人体特征向量,确定目标人体对应的网格顶点位置信息;
[0142]
步骤s611、基于目标人体对应的网格顶点位置信息,生成目标人体对应的人体三维模型。
[0143]
下面详细介绍下人体网格模型的训练过程:
[0144]
本技术实施例中在对人体网络模型进行训练的过程中,需要学习人体网络模型的各个三角形面片对应的相关性掩码和映射矩阵,在得到人体网络模型的各个三角形面片对应的相关性掩码和映射矩阵之后,可以认为人体网络模型训练完成。
[0145]
获取用于对人体网格模型进行训练的训练样本集;其中训练样本集中包含多个训练样本,每个训练样本包含人体测量参数样本和人体特征样本,且人体特征样本中包含各个三角形面片对应的人体特征向量样本;
[0146]
本技术实施例基于包含多个人体网格模型的拓扑人体模型以及训练样本集,对人体网格模型进行训练;
[0147]
实施中,本技术实施例可以采用包含多个人体网格模型的参数化的拓扑人体模型,例如参数化的拓扑人体模型可以为spring。
[0148]
假设参数化的拓扑人体模型包含n个人体网格模型,且每个人体网格模型包含m个三角形面片;在基于训练后的人体网络模型生成人体三维模型过程中,基于三角形面片对应的映射矩阵,对三角形面片进行变形得到基于网格的身体表示,即为变换后的人体特征向量。
[0149]
假设每个三角形面片对应的人体特征向量为3*3的矩阵,即:
[0150][0151]
每个人体网络模型的所有三角形面片对应的人体特征为:
[0152][0153]
下文介绍中,以确定一个三角形面片对应的相关性掩码和映射矩阵为例进行说明:
[0154]
从训练样本集中筛选出需要分别输入拓扑人体模型的多个人体网格模型的多个人体测量参数样本;分别对筛选出的各个人体测量参数样本进行插值处理,得到插值处理后的各个目标人体测量参数样本;
[0155]
实施中,从训练样本集中筛选出n个人体测量参数样本,并分别确定每个人体测量参数样本对应的人体特征样本,并从人体特征样本中确定与该三角形面片对应的人体特征向量样本;
[0156]
假设该三角形面片对应的人体特征向量样本为
[0157]
根据插值处理得到的n组目标人体测量参数样本,生成需要输入拓扑人体模型的多个人体网格模型的测量参数矩阵;其中,该测量参数矩阵是由筛选出的n个人体测量参数样本组成的;假设目标人体测量参数样本中包含19个参数;
[0158]
则,测量参数矩阵
[0159]
由于q是线性变换矩阵,考虑三角形面片在空间上具有对应的轴对齐包围盒,其行列式的绝对值可以反映面片变形后的轴对齐包围盒膨胀的程度。单个面片下,n个人体网格模型的该三角形面片对应的人体特征向量样本组成的特征结果向量为:
[0160][0161]
其中,q1、q2、
……
、qn分别为n个人体网格模型的该三角形面片对应的人体特征向量样本,det()为对人体特征向量样本做行列式绝对值运算,d1、d2、
……
、dn依次与n个人体网格模型相对应。
[0162]
针对测量参数矩阵x和特征结果向量y,调用特征递归消除法,得到与该三角形面片对应的相关性掩码。如本技术实施例,得到的相关性掩码为一个19维的向量;且相关性掩码中包含k个true值,其它值为false。
[0163]
在训练过程中,在得到三角形面片对应的相关性掩码之后,针对任一组目标人体测量参数样本(19维向量),根据该三角形面片对应的相关性掩码,从目标人体测量参数样本中筛选出与相关性掩码中true值对应的测量参数,组成映射人体测量参数样本,则映射人体测量参数样本为k维向量;
[0164]
假设映射人体测量参数样本为
[0165]
另外,从训练样本中确定目标人体测量参数样本(19维向量)对应的人体特征向量样本
[0166]
基于将人体测量参数样本p

和人体特征向量样本q

代入上述公式,求解得到映射矩阵m。
[0167]
需要说明的是,上述训练过程是针对一个三角形面片进行介绍的,本技术实施例在得到各个三角形面片对应的映射矩阵和相关性掩码之后,得到训练后的人体网格模型。
[0168]
另外,本技术实施例上述训练过程介绍的是一轮训练,本技术实施例为了保证求解出的映射矩阵更为准确,可以进行多轮训练;每一轮或几轮训练之后,根据得到映射矩阵以及人体测量参数样本,预测各个三角形面片变换得到的人体特征向量,并根据预测得到的人体特征向量与训练样本集中人体测量参数样本对应的人体特征向量样本计算损失值,并基于损失值对映射矩阵进行调整,直到预测得到的人体特征向量与训练样本集中人体测量参数样本对应的人体特征向量样本的损失值收敛,得到训练后的人体网格模型。
[0169]
如图7所示,本技术实施例对人体网格模型进行训练的方法流程图,具体可以包括以下步骤:
[0170]
步骤s701、获取用于对人体网格模型进行训练的训练样本集;
[0171]
其中训练样本集中包含多个训练样本,每个训练样本包含人体测量参数样本和人体特征样本,且人体特征样本中包含各个三角形面片对应的人体特征向量样本;
[0172]
步骤s702、从训练样本集中筛选出需要分别输入拓扑人体模型的多个人体网格模型的多个人体测量参数样本;
[0173]
步骤s703、分别对筛选出的各个人体测量参数样本进行插值处理,得到插值处理后的各个目标人体测量参数样本;
[0174]
其中目标人体测量参数样本的参数个数大于插值处理前的人体测量参数样本的参数个数;
[0175]
下面步骤s704~步骤s708是针对人体网格模型中的任意一个三角形面片:
[0176]
步骤s704、根据插值处理后的各个目标人体测量参数样本,生成与拓扑人体模型包含的多个人体网格模型的三角形面片对应的测量参数矩阵;
[0177]
步骤s705、从筛选出的多个人体测量参数样本分别对应的人体特征样本,分别确定多个人体网格模型的三角形面片分别对应的人体特征向量样本;并根据多个人体网格模型的三角形面片分别对应的人体特征向量样本,生成三角形面片对应的特征结果向量;
[0178]
步骤s706、根据三角形面片对应的测量参数矩阵以及特征结果向量,调用特征递归消除算法,确定三角形面片对应的相关性掩码;
[0179]
步骤s707、根据三角形面片对应的相关性掩码,从三角形面片对应的目标人体测量参数样本筛选出需要进行映射处理的映射人体测量参数样本;
[0180]
步骤s708、根据映射人体测量参数样本,以及三角形面片对应的人体特征向量样本,确定三角形面片对应的映射矩阵;
[0181]
步骤s709、根据确定出的各个三角形面片分别对应的相关性掩码和映射矩阵,得到训练后的人体网格模型。
[0182]
基于同一发明构思,如图8所示,本技术实施例提供一种人体三维模型生成设备800,包括至少一个处理器801、以及至少一个存储器802;其中,存储器802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行下列过程:
[0183]
通过摄像头采集目标人体的多个不同视角的人体图像;
[0184]
根据采集到的人体图像和摄像头的拍摄参数,分别得到摄像头对应的摄像头坐标空间中的人体点云;以及将不同视角下分别对应的人体点云进行全局对齐,得到所述目标人体对应的点云数据;
[0185]
根据所述目标人体对应的点云数据,确定所述目标人体对应的预设人体位置的特
征点;并根据所述特征点对目标人体进行测量,得到用于表示所述目标人体形态的人体测量参数;
[0186]
根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型。
[0187]
可选的,所述处理器801具体用于:
[0188]
将所述人体测量参数输入所述训练后的人体网格模型;
[0189]
基于所述训练后的人体网格模型,对所述人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;根据所述人体网格模型对应的相关性掩码、所述人体网格模型对应的映射矩阵以及所述目标人体测量参数,生成所述目标人体对应的人体三维模型;其中,所述目标人体测量参数的参数个数大于插值处理前的所述人体测量参数的参数个数,所述人体网格模型对应的相关性掩码、所述映射网络对应的映射矩阵是在对所述映射网络训练过程中确定的。
[0190]
可选的,所述人体网格模型包含多个三角形面片;
[0191]
所述处理器801具体用于:所述基于所述训练后的人体网格模型中的任意一个三角形面片,根据所述三角形面片对应的相关性掩码,从所述目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;根据所述三角形面片对应的映射矩阵,将筛选出的所述映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0192]
根据基于各个三角形面片变换得到的所述人体特征向量,确定所述目标人体对应的网格顶点位置信息;
[0193]
基于所述目标人体对应的网格顶点位置信息,生成所述目标人体对应的人体三维模型。
[0194]
可选的,所述处理器801具体用于根据下列公式确定变换后的人体特征向量:
[0195][0196]
其中,m为所述三角形面片对应的映射矩阵,p为所述映射人体测量参数样本组成的矩阵,q为变换后的人体特征向量组成的矩阵。
[0197]
可选的,所述处理器801具体用于根据下列方式对所述人体网格模型进行训练:
[0198]
获取用于对所述人体网格模型进行训练的训练样本集;其中所述训练样本集中包含多个训练样本,每个训练样本包含人体测量参数样本和人体特征样本,且所述人体特征样本中包含各个三角形面片对应的人体特征向量样本;
[0199]
基于包含多个人体网格模型的拓扑人体模型以及所述训练样本集,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵;
[0200]
根据确定出的各个三角形面片分别对应的相关性掩码和映射矩阵,得到训练后的人体网格模型。
[0201]
可选的,所述处理器801具体用于:
[0202]
从所述训练样本集中筛选出需要分别输入所述拓扑人体模型的多个人体网格模型的多个人体测量参数样本;分别对筛选出的各个人体测量参数样本进行插值处理,得到插值处理后的各个目标人体测量参数样本;其中所述目标人体测量参数样本的参数个数大
于插值处理前的所述人体测量参数样本的参数个数;
[0203]
根据插值处理后的各个目标人体测量参数样本,以及筛选出的多个人体测量参数样本分别对应的人体特征样本,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵。
[0204]
可选的,所述处理器801具体用于根据下列方式确定所述人体网格模型的各个三角形面片分别对应的相关性掩码:
[0205]
针对所述人体网格模型的任意一个三角形面片:
[0206]
根据插值处理后的各个目标人体测量参数样本,生成与所述拓扑人体模型包含的多个人体网格模型的所述三角形面片对应的测量参数矩阵;以及
[0207]
从筛选出的多个人体测量参数样本分别对应的人体特征样本,分别确定多个人体网格模型的所述三角形面片分别对应的人体特征向量样本;并根据所述多个人体网格模型的所述三角形面片分别对应的人体特征向量样本,生成所述三角形面片对应的特征结果向量;
[0208]
根据所述三角形面片对应的测量参数矩阵以及特征结果向量,调用特征递归消除算法,确定所述三角形面片对应的相关性掩码。
[0209]
可选的,所述处理器801具体用于根据下列方式确定所述人体网格模型的各个三角形面片分别对应的映射矩阵:
[0210]
针对所述人体网格模型的任意一个三角形面片:
[0211]
根据所述三角形面片对应的相关性掩码,从所述三角形面片对应的目标人体测量参数样本筛选出需要进行映射处理的映射人体测量参数样本;
[0212]
根据所述映射人体测量参数样本,以及所述三角形面片对应的人体特征向量样本,确定所述三角形面片对应的映射矩阵。
[0213]
如图9所示,本技术实施例还提供一种人体三维模型生成装置900,包括:
[0214]
采集模块901,用于通过摄像头采集目标人体的多个不同视角的人体图像;
[0215]
确定模块902,用于根据采集到的人体图像和摄像头的拍摄参数,分别得到摄像头对应的摄像头坐标空间中的人体点云;以及将所述不同视角下分别对应的人体点云进行全局对齐,得到所述目标人体对应的点云数据;
[0216]
测量模块903,用于根据所述目标人体对应的点云数据,确定所述目标人体对应的预设人体位置的特征点;并根据所述特征点对目标人体进行测量,得到用于表示所述目标人体形态的人体测量参数;
[0217]
生成模块904,用于根据所述人体测量参数以及训练后的人体网格模型,生成所述目标人体对应的人体三维模型。
[0218]
可选的,所述生成模块904具体用于:
[0219]
将所述人体测量参数输入所述训练后的人体网格模型;
[0220]
基于所述训练后的人体网格模型,对所述人体测量参数进行插值处理,得到插值处理后的目标人体测量参数;根据所述人体网格模型对应的相关性掩码、所述人体网格模型对应的映射矩阵以及所述目标人体测量参数,生成所述目标人体对应的人体三维模型;其中,所述目标人体测量参数的参数个数大于插值处理前的所述人体测量参数的参数个数,所述人体网格模型对应的相关性掩码、所述映射网络对应的映射矩阵是在对所述映射
网络训练过程中确定的。
[0221]
可选的,所述人体网格模型包含多个三角形面片;
[0222]
所述生成模块904具体用于:
[0223]
所述基于所述训练后的人体网格模型中的任意一个三角形面片,根据所述三角形面片对应的相关性掩码,从所述目标人体测量参数筛选出需要进行映射处理的映射人体测量参数;根据所述三角形面片对应的映射矩阵,将筛选出的所述映射人体测量参数进行映射处理,得到变换后的人体特征向量;
[0224]
根据基于各个三角形面片变换得到的所述人体特征向量,确定所述目标人体对应的网格顶点位置信息;
[0225]
基于所述目标人体对应的网格顶点位置信息,生成所述目标人体对应的人体三维模型。
[0226]
可选的,所述生成模块904具体用于根据下列公式确定变换后的人体特征向量:
[0227][0228]
其中,m为所述三角形面片对应的映射矩阵,p为所述映射人体测量参数样本组成的矩阵,q为变换后的人体特征向量组成的矩阵。
[0229]
可选的,所述生成模块904具体用于根据下列方式对所述人体网格模型进行训练:
[0230]
获取用于对所述人体网格模型进行训练的训练样本集;其中所述训练样本集中包含多个训练样本,每个训练样本包含人体测量参数样本和人体特征样本,且所述人体特征样本中包含各个三角形面片对应的人体特征向量样本;
[0231]
基于包含多个人体网格模型的拓扑人体模型以及所述训练样本集,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵;
[0232]
根据确定出的各个三角形面片分别对应的相关性掩码和映射矩阵,得到训练后的人体网格模型。
[0233]
可选的,所述生成模块904具体用于:
[0234]
从所述训练样本集中筛选出需要分别输入所述拓扑人体模型的多个人体网格模型的多个人体测量参数样本;分别对筛选出的各个人体测量参数样本进行插值处理,得到插值处理后的各个目标人体测量参数样本;其中所述目标人体测量参数样本的参数个数大于插值处理前的所述人体测量参数样本的参数个数;
[0235]
根据插值处理后的各个目标人体测量参数样本,以及筛选出的多个人体测量参数样本分别对应的人体特征样本,确定所述人体网格模型的各个三角形面片分别对应的相关性掩码和映射矩阵。
[0236]
可选的,所述生成模块904具体用于根据下列方式确定所述人体网格模型的各个三角形面片分别对应的相关性掩码:
[0237]
针对所述人体网格模型的任意一个三角形面片:
[0238]
根据插值处理后的各个目标人体测量参数样本,生成与所述拓扑人体模型包含的多个人体网格模型的所述三角形面片对应的测量参数矩阵;以及
[0239]
从筛选出的多个人体测量参数样本分别对应的人体特征样本,分别确定多个人体
网格模型的所述三角形面片分别对应的人体特征向量样本;并根据所述多个人体网格模型的所述三角形面片分别对应的人体特征向量样本,生成所述三角形面片对应的特征结果向量;
[0240]
根据所述三角形面片对应的测量参数矩阵以及特征结果向量,调用特征递归消除算法,确定所述三角形面片对应的相关性掩码。
[0241]
可选的,所述生成模块904具体用于根据下列方式确定所述人体网格模型的各个三角形面片分别对应的映射矩阵:
[0242]
针对所述人体网格模型的任意一个三角形面片:
[0243]
根据所述三角形面片对应的相关性掩码,从所述三角形面片对应的目标人体测量参数样本筛选出需要进行映射处理的映射人体测量参数样本;
[0244]
根据所述映射人体测量参数样本,以及所述三角形面片对应的人体特征向量样本,确定所述三角形面片对应的映射矩阵。
[0245]
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本技术时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
[0246]
所属技术领域的技术人员能够理解,本技术的每个方面可以实现为系统、方法或程序产品。因此,本技术的每个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0247]
在一些可能的实施方式中,本技术提供的人体三维模型生成方法的每个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的人体三维模型生成方法中的步骤,例如,计算机设备可以执行如图3或图6或图7所示的步骤。
[0248]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0249]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0250]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0251]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0252]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0253]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1