Pose2Mesh: Graph Convolutional Network for 3D Human Pose and Mesh Recovery from a 2D Human Pose

Hongsuk Choi, Gyeongsik Moon, Kyoung Mu Lee

Introduction

3D human pose and mesh estimation aims to recover 3D human joint and mesh vertex locations simultaneously. It is a challenging task due to the depth and scale ambiguity, and the complex human body and hand articulation. There have been diverse approaches to address this problem, and recently, deep learning-based methods have shown noticeable performance improvement.

Most of the deep learning-based methods rely on human mesh models, such as SMPL and MANO . They can be generally categorized into a model-based approach and a model-free approach. The model-based approach trains a network to predict the model parameters and generates a human mesh by decoding them . On the contrary, the model-free approach regresses the coordinates of a 3D human mesh directly . Both approaches compute the 3D human pose by multiplying the output mesh with a joint regression matrix, which is defined in the human mesh models .

Although the recent deep learning-based methods have shown significant improvement, they have two major drawbacks. First, when tested on in-the-wild data, the methods inherently suffer from the appearance domain gap between controlled and in-the-wild environment data. The data captured from the controlled environments is valuable train data in 3D human pose and estimation, because it has accurate 3D annotations. However, due to the significant difference of image appearance between the two domains, such as backgrounds and clothes, an image-based approach cannot fully benefit from the data. The second drawback is that the pose parameters of the human mesh models might not be an appropriate regression target, as addressed in Kolotouros et al. . The SMPL pose parameters, for example, represent 3D rotations in an axis-angle, which can suffer from the non-unique problem (i.e., periodicity). While many works tried to avoid the periodicity by using a rotation matrix as the prediction target, it still has a non-minimal representation issue.

To resolve the above issues, we propose Pose2Mesh, a graph convolutional system that recovers 3D human pose and mesh from the 2D human pose, in a model-free fashion. It has two advantages over existing methods. First, the proposed system benefits from a relatively homogeneous geometric property of the input 2D poses from controlled and in-the-wild environments. They not only alleviates the appearance domain gap issue, but also provide essential geometric information on the human articulation. Also, the 2D poses can be estimated accurately from in-the-wild images, since many well-performing methods are trained on large-scale in-the-wild 2D human pose datasets . The second advantage is that Pose2Mesh avoids the representation issues of the pose parameters, while exploiting the human mesh topology (i.e., face and edge information). It directly regresses the 3D coordinates of mesh vertices using a graph convolutional neural network (GraphCNN) with graphs constructed from the mesh topology.

We designed Pose2Mesh in a cascaded architecture, which consists of PoseNet and MeshNet. PoseNet lifts the 2D human pose to the 3D human pose. MeshNet takes both 2D and 3D human poses to estimate the 3D human mesh in a coarse-to-fine manner. During the forward propagation, the mesh features are initially processed in a coarse resolution and gradually upsampled to a fine resolution. Figure 1 depicts the overall pipeline of the system.

The experimental results show that the proposed Pose2Mesh outperforms the previous state-of-the-art 3D human pose and mesh estimation methods on various publicly available 3D human body and hand datasets . Particularly, our Pose2Mesh provides the state-of-the-art result on in-the-wild dataset , even when it is trained only on the controlled setting dataset .

We summarize our contributions as follows.

We propose a novel system, Pose2Mesh, that recovers 3D human pose and mesh from the 2D human pose. The input 2D human pose lets Pose2Mesh robust to the appearance domain gap between controlled and in-the-wild environment data.

Our Pose2Mesh directly regresses 3D coordinates of a human mesh using GraphCNN. It avoids representation issues of the model parameters and leverages the pre-defined mesh topology.

We show that Pose2Mesh outperforms previous 3D human pose and mesh estimation methods on various publicly available datasets.

Related works

3D human body pose estimation. Current 3D human body pose estimation methods can be categorized into two approaches according to the input type: an image-based approach and a 2D pose-based approach. The image-based approach takes an RGB image as an input for 3D body pose estimation. Sun et al. proposed to use compositional loss, which exploits the joint connection structure. Sun et al. employed soft-argmax operation to regress the 3D coordinates of body joints in a differentiable way. Sharma et al. incorporated a generative model and depth ordering of joints to predict the most reliable 3D pose that corresponds to the estimated 2D pose.

