SMPLR: Deep SMPL reverse for 3D human pose and shape recovery
Meysam Madadi Hugo Bertiche Sergio Escalera







SMPLR: Deep SMPL reverse for 3D human pose and shape recovery
    16cmMeysam Madadi^1, Hugo Bertiche^2 and Sergio Escalera^1,2

    ^1 Computer Vision Center, Edifici O, Campus UAB, 08193 Bellaterra (Barcelona), Catalonia Spain

    ^2 Dept. Mathematics and Informatics, Universitat de Barcelona, Catalonia, Spain

    December 30, 2023
============================================================================================================================================================================================================================================================






Current state-of-the-art in 3D human pose and shape recovery relies on deep neural networks and statistical morphable body models, such as the Skinned Multi-Person Linear model (SMPL). However, regardless of the advantages of having both body pose and shape, SMPL-based solutions have shown difficulties to predict 3D bodies accurately. This is mainly due to the unconstrained nature of SMPL, which may generate unrealistic body meshes. Because of this, regression of SMPL parameters is a difficult task, often addressed with complex regularization terms. In this paper we propose to embed SMPL within a deep model to accurately estimate 3D pose and shape from a still RGB image. We use CNN-based 3D joint predictions as an intermediate representation to regress SMPL pose and shape parameters. Later, 3D joints are reconstructed again in the SMPL output. This module can be seen as an autoencoder where the encoder is a deep neural network and the decoder is SMPL model. We refer to this as SMPL reverse (SMPLR). 
By implementing SMPLR as an encoder-decoder we avoid the need of complex constraints on pose and shape. Furthermore, given that in-the-wild datasets usually lack accurate 3D annotations, it is desirable to lift 2D joints to 3D without pairing 3D annotations with RGB images. Therefore, we also propose a denoising autoencoder (DAE) module between CNN and SMPLR, able to lift 2D joints to 3D and partially recover from structured error. We evaluate our method on SURREAL and Human3.6M datasets, showing improvement over SMPL-based state-of-the-art alternatives by about 4 and 25 millimeters, respectively.







§ INTRODUCTION





3D human pose estimation from still RGB images is a challenging task due to changes in lighting conditions, cluttered background, occlusions, inter and intra subject pose variability, as well as ill-posed depth ambiguity. Moreover, due to its nature, accurate annotation of captured data is not a trivial task and most available datasets are captured under controlled environments <cit.>. 





One case of human pose representation is 3D joint locations. 
However, 3D joints do not implicitly show the morphology of the body. Being able to estimate body shape or mesh along with joints allows a wide method applicability, including movie editing, body soft-biometrics measurements or cloth retexturing, among others. Besides, such a dense body representation may help to achieve more accurate estimations of 3D joints. 
Available body models range from simple geometrical objects, like compositions of cylinders and spheres, to complex parametric statistical models such as SCAPE <cit.> and SMPL <cit.>. SMPL <cit.> generates realistic body meshes based on PCA shape components along with relative axis-angle rotations of joints. Rotations form body pose in a defined kinematic tree and are computed for joints with respect to their parent's nodes. 
The goal is to estimate SMPL parameters from an RGB image such that generated body mesh describes and fits as much as possible to the visible human in the image. This can be done by fitting generative models  <cit.> or training discriminative deep models <cit.>. On the one hand, regular generative optimization solutions are shown to be sensitive to noise and need a careful and complex design of objective functions. On the other hand, while deep models have shown superior performance over the former solutions, they are data-hungry approaches. In both cases, a direct regression of SMPL parameters is a complex task because: 1) SMPL is a many-to-one complex function[SMPL details are given in the section <ref> ] which is sensitive to data noise (i.e. optimizing SMPL parameters may converge to invalid values), and 2) accurate image annotation with SMPL pose and shape parameters in large in-the-wild datasets is infeasible. Therefore, researchers developed their solutions based on available 2D joints by applying intermediate representations <cit.> or adversarial training <cit.> for 3D inference. However, it is known that estimation of 3D data from 2D is ill-posed and can lead to sub-optimal solutions.

In this paper, given an RGB image, we first estimate 3D joints and a sparse set of landmarks placed along body surface. Then, we use them to regress SMPL pose and shape parameters. The output is a detailed body mesh. We call this procedure SMPL reverse (SMPLR). One can imagine SMPLR as an autoencoder where latent embeddings are pose and shape components. We define encoder as a number of Multi-layer Perceptron (MLP) networks while decoder is SMPL. By first estimating 3D joints and landmarks, as an intermediate representation, 1) we avoid a direct regression of SMPL parameters, which easily yields non-realistic body meshes, 2) we can safely train SMPLR, even end-to-end, in a simple way without explicit constraints on SMPL, and 3) we provide flexibility to the design, i.e. SMPLR can be trained independently using millions of generated mocap-like data, thus allowing cross-dataset generalization.

