Official Repo for ICCV2021 Paper: Learning to Regress Bodies from Images using Differentiable Semantic Rendering

Related tags

Deep Learning DSR
Overview

[ICCV2021] Learning to Regress Bodies from Images using Differentiable Semantic Rendering

report report

Getting Started

DSR has been implemented and tested on Ubuntu 18.04 with python 3.6.

Clone the repo:

git clone https://github.com/saidwivedi/DSR.git

Install the requirements using conda:

# conda
source install_conda.sh

Preparation of Data

For evaluation, you need to download the pretrained DSR model and SMPL body models. Run the command following command

source prepare_data.sh

For both evaluation and training, we use data processing techinque similar to SPIN. Kindly refer to their repo for more details.

Evaluation

For evaluating on 3DPW, MPI-INF-3DHP and Human3.6M, run the following command

# Change the val_ds configuration for different datasets
python train.py --cfg configs/dsr_eval.cfg

Training

For training, we use the off-the-self human parsing model Graphonomy to get pseudo ground truth clothing segmentation. Use the Universal Model of Graphonomy to generate the segmentation mask. After preparing the data, run the following command

# For more details on different parameters, refer to dsr/core/config.py
python train.py --cfg configs/dsr_train.cfg

Citation

@inproceedings{Dwivedi_DSR_2021,
  title = {Learning To Regress Bodies From Images Using Differentiable Semantic Rendering},
  author = {Dwivedi, Sai Kumar and Athanasiou, Nikos and Kocabas, Muhammed and Black, Michael J.},
  booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  pages = {11250-11259},
  month = {October},
  year = {2021}
}

License

This code is available for non-commercial scientific research purposes as defined in the LICENSE file. By downloading and using this code you agree to the terms in the LICENSE. Third-party datasets and software are subject to their respective licenses.

References

Major part of the code is borrowed from PARE.

Contact

For questions, please contact [email protected]

For commercial licensing (and all related questions for business applications), please contact [email protected].

Comments
  • not good result for arms

    not good result for arms

    image

    thanks for sharing. I run the code to test my custom video, but find that the result is not so good. the arms will be wrong even for clear image. what the reason do you think it is ?

    opened by zhaishengfu 5
  • Why rotate around Y axis and negate the y translation?

    Why rotate around Y axis and negate the y translation?

    I used NMR to render the image, but I found that the images were reversed. The images are shown below.

    image

    And I found that in function convert_camT_to_proj_mat, you rotate around Y axis and negate the y translation. After I commented on the lines to negate y rotation and y translation, the results seem correct.

    https://github.com/saidwivedi/DSR/blob/7d55d173192a44ec567864befd2fb20e993098eb/dsr/semantic_rendering/data_utils.py#L151-L162

    Why do you do that extra operation? Did I make some mistakes or get something wrong? Thanks.

    opened by MooreManor 4
  • Require for DSR dataset

    Require for DSR dataset

    Hello. Thanks for your great work! I want to train DSR, but I found that the description of DSR was not quite clear as shown below.

    dataset_folders # Contains all datasets
    ├── coco
    │   ├── grph_sequences # Contains psuedo-GT Graphonomy Segmentation
    │   └── ...
    └── h36m
    │   ├── grph_sequences # Contains psuedo-GT Graphonomy Segmentation
    │   └── ...
    └── ... # Other datasets
    

    I worry that the time spent preparing the data may be too long. Would you like to share the datasets on Google Drive or offer some scripts to process the raw datasets to the specified form of data? Thanks!

    opened by MooreManor 2
  • bbox mode

    bbox mode

    Thank you for the cool project. I'm able to run the openpose demo. I want to try using a manually specified bbox. Ignoring the fact that the bbox here isn't very tight, it fails execute on the demo image:

    $ python demo.py --checkpoint dsr_data/dsr_w3DPW_checkpoint.pt --img examples/COCO_val_0544.jpg --bbox [0,0,640,427]
    2021-10-16 21:01:17.524 | INFO     | dsr.models.hmr:load_pretrained:40 - Loading pretrained weights from dsr_data/dsr_w3DPW_checkpoint.pt
    Traceback (most recent call last):
      File "demo.py", line 115, in <module>
        img = process_image(args.img, args.bbox, args.openpose, input_res=constants.IMG_RES)
      File "demo.py", line 84, in process_image
        center, scale = bbox_from_json(bbox_file)
      File "demo.py", line 60, in bbox_from_json
        with open(bbox_file, 'r') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '[0,0,640,427]'
    

    Removing the [ ] brackets does not help.

    opened by aespielberg 2
  • Accessing Data

    Accessing Data

    Hi,

    I'm trying to download the data, but I'm having the following issue:

    $ source prepare_data.sh
    --2021-10-16 20:00:52--  https://www.dropbox.com/s/k7bc579qhyxe6ed/dsr_data.zip
    Resolving www.dropbox.com (www.dropbox.com)... 2620:100:6019:18::a27d:412, 162.125.4.18
    Connecting to www.dropbox.com (www.dropbox.com)|2620:100:6019:18::a27d:412|:443... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: /s/raw/k7bc579qhyxe6ed/dsr_data.zip [following]
    --2021-10-16 20:00:52--  https://www.dropbox.com/s/raw/k7bc579qhyxe6ed/dsr_data.zip
    Reusing existing connection to [www.dropbox.com]:443.
    HTTP request sent, awaiting response... 404 Not Found
    2021-10-16 20:00:52 ERROR 404: Not Found.
    
    unzip:  cannot find or open dsr_data.zip, dsr_data.zip.zip or dsr_data.zip.ZIP.
    rm: cannot remove 'dsr_data.zip': No such file or directory
    

    Has something happened to the dataset?

    opened by aespielberg 2
  • Training Dataset Scale

    Training Dataset Scale

    Thanks for your great work! I am trying to train DSR recently, but I got 20k+ COCO samples, 90k+ MPI-INF-3DHP samples and 310k+ Human3.6M samples, which results in nearly 24 hours per epoch on 2080ti. That's quite tough for me. I am wondering how can I train such big datasets. It would help me a lot if you could share more training or sampling details.

    opened by NathanWaaang 0
