Awesome
siMLPe
Back to MLP: A Simple Baseline for Human Motion Prediction(WACV 2023)
A simple-yet-effective network achieving SOTA performance.
In this paper, we propose a naive MLP-based network for human motion prediction. The network consists of only FCs, LayerNorms and Transpose operation. There is no non-linear activation in our network.
Network Architecture
NOTE: In the paper, we asume that FC is realized by nn.conv1D, so we have two transpose operation before/after the spacial FC layers, see the pipeline figure. While in this repo, we use nn.Linear to implement FC, so in the code there is only one transpose after the spacial FC layer. These two implementations are equivalent. (for a input tensor (b, n, d), nn.conv1D operates on dimention n, while nn.Linear operates on dimention d).
Requirements
- PyTorch >= 1.5
- Numpy
- CUDA >= 10.1
- Easydict
- pickle
- einops
- scipy
- six
Data Preparation
Download all the data and put them in the ./data
directory.
Original stanford link has crashed, this link is a backup.
Directory structure:
data
|-- h36m
| |-- S1
| |-- S5
| |-- S6
| |-- ...
| |-- S11
Directory structure:
data
|-- amass
| |-- ACCAD
| |-- BioMotionLab_NTroje
| |-- CMU
| |-- ...
| |-- Transitions_mocap
Directory structure:
data
|-- 3dpw
| |-- sequenceFiles
| | |-- test
| | |-- train
| | |-- validation
Training
H3.6M
cd exps/baseline_h36m/
sh run.sh
AMASS
cd exps/baseline_amass/
sh run.sh
Evaluation
H3.6M
cd exps/baseline_h36m/
python test.py --model-pth your/model/path
AMASS
cd exps/baseline_amass/
#Test on AMASS
python test.py --model-pth your/model/path
#Test on 3DPW
python test_3dpw.py --model-pth your/model/path
Citation
If you find this project useful in your research, please consider cite:
@article{guo2022back,
title={Back to MLP: A Simple Baseline for Human Motion Prediction},
author={Guo, Wen and Du, Yuming and Shen, Xi and Lepetit, Vincent and Xavier, Alameda-Pineda and Francesc, Moreno-Noguer},
journal={arXiv preprint arXiv:2207.01567},
year={2022}
}
Contact
Feel free to contact Wen or Me or open a new issue if you have any questions.