3D人体运动估计
3D Human Motion Estimation via Motion Compression and Refinement
Introduction
MEVA: Motion Estimation via Variational Autoencoder,通过变分自动编码器进行运动估计,使用基于自动编码器的运动压缩和通过运动细化学习的残差表示,将人体运动的时间序列分解为平滑的运动表示。
这种 two-step encoding of human motion 分两个阶段捕获人体运动:捕获粗略整体运动,添加回特定于人的运动细节的残差估计。
通过将推理过程分解为:(1)一般运动模型和(2)特定于人的运动模型,能获得更准确和平滑的估计。
MPJPE: Mean Per Joint Position Error
根据为视频每帧计算出来的相对关节位置衡量性能,对估计运动的时间平滑度的重视较少。
只惩罚空间错误,不考虑时间一致性,会导致整体运动不自然。
时间平滑度问题
大规模运动数据集和对抗性损失使得有方法提高姿势准确性和时间平滑度。
但仅在损失函数中使用先验知识,很难找到平滑度和准确性之间的平衡。
本文认为可以通过粗略运动和精细运动的明确分解来实现平滑度和准确性之间的平衡。
首先通过观察大量人体运动数据集来学习粗略运动模型。如果要压缩人体运动数据,它应该学习一个潜在子空间,其中的运动本质上是平滑和粗糙的。使用这个潜在空间作为回归目标,我们可以直接从输入视频中推断出粗略的人体运动。
生成最终的 3D 运动估计可以被视为一个细化步骤,将精细细节“添加回”到粗略运动序列中。
提出的方法:
- 首先使用 VAE(也称为VME) 通过数据压缩来估计粗略的人体姿势序列
- 然后获取 VME 的输出,并使用带有姿势回归器的图像证据来细化姿势估计,称为 Motion Refinement Regressor (MRR)
Related Works
从单个图像中恢复 3D 人体姿势和形状
使用弱监督方法,将 3D 人体拟合到 2D 关节位置、身体部位分割或密集像素对应。
缺乏时间信息,提取的运动往往不稳定。
从视频中恢复 3D 人体姿势和形状
使用时间信息辅助 3D 人体姿势估计,扩展单帧方法。
人体姿势和运动先验
使用预先记录的人体运动序列作为先验。以对抗性方式使用姿势或运动先验,利用损失函数中的先验知识。
人体运动表示
将人体运动压缩为紧凑的潜在表示,在人体运动生成、跨不同模态的人体运动生成和轨迹预测等任务中发挥重要作用。
Approach
MEVA 分三个步骤处理输入:
- 首先使用时空特征提取器 (STE) 提取相关的时间特征
- 然后通过变分运动估计器 (VME) 捕获整体粗略运动
- 最后使用运动残差回归器 (MRR) 以添加回精细运动细节。
问题的表述
运动估计目标是学习函数 $$ MEVA(V):V_T \rightarrow M_T \ V_T={I_t}^T_{t=1} \ M_T={\theta_t}^T_{t=1} $$
Spatio-Temporal Feature Extractor (STE)
使用 GRU 的时间特征提取器,将输入视频帧 \(I_1,I_2,I_3,...,I_T\) 编码为一系列时间相关特征 \(f_1', f_2',f_3',...,f_T'\)。
Variational Motion Estimator (VME)
Human Motion VAE
VAE 可以通过将每个数据点显式映射到潜在代码来有效捕获大量可能的数据模式,并通过在学习的潜在空间上施加高斯先验,相似运动的潜在代码将彼此接近。VAE 的潜在空间允许代码之间有更多重叠,从而增强潜在空间的平滑性。
可能的人体运动空间是高度相关且有限的,拥有平滑的潜在代码对于提高模型的泛化性至关重要。
目标是最大化对数似然 \(p_{\lambda}(x)\) 的证据下界: $$ L_{VAE}=E_{q_{\phi}}[\log p(x|z)]-KLD(q_{\phi}(z|x)||p_{\phi}(z)) \qquad (1) $$ \(x\) 是输入,\(z\) 是 latent code。
VAE 对人体运动进行编码:
- 编码器 \(E_{vae}\) 接收以 SMPL 姿态参数表示的 W 帧人体运动序列,\(x=M_W=[\theta_{w1},\theta_{w2},\theta_{w3},...] \in R^{W\times 144}\) 并输出 \(z\)。SMPL 姿态的单帧以关节旋转表示,由 \(24 \times 6=144\) 维输入产生。
- 解码器 \(D_{vae}\) 接收潜在代码 \(z\) 并重建运动 \(\hat{M}_W\)。
- \(E_{vae}\) 和 \(D_{vae}\) 都实现为 GRU。
基于 VAE 的高斯参数化,方程 (1) 的目标函数可以写成 $$ \mathcal{L}(x;\theta,\phi)=-\frac{1}{S}\overset{S}{\underset{j=1}{\sum}}||\tilde{x}-x||^2+\beta\cdot\frac{1}{S_z}\overset{S_z}{\underset{j=1}{\sum}}(1+2\log \sigma_j-\mu _j^2-\sigma_j^2) $$ \(S\) 是当前批次的样本数,\(S_z\) 是当前潜变量的维度,\(\beta\) 是权重参数。
一旦 VAE 被训练并收敛到理想的重建精度,解码器 \(D_{vae}\) 就会被冻结,以供后续使用。
推理过程中,给定一个 \(z \in R^{1 \times S_z}\),\(D_{vae}\) 可以将其解码回人体运动序列:\(M_W \in R^{w\times 144}\)。
Human Motion Data augmentation
VAE 需要泛化到看不见的人体运动序列并实现高重建精度,以确保学习到的潜在空间确实可以作为综合的人体运动子空间。
给定 SMPL 参数 \(M_T \in R^{T\times 144}\) 和帧速率 \(F_{amass}\),采用以下数据增强方案:
- Speeding up and slowing down
- Flipping left and right
- Random root rotation:随机根旋转采样有助于模型应对不同可能的坐标系选择。
Learning Smooth Motion from videos
使用 VAE 学习全面的人体运动子空间后,学习一个额外的编码器 \(E_{motion}\),直接从视频特征中提取粗略的运动序列,映射到与 \(E_{vae}\) 相同的潜在空间。
给定视频特征的输入序列 \(f_W=\{f_w\}^W_{w=1}\),\(E_{motion}\) 将输入特征压缩为 \(z\),\(z\) 将当前观察结果总结为粗略的人体运动序列。
使用预训练解码器 \(D_{vae}\) 强制 \(E{motion}\) 从预训练的运动子空间中进行采样。将 \(E_{motion}\) 的潜在空间限制到预先训练的人体运动子空间,提供了强大的人体运动先验。
Motion Residual Regressor (MRR)
使用 SMPL 回归器迭代地细化估计的姿势。回归器采用初始姿势和形状估计 \(\Theta_t\) 以及单帧的视觉特征 \(f_t\) 计算其估计 \(\Theta_t'\),进行 \(k\) 次迭代
在 MEVA 中,回归器使用 VME 计算的姿态进行初始化。
因此回归器的任务是对粗略估计进行小的修饰更改,添加回压缩步骤期间丢失的运动的精细细节。
VME 使用通用运动模型计算视频中的整体粗略运动,回归器联合细化运动和人体形状估计,相当于在每帧级别添加回特定于人的运动细节。
Training and Losses
-
首先对 motion VAE 进行预训练
-
然后 STE、VME、MRR 进行端到端联合训练
使用具有不同级别注释的视频(2D 关节位置、3D 关节位置、SMPL 参数),使用由 \(L_{2D}, L_{3D}, L_{SMPL}\) 组成的损失进行训练: $$ L_{meva}=L_{3D}+L_{2D}+L_{SMPL} $$
$$ L_{3D} = \overset{T}{\underset{t=1}{\sum}}||jp_t^{3d}-j\hat{p}^{3d}_t||_2 $$
$$ L_{2D} = \overset{T}{\underset{t=1}{\sum}}||jp_t^{2d}-j\hat{p}^{2d}_t||_2 $$
$$ L_{SMPL}=||\beta-\hat{\beta}||_2+\overset{T}{\underset{t=1}{\sum}}||\theta_t-\hat{\theta_t}||_2 $$
Experiments
Dataset
- AMASS,3DPW,MPI-INF-DPH,human 3.6M
- InstaVariety,PennAction
Evaluation Results and Analysis
Metrics
- MPJPE:每个关节的平均位置误差
- PA-MPJPE (MPJPE after Procrustes Alignment):用于测量预测的 3D 关节位置与地面真实 3D 关节位置之间的 3D 关节位置差异的 3D 关节位置
- ACC-ERR:加速度误差,测量每个关键点的预测和地面实况 3D 加速度之间的差异,充当估计运动序列的主要平滑度指标,
Generalization of Motion VAE
Ablation Experiments
Effect of data augmentation for training the motion VAE
Coarse motion v.s. fine motion retrieval
Effects of the pretrained Motion VAE
Conclusion
为了实现时间上平滑且准确的 3D 人体姿势估计,重要的是学习对一般人体运动的平滑度进行编码的压缩模型,同时学习可以捕获特定于人的运动的基于图像的回归模型。
本文的两阶段模型,确实可以产生平滑且准确的运动。