论文翻译:A Spatio-temporal Transformer for 3D Human Motion Prediction 用于3D人体运动预测的时空Transformer

2020.4 arxiv 

原文链接:

https://arxiv.org/abs/2004.08692

摘要

我们提出了一个用于3D人体运动生成式建模任务的新颖的Transfomer结构。之前的工作主要依赖RNN模型,它考虑更短的预测视野,很快地达到一个静止且不太合理的状态。最近地研究表明在频率域隐式的时间表征对于在一个预先定义的视野里做预测也是有效的。我们的关注点在于自回归地学习时空表征,因而在长期和短期上都能生成合理的动作。提出的模型学习骨骼点的高维嵌入以及学习如何通过解耦的时间和空间自注意力机制组成一个时间相关的姿态。我们的双自注意力概念允许模型直接获取当前和过去的信息,并显式地捕捉结构和时序依赖。我们经验性地表明这样能有效学习潜在的动作动态并在自回归模型中减少随时间的错误累积。我们的模型能做出准确的短期预测并生成合理的长期动作。

1、介绍

3D人体动作建模通常被公式化为给定一段过去的视野预测未来动作。人类可以毫不费力地预测复杂的动作因为我们有强大的结构和时序先验知识。从深度学习的角度来看这个问题可以被视为一个生成式建模任务:网络学习合成一系列人体动作,其中模型以一个种子序列作为条件。这个任务要求学习自然关节点的姿态先验和潜在的动态信息来生成合理的动作预测。因为这些因素非常的隐性并且纠缠在一起,为这个任务引入归纳偏置和定制结构对于建模3D人体运动数据是非常有必要的。

给定人体运动的时序属性,RNN是最流行的选择并不令人惊讶。RNN通过以隐藏状态传播信息来建模短期和长期依赖。序列-序列框架式的CNN也被提出。这些方法关注于以一种自回归的方式建模问题的时序方面。相反,向量化的姿态在每一个时间步以输入被传入,空间依赖被认为隐式地学到了。然而,在架构层面考虑骨架结构被其他文献表明是有效的归纳偏置。

由于自回归的方法将预测分解为逐步的条件基于先前的预测,这些模型倾向于随时间累积错误并最终预测将坍塌为不合理的姿态。这个问题可以和exposure bias问题联系起来,它是由于数据和模型分布的不一致性导致。先前的工作应用了多种策略来解决这个问题,比如在训练是使用模型预测,对输入使用噪声或者使用对抗损失。

最近的工作建模3D人体运动的时序方面通过用离散余弦变换(DCT)编码每个关节点的轨迹。无论是观察帧还是预测未来帧都被表示为一系列DCT因子,他们被接着用来建模关节点与关节点之间的依赖。这种时序信息的隐式建模内在地缓解了自回归模型的失败情况。DCT看起来是一种有效的基于非学习的表征。

在我们这个工作中,我们提出了一种新颖的用于3D人体运动建模的结构,它试图显式地学习时空表征而不依赖于RNN隐藏状态的传播和固定的时空编码如DCT系数。我们的方法的动机来自最近Transformer模型在如NLP任务、音乐或图像任务上的成功。尽管普通的transformer是为1D序列设计的,带有自注意力机制,我们主义到3D运动预测的任务内在是时空维度的,于是我们提出了一种新颖的表征来解耦时间和空间维度。

提出的时空注意力机制被训练来从一个已知序列中识别有用信息来构建下一个输出姿态。对于每一个关节点我们定义同一个关节点在过去时间上的时序attention,以及在同一个时间步上与其他关节点的空间attention(图1)。空间注意力块从当前时间步的关节点特征中提取信息,而时间注意力块关注从同一个关节点的先前时间步上提取信息。然后通过加权求和当前关节点信息和之前时间步信息来做出预测。

我们的模型学会从每个关节点构建时序连贯的姿态,通过从考虑从数据中学到的时间和空间表征。这个序列上的双重自注意力允许模型直接获取过去信息并因此显式地捕捉依赖,缓解随时间的错误累积。

