Research code for Arxiv paper "Camera Motion Agnostic 3D Human Pose Estimation"

Related tags

Deep LearningGMR
Overview

GMR(Camera Motion Agnostic 3D Human Pose Estimation)

This repo provides the source code of our arXiv paper:
Seong Hyun Kim, Sunwon Jeong, Sungbum Park, and Ju Yong Chang, "Camera motion agnostic 3D human pose estimation," arXiv preprint arXiv:2112.00343, 2021.

Environment

  • Python : 3.6
  • Ubuntu : 18.04
  • CUDA : 11.1
  • cudnn : 8.0.5
  • torch : 1.7.1
  • torchvision : 0.8.2
  • GPU : one Nvidia RTX3090

Installation

  • First, you need to install python and other packages.

    pip install -r requirements.txt
  • Then, you need to install torch and torchvision. We tested our code on torch1.7.1 and torchvision0.8.2. But our code can also work with torch version >= 1.5.0.

Quick Demo

  • Download pretrained GMR model from [pretrained GMR] and make them look like this:

    ${GMR_ROOT}
     |-- results
         |-- GMR
             |-- final_model.pth
    
  • Download other model files from [other model files] and make them look like this:

    ${GMR_ROOT}
     |-- data
         |-- gmr_data
             |-- J_regressor_extra.npy
             |-- J_regressor_h36m.npy
             |-- SMPL_NEUTRAL.pkl
             |-- gmm_08.pkl
             |-- smpl_mean_params.npz
             |-- spin_model_checkpoint.pth.tar
             |-- vibe_model_w_3dpw.pth.tar
             |-- vibe_model_wo_3dpw.pth.tar
    
  • Finally, download demo videos from [demo videos] and make them look like this:

    ${GMR_ROOT}
    |-- configs
    |-- data
    |-- lib
    |-- results
    |-- scripts
    |-- demo.py
    |-- eval_3dpw.py
    |-- eval_synthetic.py
    |-- DEMO_VIDEO1.mp4
    |-- DEMO_VIDEO2.mp4
    |-- DEMO_VIDEO3.mp4
    |-- DEMO_VIDEO4.mp4
    |-- README.md
    |-- requirements.txt
    |-- run_eval_3dpw.sh
    |-- run_eval_synthetic.sh
    |-- run_train.sh
    |-- train.py
    

Demo code consists of (bounding box tracking) - (VIBE) - (GMR)

python demo.py --vid_file DEMO_VIDEO1.mp4 --vid_type mp4 --vid_fps 30 --view_type back --cfg configs/GMR_config.yaml --output_folder './'

python demo.py --vid_file DEMO_VIDEO2.mp4 --vid_type mp4 --vid_fps 30 --view_type front_large --cfg configs/GMR_config.yaml --output_folder './'

python demo.py --vid_file DEMO_VIDEO3.mp4 --vid_type mp4 --vid_fps 30 --view_type back --cfg configs/GMR_config.yaml --output_folder './'

python demo.py --vid_file DEMO_VIDEO4.mp4 --vid_type mp4 --vid_fps 30 --view_type back --cfg configs/GMR_config.yaml --output_folder './'

Data

You need to follow directory structure of the data as below.

${GMR_ROOT}
  |-- data
    |-- amass
      |-- ACCAD
      |-- BioMotionLab_NTroje
      |-- CMU
      |-- EKUT
      |-- Eyes_Japan_Dataset
      |-- HumanEva
      |-- KIT
      |-- MPI_HDM05
      |-- MPI_Limits
      |-- MPI_mosh
      |-- SFU
      |-- SSM_synced
      |-- TCD_handMocap
      |-- TotalCapture
      |-- Transitions_mocap
    |-- gmr_data
      |-- J_regressor_extra.npy
      |-- J_regressor_h36m.npy
      |-- SMPL_NEUTRAL.pkl
      |-- gmm_08.pkl
      |-- smpl_mean_params.npz
      |-- spin_model_checkpoint.pth.tar
      |-- vibe_model_w_3dpw.pth.tar
      |-- vibe_model_wo_3dpw.pth.tar
    |-- gmr_db
      |-- amass_train_db.pt
      |-- h36m_dsd_val_db.pt
      |-- 3dpw_test_db.pt
      |-- synthetic_camera_motion_off.pt
      |-- synthetic_camera_motion_on.pt
  • Download AMASS dataset from this link and place them in data/amass. Then, you can obtain the training data through the following command. Also, you can download the training data from this link.
    source scripts/prepare_training_data.sh
    
  • Download processed 3DPW data [data]
  • Download processed Human3.6 data [data]
  • Download synthetic dataset [data]

Train

Run the commands below to start training:

./run_train.sh

Evaluation

Run the commands below to start evaluation:

# Evaluation on 3DPW dataset
./run_eval_3dpw.sh

# Evaluation on synthetic dataset
./run_eval_synthetic.sh

References

We borrowed some scripts and models externally. Thanks to the authors for providing great resources.

  • Pretrained VIBE and most of functions are borrowed from VIBE.
  • Pretrained SPIN is borrowed from SPIN.
  • SMPL model files are borrowed from SPIN and SMPLify.
Owner
Seong Hyun Kim
M.S. student in CVLAB, Kwang Woon University
Seong Hyun Kim
LieTransformer: Equivariant Self-Attention for Lie Groups

