Dynamics-Regulated Kinematic Policy for Egocentric Pose Estimation

Zhengyi Luo, Ryo Hachiuma, Ye Yuan, Kris Kitani

Introduction

From a video captured by a single head-mounted wearable camera (\eg, smartglasses, action camera, body camera), we aim to infer the wearer’s global 3D full-body pose and interaction with objects in the scene, as illustrated in Fig. LABEL:fig:teaser. This is important for applications like virtual and augmented reality, sports analysis, and wearable medical monitoring, where third-person views are often unavailable and proprioception algorithms are needed for understanding the actions of the camera wearer. However, this task is challenging since the wearer’s body is often unseen from a first-person view and the body motion needs to be inferred solely based on the videos captured by the front-facing camera. Furthermore, egocentric videos usually capture the camera wearer interacting with objects in the scene, which adds additional complexity in recovering a pose sequence that agrees with the scene context. Despite these challenges, we show that it is possible to infer accurate human motion and human-object interaction from a single head-worn front-facing camera.

Egocentric pose estimation can be solved using two different paradigms: (1) a kinematics perspective and (2) a dynamics perspective. Kinematics-based approaches study motion without regard to the underlying forces (\eg, gravity, joint torque) and cannot faithfully emulate human-object interaction without modeling proper contact and forces. They can achieve accurate pose estimates by directly outputting joint angles but can also produce results that violate physical constraints (\egfoot skating and ground penetration). Dynamics-based approaches, or physics-based approaches, study motions that result from forces. They map directly from visual input to control signals of a human proxy (humanoid) inside a physics simulator and recover 3D poses through simulation. These approaches have the crucial advantage that they output physically-plausible human motion and human-object interaction (\ie, pushing an object will move it according to the rules of physics). However, since no joint torque is captured in human motion datasets, physics-based humanoid controllers are hard to learn, generalize poorly, and are actively being researched .

In this work, we argue that a hybrid approach merging the kinematics and dynamics perspectives is needed. Leveraging a large human motion database , we learn a task-agnostic dynamics-based humanoid controller to mimic broad human behaviors, ranging from every day motion to dancing and kickboxing. The controller is general-purpose and can be viewed as providing low-level motor skills of a human. After the controller is learned, we train an object-aware kinematic policy to specify the target poses for the controller to mimic. One approach is to let the kinematic model produce target motion only based on the visual input . This approach uses the physics simulation as a post-processing step: the kinematic model computes the target motion separately from the simulation and may output unreasonable target poses. We propose to synchronize the two aspects by designing a kinematic policy that guides the controller and receives timely feedback through comparing its target pose and the resulting simulation state. Our model thus serves as a high-level motion planning module that adapts intelligently based on the current simulation state. In addition, since our kinematic policy only outputs poses and does not model joint torque, it can receive direct supervision from motion capture (MoCap) data. While poses from MoCap can provide an initial-guess of target motion, our model can search for better solutions through trial and error. This learning process, dubbed dynamics-regulated training, jointly optimizes our model via supervised learning and reinforcement learning, and significantly improves its robustness to real-world use cases.

In summary, our contributions are as follows: (1) we are the first to tackle the challenging task of estimating physically-plausible 3D poses and human-object interactions from a single front-facing camera; (2) we learn a general-purpose humanoid controller from a large MoCap dataset and can perform a broad range of motions inside a physics simulation; (3) we propose a dynamics-regulated training procedure that synergizes kinematics, dynamics, and scene context for egocentric vision; (4) experiments on a controlled motion capture laboratory dataset and a real-world dataset demonstrate that our model outperforms other state-of-the-art methods on pose-based and physics-based metrics, while generalizing to videos taken in real-world scenarios.

Related Work

Third-person human pose estimation. The task of estimating the 3D human pose (and sometimes shape) from third-person video is a popular research area in the vision community , with methods aiming to recover 3D joint positions , 3D joint angles with respect to a parametric human model , and dense body parts . Notice that all these methods are purely kinematic and disregard physical reasoning. They also do not recover the global 3D root position and are evaluated by zeroing out the body center (root-relative). A smaller number of works factor in human dynamics through postprocessing, physics-based trajectory optimization, or using a differentiable physics model. These approaches can produce physically-plausible human motion, but since they do not utilize a physics simulator and does not model contact, they can not faithfully model human-object interaction. SimPoE , a recent work on third-person pose estimation using simulated character control, is most related to ours, but 1) trains a single and dataset-specific humanoid controller per dataset; 2) designs the kinematic model to be independent from simulation states.

Egocentric human pose estimation. Compared to third-person human pose estimation, there are only a handful of attempts at estimating 3D full body poses from egocentric videos due to the ill-posed nature of this task. Most existing methods still assume partial visibility of body parts in the image , often through a downward-facing camera. Among works where the human body is mostly not observable , Jiang \etal use a kinematics-based approach where they construct a motion graph from the training data and recover the pose sequence by solving the optimal pose path. Ng \etal focus on modeling person-to-person interactions from egocentric videos and inferring the wearer’s pose conditioning on the other person’s pose. The works most related to ours are which use dynamics-based approaches and map visual inputs to control signals to perform physically-plausible human motion inside a physics simulation. They show impressive results on a set of noninteractive locomotion tasks, but also observe large errors in absolute 3D position tracking–mapping directly from the visual inputs to control signals is a noisy process and prone to error accumulation. In comparison, our work jointly models kinematics and dynamics, and estimates a wider range of human motion and human-object interactions while improving absolute 3D position tracking. To the best of our knowledge, we are the first approach to estimate the 3D human poses from egocentric video while factoring in human-object interactions.

Humanoid control inside physics simulation. Our work is also connected to controlling humanoids to mimic reference motion and interact with objects inside a physics simulator. The core motivation of these works is to learn the necessary dynamics to imitate or generate human motion in a physics simulation. Deep RL has been the predominant approach in this line of work since physics simulators are typically not end-to-end differetiable. Goal-oriented methods does not involve motion imitation and are evaluated on task completion (moving an object, sitting on a chair, moving based on user-input \etc). Consequently, these frameworks only need to master a subset of possible motions for task completion. People, on the other hand, have a variety of ways to perform actions, and our agent has to follow the trajectory predefined by egocentric videos. Motion imitation methods aim to control characters to mimic a sequence of reference motion, but have been limited to performing a single clip or high-quality MoCap motion (and requires fine-tuning to generalize to other motion generators). In contrast, our dynamics controller is general and can be used to perform everyday motion and human-object interactions estimated by a kinematic motion estimator without task-specific fine-tuning.