When 3D ground truth data is available for RGB images, any state-of-the-art CNN can be used to estimate 3D joints and landmarks. However, such ground truth data is not available for in-the-wild datasets. Besides, estimated 3D joints can have structured error due to depth ambiguity or occlusions. To handle these cases we design a denoising autoencoder (DAE) network <cit.> as an extra module between CNN and SMPLR able to lift 2D joints to 3D and/or recover from structured error. We show the proposed model output in Fig. <ref>. 

In summary, our main contributions are as follows:


    
  * We build a denoising autoencoder that learns to recover input data from structured error. The model transforms 2D/3D joints to a more human-consistent 3D joint predictions, enforcing symmetry and proportions on bone lengths.
    

    
  * We design a two-branch MLP network to regress SMPL parameters from 3D joints and landmarks given by DAE. We refer to the combination of DAE+MLP+SMPL as SMPLR. This allows the inference of human body mesh from a sparse point representation. Finally, we gain an improvement over chosen CNN by end-to-end training with SMPLR. 
    

    
  * Throughout our experiments, we demonstrate that it is possible to obtain an accurate human body model from a set of joint and landmark predictions. We obtain state-of-the-art results for SMPL-like architectures on Human3.6M <cit.> and SURREAL <cit.> datasets.








§ RELATED WORK




In this section, we review state-of-the-art works on 3D human pose estimation from still RGB images.

Lifting 2D to 3D.  Depth regression from 2D 
is an ill-posed problem where several 3D poses can be projected to the same 2D joints. Chen and Ramanan <cit.> show that copying depth from 3D mocap data can provide a fair estimation when a nearest 2D matching is given. However, Moreno <cit.> shows that distance of random pairs of poses has more ambiguity in Cartesian space than Euclidean distance matrix. 
Recent works show that directly using simple <cit.> or cascade <cit.> MLP networks can be more accurate. Additionally, 2D joints can be wrongly estimated, making previous solutions sub-optimal. Yang <cit.> use adversarial training and benefit from available 3D data along with 2D data to infer depth information. 
In our case, the proposed denoising autoencoder is used to lift 2D pose to 3D in the lack of paired image and 3D ground truth data.

Direct regression refers to regressing 3D pose directly from an RGB image. Due to the nonlinear nature of the human pose, 3D pose regression without modeling correlation of joints is not a trivial task. 
Brau and Jiang <cit.> estimate 3D joints and camera parameters without direct supervision on them. Instead, they use several loss functions for projected 2D joints, bone sizes and independent Fisher priors. Sun <cit.> propose a compositional loss function based on relative joints with respect to a defined kinematic tree. They separate 2D joints and depth estimation in the loss. We avoid relying on such complex losses by using 3D joints and landmarks as intermediate representation. 



Probability maps are joints likelihood computed for each pixel/volume. From 2D joint heatmaps different solutions are applied to infer the third dimension. Tome <cit.> iteratively minimize a function based on 2D belief map and a learnt 3D model to find the most likely 3D pose. 
Since probability maps are dense predictions, fully convolutional networks are usually applied. Luo <cit.> extend stacked hourglass (SHN) <cit.> to estimate 2D joint heatmaps along with limb orientation map in each stack. Pavlakos <cit.> extend SHN to output 3D volumetric data by a coarse-to-fine architecture where at each stack the third dimension is linearly increased with 2D heatmaps. 
Nibali <cit.> propose marginal heatmaps from different axis viewpoints. 