它也使得模型可解释因为注意力权重指示了导致预测的提供有用信息的序列部分。我们的实验表明简单的1D自注意力的应用依然受到姿态坍塌的问题,然而我们提出的ST-Transformer模型能在短期上表现最好并且生成可信的长期预测(20s以上)。

2、相关工作

在不同维度上分解注意力机制在其他领域也被证明很有效。在文献18中,注意力被分别用在了图像的高和宽维度用来语义分割。文献33提出了一个类似的模型用来基于骨骼点的动作识别其中注意力先后被用于关节点,然后时间维度。文献14引入了轴注意力并行地在不同维度上运用自注意力以减少计算复杂度。我们的工作在概念上很相近但在任务领域有主要不同。在剩下的部分中,我们总结了3D运动建模的相关工作。

循环模型 RNN是3D运动建模任务的主要架构。文献11提出了编码器-循环-解码器(ERD)模型其中一个LSTM室在隐空间操作。Jain等人用RNN作为节点构建了一个类似骨骼的st-graph。Aksan等人将一个RNN结构的稠密输出层替换为一个结构化的预测层根据骨骼链。作者进一步为这个运动预测任务引入了一个大规模的人体运动数据集AMASS。错误累积问题通常用加入dropout或在训练时加入高斯噪声解决。Ghosh等人更显式训练了一个额外的去噪自编码器用来微调带噪声的RNN预测。

Martinez等人引入了一个序列-序列架构,在解码器中带有一个从输入到输出的跳跃连接来缓解种子序列和预测序列之间的转化问题。他们也提出了用预测训练模型来缓解exposure bias问题。类似地,Pavllo等人提议使用teacher-forcing比例来逐渐将模型暴露在它自己的预测上。在文献8中,seq2seq框架被修改来显式地建模不同时间尺度使用一个层次结构的RNN。Gui等人提出了一个测地线损失和对抗训练。Wang等人将似然目标替换为一个政策梯度方法通过模仿学习。Zhou等人提出的acRNN使用了一个增强条件模式,它允许长期运动合成。然而他们的模型是在特定的运动种类上训练的,而我们这篇工作提出了一个包含多种运动类型的单个模型。

尽管使用频率域的先验和目标函数可以提高短期准确率,RNN架构内在的问题依然存在。保留长期依赖是一个问题由于要在固定尺寸的隐藏状态中总和全部历史。受启发于NLP领域的类似观察,我们引入了一个时空自注意力机制来缓解这个问题。这样做我们让网络显式地从过去帧中推理而不需要将过去压缩到一个单个隐藏向量中。

非循环模型 Bütepage等人在一个运动序列的滑动窗口上使用了一个稠密层。在文献15、16中,卷积模型被引入来用于运动合成,以轨迹为条件。最近,Hernandez等人提出了将运动预测当作图片修复任务并使用一个带有对抗损失的卷积模型。关节点被表示为3D位置,通常要求辅助损失如骨骼长度并且约束关节点以保证解剖结构的一致性。Li等人在序列-序列框架中使用CNN而不是RNN来提高长期依赖。类似地,Kaufmann等人为3D运动填充任务提出了一个卷积自编码器来填充给定序列的大间隙。

隐式时间模型 Mao等人提出了通过离散余弦变换因子来表征序列并训练一个图卷积网络来学习关节点之间的依赖。因为GCN在姿态的时间窗口上操作并一次性产生整个输出,预测被限定在一个预定义的长度上。在随后的工作中,DCT因子被替代为以重叠滑动窗口的方式从更短的子序列中提取,它随后通过一个1D注意力块聚合。类似地,Cai等人在从种子序列中提取的DCT因子上利用了Transformer结构,然后根据骨骼树逐步做出关节点预测。

