- Notifications
You must be signed in to change notification settings - Fork11
License
xuchen-ethz/fast-snarf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Fast-SNARF models the articulation of neural fields. It allows learning articulated objects from deformed observations, such as 3D posed meshes, in an accurate and fast way. In particular, Fast-SNARF achieves similar accuracy as its parentSNARF while being 150x faster.
In this repo, we apply Fast-SNARF to learn animatable avatars from 3D data. More application (e.g. learning from images) will be announced later.
Clone this repo:
git clone https://github.com/xuchen-ethz/fast-snarf.gitcd fast-snarf
Install environment:
conda env create -f environment.ymlconda activate fast_snarfpython setup.py install
DownloadSMPL models (1.0.0 for Python 2.7 (10 shape PCs)) and move them to the corresponding places:
mkdir lib/smpl/smpl_model/mv /path/to/smpl/models/basicModel_f_lbs_10_207_0_v1.0.0.pkl lib/smpl/smpl_model/SMPL_FEMALE.pklmv /path/to/smpl/models/basicmodel_m_lbs_10_207_0_v1.0.0.pkl lib/smpl/smpl_model/SMPL_MALE.pkl
Download our pretrained models and test motion sequences:
sh ./download_data.sh
Run a quick demo for clothed human:
python demo.py expname=cape subject=3375 demo.motion_path=data/aist_demo/seqs +experiments=cape
You can the find the video inoutputs/cape/3375/demo.mp4
and images inoutputs/cape/3375/images/
. To save the meshes, adddemo.save_mesh=true
to the command.
You can also try other subjects (seeoutputs/data/cape
for available options) by settingsubject=xx
, and other motion sequences fromAMASS by settingdemo.motion_path=/path/to/amass_modetion.npz
.
Some motion sequences have high fps and one might want to skip some frames. To do this, adddemo.every_n_frames=x
to consider every x frame in the motion sequence. (e.g.demo.every_n_frames=10
for PosePrior sequences)
Download theAMASS dataset. We use ''DFaust Snythetic'' and ''PosePrior'' subsets and SMPL-H format. Unzip the dataset intodata
folder.
tar -xf DFaust67.tar.bz2 -C datatar -xf MPILimits.tar.bz2 -C data
Preprocess dataset:
python preprocess/sample_points.py --output_folder data/DFaust_processedpython preprocess/sample_points.py --output_folder data/MPI_processed --skip 10 --poseprior
Run the following command to train for a specified subject:
python train.py subject=50002
Training logs are available onwandb (registration needed, free of charge). It should take ~25 minutes on a single 2080Ti.
Run the following command to evaluate the method for a specified subject on within distribution data (DFaust test split):
python test.py subject=50002
and outside destribution (PosePrior):
python test.py subject=50002 datamodule=jointlim
You can use the trained model to generate animation (same as in Quick Start):
python demo.py expname='dfaust' subject=50002 demo.motion_path='data/aist_demo/seqs'
Download theCAPE dataset and unzip intodata
folder.
Run the following command to train for a specified subject and clothing type:
python train.py datamodule=cape subject=3375 datamodule.clothing='blazerlong' +experiments=cape
Training logs are available onwandb. It should take 1 hour on a single 2080Ti.
You can use the trained model to generate animation (same as in Quick Start):
python demo.py expname=cape subject=3375 demo.motion_path=data/aist_demo/seqs +experiments=cape
If you find our code or paper useful, please cite as
@article{Chen2023PAMI, author = {Xu Chen and Tianjian Jiang and Jie Song and Max Rietmann and Andreas Geiger and Michael J. Black and Otmar Hilliges}, title = {Fast-SNARF: A Fast Deformer for Articulated Neural Fields}, journal = {Pattern Analysis and Machine Intelligence (PAMI)}, year = {2023}}@inproceedings{chen2021snarf, title={SNARF: Differentiable Forward Skinning for Animating Non-Rigid Neural Implicit Shapes}, author={Chen, Xu and Zheng, Yufeng and Black, Michael J and Hilliges, Otmar and Geiger, Andreas}, booktitle={International Conference on Computer Vision (ICCV)}, year={2021}}
We use the pre-processing code inPTF andLEAP with some adaptions (./preprocess
). The network and sampling part of the code (lib/model/network.py
andlib/model/sample.py
) is implemented based onIGR andIDR. The code for extracting mesh (lib/utils/meshing.py
) is adapted fromNASA. Our implementation of Broyden's method (lib/model/broyden.py
) is based onDEQ. We sincerely thank these authors for their awesome work.
About
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.