基于点云的骨骼感知三维人体形状重建

基于点云的骨骼感知三维人体形状重建

Skeleton-Aware 3D Human Shape Reconstruction From Point Clouds

 

 

论文链接:

http://openaccess.thecvf.com/content_ICCV_2019/papers/Jiang_Skeleton-Aware_3D_Human_Shape_Reconstruction_From_Point_Clouds_ICCV_2019_paper.pdf

摘要

这项工作解决了从点云重建三维人体形状的问题。考虑到人体形状具有高维、大关节的特点,采用最新的参数化人体模型SMPL来降低学习空间的维数,生成平滑有效的重构。然而,由于位姿表示的模糊性和局部性,SMPL参数,特别是位姿参数不易学习。因此,本文建议将骨骼感知融入到三维人体形状重建中基于深度学习的SMPL参数回归中。本文的基本思想是使用尖端技术PointNet++提取点特征,然后将点特征映射到骨架关节特征,最后映射到SMPL参数,用于点云重建。特别地,本文开发了一个端到端的框架,其中本文提出了一个图聚合模块,通过提取更好的点特征来扩充PointNet+,一个注意模块,通过更好地将无序的点特征映射到有序的骨架关节特征,以及一个骨架图模块来提取更好的关节特征来进行SMPL参数回归。整个框架网络首先在综合数据集上以端到端的方式进行训练,然后在线调整到未经观察的数据集上,在无监督的情况下损失以弥补训练和测试之间的差距。在多个数据集上的实验表明,本文的方法与最新的解决方案相当。

1.       Introduction

本文提出用点特征到骨架特征,再从骨架特征到SMPL参数的映射来代替点特征到SMPL参数的映射。然而,这条新管道又带来了另一个障碍。众所周知,PointNet++提取的点特征是无序的,因为它需要适应点的排列,而后续的关节特征则需要遵循骨架图的特殊顺序。从无序的点特征映射到有序的联合特征,同时对点的排列具有鲁棒性,这是一个重要的问题,为此本文提出了一个注意模块(AM)。另外,本文注意到PointNet++仍然使用多层感知(MLP)独立地学习各个点的特征,并通过邻域间的池来累积局部上下文,因此本文提出了一个基于图卷积的局部图聚合(GA)模块,以充分利用邻域间的局部上下文而不必承担巨大的内存负担需求和点交互损失。             

此外,本文还提出了一个基于图卷积的骨架图模块(SGM),利用骨架图中的关节依赖关系来学习更好的关节特征。图1描绘了正在对合成数据进行端到端训练的整个网络管道。还引入了一个在线调整步骤来利用无监督的损失来缓解数据集的差距。             

本文的主要贡献有两方面。             

•本文建议将骨骼感知纳入三维人体重建中基于深度学习的SMPL参数回归。重点介绍了点特征到骨架关节特征再到点云重建的SMPL参数映射的一般流程。             

•本文开发了一个端到端的框架,在这个框架中,本文提出了一个图形聚合模块,它被添加到PointNet++中以提取更好的点特征,一个注意模块来更好地映射无序的点特征,即添加到有序骨架关节特征中,并通过骨架图模块提取出更好的关节特征用于SMPL参数回归。

 

 

2.       Related Work

在这一部分中,本文回顾了三维人体形状重建、基于骨架的人体分析、点云分析和图形神经网络的相关工作。三维人体形状重建:随着深度学习的普及,最近的研究尝试使用神经网络直接学习从点云[13,20]或图像[42,31,16,5,27,1,28]重建三维人体。Groueix等人 [13] 直接学会变形一个给定的模板进行人体重建,但往往得到扭曲的人体形状,特别是在手臂的形状上。利塔尼等人 [20] 提出了一种变分自动编码器来学习可变形形状的完成,这往往会导致粗糙表面。瓦罗尔等人 [42]学会了用低分辨率的体积表示重建人体的体积形状。             

利用参数化人体模型,从单个图像[31、16、5]重建也变得可行。另一种不同的方法[40,33,47]是通过预测人体表面的密集对应关系来重建人体形状。在本文的工作中,本文还使用SMPL模型[21]作为人体形状的表示。另一项相关研究是动态人体重建或运动捕捉,它探索了行为人的时间一致性[48,15,14],甚至可以重建衣服和纹理[54,4,2]。              然而,鲁棒的人体姿态估计仍然是一个有待解决的问题,特别是对于快速运动,基于序列的人体重建严重依赖于良好的人体姿态初始化。因此,在最近的工作中,IMU传感器被引入到鲁棒姿态估计中[55,45]。本文的工作侧重于不同的场景,即从原始点云进行三维人体重建。

