Implementation for the paper SMPLicit: Topology-aware Generative Model for Clothed People (CVPR 2021)

Overview

SMPLicit: Topology-aware Generative Model for Clothed People

[Project] [arXiv]

License

Software Copyright License for non-commercial scientific research purposes. Please read carefully the terms and conditions and any accompanying documentation before you download and/or use the SMPLicit model, data and software, (the "Model & Software"), including 3D meshes, blend weights, blend shapes, textures, software, scripts, and animations. By downloading and/or using the Model & Software (including downloading, cloning, installing, and any other use of this github repository), you acknowledge that you have read these terms and conditions, understand them, and agree to be bound by them. If you do not agree with these terms and conditions, you must not download and/or use the Model & Software. Any infringement of the terms of this agreement will automatically terminate your rights under this License.

Installation

Follow these commands to install SMPLicit in your environment. The required libraries are standard, with the possible exception of Kaolin which requires a particular version to run with the current code.

  • git clone https://github.com/ecorona/SMPLicit

  • cd SMPLicit

  • Install the dependencies listed in requirements.txt:

    • pip install -r requirements.txt
  • In particular, we use Kaolin v0.1 (see installation command) which should be easy to install. However, if you want to use a later version, you might need to update the import to TriangleMesh in SMPLicit/SMPLicit.py

  • Download the SMPL model from here and place it in SMPLicit/utils/

To be able to import and use SMPLicit in another project, just use run python setup.py install in the main folder.

Usage

To check that everything is going well, run one of the test scripts under the examples folder. The first example will just show a simple T-Shirt on a standard shaped SMPL and visualize it using trimesh, to make sure everything is working.

cd examples/
python example.py

SMPLicit can represent clothes of different types, so the following example will also add lower-body clothes, hair and shoes into the example:

python example_fullbody.py

And finally one can interpolate between clothes of different types. For instance, moving between a jacket, tops, short or long sleeved T-Shirts. The following script will generate object meshes that represent these clothes and will be saved in interpolation/, below the main folder.

python interpolate.py

Citation

If you find the code useful, please cite:

@inproceedings{corona2021smplicit,
    Author = {Enric Corona and Albert Pumarola and Guillem Aleny{\`a} and Pons-Moll, Gerard and Moreno-Noguer, Francesc},
    Title = {SMPLicit: Topology-aware Generative Model for Clothed People},
    Year = {2021},
    booktitle = {CVPR},
}
Comments
  • Question about different smpl_meshes used for upper and lower clothes reconstruction

    Question about different smpl_meshes used for upper and lower clothes reconstruction

    I noticed SMPLicit uses a atart_posed SMPL to compute points distance for pants and skirts, but uses unposed SMPL for upper clothes. Is there any reason to do so?

    opened by WongChen 3
  • how to test on existing obj file?

    how to test on existing obj file?

    Hello, thanks for your great work. I run all the examples and got expected results. And is it possible to load an existing SMPL obj file and do the similar clothes change to it? Thanks.

    opened by akchain 3
  • No such file or directory: '/home/enric/cvpr21/SMPLicit/clusters/indexs_clusters_tshirt_smpl.npy'

    No such file or directory: '/home/enric/cvpr21/SMPLicit/clusters/indexs_clusters_tshirt_smpl.npy'

    Hello,

    Thank you for the code and the project, it looks awesome.

    Could you please help with an issue I face when running python example.py:

    FileNotFoundError: [Errno 2] No such file or directory: '/home/enric/cvpr21/SMPLicit/clusters/indexs_clusters_tshirt_smpl.npy'
    

    Looks that one needs some additional files to run the demo. Thank you in advance!

    opened by izakharkin 2
  • Question about pants and skirts

    Question about pants and skirts

    Hi!

    Thanks for your amazing work. I am trying to display the dressed-mesh results with various pose and shape parameters instead of the T-pose. It works fine for the upper clothes, hair, and shoes. However, for pants and skirts, it seems that they are upside down (second row in the Figure below). I don't know how to solve it.

    pants and skirts

    I just change the following code in example.py, pants_Z = np.zeros(18) Zs = [pants_Z] meshes = SMPLicit_layer.reconstruct(model_ids=[1], Zs=Zs,pose=loaded_pose,beta=loaded_shape)

    Thanks!

    opened by baoqiancherry 2
  • ImportError: cannot import name 'cached_property' from 'functools'

    ImportError: cannot import name 'cached_property' from 'functools'

    Thanks for the awesome work. It works well in example.py. However, I meet a problem when using "python fit_SMPLicit.py".

    Traceback (most recent call last):
      File "fit_SMPLicit.py", line 10, in <module>
        from utils import projection
      File "/home/xxx/workspace/VG/SMPLicit/fit_SMPLicit/utils/projection.py", line 3, in <module>
        import pyrender
      File "/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/site-packages/pyrender/__init__.py", line 10, in <module>
        from .scene import Scene
      File "/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/site-packages/pyrender/scene.py", line 7, in <module>
        import networkx as nx
      File "/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/site-packages/networkx-3.0b1-py3.7.egg/networkx/__init__.py", line 21, in <module>
        from networkx import classes
      File "/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/site-packages/networkx-3.0b1-py3.7.egg/networkx/classes/__init__.py", line 1, in <module>
        from .graph import Graph
      File "/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/site-packages/networkx-3.0b1-py3.7.egg/networkx/classes/graph.py", line 11, in <module>
        from functools import cached_property
    ImportError: cannot import name 'cached_property' from 'functools' (/home/xxx/anaconda3/envs/SMPLicit/lib/python3.7/functools.py)
    

    Env: python3.7, kaolinv0.1.0, cuda10.2, torch1.10.1, SMPLicit0.0.1

    Someone mention that it should use pthon3.8, however it conflicts with kaolinv0.1. May someone help me?

    opened by Bugjudger 1
  • question about supplement

    question about supplement

    hi, thanks for your work. In section 4.2 you said see the Supp. Mat. for more details, but there is no supplement in arxiv version. So can I have the supplements or the details about training? thanks!

    opened by YoYooX 1
  • SMPLicit installation problem

    SMPLicit installation problem

    I tried git clone https://github.com/ecorona/smplicit, but it was a mistake "fatal: The repository "https://github.com/ecorona/SMPLicit/" not found" Why is that?

    opened by hbwanghang 1
  • How to fit a point cloud?

    How to fit a point cloud?

    Hi, thanks for the great work! I ran the demo of fitting the input image and got good results. However, I currently have the task of fitting point clouds. Would you consider releasing the source script for fitting the scan? Or could you offer some suggestions for modifying the script of fitting the image to fitting the scan? Thanks a lot.

    opened by yaoyx689 0
  • some questions about

    some questions about " fit_SMPLicit.py "

    hello, i don't know what "topleft " and "scale_ratio" are? topleft = smpl_prediction[index_fitting]['bbox_top_left'] scale_ratio = smpl_prediction[index_fitting]['bbox_scale_ratio']

    i only get the "bboxes" which value is [1034.61365568 543.89215647 591.51202979 591.51202979], so how can i get "topleft " and "scale_ratio" ?

    opened by surheaven 0
  • AssertionError: Torch not compiled with CUDA enabled

    AssertionError: Torch not compiled with CUDA enabled

    Hi, using a MacBook Pro 16" 2019, and I received that AssertionErrror when running example.py

    I have already used torch.load with map_location=torch.device('cpu') but still get that error message.

    What should I do?

    opened by rylzxc 0
  • Adding clothing capability to SMPL-X body model

    Adding clothing capability to SMPL-X body model

    I am working on a problem which requires animating finger movements and facial expressions. Hence, I am using PIXIE, which uses the SMPL-X model. However, PIXIE works on the vanilla, undressed SMPL model. I was wondering what the easiest way is to add the clothing feature to PIXIE (i.e., I want PIXIE's output on a clothed SMPL model). It would suffice for the clothing/skin color to be a fixed value i.e., it doesn't have to be derived from the input image.

    opened by hshreeshail 1
  • Occlusion UV map

    Occlusion UV map

    Hi Enric,

    Thank you for the great work! For the model training, could you please share the code for obtaining occlusion UV maps as the model inputs, or briefly describe how to obtain occlusion UV maps on custom data? Thanks!

    opened by zhaofang0627 1
This repository contains a pytorch implementation of "StereoPIFu: Depth Aware Clothed Human Digitization via Stereo Vision".

StereoPIFu: Depth Aware Clothed Human Digitization via Stereo Vision | Project Page | Paper | This repository contains a pytorch implementation of "St

null 87 Dec 9, 2022
SCALE: Modeling Clothed Humans with a Surface Codec of Articulated Local Elements (CVPR 2021)

SCALE: Modeling Clothed Humans with a Surface Codec of Articulated Local Elements (CVPR 2021) This repository contains the official PyTorch implementa

Qianli Ma 133 Jan 5, 2023
ICON: Implicit Clothed humans Obtained from Normals (CVPR 2022)

ICON: Implicit Clothed humans Obtained from Normals Yuliang Xiu · Jinlong Yang · Dimitrios Tzionas · Michael J. Black CVPR 2022 News ?? [2022/04/26] H

Yuliang Xiu 1.1k Jan 4, 2023
This repository contains the code for the paper "PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization"

PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization News: [2020/05/04] Added EGL rendering option for training data g

Shunsuke Saito 1.5k Jan 3, 2023
An official PyTorch implementation of the TKDE paper "Self-Supervised Graph Representation Learning via Topology Transformations".

Self-Supervised Graph Representation Learning via Topology Transformations This repository is the official PyTorch implementation of the following pap

Hsiang Gao 2 Oct 31, 2022
MetaAvatar: Learning Animatable Clothed Human Models from Few Depth Images

MetaAvatar: Learning Animatable Clothed Human Models from Few Depth Images This repository contains the implementation of our paper MetaAvatar: Learni

sfwang 96 Dec 13, 2022
Minimal PyTorch implementation of Generative Latent Optimization from the paper "Optimizing the Latent Space of Generative Networks"

Minimal PyTorch implementation of Generative Latent Optimization This is a reimplementation of the paper Piotr Bojanowski, Armand Joulin, David Lopez-

Thomas Neumann 117 Nov 27, 2022
clDice - a Novel Topology-Preserving Loss Function for Tubular Structure Segmentation

README clDice - a Novel Topology-Preserving Loss Function for Tubular Structure Segmentation CVPR 2021 Authors: Suprosanna Shit and Johannes C. Paetzo

null 110 Dec 29, 2022
[ICCV2021] Official code for "Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition"

CTR-GCN This repo is the official implementation for Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition. The pap

Yuxin Chen 148 Dec 16, 2022
This repository contains the code for the CVPR 2021 paper "GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields"

GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields Project Page | Paper | Supplementary | Video | Slides | Blog | Talk If

null 1.1k Dec 30, 2022
The official implementation of the Interspeech 2021 paper WSRGlow: A Glow-based Waveform Generative Model for Audio Super-Resolution.

WSRGlow The official implementation of the Interspeech 2021 paper WSRGlow: A Glow-based Waveform Generative Model for Audio Super-Resolution. Audio sa

Kexun Zhang 96 Jan 3, 2023
Official PyTorch implementation of "VITON-HD: High-Resolution Virtual Try-On via Misalignment-Aware Normalization" (CVPR 2021)

VITON-HD — Official PyTorch Implementation VITON-HD: High-Resolution Virtual Try-On via Misalignment-Aware Normalization Seunghwan Choi*1, Sunghyun Pa

Seunghwan Choi 250 Jan 6, 2023
Simple Tensorflow implementation of "Adaptive Convolutions for Structure-Aware Style Transfer" (CVPR 2021)

AdaConv — Simple TensorFlow Implementation [Paper] : Adaptive Convolutions for Structure-Aware Style Transfer (CVPR 2021) Note This repository does no

Junho Kim 26 Nov 18, 2022
Official code for CVPR2022 paper: Depth-Aware Generative Adversarial Network for Talking Head Video Generation

?? Depth-Aware Generative Adversarial Network for Talking Head Video Generation (CVPR 2022) ?? If DaGAN is helpful in your photos/projects, please hel

Fa-Ting Hong 503 Jan 4, 2023
git git《Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking》(CVPR 2021) GitHub:git2] 《Masksembles for Uncertainty Estimation》(CVPR 2021) GitHub:git3]

Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking Ning Wang, Wengang Zhou, Jie Wang, and Houqiang Li Accepted by CVPR

NingWang 236 Dec 22, 2022
Digan - Official PyTorch implementation of Generating Videos with Dynamics-aware Implicit Generative Adversarial Networks

DIGAN (ICLR 2022) Official PyTorch implementation of "Generating Videos with Dyn

Sihyun Yu 147 Dec 31, 2022
[CVPR'22] COAP: Learning Compositional Occupancy of People

COAP: Compositional Articulated Occupancy of People Paper | Video | Project Page This is the official implementation of the CVPR 2022 paper COAP: Lear

Marko Mihajlovic 111 Dec 11, 2022
Inference code for "StylePeople: A Generative Model of Fullbody Human Avatars" paper. This code is for the part of the paper describing video-based avatars.

NeuralTextures This is repository with inference code for paper "StylePeople: A Generative Model of Fullbody Human Avatars" (CVPR21). This code is for

Visual Understanding Lab @ Samsung AI Center Moscow 18 Oct 6, 2022
Starter code for the ICCV 2021 paper, 'Detecting Invisible People'

Detecting Invisible People [ICCV 2021 Paper] [Website] Tarasha Khurana, Achal Dave, Deva Ramanan Introduction This repository contains code for Detect

Tarasha Khurana 28 Sep 16, 2022