The 2D pose-based approach lifts the 2D human pose to the 3D space. Martinez et al. introduced a simple network that consists of consecutive fully-connected layers, which lifts the 2D human pose to the 3D space. Zhao et al. developed a semantic GraphCNN to use spatial relationships between joint coordinates. Our work follows the 2D pose-based approach, to make the Pose2Mesh more robust to the domain difference between the controlled environment of the training set and in-the-wild environment of the testing set.

3D human body and hand pose and mesh estimation. A model-based approach trains a neural network to estimate the human mesh model parameters . It has been widely used for the 3D human mesh estimation, since it does not necessarily require 3D annotation for mesh supervision. Pavlakos et al. proposed a system that could be only supervised by 2D joint coordinates and silhouette. Omran et al. trained a network with 2D joint coordinates, which takes human part segmentation as input. Kanazawa et al. utilized adversarial loss to regress plausible SMPL parameters. Baek et al. trained a CNN to estimate parameters of the MANO model using neural renderer . Kolotouros et al. introduced a self-improving system that consists of SMPL parameter regressor and iterative fitting framework .

Recently, the advance of fitting frameworks has motivated a model-free approach, which estimates human mesh coordinates directly. It enabled researchers to obtain 3D mesh annotation, which is essential for the model-free methods, from in-the-wild data. Kolotouros et al. proposed a GraphCNN, which learns the deformation of the template body mesh to the target body mesh. Ge et al. adopted a GraphCNN to estimate vertices of hand mesh. Moon et al. proposed a new heatmap representation, called lixel, to recover 3D human meshes.

Our Pose2Mesh differs from the above methods, which are image-based, in that it uses the 2D human pose as an input. The proposed system can benefit from the data with 3D annotations, which are captured from controlled environments , without the appearance domain gap issue.

GraphCNN for mesh processing. Recently, many methods consider a mesh as a graph structure and process it using the GraphCNN, since it can fully exploit mesh topology compared with simple stacked fully-connected layers. Wang et al. adopted a GraphCNN to learn a deformation from an initial ellipsoid mesh to the target object mesh in a coarse-to-fine manner. Verma et al. proposed a novel graph convolution operator for the shape correspondence problem. Ranjan et al. also proposed a GraphCNN-based VAE, which learns a latent space of the human face meshes in a hierarchical manner.

PoseNet

2 2D input pose normalization

We apply standard normalization to P2D\mathbf{P}^{\text{2D}}, following . For this, we subtract the mean from P2D\mathbf{P}^{\text{2D}} and divide it by the standard deviation, which becomes Pˉ2D\bar{\mathbf{P}}^{\text{2D}}. The mean and the standard deviation of P2D\mathbf{P}^{\text{2D}} represent the 2D location and scale of the subject, respectively. This normalization is necessary because P3D\mathbf{P}^{\text{3D}} is independent of scale and location of the 2D input pose P2D\mathbf{P}^{\text{2D}}.

3 Network architecture

The architecture of the PoseNet is based on that of . The normalized 2D input pose Pˉ2D\bar{{\mathbf{P}}}^{\text{2D}} is converted to a 4096-dimensional feature vector through a fully-connected layer. Then, it is fed to the two residual blocks . Finally, the output feature vector of the residual blocks is converted to (3J)(3J)-dimensional vector, which represents P3D\mathbf{P}^{\text{3D}}, by a full-connected layer.

4 Loss function

We train the PoseNet by minimizing L1L1 distance between the predicted 3D pose P3D\mathbf{P}^{\text{3D}} and groundtruth. The loss function LposeL_{\text{pose}} is defined as follows:

where the asterisk indicates the groundtruth.

MeshNet

where graph Fourier basis U\mathit{U} is the matrix of the eigenvectors of the normalized graph Laplacian L\mathit{L} , and UTx\mathit{U}^{T}x denotes the graph Fourier transform of xx. Specifically, to reduce the computational complexity, we design MeshNet to be based on Chebysev spectral graph convolution .

Spectral convolution on graph. Then, MeshNet performs the spectral graph convolution on GP\mathcal{G}_{\text{P}}, which is defined as follows:

