Home

Awesome

SMPL layer for PyTorch

SMPL human body [1] layer for PyTorch (tested with v0.4 and v1.x) is a differentiable PyTorch layer that deterministically maps from pose and shape parameters to human body joints and vertices. It can be integrated into any architecture as a differentiable layer to predict body meshes. The code is adapted from the manopth repository by Yana Hasson.

<p align="center"> <img src="assets/image.png" alt="smpl" width="300"/> </p>

Setup

1. The smplpytorch package

2. Download SMPL pickle files

Demo

Forward pass the randomly created pose and shape parameters from the SMPL layer and display the human body mesh and joints:

python demo.py

Acknowledgements

The code largely builds on the manopth repository from Yana Hasson, which implements the MANO hand model [2] layer.

The code is a PyTorch port of the original SMPL model from chumpy. It builds on the work of Loper et al. [1].

The code reuses part of the code by Zhang Xiong to compute the rotation utilities.

If you find this code useful for your research, please cite the original SMPL publication:

@article{SMPL:2015,
    author = {Loper, Matthew and Mahmood, Naureen and Romero, Javier and Pons-Moll, Gerard and Black, Michael J.},
    title = {{SMPL}: A Skinned Multi-Person Linear Model},
    journal = {ACM Trans. Graphics (Proc. SIGGRAPH Asia)},
    number = {6},
    pages = {248:1--248:16},
    volume = {34},
    year = {2015}
}

References

[1] Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J. Black, "SMPL: A Skinned Multi-Person Linear Model," SIGGRAPH Asia, 2015.

[2] Javier Romero, Dimitrios Tzionas, and Michael J. Black, "Embodied Hands: Modeling and Capturing Hands and Bodies Together," SIGGRAPH Asia, 2017.