Expressive Body Capture: 3D Hands, Face, and Body from a Single Image

Georgios Pavlakos, Vasileios Choutas, Nima Ghorbani, Timo Bolkart, Ahmed A. A. Osman, Dimitrios Tzionas, Michael J. Black

Introduction

Humans are often a central element in images and videos. Understanding their posture, the social cues they communicate, and their interactions with the world is critical for holistic scene understanding. Recent methods have shown rapid progress on estimating the major body joints, hand joints and facial features in 2D . Our interactions with the world, however, are fundamentally 3D and recent work has also made progress on the 3D estimation of the major joints and rough 3D pose directly from single images .

To understand human behavior, however, we have to capture more than the major joints of the body – we need the full 3D surface of the body, hands and the face. There is no system that can do this today due to several major challenges including the lack of appropriate 3D models and rich 3D training data. Figure 1 illustrates the problem. The interpretation of expressive and communicative images is difficult using only sparse 2D information or 3D representations that lack hand and face detail. To address this problem, we need two things. First, we need a 3D model of the body that is able to represent the complexity of human faces, hands, and body pose. Second, we need a method to extract such a model from a single image.

Advances in neural networks and large datasets of manually labeled images have resulted in rapid progress in 2D human “pose” estimation. By “pose”, the field often means the major joints of the body. This is not sufficient to understand human behavior as illustrated in Fig. 1. OpenPose expands this to include the 2D hand joints and 2D facial features. While this captures much more about the communicative intent, it does not support reasoning about surfaces and human interactions with the 3D world.

Models of the 3D body have focused on capturing the overall shape and pose of the body, excluding the hands and face . There is also an extensive literature on modelling hands and faces in 3D but in isolation from the rest of the body. Only recently has the field begun modeling the body together with hands , or together with the hands and face . The Frank model , for example, combines a simplified version of the SMPL body model , with an artist-designed hand rig, and the FaceWarehouse face model. These disparate models are stitched together, resulting in a model that is not fully realistic.

Here we learn a new, holistic, body model with face and hands from a large corpus of 3D scans. The new SMPL-X model (SMPL eXpressive) is based on SMPL and retains the benefits of that model: compatibility with graphics software, simple parametrization, small size, efficient, differentiable, etc. We combine SMPL with the FLAME head model and the MANO hand model and then register this combined model to 55865586 3D scans that we curate for quality. By learning the model from data, we capture the natural correlations between the shape of bodies, faces and hands and the resulting model is free of the artifacts seen with Frank. The expressivity of the model can be seen in Fig. 2 where we fit SMPL-X to expressive RGB images, as well as in Fig. 4 where we fit SMPL-X to images of the public LSP dataset . SMPL-X is freely available for research purposes.

Several methods use deep learning to regress the parameters of SMPL from a single image . To estimate a 3D body with the hands and face though, there exists no suitable training dataset. To address this, we follow the approach of SMPLify. First, we estimate 2D image features “bottom up” using OpenPose , which detects the joints of the body, hands, feet, and face features. We then fit the SMPL-X model to these 2D features “top down”, with our method called SMPLify-X. To do so, we make several significant improvements over SMPLify. Specifically, we learn a new, and better performing, pose prior from a large dataset of motion capture data using a variational auto-encoder. This prior is critical because the mapping from 2D features to 3D pose is ambiguous. We also define a new (self-) interpenetration penalty term that is significantly more accurate and efficient than the approximate method in SMPLify; it remains differentiable. We train a gender detector and use this to automatically determine what body model to use, either male, female or gender neutral. Finally, one motivation for training direct regression methods to estimate SMPL parameters is that SMPLify is slow. Here we address this with a PyTorch implementation that is at least 88 times faster than the corresponding Chumpy implementation, by leveraging the computing power of modern GPUs. Examples of this SMPLify-X method are shown in Fig. 2.