2 Coarse-to-fine mesh upsampling

We gradually upsample GP\mathcal{G}_{\text{P}} to the graph of M\mathbf{M}, GM=(VM,AM)\mathcal{G}_{\text{M}}=(\mathcal{V}_{\text{M}},\mathit{A}_{\text{M}}), where VM=M={mi}i=1V\mathcal{V}_{\text{M}}=\mathbf{M}=\{\mathbf{m}_{i}\}^{V}_{i=1} is a set of VV human mesh vertices, and AM∈{0,1}V×V\mathit{A}_{\text{M}}\in\{0,1\}^{V\times V} is an adjacency matrix defining edges of the human mesh. To this end, we apply the graph coarsening technique to GM\mathcal{G}_{\text{M}}, which creates various resolutions of graphs, {GMc=(VMc,AMc)}c=0C\{\mathcal{G}_{\text{M}}^{c}=(\mathcal{V}_{\text{M}}^{c},\mathit{A}_{\text{M}}^{c})\}_{c=0}^{C}, where CC denotes the number of coarsening steps, following Defferrard et al. . Figure 2 shows the coarsening process and a balanced binary tree structure of mesh graphs, where the iith vertex in GMc+1\mathcal{G}_{\text{M}}^{c+1} is a parent node of the 2i−12i-1th and 2i2ith vertices in GMc\mathcal{G}_{\text{M}}^{c}, and 2∣VMc+1∣=∣VMc∣2|\mathcal{V}_{\text{M}}^{c+1}|=|\mathcal{V}_{\text{M}}^{c}|. ii starts from 1. The final output of MeshNet is VM\mathcal{V}_{\text{M}}, which is converted from VM0\mathcal{V}_{\text{M}}^{0} by a pre-defined indices mapping. During the forward propagation, MeshNet first upsamples the GP\mathcal{G}_{\text{P}} to the coarsest mesh graph GMC\mathcal{G}_{\text{M}}^{C} by reshaping and a fully-connected layer. Then, it performs the spectral graph convolution on each resolution of mesh graphs as follows:

3 Loss functions

To train our MeshNet, we use four loss functions.

Vertex coordinate loss. We minimize L1L1 distance between the predicted 3D mesh coordinates M\mathbf{M} and groundtruth, which is defined as follows:

where the asterisk indicates the groundtruth.

where the asterisk indicates the groundtruth.

Surface normal loss. We supervise normal vectors of an output mesh surface to be consistent with groundtruth. This consistency loss improves surface smoothness and local details . The loss function LnormalL_{\text{normal}} is defined as follows:

where ff and nf∗n^{*}_{f} denote a triangle face in the human mesh and a groundtruth unit normal vector of ff, respectively. mi\mathbf{m}_{i} and mj\mathbf{m}_{j} denote the iith and jjth vertices in ff.

Surface edge loss. We define edge length consistency loss between predicted and groundtruth edges, following . The edge loss is effective in recovering smoothness of hands, feet, and a mouth, which have dense vertices. The loss function LedgeL_{\text{edge}} is defined as follows:

where ff and the asterisk denote a triangle face in the human mesh and the groundtruth, respectively. mi\mathbf{m}_{i} and mj\mathbf{m}_{j} denote iith and jjth vertex in ff.

We define the total loss of our MeshNet, LmeshL_{\text{mesh}}, as a weighted sum of all four loss functions:

where λv=1,  λj=1,  λn=0.1,\lambda_{\text{v}}=1,\;\lambda_{\text{j}}=1,\;\lambda_{\text{n}}=0.1, and λe=20\lambda_{\text{e}}=20.

Implementation Details

PyTorch is used for implementation. We first pre-train our PoseNet, and then train the whole network, Pose2Mesh, in an end-to-end manner. Empirically, our two-step training strategy gives better performance than the one-step training. The weights are updated by the Rmsprop optimization with a mini-batch size of 64. We pre-train PoseNet 60 epochs with a learning rate 10−310^{-3}. The learning rate is reduced by a factor of 10 after the 3030th epoch. After integrating the pre-trained PoseNet to Pose2Mesh, we train the whole network 15 epochs with a learning rate 10−310^{-3}. The learning rate is reduced by a factor of 10 after the 1212th epoch. In addition, we set λe\lambda_{\text{e}} to 0 until 7 epoch on the second training stage, since it tends to cause local optima at the early training phase. We used four NVIDIA RTX 2080 Ti GPUs for Pose2Mesh training, which took at least a half day and at most two and a half days, depending on the training datasets. In inference time, we use 2D pose outputs from Sun et al. and Xiao et al. . They run at 5 fps and 67 fps respectively, and our Pose2Mesh runs at 37 fps. Thus, the proposed system can process from 4 fps to 22 fps in practice, which shows the applicability to real-time applications.

