用于视频中 3D 人体姿势估计的 Seq2seq 混合时空编码器
用于视频中3D人体姿势估计的Seq2seq混合时空编码器
摘要
最近已经引入了基于transformers 的解决方案,以通过全局考虑所有帧中的身体关节来学习时空相关性,从2D关键点序列估计3D人体姿态。我们观察到不同关节的运动差别很大。然而,先前的方法不能有效地对每个关节的稳固的帧间对应关系建模,导致时空相关性的学习不充分。我们提出了MixSTE(混合时空编码器),它有一个时间变换块来分别模拟每个关节的时间运动,还有一个空间变换块来学习关节间的空间相关性。交替使用这两个块来获得更好的时空特征编码。此外,网络输出从输入视频的中心帧扩展到整个帧,从而提高了输入和输出序列之间的一致性。在三个基准数据集(即Human3.6M、MPI-INF-3DHP和HumanEva)上进行了大量实验。结果表明,我们的模型比现有的方法分别提高了10.9%的P-MPJPE和7.6%的MPJPE。
代码可从https://githubcom/JinluZhang1126/MixSTE获得。
1. 介绍
作者发现不同关节的运动具有明显的差异性,而之前的研究没有有效地对每个帧之间对应关节进行建模,导致时空相关性的学习不足。作者提出了MixSTE(Mixed Spatio-Temporal Encoder),包含temporal transformer block和spatial transformer block,其中temporal transformer block分别对每个关节在时序运动上进行建模,spatial transformer block则学习关节间的空间关系。两个块交替循环,以提取到更好的时空信息。另外网络输出不再像之前只输出中间帧,而是整个序列帧,提高了输入和输出序列之间的一致性。
基于单目观察的三维人体姿态估计是一项基本的视觉任务,它从输入图像或视频中重建三维人体关节位置。由于这项任务可以获得身体几何形状和运动的有意义的表达,因此它有广泛的应用,如动作识别[54,55],虚拟人物[5–7,52],以及人与机器人的交互[11,43,50]。最近的工作是基于2D到3D的提升管道[1,4,28,31,37,46,57],它首先检测2D关键点,然后将它们提升到3D。由于单目数据的深度模糊,可能会从同一个2D位姿映射出多个潜在的3D位姿,仅根据单帧二维关键点信息很难恢复出准确的三维姿态。

