基于视频的三维人体姿态估计的局部到全局Transformer
作者:马海峰 *,陆克 * †,薛健 *,牛泽海 *,高鹏程† *
中国科学院大学工程学院,北京100049
鹏程实验室,深圳518055
来源:2022 IEEE International Conference on Multimedia and Expo (IEEE ICME)
基于Transformer的体系结构在序列到序列任务和视觉任务(包括三维人体姿态估计)中取得了很好的效果。然而,基于Transformer的3D人体姿态估计方法在局部信息获取方面不如RNN和CNN强。另外,局部信息在获得3D位置关系中起主要作用。在本文中,我们提出了一种方法,结合局部人体部位和全球骨骼关节使用时间Transformer精细跟踪人体部位的时间运动。首先,我们编码的位置和时间信息,然后我们使用一个局部到全局的时间Transformer,以获得局部和全局信息,最后我们得到的目标三维人体姿态。为了评估我们的方法的有效性,我们在两个流行的标准基准数据集上定量和定性地评估了我们的方法:Human3.6M和HumanEva-I。大量的实验表明,我们在Human3.6M上实现了最先进的性能,并将2D地面实况作为输入。
在本文中,我们使用基于变换的架构,以获得时间信息的2D-3D骨架序列提升。然而,Transformer是薄弱的,在其获取的本地位置信息,并未能联合收割机本地位置和全球位置信息很好地使用现有的方法。受[12]的启发,我们认为将局部、全局和时间信息相结合是有益的;因此,我们创建了一种新颖的方法,使用称为LGFormer的时间Transformer编码器来联合收割机局部和全局信息。LGFormer从现成的2D人体姿势估计器(即,2D人体姿势估计器)接收2D人体姿势序列。CPN [13])。然后,我们使用位置和时间编码将人体骨骼分成五个身体部分。局部Transformer考虑身体部位的局部位置信息并返回潜在特征表示。然后我们融合本地信息。接下来,我们的全球Transformer捕获潜在特征表示的全球依赖关系,并生成3D人体姿势。我们的贡献概述如下:1)提出了一种新的基于变换器的3D HPE框架,称为LGFormer,其可以用于将2D人体关节提升到3D姿态。2)为了缓解3D HPE的问题,设计了一种局部到全局的Transformer网络架构,该架构能够学习人体部位的局部信息以捕获细微的运动,并捕获人体关节中的远程依赖性。3)所提出的方法在具有2D地面真实输入的Human3.6M上实现了最先进的结果。我们在Human3.6M和HumanEva-I数据集上进行了全面的实验。实验结果表明,我们提出的方法在这两个任务上都取得了很好的性能。
概述我们提出的框架LGFormer,其中包含一个部分划分和位置时间增强层,补丁嵌入层,局部姿势时间Transformer层,全局姿势时间转换层,和回归头。
在本文中,我们使用基于变换的架构,以获得时间信息的2D-3D骨架序列提升。然而,Transformer是薄弱的,在其获取的本地位置信息,并未能联合收割机本地位置和全球位置信息很好地使用现有的方法。受[12]的启发,我们认为将局部、全局和时间信息相结合是有益的;因此,我们创建了一种新颖的方法,使用称为LGFormer的时间Transformer编码器来联合收割机局部和全局信息。LGFormer从现成的2D人体姿势估计器(即,2D人体姿势估计器)接收2D人体姿势序列。CPN [13])。然后,我们使用位置和时间编码将人体骨骼分成五个身体部分。局部Transformer考虑身体部位的局部位置信息并返回潜在特征表示。然后我们融合本地信息。接下来,我们的全球Transformer捕获潜在特征表示的全球依赖关系,并生成3D人体姿势。
我们的贡献概述如下:
1)提出了一种新的基于变换器的3D HPE框架,称为LGFormer,其可以用于将2D人体关节提升到3D姿态。
2)为了缓解3D HPE的问题,设计了一种局部到全局的Transformer网络架构,该架构能够学习人体部位的局部信息以捕获细微的运动,并捕获人体关节中的远程依赖性。
3)所提出的方法在具有2D地面真实输入的Human3.6M上实现了最先进的结果。
我们在Human3.6M和HumanEva-I数据集上进行了全面的实验。实验结果表明,我们提出的方法在这两个任务上都取得了很好的性能。
我们的局部到全局姿态估计器的概述在图1中示出。我们继承了近年来2D-to-3D提升方法的主要架构,首先利用CPN等现成的2D人体位姿估计器估计2D位姿,然后将这些2D位姿序列放入我们的局部到全局位姿提升网中估计中心帧的3D位姿,最后得到目标3D人体位姿T ∈ RJ×3。
我们的局部到全局姿态估计器的概述如图1所示。整体框架包含部分分割和位置时间增强层、补丁嵌入层、局部姿态时间Transformer层、全局姿态时间变换器层和回归头。在应用现成的2D人体姿态估计器后,我们获得完整的2D人体骨架序列。然后,我们将完整序列分割成f帧,并使用左填充和右填充。然后,我们获得顺序的2D骨架输入S ∈ Rf×J×2,其中f表示输入帧的长度,J表示输入关节的长度,对于2D姿势,2表示关节的2D坐标,对于3D姿势,第三个参数是3,表示关节的3D坐标。我们得到的2D骨架,然后我们输入这些2D骨架序列到我们的本地到全球的姿势提升网络。最后,我们得到的目标三维人体姿势。
为了增强不同帧之间的运动的小变化和末端关节的变化,我们遵循[12]中的位置和时间信息编码。我们的编码方法的概述如图所示。对于输入2D骨架S ∈ Rf×J×2,如图2所示。在图2(a)中,我们首先使用生理结构将2D骨架分成五个身体组,即躯干、左臂、右臂、左腿和右腿。然后,我们增强这些身体部位使用位置和时间信息独立。如图2(B)中,我们首先使用位置和时间信息增强人体骨架,然后通过补丁嵌入重塑矩阵并生成更高维的数据,如[9]中所做的那样。
(a)2D骨架序列的身体部位划分。(b)一个部位的位置和时间信息编码的整体过程
位置信息编码用SP ∈ Rf×J×2表示,时间位置信息编码用ST ∈ Rf×J×2表示。计算公式如下:
其中j = 1,2,...,J,J是我们接收到的关节编号,X和Y是骨架向量的坐标,x和y是骨架向量中每个关键点的坐标。作为Human3.6M中包含17个关节的示例,我们将骨骼分为:躯干-5个关节、左臂-3个关节、右臂-3个关节、左腿-3个关节和右腿-3个关节。(x0,y 0)指示根关节坐标(即Human3.6M髋关节坐标;因此SP表示每个帧的关节j和根关节之间的相对位置坐标。(Xm,Ym)指示输入序列的中间帧关节坐标;因此ST表示运动变化。我们获得2D骨架输入SE ∈ Rf×J×6:
它使用位置和时间信息增强。然后,我们重塑特征,并将其放入补丁嵌入。最后,我们得到了5个人体部位的Xe ∈ Rf×CHid,其中CHid是我们设置的隐维数参数。
在编码之后,我们获得五个身体部位的特征Xie,其中i ∈ {躯干,左臂,右臂,左腿,右腿}。如图3,将这些部分的特征分别输入到五个局部位姿时域编码器中。在这项研究中,我们使用了一个四层八头的Transformer编码器。然后,我们融合到一个全局特征,并将其输入到全局姿态时间Transformer。我们按照ViT [9]设计Transformer编码器。如图3,Transformer编码器包含两大部分:多头自注意(MSA)和前馈网络。我们将特征线性地投影到Q、K和V中。接下来我们计算自我注意力,然后,将它们输入到层范数和前馈网络中。对于我们的局部时间Transformer,上述方法计算一个变压器头。在本文中,我们连接八个头部的自我注意和获得局部姿态的时间特征。
在MSA中,我们将输入x ∈ Rf×d线性投影成查询Q ∈ Rf×d,关键字K ∈ Rf×d,值V ∈ Rf×d,其中f是输入帧序列长度; d是输入x的维数;对于局部时间Transformer器,d是CHid,并且对于全局时间变换器,d是5CHid。按比例缩放的点积注意力为:
因此,我们获得了一个注意力头。当我们的头数为n时,我们需要并行重复这个过程n次,并将结果串联起来,MSA计算为:
其中WQi ∈ Rd×d,WKi ∈ Rd×d,WVi ∈ Rd×d,WO ∈ Rhd×d,i = 1,2,...,n.
前馈网络使用MLP的两层作为目标框架。对于来自MSA的输入,局部时间Transformer和全局时间变换器的输入维度分别为CHid和5CHid。MLP可以计算为:
其中σ表示GELU激活函数[14]。与ViT [9]类似,我们选择4d作为MLP隐维,使用一个激活函数,使得W1 ∈ Rd×4d,W2 ∈ R4d×d,b1 ∈ R4d,b2 ∈ Rd。
我们使用在3D HPE中最广泛使用的平均每关节位置误差(MPJPE [11])损失来最小化预测和地面实况姿态之间的误差。MPJPE计算为:
其中pk和pk分别是第k个关节的地面实况和估计的3D关节位置。
我们在Human3.6M和HumanEva-I [15]数据集上评估了我们的方法,这些数据集在3D HPE中很受欢迎,并取得了良好的结果。Human3.6M是最受欢迎的3D HPE数据集,包含由运动捕捉系统捕捉的360万张图像。Human3.6M提供了四个视频视图,由11个演员和17个室内动作组成。我们的方法像以前的研究一样划分这些行为:我们使用五个动作(S1、S5、S6、S7、S8)用于训练,并且使用两个动作(S9、S11)用于测试。3D HPE中的主要指标是MPJPE,前面已经介绍过。HumanEva-I数据集包含来自运动捕捉系统的七个校准视频序列。该数据库包含四个受试者执行六种常见动作。HumanEva-I比Human3.6M小得多。我们测试了步行和慢跑行动的方法。
在我们的实现中,所提出的LGFormer包含五个局部姿态时间变换器和一个全局姿态时间变换器,其中局部姿态时间变换器包含四个变换器编码器层,其具有81的输入序列长度f和256的隐藏维度CHid。全局姿态时间Transformer包含四个变换器编码器层,输入序列长度f为81,隐藏维度CHid为1280。LGFormer在PyTorch框架上实现,并在两个GeForce RTX 3090 GPU上运行。
表1显示了我们的方法与以前的研究的比较。在我们的实验中,我们使用主要度量MPJPE计算了Human3.6M和HumanEva-I的结果。表1显示,我们的方法在Human3.6M上实现了2D地面实况输入的最新结果,CPN输入的MPJPE为46.3mm。显然,我们的方法比基于变压器的方法高出4.8%[10]。图4显示了我们在Human3.6M上的视觉结果,我们可以看到,通过我们的方法重建的骨架非常接近3D地面真实。表2还显示了我们在HumanEva-I上的结果。
为了验证我们提出的模型中每个组件和设计的效果,我们根据方案1使用MPJPE对Human3.6M进行了广泛的消融实验,如表3所示。我们构建了一个全局时间Transformer作为我们的基线模型。为了公平比较,我们将模型的编码维度和帧长度设置为相等。我们通过移除或更换LGFormer的组件设计了3个模型。通过将位置和时间编码添加到基线,MPJPE误差减少了4.0%。采用局部和全局时域Transformer,MPJPE损耗降低了13.3%。对于我们的LGFormer,与基线模型相比,MPJPE误差降低了18.8%(从37.7降低到30.6)。正如我们所看到的,局部Transformer为模型提供了很大的贡献,它专注于人体部位的运动。
对于基于视频的3D HPE,序列长度对性能有显著影响。表4显示了不同输入帧9、27、81的结果以及我们模型的复杂性。它表明,随着输入帧的增加,我们的模型的性能提高,这证实了我们的模型的能力,远程特征捕获。从接收序列长度9到81,误差减少了17.5%,编码隐藏维度CHid为128。
表5示出了不同编码维度长度64、128、256的结果,其中输入序列长度为81。结果表明,随着局部姿态时域Transformer输入维数的增加,我们的模型的误差减小。编码隐藏维数CHid从64增加到256,误差降低了16.9%。但模型的参数和FLOPS增加了许多倍;因此,作为折衷,我们使用编码维度长度128。
在本文中,我们提出了一种基于2D-3D骨架提升的三维HPE方法,并结合Transformer编码器和位置和时间先验。局部Transformer编码器编码解剖结构中不同人体部位的空间和时间关系,全局变换器编码所有人体关节之间的空间和时间关系。大量的实验表明,我们的模型在两个流行的3D姿势数据集上取得了很好的性能,并在Human3.6M上以2D地面实况作为输入取得了最先进的结果。