Pose and shape estimation.  In order to compute a detailed body model, it is common to estimate body volume or mesh along with 3D pose. Early proposals were mainly based on the combination of simple geometric objects <cit.>, while recent approaches are PCA-based parametric models like SMPL <cit.>. Bogo <cit.> were the first to apply SMPL for body pose and shape recovery. Their method was based on regular optimization procedures given an objective function with several constraints, minimizing projected joints and pre-estimated 2D joints. 
Such a complex function design is critical for the success of optimization procedures, since SMPL is a many-to-one function and sensitive to noise. Lassner <cit.> extended the previous work by including a bi-directional distance between projected mesh and body silhouette. Recent works embed SMPL within deep models. Tung <cit.> regressed SMPL pose and shape along with camera parameters. They trained the model with supervision on synthetic data and fine-tuned without supervision at inference time using 2D joints, silhouette and motion losses. Similarly, Kanazawa <cit.> regressed as well SMPL and camera parameters, but in addition, they applied adversarial training. Predictions are fed to a discriminator network which classifies them as real/fake with respect to real body scans. 
Similar to our work, <cit.> estimate pose and shape parameters from intermediate information, like body segments <cit.>, 2D joint heatmaps and body mask <cit.> or 3D joints <cit.>. They include SMPL to obtain 3D joints and mesh which are used to compute the loss either in 2D (back-projected from 3D) or 3D. However, this process is ill-posed and sub-optimal because of the loss of depth information (in the case of <cit.>) or the ambiguity in joint orientations and shape parameters (in the case of <cit.>).
We show 3D joints and surface landmarks can better deal with this problem outperforming aforementioned solutions. Recently, Varol <cit.> proposed a multi-tasking approach to estimate body 2D/3D pose, pixel segments and volumetric shape. They use SMPL to generate ground truth body volumes and do not embed SMPL function within the network. 

In this paper, we propose an approach to estimate 3D body pose and shape by the use of intermediate information and SMPL model. We can benefit from end-to-end training. Besides, our method can be adapted to 2D-to-3D solutions when just 2D ground truth data is available.




§ METHODOLOGY



We estimate 3D joints 𝐉={j}_1^K and surface vertices 𝐓={t}_1^C from a single RGB image 𝐼, where j,t∈ℝ^3, and K and C are the number of body joints and surface points, respectively. We define 𝐋⊂𝐓 as a set of sparse surface landmarks and 𝐉𝐋 as a concatenation of the two matrices. In order to compute a detailed mesh, we use SMPL model <cit.>. Our goal is to estimate SMPL parameters from image 𝐼 using deep learning without directly regressing them. This way, we avoid possible artifacts while keeping the architecture flexible in the lack or presence of 3D ground truth data. Our network contains three main modules shown in Fig. <ref>. First, joint and landmark locations are estimated by any chosen CNN (𝐉𝐋_CNN). Afterwards, DAE filters structured error or lifts 2D to 3D (𝐉𝐋_DAE). Finally, SMPLR recovers pose and shape from the predictions of the previous module and reconstructs a detailed body mesh and 3D joints. Next, we explain DAE and SMPLR in detail.




 §.§ SMPL review


SMPL is a statistical parametric function 𝑀(β,θ;Φ) which maps shape parameters β and axis-angle pose parameters θ into vertices 𝐓, given learnt model parameters Φ. Given a template average body mesh with vertices 𝐓^* and a dataset of scanned bodies, two sets of principal components 𝒮=[𝐒_1,...,𝐒_|β| ]∈ℝ^3C×|β| and 𝒫=[𝐏_1,...,𝐏_9K ]∈ℝ^3C×9K are learnt to form model parameters Φ (where |β|=10, C=6890 and K=24). Then, template shape vertices 𝐓^* can be morphed to 𝐓^*_s by vec^-1_3, C(𝒮×β)+𝐓^* where vec^-1(.) is a reshaping operator. Bases 𝐏_i are responsible for small pose-based displacements due to body soft-tissue behavior and have small contribution in the shape deformation. Given a kinematic tree (i.e. Fig. <ref>) a set of relative rotation matrices ℛ=[𝐑_1,...,𝐑_K ]∈ℝ^3×3 are computed for each joint with respect to their parents. Each 𝐑_i is a function of θ_i∈ℝ^3 and is computed based on Rodrigues formulation. These rotation matrices are mainly used because of two reasons: i) to pose the mesh by rotating body parts relatively in the kinematic tree, and ii) to update the template shape in rest pose θ^* by basis 𝐏_i. Rotations are applied based on joints. Nevertheless, joints are a function of body shape, therefore they need to be computed before posing the model. This is done by a regressor matrix 𝒥 (as part of parameters Φ) from updated vertices 𝐓^*_s. Please read <cit.> for more detailed explanations of the SMPL.

SMPL model has several characteristics. First, it is differentiable, which yields the possibility to be used along with deep networks. Secondly, it does not constrain invalid pose and shape values and, thus, it is a many-to-one function. This means that given an RGB image, end-to-end training of a CNN from scratch with SMPL attached on top may converge to a non-optimal solution. One of the main reasons of this is the usage of Rodrigues formulation and axis-angle pose parameters, as it is known not to be unique (periodicity of θ). A possible solution is to directly use rotation matrices as proposed in <cit.>. Finally, SMPL is a generative model which allows us to generate mocap-like data for free. Also, it can be used to generate synthetic realistic images <cit.>. 




 §.§ SMPL reverse