Experiment

Human3.6M. Human3.6M is a large-scale indoor 3D body pose benchmark, which consists of 3.6M video frames. The groundtruth 3D poses are obtained using a motion capture system, but there are no groundtruth 3D meshes. As a result, for 3D mesh supervision, most of the previous 3D pose and mesh estimation works used pseudo-groundtruth obtained from Mosh . However, due to the license issue, the pseudo-groundtruth from Mosh is not currently publicly accessible. Thus, we generate new pseudo-groundtruth 3D meshes by fitting SMPL parameters to the 3D groundtruth poses using SMPLify-X . For the fair comparison, we trained and tested previous state-of-the-art methods on the obtained groundtruth using their officially released code. Following , all methods are trained on 5 subjects (S1, S5, S6, S7, S8) and tested on 2 subjects (S9, S11).

We report our performance for the 3D pose using two evaluation metrics. One is mean per joint position error (MPJPE) , which measures the Euclidean distance in millimeters between the estimated and groundtruth joint coordinates, after aligning the root joint. The other one is PA-MPJPE, which calculates MPJPE after further alignment (i.e., Procrustes analysis (PA) ). JM\mathcal{J}\mathbf{M} is used for the estimated joint coordinates. We only evaluate 14 joints out of 17 estimated joints following .

3DPW. 3DPW is captured from in-the-wild and contains 3D body pose and mesh annotations. It consists of 51K video frames, and IMU sensors are leveraged to acquire the groundtruth 3D pose and mesh. We only use the test set of 3DPW for evaluation following . MPJPE and mean per vertex position error (MPVPE) are used for evaluation. 14 joints from JM\mathcal{J}\mathbf{M}, whose joint set follows that of Human3.6M, are evaluated for MPJPE as above. MPVPE measures the Euclidean distance in millimeters between the estimated and groundtruth vertex coordinates, after aligning the root joint.

COCO. COCO is an in-the-wild dataset with various 2D annotations such as detection and human joints. To exploit this dataset on 3D mesh learning, Kolotouros et al. fitted SMPL parameters to 2D joints using SMPLify . Following them, we use the processed data for training.

MuCo-3DHP. MuCo-3DHP is synthesized from the existing MPI-INF-3DHP 3D single-person pose estimation dataset . It consists of 200K frames, and half of them have augmented backgrounds. For the background augmentation, we use images of COCO that do not include humans to follow Moon et al. . Following them, we use this dataset only for the training.

FreiHAND. FreiHAND is a large-scale 3D hand pose and mesh dataset. It consists of a total of 134K frames for training and testing. Following Zimmermann et al. , we report PA-MPVPE, F-scores, and additionally PA-MPJPE of Pose2Mesh. JM\mathcal{J}\mathbf{M} is evaluated for the joint errors.

2 Ablation study

To analyze each component of the proposed system, we trained different networks on Human3.6M, and evaluated on Human3.6M and 3DPW. The test 2D input poses used in Human3.6M and 3DPW evaluation are outputs from Integral Regression and HRNet respectively, which are obtained using groundtruth bounding boxes.

Regression target and network design. To demonstrate the effectiveness of regressing the 3D mesh vertex coordinates using GraphCNN, we compare MPJPE and PA-MPJPE of four different combinations of the regression target and the network design in Table 1. First, vertex-GraphCNN, our Pose2Mesh, substantially improves the joint errors compared to vertex-FC, which regresses vertex coordinates with a network of fully-connected layers. This proves the importance of exploiting the human mesh topology with GraphCNN, when estimating the 3D vertex coordinates. Second, vertex-GraphCNN provides better performance than both networks estimating SMPL parameters, while maintaining the considerably smaller number of network parameters. Taken together, the effectiveness of our mesh coordinate regression scheme using GraphCNN is clearly justified.

