TransPose
Code for our SIGGRAPH 2021 paper "TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors". This repository contains the system implementation, evaluation, and some example IMU data which you can easily run with. Project Page
Usage
Install dependencies
We use python 3.7.6
. You should install the newest pytorch chumpy vctoolkit open3d
.
Prepare SMPL body model
- Download SMPL model from here. You should click
SMPL for Python
and download theversion 1.0.0 for Python 2.7 (10 shape PCs)
. Then unzip it. - In
config.py
, setpaths.smpl_file
to the model path.
Prepare pre-trained network weights
- Download weights from here.
- In
config.py
, setpaths.weights_file
to the weights path.
Prepare test datasets (optional)
- Download DIP-IMU dataset from here. We use the raw (unnormalized) data.
- Download TotalCapture dataset from here. The ground-truth SMPL poses used in our evaluation are provided by the DIP authors. So you may also need to contact the DIP authors for them.
- In
config.py
, setpaths.raw_dipimu_dir
to the DIP-IMU dataset path; setpaths.raw_totalcapture_dip_dir
to the TotalCapture SMPL poses (from DIP authors) path; and setpaths.raw_totalcapture_official_dir
to the TotalCapture officialgt
path. Please refer to the comments in the codes for more details.
Run the example
To run the whole system with the provided example IMU measurement sequence, just use:
python example.py
The rendering results in Open3D may be upside down. You can use your mouse to rotate the view.
Run the evaluation
You should preprocess the datasets before evaluation:
python preprocess.py
python evaluate.py
Both offline and online results for DIP-IMU and TotalCapture test datasets will be printed.
Citation
If you find the project helpful, please consider citing us:
@article{TransPoseSIGGRAPH2021,
author = {Yi, Xinyu and Zhou, Yuxiao and Xu, Feng},
title = {TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors},
journal = {ACM Transactions on Graphics},
year = {2021},
month = {08},
volume = {40},
number = {4},
articleno = {86},
publisher = {ACM}
}