soshishimada / DecafDatasetScript

7 stars 2 forks source link

Dataset: "Decaf: Monocular Deformation Capture for Face and Hand Interactions" SIGGRAPH Aisa '23.

Authors: Soshi Shimada, Vladislav Golyanik, Patrick Pérez, Christian Theobalt

Alt text for the GIF

This is the official repository of Decaf dataset:

Download

The main dataset can be downloaded from here.
If you want the preprocessed images (i.e., background masking + cropping using a bounding box), download the data from here.

Dataset Visualization Script Setup

Clone the repo:

  git clone https://github.com/soshishimada/DecafDatasetScript
  cd DecafDatasetScript

Requirements

2) For installing the same versions of torch and pytorch3D as the ones we used, you can run the commands below. Please see their official page for more details. First, make sure again the virtual environment in which the packages are installed in the last step is activated ("decaf_env" is the conda environment in this example):

    conda activate decaf_env
Then run:
```bash
pip install torch==1.12.1 --index-url https://download.pytorch.org/whl/cu113&&git clone https://github.com/facebookresearch/pytorch3d.git&&cd ./pytorch3d&&git checkout tags/v0.7.2&&pip install -e .&&cd ..
```

Example scripts

1) After downloading the dataset (DecafDataset), place the head and hand model under "DecafDataset/assets":


3) Example of how to flip deformations, contacts and images for data augmentation:

```bash
python src/flipping_data.py --dataset_path /PATH/TO/DATASET --save_path ./results/flip/ --vis_3d 1
```
The original and flipped data will be saved under the path specified by --save_path option.

Original 3D mesh with deformation + contacts.            Flipped 3D mesh with deformation + contacts.

Original 3D mesh with deformation + contacts.            Flipped 3D mesh with deformation + contacts.

Turn on --vis_3d option for the interactive 3D visualization.

4) Example of how to apply masking on an image:

    python src/get_masked_image.py --dataset_path /PATH/TO/DATASET --save_path ./results/mask/

Original image                                                                        Masked image


5) Example of how to obtain consecutive data ids:

    python src/get_consecutive_ids.py --dataset_path /PATH/TO/DATASET  

License Terms

Permission is hereby granted, free of charge, to any person or company obtaining a copy of this dataset and associated documentation files (the "Dataset") from the copyright holders to use the Dataset for any non-commercial purpose. Redistribution and (re)selling of the Dataset, of modifications, extensions, and derivates of it, and of other dataset containing portions of the licensed Dataset, are not permitted. The Copyright holder is permitted to publically disclose and advertise the use of the software by any licensee.

Packaging or distributing parts or whole of the provided software (including code and data) as is or as part of other datasets is prohibited. Commercial use of parts or whole of the provided dataset (including code and data) is strictly prohibited.

THE DATASET IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DATASET OR THE USE OR OTHER DEALINGS IN THE DATASET.

Citation

If the dataset is used, the licensee is required to cite the following publication in any documentation or publication that results from the work:

@article{
      DecafTOG2023,
      author = {Shimada, Soshi and Golyanik, Vladislav and P\'{e}rez, Patrick and Theobalt, Christian},
      title = {Decaf: Monocular Deformation Capture for Face and Hand Interactions},
      journal = {ACM Transactions on Graphics (TOG)}, 
      month = {dec},
      volume = {42},
      number = {6}, 
      articleno = {264},
      year = {2023}, 
      publisher = {ACM} 
    }