This is the official repository for ECCV 2022 paper Skeleton-free Pose Transfer for Stylized 3D Characters.
More detailed documentation coming soon!
- Python >= 3.7
- Pytorch >= 1.4
- Pytorch-geometric
- Pymesh (optional)
pip install opencv-python tensorboardx smplx pyrender open3d cython kornia
Download our demo data and pretrained model from here. Unzip it to the project root directory.
Then,
python demo.py
Checkt the results in ./demo/results
and they should be the same as meshes in ./demo/results_reference
.
To try with your own data, make sure the number of triangles is around 5K (not a strict requirement) and the orientation of the character is the same as demo data (front: +Z, up: +Y)
Download SMPLH model from here and extract.
Set the SMPLH_PATH
in global_var.py
to the folder it is extracted to.
Then, run
python demo_smpl.py
More documentations about training will come soon.
All paths are defined in global_var.py
Download SMPLH model from here and extract.
Set the SMPLH_PATH
in global_var.py
to the folder it is extracted to.
Here is the simplified SMPL mesh used in our training.
The training/testing split we used for the paper can be downloaded here.
- Download Mixamo characters of T-pose.
- Download Mixamo animations. Note that we don't use character-specific animations. Thus, simply download animations for one character.
- Convert static characters (T-pose) into
.obj
format and animations into.bvh
format. Unfortunately, I used some internal codes for this part, which cannot be open-sourced. You might have to write the conversion yourself. - Put characters of T-pose in
{MIXAMO_PATH}/obj
in.obj
format. - Extract skinning information running
data_proc/mixamo_fbx_parser.py
in Maya, and put ground truth skinning information of characters in{MIXAMO_PATH}/rig_info
. The data format should be the same as inrig_info
in RigNet dataset. - Run
python data_proc/mixamo_simplify.py
to make sure the triangle numbers are less than 5000. - Run
python data_proc/mixamo_preproc_simplify.py
- Run
python data_proc/mixamo_motion_preproc.py
python train.py
Please cite our paper if you use this repository:
@inproceedings{liao2022pose,
title = {Skeleton-free Pose Transfer for Stylized 3D Characters},
author = {Liao, Zhouyingcheng and Yang, Jimei and Saito, Jun and Pons-Moll, Gerard and Zhou, Yang},
booktitle = {European Conference on Computer Vision ({ECCV})},
month = {October},
organization = {{Springer}},
year = {2022},
}
We borrowed part of the codes from the following projects:
https://github.com/zycliao/TailorNet_dataset
https://github.com/zhan-xu/RigNet
https://github.com/YadiraF/face3d
https://github.com/kzhou23/shape_pose_disent