Method

The problem of egocentric pose estimation can be formulated as follows: from a wearable camera footage I1:T\boldsymbol{I}_{1:T}, we want to recover the wearer’s ground truth global 3D poses q^1:T{\widehat{\boldsymbol{q}}_{1:T}}. Each pose q^t≜(r^tpos,r^trot,j^trot)\widehat{\boldsymbol{q}}_{t}\triangleq(\widehat{\boldsymbol{r}}^{\text{pos}}_{t},\widehat{\boldsymbol{r}}^{\text{rot}}_{t},\widehat{\boldsymbol{j}}^{\text{rot}}_{t}) consists of the root position r^tpos\widehat{\boldsymbol{r}}^{\text{pos}}_{t}, root orientation r^trot\widehat{\boldsymbol{r}}^{\text{rot}}_{t} , and body joint angles j^trot\widehat{\boldsymbol{j}}^{\text{rot}}_{t} of the human model. Here we adopt the popular SMPL human model and the humanoid we use in physics simulation is created from the kinematic structure and mean body shape defined by SMPL. Our framework first learns a Universal Humanoid Controller (UHC) from a large MoCap dataset (Sec. 3.1). The learned UHC can be viewed as providing the lower level muscle skills of a real human, trained by mimicking thousands of human motion sequences. Using the trained UHC, we learn our kinematic policy (Sec. 3.2) through dynamics-regulated training (Sec. 3.3). At the test time, the kinematic policy provides per-step target motion to the UHC, forming a closed-loop system that operates inside the physics simulation to control a humanoid. The result of the UHC and physics simulation is then used as input to the kinematic policy to produce the next-frame target motion, as depicted in Fig. 1. As a notation convention, we use ⋅~\widetilde{\cdot} to denote kinematic quantities (obtained without using physics simulation), ⋅^\widehat{\cdot} to denote ground truth quantities, and normal symbols without accents to denote quantities from the physics simulation.

State. The state st≜(qt,q˙t)\boldsymbol{s}_{t}\triangleq\left({\boldsymbol{q}}_{t},\dot{\boldsymbol{q}}_{t}\right) of the humanoid contains the character’s current pose qt{\boldsymbol{q}}_{t} and joint velocity q˙t\dot{\boldsymbol{q}}_{t}. Here, the state st\boldsymbol{s}_{t} encapsulates the humanoid’s full physical state at time step tt. It only includes information about the current frame (qt,q˙t)({\boldsymbol{q}}_{t},\dot{\boldsymbol{q}}_{t}) and does not include any extra information, enabling our learned controller to be guided by a target pose only.

Action. The action at\boldsymbol{a}_{t} specifies the target joint angles for the proportional derivative (PD) controller at each degree of freedom (DoF) of the humanoid joints except for the root (pelvis). We use the residual action representation : qtd=q^t+1+at\boldsymbol{q}^{d}_{t}=\widehat{\boldsymbol{q}}_{t+1}+\boldsymbol{a}_{t}, where qtd\boldsymbol{q}^{d}_{t} is the final PD target, at\boldsymbol{a}_{t} is the output of the control policy πUHC{\boldsymbol{\pi}}_{\text{UHC}}, and q^t+1\widehat{\boldsymbol{q}}_{t+1} is the target pose. The torque to be applied at joint ii is: τi=kp∘(qtd−qt)−kd∘q˙t{\boldsymbol{\tau}}^{i}={\boldsymbol{k}}^{p}\circ(\boldsymbol{q}^{d}_{t}-\boldsymbol{q}_{t})-\boldsymbol{k}^{d}\circ\dot{\boldsymbol{q}}_{t} where kp\boldsymbol{k}^{p} and kd\boldsymbol{k}^{d} are manually specified gains and ∘\circ is the element-wise multiplication. As observed in prior work , allowing the policy to apply external residual forces ηt\boldsymbol{\eta}_{t} to the root helps stabilizing the humanoid, so our final action is at≜(Δq~td,ηt){\boldsymbol{a}}_{t}\triangleq(\Delta\widetilde{\boldsymbol{q}}^{d}_{t},\boldsymbol{\eta}_{t}).

Policy. The policy πUHC(at∣st,q^t+1)\boldsymbol{\boldsymbol{\pi}}_{\text{UHC}}(\boldsymbol{a}_{t}|\boldsymbol{s}_{t},\widehat{\boldsymbol{q}}_{t+1}) is represented by a Gaussian distribution with a fixed diagonal covariance matrix Σ\Sigma. We first use a feature extraction layer Ddiff(q^t+1,qt)D_{\text{diff}}(\widehat{\boldsymbol{q}}_{t+1},{\boldsymbol{q}}_{t}) to compute the root and joint offset between the simulated pose and target pose. All features are then translated to a root-relative coordinate system using an agent-centic transform TAC{\boldsymbol{T}}_{\text{AC}} to make our policy orientation-invariant. We use a Multi-layer Perceptron (MLP) as our policy network to map the augmented state TAC(qt,q˙t,q^t+1,Ddiff(q^t+1,qt)){\boldsymbol{T}}_{\text{AC}}\left({\boldsymbol{q}}_{t},\dot{\boldsymbol{q}}_{t},\widehat{\boldsymbol{q}}_{t+1},D_{\text{diff}}(\widehat{\boldsymbol{q}}_{t+1},{\boldsymbol{q}}_{t})\right) to the predicted action at\boldsymbol{a}_{t}.

Reward function. For UHC, the reward function is designed to encourage the simulated pose qt{\boldsymbol{q}}_{t} to better match the target pose q^t+1\widehat{\boldsymbol{q}}_{t+1}. Since we share a similar objective (mimic target motion), our reward is similar to Residual Force Control .