A natural way of embedding SMPL in a deep network is to estimate β and θ given image 𝐼 and feed them to SMPL. However, this is a challenging task because of the aforementioned many-to-one property, plus the noise sensitivity of the model. Besides, direct regression of SMPL parameters may generate artifacts <cit.>. Instead, researchers use intermediate representations like 2D joints and body silhouette <cit.> or body segments <cit.> to regress SMPL parameters. Although such data is easier to annotate from RGB images than SMPL data, they provide sub-optimal mapping to SMPL parameters, because 1) estimating 3D from 2D is an ill-posed problem, and 2) the loss is computed from noisy back-projected 2D estimations. In this paper, we instead propose an autoencoder-like scheme, i.e. the input 3D data is recovered in the output, while pose and shape are obtained in the encoder and SMPL is taken as decoder. We refer to this model as SMPL reverse (SMPLR, see Fig. <ref>). 

This design has several benefits: SMPLR can be trained 1) without the need of constraints on SMPL, 2) independent to RGB data using millions of generated 3D mocap-like data, and 3) end-to-end with a CNN. All of these provide simplicity and flexibility in the design and training of the entire network. In the results section we show that SMPLR formulation can generate more accurate estimations than state-of-the-art SMPL-based alternatives. Furthermore, SMPLR acts as a strong regularization on CNN model when trained end-to-end and it enhances the internal coherence among joints for CNN predictions. In sec. <ref> we propose an effective incremental training for this task.

We model SMPLR encoder with deep MLP networks. We design two independent networks ℛ=Ω(𝐍;ϕ_p) and β=Ψ(𝐁;ϕ_s) with the same architecture (see Fig. <ref> for details) for pose and shape estimation, respectively, where ϕ_. corresponds to network parameters, 𝐍 is a vector of normalized relative joints and 𝐁 is a vector of normalized relative distances. A reason for the choice of two networks is that ℛ and β are independent variables. Besides, we want the encoder to be cross-dataset applicable and explainable w.r.t. the pose and shape parameters. In available datasets, while pose parameters have a high variability, there is no much variability in shape parameters. For instance, Human3.6M dataset <cit.> only consists of 11 subjects and training Ψ is not feasible by relying just on this dataset. In the results section we show the contribution of each network to the final joint estimates.

Since we define SMPLR as an autoencoder, its input must be 𝐉 and 𝐓. However, 𝐓 is a high dimensional vector and all vertices do not necessarily contribute equally in the computation of pose and shape parameters, wasting network capacity if all of them are considered. To cope with this issue, we empirically select a subset of points as landmarks 𝐋⊂𝐓, which represent body shape and complement 𝐉. Without landmarks, network converges to the average body fatness and the problem still remains ill-posed due to the ambiguity of joints orientation. Landmarks help to cope with these two problems. Besides, it is cheaper to gather landmarks in mocap datasets rather than scanning the whole body. We show the 18 selected landmarks and their assigned kinematic tree in Fig. <ref>. Next, we explain networks details.



𝐉 and 𝐋 are concatenated to form 𝐉𝐋 which has been estimated beforehand by DAE (i.e. 𝐉𝐋_DAE). For the easiness of the reading we omit the subscript ._DAE from 𝐉𝐋_DAE in the next formulations. Given a kinematic tree κ∈ℝ^42, we define 𝐍 as:



    𝐍_i=𝐉𝐋_i - 𝐉𝐋_κ(i)/𝐉𝐋_i - 𝐉𝐋_κ(i)_2,  for  i∈[2..42],

where κ(i) defines parenthood indices. The reason for this normalization is that, in order to compute relative joint rotation 𝐑, we do not need to know relative distances. This frees network capacity from unnecessary data variability. Such relative distances are embedded in the computation of shape parameters. Thus, given relative distances 𝐁^* computed from template joints and landmarks 𝐉𝐋^*, we define 𝐁 as:



    𝐁_i^*=𝐉𝐋_i^* - 𝐉𝐋_κ(i)^* _2 ,  for  i∈[2..42],


    𝐁_i=𝐉𝐋_i - 𝐉𝐋_κ(i)_2 - 𝐁_i^*,  for  i∈[2..42].

SMPL originally provides two different models for male and female. Selecting a proper gender model for each sample has a crucial impact on the accuracy at inference time. Therefore, we also include gender as an extra term on the shape parameters β. We assign gender a value from the set {-1,+1} and learn it as a regression problem along with other shape parameters. 