To evaluate the accuracy, we need new data with full-body RGB images and corresponding 3D ground truth bodies. To that end, we curate a new evaluation dataset containing images of a subject performing a wide variety of poses, gestures and expressions. We capture 3D body shape using a scanning system and we fit the SMPL-X model to the scans. This form of pseudo ground-truth is accurate enough to enable quantitative evaluations for models of body, hands and faces together. We find that our model and method performs significantly better than related and less powerful models, resulting in natural and expressive results.

We believe that this work is a significant step towards expressive capture of bodies, hands and faces together from a single RGB image. We make available for research purposes the SMPL-X model, SMPLify-X code, trained networks, model fits, and the evaluation dataset at https://smpl-x.is.tue.mpg.de.

Related work

Bodies, Faces and Hands. The problem of modeling the 3D body has previously been tackled by breaking the body into parts and modeling these parts separately. We focus on methods that learn statistical shape models from 3D scans.

Blanz and Vetter pioneered this direction with their 3D morphable face model. Numerous methods since then have learned 3D face shape and expression from scan data; see for recent reviews. A key feature of such models is that they can represent different face shapes and a wide range of expressions, typically using blend shapes inspired by FACS . Most approaches focus only on the face region and not the whole head. FLAME , in contrast, models the whole head, captures 3D head rotations, and also models the neck region; we find this critical for connecting the head and the body. None of these methods, model correlations in face shape and body shape.

The availability of 3D body scanners enabled learning of body shape from scans. In particular the CAESAR dataset opened up the learning of shape . Most early work focuses on body shape using scans of people in roughly the same pose. Anguelov et al. combined shape with scans of one subject in many poses to learn a factored model of body shape and pose based on triangle deformations. Many models followed this, either using triangle deformations or vertex-based displacements , however they all focus on modeling body shape and pose without the hands or face. These methods assume that the hand is either in a fist or an open pose and that the face is in a neutral expression.

Similarly, hand modeling approaches typically ignore the body. Additionally, 3D hand models are typically not learned but either are artist designed , based on shape primitives , reconstructed with multiview stereo and have fixed shape , use non-learned per-part scaling parameters , or use simple shape spaces . Only recently have learned hand models appeared in the literature. Khamis et al. collect partial depth maps of 5050 people to learn a model of shape variation, however they do not capture a pose space. Romero et al. on the other side learn a parametric hand model (MANO) with both a rich shape and pose space using 3D scans of 3131 subjects in up to 5151 poses, following the SMPL formulation.

Unified Models. The most similar models to ours are Frank and SMPL+H . Frank stitches together three different models: SMPL (with no pose blend shapes) for the body, an artist-created rig for the hands, and the FaceWarehouse model for the face. The resulting model is not fully realistic. SMPL+H combines the SMPL body with a 3D hand model that is learned from 3D scans. The shape variation of the hand comes from full body scans, while the pose dependent deformations are learned from a dataset of hand scans. SMPL+H does not contain a deformable face.

We start from the publicly-available SMPL+H and add the publicly-available FLAME head model to it. Unlike Frank, however, we do not simply graft this onto the body. Instead we take the full model and fit it to 55865586 3D scans and learn the shape and pose-dependent blend shapes. This results in a natural looking model with a consistent parameterization. Being based on SMPL, it is differentiable and easy to swap into applications that already use SMPL.

2 Inferring the body

There are many methods that estimate 3D faces from images or RGB-D as well as methods that estimate hands from such data . While there are numerous methods that estimate the location of 3D joints from a single image, here we focus on methods that extract a full 3D body mesh.

Several methods estimate the SMPL model from a single image . This is not trivial due to a paucity of training images with paired 3D model parameters. To address this, SMPLify detects 2D image features “bottom up” and then fits the SMPL model to these “top down” in an optimization framework. In these SMPLify fits are used to iteratively curate a training set of paired data to train a direct regression method. HMR trains a model without paired data by using 2D keypoints and an adversary that knows about 3D bodies. Like SMPLify, NBF uses an intermediate 2D representation (body part segmentation) and infers 3D pose from this intermediate representation. MonoPerfCap infers 3D pose while also refining surface geometry to capture clothing. These methods estimate only the 3D pose of the body without the hands or face.