通过利用输入视频中包含的时间信息来解决单帧中的上述问题,已经取得了显著的进步[1,4,16,28,37,46]。最近,由于transformer [45]在对序列数据建模的能力方面取得了成功,郑等人[57]引入了一种基于transformer的3D人体姿态估计网络。它利用时空信息来估计视频中更精确的中心帧姿态。通过对所有关节之间的空间相关性和连续帧之间的时间相关性进行建模,PoseFormer [57]实现了性能改进。然而,它忽略了身体关节之间的运动差异,导致时空相关性的学习不足。此外,它增加了时间transformers模块的维数,这限制了较长输入序列的使用。
Poseformer[57]将视频作为输入,并且只估计中心帧的人体姿态,我们将这种管道总结为seq2frame方法。许多最近的方法[1,4,28,37,57]效仿它,并且它们利用相邻帧来提高估计某一时刻的姿态的精度,但是由于单帧输出而忽略了序列相干性。此外,在推断过程中,这些seq2frame解决方案需要重复输入一个2D关键点序列,具有较大的重叠,以获得所有帧的3D姿态,这带来了冗余计算。与seq2frame方法相反,还有seq2seq方法,它从输入2D关键点回归3D姿态序列。这些方法[16,46]主要依靠长时短时记忆(LSTM) [15]细胞或图形卷积网络(GCN) [21],在学习连续估计结果中的时间信息方面表现良好。然而,目前的seq2seq网络缺乏输入和输出序列之间的全局建模能力,这往往在长序列的输出姿态中过于平滑[37]。LSTM [15]的低效率对于从视频中估计人体姿态也是一个严重的问题。
虽然先前的工作集中于在空间和时间域中关联所有关节,但是我们观察到不同身体关节的运动轨迹因帧而异,并且应该分别学习。此外,输入2D关键点序列和输出3D姿态序列具有稳固的全局一致性,并且它们应该紧密耦合以促进精确和平滑的3D姿态。
在上述观察的激励下,在这项工作中,我们提出MixSTE来学习每个身体关节的单独时间运动,并在seq2seq方法中传入连续连贯的人类姿势序列。与重建中心帧并忽略单个关节运动的现有方法[57]相比,MixSTE通过新颖的seq2seq架构和一组运动感知约束将2D关键点序列提升为3D姿态序列。具体来说,如图1顶部所示,我们提出了关节分离,以考虑每个关节的时间运动信息。它将每个2D联合作为一个单独的特征(在transformer中称为标记)来充分学习时空相关性,并有助于在时域中降低联合特征的维度。此外,我们提出了一种seq2seq的交替设计,以灵活地在长序列中获得更好的序列一致性,这减少了冗余计算和过度平滑。这样,可以充分考虑不同身体关节的时间运动轨迹,以预测精确的3D姿态序列。据我们所知,所提出的方法是第一个在seq2seq流水线中利用transformer编码器的方法,它增强了学习时空相关性以进行精确的姿态估计,并显著提高了seq2frame方法的推理速度(见图1的底部)。此外,我们的方法可以很容易地适应任何长度的输入序列。
我们对3D人体姿态估计的贡献可以概括为三个方面:
(1)提出MixSTE是为了有效地捕捉长序列上身体不同关节的时间运动,这有助于对足够的时空相关性进行建模。
(2)我们提出了一种新的交替设计,使用基于transformers的seq2seq模型来学习序列之间的全局一致性,以提高重建姿态的准确性。
(3)我们的方法在三个基准测试中取得了一流的性能,并具有出色的泛化。
2.相关工作
三维人体姿态估计。从单目数据估计三维人体姿态是依靠运动学特征或先验的骨架结构[17,18,38,39]。随着深度学习的发展,越来越多的数据驱动方法被提出,这些方法可以分为端到端方式和二维到三维提升方式。端到端方式直接从输入中估计3D坐标,而不需要中间的2D姿态表示。一些方法[36,42,44]遵循这种方式,但由于直接从图像空间进行回归,计算成本较高。与端到端方式不同,2D到3D提升管道首先估计RGB数据中的2D关键点,然后利用二维和三维人体结构之间的对应关系将2D关键点提升到3D姿态。得益于二维关键点检测工作的可靠性[8,13,29,34,41],最近的二维到三维提升方法[9,27,30,31,48,56,58]优于端到端方法。因此,我们采用2D到3D方式来获得稳健的2D中间监督。
2D到3D提升下的Seq2frame和Seq2seq。最近,来自视频的时间信息已经被利用来通过许多方法产生更鲁棒的预测(VIBE、TCMR)。对于视频输入,许多有影响力的作品(seq2frame)注重预测输入视频的中心帧,以产生更鲁棒的预测和对噪声更低的敏感性。Pavllo等人[37]提出了基于时间卷积网络(TCN)的扩展时间卷积来提取时间特征。一些后续工作通过利用注意机制[28]或者将姿态估计任务分解为骨骼长度和骨骼方向预测[4]来改进TCN的性能,但是它们必须固定输入序列的感受域。与它们相比,我们的方法不需要根据卷积核或滑动窗口大小预设每个输入的长度。此外,GCN [21]也被[1]应用于这项任务,以学习人类和手部姿态的多尺度特征。这些作品取得了良好的业绩;然而,计算冗余是这些方法的共同缺陷。
另一方面,一些工作(seq2seq)提高了 3D 姿态估计的连贯性和效率,并一次重建输入序列的所有帧。引入 LSTM [15] 从一组 2D 关键点 [26] 估计视频中的 3D 姿势。侯赛因等人[16]提出了一种时间导数损失函数来确保序列的时间一致性,但它面临着计算效率低的问题。王等人[46] 利用基于GCN的方法并设计了相应的损失来模拟短时间间隔和长时间范围内的运动,但它缺乏输入序列的全局建模能力。与[16, 46] 相比,我们的方法具有在空间和时间域中每个关节的全局建模能力的优势。此外,它还支持框架和关节的并行处理,以解决 LSTM [15] 的低效率问题。
自注意与Transformer[45]首先提出了具有自注意的transformer体系结构,并将其应用于各种视觉任务,如用视觉transformer(visual Transformer, ViT)[10]进行分类,用DETR[2]进行检测。对于人体姿态估计任务,[49]提出了转置法从图像中估计二维姿态。[25]提出了一种transformer框架,用于从单幅图像中进行人体网格恢复和姿态估计,但忽略了视频中的时间信息。一些研究人员还探索了多视角三维人体姿态估计方案[14]。引入跨步transformer编码器[23],结合局部环境。进一步,PoseFormer[57]基于ViT[10]构建了一个模型,以连续捕获空间和时间依赖。[23]和[57]都需要固定时空编码器的顺序,只重建视频的中心帧。在应用transformer架构方面,我们的方法与他们类似。但我们考虑了身体不同关节的运动轨迹,并应用seq2seq来提高模型序列的一致性。
从以上相关工作的分析和比较来看,进一步探索基于transformer的三维人体姿态估计方法是必要的和可行的,但是在三维人体姿态任务中还没有将transformer与seq2seq框架相结合的方法。
2. 我们的方法
如图2所示,我们的网络将一个具有N个关节和T个帧的串联2D坐标CN,T ∈ RN×T ×2作为输入,其中输入的信道大小为2。首先,我们将输入的关键点序列CN,T个帧投影到高维特征PN,T ∈ RN×T ×dm,对于每个联合表示具有特征维数dm。然后,我们利用位置嵌入矩阵来保留空间和时间域的位置信息。所提出的混合策略将PN,T作为输入,目的是交替学习空间相关性和分离时间运动。最后,我们使用一个回归头来连接编码器的输出X ∈ RN×T ×dm,并且取维数dm为3来得到3D人体姿态序列Out ∈ RN×T ×3。