Loss function. ℒ_2 loss has been commonly applied in recent regression problems <cit.>. However, we found ℒ_2 loss to have problems in convergence and generalization in case of noisy inputs. Instead we use ℒ_1 loss on ℛ and β, called L_R and L_β, to supervise Ω and Ψ networks. Firstly, this is done isolated from SMPL, which means no back-propagation is applied through SMPL. This is important for a stable training and fast convergence. Then, for performance gains, we fine-tune the networks adding ℒ_1 loss on SMPL output, called L_SMPL. SMPL output contains 𝐉 and 𝐓. However, to have SMPLR architecture resembling an autoencoder, we compute L_SMPL on landmarks rather than the whole 𝐓. The final SMPLR loss is L_R+L_β+L_SMPL.







 §.§ Denoising autoencoder



Estimated joints by any CNN may have structured noise. For instance, in the case of occluded joints the error is higher due to their ambiguity and the lack of visual evidence. Visible joint predictions have as well structured error, following a Gaussian distribution. Such structured or Gaussian noise can be detected and learnt explicitly, helping to further improve initial estimation of 𝐉𝐋_CNN to be fed into SMPLR module. Denoising autoencoder networks <cit.> are useful tools for such scenario, being able to learn structured patterns of the input better than ordinal autoencoders.

In this paper, we propose a DAE network as a bridge between CNN backbone and SMPLR. With the proposed DAE we are able to denoise 3D joints and landmarks. This procedure can be critical for error-prone CNNs, such as shallow networks. Moreover, it can be detached from CNN and trained independently given a large amount of mocap or synthetic SMPL-generated data. However, DAE may not generalize well to the noisy test data if it is trained with noise-free ground truth data. Therefore, it is important to train DAE with adversarial noise in this scenario for generalization purposes. In the section <ref> we show it is possible to train DAE with constrained uniform or Gaussian noise mimicking structured error without loss of generalization. It is also possible that only 2D joints are annotated in a given dataset. In sections <ref> and <ref> we also show DAE can lift 2D estimations to 3D. This could also be done by the use of mocap or synthetic 3D data projected to 2D and adversarial noise. The architecture of DAE is shown in Fig. <ref>. We apply two dropouts, one right after the input and the other after last encoder layer. 
By applying skip connections between encoder and decoder layers we force the network to learn noise structure in a fast and stable way. The input to DAE is the initial estimation of 𝐉𝐋_CNN and the output is denoised 𝐉𝐋_DAE. We apply ℒ_1 loss (so called L_DAE) on 𝐉𝐋_DAE to train this network. In order to force the awareness of adjacent joints correlations, we applied an ℒ_1 loss on the relative joints (𝐁 in Eq. <ref>) as well. However, we observed no significant impact on the results.







§ EXPERIMENTS




This section describes training details, datasets, and evaluation protocol. Then, we perform an ablation study of the different model components and compare it against state-of-the-art alternatives.





 §.§ Training details





We build our backbone CNN based on the well-known stacked hourglass network (SHN) <cit.> using 5 stacks. We extend final layers of each stack to volumetric heatmaps, i.e. including an extra dimension to discretize depth of the joints into 16 bins. The output of each stack is a tensor of size 64×64×16×41, where 64 is the size of X-Y axis and 41(=23+18) is the number of joints and landmarks. We train this network with softmax cross entropy loss. All models and experiments were implemented on TensorFlow and trained on a GTX 1080 Ti. We used Adam optimizer in all the experiments with a learning rate of 0.01 for SHN and 0.001 for DAE, Ω and Ψ networks. All networks are trained from scratch using a Xavier initializer. SHN converged in 150-250 epochs with batch size 6-10 samples. The rest of networks in the ablation analysis were trained with batch size 256. We used a keeping probability 0.8 for dropout layer in DAE.

Preprocessing. Images are cropped to a square. To do so, we assume camera focal length and object distance to camera is available beforehand. First, the corners of a 2.5×2.5m grid, centered at average joint location and perpendicular to camera axis, are projected to image plane and define the cropping area. Then, cropped images are scaled to network input size (256×256). This enforces a proportionality among pixel and real world sizes, larger people will appear bigger in image space as well. In those cases where the crops land outside the frame, a random image from VOC Pascal dataset is used for padding. Following <cit.> we use ground truth focal length and object distance to the camera in all experiments, both in training and inference time. However, to study the impact of scale ambiguity on the 3D joint prediction, we also estimate the cropping area in Human3.6M <cit.> dataset and show the results (see section <ref>).

End-to-end training. We applied incremental training. First, all networks (i.e. SHN, DAE, Ω and Ψ) were trained independently and then the whole network was fine-tuned end-to-end. In the ablation study we analyze the effect of different combinations of modules in the training.







 §.§ Datasets






