生成动态三维人体网格模型序列的方法及装置

文档序号:27632506发布日期:2021-11-29 16:31阅读:209来源:国知局
生成动态三维人体网格模型序列的方法及装置

1.本发明属于三维计算机视觉领域,涉及一种生成动态三维人体网格模型序列的方法及装置。


背景技术:

2.形状表示是三维计算机视觉,尤其是在深度学习时代的核心主题之一。最近,深度隐式表示在重建精确的表面细节方面显示出令人鼓舞的能力。但是,当前的深度隐式表示还无法重建较为精细的人体模型,并且我们人类生活在具有时间维度的四维世界中,如何重建四维人体,即随时间运动的人体,仍然是一个有待解决的问题。
3.当前许多针对人体运动的方法基于经典的smpl人体参数化模型对运动的人体进行表示,但该表示对于每一帧模型都需要有一个对应的姿态编码,不够高效和紧凑,在进行网络传输或其他相关的应用时对网络带宽或是存储造成了更大的负担。
4.一些基于深度学习的三维重建算法可以比较直接地扩展到四维空间。例如,有一种点云生成模型可以从单张彩色图片重建物体表面的点云,针对该方法,可以将其扩展为预测多个三维点的轨迹而不是三维点的坐标,从而实现四维点云重建;或是使用神经网络来建模三维物体的隐式表面,通过在给定的体积内采样一些查询点,然后利用网络预测每个点位于物体内部的概率,最终通过表面提取算法得到三维网格模型。针对该方法,可以直接在四维空间中采样查询点,建模不同时刻所对应的表面。但是,上述方法都是在现有三维重建算法上的简单扩展,无法准确捕捉对象的运动信息。
5.另外有方法利用神经常微分方程构建速度场,对每个三维点在某一时刻的速度进行预测,然后使用常微分方程解决器求解三维点在每个时刻的位置。在推断时,先利用深度隐式表示重建第一帧的网格模型,然后,将该网格模型的每个点作为起点利用神经常微分方程直接对每个点的坐标进行变换,从而得到任意时刻对应的网格模型。但直接在三维空间对点进行变换,模型表达能力有限,导致重建对象的某些部分产生不合理的移动且缺少表面细节。
6.最近有方法提出一种四维的组合表示,将三维点云序列编码为初始姿态编码、身份编码以及运动编码,并且利用神经常微分方程在运动编码的指导下对初始姿态编码进行编码,最后利用深度解码网络重建所需时刻的三维人体模型。由于该方法基于深度隐式表示,除了人体以外还能够重建其他进行非刚性形变的对象,但另一方面,由于采用全局的编码来表示三维形状,导致重建的人体模型缺少手部以及脸部的细节,不适合需要逼真人体重建的应用场景。


技术实现要素:

7.为解决上述问题,提供一种能生成逼真的动态三维人体网格模型序列的方法及装置,本发明采用了如下技术方案:
8.本发明提供了一种生成动态三维人体网格模型序列的方法,用于对输入的三维点
云序列进行处理,得到该序列中每一帧点云对应的带有衣服和头发的三维人体网格模型,其特征在于,步骤s1,对预先获取的包括多个三维模型序列的数据集进行预处理得到训练样本,训练样本包含赤裸的人体网格模型序列与带有衣服和头发的人体网格模型序列,从带有衣服和头发的人体网格模型表面采样得到三维点云序列作为输入;步骤s2,构建具有四个分离的三维点云特征提取网络的三维点云编码器,基于三维点云编码器分别对三维点云序列提取初始姿态特征、全局几何特征、全局运动特征以及辅助特征,并分别表述为初始姿态编码、身份编码、运动编码以及辅助编码;步骤s3,通过pca得到预训练的线性层,将初始姿态编码和运动编码作为输入,得到所有时刻的姿态编码;步骤s4,构建姿态优化网络,将运动编码以及辅助编码作为指导对所有时刻的姿态编码进行优化,得到更加准确的所有时刻的姿态编码;步骤s5,构建深度解码网络,将身份编码以及优化后的姿态编码作为输入,重建赤裸的人体网格模型;步骤s6,构建人体细节重建网络,将赤裸的人体网格模型和辅助编码作为输入,预测赤裸的人体网格模型每个顶点的偏移量,从而生成带有衣服和头发的人体网格模型序列;步骤s7,构建损失函数;步骤s8,基于损失函数对由三维点云编码器、姿态优化网络、深度解码网络以及人体细节重建网络组成的三维人体网格模型生成模型进行训练得到训练好的三维人体网格模型生成模型;步骤s9,将单个三维点云序列输入至三维人体网格模型生成模型,得到所有时刻对应的带有衣服和头发的人体网格模型序列并输出,其中,四个分离的三维点云特征提取网络分别为初始姿态特征提取网络、全局几何特征提取网络、全局运动特征提取网络以及辅助特征提取网络,初始姿态特征基于初始姿态特征提取网络得到,全局几何特征基于全局几何特征提取网络得到,全局运动特征基于全局运动特征提取网络得到,辅助特征基于辅助特征提取网络得到。
9.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,预处理包括以下步骤:步骤t1,通过smpl解码器将数据集提供的smpl形状参数和姿态参数解码为赤裸的三维人体网格模型;步骤t2,对数据集提供的带有衣服和头发的人体网格模型序列当中的每个模型表面进行采样得到输入的三维点云序列。
10.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,线性层预测所有时刻关于初始姿态编码的偏移量,所有时刻的姿态编码通过将偏移量与初始姿态编码相加得到。
11.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,姿态优化网络由条件门控循环单元组成,该优化为:将每一时刻的姿态编码与运动编码和辅助编码连接起来作为输入,基于线性层得到关于所有时刻的姿态编码的偏移量,将所有时刻的姿态编码的偏移量与所有时刻的姿态编码相加得到优化后的所有时刻的姿态编码。
12.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,深度解码网络通过将优化后的姿态编码以及身份编码作为输入,基于smpl人体参数化模型得到对应的网格顶点坐标构建。
13.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,全局几何特征提取网络以及初始姿态提取网络均由五个级联的残差块组成,五个残差块中,前四个残差块包括两层全连接层、一个最大池化层以及一个扩展连接操作,最后一个残差块包括三层全连接层以及一个最大池化层,全局几何特征提取网络和初始姿
态提取网络对三维点云序列的第一帧点云提取全局几何特征以及初始姿态特征,全局运动特征提取网络和辅助特征提取网络由一个浅层的点云特征提取网络以及门控循环单元组成,基于整个三维点云序列提取全局运动特征和辅助特征。
14.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,残差块的扩展连接操作为将最大池化层输出的特征复制n倍,再将复制后的特征与最大池化层的输入在特征维度进行连接,n为输入的三维点云序列的点数。
15.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,人体细节重建网络由条件门控循环单元组成,每个顶点的偏移量通过将辅助编码与赤裸的人体网格模型的所有顶点坐标的一维向量连接起来输入至人体细节重建网络进行预测,带有衣服和头发的人体网格模型序列基于所有顶点与每个顶点的偏移量相加得到。
16.本发明提供的一种生成动态三维人体网格模型序列的方法,还可以具有这样的技术特征,其中,损失函数为预测的网格顶点坐标与真实网格顶点坐标之间的l1损失函数。
17.本发明还提供一种生成动态三维人体网格模型序列的装置,其特征在于,包括:三维点云序列数据获取部,用于获取需要建模对象的三维点云序列数据;网格模型生成部,用于基于三维点云序列数据生成该序列当中每个时刻所对应的带有衣服和头发的三维人体网格模型;模型输出部,用于输出三维人体网格模型;以及控制部,用于控制三维点云序列数据获取部、网格模型生成部以及模型输出部实现相应的功能。
18.发明作用与效果
19.根据本发明的生成动态三维人体网格模型序列的方法及装置,首先基于三维点云序列生成带有衣服和头发的动态三维人体网格模型序列,在获取四维数据(时间维度上离散的点云序列)以后,由于使用了四个分离的三维点云特征提取网络,因此可以从整个序列中提取初始姿态编码,身份编码,运动编码以及辅助编码四部分特征来共同表示四维数据;然后由pca预训练得到的线性层,将运动编码映射为每一时刻相对于初始姿态编码的偏移量从而得每一时刻的姿态编码。进一步,基于条件门控循环单元在运动编码和辅助编码的指导下,对每个时刻的姿态编码进行优化,得到更准确的姿态编码。另外,还由于身份编码与时间无关,将其与不同时刻的姿态编码进行连接以后输入深度解码网络得到重建的人体网格模型,使得不同时刻重建出的三维网格模型在几何形状上具有更好的一致性。最后,基于条件门控循环单元在辅助编码的指导下对每个网格顶点预测偏移量以重建衣服和头发。
20.本发明的生成动态三维人体网格模型序列的方法将初始姿态、身份以及运动三部分信息进行解耦,利用该组合表示方法对四维数据进行表示,因此能够实现三维运动迁移、四维时序补全、四维空间补全以及未来运动预测等新颖的任务。
附图说明
21.图1是本发明实施例中的生成动态三维人体网格模型序列的方法流程图;
22.图2是本发明实施例中的生成动态三维人体网格模型序列的方法的结构示意图;
23.图3是本发明实施例中的初始姿态特征提取网络和全局几何特征提取网络的结构示意图;
24.图4是本发明实施例中的全局运动特征提取网络和辅助特征提取网络的结构示意
图;
25.图5是本发明实施例的姿态优化网络和人体细节重建网络的结构示意图;
26.图6是本发明实施例中的生成动态三维人体网格模型序列的装置的结构框图。
具体实施方式
27.为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的生成动态三维人体网格模型序列的方法及装置作具体阐述。
28.<实施例>
29.本实施例提供一种利用三维点云序列生成逼真的动态三维人体网格模型序列的方法及装置,用于对三维点云序列进行处理得到该序列中每一帧点云对应的带有衣服和头发的三维人体网格模型从而让建模用户查看以及应用。
30.图1是本发明实施例中的生成动态三维人体网格模型序列的方法流程图,图2是本发明实施例中的生成动态三维人体网格模型序列的方法的结构示意图。
31.如图1以及图2所示,生成动态三维人体网格模型序列的方法包括以下步骤:
32.步骤s1,对预先获取的包括多个三维模型序列的数据集进行预处理得到训练样本,训练样本包含赤裸的人体网格模型序列与带有衣服和头发的人体网格模型序列,从带有衣服和头发的人体网格模型表面采样得到三维点云序列作为输入。
33.本实施例中,采用已公开的cape数据集,该数据集共有600多个带有衣服和头发的人体运动模型序列,其中包含15个不同的人以及4种不同的衣着风格,将所有序列划分为多个长度为30帧的子序列,并且在网格模型表面进行采样得到三维点云序列,每帧点云包含8192个点,每个点在不同时刻无需具有对应关系,即每帧点云中点的顺序可以不同。
34.此外,该数据集还提供了每个人体网格模型对应的smpl参数,因此可以获得每个带有衣服和头发的人体网格模型所对应的赤裸的人体网格模型。具体地:
35.本实施例中,选取其中458个三维点云序列作为训练集,30个序列作为验证集,其余作为测试集。
36.预处理包括以下步骤:
37.步骤t1,通过smpl解码器将数据集提供的smpl形状参数和姿态参数解码为赤裸的三维人体网格模型;
38.步骤t2,对数据集提供的带有衣服和头发的人体网格模型序列当中的每个模型表面进行采样得到输入的三维点云序列。
39.步骤s2,构建具有四个分离的三维点云特征提取网络的三维点云编码器,基于三维点云编码器分别对三维点云序列提取初始姿态特征、全局几何特征、全局运动特征以及辅助特征,并分别表述为初始姿态编码、身份编码、运动编码以及辅助编码。
40.本实施例中,四个分离的三维点云特征提取网络分别为初始姿态特征提取网络、全局几何特征提取网络、全局运动特征提取网络以及辅助特征提取网络,初始姿态特征基于初始姿态特征提取网络得到,全局几何特征基于全局几何特征提取网络得到,全局运动特征基于全局运动特征提取网络得到,辅助特征基于辅助特征提取网络得到。
41.图3是本发明实施例的初始姿态特征提取网络和全局几何特征提取网络的结构示意图。
42.本实施例中,如图3所示,全局几何特征提取网络以及初始姿态提取网络均有相同的网络结构,均由五个级联的残差块组成,五个残差块中,前四个残差块包括两层全连接层、一个最大池化层以及一个扩展连接操作,最后一个残差块包括三层全连接层以及一个最大池化层,前四个残差块中的每个块都有一个附加的最大池化层,以获取大小为(b,1,c)的池化特征,其中c表示隐层的维度,并进行扩展操作第五个块的输出通过最大池化层和全连接层,以获取所需维度的最终特征向量。
43.扩展操作将最大池化层输出的特征复制n倍,n为输入的三维点云序列的点数,将复制后的特征与最大池化层的输入在特征维度进行连接,此操作在保留了每个点的特征同时也将所有点中最突出的特征通过池化层提取出来,保证具有足够的信息用于解码。
44.本实施例中,池化特征扩展为大小(b,1,n,c)以使其适合连接,全局几何特征提取网络和初始姿态提取网络以三维点云序列的第一帧作为输入提取对应的全局几何特征以及初始姿态特征。
45.图4是本发明实施例的全局运动特征提取网络和辅助特征提取网络的结构示意图。
46.如图4所示,全局运动特征提取网络和辅助特征提取网络需要引入时序信息,因此由一个浅层的pointnet点云特征提取网络以及适合处理时序数据的门控循环单元组成,全局运动特征提取网络和辅助特征提取网络基于整个三维点云序列提取全局运动特征和辅助特征。
47.本实施例中,初始姿态特征、全局几何特征、全局运动特征以及辅助特征分别使用72维、10维、90维以及128维的特征向量来表示,分别表述为初始姿态编码,身份编码,运动编码以及辅助编码。
48.步骤s3,通过pca得到预训练的线性层,将初始姿态编码和运动编码作为输入,得到所有时刻的姿态编码。
49.本实施例中,线性层预测所有时刻关于初始姿态编码的偏移量,所有时刻的姿态编码通过将偏移量与初始姿态编码相加得到。具体地:
50.使用两个由pca得到的预训练的线性层,一个用于预测人体根节点的旋转偏移量,另一个用于预测其他关节点的旋转偏移量,其中,其他关节点的旋转偏移量预测步骤如下:
51.首先,对数据集中的所有子序列的smpl姿态参数进行处理,将后29帧的姿态参数减去第一帧的姿态参数得到每帧的偏移量;
52.然后将所有偏移量连接起来得到一个29*72维的一维向量,对所有子序列得到的向量做pca降维处理得到线性层的参数。
53.步骤s4,构建姿态优化网络,将运动编码以及辅助编码作为条件编码对所有时刻的姿态编码进行优化,得到更加准确的所有时刻的姿态编码。
54.图5是本发明实施例中的姿态优化网络和人体细节重建网络的结构示意图。
55.图4中以及图5中,t表示不同时刻的输入。
56.如图5所示,本实施例中,将运动编码和辅助编码相连接作为条件编码,基于条件门控循环单元预测每帧姿态编码的偏移量,从而生成更加准确的所有时刻的姿态编码。
57.步骤s5,构建深度解码网络,将身份编码以及优化后的姿态编码作为输入,重建赤裸的人体网格模型。
58.本实施例中,为确保重建出精细的人体网格模型,采用经典的smpl人体参数化模型,以姿态编码和身份编码作为输入得到对应的网格顶点坐标。
59.由于smpl参数化模型本身实现了姿态和形状的解耦,因此本实施例能将输入点云序列中的姿态信息和形状信息进行解耦,从而适合应用于三维运动迁移。
60.步骤s6,构建人体细节重建网络,将赤裸的人体网格模型和辅助编码作为输入,预测赤裸的人体网格模型每个顶点的偏移量,从而生成带有衣服和头发的人体网格模型序列。
61.如图5所示,本实施例中,人体细节重建网络由条件门控循环单元组成,和姿态优化网络有相似的结构,区别在于,人体细节重建网络仅以辅助编码作为条件编码。具体地:
62.赤裸的人体网格模型每个顶点的偏移量通过将赤裸的人体网格模型的所有顶点坐标的一维向量连接起来输入至人体细节重建网络进行预测得到,将所有该赤裸的人体网格模型的所有顶点与每个顶点对应的偏移量相加,从而生成带有衣服和头发的人体网格模型序列。
63.步骤s7,构建损失函数。
64.本实施例中,损失函数为预测的网格顶点坐标与真实网格顶点坐标之间的l1损失函数。具体地:
65.对于每个三维点云序列,除了对最终预测的带有衣服和头发的人体网格模型顶点计算损失,还需要对步骤s5得到的赤裸的人体网格模型的顶点坐标计算损失,从而保证步骤s6有准确的初始化顶点坐标。
66.步骤s8,基于损失函数对由三维点云编码器、姿态优化网络、深度解码网络以及人体细节重建网络组成的三维人体网格模型生成模型进行训练得到训练好的三维人体网格模型生成模型。
67.本实施例中,采用分步训练的策略,即第一步先训练三维点云编码器,第二步训练姿态优化网络,最后训练人体细节重建网络,保证模型能够更好地收敛。
68.在训练中,使用反向传播算法与梯度下降算法优化三维人体网格模型生成模型中的权重参数,从而完成训练。
69.本实施例中,训练时使用adam优化器对网络进行优化,系数betas=(0.9,0.999),学习率设置为1e