Owner
Sai Kumar Dwivedi
PhD Student at Max Planck Institute for Intelligent Systems
Sai Kumar Dwivedi
Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators

Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators. It's also a suite of learning algorithms to train agents to operate in these environments (PPO, SAC, evolutionary strategy, and direct trajectory optimization are implemented).

Google 1.5k Jan 2, 2023
The source code of the ICCV2021 paper "PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering"

The source code of the ICCV2021 paper "PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering"

Ren Yurui 261 Jan 9, 2023
The source code of the ICCV2021 paper "PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering"

Website | ArXiv | Get Start | Video PIRenderer The source code of the ICCV2021 paper "PIRenderer: Controllable Portrait Image Generation via Semantic

Ren Yurui 81 Sep 25, 2021
This repository contains the code for the CVPR 2020 paper "Differentiable Volumetric Rendering: Learning Implicit 3D Representations without 3D Supervision"

Differentiable Volumetric Rendering Paper | Supplementary | Spotlight Video | Blog Entry | Presentation | Interactive Slides | Project Page This repos

null 697 Jan 6, 2023
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
UnsupervisedR&R: Unsupervised Pointcloud Registration via Differentiable Rendering

UnsupervisedR&R: Unsupervised Pointcloud Registration via Differentiable Rendering This repository holds all the code and data for our recent work on

Mohamed El Banani 118 Dec 6, 2022
Official repo for AutoInt: Automatic Integration for Fast Neural Volume Rendering in CVPR 2021

AutoInt: Automatic Integration for Fast Neural Volume Rendering CVPR 2021 Project Page | Video | Paper PyTorch implementation of automatic integration

Stanford Computational Imaging Lab 149 Dec 22, 2022
Differentiable Neural Computers, Sparse Access Memory and Sparse Differentiable Neural Computers, for Pytorch

Differentiable Neural Computers and family, for Pytorch Includes: Differentiable Neural Computers (DNC) Sparse Access Memory (SAM) Sparse Differentiab

ixaxaar 302 Dec 14, 2022
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022
We are More than Our JOints: Predicting How 3D Bodies Move

We are More than Our JOints: Predicting How 3D Bodies Move Citation This repo contains the official implementation of our paper MOJO: @inproceedings{Z

null 72 Oct 20, 2022
BABEL: Bodies, Action and Behavior with English Labels [CVPR 2021]

BABEL is a large dataset with language labels describing the actions being performed in mocap sequences. BABEL labels about 43 hours of mocap sequences from AMASS [1] with action labels.

null 113 Dec 28, 2022
Code of 3D Shape Variational Autoencoder Latent Disentanglement via Mini-Batch Feature Swapping for Bodies and Faces

3D Shape Variational Autoencoder Latent Disentanglement via Mini-Batch Feature Swapping for Bodies and Faces Installation After cloning the repo open

null 37 Dec 3, 2022
Official code for "Simpler is Better: Few-shot Semantic Segmentation with Classifier Weight Transformer. ICCV2021".

Simpler is Better: Few-shot Semantic Segmentation with Classifier Weight Transformer. ICCV2021. Introduction We proposed a novel model training paradi

Lucas 103 Dec 14, 2022
Implementation of ICCV2021(Oral) paper - VMNet: Voxel-Mesh Network for Geodesic-aware 3D Semantic Segmentation

VMNet: Voxel-Mesh Network for Geodesic-Aware 3D Semantic Segmentation Created by Zeyu HU Introduction This work is based on our paper VMNet: Voxel-Mes

HU Zeyu 82 Dec 27, 2022
ViewFormer: NeRF-free Neural Rendering from Few Images Using Transformers

ViewFormer: NeRF-free Neural Rendering from Few Images Using Transformers Official implementation of ViewFormer. ViewFormer is a NeRF-free neural rend

Jonáš Kulhánek 169 Dec 30, 2022
This is an official implementation of the paper "Distance-aware Quantization", accepted to ICCV2021.

PyTorch implementation of DAQ This is an official implementation of the paper "Distance-aware Quantization", accepted to ICCV2021. For more informatio

CV Lab @ Yonsei University 36 Nov 4, 2022
Official code of ICCV2021 paper "Residual Attention: A Simple but Effective Method for Multi-Label Recognition"

CSRA This is the official code of ICCV 2021 paper: Residual Attention: A Simple But Effective Method for Multi-Label Recoginition Demo, Train and Vali

null 163 Dec 22, 2022
Official code for ICCV2021 paper "M3D-VTON: A Monocular-to-3D Virtual Try-on Network"

M3D-VTON: A Monocular-to-3D Virtual Try-On Network Official code for ICCV2021 paper "M3D-VTON: A Monocular-to-3D Virtual Try-on Network" Paper | Suppl

null 109 Dec 29, 2022
Dynamic Divide-and-Conquer Adversarial Training for Robust Semantic Segmentation (ICCV2021)

Dynamic Divide-and-Conquer Adversarial Training for Robust Semantic Segmentation This is a pytorch project for the paper Dynamic Divide-and-Conquer Ad

DV Lab 29 Nov 21, 2022