3.1.混合时空编码器
对于给定的2D输入关键点序列,我们利用MixSTE分别对空间相关性和时间运动进行建模。MixSTE由空间transformer模块(STB)和时间transformer模块(TTB)组成。这里,STB计算关节之间的自我注意,并旨在学习每一帧的身体关节关系,而TTB计算帧之间的自我注意,并专注于学习每个关节的全局时间相关性。
3.1.1单独的时间相关性学习
为了将有效的运动轨迹注入到学习的表示中,我们考虑每个关节的时间对应性,以便在动态序列上显式地对相同关节的相关性进行建模。与之前的方法[57]不同,我们不将所有身体关节视为时间变换块中的标记。我们在时间维度上分离不同的关节,使得每个关节的轨迹是一个单独的标记p ∈ R1×T ×dm,身体的不同关节被并行建模。从时间维度的角度来看,身体关节的不同运动轨迹被分别建模,以更好地表示时间相关性。关节分离操作如下:
其中pi,j ∈ PN,T表示第j帧中的第I个关节,F表示时间编码器函数,第l个TTB编码器的输出是Xl ∈ RN×T ×dm。此外,将身体每个关节视为一个单独的标记,可以将模型的维数从PoseFormer [57]的N × dm降低到dm,并且还可以在模型中处理更长的序列。
3.1.2空间相关性学习
我们使用空间变换块(STB)来学习每帧中关节之间的空间相关性。给定具有N个关节的2D关键点,我们认为每个关节都是空间注意力的表征。首先,我们把2D关键点作为输入,用线性嵌入层把每个关键点投影到一个高维特征上。该特征在STB中被称为空间标记。然后,我们用位置矩阵Es pos∈rn×DM嵌入空间位置信息。之后,第I帧的空间表征Pi ∈ RN×dm被馈入STB的空间自关注机制,以模拟所有关节之间的依赖性,并在第l个STB中输出高维表征Xsl ∈ RN×T ×dm。
3.1.3使用Seq2seq的交替设计
时空关联中的交替设计。STB和TTB以交替的方式设计,以编码不同的高维标记。交替设计的过程就像递归神经网络(RNN),但我们可以在关节和时间维度上并行。我们为dl循环堆叠STB和TTB,并且特征的维度被保留为固定大小的dm,以保证时空相关学习集中在相同的关节上。具体地,空间和时间位置嵌入仅应用于第一编码器中,以保留两种位置信息。此外,存在空间和时间域的独立性,其中由于时空建模的单一过程,先前的方法通常仅学习部分序列一致性。所提出的具有堆叠结构的交替设计可以获得更好的相干性和时空特征编码。
Seq2seq框架。此外,为了更好地利用2D关键点的输入序列和3D姿态的输出序列之间的全局序列一致性,我们在我们的模型中利用seq2seq管道。它可以一次预测输入2D关键点的所有3D姿态,这有助于保持输入和输出序列之间的序列一致性。此外,对于包含T帧的序列,我们需要更少的推理次数,这意味着更高的效率。假设每个输入的序列长度t < T,我们的模型和seq2frame方法之间的推理时间间隔G将随着T的增加而变大:
其中δ表示输入序列的填充长度。
总之,由于这些先进的组件,我们的模型可以用较少的计算冗余来捕捉各种时间运动和全局序列一致性。
3.2. MixSTE中的transformer块
MixSTE中的transformers模块遵循缩放后的dotproduct注意事项[45]。每个头部中的查询、关键字和值矩阵Q、K、V的注意力计算由以下公式表示:

其中线性投影权重为WO ∈ Rdm×dm。在我们的方法的Transformer编码器中,每个联合标记p ∈ PN从2D坐标CN ∈ RN×2的联合ci投影。联合标记p通过矩阵Epos ∈ RN×dm嵌入位置信息:

其中Norm表示层归一化,Le表示线性嵌入层。然后,STB和TTB如下计算关节之间的时空相关性:

其中Rs表示关节标记X的注意力输出,Ui是X通过线性变换映射的矩阵,Wm是关节中查询、键和值对应的线性变换权重矩阵。
大的权重用于运动幅度较大的关节。躯干躯干,四肢在中间,四肢末端。标记到躯干的重量是最小的,而分配到端点的重量是最大的。
3.3.损失函数
以端到端的方式训练网络,最终损失函数L定义为:

具体而言,我们首先探索了加权平均每关节位置误差(WMPJPE ),该误差在计算MPJPE时对人体的不同关节给予不同的关注。重量为W的WMPJPE Lw计算如下:
其中Ns表示三个数据集中人体骨骼s的N个关节,T表示序列中的帧数,pi,j和gti,j是第j帧中第I个关节的预测和地面真实3D姿态。
此外,引入[16]中的时间一致性损失(TCLoss)来产生平滑姿态。MPJVE [37]在我们的模型中也是一个损失,以改善预测姿态序列和地面真实序列之间的时间一致性。我们将TCLoss和MPJVE合并为时间损失函数(T-Loss)。
4.实验
4.1.数据集和评估协议
我们分别在三个3D人体姿态估计数据集上评估我们的模型:Human3.6M [3,19],MPI-INF-3DHP [32]和HumanEva [40]。
Human3.6M是用于3D人体姿态估计任务的最常用的室内数据集。遵循先前方法[4,28,31,35–37,57]的相同策略,采用Human3.6M中的3D人体姿态作为17关节骨架,并且在训练期间应用来自数据集的受试者S1、S5、S6、S7、S8,受试者S9和S11用于测试。该数据集中涉及两个常用的评估指标(MPJPE和P-MPJPE)。此外,平均每关节速度误差(MPJVE) [37]用于测量预测序列的平滑度。我们还计算方差(V AR。)来评估稳定性。
MPI-INF-3DHP也是最近流行的大规模3D人体姿态数据集。我们的设置遵循以前的作品[46,57]。曲线下面积(AUC)、正确关键点百分比(PCK)和MPJPE被报告为评估指标。
HumanEva是一个比上述数据集更小的数据集。与[28,57]的设置相同,S1、S2、S3被试的动作(步行、慢跑)为评价数据。应用了度量MPJPE和PMPJPE。
4.2实验细节
提出的模型用Pytorch实现。我们使用来自2D姿态检测器[8,41]或2D地面真实的2D关键点来分析我们的框架的性能。虽然提出的模型可以很容易地适应任何长度的输入序列,但公平地说,我们为三个数据集选择了一些特定的序列长度T,以将我们的方法与其他必须具有特定2D输入长度的方法进行比较[4,28,37]: Human3.6M (T =81,243),MPI-INF3DHP (T =1,27),HumanEva (T =43)。关于帧长设置的分析在消融研究第4.4节中讨论。WMPJPE中的W基于不同的关节组(躯干、头部、中间肢体和末端肢体)设置,具有不同的值(分别为1.0、1.5、2.5和4.0)。Adam优化器[20]被用于训练模型。数据集的批量大小、退出率和激活函数设置为1024、0.1和GELU。我们利用间隔与输入长度相同的步幅数据采样策略,以使序列之间没有重叠帧(更多细节在补充材料中)。
4.3.与最先进方法的比较
在Human3.6M上的结果。在实验中应用了两种类型的2D联合检测数据:CPN [8],它是在以前的方法中使用的最典型的2D估计器,以及HRNet [41],它用于进一步研究我们的方法的上限。与其他方法比较的结果,包括所有15个动作的误差和平均误差,在表1中报告。对于CPN [8]检测器,我们的模型在协议1下获得了40.9mm的平均MPJPE和在协议2下获得了32.6mm的P-MPJPE的最佳结果,这比PoseFormer [57]高出3.4mm MPJPE (7.6%)。此外,在所有的动作中,我们的方法在T = 243的设定下达到最佳,在T = 81的设定下达到次佳。
利用更强大的2D探测器HRNet [41],我们的模型在协议1下进一步提高了大约4.5毫米(10.2%)。我们还使用2D地面真值将我们的方法与[4,28,37,46,57]进行了比较,结果如表2所示。我们的方法明显优于所有其他方法,与PoseFormer [57]相比,平均MPJPE提高了约31.0%。
此外,我们将测试集S9和S11中的MPJPE分布与其他方法[37,57]进行比较,以评估评估困难姿势的能力。在图3中可以观察到,在我们的方法中,具有高误差的姿态要少得多。此外,导致精度损失的超过40mm MPJPE的姿态的比例一直较低,而小于30mm MPJPE的比例远远高于其他方法。结果表明,我们的方法在高难度动作上表现更好。