UP-3D <cit.>. This dataset was designed by fitting a gender neutral SMPL model into images from LSP, LSP-extended and MPII-HumanPose datasets, keeping samples with better estimates. This yields a total of 8515 labeled images in the wild, splitted into 5703 for training, 1423 for validation and 1389 for test. Every sample is provided with 2D joints annotations and SMPL parameters.



SURREAL <cit.>. Synthetic dataset of humans generated with SMPL model, containing exact annotations. 
It is composed of 68K videos containing SMPL generated humans moving on top of random backgrounds. For sampling, we skip a frame if the average joint distance is lower than 5cm w.r.t. to last sampled frame. This results in 2.8M training, 27K validation and 665K test samples.




Human3.6M <cit.>. Human3.6M is a large dataset offering high precision 3D data thanks to MoCap sensors and calibrated cameras. It is composed of RGB videos of 11 subjects performing 15 actions twice while being recorded from 4 different viewpoints. It contains around 3.6 million frames. We sampled 1 of every 5 frames, ending with 312K training and 110K validation samples. Following state-of-the-art works, we use subjects S1, S5, S6, S7 and S8 for training, and S9 and S11 for testing. We generated ground truth SMPL parameters from the 3D data and body scans available in the dataset. Body scans allow an accurate estimation of shape parameters, computed only once per subject (shape does not change in short periods of time). Afterwards, we empirically defined a correspondence between SMPL joints and available 3D MoCap data. This matching is not perfect for some joints, which are weighted between [0.25, 0.75] empirically to provide good estimations. This matching allows optimization of pose through an ℒ_2 loss. Finally, correspondence of back joints is not accurate, so instead, we use a loss that penalizes unrealistic back bends, by correcting back's pose parameters that land outside an empirically defined symmetrical range centered at 0.















 §.§ Evaluation protocol




We evaluate the models by mean per joint position error (MPJPE) in millimeters (mm). The same metric is extended to surface points to report error of the generated body meshes. Following related works we apply two protocols: Protocol 1 where all joints/points are subtracted from the root joint and, Protocol 2 where estimated joints are aligned with ground truth through Procrustes analysis. We also report mean Intersection over Union (IoU) on body silhouette after mesh projection to the image plane.





 §.§ Ablation study



In this section, we study different components of the proposed model on SURREAL validation set. For this task we subsample the training dataset into 89K frames such that every pair of samples has at least one joint displaced 150mm w.r.t. to each other, thus enforcing a uniform distribution over the whole dataset. We use the setup in Sec. <ref> to train each component. We explored several combination strategies during training to see the impact of each on the validation set. Except end-to-end training, all building blocks are trained isolated from the rest. We show results and description of each module in Tab. <ref>.





  §.§.§ CNN backbone



We first evaluate the performance of the CNN backbones. The results are shown in Tab. <ref> under CNN row. We first train a baseline Alexnet to regress 3D joints (without landmarks) using L_2 loss, Adam optimizer, learning rate 0.01 and batch size 32. We chose Alexnet for two reasons: 1) to compare the results with the proposed volumetric SHN, and 2) it is a shallow network and prone to have structured error so that we can study DAE impact as well. As expected Alexnet is not performing well to directly regress 3D joints. We then train volumetric SHN to predict 𝐉𝐋 and 𝐉 (so-called SHN and SHN_nL, respectively). As a result, landmarks help SHN to gain 3mm improvement over SHN_nL. Next we explain our contributions to the default volumetric SHN.

Final volumetric heatmap model. To evaluate our method against state-of-the-art we extend default volumetric SHN to include limb heatmaps in the output and train the model using data augmentation. Limb heatmaps are 4 additional volumetric heatmaps in the outputs of SHN. These heatmaps correspond to limb representations, created by composing segments from joint to joint (see Fig. <ref>). By fitting these heatmaps we expect to enforce the model to learn spatial relationships among joints to improve generalization. 

Besides regular data augmentation (including random color noise, flipping and rotation), two extra methods are applied: random background and artificial occlusion. By using binary masks for subjects provided at each frame, we remove the default background and replace it with a random image from VOC Pascal dataset. Similarly, we place random objects from VOC Pascal on random locations of the image to artificially create occlusions <cit.>. In both cases we do not use images containing humans. We call this model SHN^final. The results displayed in the Tab. <ref> show how these simple strategies indeed enhance the performance of default SHN by about 7mm on average joint error. 





  §.§.§ Denoising autoencoder
 


We also evaluate DAE trained with different inputs in several scenarios. Results are shown in Tab. <ref> under DAE row.