There are also many multi-camera setups for capturing 3D pose, 3D meshes (performance capture), or parametric 3D models . Most relevant is the Panoptic studio which shares our goal of capturing rich, expressive, human interactions. In , the Frank model parameters are estimated from multi-camera data by fitting the model to 3D keypoints and 3D point clouds. The capture environment is complex, using 140140 VGA cameras for the body, 480480 VGA cameras for the feet, and 3131 HD cameras for the face and hand keypoints. We aim for a similar level of expressive detail but from a single RGB image.

Technical approach

In the following we describe SMPL-X (Section 3.1), and our approach (Section 3.2) for fitting SMPL-X to single RGB images. Compared to SMPLify , SMPLify-X uses a better pose prior (Section 3.3), a more detailed collision penalty (Section 3.4), gender detection (Section 3.5), and a faster PyTorch implementation (Section 3.6).

We start with an artist designed 3D template, whose face and hands match the templates of FLAME and MANO . We fit the template to four datasets of 3D human scans to get 3D alignments as training data for SMPL-X. The shape space parameters, {S}\left\{\mathcal{S}\right\}, are trained on 38003800 alignments in an A-pose capturing variations across identities . The body pose space parameters, {W,P,J}\left\{\mathcal{W},\mathcal{P},\mathcal{J}\right\}, are trained on 17861786 alignments in diverse poses. Since the full body scans have limited resolution for the hands and face, we leverage the parameters of MANO and FLAME , learned from 15001500 hand and 38003800 head high resolution scans respectively. More specifically, we use the pose space and pose corrective blendshapes of MANO for the hands and the expression space E\mathcal{E} of FLAME.

The fingers have 3030 joints, which correspond to 9090 pose parameters (33 DoF per joint as axis-angle rotations). SMPL-X uses a lower dimensional PCA pose space for the hands such that θh=∑n=1∣mh∣mhnM\theta_{h}=\sum_{n=1}^{|m_{h}|}m_{h_{n}}\mathcal{M}, where M\mathcal{M} are principle components capturing the finger pose variations and mhm_{h} are the corresponding PCA coefficients. As noted above, we use the PCA pose space of MANO, that is trained on a large dataset of 3D articulated human hands. The total number of model parameters in SMPL-X is 119119: 7575 for the global body rotation and { body, eyes , jaw } joints, 2424 parameters for the lower dimensional hand pose PCA space, 1010 for subject shape and 1010 for the facial expressions. Additionally there are separate male and female models, which are used when the gender is known, and a shape space constructed from both genders for when gender is unknown. SMPL-X is realistic, expressive, differentiable and easy to fit to data.

2 SMPLify-X: SMPL-X from a single image

To fit SMPL-X to single RGB images (SMPLify-X), we follow SMPLify but improve every aspect of it. We formulate fitting SMPL-X to the image as an optimization problem, where we seek to minimize the objective function

For the data term we use a re-projection loss to minimize the weighted robust distance between estimated 2D joints JestJ_{est} and the 2D projection of the corresponding posed 3D joints Rθ(J(β))iR_{\theta}(J(\beta))_{i} of SMPL-X for each joint ii, where Rθ(⋅)R_{\theta}(\cdot) is a function that transforms the joints along the kinematic tree according to the pose θ\theta. Following the notation of , the data term is EJ(β,θ,K,Jest)=E_{J}(\beta,\theta,K,J_{est})=