Training procedure. We train our controller on the AMASS dataset, which contains 11505 high-quality MoCap sequences with 4000k frame of poses (after removing sequences involving human-object interaction like running on a treadmill). At the beginning of each episode, a random fixed length sequence (300 frames) is sampled from the dataset for training. While prior works uses more complex motion clustering techniques to sample motions, we devise a simple yet empirically effective sampling technique by inducing a probability distribution based on the value function. For each pose frame q^j\widehat{\boldsymbol{q}}_{j} in the dataset, we first compute an initialization state s1j\boldsymbol{s}^{j}_{1}: s1j≜(q^j,0)\boldsymbol{s}^{j}_{1}\triangleq\left(\widehat{\boldsymbol{q}}_{j},\boldsymbol{0}\right), and then score it using the value function to access how well the policy can mimic the sequence q^j:T\widehat{\boldsymbol{q}}_{j:T} starting from this pose: V(s1j,q^j+1)=vjV(\boldsymbol{s}^{j}_{1},\widehat{\boldsymbol{q}}_{j+1})=v_{j}. Intuitively, the higher vj\boldsymbol{v}_{j} is, the more confident our policy is in mimicing this sequence, and the less often we should pick this frame. The probability of choosing frame jj, comparing against all frames JJ in the AMASS dataset, is then P(q^j)=exp⁡(−vj/τ)∑iJexp⁡(−vi/τ)P(\widehat{\boldsymbol{q}}_{j})=\frac{\exp(-v_{j}/\tau)}{\sum_{i}^{J}\exp(-v_{i}/\tau)} where τ\tau is the sampling temperature. More implementation details about the reward, training and evaluation of UHC can be found in Appendix C.

2 Kinematic Model – Object-aware Kinematic Policy

To leverage the power of our learned UHC, we design an auto-regressive and object-aware kinematic policy to generate per-frame target motion from egocentric inputs. We synchronize the state space of our kinematic policy and UHC such that the policy can be learned with or without physics simulation. When trained without physics simulation, the model is purely kinematic and can be optimized via supervised learning; when trained with a physics simulation, the model can be optimized through a combination of supervised learning and reinforcement learning. The latter procedure, coined dynamics-regulated training, enables our model to distill human dynamics information learned from large-scale MoCap data into the kinematic model and learns a policy more robust to convariate shifts. In this section, we will describe the architecture of the policy itself and the training through supervised learning (without physics simulation).

Scene context modelling and initialization. To serve as a high-level target motion estimator for egocentric videos with potential human-object interaction, our kinematic policy needs to be object-aware and grounded with visual input. To this end, given an input image sequence I1:T\boldsymbol{I}_{1:T}, we compute the initial object states o~1\widetilde{\boldsymbol{o}}_{1}, camera trajectory h~1:T\widetilde{\boldsymbol{h}}_{1:T} or image features ϕ1:T\boldsymbol{\phi}_{1:T} as inputs to our system. The object states, ot~≜(o~tcls,o~tpos,o~trot)\widetilde{\boldsymbol{o}_{t}}\triangleq(\widetilde{\boldsymbol{o}}^{cls}_{t},\widetilde{\boldsymbol{o}}^{\text{pos}}_{t},\widetilde{\boldsymbol{o}}^{\text{rot}}_{t}), is modeled as a vector concatenation of the main object-of-interest’s class o~tcls\widetilde{\boldsymbol{o}}^{cls}_{t}, 3D position o~tpos\widetilde{\boldsymbol{o}}^{\text{pos}}_{t}, and rotation o~trot\widetilde{\boldsymbol{o}}^{\text{rot}}_{t}. ot~\widetilde{\boldsymbol{o}_{t}} is computed using an off-the-shelf object detector and pose estimator . When there are no objects in the current scene (for walking and running \etc), the object states vector is set to zero. To provide our model with movement cues, we can either use image level optical flow feature ϕ1:T{\boldsymbol{\phi}}_{1:T} or camera trajectory extracted from images using SLAM or VIO. Concretely, the image features ϕ1:T{\boldsymbol{\phi}}_{1:T} is computed using an optical flow extractor and ResNet . The camera trajectory in our real-world experiments are computed using an off-the-shelf VIO method : h~t≜(h~tpos,h~trot)\widetilde{\boldsymbol{h}}_{t}\triangleq(\widetilde{\boldsymbol{h}}^{\text{pos}}_{t},\widetilde{\boldsymbol{h}}^{\text{rot}}_{t}) (position h~tpos\widetilde{\boldsymbol{h}}^{\text{pos}}_{t} and orientation h~trot\widetilde{\boldsymbol{h}}^{\text{rot}}_{t}). As visual input can be noisy, using the camera trajectory h~t\widetilde{\boldsymbol{h}}_{t} directly significantly improves the performance of our framework as shown in our ablation studies (Sec. 4.2).

To provide our UHC with a plausible initial state for simulation, we estimate q~1\boldsymbol{\widetilde{q}}_{1} from the scene context features o~1:T\widetilde{\boldsymbol{o}}_{1:T} and ϕ1:T\boldsymbol{\phi}_{1:T} / h~1:T\widetilde{\boldsymbol{h}}_{1:T}. We use an Gated Recurrent Unit (GRU) based network to regress the initial agent pose q~1\boldsymbol{\widetilde{q}}_{1}. Combining the above procedures, we obtain the context modelling and initialization model πKINinit\boldsymbol{\pi}_{\text{KIN}}^{\text{init}}: [q~1,o~1,h~1:T/ϕ1:T,]=πKINinit(I1:T)[\boldsymbol{\widetilde{q}}_{1},\widetilde{\boldsymbol{o}}_{1},\widetilde{\boldsymbol{h}}_{1:T}/\boldsymbol{\phi}_{1:T},]=\boldsymbol{\pi}_{\text{KIN}}^{\text{init}}({\boldsymbol{I}_{1:T}}). Notice that to constrain the ill-posed problem of egocentric pose estimation, we assume known object category, rough size, and potential mode of interaction. We use these knowledge as a prior for our per-step model.