In this comparison, the same PoseNet and cascaded architecture are employed for all networks. On top of the PoseNet, vertex-FC and param-FC used a series of fully-connected layers, whereas param-GraphCNN added fully-connected layers on top of Pose2Mesh. For the fair comparison, when training param-FC and param-GraphCNN, we also supervised the reconstructed mesh from the predicted SMPL parameters with LvertexL_{\text{vertex}} and LjointL_{\text{joint}}. The networks estimating SMPL parameters incorporated Zhou et al.’s method for continuous rotations.

Coarse-to-fine mesh upsampling. We compare a coarse-to-fine mesh upsampling scheme and a direct mesh upsampling scheme. The direct upsampling method performs graph convolution on the lowest resolution mesh until the middle layer of MeshNet, and then directly upsamples it to the highest one (e.g., 96 to 12288 for the human body mesh). While it has the same number of graph convolution layers and almost the same number of parameters, our coarse-to-fine model consumes half as much GPU memory and runs 1.5 times faster than the direct upsampling method. It is because graph convolution on the highest resolution takes much more time and memory than graph convolution on lower resolutions. In addition, the coarse-to-fine upsampling method provides a slightly lower joint error, as shown in Table 3. These results confirm the effectiveness of our coarse-to-fine upsampling strategy.

Cascaded architecture analysis. We analyze the cascaded architecture of Pose2Mesh to demonstrate its validity in Table 3. To be specific, we construct (a) a GraphCNN that directly takes a 2D pose, (b) a cascaded network that predicts mesh coordinates from a 3D pose from pretrained PoseNet, and (c) our Pose2Mesh. All methods are both trained by synthesized 2D poses. First, (a) outperforms (b), which implies a 3D pose output from PoseNet may lack geometry information in the 2D input pose. If we concatenate the 3D pose output with the 2D input pose as (c), it provides the lowest errors. This explains that depth information in 3D poses could positively affect 3D mesh estimation.

To further verify the superiority of the cascaded architecture, we explore the upper bounds of (a) and (d) a GraphCNN that takes a 3D pose in Table 13. To this end, we fed the groundtruth 2D pose and 3D pose to (a) and (d) as test inputs, respectively. Apparently, since the input 3D pose contains additional depth information, the upper bound of (d) is considerably higher than that of (a). We also fed state-of-the-art 3D pose outputs from to (d), to validate the practical potential for performance improvement. Surprisingly, the performance is comparable to the upper bound of (a). Thus, our Pose2Mesh will substantially outperform (a) a graph convolution network that directly takes a 2D pose, if we can improve the performance of PoseNet. In summary, the above results prove the validity of our cascaded architecture of Pose2Mesh.

3 Comparison with state-of-the-art methods

Human3.6M. We compare our Pose2Mesh with the previous state-of-the-art 3D body pose and mesh estimation methods on Human3.6M in Table 5. First, when we train all methods only on Human3.6M, our Pose2Mesh significantly outperforms other methods. However, when we train the methods additionally on COCO, the performance of the previous baselines increases, but that of Pose2Mesh slightly decreases. The performance gain of other methods is a well-known phenomenon among image-based methods, which tend to generalize better when trained with diverse images from in-the-wild. Whereas, our Pose2Mesh does not benefit from more images in the same manner, since it only takes the 2D pose. We analyze the reason for the performance drop is that the test set and train set of Human3.6M have similar poses, which are from the same action categories. Thus, overfitting the network to the poses of Human3.6M can lead to better accuracy. Nevertheless, in both cases, our Pose2Mesh outperforms the previous methods in both MPJPE and PA-MPJPE. The test 2D input poses for Pose2Mesh are estimated by the method of Sun et al. trained on MPII , using groundtruth bounding boxes.

