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
- Run without installing: You will need to install the dependencies listed in environment.yml:
conda env update -f environment.yml
in an existing environment, orconda env create -f environment.yml
, for a newsmplpytorch
environment
- Install: To import
SMPL_Layer
in another project withfrom smplpytorch.pytorch.smpl_layer import SMPL_Layer
do one of the following.
2. Download SMPL pickle files
- Download the models from the SMPL website by choosing "SMPL for Python users". Note that you need to comply with the SMPL model license.
- Extract and copy the
models
folder into thesmplpytorch/native/
folder (or set themodel_root
parameter accordingly).
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.