When trained without physics simulation, we auto-regressively apply the kinematic policy and use the computed q~t+1\widetilde{\boldsymbol{q}}_{t+1} as the input for the next timestep. This procedure is outlined at Alg. 1. Since all mentioned calculations are end-to-end differentiable, we can directly optimize our πKINinit{\boldsymbol{\pi}}^{\text{init}}_{\text{KIN}} and πKINstep{\boldsymbol{\pi}}^{\text{step}}_{\text{KIN}} through supervised learning. Specifically, given ground truth q^1:T\widehat{\boldsymbol{q}}_{1:T} and estimated q~1:T\widetilde{\boldsymbol{q}}_{1:T} pose sequence, our loss is computed as the difference between the desired and ground truth values of the following quantities: agent root position (r^tpos\widehat{\boldsymbol{{r}}}^{\text{pos}}_{t} vs r~tpos\widetilde{\boldsymbol{{r}}}^{\text{pos}}_{t}) and orientation (r^trot\widehat{\boldsymbol{{r}}}^{\text{rot}}_{t} vs r~trot\widetilde{\boldsymbol{{r}}}^{\text{rot}}_{t}), agent-centric object position (o^t′pos\widehat{\boldsymbol{o}}^{\prime\text{pos}}_{t} vs o~t′pos\widetilde{\boldsymbol{o}}^{\prime\text{pos}}_{t}) and orientation (o^t′rot\widehat{\boldsymbol{o}}^{\prime\text{rot}}_{t} vs o~t′rot\widetilde{\boldsymbol{o}}^{\prime\text{rot}}_{t}), and agent joint orientation (j^trot\widehat{\boldsymbol{j}}^{\text{rot}}_{t} vs j~trot\widetilde{\boldsymbol{j}}^{\text{rot}}_{t}) and position (j^tpos\widehat{\boldsymbol{j}}^{\text{pos}}_{t} vs j~tpos\widetilde{\boldsymbol{j}}^{\text{pos}}_{t}, computed using forward kinematics):

3 Dynamics-Regulated Training

To tightly integrate our kinematic and dynamics models, we design a dynamics-regulated training procedure, where the kinematic policy learns from explicit physics simulation. In the procedure described in the previous section, the next-frame pose fed into the network is computed through finite integration and is not checked by physical laws: whether a real human can perform the computed pose is never verified. Intuitively, this amounts to mentally think about moving in a physical space without actually moving. Combining our UHC and our kinematic policy, we can leverage the prelearned motor skills from UHC and let the kinematic policy act directly in a simulated physical space to obtain feedback about physical plausibility. The procedure for dynamics-regulated training is outlined in Alg. 2. In each episode, we use πKINinit\boldsymbol{\pi}^{\text{init}}_{\text{KIN}} and πKINstep\boldsymbol{\pi}^{\text{step}}_{\text{KIN}} as in Alg. 1, with the key distinction being: at the next timestep t+1t+1, the input to the kinematic policy is the result of UHC and physics simulation qt+1\boldsymbol{q}_{t+1} instead of q~t+1\widetilde{\boldsymbol{q}}_{t+1}. qt+1\boldsymbol{q}_{t+1} explicitly verify that the q~t+1\widetilde{\boldsymbol{q}}_{t+1} produced by the kinematic policy can be successfully followed by a motion controller. Using qt+1\boldsymbol{q}_{t+1} also informs our πKINstep\boldsymbol{\pi}^{\text{step}}_{\text{KIN}} of the current humanoid state and encourages the policy to adjust its predictions to improve humanoid stability.

Dynamics-regulated optimization. Since the physics simulation is not differentiable, we cannot directly optimize the simulated pose qt\boldsymbol{q}_{t}; however, we can optimize qt\boldsymbol{q}_{t} through reinforcement learning and q~t\widetilde{\boldsymbol{q}}_{t} through supervised learning. Since we know that qt^\widehat{\boldsymbol{q}_{t}} is a good guess reference motion for UHC, we can directly optimize q~t\widetilde{\boldsymbol{q}}_{t} via supervised learning as done in Sec. 3.2 using the loss defined in Eq. 2. Since the data samples are collected through physics simulation, the input qt\boldsymbol{q}_{t} is physically-plausible and more diverse than those collected purely through auto-regressively applying πKINstep\boldsymbol{\pi}_{\text{KIN}}^{\text{step}} in Alg. 1. This way, our dynamics-regulated training procedure performs a powerful data augmentation step, exposing πKINstep\boldsymbol{\pi}_{\text{KIN}}^{\text{step}} with diverse states collected from simulation.

However, MoCap pose q^t\widehat{\boldsymbol{q}}_{t} is imperfect and can contain physical violations itself (foot-skating, penetration \etc), so asking the policy πKINstep\boldsymbol{\pi}_{\text{KIN}}^{\text{step}} to produce q^t\widehat{\boldsymbol{q}}_{t} as reference motion regardless of the current humanoid state can lead to instability and cause the humanoid to fall. The kinematic policy should adapt to the current simulation state and provide reference motion q~t\widetilde{\boldsymbol{q}}_{t} that can lead to poses similar to q^t\widehat{\boldsymbol{q}}_{t} yet still physically-plausible. Such behavior will not emerge through supervised learning and require trial and error. Thus, we optimize πKINstep\boldsymbol{\pi}_{\text{KIN}}^{\text{step}} through reinforcement learning and reward maximization. We design our RL reward to have two components: motion imitation and dynamics self-supervision. The motion imitation reward encourages the policy to match the computed camera trajectory h~t\widetilde{\boldsymbol{h}}_{t} and MoCap pose q^t\widehat{\boldsymbol{q}}_{t}, and serves as a regularization on motion imitation quality. The dynamics self-supervision reward is based on the insight that the disagreement between q~t\widetilde{\boldsymbol{q}}_{t} and qt{\boldsymbol{q}}_{t} contains important information about the quality and physical plausibility of q~t\widetilde{\boldsymbol{q}}_{t}: the better q~t\widetilde{\boldsymbol{q}}_{t} is, the easier it should be for UHC to mimic it. Formally, we define the reward for πKINstep\boldsymbol{\pi}_{\text{KIN}}^{\text{step}} as:

whpw_{\text{hp}}, whqw_{\text{hq}} are weights for matching the extracted camera position h~tpos\widetilde{\boldsymbol{h}}^{\text{pos}}_{t} and orientation h~trot\widetilde{\boldsymbol{h}}^{\text{rot}}_{t}; wjrgt,wjvgtw^{\text{gt}}_{jr},w^{\text{gt}}_{\text{jv}} are for matching ground truth joint angles j^rot{\widehat{\boldsymbol{j}}}^{\text{rot}} and angular velocities j˙trot^\widehat{\boldsymbol{\dot{j}}^{\text{rot}}_{t}}. wjrdynaw_{\text{jr}}^{\text{dyna}}, wjpdynaw_{\text{jp}}^{\text{dyna}} are weights for the dynamics self-supervision rewards, encouraging the policy to match the target kinematic joint angles j~trot\widetilde{\boldsymbol{j}}^{\text{rot}}_{t} and positions j~tpos\widetilde{\boldsymbol{j}}^{\text{pos}}_{t} to the simulated joint angles jtrot{\boldsymbol{j}}^{\text{rot}}_{t} and positions jtpos{\boldsymbol{j}}^{\text{pos}}_{t}. As demonstrated in Sec. 4.2, the RL loss is particularly helpful in adapting to challenging real-world sequences, which requires the model to adjust to domain shifts and unseen motion.

Test-time. At the test time, we follow the same procedure outlined in Alg 2 and Fig.1 to roll out our policy to obtain simulated pose q1:T{\boldsymbol{q}}_{1:T} given a sequence of images I1:T\boldsymbol{I}_{1:T}. The difference being instead of sampling from πKINstep(ct)\boldsymbol{\pi}_{\text{KIN}}^{\text{step}}(\boldsymbol{c}_{t}) as a Guassian policy, we use the mean action directly.

Experiments

Datasets. As no public dataset contains synchronized ground-truth full-body pose, object pose, and egocentric videos with human-object interactions, we record two egocentric datasets: one inside a MoCap studio, another in the real-world. The MoCap dataset contains 266 sequences (148k frames) of paired egocentric videos and annotated poses. It features one of the five actions: sitting down on a chair, avoiding obstacles, stepping on a box, pushing a box, and generic locomotion (walking, running, crouching) recorded using a head-mounted GoPro. Each action has around 5050 sequences with different starting position and facing, gait, speed \etc. We use an 80\mbox−−2080\mbox{--}20 train test data split on this MoCap dataset. The real-world dataset is only for testing purpose and contains 183 sequences (50k frames) of an additional subject performing similar actions in an everyday setting wearing a head-mounted iPhone. For both datasets, we use different objects and varies the object 6DoF pose for each capture take. Additional details (diversity, setup \etc) can be found in Appendix D.

Evaluation metrics. We use both pose-based and physics-based metrics for evaluation. To evaluate the 3D global pose accuracy, we report the root pose error (Eroot\text{E}_{\text{root}}) and root-relative mean per joint position error (Empjpe\text{E}_{\text{mpjpe}}). When ground-truth root/pose information is unavailable (for real-world dataset), we substitute Eroot\text{E}_{\text{root}} with Ecam\text{E}_{\text{cam}} to report camera pose tracking error. We also employ four physics based pose metrics: acceleration error (Eacc\text{E}_{\text{acc}}), foot skating ( FS), penetration (PT), and interaction success rate (Sinter\text{S}_{\text{inter}}). Eacc\text{E}_{\text{acc}} (mm/frame2) compares the ground truth and estimated average joint acceleration; FS (mm) is defined the same as in Ling \etal; PT (mm) measures the average penetration distance between our humanoid and the scene (ground floor and objects). Notice that our MoCap dataset has an penetration of 7.182 mm and foot sliding of 2.035 mm per frame, demonstrating that the MoCap data is imperfect and may not serve as the best target motion. Sinter\text{S}_{\text{inter}} is defined as whether the objects of interest has been moved enough (pushing and avoiding) or if desired motion is completed (stepping and sitting). If the humanoid falls down at any point, Sinter=0\text{S}_{\text{inter}}=0. For a full definition of our evaluation metrics, please refer to Appendix B.

Baseline methods. To show the effectiveness of our framework, we compare with the previous state-of-the-art egocentric pose estimation methods: (1) the best dynamics-based approach EgoPose and (2) the best kinematics-based approach PoseReg, also proposed in . We use the official implementation and augment their input with additional information (ot~\widetilde{\boldsymbol{o}_{t}} or h~t\widetilde{\boldsymbol{h}}_{t}) for a fair comparison. In addition, we incorporate the fail-safe mechanism to reset the simulation when the humanoid loses balance to ensure the completion of each sequence (details in Appendix B).

Implementation details. We use the MuJoCo free physics simulator and run the simulation at 450 Hz. Our learned policy is run every 15 timesteps and assumes that all visual inputs are at 30 Hz. The humanoid follows the kinematic and mesh definition of the SMPL model and has 25 bones and 76 DoF. We train our method and baselines on the training split (202 sequences) of our MoCap dataset. The training process takes about 1 day on an RTX 2080-Ti with 35 CPU threads. After training and the initialization step, our network is causal and runs at 50 FPS on an Intel desktop CPU. The main evaluation is conducted using head poses, and we show results on using the image features in ablation. For more details on the implementation, refer to Appendix B and C.

MoCap dataset results. Table 1 shows the quantitative comparison of our method with the baselines. All results are averaged across five actions, and all models have access to the same inputs. We observe that our method, trained either with supervised learning or dynamics-regulated, outperform the two state-of-the-art methods across all metrics. Not surprisingly, our purely kinematic model performs the best on pose-based metrics, while our dynamics-regulated trained policy excels at the physics-based metrics. Comparing the kinematics-only models we can see that our method has a much lower (79.4% error reduction) root and joint position error (62.1% error reduction) than PoseReg, which shows that our object-aware and autoregressive design of the kinematic model can better utilize the provided visual and scene context and avoid compounding errors. Comparing with the dynamics-based methods, we find that the humanoid controlled by EgoPose has a much larger root drift, often falls down to the ground, and has a much lower success rate in human-object interaction (48.4 % vs 96.9%). Upon visual inspection in Fig. 2, we can see that our kinematic policy can faithfully produce human-object interaction on almost every test sequence from our MoCap dataset, while PoseReg and EgoPose often miss the object-of-interest (as can be reflected by the large root tracking error). Both of the dynamics-based methods has smaller acceleration error, foot skating, and penetration; some even smaller than MoCap (which has 2 mm FS and 7mm PT). Notice that our joint position error is relatively low compared to state-of-the-art third-person pose estimation methods due to our strong assumption about known object of interest, its class, and potential human-object interactions, which constrains the ill-posed problem pose estimation from just front-facing cameras.

