Giter Club home page Giter Club logo

humanml3d-smpl's Introduction

SMPL HumanML3D: 3D Human Motion-Language Dataset

Follow this repository to produce SMPL version of HumanML3D.

1. Setup environment

conda env create -f environment.yaml
conda activate torch_render
In the case of installation failure, try this

Remove the following lines from .yaml:

body-visualizer==1.1.0
configer==1.4.1
psbody-mesh==0.4

And install them manually:

pip install git+https://github.com/nghorbani/body_visualizer.git
pip install git+https://github.com/MPI-IS/configer
pip install git+https://github.com/MPI-IS/mesh.git

2. Download SMPL+H and DMPL model

Download SMPL+H mode from SMPL+H (choose Extended SMPL+H model used in AMASS project) and DMPL model from DMPL (choose DMPLs compatible with SMPL). Then place all the models under "./body_models/".

3. Download data

HumanML3D is a 3D human motion-language dataset that originates from a combination of HumanAct12 and Amass dataset.

Get AMASS Data

Download the following subdataset from AMASS website. Note only download the SMPL+H G data.

  • ACCD (ACCD)
  • HDM05 (MPI_HDM05)
  • TCDHands (TCD_handMocap)
  • SFU (SFU)
  • BMLmovi (BMLmovi)
  • CMU (CMU)
  • Mosh (MPI_mosh)
  • EKUT (EKUT)
  • KIT (KIT)
  • Eyes_Janpan_Dataset (Eyes_Janpan_Dataset)
  • BMLhandball (BMLhandball)
  • Transitions (Transitions_mocap)
  • PosePrior (MPI_Limits)
  • HumanEva (HumanEva)
  • SSM (SSM_synced)
  • DFaust (DFaust_67)
  • TotalCapture (TotalCapture)
  • BMLrub (BioMotionLab_NTroje)

In the bracket we give the name of the unzipped file folder.

Unzip all datasets. You could use tools/unzip_amass.py.

Place all files under the directory ./amass_data/.

The expected directory structure

./amass_data/
./amass_data/ACCAD/
./amass_data/BioMotionLab_NTroje/
./amass_data/BMLhandball/
./amass_data/BMLmovi/
./amass_data/CMU/
./amass_data/DFaust_67/
./amass_data/EKUT/
./amass_data/Eyes_Japan_Dataset/
./amass_data/HumanEva/
./amass_data/KIT/
./amass_data/MPI_HDM05/
./amass_data/MPI_Limits/
./amass_data/MPI_mosh/
./amass_data/SFU/
./amass_data/SSM_synced/
./amass_data/TCD_handMocap/
./amass_data/TotalCapture/
./amass_data/Transitions_mocap/

Please make sure the file path are correct.

4. Process Data

We follow the original HumanML3D to process the data (framerate, segment, mirror).

Process HumanAct12

First unzip 'humanact12' in './pose_data'.

The following code will run SMPLify to get SMPL parameters from 3D joins.

python smplify_humanact12.py
# You can accelerate the process by running the same script in parallel simultaneously and utilizing multiple GPUs.

Move the generated './humanact12' in root to './pose_data/'.

Process HumanAct12 + AMASS

Run the following to process the data.

# Downsample AMASS data to 20 fps
python s1_framrate.py

# Segment, Mirror, and Relocate
python s2_seg_augmentation.py

# generate 6D rotation representation
python s3_process_init.py

# Compute the mean, std
python s4_cal_mean_std.py

In the end, you should find the data you need at './HumanML3D/smpl/'.

# SMPL-H representation
{
    'bdata_poses': (frame_num, 52*3)
    'bdata_trans': (frame_num, 3) # global position
    'betas':        (16, )
    'gender':       'male'/'female'
    'pose_6d':     (frame_num, 52*6) # 6d rotation representation, better for training
}

humanml3d-smpl's People

Contributors

ericguo5513 avatar xueying126 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.