3DPW. We compare MPJPE, PA-MPJPE, and MPVPE of our Pose2Mesh with the previous state-of-the-art 3D body pose and mesh estimation works on 3DPW, which is an in-the-wild dataset, in Table 6. First, when the image-based methods are trained only on Human3.6M, they give extremely high errors. This verifies that the image-based methods suffer from the appearance domain gap between train and test data from controlled and in-the-wild environments respectively. In fact, since Human3.6M is an indoor dataset from the controlled environment, the image appearance from it are very different from in-the-wild image appearance. On the contrary, the 2D pose-based approach of Pose2Mesh can benefit from accurate 3D annotations of the lab-recorded 3D datasets without the appearance domain gap issue, utilizing the homogeneous geometric property of 2D poses from different domains. Indeed, Pose2Mesh gives far lower errors on in-the-wild images from 3DPW, even when it is only trained on Human3.6M while other methods are additionally trained on COCO. The experimental results suggest that a 3D pose and mesh estimation approach may not necessarily require 3D data captured from in-the-wild environments, which is extremely challenging to acquire, to give accurate predictions. The test 2D input poses for Pose2Mesh are estimated by HRNet and Simple trained on COCO, using groundtruth bounding boxes. The average precision (AP) of and are 85.1 and 82.8 on 3DPW test set, 72.1 and 70.4 on COCO validation set, respectively.

FreiHAND. We present the comparison between our Pose2Mesh and other state-of-the-art 3D hand pose and mesh estimation works in Table 7. The proposed system outperforms other methods in various metrics, including PA-MPVPE and F-scores. The test 2D input poses for Pose2Mesh are estimated by HRNet trained on FreiHAND , using bounding boxes from Mask R-CNN with ResNet-50 backbone .

Comparison with different train sets. We report MPJPE and PA-MPJPE of Pose2Mesh trained on Human3.6M, COCO, and MuCo-3DHP, and other methods trained on different train sets in Table 8. The train sets include Human3.6M, COCO, MPII , LSP , LSP-Extended , UP , and MPI-INF-3DHP . Each method is trained on a different subset of them. In the table, the errors of decrease by a large margin compared to the errors in Table 5 and 6. Although it shows that the image-based methods can improve the generalizability with weak-supervision on in-the-wild 2D pose datasets, Pose2Mesh still provides the lowest errors in 3DPW, which is the in-the-wild benchmark. This suggests that tackling the domain gap issue to fully benefit from the 3D data of controlled environments is an important task to recover accurate 3D pose and mesh from in-the-wild images. We measured the PA-MPJPE of Pose2Mesh on Human3.6M by testing only on the frontal camera set, following the previous works . In addition, we used 2D human poses estimated from DarkPose as input for 3DPW evaluation, which improved HRNet .

Figure 4 shows the qualitative results on COCO validation set and FreiHAND test set. Our Pose2Mesh outputs visually decent human meshes without post-processing, such as model fitting . More qualitative results can be found in the supplementary material.

Discussion

Although the proposed system benefits from the homogeneous geometric property of input 2D poses from different domains, it could be challenging to recover various 3D shapes solely from the pose. While it may be true, we found that the 2D pose still carries necessary information to reason the corresponding 3D shape. In the literature, SMPLify has experimentally verified that under the canonical body pose, utilizing 2D pose significantly drops the body shape fitting error compared to using the mean body shape. We show that Pose2Mesh can recover various body shapes from the 2D pose in the supplementary material.

Conclusion

We propose a novel and general system, Pose2Mesh, for 3D human mesh and pose estimation from a 2D human pose. The input 2D pose enables the system to benefit from the 3D data captured from the controlled settings without the appearance domain gap issue. The model-free approach using GraphCNN allows it to fully exploit mesh topology, while avoiding the representation issues of the 3D rotation parameters. We plan to enhance the shape recover capability of Pose2Mesh using denser keypoints or part segmentation, while maintaining the above advantages.

Acknowledgements. This work was supported by IITP grant funded by the Ministry of Science and ICT of Korea (No.2017-0-01780), and Hyundai Motor Group through HMG-SNU AI Consortium fund (No. 5264-20190101).

Supplementary Material of “Pose2Mesh: Graph Convolutional Network for 3D Human Pose and Mesh Recovery from a 2D Human Pose”

In this supplementary material, we present more experimental results that could not be included in the main manuscript due to the lack of space.

Qualitative results