我们的模型和这些方法相关,但在三个方面上有所不同。第一,DCT要求窗口输入并一次性生成整个输出。这限制了任意长度序列多样的全生成式建模。相反,我们致力于直接从数据中学习时空表征。其次,我们采用了一种全自回归的方法并显式地建模了时间依赖通过利用人体运动的递归特性。第三,时间和空间建模被插入到我们的设计中,然而在之前的工作中时间信息被首先通过DCT建模并通过attention机制聚合,然后空间结构被通过一个GCN或Transformer捕捉。相反,我们的模型堆叠了几个计算块,每一个都聚合了空间和时间信息并被传递给后续的层以一种消息传递方式。

总而言之,现有的3D运动建模工作引入了正则化,结构先验,频率变或辅助和对抗的损失项来解决潜在结构内在的问题。我们表明自注意力的概念本身在学习运动动态中是很有效的并且允许非常有效且易训练的多功能机制的设计。

3、方法

我们现在详细解释所提出的时空Transformer的结构。概览图请看图2。我们的方法使用了Transfomer的构建块,但又两个主要不同:(1)解耦的时空自注意力机制(2)全自回归模型。

3.1 问题公式化

一个运动样本可以被表示为一个序列X={x1,...,xT},其中帧xt={j1t,...,JNt}表示在时间步t的姿态,一个关节点jnt∈RM。每个关节点j都是一个M维的向量,其中M由姿态的参数化方法决定,例如3D位置、旋转矩阵、轴角和四元数。我们使用旋转矩阵表征,也就是M=9。跟随一个预定义的顺序,一个序列样本X可以被写为大小为NM×T的矩阵,其中M行的块表示时间步t第i个关节点的配置,也就是XMi:M(i+1),t=jit。

在我们的记号中,下标表示时间步。我们用上标中的n元组依次表示关节点索引、层索引和可选的注意力头索引。例如,W(n,I)表示第n个关节点的输入的权重矩阵。注意投影矩阵W和偏置矩阵b是可训练的。上标n表示它只被关节点n使用。

3.2 时空Transformer

关节点嵌入。我们首先通过一个单个线性层将所有关节点映射到一个D维空间,也即e(n)t=W(n,E)j(n)t+b(n,E)。注意权重W(n,E)∈RD×M,偏置b(n,E)∈RD是每个关节点n一个的。根据文献35,为了注入顺序的标记我们往关节点嵌入中加入了正弦位置编码,据报道在插值更长的序列中是有帮助的。在dropout之后,关节点嵌入被送入一个L个注意力块的堆叠中,其中我们应用了一个并行的时空注意力来更新嵌入。

时间注意力。在时间注意力块中,每个关节点的嵌入通过使用相同关节点的过去帧来更新,也就是对每个关节点n∈{1..N},我们计算一个时间总和E(n)=[e(n)1,...,e(n)T]∈RT×D。

我们使用了文献35提出的缩放的点积注意力,它要求查询Q、键K和值V表征。直觉上,值对应一系列过去的表征,由键索引。对于感兴趣的关节点,我们将它的查询表征与所有键进行比较,通过点积相似度。如果查询和键是相似的(即有较高的注意力权重),那相应的值被认为是相关的。注意力操作产生一个值V的加权和:Attn(Q,K,V,M)=σ(QK转置/根号D+M)V = AV。其中掩膜M阻止从未来步的信息泄露,σ既可以是softmax函数,也可以是所有注意力分数的简单归一化。对于时间注意力机制,我们将矩阵A表示为Abar∈RT×T。它包含时间注意力权重,其中第i行表示多少注意力被分给了序列中的其他帧。

Q、K、V矩阵式输入嵌入E(n)=[e(n)1,...,e(n)T]转置∈RT×D的投影。根据35,我们使用一个多头自注意力MHA机制来将一个D维表征映射到一个子空间,被不同的注意力头i∈{1..H}计算:

Q(n,i) = E(n)W(n,Q,i),Q(n,i)∈RT×F

K(n,i) = E(n)W(n,K,i),K(n,i)∈RT×F

V(n,i) = E(n)W(n,V,i),V(n,i)∈RT×F