where ΠK\mathit{\Pi}_{K} denotes the 3D to 2D projection with intrinsic camera parameters KK. For the 2D detections we rely on the OpenPose library , which provides body, hands, face and feet keypoints jointly for each person in an image. To account for noise in the detections, the contribution of each joint in the data term is weighted by the detection confidence score ωi\omega_{i}, while γi\gamma_{i} are per-joint weights for annealed optimization, as described in Section 3.6. Finally, ρ\rho denotes a robust Geman-McClure error function for down weighting noisy detections.

3 Variational Human Body Pose Prior

We seek a prior over body pose that penalizes impossible poses while allowing possible ones. SMPLify uses an approximation to the negative log of a Gaussian mixture model trained on MoCap data. While effective, we find that the SMPLify prior is not sufficiently strong. Consequently, we train our body pose prior, VPoser, using a variational autoencoder , which learns a latent representation of human pose and regularizes the distribution of the latent code to be a normal distribution. To train our prior, we use to recover body pose parameters from three publicly available human motion capture datasets: CMU , training set of Human3.6M , and the PosePrior dataset . Our training and test data respectively consist of roughly 11M, and 6565k poses, in rotation matrix representation. Details on the data preparation procedure is given in Sup. Mat.

The training loss of the VAE is formulated as:

To employ VPoser in the optimization, rather than to optimize over θb\theta_{b} directly in Eq. 4, we optimize the parameters of a 3232 dimensional latent space with a quadratic penalty on ZZ and transform this back into joint angles θb\theta_{b} in axis-angle representation. This is analogous to how hands are treated except that the hand pose θh\theta_{h} is projected into a linear PCA space and the penalty is on the linear coefficients.

4 Collision penalizer

When fitting a model to observations, there are often self-collisions and penetrations of several body parts that are physically impossible. Our approach is inspired by SMPLify, that penalizes penetrations with an underlying collision model based on shape primitives, i.e. an ensemble of capsules. Although this model is computationally efficient, it is only a rough approximation of the human body.

For models like SMPL-X, that also model the fingers and facial details, a more accurate collision model in needed. To that end, we employ the detailed collision-based model for meshes from . We first detect a list of colliding triangles C\mathcal{C} by employing Bounding Volume Hierarchies (BVH) and compute local conic 3D distance fields Ψ\Psi defined by the triangles C\mathcal{C} and their normals nn. Penetrations are then penalized by the depth of intrusion, efficiently computed by the position in the distance field. For two colliding triangles fsf_{s} and ftf_{t}, intrusion is bi-directional; the vertices vtv_{t} of ftf_{t} are the intruders in the distance field Ψfs\Psi_{f_{s}} of the receiver triangle fsf_{s} and are penalized by Ψfs(vt)\Psi_{f_{s}}(v_{t}), and vice-versa. Thus, the collision term ECE_{\mathcal{C}} in the objective (Eq. 4) is defined as

For technical details about Ψ\Psi, as well as details about handling collisions for parts with permanent or frequent self-contact we redirect the reader to and Sup. Mat.. For computational efficiency, we use a highly parallelized implementation of BVH following with a custom CUDA kernel wrapped around a custom PyTorch operator.

5 Deep Gender Classifier

Men and women have different proportions and shapes. Consequently, using the appropriate body model to fit 2D data means that we should apply the appropriate shape space. We know of no previous method that automatically takes gender into account in fitting 3D human pose. In this work, we train a gender classifier that takes as input an image containing the full body and the OpenPose joints, and assigns a gender label to the detected person. To this end, we first annotate through Amazon Mechanical Turk a large dataset of images from LSP , LSP-extended , MPII , MS-COCO, and LIP datset , while following their official splits for train and test sets. The final dataset includes 50216 training examples and 16170 test samples (see Sup. Mat.). We use this dataset to fine tune a pretrained ResNet18 for binary gender classification. Moreover, we threshold the computed class probabilities, by using a class-equalized validation set, to obtain a good trade-off between discarded, correct, and incorrect predictions. We choose a threshold of 0.9 for accepting a predicted class, which yields 62.38%62.38\% correct predictions, and 7.54%7.54\% incorrect predictions on the validation set. At test time, we run the detector and fit the appropriate gendered model. When the detected class probability is below the threshold, we fit the gender-neutral body model.

