介绍
我们提出了一个新的基于Transformer
的3D人体姿势估计架构,称为Strided Transformer
,它可以简单有效地将一个长的2D姿势序列提升到一个单一的3D姿势。
为了减少序列冗余和计算成本,引入了Strided Transformer Encoder
(STE
)来逐步减少时间维度,并将长距离信息以分层的全局和局部方式聚合到姿势序列的单向量表示中。
设计了一个full-to-single
的监督方案,在全序列规模的训练中施加额外的时间平滑性约束,并进一步完善单一目标帧规模的估计。
方法
给定从视频中估计出的2D位置序列 P={p1,...pT} 我们旨在重建目标帧的三维关节位置 X∈RJ×3 ,其中 pt∈RJ×2 表示 t 帧处的2D关节位置,T 是视频帧的数量,J 是关节的数量。
该网络包含一个普通Transformer
编码器(VTE
),然后是一个跨步Transformer
编码器(STE
),VTE
首先被用来对长距离信息进行建模,并由全序列尺度进行监督,以强制实现时间上的平滑性,然后,本文提出的STE
聚合信息以产生一个目标姿势表示,并由单个目标帧的尺度监督以产生更准确的估计。
本文提出了一种逐步压缩隐藏状态的序列,在分层结构中对全局和局部信息进行建模的STE
。其每一层都由一个多头自我注意(MSA
)和一个卷积前馈网络(CFFN
)组成。
卷积前馈神经网络
给定 T 个序列与 Din 个通道的输入特征向量 Z∈RT×Din,去生成一个 (T~,Dout) 的特征,FFN
中FC
所进行的操作可以被表述为:
FCt,dout=i∑Dinwdout,i∗zt,i
如果考虑到1D卷积,核大小为 K,跨步因子为 S,那么CFFN
中的分层卷积可以计算为:
ConvS(t),cout(Z)=i∑Dink∑Kwdout,i,k∗zS(t−2K−1+k),i
这样一来,VTE
的FFN
中的全连接层就被分层卷积取代了。 修改后的VTE
被命名为Strided Transformer Encoder
(STE
),可以表示为:
Z^n−1=Zn−1+MSA(LN(Zn−1))
Z^n=Zn+MaxPool(Z^n−1)+CFFN(LN(Z^n−1))
其中 n∈[1,...,N] 是STE
的层序号
网络架构
Pose embedding
姿势嵌入首先将每一帧的J点的 (x,y) 坐标连接到标记 P′∈RT×(J⋅2),然后使用具有dm通道的1D卷积层将每个token
嵌入到高维特征 Z−0∈RT×dm,然后进行批量归一化、dropout
和ReLU
激活。
VTE
假设VTE由N1层组成,在VTE的第一层之前使用可学习的位置嵌入 E1∈RT×dm,可以表述如下:
Z10=Z0+E1
然后,给定嵌入特征z^0_1
,VTE
层可以表示为:
Z^1n−1=Z1n−1+MSA(LN(Z1n−1))
Z1n=Z^1n−1+FFN(LN(Z^1n−1))
它可以通过使用一个函数 VTE(⋅) 来表示VTE
层:
Z1n=VTE()Z1n−1
STE
它是建立在VTE
输出的基础上,使用 Z1N1∈RT×dm 作为输入,由于序列长度的不同,STE
的每一层都使用了可学习的位置嵌入E2∈RS(t)×dm,其分层因子为 S。那么,STE
层可以表示为:
Z2n=STE(Z2n−1+E2n)
回归头
最后,3D姿势预测的输出是 X~ 和 X,其中 X~∈RT×J×3 和 X∈RJ×3 分别是3D姿势序列的预测和目标帧的3D关节定位。
FUll-to-Single
预测
全序列尺度(Full sequence scale)
序列损失 Lf 被用来改进单帧预测,以实现序列的时间一致性。 这个损失保证了估计的三维位置序列 X^∈RT×J×3 与ground truth
三维连接序列 T∈RT×J×3 相吻合:
Lf=t=1∑Ti=1∑J∣∣Yit−X^it∣∣2
单目标帧尺度
在第二步中,对STE
的输出采用监督,然后是回归头,单帧损失用于完善单一目标帧尺度上的估计。 它使估计的三维姿势 X∈RJ×3 与目标地面真实三维关节注释 Y∈RJ×3 之间的距离最小:
Ls=i=1∑J∣∣Yi−Xi∣∣2
其中 Xi 和 Yi 分别代表目标帧的估计三维姿态和 ground truth
三维关节位置。
损失函数
在我们的实现中,模型在全序列尺度和单目标帧尺度上都受到监督。我们以端到端的方式训练整个网络,总损失:
L=λfLf+λsLs