表1。在协议1(未应用刚性对准)和协议2(刚性对准)下,MPJPE在Human3.6M上以毫米(mm)为单位的详细定量比较结果。上表:协议1下的结果(MPJPE);中间表格:协议2下的结果(PMP jpe);底部表格:MPJVE的结果。t表示通过相应方法估计的输入帧数,(+表示使用时间信息,*)表示基于变换器的方法。最佳和次佳结果分别以粗体和下划线格式突出显示。

表二。使用2D地面实况关键点作为输入,在协议1下在Human3.6M上以毫米(mm)为单位的MPJPE的详细定量比较结果。最佳结果以粗体突出显示。我们的方法明显优于所有其他方法,与PoseFormer [57]相比,平均MPJPE提高了约31.0%。

图3。MPJPE在Human3.6M测试集上的分布。

在图4中,我们比较了Human3.6M测试集所有帧上各个关节的MPJPE,以评估不同关节的估计精度。四肢关节因动作灵活误差较高,躯干关节因动作稳定误差较低。我们的每个联合类别的准确性达到最好,方差(V AR。)比较表明,我们的方法具有更稳定的性能。

MPI-INF-3DHP数据集:曲线下面积(AUC)、正确关键点百分比(PCK)和MPJPE被报告为评估指标。
MPI-INF-3DHP上的结果。表3报告了在MPI-INF-3DHP测试集上与其他方法的详细比较。此外,1帧设置用于评估单帧性能。输入是地面真相2D关键点。如表中所示,方法(T =27)在三个评估指标中表现最好,单帧设置(T =1)也达到了第二好的精度。这些结果证明了我们的模型在单帧和多帧场景中的强大性能。

HumanEva的结果。我们利用 HumanEva 来评估所提出方法的泛化能力以及从大型数据集进行微调的影响。表 4 报告了来自 Human3.6M 的 HumanEva 微调的 MPJPE 结果。由于 seq2seq 设置和小数据集中转换器的限制,我们没有微调的方法比我们的基线略差。但是可以通过使用更小的数据样本步幅(interval=1)来提高性能。实验表明,我们的模型比以前的方法具有更好的泛化能力。
4.4.消融研究
为了评估我们模型中每个组件的影响和性能,我们在本节中评估它们的有效性。Human3.6M数据集和CPN[8]检测器用于提供2D关键点。