基于骨骼的人体分析:             

骨骼信息广泛应用于运动捕捉[48,51,52]和人体重建[10,21,22,53]。参数化人体模型,例如SMPL[21],依赖于人体骨架进行形状蒙皮。一些人类重建方法[10,51,48]也利用骨骼估计作为指导。然而,这些工作主要集中在骨骼关节位置的探索上,而忽略了它们之间的关系。Lee等人[19] 建议使用LSTM来利用关节关系,但它只允许将特征从父关节传播到子关节。相比之下,本文提出利用图卷积网络(GCN)在连接的骨架图节点间传播特征,这有助于探索父节点和子节点的特征。另一类相关的工作是关于人体姿态估计的[37,38,9,29,30],其重点是预测二维或三维关节位置。最新的二维姿态估计方法[9]可以很好地预测人体关节,即使存在多人交互,其成功部分归功于对人体关节之间关系的监督。三维关节姿态估计仍然是一个悬而未决的问题,主要是由于三维标记的困难和三维空间的模糊性。

最近的工作[37,38,30]通过探索多视图一致性或几何一致性以无监督的方式获取3D联合预测,但是没有探索用于姿势估计的联合相关性。基于学习的点云分析:点云分析因其在三维分析中的重要作用而引起了计算机视觉界的广泛关注[34,35,50,39]。开创性的工作[34,35]介绍了点云分析中的几个重要概念,包括点置换的不变性和点相互作用的捕获。然而,最先进的方法PointNet++[35]使用多层感知(MLP)进行单点特征学习,并在邻域之间进行融合,以获得排列不变的特征,从而获得重要的局部信息。尽管Klokov等人[18] 使用kdtree来解决此问题,但是当点云旋转时,kdtree中的分割位置可能会突然变化。EdgeConv[46]是解决这个问题的一个很好的方法,但是它们需要一个全局knn图,这会导致空间和时间上的O(N2)复杂性。相比之下,本文使用一个由极少数点构成的局部KNN图来捕捉与邻居的点交互,并应用快速图卷积来提取相互关联的点特征。图形结构上的神经网络:不规则图形上的学习特征在许多应用中都很流行,如三维几何数据分析[23,44]、社会网络分析[24]、动作识别[49]和姿势估计[12,8]。

现有的图卷积网络可以分为两大主流:基于空间的和基于谱的。基于空间的方法[25,41]通过直接过滤图形上的局部邻域来学习特征,由于内存限制,每层只能考虑有限数量的邻居。谱化方法[7,23]通过拉普拉斯矩阵的特征分解来学习傅里叶域的特征。然而,由于特征分解的不稳定性和计算量大,使得它不适合处理噪声点数据。折衷的方法是图的快速谱卷积[36,17,11],它使用k阶切比雪夫多项式来近似谱卷积,从而避免特征分解。在这项工作中,本文采用了快速谱卷积,并将其应用于点图和骨架图。

3.       Preliminary

3.1.  Parametric Human Model

参数化人体模型,如SCAPE[3]和SMPL[21],通过将人体形状的变化作为形状和姿势参数的函数进行编码,提供了人体形状的紧凑表示。特别是,SMPL的最新表现形式提供了许多好处。首先,人体形状和姿势是分离的,这允许对形状或姿势进行独立分析或控制[31,16]。其次,SMPL通过使用蒙皮过程对变形进行建模,避免了对粗糙和扭曲形状的直接建模,这是基于神经网络的方法[42、20、13]所头疼的问题。最后,SMPL是可微的,因此可以很容易地与神经网络集成[31,16]。
在本研究中,本文采用SMPL作为三维人体模型的底层表示。特别地,SMPL由形状参数、姿态参数和全局平移参数组成。形状参数β∈R10用于形状混合,并对全局形状信息进行编码。姿态参数用于姿态混合和蒙皮,并对相邻关节之间的局部信息进行编码,但根关节的姿态参数表示整个形状的全局旋转。请注意,SMPL中的姿势参数表示从关节到其父关节的相对旋转。它不同于二维或三维人体姿势估计[37,9],其中姿势指关节位置。示例如图2所示。尽管原始的SMPL模型使用轴角表示作为姿态参数,但本文选择了四元数表示,因为它消除了轴角表示中的模糊性[56]。这导致24个关节的姿态参数α∈R96,每个关节用4个值的四元数表示。在这项工作中,本文不考虑全局平移参数,因为一旦已知人体姿势或通过规范化输入点云来处理,就很容易推断出全局平移参数。

