Skip to content

GONGJIA0208/Diffpose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9a15bf8 · Dec 28, 2023

History

10 Commits
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Dec 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023
Apr 28, 2023

Repository files navigation

1JIA GONG*, 1Lin Geng Foo*, 2Zhipeng Fan, 3Qiuhong Ke, 4Hossein Rahmani, 1Jun Liu,

* equal contribution

1Singapore University of Technology and Design, 2New York University, 3Monash University, 4Lancaster University

[Paper] | [Project Page] | [SUTD-VLG Lab]

DiffPose Model Architecture

DiffPose Diffusion Process

Our code is built on top of DDIM.

Environment

The code is developed and tested under the following environment:

  • Python 3.8.2
  • PyTorch 1.7.1
  • CUDA 11.0

You can create the environment via:

conda env create -f environment.yml

Dataset

Our datasets are based on 3d-pose-baseline and Video3D data. We provide the GMM format data generated from the above datasets here. You should put the downloaded files into the ./data directory. Note that we only change the format of the Video3D data to make them compatible with our GMM-based DiffPose training strategy, and the value of the 2D pose in our dataset is the same as them.

Frame-based experiments

Evaluating pre-trained models for frame-based experiments

We provide the pre-trained diffusion model (with CPN-dected 2D Pose as input) here. To evaluate it, put it into the ./checkpoint directory and run:

CUDA_VISIBLE_DEVICES=0 python main_diffpose_frame.py \
--config human36m_diffpose_uvxyz_cpn.yml --batch_size 1024 \
--model_pose_path checkpoints/gcn_xyz_cpn.pth \
--model_diff_path checkpoints/diffpose_uvxyz_cpn.pth \
--doc t_human36m_diffpose_uvxyz_cpn --exp exp --ni \
>exp/t_human36m_diffpose_uvxyz_cpn.out 2>&1 &

We also provide the pre-trained diffusion model (with Ground truth 2D pose as input) here. To evaluate it, put it into the ./checkpoint directory and run:

CUDA_VISIBLE_DEVICES=0 python main_diffpose_frame.py \
--config human36m_diffpose_uvxyz_gt.yml --batch_size 1024 \
--model_pose_path checkpoints/gcn_xyz_gt.pth \
--model_diff_path checkpoints/diffpose_uvxyz_gt.pth \
--doc t_human36m_diffpose_uvxyz_gt --exp exp --ni \
>exp/t_human36m_diffpose_uvxyz_gt.out 2>&1 &

Training new models

  • To train a model from scratch (CPN 2D pose as input), run:
CUDA_VISIBLE_DEVICES=0 python main_diffpose_frame.py --train \
--config human36m_diffpose_uvxyz_cpn.yml --batch_size 1024 \
--model_pose_path checkpoints/gcn_xyz_cpn.pth \
--doc human36m_diffpose_uvxyz_cpn --exp exp --ni \
>exp/human36m_diffpose_uvxyz_cpn.out 2>&1 &
  • To train a model from scratch (Ground truth 2D pose as input), run:
CUDA_VISIBLE_DEVICES=0 python main_diffpose_frame.py --train \
--config human36m_diffpose_uvxyz_gt.yml --batch_size 1024 \
--model_pose_path checkpoints/gcn_xyz_gt.pth \
--doc human36m_diffpose_uvxyz_gt --exp exp --ni \
>exp/human36m_diffpose_uvxyz_gt.out 2>&1 &

Video-based experiments

Refer to https://github.com/GONGJIA0208/Diffpose_video

Bibtex

If you find our work useful in your research, please consider citing:

@InProceedings{gong2023diffpose,
    author    = {Gong, Jia and Foo, Lin Geng and Fan, Zhipeng and Ke, Qiuhong and Rahmani, Hossein and Liu, Jun},
    title     = {DiffPose: Toward More Reliable 3D Pose Estimation},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2023},
}

Acknowledgement

Part of our code is borrowed from DDIM, VideoPose3D, Graformer, MixSTE and PoseFormer. We thank the authors for releasing the codes.