Could we train DAE independent to SHN? Since DAE sequentially appears after SHN, it receives estimations from SHN. To answer this question we train DAE, as input, with i) 3D ground truth joints plus uniform noise with adapted bounds for each joint and ii) 3D joints estimated by SHN (so-called DAE_noise and DAE_SHN). We then evaluate both models with SHN estimations as input at test time. As a result, DAE_noise has an average error of 61.7mm (not shown in the table) which is similar to DAE_SHN (61.9mm). This shows the generalization ability of DAE.

Is DAE able to recover from structured noise?  Other than DAE_SHN, we also train and test DAE with Alexnet estimations (called DAE_Alexnet). For Alexnet predicitons, DAE improves the error by 11mm, while on SHN the improvement is 0.7mm. This shows the ability of DAE to learn structured error.

Is DAE able to lift 2D joints to 3D? To answer this question, we train and test DAE, following <cit.>, with SHN estimations while depth is set to 0 (called DAE_SHN^2d). In fact, we want to test how DAE performs in the lack of 3D ground truth data. As a result, the average error is slightly higher than 65mm. Although the average error is 3mm higher than SHN, it shows DAE can lift 2D pose to 3D with successful results. We note that training DAE_SHN^2d converges way slower than DAE_SHN.







  §.§.§ SMPLR



In this section, we evaluate different components of SMPLR using SHN estimations as input in both training and test. The results are shown in Tab. <ref> under SMPLR row. We first evaluate the impact of shape and pose estimations isolated from each other within SMPLR. In test time, shape and pose estimations are fed into SMPL to evaluate final joints error.

Shape estimation. We train Ψ network with L_β loss. During test we feed estimated β along with ground truth ℛ to SMPL. The results are shown as Ψ in Tab. <ref>. As one can see shape estimation has a low impact on final error (around 14mm avg. joints error).

Pose estimation. We train Ω network first with L_R loss and then fine-tune it with L_R+L_SMPL loss. The results are shown as Ω and Ω_smpl in Tab. <ref>, respectively. During test we feed estimated ℛ along with ground truth β to SMPL. As a result we gain 4mm improvement in pose estimation by applying L_R+L_SMPL loss. In general, the higher source of errors in SMPLR is in pose parameters rather than shape.

Impact of landmarks. Landmarks provide more visual evidence to the CNN when they are available in the dataset. Comparing SHN to SHN_nL in Tab. <ref>, one can see landmarks improve head, arms and hip estimations. We also train Ψ network with and without landmarks. Some qualitative results are shown in Fig. <ref>(a).


Gender. We evaluate the accuracy of gender estimation in Ψ and achieve 89.5% accuracy. Such a high accuracy is critical for SMPL rendering. This means a given vector of shape parameters is interpreted differently by each gender model, i.e. a correctly estimated shape parameter but wrong gender estimation produces a wrong mesh generation, introducing a high error in SMPL mesh.





















 
































 §.§ End-to-end training



Here, we describe how the end-to-end training was performed. Thanks to soft-argmax, the model is differentiable and trainable end-to-end. We first explore a regular end-to-end training by stacking already trained models SHN, DAE_SHN, Ψ and Ω_smpl along with SMPL on top. The loss is a summation of all intermediate losses. The order of magnitude of SHN loss is several times lower than the other losses. Therefore, without a proper balancing, the weights of the SHN vanish after few training steps. We empirically set this balance to be around 1e-5. Fine-tuning is performed with a low learning rate, empirically set to 1e-4, to ensure learning stability. We observed this model does not show improvements. Therefore, we propose the next procedure for end-to-end training.

We first train DAE, Ψ and Ω_smpl with ground truth 3D joints until they overfit on training data. Once trained, they are frozen and appended to SHN. Fine-tuning is performed with the same loss balancing and learning rate as before. 
The network shows improvement after the first training epoch, and after an additional epoch it fully converges. To ensure that this improvement is the result of the proposed end-to-end training, we trained SHN alone for more than 10 additional epochs without showing any improvement. The results of SHN after end-to-end training in Tab. <ref> (called SHN_e2e) shows more than 2mm improvement. Some qualitative results are shown in Fig. <ref>(b).

Recover SMPLR error. We stack all trained models to report final SMPL predictions (row ALL in Tab. <ref>). SMPLR naturally has a generalization error. Wrongly estimated gender is a source of error in SMPLR. Not only gender, but also global rotation error embedded in Ω can degrade the results. Fortunately, the mesh can be partially corrected by an affine transformation as a post-processing. To do so we apply Procrustes mapping from SMPLR output to its input 𝐉𝐋 and update the mesh accordingly. The results in Tab. <ref> shows 4mm error recovery of ALL_Proc vs. ALL. Some qualitative examples are shown in Fig. <ref>(c). Note that for this post-processing step, no ground truth information is required, as we align SMPLR output with SHN output (both model predictions), knowing that SHN is more accurate. This is different from protocol 2, where final predictions are aligned with ground truth. 





 §.§ State-of-the-art comparison



