HuMoR: 3D Human Motion Model for Robust Pose Estimation

Davis Rempe, Tolga Birdal, Aaron Hertzmann, Jimei Yang, Srinath Sridhar, Leonidas J. Guibas

Introduction

As humans, we are constantly moving in, interacting with, and manipulating the world around us. Thus, applications such as action recognition or holistic dynamic indoor scene understanding require accurate perception of 3D human pose, shape, motion, contacts, and interaction. Extensive previous work has focused on estimating 2D or 3D human pose , shape , and motion from videos. These are challenging problems due to the large space of articulations, body shape, and appearance variations. Even the best methods struggle to accurately capture a wide variety of motions from varying input modalities, producing noisy or overly-smoothed motions (especially at ground contact, i.e., footskate), and struggle with occlusions (e.g., walking behind a couch as in Fig. 1).

We focus on the problem of building a robust human motion model that can address these challenges. To date, most motion models directly represent sequences of likely poses — e.g., in PCA space or via future-predicting autoregressive processes . However, purely pose-based predictions either make modeling environment interactions and generalization beyond training poses difficult, or quickly diverge from the space of realistic motions. On the other hand, explicit physical dynamics models are resource intensive and require knowledge of unobservable physical quantities. While generative models potentially offer the required flexibility, building an expressive, generalizable and robust model for realistic 3D human motions remains an open problem.

To address this, we introduce a learned, autoregressive, generative model that captures the dynamics of 3D human motion, i.e., how pose changes over time. Rather than describing likely poses, the Human Motion Model for Robust Estimation (HuMoR) models a probability distribution of possible pose transitions, formulated as a conditional variational autoencoder . Though not explicitly physics-based, its components correspond to a physical model: the latent space can be interpreted as generalized forces, which are inputs to a dynamics model with numerical integration (the decoder). Moreover, ground contacts are explicitly predicted and used to constrain pose estimation at test time.

After training on the large AMASS motion capture dataset , we use HuMoR as a motion prior at test time for 3D human perception from noisy and partial observations across different input modalities such as RGB(-D) video and 2D or 3D joint sequences, as illustrated in Fig. 1 (left). In particular, we introduce a robust test-time optimization strategy which interacts with HuMoR to estimate the parameters of 3D motion, body shape, the ground plane, and contact points as shown in Fig. 1 (middle/right). This interaction happens in two ways: (i) by parameterizing the motion in the latent space of HuMoR, and (ii) using HuMoR priors in order to regularize the optimization towards the space of plausible motions.

Comprehensive evaluations reveal that our method surpasses the state-of-the-art on a variety of visual inputs in terms of accuracy and physical plausibility of motions under partial and severe occlusions. We further demonstrate that our motion model generalizes to diverse motions and body shapes on common generative tasks like sampling and future prediction. In a nutshell, our contributions are:

HuMoR, a generative 3D human motion prior modeled by a novel conditional VAE which enables expressive and general motion reconstruction and generation,

A subsequent robust test-time optimization approach that uses HuMoR as a strong motion prior jointly solving for pose, body shape, and ground plane / contacts,

The capability to operate on a variety of inputs, such as RGB(-D) video and 2D/3D joint position sequences, to yield accurate and plausible motions and contacts, exemplified through extensive evaluations.

Our work, more generally, suggests that neural nets for dynamics problems can benefit from architectures that model transitions, allowing control structures that emulate classical physical formulations.

Related Work

Much progress has been made on building methods to recover 3D joint locations or parameterized 3D pose and shape (i.e., SMPL ) from observations . We focus primarily on motion and shape estimation.

Deep learning approaches have shown success in regressing 3D shape and pose from a single image . This has led to developments in predicting motion (pose sequences) and shape directly from RGB video . Most recently, VIBE uses adversarial training to encourage plausible outputs from a conditional recurrent motion generator. MEVA maps a fixed-length image sequence to the latent space of a pre-trained motion autoencoder. These methods are fast and produce accurate root-relative joint positions for video, but motion is globally inconsistent and they struggle to generalize, e.g., under severe occlusions. Other works have addressed occlusions but only on static images . Our approach resolves difficult occlusions in video and other modalities by producing plausible and expressive motions with HuMoR.

Optimization-Based Estimation

One may directly optimize to more accurately fit to observations (images or 2D pose estimators ) using human body models . SMPLify uses the SMPL model to fit pose and shape parameters to 2D keypoints in an image using priors on pose and shape. Later works consider body silhouettes and use a learned variational pose prior . Optimization for motion sequences has been explored by several works which apply simple smoothness priors over time. These produce reasonable estimates when the person is fully visible, but with unrealistic dynamics, e.g., overly smooth motions and footskate.

Some works employ human-environment interaction and contact constraints to improve shape and pose estimation by assuming scene geometry is given. iMapper recovers both 3D joints and a primitive scene representation from RGB video based on interactions by motion retrieval, which may differ from observations. In contrast, our approach optimizes for pose and shape by using an expressive generative model that produces more natural motions than prior work with realistic ground contact.

Human Motion Models

Early sophisticated motion models for pose tracking used a variety of approaches, including mixtures-of-Gaussians , linear embeddings of periodic motion , nonlinear embeddings , and nonlinear autoregressive models . These methods operate in pose space, and are limited to specific motions. Models based on physics can potentially generalize more accurately , while also estimating global pose and environmental interactions. However, general-purpose physics-based models are difficult to learn, computationally intensive at test-time, and often assume full-body visibility to detect contacts .

Many motion models have been learned for computer animation including recent recurrent and autoregressive models . These often focus on visual fidelity for a small set of characters and periodic locomotions. Some have explored generating more general motion and body shapes , but in the context of short-term future prediction. HuMoR is most similar to Motion VAE , however we make crucial contributions to enable generalization to unseen, non-periodic motions on novel body shapes.

HuMoR: 3D Human Dynamics Model

The goal of our work is to build an expressive and generalizable generative model of 3D human motion learned from real human motions, and to show that this can be used for robust test-time optimization (TestOpt) of pose and shape. In this section, we first describe the model, HuMoR.

Latent Variable Dynamics Model

We are interested in modeling the probability of a time sequence of states

where each state is assumed to be dependent on only the previous one and θ\theta are learned parameters. Then pθ(xt∣xt−1)p_{\theta}(\mathbf{x}_{t}|\mathbf{x}_{t-1}) must capture the plausibility of a transition.

which parameterizes a Gaussian distribution with diagonal covariance via a neural network. Intuitively, the latent variable zt\mathbf{z}_{t} represents the transition to xt\mathbf{x}_{t} and should therefore have different distributions given different xt−1\mathbf{x}_{t-1}. For example, an idle person has a large variation of possible next states while a person in midair is on a nearly deterministic trajectory. Learning the conditional prior significantly improves the ability of the CVAE to generalize to diverse motions and empirically stabilizes both training and TestOpt.

Second, conditioned on zt\mathbf{z}_{t} and xt−1\mathbf{x}_{t-1}, the decoder produces two outputs, Δθ\Delta_{\theta} and ct\mathbf{c}_{t}. The change in state Δθ\Delta_{\theta} defines the output distribution pθ(xt∣zt,xt−1)p_{\theta}(\mathbf{x}_{t}|\mathbf{z}_{t},\mathbf{x}_{t-1}) through

We find the additive update Δθ\Delta_{\theta} improves predictive accuracy compared to direct next-step prediction. The person-ground contact ct\mathbf{c}_{t} is the probability that each of 8 body joints (left and right toes, heels, knees, and hands) is in contact with the ground at time tt. Contacts are not part of the input to the conditional prior, only an output of the decoder. The contacts enable environmental constraints in TestOpt.

The complete probability model for a transition is then:

Given an initial state x0\mathbf{x}_{0}, one can sample a motion sequence by alternating between sampling zt∼pθ(zt∣xt−1)\mathbf{z}_{t}\sim p_{\theta}(\mathbf{z}_{t}|\mathbf{x}_{t-1}) and sampling xt∼pθ(xt∣zt,xt−1)\mathbf{x}_{t}\sim p_{\theta}(\mathbf{x}_{t}|\mathbf{z}_{t},\mathbf{x}_{t-1}), from t=1t=1 to TT. This model parallels a conventional stochastic physical model. The conditional prior can be seen as a controller, producing “forces” zt\mathbf{z}_{t} as a function of state xt−1\mathbf{x}_{t-1}, while the decoder acts like a combined physical dynamics model and Euler integrator of generalized position and velocity in Eq. 4.

In addition to this nice physical interpretation, our model is motivated by Motion VAE (MVAE) , which has recently shown promising results for single-character locomotion animation, also using a VAE for pθ(xt∣xt−1)p_{\theta}(\mathbf{x}_{t}|\mathbf{x}_{t-1}). However, we find that directly applying MVAE for estimation does not give good results (Sec. 5). We overcome this by additionally learning a conditional prior, modeling the change in state and contacts, and encouraging consistency between joint position and angle predictions (Sec. 3.1).

Rollout

We use our model to define a deterministic rollout function, which is key to TestOpt. Given an initial state x0\mathbf{x}_{0} and a sequence of latent transitions z1:T\mathbf{z}_{1:T}, we define a function xT=f(x0,z1:T)\mathbf{x}_{T}=f(\mathbf{x}_{0},\mathbf{z}_{1:T}) that deterministically maps the motion “parameters” (x0,z1:T)\mathbf{x}_{0},\mathbf{z}_{1:T}) to the resulting state at time TT. This is done through autoregressive rollout which decodes and integrates xt=xt−1+Δθ(zt,xt−1)\mathbf{x}_{t}=\mathbf{x}_{t-1}+\Delta_{\theta}(\mathbf{z}_{t},\mathbf{x}_{t-1}) at each timestep.

Initial State GMM

We model pθ(x0)p_{\theta}(\mathbf{x}_{0}) with a Gaussian mixture model (GMM) containing K=12K=12 components with weights γi\gamma^{i}, so that pθ(x0)=∑i=1KγiN(x0;μθi,σθi)p_{\theta}(\mathbf{x}_{0})=\sum_{i=1}^{K}\gamma^{i}\mathcal{N}(\mathbf{x}_{0};\mu_{\theta}^{i},\sigma_{\theta}^{i}).

1 Training

Our CVAE is trained using pairs of (xt−1\mathbf{x}_{t-1}, xt\mathbf{x}_{t}). We consider the usual variational lower bound:

The expectation term measures the reconstruction error of the decoder. The encoder, i.e. approximate posterior, is introduced for training and parameterizes a Gaussian distribution qϕ(zt∣xt,xt−1)=N(zt;μϕ(xt,xt−1),σϕ(xt,xt−1))q_{\phi}(\mathbf{z}_{t}|\mathbf{x}_{t},\mathbf{x}_{t-1})=\mathcal{N}(\mathbf{z}_{t};\mu_{\phi}(\mathbf{x}_{t},\mathbf{x}_{t-1}),\sigma_{\phi}(\mathbf{x}_{t},\mathbf{x}_{t-1})). The KL divergence DKL(⋅  ∥  ⋅)D_{\text{KL}}(\cdot\;\|\;\cdot) regularizes its output to be near the prior. Therefore, we seek the parameters (θ,ϕ)(\theta,\phi) that minimize the loss function

over all training pairs in our dataset, where Lrec+wKLLKL\mathcal{L}_{\text{rec}}+w_{\text{KL}}\mathcal{L}_{\text{KL}} is the lower bound in Sec. 3.1 with weight wKLw_{\text{KL}}, and Lreg\mathcal{L}_{\text{reg}} contains additional regularizers.

For a single training pair (xt−1\mathbf{x}_{t-1}, xt\mathbf{x}_{t}), the reconstruction loss is computed as Lrec=∣∣xt−x^t∣∣2\mathcal{L}_{\text{rec}}=||\mathbf{x}_{t}-\hat{\mathbf{x}}_{t}||^{2} from the decoder output x^t=xt−1+Δθ(zt,xt−1)\hat{\mathbf{x}}_{t}=\mathbf{x}_{t-1}+\Delta_{\theta}(\mathbf{z}_{t},\mathbf{x}_{t-1}) with zt∼qϕ(zt∣xt,xt−1)\mathbf{z}_{t}\sim q_{\phi}(\mathbf{z}_{t}|\mathbf{x}_{t},\mathbf{x}_{t-1}). Gradients are backpropagated through this sample using the reparameterization trick . The regularization loss contains two terms: Lreg=LSMPL+wcontactLcontact\mathcal{L}_{\text{reg}}=\mathcal{L}_{\text{SMPL}}+w_{\text{contact}}\mathcal{L}_{\text{contact}}. The SMPL term LSMPL=Ljoint+Lvtx+Lconsist\mathcal{L}_{\text{SMPL}}=\mathcal{L}_{\text{joint}}+\mathcal{L}_{\text{vtx}}+\mathcal{L}_{\text{consist}} uses the output of the body model with the estimated parameters and ground truth shape [J^tSMPL,V^t]=M(r^t,Φ^t,Θ^t,β)[\hat{\mathbf{J}}^{\text{SMPL}}_{t},\hat{\mathbf{V}}_{t}]=M(\hat{\mathbf{r}}_{t},\hat{\Phi}_{t},\hat{\Theta}_{t},\beta):

The loss Lconsist\mathcal{L}_{\text{consist}} encourages consistency between regressed joints and those of the body model. The contact loss Lcontact=LBCE+Lvel\mathcal{L}_{\text{contact}}=\mathcal{L}_{\text{BCE}}+\mathcal{L}_{\text{vel}} contains two terms. The first supervises ground contact classification with a typical binary cross entropy; the second regularizes joint velocities to be consistent with contacts Lvel=∑jc^tj∣∣v^t∣∣2\mathcal{L}_{\text{vel}}=\sum_{j}\hat{c}^{j}_{t}||\hat{\mathbf{v}}_{t}||^{2} with v^t∈J˙^t\hat{\mathbf{v}}_{t}\in\hat{\dot{\mathbf{J}}}_{t} and c^tj∈c^t\hat{c}^{j}_{t}\in\hat{\mathbf{c}}_{t} the predicted probability that joint jj is in ground contact. We set wcontact=0.01w_{\text{contact}}=0.01 and wKL=4e−4w_{\text{KL}}=4e^{-4}.

The initial state GMM is trained separately with expectation-maximization on the same dataset used to train the CVAE.

To ease learning and improve generalization, our model operates in an aligned canonical coordinate frame at each step. All networks are 4 or 5 layer MLPs with ReLU activations and group normalization . To combat posterior collapse , we linearly anneal wKLw_{\text{KL}} during training . Following , we also use scheduled sampling to enable long-term generation by making the model robust to its own errors. Additional details are available in the supplementary.

Test-time Motion Optimization

We next use the space of motion learned by HuMoR as a prior in TestOpt to recover pose and shape from noisy and partial observations while ensuring plausibility.

2 Objective & Optimization

The optimization objective can be formulated as a maximum a-posteriori (MAP) estimate (see supplementary), which seeks a motion that is plausible under our generative model while closely matching observations:

We next detail each of these terms which are the motion prior, data, and regularization energies. In the following, λ\lambda are weights to determine the contribution of each term.

This energy measures the likelihood of the latent transitions z1:T\mathbf{z}_{1:T} and initial state x0\mathbf{x}_{0} under the HuMoR CVAE and GMM. It is Emot=ECVAE+Einit{\mathcal{E}}_{\text{mot}}={\mathcal{E}}_{\text{CVAE}}+{\mathcal{E}}_{\text{init}} where

ECVAE{\mathcal{E}}_{\text{CVAE}} uses the learned conditional prior and Einit{\mathcal{E}}_{\text{init}} uses the initial state GMM.