其中我们将F设置维F=D/H。使用多头允许模型从不同的时间步集合来获取信息整合到一个单个嵌入中。例如,有4个头的MHA的每个头都输出64维表征中的一个16维小桶。因此,不同的注意力头能够获取不同的组件。然后结果被拼接并使用一个权重矩阵W(n,O)属于RHF×D映射回表征空间。

headi = Attn(Q(n,i),K(n,i),V(n,i),M)

E(n) = Concat(head1,...,headH)W(n,O)

空间注意力。在普通的Transformer中,attention块式在整个输入向量xt上操作的,元素之间的关系被隐式地捕捉。我们引入了一个额外的空间注意力块来从数据中显式地学习动态和关节点之间的依赖。空间注意力机制考虑同一时间步的所有关节点。更多的是,我们计算key和value的投影矩阵式被所有关节点共享的。因为我们致力于识别最相关的关节点,我们将他们投影到相同的嵌入空间并与感兴趣关节点比较。

对于一个给定的姿态嵌入Et=[et(1),...,e(N)t]转置∈RN×D,关节点的空间总和E(n)t通过多头注意力被计算为其他所有关节点的一个函数:

Q(i)t = [(W(1,Q,i))转置e(1)t,...,(W(N,Q,i))转置e(N)t]转置

K(i)t = EtW(K,i), V(i)t = EtW(V,i)

headi = Attn(Q(i)t,K(i)t,V(i)t,0) = AV(i)t

E(n)t = Concat(head1,...,headH)W(O)

其中Q(i)t∈RN×S,K(i)t属于RN×S,V(i)t属于RN×S,S=F=D/H,headi∈RN×S,并且W(O)∈RHS×D。空间注意力A∈RN×N表示一个关节点i花了多少注意力在其他关节点j上。因为它在单个时间步上在所有关节点上迭代,我们不再需要掩膜。

聚合。时间和空间注意力块并行地运行计算出总和E、E‘。他们被相加并传入一个两层地逐点前馈网络中,后跟一个dropout和layer normalization。我们堆叠L=8个这样地注意力层来连续地更新关节点嵌入,并依次修正姿态预测。

关节点预测。最终,关节点预测j(n)t+1通过将对应地L层注意力层的D维嵌入e(n)t投影回M维关节点角度空间得到。类似于文献27,我们在预测和先前的姿态间引用了一个残差连接。

3.3 训练和推理

我们训练我们的模型通过预测对于seed和target序列的下一步(模型输入是x1~xT,输出是x2~xT+1,每一个时刻t都是预测下一个时刻t+1,masked attention。)我们直接使用每个关节点旋转矩阵的l2距离:【L2损失公式】

在测试时,我们以一种自回归的方式计算预测(测试时auto-regressive逐帧预测)。也就是说,给定一个姿态序列{x1,...,xT},我们获得预测xT+1。由于存储限制,我们在姿态的滑动窗口上使用时间注意力,我们将种子序列的长度设置为窗口长度。换句话说,为了产生xT+2我们以序列{x2,...,xT+1}作为条件。

4、实验

我们在AMASS和H3.6M数据集上评估ST-Transformer模型。在4.1节跟随了标准的短期预测协议并为长期预测采用了基于分布的评估标准。我们注意到两个基准都关注在建模3D关节点角度而不像之前工作基于位置的基准。我们认为建模人体姿态的3D位置表征更容易错误因为模型可以自由地违背骨架配置。相反,关节点角度表征隐式地保留了骨架结构,这在很多下游任务中都很重要。

4.2和4.4节展示了定性的结果和注意力权重,因此提供了模型如何生成预测的洞察。我们在4.3节通过消融研究验证了设计选择。我们运行了我们的模型和基线模型在不同种的关节点角度表征包括旋转矩阵、四元数和角轴,并汇报了最好的结果。我们模型和基线的实现细节在附录里提供。

4.1 定量评估