Real-world dataset results. The real-world dataset is far more challenging, having similar number of sequences (183 clips) as our training set (202 clips) and recorded using different equipment, environments, and motion patterns. Since no ground-truth 3D poses are available, we report our results on camera tracking and physics-based metrics. As shown in Table 1, our method outperforms the baseline methods by a large margin in almost all metrics: although EgoPose has less foot-skating (as it also utilizes a physics simulator), its human-object interaction success rate is extremely low. This can be also be reflected by the large camera trajectory error, indicating that the humanoid is drifting far away from the objects. The large drift can be attributed to the domain shift and challenging locomotion from the real-world dataset, causing EgoPose’s humanoid controller to accumulate error and lose balance easily. On the other hand, our method is able to generalize and perform successful human-object interactions, benefiting from our pretrained UHC and kinematic policy’s ability to adapt to new domains and motion. Table 1 also shows a success rate breakdown by action. Here we can see that “stepping on a box" is the most challenging action as it requires the humanoid lifting its feet at a precise moment and pushing itself up. Note that our UHC has never been trained on any stepping or human-object interaction actions (as AMASS has no annotated object pose) but is able to perform these action. As motion is best seen in videos, we refer readers to our supplementary video.

2 Ablation Study

To evaluate the importance of our components, we train our kinematic policy under different configurations and study its effects on the real-world dataset, which is much harder than the MoCap dataset. The results are summarized in Table 2. Row 1 (R1) corresponds to training the kinematic policy only with Alg. 1 only and use UHC to mimic the target kinematic motion as a post-processing step. Row 2 (R2) are the results of using dynamics-regulated training but only performs the supervised learning part. R3 show a model trained with optical flow image features rather than the estimated camera pose from VIO. Comparing R1 and R2, the lower interaction success rate (73.2% vs 80.9%) indicates that exposing the kinematic policy to states from the physics simulation serves as a powerful data augmentation step and leads to a model more robust to real-world scenarios. R2 and R4 show the benefit of the RL loss in dynamics-regulated training: allowing the kinematic policy to deviate from the MoCap poses makes the model more adaptive and achieves higher success rate. R3 and R4 demonstrate the importance of intelligently incorporating extracted camera pose as input: visual features ϕt\boldsymbol{\phi}_{t} can be noisy and suffer from domain shifts, and using techniques such as SLAM and VIO to extract camera poses as an additional input modality can largely reduce the root drift. Intuitively, the image features computed from optical flow and the camera pose extracted using VIO provide a similar set of information, while VIO provides a cleaner information extraction process. Note that our kinematic policy without using extracted camera trajectory outperforms EgoPose that uses camera pose in both success rate and camera trajectory tracking. Upon visual inspection, the humanoid in R3 largely does not fall down (compared to EgoPose) and mainly attributes the failure cases to drifting too far from the object.

Discussions

Although our method can produce realistic human pose and human-object interaction estimation from egocentric videos, we are still at the early stage of this challenging task. Our method performs well in the MoCap studio setting and generalizes to real-world settings, but is limited to a predefined set of interactions where we have data to learn from. Object class and pose information is computed by off-the-shelf methods such as Apple’s ARkit , and is provided as a strong prior to our kinematic policy to infer pose. We also only factor in the 6DoF object pose in our state representation and discard all other object geometric information. The lower success rate on the real-world dataset also indicates that our method still suffers from covariate shifts and can become unstable when the shift becomes too extreme. Our Universal Humanoid Controller can imitate everyday motion with high accuracy, but can still fail at extreme motion. Due to the challenging nature of this task, in this work, we focus on developing a general framework to ground pose estimation with physics by merging the kinematics and dynamics aspects of human motion. To enable pose and human-object interaction estimation for arbitrary actions and objects, better scene understanding and kinematic motion planning techniques need to be developed.

2 Conclusion and Future Work

In this paper, we tackle, for the first time, estimating physically-plausible 3D poses from an egocentric video while the person is interacting with objects. We collect a motion capture dataset and real-world dataset to develop and evaluate our method, and extensive experiments have shown that our method outperforms all prior arts. We design a dynamics-regulated kinematic policy that can be directly trained and deployed inside a physics simulation, and we purpose a general-purpose humanoid controller that can be used in physics-based vision tasks easily. Through our real-world experiments, we show that it is possible to estimate 3D human poses and human-object interactions from just an egocentric view captured by consumer hardware (iPhone). In the future, we would like to support more action classes and further improve the robustness of our method by techniques such as using a learned motion prior. Applying our dynamics-regulated training procedure to other vision tasks such as visual navigation and third-person pose estimation can also be of interest.

Acknowledgements: This project was sponsored in part by IARPA (D17PC00340), and JST AIP Acceleration Research Grant (JPMJCR20U1).

References

Appendix A Qualitative Results (Supplemantry Video)

As motion is best seen in videos, we provide extensive qualitative evaluations in the supplementary video. Here we list a timestamp reference for evaluations conducted in the video:

Qualitative results from real-world videos (00:12).

Comparison with the state-of-the-art methods on the MoCap dataset’s test split (01:27).

Comparison with the state-of-the-art methods on the real-world dataset (02:50).

Failure cases for the dynamics-regulated kinematic policy (04:23).

Qualitative results from the Universal Humanoid Controller (UHC) (4:39).

Appendix B Dynamics-regulated Kinematic Policy

Here we provide details about our proposed evaluation metrics:

Root error: Eroot\bf E_{\text{root}} compares the estimated and ground truth root rotation and orientation, measuring the difference in the respective 4×44\times 4 transformation matrix (Mt\boldsymbol{M}_{t}): 1T∑t=1T∥I−(MtM^t−1)∥F\frac{1}{T}\sum_{t=1}^{T}\|I-(\boldsymbol{M}_{t}\widehat{\boldsymbol{M}}_{t}^{-1})\|_{F}. This metric reflects both the position and orientation tracking quality.