6 Optimization

SMPLify employs Chumpy and OpenDR which makes the optimization slow. To keep optimization of Eq. 4 tractable, we use PyTorch and the Limited-memory BFGS optimizer (L-BFGS) with strong Wolfe line search. Implementation details can be found in Sup. Mat.

We optimize Eq. 4 with a multistage approach, similar to . We assume that we know the exact or an approximate value for the focal length of the camera. Then we first estimate the unknown camera translation and global body orientation (see ). We then fix the camera parameters and optimize body shape, β\beta, and pose, θ\theta. Empirically, we found that an annealing scheme for the weights γ\gamma in the data term EJE_{J} (Eq. 5) helps optimization of the objective (Eq. 4) to deal with ambiguities and local optima. This is mainly motivated by the fact that small body parts like the hands and face have many keypoints relative to their size, and can dominate in Eq. 4, throwing optimization in a local optimum when the initial estimate is away from the solution.

In the following, we denote by γb\gamma_{b} the weights corresponding to the main body keypoints, γh\gamma_{h} the ones for hands and γf\gamma_{f} the ones for facial keypoints. We then follow three steps, starting with high regularization to mainly refine the global body pose, and gradually increase the influence of hand keypoints to refine the pose of the arms. After converging to a better pose estimate, we increase the influence of both hands and facial keypoints to capture expressivity. Throughout the above steps the weights λα,λβ,λE\lambda_{\alpha},\lambda_{\beta},\lambda_{\mathcal{E}} in Eq.4 start with high regularization that gradually lowers to allow for better fitting, The only exception is λC\lambda_{\mathcal{C}} that gradually increases while the influence of hands gets stronger in EJE_{J} and more collisions are expected.

Experiments

Despite the recent interest in more expressive models there exists no dataset containing images with ground-truth shape for bodies, hands and faces together. Consequently, we create a dataset for evaluation from currently available data through fitting and careful curation.

Expressive hands and faces dataset (EHF). We begin with the SMPL+H dataset , obtaining one full body RGB image per frame. We then align SMPL-X to the 4D scans following . An expert annotator manually curated the dataset to select 100100 frames that can be confidently considered pseudo ground-truth, according to alignment quality and interesting hand poses and facial expressions. The pseudo ground-truth meshes allow to use a stricter vertex-to-vertex (v2v) error metric , in contrast to the common paradigm of reporting 3D joint error, which does not capture surface errors and rotations along the bones.

2 Qualitative & Quantitative evaluations

To test the effectiveness of SMPL-X and SMPLify-X, we perform comparisons to the most related models, namely SMPL , SMPL+H , and Frank . In this direction we fit SMPL-X to the EHF images to evaluate both qualitatively and quantitatively. Note that we use only 11 image and 2D joints as input, while previous methods use much more information; i.e. 3D point clouds and joints . Specifically employ 6666 cameras and 3434 projectors, while employ more than 500500 cameras.

We first compare to SMPL, SMPL+H and SMPL-X on the EHF dataset and report results in Table 1. The table reports mean vertex-to-vertex (v2v) error and mean 3D body joint error after Procrustes alignment with the ground-truth 3D meshes and body (only) joints respectively. To ease numeric evaluation, for this table only we “simulate” SMPL and SMPL+H with a SMPL-X variation with locked degrees of freedom, noted as “SMPL” and “SMPL+H” respectively. As expected, the errors show that the standard mean 3D joint error fails to capture accurately the difference in model expressivity. On the other hand, the much stricter v2v metric shows that enriching the body with finger and face modeling results in lower errors. We also fit SMPL with additional features for parts that are not properly modeled, e.g. finger features. The additional features result in an increasing error, pointing to the importance of richer and more expressive models. We report similar qualitative comparisons in Sup. Mat.