3.2.  Convolutions on Graph Structures

以往关于人体关节或姿态估计的研究主要是利用多层感知器来估计姿态。本文认为这种设计很难学习关节之间的关系,并建议使用图卷积运算来利用关节关系进行特征学习。具体来说,本文采用快速局部化光谱卷积[36,17,11]来捕获联合相关性。此外,本文还提出利用图卷积技术,通过构造一个由k近邻连接而成的邻域图来捕捉三维点云中的点相互作用。

 

 

4.       The Proposed Method

1给出了所提出的网络体系结构的概述,该网络体系结构以具有N1个点的3D点云{pi}N1为输入,并输出SMPL形状和姿势参数,这些参数随后被输入到现成的SMPL模型中以获得重构的3D人体网格。整个网络主要由三个模块组成:一个用于提取点云特征的改进的PointNet++模块(PointNet++W/graph aggregation(GA)),一个用于帮助将无序点特征映射到有序骨架关节特征的注意力模块(AM),以及一个用于提取关节特征的骨架图模块(SGM)回归SMPL参数。最后,将估计出的SMPL参数输入到现成的SMPL模型中,得到重构的三维人体网格,并与训练时的地面真值进行比较,与测试时的输入点云进行比较,作为在线调整。注意,SMPL模型是可微的,因此通过SMPL函数的后向传播可以很容易地获得后向梯度。下面,本文将详细描述这三个主要模块。

4.1.  Feature Learning for Point Clouds

在这一步中,本文采用PointNet++[35]作为主干,提取N2个采样点上定义的特征,这些特征通过最远点采样获得,如PointNet++。虽然PointNet++是一个非常强大的点云特征提取框架,但是它的卷积操作仍然在每个点上执行(参见图3(a)),这并不能正确地探索点之间的交互。基于卷积神经网络(CNN)在图像上的巨大成功,它通过将相邻像素与不同类型的滤波器卷积来学习特征,本文提出了通过合并图形卷积来学习局部模式来修改PointNet++。特别是,给定一组点,本文将局部邻域(S&G模块)作为PointNet++进行采样和分组,但是使用图3(b)所示的图聚合(GA)模块来学习每个点组的特征,而不是使用PointNet。具体来说,GA模块基于相邻点的欧氏距离构造局部图,只保留k个最近邻(实验中k=2)。然后本文计算拉普拉斯矩阵L,并执行如第3.2节所述的快速局部化谱卷积。该方法有助于学习不同步长邻居点特征的不同权值。在本文的实现中,对于不同的分辨率,使用不同参数的S&G模块和SA模块总共应用三次,并输出图1所示的N2点的最终特征,其中本文设置N2=64,对三个S&G模块使用1024256,64点。

4.2.  Attention Module

利用所提取的N2点特征,下一步是将其映射到N3骨架关节的特征中,如图1所示。然而,由于点云中的随机性,N2点没有任何特定的顺序。PointNet++[35]使用池操作将局部点特征聚合为全局特征,如图4(a)所示,该操作提供对点的排列的不变性,但会导致点特征的丢失。在本研究中,本文提出一个注意模组来保留局部的点特徵,同时保持点序不变。特别地,注意模块根据点特征动态地学习每个点对不同骨架关节的相对贡献(参见图4(b))。根据贡献权重与骨骼关节的相关性,通过多层感知网络调整贡献权重。本文同时利用集合特征和每个点上的特征来预测这些相对权重。图4(c,d)中显示了一些备选方案。图4(c)中的一个直接复制了池特征N3次,这将不能很好地工作,因为不同关节上的特征是相同的。图4(d)直接使用MLP进行映射。权值一旦学习就固定了,因此不能动态地适应输入的排列或变化。在本文的实现中,根据SMPL中的定义,N3被设置为24。图2所示为24个接头的示例。

4.3.  Skeleton Graph for Parameter Estimation

此步骤的目的是回归SMPL形状参数β和姿势参数α。透水解[31,16]通过类似于图5(a)的MLP网络直接预测SMPL参数。然而,他们的研究表明,即使在完全监督的训练中,也很难预测SMPL参数。这是因为SMPL形状和姿势参数以非线性方式相互作用。形状参数用于静止姿态下的关节预测,并与由姿态参数导出的关节变换进一步耦合。由于细化过程的存在,姿态或形状参数的误差会导致人体形状产生较大的变化,但姿态参数起主要作用。因此,本文建议利用骨架图来整合领域知识,以获得更好的SMPL参数回归,而不是基于MLP的直接回归。特别地,本文开发了一个骨架图模块(SGM)(见图5(b)),它以24个骨架关节上定义的特征作为输入,并在两个不同的分支中复制它们,分别用于回归形状和姿势参数。为了捕获相邻关节之间的依赖关系,在第3.2节中描述了图卷积。用于学习更好的关节特征。姿态分支通过四层图卷积直接预测每个关节上的四个姿态参数。形状分支通过三层图卷积学习局部关节的特征,然后用MLP预测10个形状参数。注意,SM中的Laplacian矩阵L是以关节为节点构造的,对于任意两个连接的关节i和j,wij=1。

