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
A Python implementation of active inference for Markov Decision Processes

A Python package for simulating Active Inference agents in Markov Decision Process environments. Please see our companion preprint on arxiv for an ove

235 Dec 21, 2022
This is the code for CVPR 2021 oral paper: Jigsaw Clustering for Unsupervised Visual Representation Learning

JigsawClustering Jigsaw Clustering for Unsupervised Visual Representation Learning Pengguang Chen, Shu Liu, Jiaya Jia Introduction This project provid

DV Lab 73 Sep 18, 2022
Repository for scripts and notebooks from the book: Programming PyTorch for Deep Learning

Repository for scripts and notebooks from the book: Programming PyTorch for Deep Learning

Ian Pointer 368 Dec 17, 2022
A Python 3 package for state-of-the-art statistical dimension reduction methods

direpack: a Python 3 library for state-of-the-art statistical dimension reduction techniques This package delivers a scikit-learn compatible Python 3

Sven Serneels 32 Dec 14, 2022
Time Dependent DFT in Tamm-Dancoff Approximation

Density Function Theory Program - kspy-tddft(tda) This is an implementation of Time-Dependent Density Functional Theory(TDDFT) using the Tamm-Dancoff

Peter Borthwick 2 Nov 17, 2022
Applications using the GTN library and code to reproduce experiments in "Differentiable Weighted Finite-State Transducers"

gtn_applications An applications library using GTN. Current examples include: Offline handwriting recognition Automatic speech recognition Installing

Facebook Research 68 Dec 29, 2022
Fake videos detection by tracing the source using video hashing retrieval.

Vision Transformer Based Video Hashing Retrieval for Tracing the Source of Fake Videos 🎉️ 📜 Directory Introduction VTL Trace Samples and Acc of Hash

56 Dec 22, 2022
Official code for paper "Optimization for Oriented Object Detection via Representation Invariance Loss".

Optimization for Oriented Object Detection via Representation Invariance Loss By Qi Ming, Zhiqiang Zhou, Lingjuan Miao, Xue Yang, and Yunpeng Dong. Th

ming71 56 Nov 28, 2022
ELSED: Enhanced Line SEgment Drawing

ELSED: Enhanced Line SEgment Drawing This repository contains the source code of ELSED: Enhanced Line SEgment Drawing the fastest line segment detecto

Iago Suárez 125 Dec 31, 2022
Implementation of TabTransformer, attention network for tabular data, in Pytorch

Tab Transformer Implementation of Tab Transformer, attention network for tabular data, in Pytorch. This simple architecture came within a hair's bread

Phil Wang 420 Jan 05, 2023
StableSims is an open-source project aimed at simulating MakerDAO's Dai stablecoin system

StableSims is an open-source project aimed at simulating MakerDAO's Dai stablecoin system, initially used for researching optimal incentive parameters for Liquidations 2.0.

Blockchain at Berkeley 52 Nov 21, 2022
On the Adversarial Robustness of Visual Transformer

On the Adversarial Robustness of Visual Transformer Code for our paper "On the Adversarial Robustness of Visual Transformers"

Rulin Shao 35 Dec 14, 2022
🐦 Opytimizer is a Python library consisting of meta-heuristic optimization techniques.

Opytimizer: A Nature-Inspired Python Optimizer Welcome to Opytimizer. Did you ever reach a bottleneck in your computational experiments? Are you tired

Gustavo Rosa 546 Dec 31, 2022
Tools for robust generative diffeomorphic slice to volume reconstruction

RGDSVR Tools for Robust Generative Diffeomorphic Slice to Volume Reconstructions (RGDSVR) This repository provides tools to implement the methods in t

Lucilio Cordero-Grande 0 Oct 29, 2021
MVFNet: Multi-View Fusion Network for Efficient Video Recognition (AAAI 2021)

MVFNet: Multi-View Fusion Network for Efficient Video Recognition (AAAI 2021) Overview We release the code of the MVFNet (Multi-View Fusion Network).

2 Jan 29, 2022
这是一个unet-pytorch的源码,可以训练自己的模型

Unet:U-Net: Convolutional Networks for Biomedical Image Segmentation目标检测模型在Pytorch当中的实现 目录 性能情况 Performance 所需环境 Environment 注意事项 Attention 文件下载 Downl

Bubbliiiing 567 Jan 05, 2023
🔮 Execution time predictions for deep neural network training iterations across different GPUs.

Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training Habitat is a tool that predicts a deep neural network's

Geoffrey Yu 44 Dec 27, 2022
Implementation for "Domain-Specific Bias Filtering for Single Labeled Domain Generalization"

DSBF Introduction This repository contains the implementation code for paper: Domain-Specific Bias Filtering for Single Labeled Domain Generalization

ScottYuan 7 Jan 05, 2023
PyTorch implementation of DCT fast weight RNNs

DCT based fast weights This repository contains the official code for the paper: Training and Generating Neural Networks in Compressed Weight Space. T

Kazuki Irie 4 Dec 24, 2022