4。
70.步骤s9,将单个三维点云序列输入至三维人体网格模型生成模型,得到所有时刻对应的带有衣服和头发的人体网格模型序列并输出。
71.本实施例中,在三维人体网格模型生成模型训练完成后,给定一个在时间维度上离散的点云序列,基于该模型输出每一时刻所对应的带有衣服和头发的三维人体网格模型生成结果。
72.本实施例中,基于测试用数据集对本实施例的方法和oflow方法以及四维网格重建方法进行具体实验对比,通过实验结果得到的体积iou和倒角距离进行模型性能评估,实验结果如下:
73.oflow方法:体积iou:61.5%,倒角距离:0.199。
74.四维网格重建(4d

cr)方法:体积iou:62.9%,倒角距离:0.165。
75.本实施例的方法:体积iou:70.8%,倒角距离:0.106。
76.评判原则为:体积iou评估标准最大值为100,当体积iou值越大时,模型性能越理想,而倒角距离数值越小模型性能越理想,因此,由上述实验数据得到,本实施例的三维人体网格模型生成模型的性能超过现有的oflow方法以及四维网格重建方法。
77.如上,本实施例提供了一种生成动态三维人体网格模型序列的方法,通过步骤s1至步骤s9,将三维点云序列输入至三维人体网格模型生成模型,得到所有时刻对应的带有衣服和头发的人体网格模型序列,其中步骤s1至步骤s8是三维人体网格模型生成模型的建立及训练,为了实际使用时更为方便,通过该过程得到的三维人体网格模型生成模型还可以打包形成一个三维的网格模型生成部,将该网格模型生成部与其他处理部相结合,该三维网格模型生成部可以与用于获取离散时刻的三维点云序列生成三维网格模型的装置(例如一台三维点云扫描仪),使得三维点云序列数据获取部在获取离散时刻的三维点云序列后由三维的网格模型生成部进行处理从而生成该序列中每一时刻所对应的带有衣服和头发的三维人体网格模型即可得到一种能够直接生成动态三维人体网格模型序列的装置,由此,本实施例还能提供一种生成动态三维人体网格模型序列的装置。
78.图6是本发明实施例中的生成动态三维人体网格模型序列的装置的结构框图。
79.如图6所示,生成动态三维人体网格模型序列的装置10包括三维点云序列数据获取部101、网格模型生成部102、模型输出部103以及控制部104。
80.三维点云序列数据获取部101用于获取需要建模对象的三维点云序列数据。
81.网格模型生成部102利用预训练的线性层以及条件门控循环单元对思维数据进行组合表示,基于三维点云序列数据生成该序列当中每个时刻所对应的带有衣服和头发的三维人体网格模型。
82.模型输出部103用于输出与每一帧点云对应的带有衣服和头发的三维人体网格模型从而供建模用户进行查看或直接应用在工业设计以数字娱乐的相关领域。
83.控制部104用于控制三维点云序列数据获取部101、网格模型生成部102以及模型输出部103以实现相应的功能。
84.实施例作用与效果
85.根据本实施例提供的生成动态三维人体网格模型序列的方法及装置,基于三维点云序列生成带有衣服和头发的动态三维人体网格模型序列,在获取四维数据(时间维度上离散的点云序列)以后,由于使用了四个分离的特征提取网络,因此可以从整个序列中提取初始姿态编码,身份编码,运动编码以及辅助编码四部分特征来共同表示四维数据,然后通过由pca预训练得到的线性层,将运动编码映射为每一时刻相对于初始姿态编码的偏移量从而得每一时刻的姿态编码。
86.实施例中,四个分离的三维点云特征提取网络能够从输入的点云序列中提取鲁棒的三维空间特征,不受三维点云中点的顺序的影响,为后续解码网络重建三维模型提供所需信息。
87.实施例中,利用条件门控循环单元在运动编码和辅助编码的指导下,对每个时刻的姿态编码进行优化,得到更准确的姿态编码。由于身份编码与时间无关,将其与不同时刻的姿态编码进行连接以后输入深度解码网络得到重建的人体网格模型,还利用条件门控循环单元在辅助编码的指导下对每个网格顶点预测偏移量以重建衣服和头发,使得不同时刻重建出的三维网格模型在几何形状上具有更好的一致性。
88.实施例中,生成动态三维人体网格模型序列的方法及装置使用基于神经常微分方程的组合表示方法,将四维数据的初始姿态,身份和运动三部分信息解耦,因此本发明可以实现三维运动迁移,将一个序列中对象的运动迁移到另一个对象上。另外,还能够利用反向优化的策略,实现四维时序补全,四维空间补全以及未来动作预测等应用。
89.实施例中,将smpl人体参数化模型作为解码器,能够重建出动态且逼真的人体三维模型序列,得到的三维人体网格模型总是具有完整的面部和手部形状,具有较好的鲁棒性和算法泛用性。
90.上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1