4.4.  Offline Training and Online Tuning

为了以全监督的方式训练整个网络,本文需要点云对和相应的3D地面真值网格,其顶点数(N4=6890)和拓扑结构与SMPL网格相同。构建这样一个大规模的训练数据集既费时又费钱。为了避免这种困境,本文求助于综合数据的培训。具体来说,本文采样了一组形状和姿势参数作为超现实[43],然后将这些参数输入到SMPL模型中生成三维人体网格。输入点云是通过在SMPL网格上采样三维曲面点生成的。

 

 

 

 

 

 

 

 

5.       Experiments

5.1.  Datasets and Evaluation Metrics

合成数据集:             

本文的网络是在综合数据集上训练的。本文利用超现实数据集[43]为在真实场景中捕获的模型提供SMPL形状和姿势参数,这使得能够生成具有大变化和合理姿势的大量人体形状。具体来说,本文直接将形状和姿态参数作为超现实的样本,生成训练数据5120例,验证数据128例,测试数据1024例。             

动态数据集:             

本文还在Dyna数据集[32]上评估了本文的算法,该数据集提供了具有SMPL拓扑的注册网格。测试数据集是从每个原始网格中随机抽取6890个点,分为“跳跃千斤顶”和“原地跑”两个复杂运动序列生成的。DFAUST数据集[6]提供对不同运动中的几个人的原始扫描。本文在数据集中的所有序列上评估了本文的算法。Berkeley MHAD数据集[26]提供了Kinect的两个深度序列和人类关节位置。根据所提供的摄像机参数,将深度图像合并为一个点云,并利用人体关节所跨越的边界框裁剪出人体区域。对两个运动序列进行评估。在图6中,本文展示了一些测试示例。             

评估指标:             

本文考虑有和没有基本真理网格的情况。对于综合测试数据集和Dyna数据集,已知地面真值网格,因此本文计算从预测到地面真值的平均顶点欧氏距离,如式(3)。注意,本文使用逐点距离而不是逐点距离,因为它可以更好地反映重建结果的失真。对于DFAUST数据集和MHAD数据集,当地面真值网格未知时,本文计算平均点到点距离Dp2v(即等式(4)中的第一项)和平均点到点距离Dv2p(即等式(4)中的第二项)。注意,本文报告所有测试实例的平均值和最大值,以显示算法的平均性能和糟糕性能。

5.2.  Ablation Study

1显示了本文的方法及其变体在合成数据集和Dyna数据集上的平均和最大平均距离。注意,所有方法在综合测试数据集中都会产生较大的最大平均网格误差。如图6所示,这是由一些过度弯曲的形状引起的。为了评估GA模块的影响,本文创建了一个名为本文的GA的基线,将GA替换为图3(a)所示的原始PointNet++模块。通过比较本文的遗传算法和表1中的结果,本文可以得出这样的结论:将图形卷积合并到PointNet++中以促进点交互是有益的,将性能提高了至少4毫米。为了评估注意模块(AM)的效果,本文通过分别用图4(c)和(d)所示的两个替代模块替换AM来构建两个基线:本文的AM+池和本文的sam+MLP。从表1可以看出,本文的AM+池的性能很差,因为池操作和特性复制为不同的关节提供了相同的特性。通过简单的MLP映射(图4(d)),本文的AM+MLP达到了合理的性能,但与本文的相比仍有至少13mm的间隙。这是因为一旦训练完成,MLP的映射权矩阵就固定了,这就阻止了网络捕捉不同输入排列的动态映射关系。             

为了评估骨架图模块(SGM),本文用多层感知器代替SGM,构造了一个名为Ours SGM+MLP的基线,在姿态估计中得到了广泛的应用[31,16]。比较本文的SGM+MLP和本文的结果,可以看出SGM至少可以提高5mm的重建精度。系统的另一个选择是直接预测SMPL参数,而不是使用注意模块和骨架图模块。这个实验是通过用池操作和MLP(在Tab1中表示为本文的AM SM+POOL+MLP)替换AM和SGM来进行的) 是的。