We trained and tested Pose2Mesh on SURREAL , which have various samples in terms of the body shape, to verify the capability of shape recovery. As shown in Figure 5, Pose2Mesh can recover a 3D body shape corresponding to an input image, though not perfectly. The shape features of individuals, such as the bone length ratio and fatness, are expressed in the outputs of Pose2Mesh. This implies that the information embedded in joint locations (e.g. the distance between hip joints) carries a certain amount of shape cue.

2 Additional results

Here, we present more qualitative results on COCO validation set and FreiHAND test set in Figure 6. The images at the fourth row show some of the failure cases. Although the people on the first and second images appear to be overweight, the predicted meshes seem to be closer to the average shape. The right arm pose of the mesh in the third column is bent, though it appears straight.

3 Comparison with the state-of-the-art

We present the qualitative comparison between our Pose2Mesh and GraphCMR in Figure 7. We regard GraphCMR as a suitable comparison target, since it is also the model-free method and regresses coordinates of human mesh defined by SMPL using GraphCNN like ours. As the figure shows, our Pose2Mesh provides much more visually pleasant mesh results than GraphCMR. Based on the loss function analysis in Section 7 and the visual results of GraphCMR, we conjecture that the surface losses such as the normal loss and the edge loss are the reason for the difference.

Details of PoseNet

Figure 8 shows the detailed network architecture of PoseNet. First, the normalized input 2D pose vector is converted to a 4096-dimensional feature vector by a fully-connected layer. Then, it is fed to the two residual blocks, where each block consists of a fully connected layer, 1D batch normalization, ReLU activation, and the dropout. The dimension of the feature map in the residual block is 4096, and the dropout probability is set to 0.5. Finally, the output from the residual block is converted to (3J)(3J)-dimensional vector, the 3D pose vector, by a fully-connected layer. The 3D pose vector represents the root-relative 3D pose coordinates.

2 Accuracy of PoseNet

We present MPJPE and PA-MPJPE of PoseNet on the benchmarks in Table 9. For the Human3.6M benchmark , 14 common joints out of 17 Human3.6M defined joints are evaluated following . For the 3DPW benchmark , COCO defined 17 joints are evaluated and JM\mathcal{J}\mathbf{M} from the groundtruth SMPL meshes are used as groundtruth. The 2D pose outputs from and are taken as test inputs on Human3.6M and 3DPW respectively. For the FreiHAND benchmark, only FreiHAND train set is used during training, and 21 MANO hand joints are evaluated by the official evaluation website. The 2D pose outputs from are taken as test inputs.

Pre-defined joint sets and graph structures

We use different pre-defined joint sets and graph structures for Human3.6M, 3DPW, SURREAL, and FreiHAND benchmarks, as shown in Figure 9. To be specific, we employ Human3.6M body joints, COCO body joints, SMPL body joints, MANO hand joints for Human3.6M, 3DPW, SURREAL, FreiHAND benchmarks, respectively, in both training and testing stages. For the COCO joint set, we additionally define pelvis and neck joints that connect the upper body and lower body. The pelvis and neck coordinates are calculated as the middle point of right-left hips and right-left shoulders, respectively.

Pseudo-groundtruth SMPL parameters of Human3.6M

Mosh method can compute SMPL parameters from the marker data in Human3.6M. Since Human3.6M does not provide 3D mesh annotations, most of the previous 3D pose and mesh estimation papers used the SMPL parameters obtained by Mosh method as the groundtruth for the supervision. However, due to the license issue, the SMPL parameters are not currently available. Furthermore, the source code of Mosh is not publicly released.

For the 3D mesh supervision, we alternatively obtain groundtruth SMPL parameters by applying SMPLify-X on the groundtruth 3D joint coordinates of Human3.6M. Although the obtained SMPL parameters are not perfectly aligned to the groundtruth 3D joint coordinates, we confirmed that the error of the SMPLify-X is much less than those of current state-of-the-art 3D human pose estimation methods, as shown in Table 10. Thus, we believe using SMPL parameters obtained by SMPLify-X as groundtruth is reasonable. For the fair comparison, all the previous works and our system are trained on our SMPL parameters from SMPLify-X.

