Rename smpl->smplpytorch.
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@ -3,8 +3,10 @@
|
||||
*_bak.py
|
||||
|
||||
.cache/
|
||||
.egg-info
|
||||
__pycache__/
|
||||
build/
|
||||
dist/
|
||||
|
||||
smpl/native/models/*.pkl
|
||||
image.png
|
||||
smplpytorch/native/models/*.pkl
|
||||
|
||||
29
README.md
29
README.md
@ -7,18 +7,31 @@ It can be integrated into any architecture as a differentiable layer to predict
|
||||
The code is adapted from the [manopth](https://github.com/hassony2/manopth) repository by [Yana Hasson](https://github.com/hassony2).
|
||||
|
||||
<p align="center">
|
||||
<img src="image.png" alt="smpl" width="300"/>
|
||||
<img src="assets/image.png" alt="smpl" width="300"/>
|
||||
</p>
|
||||
|
||||
## Setting up
|
||||
|
||||
* Dependencies:
|
||||
* Install the dependencies listed in [environment.yml](environment.yml)
|
||||
* In an existing conda environment, `conda env update -f environment.yml`
|
||||
* In a new environment, `conda env create -f environment.yml`, will create a conda environment named `smplpytorch`
|
||||
* Download SMPL pickle files:
|
||||
## Setup
|
||||
|
||||
### 1. The `smplpytorch` package
|
||||
* **Run without installing:** You will need to install the dependencies listed in [environment.yml](environment.yml):
|
||||
* `conda env update -f environment.yml` in an existing environment, or
|
||||
* `conda env create -f environment.yml`, for a new `smplpytorch` environment
|
||||
* **Install:** To import `SMPL_Layer` in another project with `from smplpytorch.pytorch.smpl_layer import SMPL_Layer` do one of the following.
|
||||
* Option 1: This should automatically install the dependencies.
|
||||
``` bash
|
||||
git clone https://github.com/gulvarol/smplpytorch.git
|
||||
cd smplpytorch
|
||||
pip install .
|
||||
```
|
||||
* Option 2: You can install `smplpytorch` from [PyPI](https://pypi.org/project/smplpytorch/). Additionally, you might need to install [chumpy](https://github.com/hassony2/chumpy.git).
|
||||
``` bash
|
||||
pip install smplpytorch
|
||||
```
|
||||
|
||||
### 2. Download SMPL pickle files
|
||||
* Download the models from the [SMPL website](http://smpl.is.tue.mpg.de/) by choosing "SMPL for Python users". Note that you need to comply with the [SMPL model license](http://smpl.is.tue.mpg.de/license_model).
|
||||
* Extract and copy the `models` folder into the `smpl/native/` folder.
|
||||
* Extract and copy the `models` folder into the `smplpytorch/native/` folder (or set the `model_root` parameter accordingly).
|
||||
|
||||
## Demo
|
||||
|
||||
|
||||
BIN
assets/image.png
Normal file
BIN
assets/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
4
demo.py
4
demo.py
@ -1,6 +1,6 @@
|
||||
import torch
|
||||
|
||||
from smpl.pytorch.smpl_layer import SMPL_Layer
|
||||
from smplpytorch.pytorch.smpl_layer import SMPL_Layer
|
||||
from display_utils import display_model
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ if __name__ == '__main__':
|
||||
smpl_layer = SMPL_Layer(
|
||||
center_idx=0,
|
||||
gender='neutral',
|
||||
model_root='smpl/native/models')
|
||||
model_root='smplpytorch/native/models')
|
||||
|
||||
# Generate random pose and shape parameters
|
||||
pose_params = torch.rand(batch_size, 72) * 0.2
|
||||
|
||||
@ -6,5 +6,6 @@ dependencies:
|
||||
- matplotlib
|
||||
- numpy
|
||||
- pytorch
|
||||
- pip
|
||||
- pip:
|
||||
- git+https://github.com/hassony2/chumpy.git
|
||||
|
||||
5
setup.py
5
setup.py
@ -1,6 +1,5 @@
|
||||
import setuptools
|
||||
|
||||
|
||||
with open("README.md", "r") as fh:
|
||||
long_description = fh.read()
|
||||
|
||||
@ -12,7 +11,7 @@ REQUIREMENTS = [
|
||||
"chumpy @ git+ssh://git@github.com/hassony2/chumpy"]
|
||||
|
||||
setuptools.setup(
|
||||
name="smpl-pytorch",
|
||||
name="smplpytorch",
|
||||
version="0.0.1",
|
||||
author="Gul Varol",
|
||||
author_email="gulvarols@gmail.com",
|
||||
@ -21,7 +20,7 @@ setuptools.setup(
|
||||
description="SMPL human body layer for PyTorch is a differentiable PyTorch layer",
|
||||
long_description=long_description,
|
||||
long_description_content_type="text/markdown",
|
||||
url="https://github.com/gulvarol/smpl-pytorch",
|
||||
url="https://github.com/gulvarol/smplpytorch",
|
||||
packages=setuptools.find_packages(),
|
||||
classifiers=[
|
||||
"Programming Language :: Python :: 3",
|
||||
|
||||
1
smplpytorch/__init__.py
Normal file
1
smplpytorch/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
name = "smplpytorch"
|
||||
@ -3,7 +3,7 @@ def ready_arguments(fname_or_dict):
|
||||
import pickle
|
||||
import chumpy as ch
|
||||
from chumpy.ch import MatVecMult
|
||||
from smpl.native.webuser.posemapper import posemap
|
||||
from smplpytorch.native.webuser.posemapper import posemap
|
||||
|
||||
if not isinstance(fname_or_dict, dict):
|
||||
dd = pickle.load(open(fname_or_dict, 'rb'), encoding='latin1')
|
||||
@ -4,9 +4,9 @@ import numpy as np
|
||||
import torch
|
||||
from torch.nn import Module
|
||||
|
||||
from smpl.native.webuser.serialization import ready_arguments
|
||||
from smpl.pytorch import rodrigues_layer
|
||||
from smpl.pytorch.tensutils import (th_posemap_axisang, th_with_zeros, th_pack, make_list, subtract_flat_id)
|
||||
from smplpytorch.native.webuser.serialization import ready_arguments
|
||||
from smplpytorch.pytorch import rodrigues_layer
|
||||
from smplpytorch.pytorch.tensutils import (th_posemap_axisang, th_with_zeros, th_pack, make_list, subtract_flat_id)
|
||||
|
||||
|
||||
class SMPL_Layer(Module):
|
||||
@ -1,6 +1,6 @@
|
||||
import torch
|
||||
|
||||
from smpl.pytorch import rodrigues_layer
|
||||
from smplpytorch.pytorch import rodrigues_layer
|
||||
|
||||
|
||||
def th_posemap_axisang(pose_vectors):
|
||||
Reference in New Issue
Block a user