We then perform an ablative study, summarized in Table 2, where we report the mean vertex-to-vertex (v2v) error. SMPLify-X with a gender-specific model achieves 52.952.9 mm error. The gender neutral model is easier to use, as it does not need gender detection, but comes with a small compromise in terms of accuracy. Replacing VPoser with the GMM of SMPLify increases the error to 56.456.4 mm, showing the effectiveness of VPoser. Finally, removing the collision term increases the error as well, to 53.553.5 mm, while also allowing for non physically plausible pose estimates.

The closest comparable model to SMPL-X is Frank . Since Frank is not available to date, nor are the fittings to , we show images of results found online. Figure 3 shows Frank fittings to 3D joints and point clouds, i.e. using more than 500500 cameras. Compare this with SMPL-X fitting that is done with SMPLify-X using only 11 RGB image with 2D joints. For a more direct comparison here, we fit SMPL-X to 2D projections of the 3D joints that used for Frank. Although we use much less data, SMPL-X shows at least similar expressivity to Frank for both the face and hands. Since Frank does not use pose blend shapes, it suffers from skinning artifacts around the joints, e.g. elbows, as clearly seen in Figure 3. SMPL-X by contrast, is trained to include pose blend shapes and does not suffer from this. As a result it looks more natural and realistic.

To further show the value of a holistic model of the body, face and hands, in Fig. 5 we compare SMPL-X and SMPLify-X to the hands-only approach of . Both approaches employ OpenPose for 2D joint detection, while further depends on a hand detector. As seen in Fig. 5, in case of good detections both approaches perform nicely, though in case of noisy detections, SMPL-X shows increased robustness due to the context of the body. We further perform quantitative comparison after aligning the resulting fittings to EHF. Due to different mesh topology, for simplicity we use hand joints as pseudo ground-truth, and perform Procrustes analysis of each hand independently, ignoring the body. Panteleris et al. achieve a mean 3D joint error of 26.526.5 mm, while SMPL-X has 19.819.8 mm.

Finally, we fit SMPL-X with SMPLify-X to some in-the-wild datasets, namely the LSP , LSP-extended and MPII datasets . Figure 4 shows some qualitative results for the LSP dataset ; see Sup. Mat. for more examples and failure cases. The images show that a strong holistic model like SMPL-X can effectively give natural and expressive reconstruction from everyday images.

Conclusion

In this work we present SMPL-X, a new model that jointly captures the body together with face and hands. We additionally present SMPLify-X, an approach to fit SMPL-X to a single RGB image and 2D OpenPose joint detections. We regularize fitting under ambiguities with a new powerful body pose prior and a fast and accurate method for detecting and penalizing penetrations. We present a wide range of qualitative results using images in-the-wild, showing the expressivity of SMPL-X and effectiveness of SMPLify-X. We introduce a curated dataset with pseudo ground-truth to perform quantitative evaluation, that shows the importance of more expressive models. In future work we will curate a dataset of in-the-wild SMPL-X fits and learn a regressor to directly regress SMPL-X parameters directly from RGB images. We believe that this work is an important step towards expressive capture of bodies, hands and faces together from an RGB image.

Acknowledgements: We thank Joachim Tesch for the help with Blender rendering and Pavel Karasik for the help with Amazon Mechanical Turk. We thank Soubhik Sanyal for the face-only baseline, Panteleris et al. from FORTH for running their hands-only method on the EHF dataset, and Joo et al. from CMU for providing early access to their data .

Disclosure: MJB has received research gift funds from Intel, Nvidia, Adobe, Facebook, and Amazon. While MJB is a part-time employee of Amazon, his research was performed solely at, and funded solely by, MPI. MJB has financial interests in Amazon and Meshcapade GmbH.

References