This term is the only modality-dependent component of our approach, requiring different losses for different inputs: 3D joints, 2D joints, and 3D point clouds. All data losses operate on SMPL joints or mesh vertices obtained through the body model [JtSMPL,Vt]=M(rt,Φt,Θt,β)[\mathbf{J}^{\text{SMPL}}_{t},\mathbf{V}_{t}]=M(\mathbf{r}_{t},\Phi_{t},\Theta_{t},\beta) using the current shape β\beta along with the SMPL parameters (rt,Φt,Θt)(\mathbf{r}_{t},\Phi_{t},\Theta_{t}) contained in xt=f(x0,z1:t)\mathbf{x}_{t}=f(\mathbf{x}_{0},\mathbf{z}_{1:t}) transformed from the canonical to observation (i.e. camera) frame. In the simplest case, the observations yt\mathbf{y}_{t} are 3D joint positions (or keypoints with known correspondences) and our energy is

with ptj∈JtSMPL\mathbf{p}_{t}^{j}\in\mathbf{J}^{\text{SMPL}}_{t}. For 2D joint positions, each with a detection confidence σtj\sigma_{t}^{j}, we use a re-projection loss

with ρ\rho the robust Geman-McClure function and Π\Pi the pinhole projection. If an estimated person segmentation mask is available, it is used to ignore spurious 2D joints. Finally, if yt\mathbf{y}_{t} is a 3D point cloud obtained from a depth map roughly masked around the person of interest, we use the mesh vertices to compute

where wbsw_{\text{bs}} is a robust bisquare weight computed based on the Chamfer distance term.

The additional regularization consists of four terms Ereg=Eskel+Eenv+Egnd+Eshape{\mathcal{E}}_{\text{reg}}={\mathcal{E}}_{\text{skel}}+{\mathcal{E}}_{\text{env}}+{\mathcal{E}}_{\text{gnd}}+{\mathcal{E}}_{\text{shape}}. The first two terms encourage rolled-out motions from the CVAE to be plausible even when the initial state x0\mathbf{x}_{0} is far from the optimum (i.e. early in optimization). The skeleton consistency term uses the joints Jt\mathbf{J}_{t} directly predicted by the decoder during rollout along with the SMPL joints:

with ptj∈JtSMPL\mathbf{p}_{t}^{j}\in\mathbf{J}^{\text{SMPL}}_{t} and ptj,pred∈Jt\mathbf{p}_{t}^{j,\text{pred}}\in\mathbf{J}_{t}. The second summation uses bone lengths ll computed from Jt\mathbf{J}_{t} at each step. The second regularizer Eenv{\mathcal{E}}_{\text{env}} ensures consistency between predicted CVAE contacts, the motion, and the environment:

where ptj∈JtSMPL\mathbf{p}_{t}^{j}\in\mathbf{J}^{\text{SMPL}}_{t} and ctjc_{t}^{j} is the contact probability output from the model for joint jj. The contact height term weighted by λch\lambda_{\text{ch}} ensures the zz-component of contacting joints are within δ\delta of the floor in the canonical frame.

The final two regularizers are priors on the ground and shape. We assume the ground should stay close to initialization Egnd=λgnd∣∣g−ginit∣∣2{\mathcal{E}}_{\text{gnd}}=\lambda_{\text{gnd}}||\mathbf{g}-\mathbf{g}^{\text{init}}||^{2}. Finally, β\beta should stay near the neutral zero vector similar to : Eshape=λshape∣∣β∣∣2{\mathcal{E}}_{\text{shape}}=\lambda_{\text{shape}}||\beta||^{2}.

Initialization & Optimization

Experimental Results

We evaluate HuMoR on (i) generative sampling tasks and (ii) as a prior in TestOpt to estimate motion from 3D and RGB(-D) inputs. We encourage viewing the supplementary videos to appreciate the qualitative improvement of our approach. Additional dataset and experiment details are available in the supplementary document.

AMASS is a large motion capture database containing diverse motions and body shapes on the SMPL body model. We sub-sample the dataset to 30 Hz and use the recommended training split to train the CVAE and initial state GMM in HuMoR. We evaluate on the held out Transitions and HumanEva subsets (Sec. 5.3 and 5.4).

i3DB contains RGB videos of person-scene interactions involving medium to heavy occlusions. It provides annotated 3D joint positions and a primitive 3D scene reconstruction which we use to fit a ground plane for computing plausibility metrics. We run off-the-shelf 2D pose estimation , person segmentation , and plane detection models to obtain inputs for our optimization.

PROX contains RGB-D videos of people interacting with indoor environments. We use a subset of the qualitative data to evaluate plausibility metrics using a floor plane fit to the provided ground truth scene mesh. We obtain 2D pose, person masks, and ground plane initialization in the same way as done for i3DB.

2 Baselines and Evaluation Metrics

We ablate the proposed CVAE to analyze its core components: No Delta directly predicts the next state from the decoder rather than the change in state, No Contacts does not classify ground contacts, No LSMPL\mathcal{L}_{\text{SMPL}} does not use SMPL regularization in training, and Standard Prior uses N(0,I)\mathcal{N}(\mathbf{0},\mathbf{I}) rather than our learned conditional prior. All of these ablated together recovers MVAE .

Motion Estimation Baselines

VPoser-t is the initialization phase of our optimization. It uses VPoser and 3D joint smoothing similar to previous works . PROX-(RGB/D) are optimization-based methods which operate on individual frames of RGB and RGB-D videos, respectively. Both assume the full scene mesh is given to enforce contact and penetration constraints. VIBE is a recent learned method to recover shape and pose from video.

Error Metrics

3D positional errors are measured on joints, keypoints, or mesh vertices (Vtx) and compute global mean per-point position error unless otherwise specified. We report positional errors for all (All), occluded (Occ), and visible (Vis) observations separately. Finally, we report binary classification accuracy of the 8 person-ground contacts (Contact) predicted by HuMoR.

Plausibility Metrics

We use additional metrics to measure qualitative motion characteristics that joint errors cannot capture. Smoothness is evaluated by mean per-joint accelerations (Accel) . Another important indicator of plausibility is ground penetration . We use the true ground plane to compute the frequency (Freq) of foot-floor penetrations: the fraction of frames for both the left and right toe joints that penetrate more than a threshold. We measure frequency at 0, 3, 6, 9, 12, and 15 cm15~{}cm thresholds and report the mean. We also report mean penetration distance (Dist), where non-penetrating frames contribute a distance of 0 to make values comparable across differing frequencies.

3 Generative Model Evaluation

We first evaluate HuMoR as a standalone generative model and show improved generalization to unseen motions and bodies compared to MVAE for two common tasks (see Table 1): future prediction and diverse sampling. We use 2s2s AMASS sequences and start generation from the first step. Results are shown for HuMoR and a modified HuMoR (Qual) that uses JSMPL\mathbf{J}^{\text{SMPL}} as input to each step during rollout instead of J\mathbf{J}, thereby enforcing skeleton consistency. This version produces qualitatively superior results for generation, but is too expensive to use during TestOpt.

For prediction, we report average displacement error (ADE) and final displacement error (FDE) , which measure mean joint errors over all steps and at the final step, respectively. We sample 50 2s2s motions for each initial state and the one with lowest ADE is considered the prediction. For diversity, we sample 50 5s5s motions and compute the average pairwise distance (APD) , i.e. the mean joint distance between all pairs of samples.

As seen in Tab. 1, the base MVAE does not generalize well when trained on the large AMASS dataset; our proposed CVAE improves both the accuracy and diversity of samples. HuMoR (Qual) hinders prediction accuracy, but gives better diversity and visual quality (see supplement).

4 Estimation from 3D Observations

