Home

Awesome

Learning Trajectory Dependencies for Human Motion Prediction

This is the code for the paper

Wei Mao, Miaomiao Liu, Mathieu Salzmann, Hongdong Li. Learning Trajectory Dependencies for Human Motion Prediction. In ICCV 19.

Dependencies

Get the data

Human3.6m in exponential map can be downloaded from here.

CMU mocap was obtained from the repo of ConvSeq2Seq paper.

3DPW from their official website.

Quick demo and visualization

For a quick demo, you can train for a few epochs and visualize the outputs of your model.

To train, run

python main.py --epoch 5 --input_n 10 --output 10 --dct_n 20 --data_dir [Path To Your H36M data]/h3.6m/dataset/

Visualize the results of pretrained model for predictions on angle space on H36M dataset.

python demo.py --input_n 10 --output_n 10 --dct_n 20 --data_dir [Path To Your H36M data]/h3.6m/dataset/

Training commands

All the running args are defined in opt.py. We use following commands to train on different datasets and representations. To train on angle space,

python main.py --data_dir "[Path To Your H36M data]/h3.6m/dataset/" --input_n 10 --output_n 10 --dct_n 20 --exp [where to save the log file]
python main_cmu.py --data_dir_cmu "[Path To Your CMU data]/cmu_mocap/" --input_n 10 --output_n 25 --dct_n 35 --exp [where to save the log file]
python main_3dpw.py --data_dir_3dpw "[Path To Your 3DPW data]/3DPW/sequenceFiles/" --input_n 10 --output_n 30 --dct_n 40 --exp [where to save the log file]

To train on 3D space,

python3 main_3d.py --data_dir "[Path To Your H36M data]/h3.6m/dataset/" --input_n 10 --output_n 10 --dct_n 15 --exp [where to save the log file]
python main_cmu_3d.py --data_dir_cmu "[Path To Your CMU data]/cmu_mocap/" --input_n 10 --output_n 25 --dct_n 30 --exp [where to save the log file]
python main_3dpw_3d.py --data_dir_3dpw "[Path To Your 3DPW data]/3DPW/sequenceFiles/" --input_n 10 --output_n 30 --dct_n 35 --exp [where to save the log file]

Results

We re-run our code 2 more times under different setups and the overall average results at different time are reported below.

80ms160ms320ms400ms
pre-trained0.270.510.830.95
test_run_10.280.520.840.96
test_run_20.280.520.840.96
----------------------------------------
pre-trained12.125.051.061.3
test_run_112.124.650.461.1
test_run_212.124.850.561.2
560ms1000ms
pre-trained0.901.27
test_run_10.911.25
test_run_20.921.27
---------------------------
pre-trained50.471.0
test_run_151.271.6
test_run_251.670.9
80ms160ms320ms400ms1000ms
pre-trained0.250.390.680.791.33
test_run_10.260.410.720.841.35
test_run_20.260.410.710.831.38
------------------------------------------------
pre-trained11.520.437.846.896.5
test_run_111.319.836.945.592.7
test_run_211.319.737.246.094.0
200ms400ms600ms800ms1000ms
pre-trained0.640.951.121.221.27
test_run_10.640.971.121.221.28
test_run_20.640.951.111.211.27
-------------------------------------------------
pre-trained35.667.890.6106.9117.8
test_run_136.769.690.8105.0115.3
test_run_235.869.193.2110.9121.7

Citing

If you use our code, please cite our work

@inproceedings{wei2019motion,
  title={Learning Trajectory Dependencies for Human Motion Prediction},
  author={Wei, Mao and Miaomiao, Liu and Mathieu, Salzemann and Hongdong, Li},
  booktitle={ICCV},
  year={2019}
}

Acknowledgments

Some of our evaluation code and data process code was adapted/ported from Residual Sup. RNN by Julieta. The overall code framework (dataloading, training, testing etc.) is adapted from 3d-pose-baseline.

Licence

MIT