AMASS 我们跟随Aksan等人并在大规模运动数据集AMASS上评估了我们的模型。表1总结了最多400ms的结果用成对的角和位置指标(指标好像是MSE?)。对于更长的时间视野,直接通过MSE和gt比较会变得很有问题,尤其对于自回归的模型。因此,在标准的指标之余,我们通过使用互补的在频率域的指标进行更远的分析,允许最多15s(图4)。

在短期评估中,我们将我们的ST-Transformer与平凡Transformer、之前报道的基于RNN的结构和两个基于DCT的结构进行了比较。我们不能和文献6比较因为没有公开实现。平凡的Transformer也采用了类似我们的自回归方法,但是是在姿态向量上做1D注意力(时间上自注意力)。另外,我们包含了我们模型没有使用softmax在attention中的变种的结果,因为softmax可能导致梯度不稳定性。相反,我们用所有注意力分数之和做归一化。我们的ST-Transformer在所有指标上均达到sota,而LTD-Attention在400ms上具有竞争力。

长期 我们的模型是全生成式的,所以尽管它保持了局部的一致性,全局的位置可能在自然变化下偏离真值。因此,我们提出使用在功率谱(PS)空间基于分布的指标而不是直接与真值帧进行比较。我们报道了两个指标:(1)PS KLD,它用来通过KL散度衡量预测分布和测试分布的不一致性(2)PS 熵 捕捉在功率谱中预测分布的熵。后者衡量预测的多样性如何。模型坍塌到一个静态的姿态预测会有很低的熵值。然而,PS熵会被随机预测欺骗,因此它应该和PS KLD联合起来解释,其中只有一系列和真实数据样本很相似的预测才能达到较低的分数。

在图4中,我们将ST-Transformer、普通Transformer、RNN-SPL和带DCT表征的LTD-Attention进行比较,在这些PS指标熵对最多15s的预测。为了使用LTD-Attention生成长预测,我们在它自己的预测上用一种滑动窗口方式自回归的运行了它。来自训练和测试样本的参考值(虚线,紫色)是在随机提取的1s窗口(60帧)上计算的。类似地,我们计算了相对应模型的预测上的统计数据通过移动一个1s的窗口。因此,我们将预测的每一秒和真实的1s片段进行比较。正如所期望的那样,预测数据确实偏离了真实值统计数据随着预测视野增加。然而,我们的模型比其他任何基线都更接近真实数据统计。这表明我们的模型确实生成了合理的姿势,在没有记忆准确的序列情况下相似于数据分布。

图4中的PS熵曲线表明ST-Transformer比基线有更高的熵,因此表明它能缓解坍塌到一个静态姿势的能力。它更进一步表明了没有基线能像ST-Transformer一样如此大地缓解这个问题。这个不同用视野长度更加被强调了。这些观察被附录和图6里的可视化更加证实了,其中我们清楚地看到基线模型产生地走路动作比ST-Transformer的输出更早逐步淘汰。

H3.6M 传统地,运动预测在H3.6M上进行了基准。表2在这种设置下比较了我们的模型,其中我们是非常有竞争力的,并且经常达到sota。H3.6M大概比AMASS小14倍并且它地测试划分只包含少部分序列,这被报道导致了高方差。更多的是,在表2很明显,提升是很微小的,并且最近的工作似乎都对大多数动作收敛到相同的错误。由于这些原因,我们认为由文献2引入的AMASS基准携带更多的权重。这些观察通过我们在附录视频和图6中的可视化被附加证实,其中我们清楚地看到通过基线产生地走路运动更早被逐步淘汰相较于我们的ST-Transformer输出。

讨论 很明显时空解耦的attention确实是很有益处的与普通的Transformer相比的话。在所有的设置中我们的ST-Transformer都超过了普通的Transformer。与基于RNN的自回归基线相比,如RNN-SPL,Seq2Seq或AGED,我们的模型在短期视野中做出更准确的预测同时通过缓解错误累积生成合理的长期预测。