Human3.6M. We compare our results to state-of-the-art on Human3.6M in Tab. <ref>, split in two sets: SMPL-based solutions vs. only 3D pose recovery. In the former, we outperform state-of-the-art for both evaluation protocols, especially in protocol 1 improving <cit.> over 25mm. We note that we use Ψ network trained on SURREAL dataset to estimate shape parameters, since Human3.6M contains just 5 subjects in the training set (therefore, only 5 shapes). The results in the second set show that our simple modifications to SHN achieve state-of-the-art results after end-to-end training (SHN_e2e^final). Compared to <cit.>, a fixed small depth resolution of 16 bins in the volumetric heatmap works better than a coarse-to-fine setup. As we mentioned earlier, we also want to study the results when image cropping is not based on ground truth data. Therefore, we estimate camera focal length and object distance to camera following <cit.> and use them to compute the cropping. The error on cropped image is less than 5px on each corner. To be robust against this error we fine-tune SHN^final with an additional random scaling image augmentation. As a result, the 3D joints error is increased less than 1mm in average which is quite marginal on this dataset. Fig. <ref> shows some qualitative results.

SURREAL. The competitors on this dataset are <cit.> and <cit.>. Note that <cit.> relies on all ground truth data in a multi-task setup to generate volumetric body shape which limits applicability. That is, volumetric body shape is a coarse representation and not parametric. The results in Tab. <ref> show we outperform <cit.> by 3.5mm for SMPL surface error. Interestingly, our SHN_e2e^final achieves same 3D joints estimation error (40.8 mm) than <cit.> without performing multi-task learning. 
We show some qualitative results in Fig. <ref>.

UP-3D. We use this dataset to show results in a in-the-wild scenario lifting 2D joints to 3D. To do so, we fine-tune SHN^final_e2e pre-trained on SURREAL. Note that we do not train this model end-to-end on UP-3D dataset. Since this dataset is of small size, we include a subset of 18K images from SURREAL for training. During training the input to DAE is ground truth joints plus uniform noise and depth is set to 0. During testing, SHN estimations (with depth set to 0) are fed to DAE. The inputs to SMPLR are DAE estimations. The SMPL errors in test set before and after Procrustes mapping are around 91mm and 87mm, respectively, being below the 100.5mm error reported in <cit.>. 
Fig. <ref> shows some qualitative results.

Silhouette IoU. To check the quality of rendered body, we also compute silhouette IoU of the estimated mesh after projection to image plane. The results can be seen in Tab. <ref>. We achieve a high IoU (more than 0.7) on all datasets without explicitly training the network for this task.











 §.§ Time complexity




We show the processing time of each module of the proposed network in Tab. <ref>. Experiments were conducted on a GTX1080TI. We compare a default 2D SHN with our proposed volumetric SHN (both SHNs have 5 stacks). As expected, volumetric SHN is 6 times slower than 2D SHN in the training for a batch size of 6. However, there is not much difference between them at inference time for a batch size of 1. We must note that 2D SHN can be fit in GPU memory for a batch size of 12 while volumetric SHN can have at most a batch size of 6. Our SMPLR implementation can be run in 3 FPS for a batch size of 1 at inference time.






§ CONCLUSIONS





We proposed a deep-based framework to recover 3D pose and shape from a still RGB image. Our model is composed of a SHN backbone followed by a DAE and a network capable of reversing SMPL from sparse data. Such model, capable of end-to-end training, is able to accurately reconstruct human body mesh. We experimentally found that processing SHN output joints with DAE removes structured error. We have also shown that SMPL model can be reversed and used to recover 3D pose and shape. 
Finally, we exploit SMPLR capabilities in the training of deep learning networks by backpropagating SMPL related errors through the SHN. We evaluated our proposal on SURREAL and Human3.6M datasets and improved SMPL-based state-of-the-art alternatives by 3.5 and 25 mm, respectively on each dataset.



§ ACKNOWLEDGEMENTS


This work has been partially supported by the Spanish project TIN2016-74946-P (MINECO/FEDER, UE) and CERCA Programme / Generalitat de Catalunya. We gratefully acknowledge the support of NVIDIA Corporation with the donation of the GPU used for this research. This work is partially supported by ICREA under the ICREA Academia programme.

ieee



