vefalun / HTNet

HTFormer: Human Topology Aware Transformer for 3D Human Pose Estimation
MIT License
175 stars 14 forks source link

HTNet: Human Topology Aware Network for 3D Human Pose Estimation

HTNet: Human Topology Aware Network for 3D Human Pose Estimation,
Jialun Cai, Hong Liu, Runwei Ding , Wenhao Li, Jianbing Wu, Miaoju Ban
In IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), 2023

Results on Human3.6M

Protocol 1 (mean per-joint position error) when 2D keypoints detected by CPN and the ground truth of 2D poses.

Method Train Epochs MPJPE (CPN) MPJPE (GT)
GraFormer 50 51.8 mm 35.2 mm
MGCN (w/refine) 50 49.4 mm 33.5 mm 37.4 mm
HTNet 15 48.9 mm 34.0 mm
HTNet (w/refine) 15 47.6 mm 31.9 mm

Get started directly

Special thanks to MHFormer, we have completed a beginner's guide for image-based pose estimation. Only three steps that poses can be generated for your own images:(1) Download pretrained models (Yolov3 and HRNet) here and put them in the './demo/lib/checkpoint'; (2)download pretrained model and put it in the './ckpt' directory; (3) Put your own images in the './demo/figure', and run:

python demo/vis.py

Then you can obtain the visualized pose in the "./demo/output", like:

Quick start

To get started as quickly as possible, follow the instructions in this section. This should allow you train a model from scratch, test our pretrained models.

Dependencies

Make sure you have the following dependencies installed before proceeding:

Dataset setup

Please download the dataset here and refer to VideoPose3D to set up the Human3.6M dataset ('./dataset' directory).

${POSE_ROOT}/
|-- dataset
|   |-- data_3d_h36m.npz
|   |-- data_2d_h36m_gt.npz
|   |-- data_2d_h36m_cpn_ft_h36m_dbb.npz

Evaluating our pre-trained models

The pretrained model is here, please download it and put it in the './ckpt' directory. To achieve the performance in the paper, run:

python main.py --reload --previous_dir "ckpt/cpn" 

Training your models

If you want to train your own model, run:

python main.py --train -n "your_model_name"

Acknowledgement

Our code is extended from the following repositories. We thank the authors for releasing the codes.

This project is licensed under the terms of the MIT license.