本文可以看到,这会导致更糟糕的结果(至少13毫米下降)。              最后,本文在表2的最后一行评估了所提出的在线调整方案。比较不在线和在线微调的结果,分别表示为本文的(初始)和本文的(最终),本文可以看到,在线微调可以通过适应Dyna数据集上的新数据(这不同于合成数据集上的训练数据)大大提高性能。图7提供了一些可视化结果,进一步说明了fline训练和在线调谐的结合使得网络能够适应新的领域。

5.3.  Comparisons to the State-of-the-art

本文将本文的方法与两种最新的方法进行了比较,即3DCODED[13]和SMPLify方法[5]。对于3DCODED[13],本文直接使用作者发布的代码进行比较。本文评估在本文的训练数据集(表示为3DCODED syn)和作者的预训练模型(表示为3DCODED author)上训练的模型,后者使用更多的数据进行训练(大约200k)。请注意,3DCODED还使用经过训练的网络生成初始重建(initial),然后优化其表示以获得更好的重建(Final)。由于难以使用SMPL模型直接优化SMPL参数,Bogo等人 [5] 提出了几种重要的姿态预测器,以防止过弯,实现重建的成功。因此,本文用文[5]的方法进行比较,而不是直接用SMPL模型进行优化 [5]的代码也可用,但速度很慢。因此,本文在GPU上重新实现了它,以加快进程。             

本文考虑SMPLify方法的两个版本:SMPLify mesh和SMPLify-pcd,前者是优化SMPL参数,使重建网格接近给定的SMPL地面真值网格,后者是将重建网格拟合到给定的点云。请注意,SMPLify网格实际上是上界,这表明SMPL模型在给定具有相同拓扑的基本真值网格的情况下可以生成最好的网格。             

2显示了Dyna数据集上的比较结果。本文可以看到SMPLify网格可以很好地拟合地面真值网格,但是SMPLify pcd在没有给出对应关系的点云中表现不佳。本文的方法在初始网络输出和最终重建方面都优于3DCODED。图8给出了一个示例的视觉比较。三维编码[13]可以很好地重建人体姿态和粗糙形状,但其结果可能会受到粗糙或过弯网格的影响,如图8所示。本文还通过复制[20]中的图来显示[20]重建结果的有限质量。其他结果。本文还将本文的框架应用于人类完成和重建的原始扫描。在DFAUST数据集上的比较结果如表3所示,其中本文的方法优于用相同数据训练的3DCODED[13]和SMPLify[5],而与用更多数据训练的3DCODED[13]相比。本文还对由Berkeley MHAD数据集的两幅深度图像生成的点云进行了测试,结果如表4所示。

9中的视觉比较表明,本文的方法获得了比其他方法更理想的重建结果。  

限制在本文的实验中,本文发现本文的方法在女性形状重建中有较大的误差,尤其是胸部、腹部和臀部(见图8)。本文推测这是从SMPL表示继承来的,因为SMPLify网格显示出类似的问题。可能的原因是SMPL模型只对形状使用10个参数,这使得用中性形状的较大派生来建模身体部位变得困难。另一个主要的限制是本文的方法仅限于SMPL模型,只能重建裸体人体的形状。

 

 

 

 

 

 

 

 

 

 

 

 6.       Conclusion

这项工作解决了从点云重建三维人体形状的问题。考虑到人体形状具有高维、大关节的特点,采用最新的参数化人体模型SMPL来降低学习空间的维数,生成平滑有效的重构。然而,由于位姿表示的模糊性和局部性,SMPL参数,特别是位姿参数不易学习。因此,本文建议将骨骼感知融入到三维人体形状重建中基于深度学习的SMPL参数回归中。本文的基本思想是使用尖端技术PointNet++提取点特征,然后将点特征映射到骨架关节特征,最后映射到SMPL参数,用于点云重建。特别地,本文开发了一个端到端的框架,其中本文提出了一个图聚合模块,通过提取更好的点特征来扩充PointNet+,一个注意模块,通过更好地将无序的点特征映射到有序的骨架关节特征,以及一个骨架图模块来提取更好的关节特征来进行SMPL参数回归。整个框架网络首先在综合数据集上以端到端的方式进行训练,然后在线调整到未经观察的数据集上,在无监督的情况下损失以弥补训练和测试之间的差距。在多个数据集上的实验表明,本文的方法与最新的解决方案相当。

posted @ 2020-04-10 09:12  吴建明wujianming  阅读(2908)  评论(0编辑  收藏  举报