每个组件的效果。如表5所示,我们首先将中心帧3D姿态输出修改为序列输出,而不进行任何其他优化,以获得seq2seq基线模型。为了公平比较,seq2seq基线的参数设置直接应用于所提出的方法,并且在基线模型中利用MPJPE损失。在应用交替学习设计后,结果表明我们的方法减少了6.2毫米MPJPE(从51.7毫米减少到45.5毫米)。然后利用联合分离关节来证明其在提高性能(从45.5到41.7)和降低计算成本(每帧的FLOPs从186405减少到645)方面的优势。通过应用我们的损失函数来代替MPJPE损失,我们的结果达到最佳(40.9mm MPJPE,645次FLOPs)。与seq2seq基线相比,使用我们的损失函数的MixSTE提高了20.9%(从51.7到40.9),这证明了我们的网络设计的合理性。

损失函数的影响。我们已经详细研究了损失函数的贡献。如表6所示,在应用WMPJPE损失之后,MPJPE度量从41.7下降到41.3。结果表明,WMPJPE是提高精度的一个重要损失。然后使用[16]之后的时间一致性损失(TCLoss)来将时间平滑性能(MPJVE)提高1.0(从4.6降低到3.6),并且在使用MPJVE损失之后,相干性变得更好(从4.6降低到2.6)。运动损失[46]对相干性的贡献小于TCLoss和MPJVE损失。最后,在将T损失和WMPJPE损失应用到我们的方法之后,结果在MPJPE和MPJVE度量上达到最佳(40.9mm MPJPE,2.3 MPJVE)。消融研究表明,我们的损失函数对于所提出的模型在精确性和平滑性方面是全面的。

参数设置分析。表7显示了我们方法中不同超参数的设置如何影响使用 MPJPE 的协议 1 下的性能。网络有三个主要的超参数:MixSTE 的深度 (dl)、模型的维度 (dm) 和输入序列长度 (T)。我们将配置按行分为 3 组,并为一个超参数分配不同的值,同时保持其他两个超参数固定,以评估每种配置的影响和选择。根据表中的结果,我们选择 Depth=8、Channel=512、Input Length=243 的组合。请注意,我们选择 Depth = 8 而不是 Depth = 10,因为后者的设置引入了更多的参数(33.7M vs. 42.2M)。
4.5.定性结果

如图 5 所示,我们进一步对空间和时间注意力进行可视化。所选动作(测试集 S11 的 SittingDown)应用于可视化。此外,对不同头部的注意力输出进行平均以观察关节和帧的整体相关性,并将注意力输出归一化为[0, 1]。从空间注意力图(图 5 左侧)可以很容易地观察到,我们的模型学习了关节之间的不同依赖关系。此外,我们还可视化了来自最后一个时间注意层的时间注意图(图 5 右侧)。浅色的两部分与相邻帧的姿势相似,而深色对应的帧(帧序列中的中间图像)与相邻帧的姿势不同。

我们还评估了图 6 中 Human3.6M 的估计姿势和 3D 地面实况的视觉结果,以表明与 PoseFormer [57] 相比,我们可以估计更准确的姿势。
5. 结论
我们提出了MixSTE,一种新颖的基于transformer的 seq2seq 方法,用于从单目视频进行3D姿态估计。该模型可以更好地捕捉不同身体关节的全局序列相干性和时间运动轨迹。此外,3D 人体姿态估计的效率也大大提高。综合评价结果表明,我们的模型获得了最好的性能。作为一种新的通用基线,所提出的方法也为未来的工作开辟了许多可能的方向。尽管如此,我们的方法仍然受到不准确的 2D 检测结果的限制,例如缺失和嘈杂的关键点。通过应用更好的 2D 检测器可以缓解这种情况,但对输入噪声的分布进行建模也是一种可行且有价值的探索。致谢。这项工作得到了国家自然科学基金 62106177 和 61773272 的资助。