Next, we show that HuMoR also generalizes better when used in TestOpt for fitting to 3D data, and that using a motion prior is crucial to plausibly handling occlusions. 3s3s AMASS sequences are used to demonstrate key abilities: (i) fitting to partial data and (ii) denoising. For the former, TestOpt fits to 43 keypoints on the body that resemble motion capture markers; keypoints that fall below 0.9m0.9m at each timestep are “occluded”, leaving the legs unobservable at most steps. For denoising, Gaussian noise with 4cm4cm standard deviation is added to 3D joint position observations.

Tab. 2 compares to VPoser-t and to using MVAE as the motion prior during optimization rather than HuMoR. We report leg joint errors (toes, ankles, and knees), which are often occluded, separately. The right side of the table reports plausibility metrics. HuMoR gives more accurate poses, especially for occluded keypoints and leg joints. It also estimates smoother motions with fewer and less severe ground penetrations. For denoising, VPoser-t oversmooths which gives the lowest acceleration but least accurate motion. TestOpt with HuMoR gives inherently smooth results while still allowing for necessarily large accelerations to fit dynamic observations. Notably, HuMoR predicts person-ground contact with 97% accuracy even under severe noise. Qualitative results are shown in Fig. 1 and Fig. 3.

5 Estimation from RGB(-D) Observations

Finally, we show that TestOpt with HuMoR can be applied to real-world RGB and RGB-D observations, and outperforms baselines on positional and plausibility metrics especially from partial and noisy data. We use 3s3s (90 frame) clips from i3DB and PROX . Tab. 3 shows results on i3DB which affords quantitative 3D joint evaluation. The top half compares to baseline estimation methods; the bottom uses ablations of HuMoR in TestOpt rather than the full model. Mean per-joint position errors are reported for global joint positions and after root alignment.

As seen in Tab. 3, VIBE gives locally accurate predictions for visible joints, but large global errors and unrealistic accelerations due to occlusions and temporal inconsistency (see Fig. 5). VPoser-t gives reasonable global errors, but suffers frequent penetrations as shown for sitting in Fig. 5. Using MVAE or ablations of HuMoR as the motion prior in TestOpt fails to effectively generalize to real-world data and performs worse than the full model. The conditional prior and LSMPL\mathcal{L}_{\text{SMPL}} have the largest impact, while performance even without using contacts still outperforms the baselines.

The top half of Tab. 4 evaluates plausibility on additional RGB results from PROX compared to VIBE and PROX-RGB. Since PROX-RGB uses the scene mesh as input to enforce environment constraints, it is a very strong baseline and its performance on penetration metrics is expectedly good. HuMoR comparatively increases penetration frequency since it only gets a rough ground plane as initialization, but gives much smoother motions.

The bottom half of Tab. 4 shows results fitting to RGB-D for the same PROX data, which uses both Edata2D{\mathcal{E}}_{\text{data}}^{\text{2D}} and EdataPC3D{\mathcal{E}}_{\text{data}}^{\text{PC3D}} in TestOpt. This improves performance using HuMoR, slightly outperforming PROX-D which is less robust to issues with 2D joint detections and 3D point noise causing large errors. Qualitative examples are in Fig. 1 and Fig. 4.

Thanks to the generalizability of HuMoR, TestOpt is also effective in recovering very dynamic motions like dancing from RGB video when the full body is visible (see supplementary material for examples).

Discussion

We have introduced HuMoR, a learned generative model of 3D human motion leveraged during test-time optimization to robustly recover pose and shape from 3D, RGB, and RGB-D observations. We have demonstrated that the key components of our model enable generalization to novel motions and body shapes for both generative tasks and downstream optimization. Compared to strong learning and optimization-based baselines, HuMoR excels at estimating plausible motion under heavy occlusions, and simultaneously produces consistent ground plane and contact outputs.

HuMoR leaves ample room for future studies. The static camera and ground plane assumptions are reasonable for indoor scenes but true in-the-wild operation demands methods handling dynamic cameras and complex terrain. Our rather simplistic contact model should be upgraded to capture scene-person interactions for improved motion and scene perception. Lastly, we plan to learn motion estimation directly from partial observations which will be faster than TestOpt and enable sampling multiple plausible motions rather than relying on a single local minimum.

Acknowledgments

This work was supported by the Toyota Research Institute (“TRI”) under the University 2.0 program, grants from the Samsung GRO program and the Ford-Stanford Alliance, a Vannevar Bush faculty fellowship, NSF grant IIS-1763268, and NSF grant CNS-2038897. TRI provided funds to assist the authors with their research but this article solely reflects the opinions and conclusions of its authors and not TRI or any other Toyota entity.

References

Appendices

Here we provide details and extended evaluations omitted from the main paperIn the rest of this document we refer to the main paper briefly as paper. for brevity. App. A provides extended discussions, App. B and App. C give method details regarding the HuMoR model and test-time optimization (TestOpt), App. D derives our optimization energy from a probabilistic perspective, App. E provides experimental details from the main paper, and App. F contains extended experimental evaluations.

We encourage the reader to view the supplementary videos on the project webpagehttps://geometry.stanford.edu/projects/humor/ and supplementary webpagehttps://geometry.stanford.edu/projects/humor/supp.html for extensive qualitative results. We further discuss these results in App. F.

Appendix A Discussions

Our state representation is somewhat redundant to include both explicit joint positions J\mathbf{J} and SMPL parameters (which also give joint positions JSMPL\mathbf{J}^{\text{SMPL}}). This is motivated by recent works which show that using an extrinsic representation of body keypoints (e.g. joint positions or mesh vertices) helps in learning motion characteristics like static contact, thereby improving the visual quality of generated motions. The over-parameterization, unique to our approach, additionally allows for consistency losses leveraged during CVAE training and in TestOpt.

Another noteworthy property of our state is that it does not explicitly represent full-body shape – only bone proportions are implicitly encoded through joint locations. During training, we use shape parameters β\beta provided in AMASS to compute LSMPL\mathcal{L}_{\text{SMPL}}, but otherwise the CVAE is shape-unaware. Extending our formulation to include full-body shape is an important direction for improved generalization and should be considered in future work.

Conditioning on More Time Steps

Alternatively, we could condition the dynamics learned by the CVAE with additional previous steps, i.e. pθ(xt∣xt−1,…,xt−p)p_{\theta}(\mathbf{x}_{t}|\mathbf{x}_{t-1},\dots,\mathbf{x}_{t-p}), however since xt−1\mathbf{x}_{t-1} includes velocities this is unnecessary and only increases the chances of overfitting to training motions. It would additionally increases the necessary computation for both generation and TestOpt.

Why CVAE? Our use of a CVAE to model motion is primarily motivated by recent promising results in the graphics community . Not only is it a simple solution, but also affords the physical interpretation presented in the main paper. Other deep generative models could be considered for pθ(xt∣xt−1)p_{\theta}(\mathbf{x}_{t}|\mathbf{x}_{t-1}), however each have potential issues compared to our CVAE. The conditional generative adversarial network would use standard normal noise for zt\mathbf{z}_{t}, which we show is insufficient in multiple experiments. Furthermore, it does not allow for inferring a latent transition zt\mathbf{z}_{t}. Past works have had success with recurrent and variational-recurrent architectures . As discussed previously, the reliance of these networks on multiple timesteps increases overfitting which is especially dangerous for our estimation application which requires being able to represent arbitrary observed motions. Finally, normalizing flows and neural ODEs show exciting potential for modeling human motion, however conditional generation with these models is not yet well-developed.

In comparison to Motion VAE (MVAE) [54]