LieTransformer This repository contains the implementation of the LieTransformer used for experiments in the paper LieTransformer: Equivariant Self-At

OxCSML (Oxford Computational Statistics and Machine Learning) 50 Dec 28, 2022
ML-Ensemble – high performance ensemble learning

A Python library for high performance ensemble learning ML-Ensemble combines a Scikit-learn high-level API with a low-level computational graph framew

Sebastian Flennerhag 764 Dec 31, 2022
Live training loss plot in Jupyter Notebook for Keras, PyTorch and others

livelossplot Don't train deep learning models blindfolded! Be impatient and look at each epoch of your training! (RECENT CHANGES, EXAMPLES IN COLAB, A

Piotr Migdał 1.2k Jan 08, 2023
(Preprint) Official PyTorch implementation of "How Do Vision Transformers Work?"

(Preprint) Official PyTorch implementation of "How Do Vision Transformers Work?"

xxxnell 656 Dec 30, 2022
This is the implementation of "SELF SUPERVISED REPRESENTATION LEARNING WITH DEEP CLUSTERING FOR ACOUSTIC UNIT DISCOVERY FROM RAW SPEECH" submitted to ICASSP 2022

CPC_DeepCluster This is the implementation of "SELF SUPERVISED REPRESENTATION LEARNING WITH DEEP CLUSTERING FOR ACOUSTIC UNIT DISCOVERY FROM RAW SPEEC

LEAP Lab 2 Sep 15, 2022
Soomvaar is the repo which 🏩 contains different collection of 👨‍💻🚀code in Python and 💫✨Machine 👬🏼 learning algorithms📗📕 that is made during 📃 my practice and learning of ML and Python✨💥

Soomvaar 📌 Introduction Soomvaar is the collection of various codes implement in machine learning and machine learning algorithms with python on coll

Felix-Ayush 42 Dec 30, 2022
Source code for the paper "PLOME: Pre-training with Misspelled Knowledge for Chinese Spelling Correction" in ACL2021

PLOME:Pre-training with Misspelled Knowledge for Chinese Spelling Correction (ACL2021) This repository provides the code and data of the work in ACL20

197 Nov 26, 2022
Voice Conversion Using Speech-to-Speech Neuro-Style Transfer

This repo contains the official implementation of the VAE-GAN from the INTERSPEECH 2020 paper Voice Conversion Using Speech-to-Speech Neuro-Style Transfer.

Ehab AlBadawy 93 Jan 05, 2023
A tiny, friendly, strong baseline code for Person-reID (based on pytorch).

Pytorch ReID Strong, Small, Friendly A tiny, friendly, strong baseline code for Person-reID (based on pytorch). Strong. It is consistent with the new

Zhedong Zheng 3.5k Jan 08, 2023
Perfect implement. Model shared. x0.5 (Top1:60.646) and 1.0x (Top1:69.402).

Shufflenet-v2-Pytorch Introduction This is a Pytorch implementation of faceplusplus's ShuffleNet-v2. For details, please read the following papers:

423 Dec 07, 2022
Official Keras Implementation for UNet++ in IEEE Transactions on Medical Imaging and DLMIA 2018

UNet++: A Nested U-Net Architecture for Medical Image Segmentation UNet++ is a new general purpose image segmentation architecture for more accurate i

Zongwei Zhou 1.8k Jan 07, 2023
Repository for the Bias Benchmark for QA dataset.

BBQ Repository for the Bias Benchmark for QA dataset. Authors: Alicia Parrish, Angelica Chen, Nikita Nangia, Vishakh Padmakumar, Jason Phang, Jana Tho

ML² AT CILVR 18 Nov 18, 2022
My implementation of Fully Convolutional Neural Networks in Keras

Keras-FCN This repository contains my implementation of Fully Convolutional Networks in Keras (Tensorflow backend). Currently, semantic segmentation c

The Duy Nguyen 15 Jan 13, 2020
This repository contains demos I made with the Transformers library by HuggingFace.

Transformers-Tutorials Hi there! This repository contains demos I made with the Transformers library by 🤗 HuggingFace. Currently, all of them are imp

3.5k Jan 01, 2023
This repository is the offical Pytorch implementation of ContextPose: Context Modeling in 3D Human Pose Estimation: A Unified Perspective (CVPR 2021).

Context Modeling in 3D Human Pose Estimation: A Unified Perspective (CVPR 2021) Introduction This repository is the offical Pytorch implementation of

37 Nov 21, 2022
Jigsaw Rate Severity of Toxic Comments

Jigsaw Rate Severity of Toxic Comments

Guanshuo Xu 66 Nov 30, 2022
Customised to detect objects automatically by a given model file(onnx)

LabelImg LabelImg is a graphical image annotation tool. It is written in Python and uses Qt for its graphical interface. Annotations are saved as XML

Heeone Lee 1 Jun 07, 2022
This is the code for the paper "Motion-Focused Contrastive Learning of Video Representations" (ICCV'21).

Motion-Focused Contrastive Learning of Video Representations Introduction This is the code for the paper "Motion-Focused Contrastive Learning of Video

11 Sep 23, 2022
PESTO: Switching Point based Dynamic and Relative Positional Encoding for Code-Mixed Languages

PESTO: Switching Point based Dynamic and Relative Positional Encoding for Code-Mixed Languages Abstract NLP applications for code-mixed (CM) or mix-li

Mohsin Ali, Mohammed 1 Nov 12, 2021