Mean per joint position error: Empjpe\bf E_{\text{mpjpe}} (mm) is the popular 3D human pose metric and is defined as 1J∥jpos−j^pos∥2\frac{1}{J}\|{\boldsymbol{j}}^{\text{pos}}-\widehat{\boldsymbol{j}}^{\text{pos}}\|_{2} for JJ number of joints. This value is root-relative and is computed after setting the root translation to zero.

Acceleration error: Eacc\text{E}_{\text{acc}} (mm/frame2) measures the difference between the ground truth and estimated joint position acceleration: 1J∥j¨pos−j¨^pos∥2\frac{1}{J}\|\ddot{\boldsymbol{j}}^{\text{pos}}-\widehat{\ddot{\boldsymbol{j}}}^{\text{pos}}\|_{2}.

Foot sliding: FS (mm) is computed similarly as in , \ieFS=d(2−2h/H){\text{FS}}=d\left(2-2^{h/H}\right) where dd is the foot displacement and hh is the foot height of two consecutive poses. We use a height threshold of H=33H=33 mm, the same as in .

Penetration: PT (mm) is provided by the physics simulation. It measures the per-frame average penetration distance between our simulated humanoid and the scene (ground and objects). Notice that Mujoco uses a soft contact model where a larger penetration will result in a larger repulsion force, so a small amount of penetration is expected.

Camera trajectory error: Ecam\bf E_{\text{cam}} is defined the same as the root error, and measures the camera trajectory tracking instead of the root. To extract the camera trajectory from the estimated pose qt\boldsymbol{q}_{t}, we use the head pose of the humanoid and apply a delta transformation based on the camera mount’s vertical and horizontal displacement from the head.

Human-object interaction success rate: Sinter\text{S}_{\text{inter}} measures whether the desired human-object interaction is successful. If the humanoid falls down at any point during the sequence, the sequence is deemed unsuccessful. The success rate is measured automatically by querying the position, contact, and simulation states of the objects and humanoid. For each action:

Sitting down: successful if the humanoid’s pelvis or the roots of both legs come in contact with the chair at any point in time.

Pushing a box: successful if the box is moved more than 10 cm during the sequence.

Stepping on a box: successful if the humanoid’s root is raised at least 10 cm off the ground and either foot of the humanoid has come in contact with the box.

Avoiding an obstacle: successful if the humanoid has not come in contact with the obstacle and the ending position of the root/camera is less than 50 cm away from the desired position (to make sure the humanoid does not drift far away from the obstacle).

B.2 Fail-safe during evaluation

B.3 Implementation Details

The kinematic policy is implemented as a Gated Recurrent Unit (GRU) based network with 1024 hidden units, followed by a three-layer MLP (1024, 512, 256) with ReLU activation. The value function for training the kinematic policy through reinforcement learning is a two-layer MLP (512, 256) with ReLU activation. We use a fixed diagonal covariance matrix and train for 1000 epoches using the Adam optimizer. Hyperparameters for training can be found in Table. 5:

B.4 Additional Experiments about Stochasticity

Our kinematic policy is trained through physics simulation and samples a random sequence from the MoCap dataset for each episode. Here we study the stochasticity that rises from this process. We train our full pipeline with three different random seeds and report its results with error bars on both the MoCap test split and the real-world dataset. As can be seen in Table 4, our method has very small stochasticity and maintains high performance on both the MoCap test split and the real-world dataset, demonstrating the robustness of our dynamics-regulated kinematic policy. Across different random seeds, we can see that “stepping" is consistently the hardest action and “avoiding" is the easiest. Intuitively, “stepping" requires precise coordination between the kinematic policy and the UHC for lifting the feet and pushing up, while “avoiding" only requires basic locomotion skills.

B.5 Additional Analysis into low Per Joint Error

As discussed in the results section, we notice that our Mean Per Joint Position Error is relatively low compared to third-person pose estimation methods, although egocentric pose estimation is arguably a more ill-posed task. To provide an additional analysis of this observation, here we report the per-joint positional errors for the four joints with the smallest and largest errors, in ascending order:

As can be seen in the results, the toes and hands have much larger errors. This is expected as inferring hand and toe movements from only the egocentric view is challenging, and our network is able to extrapolate their position based on physical laws and prior knowledge of the scene context. Different from a third-person pose estimation setting, correctly estimating the torso area can be much easier from an egocentric point of view since torso movement is highly correlated with head motion. In summary, the low MPJPE reported on our MoCap dataset is the result of 1) only modeling a subset of possible human actions and human-object interactions, 2) the nature of the egocentric pose estimation task, 3) our network’s incorporation of physical laws and scene context, which reduces the number of possible trajectories.

Appendix C Universal Humanoid Controller

Reward function. The imitation reward function per timestep, similar to the reward defined in Yuan \etal is as follows:

where wjr,wjp,wjv,wresw_{\text{jr}},w_{\text{jp}},w_{\text{jv}},w_{\text{res}} are the weights of each reward. The joint rotation reward rjr{r_{\text{jr}}} measures the difference between the simulated joint rotation jtrot\boldsymbol{j}^{\text{rot}}_{t} and the target jtrot^\widehat{{\boldsymbol{j}}^{\text{rot}}_{t}} in quaternion for each joint on the humanoid. The joint position reward rjp\boldsymbol{r}_{\text{jp}} computes the distance between each joint’s position jtpos\boldsymbol{j}^{\text{pos}}_{t} and the target joint position jtpos^\widehat{{\boldsymbol{j}}^{\text{pos}}_{t}}. The joint velocity reward rjv\boldsymbol{r}_{\text{jv}} penalizes the deviation of the estimated joint angular velocity j˙trot{\dot{\boldsymbol{j}}}^{\text{rot}}_{t} from the target j˙^trot\widehat{\dot{\boldsymbol{j}}}^{\text{rot}}_{t}. The target velocity is computed from the data via finite difference. All above rewards include every joint on the humanoid model (including the root joint), and are calculated in the world coordinate frame. Finally, the residual force reward rres\boldsymbol{r}_{\text{res}} encourages the policy to rely less on the external force and penalize for a large ηt\boldsymbol{\eta}_{t}:

We train our Universal Humanoid Controller for 10000 epoches, which takes about 5 days. Additional hyperparameters for training the UHC can be found in Table 6:

Training data clearning We use the AMASS dataset for training our UHC. The original AMASS dataset contains 13944 high-quality motion sequences, and around 2600 of them contain human-object interactions such as sitting on a chair, walking on a treadmill, and walking on a bench. Since AMASS does not contain object information, we can not faithfully recreate and simulate the human-object interactions. Thus, we use a combination of heuristics and visual inspection to remove these sequences. For instance, we detect sitting sequences through finding combinations of the humanoid’s root, leg, and torso angles that correspond to the sitting posture; we find walking-on-a-bench sequences through detecting a prolonged airborne period; for sequences that are difficult to detect automatically, we conduct manual visual inspection. After the data cleaning process, we obtain 11299 motion sequences that do not contain human-object interaction for our UHC to learn from.

C.2 Evaluation on AMASS

To evaluate our Universal Humanoid Controller’s ability to learn to imitate diverse human motion, we run our controller on the full AMASS dataset (after removing sequences that include human-object interactions) that we trained on. After data cleaning, the AMASS dataset contains 11299 high quality motion sequences, and contains challenging sequences such as kickboxing, dancing, backflipping, crawling, etc. We use a subset of metrics from egocentric pose estimation to evaluate the motion imitation results of UHC. Namely, we report Sinter\text{S}_{\text{inter}}, Eroot\text{E}_{\text{root}}, Empjpe\text{E}_{\text{mpjpe}}, Eacc\text{E}_{\text{acc}}, where the human-object interation Sinter\text{S}_{\text{inter}} indicates whether the humanoid has become unstable and falls down during the imitation process. The baseline we compare against is the popular motion imitation method DeepMimic . Since our framework uses a different physics simulation (Bullet vs Mujoco ), we use an in-house implementation of DeepMimic. From the result of Table 7 we can see that our controller can imitate a large collection (10956/11299, 96.964%) of realistic human motion with high fidelity without falling. Our UHC also achieves very low joint position error on motion imitation and, upon visual inspection, our controller can imitate highly dynamic motion sequences such as dancing and kickboxing. Failure cases include some of the more challenging sequences such as breakdancing and cartwheeling and can be found in the supplementary video.

C.3 Evaluation on H36M

To evaluate our Universal Humanoid Controller’s ability to generalize to unseen motion sequences, we use the popular Human 3.6M (H36M) dataset . We first fit the SMPL body model to ground truth 3D keypoints similar to the process in and obtain motion sequences in SMPL parameters. Notice that this fitting process is imperfect and the resulting motion sequence is of less quality than original MoCap sequences.

These sequences are also never seen by our UHC during training. As observed in Moon \etal, the fitted SMPL poses have a mean per joint position error of around 10mm. We use the train split of H36M (150 unique motion sequences) as the target pose for our UHC to mimic. From the results shown in Table 8, we can see that our UHC can imitate the unseen motion in H36M with high accuracy and success rate, and outperforms the baseline method significantly. Upon visual inspection, we can see that the failure cases often result from losing balance while the humanoid is crouching down or starts running suddenly. Since our controller does not use any sequence level information, it has no way of knowing the upcoming speedup of the target motion and can result in instability. This indicates the importance of the kinematic policy adjusting its target pose based on the current simulation state to prevent the humanoid from falling down, and signifies that further investigation is needed to obtain a better controller. For visual inspection of motion imitation quality and failure cases, please refer to our supplementary video.

Appendix D Additional Dataset Details

Our MoCap dataset (202 training sequences, 64 testing sequences, in total 148k frames) is captured in a MoCap studio with three different subjects. Each motion clip contains paired first-person footage of a person performing one of the five tasks: sitting down and (standing up from) a chair, avoiding an obstacle, stepping on a box, pushing a box, and generic locomotion (walking, running, crouching). Each action has around 5050 sequences. The locomotion part of our dataset is merged from the egocentric dataset from EgoPose since the two datasets are captured using a compatible system. MoCap markers are attached to the camera wearer and the objects to get the 3D full-body human pose and 66DoF object pose. To diversify the way actions are performed, we instruct the actors to vary their performance for each action (varying starting position and facing gait, speed \etc). We followed the Institutional Review Board’s guidelines and obtained approval for the collection of this dataset. To study the diversity of our MoCap dataset, we plot the trajectory taken by the actors in Fig. 4. We can see that our trajectories are diverse and are spread out around a circle with varying distance from the objects. Table 9 shows the speed statistics for our MoCap dataset.

D.2 Real-world dataset.

Our real world dataset (183 testing sequences, in total 55k frames) is captured in everyday settings (living room and hallway) with an additional subject. It contains the same four types of interactions as our MoCap dataset and is captured from a head-mounted iPhone using a VR headset (demonstrated in Fig.5). Each action has around 4040 sequences. As can be seen in the camera trajectory in Fig. 4, the real-world dataset is more heterogeneous than the MoCap dataset, and has more curves and banks overall. Speed analysis in Table 9 also shows that our real-world dataset has a larger standard deviation in terms of walking velocity and has a larger overall spread than the MoCap dataset. In all, our real-world dataset has more diverse trajectories and motion patterns than our MoCap dataset, and our dynamics-regulated kinematic policy can still estimate the sequences recorded in this dataset. To make sure that our off-the-shelf object detector and pose estimator can correctly register the object-of-interest, we ask the subject to look at the object at the beginning of each capture session as a calibration period. Later, we remove this calibration period and directly use the detected object pose.

Notice that our framework is starting position and orientation invariant, since all of our input features are transformed into the agent-centric coordinate system using the transformation function TAC\boldsymbol{T}_{\text{AC}}.

D.3 Dataset Diversity

Appendix E Broader social impact.

Our overall framework can be used in extracting first-person camera wearer’s physically-plausible motion and our humanoid controller can be a plug-and-play model for physics-based humanoid simulation, useful in the animation and gaming industry for creating physically realistic characters. There can be also negative impact from this work. Our humanoid controller can be used as a postprocessing tool to make computer generated human motion physically and visually realistic and be misused to create fake videos using Deepfake-like technology. Improved egocentric pose estimation capability can also mean additional privacy concerns for smart glasses and bodycam users, as the full-body pose can now be inferred from front-facing cameras only. As the realism of motion estimation and generation methods improves, we encourage future research in this direction to investigate more in detecting computer generated motion .