Our proposed CVAE is inspired by MVAE, but introduces a number of key improvements that enable generalization and expressivity: (i) HuMoR uses a neural network to learn a conditional prior pθ(zt∣xt−1)p_{\theta}(\mathbf{z}_{t}|\mathbf{x}_{t-1}) rather than assuming pθ(zt)=N(zt;0,I)p_{\theta}(\mathbf{z}_{t})=\mathcal{N}(\mathbf{z}_{t};\mathbf{0},\mathbf{I}), (ii) the decoder predicts the change in state Δθ\Delta_{\theta} rather than the next state xt\mathbf{x}_{t} directly, (iii) the decoder outputs person-ground contacts ct\mathbf{c}_{t} which MVAE does not model, and (iv) HuMoR trains using LSMPL\mathcal{L}_{\text{SMPL}} regularization to encourage joint position/angle consistency whereas MVAE uses the typical ELBO. Tab. 3 in the main paper shows that these differences are crucial to achieve good results as MVAE does not work well. The conditional prior and LSMPL\mathcal{L}_{\text{SMPL}} are particularly important: learning pθ(zt∣xt−1)p_{\theta}(\mathbf{z}_{t}|\mathbf{x}_{t-1}) is theoretically justified when deriving the CVAE and is intuitive for human motion, while LSMPL\mathcal{L}_{\text{SMPL}} provides a strong supervision to improve stability of model rollout.

Furthermore, the pose state employed by HuMoR and MVAE differ slightly. In MVAE, the root is defined by projecting the pelvis onto the ground, giving 2D linear and 1D angular velocities. In HuMoR, the root is at the pelvis giving full 3D velocities.

A Note on β𝛽\beta-VAE [37]

The KL weight wKLw_{\text{KL}} in Eq. 7 of the main paper is not directly comparable to a typical β\beta-VAE due to various implementation details. First, Lrec\mathcal{L}_{\text{rec}} is the mean-squared error (MSE) of the unnormalized state rather than the true log-likelihood. The use of additional regularizers Lreg\mathcal{L}_{\text{reg}} that are not formulated probabilistically to be part of the reconstruction loss further compounds the difference. Furthermore, in practice losses are averaged over both the feature and batch dimensions as not to depend on chosen dimensionalities. All these differences result in setting wKL=4e−4w_{\text{KL}}=4e^{-4}.

The motion prior term Emot=ECVAE+Einit{\mathcal{E}}_{\text{mot}}={\mathcal{E}}_{\text{CVAE}}+{\mathcal{E}}_{\text{init}}, which leverages our learned conditional prior and GMM, nicely falls out of the MAP derivation (see App. D below) and is by itself reasonable to ensure motion is plausible. However, in practice it can be prone to local minima and slow to converge without any regularization. This is primarily because HuMoR is trained on clean motion capture data from AMASS , but in the early stages of optimization the initial state x0\mathbf{x}_{0} will be far from this domain. This means rolled out motions using the CVAE decoder will be implausible and the likelihood output from learned conditional prior is not necessarily meaningful (since inputs will be well outside the training distribution). The additional regularizers presented in the main paper, mainly Eskel{\mathcal{E}}_{\text{skel}} and Eenv{\mathcal{E}}_{\text{env}}, allow us to resolve this issue by reflecting expected behavior of the motion model when it is producing truly plausible motions (i.e. x0\mathbf{x}_{0} is similar to the training data).

On Evaluation Metrics

As discussed in prior work , traditional positional metrics used to evaluate root-relative pose estimates do not capture the accuracy of the absolute (“global”) motion nor its physical/perceptual plausibility. This is why we use a range of metrics to capture both the global joint accuracy, local joint accuracy (after aligning root joints), and plausibility of a motion. However, these metrics still have flaws and there is a need to develop more informative motion estimation evaluation metrics for both absolute accuracy and plausibility. This is especially true in scenarios of severe occlusions where there is not a single correct answer: even if the “ground truth” 3D joints are available, there may be multiple motions that explain the partial observations equally well.

On Convergence

Our multi-objective optimization uses a mixture of convex and non-convex loss functions. As we utilize L-BFGS, the minimum energy solution we report is only locally optimal. While simulated annealing or MCMC / HMC (Markov Chain Monte Carlo / Hamiltonian Monte Carlo) type of exploration approaches can be deployed to search for the global optimum, such methods would incur heavy computational load and hence are prohibitive in our setting. Thanks to the accurate initialization, we found that most of the time TestOpt converges to a good minimum. This observation is also lightly supported by recent work arguing that statistically provable convergence can be attained for the human pose problem under convex and non-convex regularization using a multi-stage optimization scheme .

A.1 Assumptions and Limitations

We use the ground during TestOpt to obtain a transformation to the canonical reference frame where our prior is trained. While this is a resonable assumption in a majority of scenarios, we acknowledge that certain applications might require in-the-wild operation where a single ground plane does not exist e.g. climbing up stairs or moving over complex terrain. In such scenarios, we require a consistent reference frame, which can be computed from: (i) an accelerometer if a mobile device is used, (ii) pose of static, rigid objects if an object detector is deployed, (iii) fiducial tags or any other means of obtaining a gravity direction.

Note that the ground plane is not an essential piece in the test-time optimization. It is a requirement only because of the way our CVAE is trained: on motions with a ground plane at z=0z=0, gravity in the −z-z direction, and without complex terrain interactions. Although we empirically noticed that convergence of training necessitates this assumption, other architectures or the availability of larger in-the-wild motion datasets might make training HuMoR possible under arbitrary poses. This perspective should clarify why our method can work when the ground is invisible: TestOpt might converge from a bad initialization as long as our prior (HuMoR) is able to account for the observation.

On the Assumption of a Static Camera

While a static camera is assumed in all of our evaluations, recent advances in 3D computer vision make it possible to overcome this limitation. Our method, backed by either a structure from motion / SLAM pipeline or a camera relocalization engine, can indeed work in scenarios where the camera moves as well as the human targets. A more sophisticated solution could leverage our learned motion model to disambiguate between camera and human motion. Expectedly, this requires further investigation, making room for future studies as discussed at the end of the main paper.

Other Limitations and Failure Cases

As discussed in Sec. 6 of the main paper, HuMoR has limitations that motivate multiple future directions. First, optimization is generally slow compared to learning-based (direct prediction) methods. This also reflects on our test-time optimization. Approaches for learning to optimize can come handy in increasing the efficiency of our method. Additionally, our current formulation of TestOpt allows only for a single output, the local optimum. Therefore, future work may explore learned approaches yielding multi-hypothesis output, which can be used to characterize uncertainty.

Specific failure cases (as shown in the supplementary videos and Fig. 6) further highlight areas of future improvement. First, extreme occlusions (e.g. only a few visible points as in Fig. 6 left), especially at the first frame which determines x0\mathbf{x}_{0}, makes for a difficult optimization that often lands in local minima with implausible motions. Second, uncommon motions that are rare during CVAE training, such as laying down in Fig. 6 (middle), can cause spurious ground plane outputs as TestOpt attempts to make the motion more likely. Leveraging more holistic scene understanding methods and models of human-environment interaction will help in these cases. Finally, our method is dependent on motion in order to resolve ambiguity, which is usually very helpful but has corner cases as shown in Fig. 6 (right). For example, if the observed person is nearly static, the optimization may produce implausible poses due to ambiguous occlusions (e.g. standing when really the person is sitting) and/or incorrect ground plane estimations.

Appendix B HuMoR Model Details

In this section, we provide additional implementation details for the HuMoR motion model described in Sec. 3 of the main paper.

We use the SMPL+H body model since it is used by the AMASS dataset. However, our focus is on modeling body motion, so HuMoR and TestOpt do not consider the hand joints (leaving the 22 body joints including the root). Hand joints could be straightforwardly optimized with body motion, but was not in our current scope.

Canonical Coordinate Frame

To ease learning and improve generalization, our network operates on inputs in a canonical coordinate frame. Specifically, based on xt−1\mathbf{x}_{t-1} we apply a rotation around the up (+z+z) axis and translation in x,yx,y such that the xx and yy components of rt−1\mathbf{r}_{t-1} are 0 and the person’s body right axis (w.r.t. Φt−1\Phi_{t-1}) is facing the +x+x direction.

Architecture

B.2 CVAE Training

The loss function used for training is primarily described in the main paper (see Eq. 7). For a training pair (xt−1,xt)(\mathbf{x}_{t-1},\mathbf{x}_{t}), the KL divergence loss term is computed between the output distributions of the encoder and conditional prior as