During the fitting process of SMPLify-X, we adopted a neutral gender SMPL body model. However, we empirically found that the fitting process produces gender-specific body shapes, which correspond to each subject. As a result, since most of the subjects in the training set of Human3.6M are female, our Pose2Mesh trained on Human3.6M tends to produce female body shape meshes. We tried to fix the identity code of the SMPL body model obtained from the T-pose; however, it produces higher errors. Thus, we did not fix the identity code for each subject.

Synthetic data from AMASS

We leverage additional synthetic data from AMASS to boost the performance of Pose2Mesh. AMASS is a new database that unifies 15 different optical marker-based mocap datasets within a common framework. It created SMPL parameters from mocap data by a method named Mosh++. We used CMU and BML-Movi from the database in training PoseNet and only CMU in training Pose2Mesh.

To be specific, we generated paired 2D pose-3D mesh data by projecting a 3D pose obtained from a mesh to the image plane, using camera parameters from Human3.6M. As shown in Table 11, when AMASS is added, both the joint error and surface error decrease. Exploiting AMASS data in this fashion is not possible for , , and , since they need pairs of image and 2D/3D annotations.

Synthesizing the input 2D poses in the training stage

As described in Section 4.1 of the main manuscript, we synthesize the input 2D poses by adding randomly generated errors on the groundtruth 2D poses in the training stage. For this, we generate errors following Chang et al. and Moon et al. for Human3.6M and COCO body joint sets, respectively. On the other hand, for FreiHAND benchmark, we used detection outputs from on the training set as the input poses in the training stage, since there are no verified synthetic errors for the hand joints.

2 Effect of synthesizing the input 2D poses

To demonstrate the validity of the synthesizing process, we compare MPJPE and PA-MPJPE of Pose2Mesh trained with the groundtruth 2D poses, and the synthesized input 2D poses in Table 12. For Human3.6M, only Human3.6M train set is used for the training, and for 3DPW benchmark, Human3.6M and COCO are used for the training. The test 2D input poses used in Human3.6M and 3DPW evaluation are outputs from Integral Regression and HRNet respectively, using groundtruth bounding boxes. Apparently, when our Pose2Mesh is trained with the synthesized input 2D poses, Pose2Mesh performs far better on both benchmarks. This proves that the synthesizing process makes Pose2Mesh more robust to the errors in the input 2D poses and increases the estimation accuracy.

Train/test with groundtruth input poses

We present the upper bounds of Pose2Mesh, PoseNet, and MeshNet on Human3.6M and 3DPW benchmarks by training and testing with groundtruth input poses in Table 13. Pose2Mesh and PoseNet take the groundtruth 2D pose as an input, while MeshNet takes the groundtruth 3D pose as an input. As the table shows, the upper bound of Pose2Mesh is similar to that of PoseNet, which implies that the 3D pose errors of Pose2Mesh follow those of PoseNet as analyzed in Section 7.2 of the main manuscript. In addition, the upper bound of MeshNet indicates that we can recover highly accurate 3D human meshes if we can estimate nearly perfect 3D poses.

The MPJPE and PA-MPJPE of Pose2Mesh and MeshNet are measured on the 3D pose regressed from the mesh output, while the accuracy of PoseNet is measured on the lifted 3D pose. For the Human3.6M benchmark, only Human3.6M train set is used to train the network. For the 3DPW benchmark, Human3.6M, COCO, AMASS train sets are used to train the network.

Effect of each loss function

We analyze the effect of joint coordinate loss LjointL_{\text{joint}}, surface normal loss LnormalL_{\text{normal}}, and surface edge loss LedgeL_{\text{edge}} on reconstructing a 3D human mesh in Table 14 and Figure 10. Human3.6M is used for the training and testing. As the table shows, training without LjointL_{\text{joint}} has a relatively distinctive effect on MPJPE and PA-MPJPE, while other settings show numerically negligible differences. On the other hand, as the figure shows, training without LnormalL_{\text{normal}} or LedgeL_{\text{edge}} clearly decreases the visual quality of the mesh output, while training without LjointL_{\text{joint}} has nearly no effect on the visual quality of the meshes. To be specific, training without LnormalL_{\text{normal}} impairs the overall smoothness of the mesh and local details of mouth, hands, and feet. Similarly, training without LedgeL_{\text{edge}} ruins the details of body parts that have dense vertices, especially mouth, hands, and feet, by making serious artifacts caused by flying vertices.

References