基于DCT的基线是最有竞争力的,并且在概念上与我们的工作更相关。我们认为这个任务更有利于基于DCT的表征因为时序窗口是一次性编码和解码的。换句话说,整个预测视野是一次性预测出来的而不是我们这样逐帧预测。因此,我们注意到我们的模型在短期预测视野上有强的表现,就在AMASS和H3.6M与gt的两两比较上来说。我们模型相对于gt的错误似乎随着更长的视野在增加,这应该是由于自回归模型导致的错误累积。然而,它仍然非常有竞争力,并且图4中基于分布的指标也强调了我们的模型在统计上更接近真实数据,在非常长的预测上。

4.2 定性评估

因此,我们评估了最多20s的生成能力。我们喂给模型特定的2s运动序列,并自回归式地在训练视野以外预测(如400ms或1s)。

我们将我们的模型定性地和普通Transformer、RNN-SPL和LTD-Attention在一个走路样本进行了比较,如图6。使用RNN-SPL任何变化都在5s内快速消失。普通地Tranformer在更长的时间上没有收敛到一个静态姿势,这表明注意力机制相比循环网络的优势。然而,它仍然在15s左右坍塌了,而我们的ST-Transformer在整个20s都保持了走路的运动。还有LTD-Attention模型生成比RNN-SPL更长的走路运动,但仍在10s之前收敛了。更多的样本可以在附录和视频里找到。

尽管我们的模型对于长视野在周期性运动上表现良好,预测视野被限制在几秒内对于非周期的运动类型因为运动周期已经完成了。这仍然大大超出了之前报道的视野。还有,这在预期之外因为模型不太可能被暴露在转化模式下因为它是在相当短的2s窗口上训练的。

4.3 消融

2D注意力 为了更清楚地解压我们的贡献,我们实现并与一个2D transformer结构进行了比较。这里,每个关节点都关注所有帧的所有其他关节点。这个attention的复杂度变成了O(N×T)。有了这个设计,空间要求剧烈增加。因此,为了训练,我们减小了模型复杂度或减小了T或batch size。我们发现的最好的配置的表现总结在表6中。它显然落后于ST-Transformer。我们的方法将复杂度从O(N×T)降到了O(N+T),允许对更长的历史进行关注并能使用更大的模型。

层数 我们用不同的注意力层数L训练我们的模型。图7显示在AMASS上有竞争力的表现是用3层达到的。随着层数增加,通过我们的模型学到的表征调得更好。层数可以被认为是更新可用表征的消息传递步骤数。

4.4 注意力长什么样?

我们模型潜在的注意力机制为我们模型的预测提供了洞见。图3可视化了从AMASS序列拿来的注意力权重。这些权重是用来预测第一帧给定120帧的种子序列。在我们的可视化中,我们使用第一层因为它直接使用了初始的关节点嵌入。在更高层中,信息已经被聚合因此注意力被分散了。

首先,我们观察到在不同头之间有一些列丰富的注意力模式,通过从不同源头汇聚信息来丰富表征。其次,时间注意力权重揭示了模型可以在长视野上做注意力。尽管有些头关注在最近的帧上,一些看了最开始的帧,这对于RNN来说是很困难的。最后,在空间attention中,我们观察到关节点依赖不仅在骨骼链中,也横跨了骨架的左右两部分。例如,当预测左膝盖关节点时,模型关注了脊椎、左领、右髋、膝和领关节。类似地,对于右肘,最有信息量地关节点是脊椎、左领、髋关节和膝关节。为了看到注意力权重如何随时间变化,请看附录和视频中的图7。

5、总结

我们引入了一个新颖的时空transformer(ST-Transformer)网络用来3D人体运动的生成式建模。我们提出的结构显式地学习关节点内和关节点之间的依赖通过解耦的时间和空间注意力块。我们表明自注意力概念在学习表征用来长短期运动预测时相比基于DCT的运动表征非常有效。另外,它缓解了在自回归架构中的长期依赖问题并能够合成20s以上的运动序列,给定如locomotion的周期性运动类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值