The SMPL loss LSMPL\mathcal{L}_{\text{SMPL}} is computed using the ground truth shape parameters β\beta provided in AMASS on the ground truth gendered body model.

Dataset

For training, we use AMASS : a large, publicly-available motion capture (mocap) database containing over 11k motion sequences from 344 different people fit to SMPL. The database aggregates and standardizes many mocap datasets into one. We pre-process AMASS by cropping the middle 80% of each motion sequence, sub-sampling to 30 Hz, estimating velocities with finite differences, and using automated heuristics based on foot contacts to remove sequences with substantial terrain interaction (e.g. stairs, ramps, or platforms). We automatically annotate ground contacts for 8 body joints (left and right toes, heels, knees, and hands) based on velocity and height. In particular, if a joint has moved less than 0.5cm0.5cm in the last timestep and its zz component is within 8cm8cm of the floor, it is considered to be in contact. For toe joints, we use a tighter height threshold of 4cm4cm.

For training the CVAE, we use the recommended training split (save for TCD Hands which contains mostly hand motions): CMU , MPI Limits , TotalCapture , Eyes Japan , KIT , BMLrub , BMLmovi , EKUT , and ACCAD . For validation during training we use MPI HDM05 , SFU , and MPI MoSh . Finally for evaluations (Sec. 5.3 of the main paper), we use HumanEva and Transitions .

Training Procedure

We train using 10-step sequences sampled on-the-fly from the training set (in order to use scheduled sampling as detailed below). To acquire a training sequence, a full mocap sequence is randomly (uniformly) chosen from AMASS and then a random 10-step window within that sequence is (uniformly) sampled. Training is performed using batches of 2000 sequences for 200 epochs with Adamax and settings β1=0.9\beta_{1}=0.9, β2=0.999\beta_{2}=0.999, and ϵ=1e−8\epsilon=1e^{-8}. We found this to be more stable than using Adam. The learning rate starts at 1e−41e^{-4} and decays to 5e−55e^{-5}, 2.5e−52.5e^{-5}, and 1.25e−51.25e^{-5} at epochs 50, 80, and 140, respectively. We use early stopping by choosing the network parameters that result in the best validation split performance throughout training.

A common difficulty in training VAEs is posterior collapse – when the learned latent encoding zt\mathbf{z}_{t} is effectively ignored by the decoder. This problem is exacerbated in CVAEs since the decoder receives additional conditioning . To combat collapse, we linearly anneal wKLw_{\text{KL}} from 0.00.0 to its full value of 4e−44e^{-4} over the first 50 epochs. We also found that our full model, which uses a learned conditional prior, was less susceptible to posterior collapse than the baselines that assume pθ(zt)=N(zt;0,I)p_{\theta}(\mathbf{z}_{t})=\mathcal{N}(\mathbf{z}_{t};\mathbf{0},\mathbf{I}).

Training Computational Requirements

We train our CVAE on a single Tesla V100 16GB GPU, which takes approximately 4 days.

Scheduled Sampling

As explained in the main paper, our scheduled sampling follows . In particular, at each training epoch ii we define a probability si∈[0.0,1.0]s_{i}\in[0.0,1.0] of using the ground truth state input xt−1\mathbf{x}_{t-1} at each timestep tt in a training sequence, as opposed to the model’s own previous output x^t−1\hat{\mathbf{x}}_{t-1}. Training is done using a curriculum that includes si=1.0s_{i}=1.0 (regular supervised training), si∈(0.0,1.0)s_{i}\in(0.0,1.0) (mix of true and self inputs at each step), and finally si=0.0s_{i}=0.0 (always use full generated rollouts). Importantly for training stability, if using the model’s own prediction x^t−1\hat{\mathbf{x}}_{t-1} as input to tt, we do not backpropagate gradients from the loss on x^t\hat{\mathbf{x}}_{t} back through x^t−1\hat{\mathbf{x}}_{t-1}.

For CVAE training, we use 10 epochs of regular supervised training, 10 of mixed true and self inputs, and the rest using full self-rollouts.

B.3 Initial State GMM

Since the GMM models a single state, we use a modified representation that is minimal (i.e. avoids redundancies) in order to be useful during test-time optimization. In particular the GMM state is

Implementation Details

The GMM uses full covariance matrices for each of the 12 components and operates in the same canonical coordinate frame as the CVAE. It trains using expectation maximizationusing scikit-learn on every state in the same AMASS training set used for the CVAE.

Appendix C Test-Time Optimization Details

In this section, we give additional details of the motion and shape optimization detailed in Sec. 4 of the main paper.

Floor Parameterization

Observation-to-Canonical Transformation

We assume that gravity is orthogonal to the ground plane. Therefore, given the current floor g\mathbf{g} and root state r,Φ\mathbf{r},\Phi (in the observation frame) we compute a rotation and translation to the canonical CVAE frame: after the transformation, n^\hat{\mathbf{n}} is aligned with +z+z and d=0d=0, Φ\Phi faces body right towards +x+x, and the x,yx,y components of r\mathbf{r} are 0. With this ability, we can always compute the (observed) state at time xt\mathbf{x}_{t} from z1:t\mathbf{z}_{1:t}, x0\mathbf{x}_{0}, and g\mathbf{g} by (i) transforming x0\mathbf{x}_{0} to the canonical frame, (ii) using the CVAE to rollout xt=f(x0,z1:t)\mathbf{x}_{t}=f(\mathbf{x}_{0},\mathbf{z}_{1:t}), and (iii) transforming xt\mathbf{x}_{t} back to the observation frame.

Optimization Objective Details

The optimization objective is detailed in Sec. 4.2 of the main paper. To compensate for the heavy tailed behavior of real data, we use robust losses for multiple data terms. Edata2D{\mathcal{E}}_{\text{data}}^{\text{2D}} uses the Geman-McClure function which for our purposes is defined as ρ(r,σ)=(σ2r2)/(σ2+r2)\rho(r,\sigma)=(\sigma^{2}r^{2})/(\sigma^{2}+r^{2}) for a residual rr and scaling factor σ\sigma. We use σ=100\sigma=100 for all experiments. EdataPC3D{\mathcal{E}}_{\text{data}}^{\text{PC3D}} uses robust bisquare weights . These weights are computed based on the one-way chamfer distance term (see Eq. 14 in the main paper): residuals over the whole sequence are first normalized using a robust estimate of the standard deviation based on the median absolute deviation (MAD), then each weight is computed as

In this equation, r^\hat{r} is a normalized residual and κ\kappa is a tuning constant which we set to 4.6851.

In the Eenv{\mathcal{E}}_{\text{env}} energy term, we use δ=8\delta=8 cmcm to ensure the zz-component of contacting joints are within 88 cmcm of the floor when in contact (since joints are inside the body) in the canonical frame.

Initialization

As detailed in Sec. 4.2 of the main paper, our optimization is initialized by directly optimizing SMPL pose and shape parameters using Edata{\mathcal{E}}_{\text{data}} and Eshape{\mathcal{E}}_{\text{shape}} along with a pose prior Epose{\mathcal{E}}_{\text{pose}} and joint smoothing Esmooth{\mathcal{E}}_{\text{smooth}}. The latter are weighted by λpose\lambda_{\text{pose}} and λsmooth\lambda_{\text{smooth}}. This two-stage initialization first optimizes global translation and orientation for 30 optimization steps, followed by full pose and shape for 80 steps. At termination, we estimate velocities using finite differences, which allows direct initialization of the state x0init\mathbf{x}_{0}^{\text{init}}. To get z1:Tinit\mathbf{z}_{1:T}^{\text{init}}, the CVAE encoder is used to infer the latent transition between every pair of frames. The initial shape parameters βinit\beta_{\text{init}} are a direct output of the initialization optimization. Finally, for fitting to RGB(-D) the ground plane is initialized from video with PlaneRCNN , though we found simply setting the floor to y=0y=0 (i.e. the normal is aligned with the camera up axis) works just as well in most cases.

