提升和上采样:基于提升变换器的三维人体姿态估计
IEEE/CVF WACV 2023
源码:https://github.com/ goldbricklemon/uplift-upsample-3dhpe
视频中的单目3D人体姿态估计的最新技术由2D到3D姿态提升的范例主导。虽然提升方法本身是相当有效的,但真正的计算复杂度取决于每帧2D姿态估计。在本文中,我们提出了一种基于变换器的姿势提升方案,可以操作时间稀疏的2D姿势序列,但仍然产生时间密集的3D姿势估计。我们展示了如何掩蔽令牌建模可以用于Transformer块内的时间上采样。这允许解耦输入2D姿态的采样率和视频的目标帧速率,并且大大降低了总计算复杂度。此外,我们探索了大型运动捕捉档案的预训练选项,这在很大程度上被忽视了。我们在两个流行的基准数据集上评估我们的方法:人3.6M和MPIINF-3DHP。与45.0毫米和46.9毫米的MPJPE,分别,我们提出的方法可以与国家的最先进的竞争,同时减少推理时间的12倍。这在固定和移动的应用中实现了可变消费者硬件的实时吞吐量。
经由姿态提升的3D HPE的总复杂度通常由初始2D姿态估计过程主导(参见图1)。这禁止了需要在计算和功率受限的消费者硬件上实现实时吞吐量的应用。
Human3.6M上不同姿态提升方法的空间精度(MPJPE)和每帧计算复杂度(FLOPs)(越低越好)。测量的FLOP包括必要的2D姿态估计,这里使用CPN [6]。+PT表示对运动捕捉数据的预训练。
在本文中,我们的主要目标是通过将2D姿态估计限制在视频帧的一小部分来降低整体复杂度。2D姿态序列上的现有抬升模型总是具有相同的输入和输出姿态速率[40,4,58]。相比之下,我们提出了一个基于Transformerbased架构,可以在时间上稀疏的输入构成,但仍然生成密集的3D姿态序列在目标帧速率。受Transformer架构中的掩码令牌建模的启发[9,46,29,44],我们提出了一种令牌化机制,允许在我们的提升Transformer中对时间序列表示进行上采样。输入序列中缺失的2D姿态估计被位置感知上采样令牌替换。这些令牌通过在整个序列上的自我关注被联合地转换成针对其相应视频帧的3D姿态估计(参见图2)。这大大降低了计算复杂度,使我们的模型更灵活的有效输入帧速率在潜在的应用。事实上,2D姿态的采样率甚至可以基于预期或观察到的运动速度来适配。由于训练只需要注释的3D姿势序列,但没有视频记录,我们还探索了大规模运动捕捉档案的预训练。我们评估它的好处,我们和现有的Transformer架构,并显示它如何可以对抗稀疏输入序列的不利影响。
总的来说,我们的贡献是:
(1)我们提出了联合提升和上采样Transformer架构,其可以从2D姿态的稀疏序列生成时间密集的3D姿态预测;
(2)评估Transformer预训练对运动捕捉数据的影响;
(3)我们表明,我们的方法导致更平滑和更精确的3D姿态估计比直接插值稀疏输出序列从竞争的方法。同时,它将推理时间减少了至少12倍,并在推理期间支持不同的输入帧速率。据我们所知,这是第一篇明确解决视频中有效的2D到3D姿势提升的论文,其中包括稀疏到密集的预测方案以及对大规模运动捕捉数据的直接预训练。
我们提取2D构成在一个固定的关键帧间隔,并将它们转换成姿势令牌。在使用可学习的上采样令牌填充此序列后,我们的Transformer网络以目标帧速率生成密集的3D姿势预测。在推理过程中,我们只使用中心帧的预测,整个视频以滑动窗口的方式处理。
我们的方法遵循常见的2D到3D姿态提升方法:给定具有帧索引S = {1,.。。,|V|},我们使用现成的2D HPE模型来获得2D输入姿势{pt}t∈S.1每个姿势pt ∈ Rx 2由J个指定的人体关节的归一化2D图像坐标2描述。我们丢弃检测分数或2D HPE模型可能提供的任何其他遮挡信息。目标是恢复实际的3D姿态Pgt t ∈ RJ×3,即每个关节的度量相机坐标,用于每个单个视频帧。我们的主要焦点在于仅使用等距关键帧Sin = {t}处的输入2D姿态的子集|t mod sin = 0}t∈S,输入步长为sin。同时,我们希望以更高的速率生成3D姿态预测,即在帧索引Sout = {t| t mod sout = 0}t∈S.为了简单起见,我们假设sin = k · sout,k ∈ N,使得Sin Sout。理想情况下,在sout = 1的情况下,我们可以以全帧速率预测密集的3D姿势。图2描绘了具有Sin = {1,5,9,.。。}和Sout = {1,2,3,.。。}.
现有的提升方法具有相同的2D/3D姿态的输入/输出采样率[40,4,58]。每个模型针对固定的输入速率进行优化。当在步幅sin > 1的子采样输入姿势上训练时,模型只能预测相等输出步幅sout = sin的3D姿势。为了以全帧速率获得预测,我们可以在相邻关键帧处的3D姿势之间使用双线性插值。这种幼稚的方法有两个缺点:首先,每个模型仍然针对单个(现在降低的)帧速率进行优化。这缺乏关于具有不同输入帧速率或可变计算资源的应用的灵活性。其次,使用较大的sin值将使全帧速率下的预测越来越差。简单的双线性插值不能重建两个关键帧之间的实际人体运动。接下来,我们描述了我们提出的架构,可以绕过这两个问题的解耦sin和sout。
我们的解决方案遵循了使用Transformer网络提升2D位姿序列的最新趋势[58]。变形金刚的自我注意性质已被证明非常适合利用单个人类姿势的各个关节之间的关系[27]以及在时间上的长序列姿势[25,57]。我们的提升网络的主要设计标准是一个相对较深的架构,可以操作可变稀疏的输入序列。它必须同时处理姿势提升和时间上采样。同时,该模型应保持训练和推理的有效性。与大多数时间姿态提升方法相似,我们的模型操作于固定长度N = 2n + 1,n ∈ N的二维姿态序列。每个序列覆盖帧索引SN = {t-n,...,t + n}围绕输出帧t ∈ Sout。由于我们基于Transformer的模型聚合了整个序列的信息,因此其时间感受野[40]等于N。然而,由于关键帧子采样,我们模型的实际输入仅由关键帧2D姿势p组成,其中:
因此,有效输入序列长度减少到Nin:|p| ≤ N−1/sin + 1。在训练期间,该模型为时间感受野内的所有输出帧生成中间3D姿态预测P i ∈ RJ×3
另外,中心帧t的3D姿态被进一步细化到其最终预测Pt。在评估期间,仅使用该中心预测。我们利用三个不同的Transformer子网络,从最近的文献中,结合起来,适合我们的主要设计目标。图3提供了我们的架构的概述。
我们的架构的实例化,其中N = 9,输入步幅sin = 4并且输出步幅sout = 1。空间和时间Transformer使用可学习的位置嵌入(PE)和具有多头自我注意力(MHA)的香草转换器块。步幅Transformer采用步幅为rk且核大小为3的步幅卷积。PT表示姿势令牌~ xi,UT是可学习的上采样令牌。
第一个子网络在所有输入姿势之间共享,并单独对每个姿势进行操作。它使用跨单个关节的自我注意力来形成后续子网络的强姿态表示。每个输入姿态pi首先被线性映射到初始的逐关节嵌入xi ∈ RJ×djoint。在添加位置嵌入以编码每个关节的类型之后,我们使用Kjoint空间Transformer块[58],其对关节嵌入序列进行操作。输出是jointware per-pose嵌入x i ∈ RJ×djoint。它随后被压缩成1D编码〜 xi ∈ Rdtemp。我们将所有的x ~ i作为我们的初始姿势令牌
第二个子网络使用vanilla Transformer块,在姿势标记的时间序列上具有自我注意力。该构件块是最近基于变压器的提升方法中的准标准[58,25,44]。我们扩展了其通常的目标,直接三维姿态重建的关键帧姿态内的输入序列。我们希望为时间感受野内的所有输出帧生成平滑且时间一致的3D姿势。我们提出了一个简单的修改,使同时提升和上采样的时间Transformer块。首先,我们将来自空间Transformer的关键帧姿势令牌~ xi重组为时间序列。然后,我们将该序列填充到目标长度Nout:|P|.为此,我们采用Transformers [29,44]的掩码令牌建模,并引入上采样令牌u ∈ Rdtemp。它是一个可学习的参数,在训练期间随机初始化并优化。此标记充当所有非关键帧索引处的占位符。
图2描绘了该间隙填充过程。填充令牌序列y = {yi}的元素|i ∈ Sout ∩ SN}则定义为
与[44]相反,令牌u不仅编码输入重构的文本前任务,而且编码输出空间中的上采样序列的重构。第二位置嵌入特别地确保上采样令牌的每个实例化以其相对帧索引为条件。我们将令牌序列馈送到一堆Ktemp vanilla Transformer块中。我们将第一个Transformer块内的任何注意力限制在姿势令牌上,因为初始上采样令牌不携带输入相关信息。这通过仅从姿势令牌计算自我注意力键和值[50]来实现。最后一个Transformer块之后的输出y ∈ RNout×dtemp对所有输出帧的提升和上采样的3D姿态进行编码。我们使用单个线性映射来获得中间3D姿态预测P。
vanilla Transformer块的一个主要缺点是二次复杂度w.r. t。序列长度。以全时间分辨率堆叠大量普通Transformer块并不符合我们的整体高效模型的目标。最终,我们的模型是设计用于一个对称的N到1预测方案评估。这种操作模式通常提供上级的结果,因为对中心序列索引的预测是基于等量的过去和未来信息[58,44]。为了进一步细化专门针对中心索引t的姿态预测,不必保持长度Nout的完整序列表示。因此,我们的第三子网络递增地减少先前的序列表示,直到仅保留中央序列索引的细化输出。这允许我们添加额外的时间自我注意块,但保持整体复杂性可行。我们利用Kstride strided Transformer块[25],其使用strided卷积而不是简单的MLP。细节如图3所示。每个块k将序列长度减小步长因子rk。我们选择所有的rk,使得最后一个块之后的输出z是z ∈ R1×dtemp。单个线性映射生成用于中心序列索引的最终3D姿态预测Pt ∈ Rx3。
整个架构都是通过两个独立的目标进行训练的。我们使用中心帧损失Lcenter来最小化中心目标帧t的精细3D姿态预测的根相对平均每关节位置误差(MPJPE)[19]:
其中骨盆通常用作指定的根关节R。另外,我们针对整个上采样的序列定义中间3D姿态预测P i上的MPJPE序列损失Lseq:
这种形式的全序列监督鼓励时间稳定的预测[25,57],这在我们设置稀疏输入序列时尤其重要。总损失是加权和α1Lseq + α2Lcenter。
我们优化了模型,用于固定的输出步幅sout,但同时用于多个输入步幅sin。因此,它支持不同的输入帧速率,具体取决于应用程序和可用硬件。在训练期间,我们以全帧速率利用3D姿态注释,并在每个帧索引t ∈ S周围生成所有可能的关键帧序列。为了推断,只有在第一视频帧开始的关键帧姿态是可用的,并且我们在每个输出帧t ∈ Sout应用我们的模型。在sout > 1的情况下,经由双线性内插获得全帧速率下的3D姿态预测。我们总是在全视频帧速率下进行评估,以进行公平比较。
为了进一步释放Transformer架构在2D到3D姿势提升中的潜力,我们还探索了预训练对大规模动作捕捉数据的影响。在这项工作中,我们利用AMASS [35]元数据集。它是各种现有的运动捕捉数据集的集合,具有超过60小时的人类运动。原始运动捕获数据已经被重新定向以生成紧凑SMPL参数化中的捕获人的详细3D网格模型[32]。我们将网格减少到J关节的目标集。每个关节的3D位置表示为一小组网格顶点的加权线性组合。混合权重可以直接在数据上优化[22],也可以通过少量手工注释创建。最后,我们将三维姿态序列投影到二维空间,随机选择的虚拟摄像机。为了简单起见,我们使用来自最终目标数据集的相同相机参数。所得的2D-3D姿态序列对然后可以直接用于训练。注意,2D姿态是完美投影,因此没有误差。我们的模型将在随后的微调期间调整到2D姿态估计模型的误差情况