Optimization (TestOpt) Details

Our optimization is implemented in PyTorch using L-BFGS with a step size of 1.0 and autograd. For all experiments, we optimize using the neutral SMPL+H body model in 3 stages. First, only the initial state x0\mathbf{x}_{0} and first 15 frames of the latent sequence z1:15\mathbf{z}_{1:15} are optimized for 30 iterations in order to quickly reach a reasonable initial state. Next, x0\mathbf{x}_{0} is fixed while the full latent dynamics sequence z1:T\mathbf{z}_{1:T} is optimized for 25 iterations, and then finally the full sequence and initial state are tuned together for another 15 iterations. The ground g\mathbf{g} and shape β\beta are optimized in every stage.

The energy weights used for each experiment in the main paper are detailed in Tab. 5. The left part of the table indicates weights for the initialization phase (i.e. the VPoser-t baseline), while the right part is our full proposed optimization. A dash indicates the energy is not relevant for that data modality and therefore not used. Weights were manually tuned using the presented evaluation metrics and qualitative assessment. Note that for similar modalities (e.g. 3D joints and keypoints, or RGB and RGB-D) weights are quite similar and so only slight tuning should be necessary to transfer to new data. The main tradeoff comes between reconstruction accuracy and motion plausibility: e.g. the motion prior is weighted higher for i3DB, which contains many severe occlusions, than for PROX RGB where the person is often nearly fully visible.

Appendix D MAP Objective Derivation

In this section, we formulate the core of the pose and shape optimization objective (Eq. 10 in the main paper) from a probabilistic perspective. Recall, we want to optimize the initial state x0\mathbf{x}_{0}, a sequence of latent variables z1:T\mathbf{z}_{1:T}, ground g\mathbf{g}, and shape β\beta based on a sequence of observations y0:T\mathbf{y}_{0:T}. We are interested in the maximum a-posteriori (MAP) estimate:

Assuming y0\mathbf{y}_{0} is independent of g\mathbf{g}, the left term is written

where yt\mathbf{y}_{t} is assumed to only be dependent on the initial state and past transitions. Additionally, {z≤t,x0,g}\{\mathbf{z}_{\leq t},\mathbf{x}_{0},\mathbf{g}\} is replaced with xt=f(x0,z1:t)\mathbf{x}_{t}=f(\mathbf{x}_{0},\mathbf{z}_{1:t}) using CVAE rollout as detailed previously. The right term in Eq. 19 is written as

where x0\mathbf{x}_{0}, zt\mathbf{z}_{t}, and g\mathbf{g} are assumed to be independent of β\beta. We then use these results within Eq. 19 to optimize the log-likelihood:

Assuming each energy presented in the main paper can be written as the log-likelihood of a distribution, this formulation recovers our optimization objective besides the additional regularizers Eskel{\mathcal{E}}_{\text{skel}} and Eenv{\mathcal{E}}_{\text{env}} (these terms could, in principle, be written as part of a more complex motion prior term Emot{\mathcal{E}}_{\text{mot}}, however for simplicity we do not do this). Next, we connect each energy term as presented in Sec. 4.2 of the paper to the probabilistic perspective.

This term is already the log-likelihood of our HuMoR motion model (Eq. 11 of the paper), which exactly aligns with the MAP derivation.

The form of p(yt∣xt,β)p(\mathbf{y}_{t}|\mathbf{x}_{t},\beta) is modality-dependent. In the simplest case the observations yt\mathbf{y}_{t} are 3D joints (or keypoints with known correspondences) and p(yt∣xt,β)p(\mathbf{y}_{t}|\mathbf{x}_{t},\beta) is defined by yt=JtSMPL+ϵ\mathbf{y}_{t}=\mathbf{J}^{\text{SMPL}}_{t}+\epsilon with ϵ∼N(0,σdata)\epsilon\sim\mathcal{N}(0,\sigma_{\text{data}}). Then the energy is as written in Eq. 12 of the paper. For other modalities (Eq. 13 and 14 in the paper), the data term can be seen as resulting from a more sophisticated noise model.

We assume the ground should stay close to initialization so p(g)=N(g;ginit,σgnd)p(\mathbf{g})=\mathcal{N}(\mathbf{g};\mathbf{g}^{\text{init}},\sigma_{\text{gnd}}) corresponding to the objective in the paper Egnd=λgnd∣∣g−ginit∣∣2{\mathcal{E}}_{\text{gnd}}=\lambda_{\text{gnd}}||\mathbf{g}-\mathbf{g}^{\text{init}}||^{2}.

The shape β\beta should stay near neutral zero and so p(β)=N(0,I)p(\beta)=\mathcal{N}(\mathbf{0},\mathbf{I}) which gives the energy Eshape=λshape∣∣β∣∣2{\mathcal{E}}_{\text{shape}}=\lambda_{\text{shape}}||\beta||^{2}.

Appendix E Experimental Evaluation Details

In this section, we provide details of the experimental evaluations in Sec. 5 of the main paper.

AMASS We use the same processed AMASS dataset as described in Sec. B.2 for experiments. Experiments in Sec. 5.3 and 5.4 of the main paper use the held out Transitions and HumanEva subsets which together contain 4 subjects and about 19 minutes of motion.

i3DB is a dataset of RGB videos captured at 30 Hz containing numerous person-environment interactions involving medium to heavy occlusions. It contains annotated 3D joint positions at 10 Hz along with a primitive cuboid 3D scene reconstruction. We run off-the-shelf 2D pose estimation (OpenPose) , person segmentation , and plane detection models to obtain inputs and initialization for our test-time optimization. We evaluate our method in Sec. 5.5 of the main paper on 6 scenes (scenes 5, 7, 10, 11, 13, and 14) containing 2 people which totals about 1800 evaluation frames. From the annotated 3D objects, we fit a ground plane which is used to compute plausibility metrics.

PROX is a large-scale dataset of RGB-D videos captured at 30 Hz containing person-scene interactions in a variety of environments with light to medium occlusions. We use a subset of the qualitative part of the dataset to evaluate the plausibility of our method’s estimations. The data does not have pose annotations, but does contain the scanned scene mesh to which we fit a ground plane for plausibility evaluation. We obtain 2D pose, person masks, and ground plane initialization in the same way as for i3DB. We evaluate in Sec. 5.5 of the main paper on all videos from 4 chosen scenes (N3Office, N3Library, N0Sofa, and MPH1Library) that tend to have more dynamic motions and occlusions. In total, these scenes contain 12 unique people and about 19 minutes of video.

E.2 Baselines and Evaluation Metrics

To be usable in our whole framework (e.g. test-time optimization with SMPL), the MVAE baseline is our proposed CVAE with all ablations applied simultaneously (no delta step prediction, no contact prediction, no SMPL losses, and no learned conditional prior). Note that this differs slightly from the model as presented in : the decoder is an MLP rather than a mixture-of-experts and the layer sizes are larger to provide the necessary representational capacity for training on AMASS. All ablations and MVAE are trained in the exact same way as the full model. Additionally, when used in test-time optimization we use the same energy weightings as described in Tab. 5 but with irrelevant energies removed (e.g. the No Contacts ablation does not allow the use of Eenv{\mathcal{E}}_{\text{env}}). Note that Einit{\mathcal{E}}_{\text{init}} is still used with MVAE and all ablations, the only thing that changes is the prior in ECVAE{\mathcal{E}}_{\text{CVAE}}.

Motion Estimation Baselines

The VPoser-t baseline is exactly the initialization phase of our proposed test-time optimization, i.e. we use weightings in Tab. 5.

The PROX-RGB baseline fits the neutral SMPL-X body model to the same 2D OpenPose detections used by our method. It does not use the face or hand keypoints for fitting similar to our approach. The PROX-D baseline uses the fittings provided with the PROX dataset, which are on the known gendered SMPL-X body model and use face/hand 2D keypoints for fitting.

The VIBE baseline uses the same 2D OpenPose detections as our method in order to define bounding boxes for inference. We found this makes for a more fair comparison since the real-time trackers used in their implementationsee Github often fail for medium to heavy occlusions common in our evaluation datasets.

Evaluation Metrics

In order to report occluded (Occ) and visible (Vis) positional errors separately, we must determine which joints/keypoints are occluded during evaluation. This is easily done for 3D tasks where “occlusions” are synthetically generated. For RGB data in i3DB, we use the person segmentation mask obtained with DeepLabv3 to determine if a ground truth 3D joint is visible after projecting it to the camera.

For a joint pt∈JtSMPL\mathbf{p}_{t}\in\mathbf{J}^{\text{SMPL}}_{t} at time tt the acceleration magnitude (Accel) is computed as

where h=1/30h=1/30 for all datasets. Ground penetration frequency (Freq) for a given penetration threshold gthreshg_{\text{thresh}} is computed over all DD frames in a dataset as

where 1(⋅)\mathbf{1}(\cdot) is the indicator function and dpenltoe,dpenrtoed_{\text{pen}}^{\text{ltoe}},d_{\text{pen}}^{\text{rtoe}} are the penetration distances (shortest distance to the ground plane) for the left and right toe joints at the current frame.

E.3 Estimation from 3D Observations

For fitting to 3D data, as presented in Sec. 5.4 of the main paper, the observation and canonical coordinate frames are identical since AMASS data is used, therefore TestOpt does not optimize the ground plane g\mathbf{g}.

E.4 Estimation from RGB(-D) Observations

Positional joint errors are computed using a 12-joint subset of the ground truth 3D joint annotations which correspond to the SMPL joints used by our method and all baselines. These include ankles, knees, wrists, elbows, shoulders, the neck, and the root. The leg joints reported in Tab. 3 of the main paper include the ankles and knees.

In fitting to i3DB videos, we mask 2D joint observations using the person segmentation mask which we found beneficial under the numerous severe occlusions where OpenPose may predict spurious 2D pose with incorrectly high confidence.

PROX

For fitting to PROX RGB(-D) videos we found it best not to mask out 2D joints based on the person segmentation mask, as occlusions are typically minor and OpenPose is relatively accurate. However, the segmentation is always used on the point cloud back-projected from the depth map to ignore points far from the person.

Appendix F Extended Evaluations

In this section, we present experimental evaluations to supplement those in Sec. 5 of the main paper, which were ommitted due to space constraints.

Please see the supplementary videos for extensive qualitative results corresponding to each experiment in Sec. 5 of the main paper. In this document, we show various representative examples from these videos and summarize important results.

Fig. 9 shows results fitting to occluded 3D keypoints (Sec. 5.4 of the main paper). Performance of TestOpt with HuMoR is compared to the VPoser-t and MVAE baselines on two sequences. VPoser-t fails to produce any plausible lower-body motion since it uses only a pose prior, while using MVAE as the motion prior often gives unnatural and implausible motions that don’t align well with the observed keypoints.

Fig. 10 shows results using TestOpt with HuMoR for fitting to noisy 3D joints (Sec. 5.4 of the main paper). Both the estimated motion and contacts are shown for a crawling sequence. Note that HuMoR recovers complex contact patterns involving not only the feet, but also hands and knees.

Fig. 11 demonstrates fitting performance on RGB videos from PROX compared to the PROX-RGB baseline (Sec. 5.5 of the main paper). PROX-RGB produces temporally incoherent results since it operates on single frames. However, it also uses the scene mesh as input which allows for plausible poses when the person is fully visible. This does not greatly improve results under occlusions, though, often reverting to a mean leg pose similar to VPoser-t and VIBE.

Fig. 12 demonstrates fitting to RGB-D videos from PROX compared to the PROX-D baseline (Sec. 5.5 of the main paper). Using motion as a prior allows for natural interaction within the scene, as detailed in the figure caption.

Fig. 13 shows ground plane estimations when fitting to RGB-D data for each of the scenes in our PROX dataset. The estimated floor is rendered within the true scene mesh for reference.

Finally, we evaluate TestOpt with HuMoR on highly dynamic dancing data to demonstrate the generalization ability of the CVAE motion model. Fig. 14 shows a sample of frames from motions fit to the DanceDB subset of AMASS . In this case, the observations are full-body 3D keypoints. Though HuMoR is trained on data with few dancing motions, it is able to capture these difficult motions at test time since it only operates on pairs of frames. Additionally, Fig. 7 shows fitting results on RGB videos from the AIST dance dataset . Since HuMoR allows for large accelerations, it accurately generalizes to fast motions (top - note motion blur). Moreover, it is able to recover from poor 2D joint detections from OpenPose due to the cartwheel motion (bottom).

F.2 Optimization Objective Ablation

In this experiment, we analyze the effect of the energy terms and regularizers in our test-time optimization (TestOpt) formulation. Tab. 6 reports results on the i3DB dataset using TestOpt with HuMoR for different energy ablations.

No Einit{\mathcal{E}}_{\text{init}} does not use the initial state Gaussian mixture model (GMM) as part of the motion prior (i.e. assumes a uniform prior over the initial state). This means the input x0\mathbf{x}_{0} to CVAE rollout may not be plausible, especially early in optimization, leading to degraded performance. No Ec{\mathcal{E}}_{\text{c}} and No Eb{\mathcal{E}}_{\text{b}} remove individual terms of the skeleton regularization: the joint and bone length consistency. No Eskel{\mathcal{E}}_{\text{skel}} removes the entire skeleton regularization (both Ec{\mathcal{E}}_{\text{c}} and Eb{\mathcal{E}}_{\text{b}}), severely affecting final performance. This term is important to ensuring the CVAE is actually rolling out realistic motions. Finally, No Eenv{\mathcal{E}}_{\text{env}} removes the contact velocity and height terms, increasing errors particularly for occluded joints while resulting in similar plausibility metrics.

F.3 Sensitivity to Occlusions and Noise

Next, we look at performance on estimation from 3D data under increasing levels of occlusions and noise. Similar to Sec. 5.4 in the main paper, we consider fitting to occluded 3D keypoints (points under a given height threshold are unobserved) and 3D joint locations with added Gaussian noise. For this experiment, we use the held out Transitions subset of AMASS .

Mean keypoint errors for all and occluded points are shown for increasing occlusions in Fig. 8(a)(b). From left to right the occluded height threshold is 0.0, 0.3, 0.6, 0.9, and 1.2 mm which roughly corresponds to the lower body being occluded from the floor up through the body parts on the xx-axis. With no occlusions (None) VPoser-t most closely fits the clean points, while HuMoR outperforms MVAE due to improved expressiveness. As occlusions increase, HuMoR and MVAE perform similarly while occluded errors increase greatly for VPoser-t as also observed in other experiments. Note that after the knees become occluded, errors for occluded keypoints tend to saturate as performance is dependent nearly entirely on the motion prior.

Mean joint acceleration magnitude is shown for increasingly noisy 3D joint observations in Fig. 8(c). From left to right noise increases to 8 cmcm standard deviation. Importantly, the performance of HuMoR stays relatively stable. HuMoR increases only 25% while VPoser-t and MVAE increase 124% and 57%, respectively.

F.4 Computational Requirements of TestOpt

For all experiments presented in the main paper, we perform optimization on batches of 3s3s sequences (90 frames). Tab. 7 shows the mean per-sequence optimization times for each of these experiments where AMASS corresponds to experiments in Sec. 5.4 of the paper and i3DB and PROX correspond to Sec. 5.5. The per-sequence time is computed by taking the total time to optimize over the whole dataset divided by the number of 3s3s sequences. Note that batching speeds up this large scale optimization significantly, i.e. optimizing a single sequence will only be slightly faster than a batch of sequences since the primary bottleneck is CVAE rollout. All batched optimizations were performed on a 24 GB Titan RTX GPU, though an 8 GB GPU is sufficient to optimize a single sequence.