Yana Hasson, Gül Varol, Dimitris Tzionas, Igor Kalevatykh, Michael J. Black, Ivan Laptev, Cordelia Schmid, CVPR 2019
git clone https://github.com/hassony2/obman_train
cd obman_train
ln -s path/to/downloaded/obman datasymlinks/obman
ln -s /sequoia/data2/dataset/shapenet/ShapeNetCore.v2 datasymlinks/ShapeNetCore.v2
Your data structure should now look like
obman_train/
datasymlinks/ShapeNetCore.v2
datasymlinks/obman
wget http://www.di.ens.fr/willow/research/obman/release_models.zip
unzip release_models.zip
conda env create -f environment.yml
conda activate obman_train
Go to MANO website
Create an account by clicking Sign Up and provide your information
Download Models and Code (the downloaded file should have the format manov**.zip). Note that all code and data from this download falls under the MANO license.
unzip and copy the content of the models folder into the misc/mano folder
Your structure should look like this:
obman_train/
misc/
mano/
MANO_LEFT.pkl
MANO_RIGHT.pkl
release_models/
fhb/
obman/
hands_only/
We provide a model trained on the synthetic ObMan dataset
python image_demo.py --resume release_models/obman/checkpoint.pth.tar
In this demo, both the original and flipped inputs are fed, and the outputs are therefore presented for the input treated as a right and a left hand side by side.
Running the demo should produce the following outputs.
You can also run this demo on data from the First Hand Action Benchmark
python image_demo.py --image_path readme_assets/images/fhb_liquid_soap.jpeg --resume release_models/fhb/checkpoint.pth.tar
Note that the model trained on First Hand Action Benchmark strongly overfits to this dataset, and therefore performs poorly on 'in the wild' images.
You can test it on a recorded video or live using a webcam by launching :
python webcam_demo.py --resume release_models/obman/checkpoint.pth.tar --hand_side left
Hand side detection is not handled in this pipeline, therefore, you should explicitly indicate whether you want to use the right or left hand with --hand_side
.
Note that the video demo has some lag time, which comes from the visualization bottleneck (matplotlib image rendering is quite slow).
python webcam_demo.py --resume release_models/hands_only/checkpoint.pth.tar
python traineval.py --atlas_predict_trans --atlas_predict_scale --atlas_mesh --mano_use_shape --mano_use_pca --freeze_batchnorm --atlas_separate_encoder
If you find this code useful for your research, consider citing:
@INPROCEEDINGS{hasson19_obman,
title = {Learning joint reconstruction of hands and manipulated objects},
author = {Hasson, Yana and Varol, G{\"u}l and Tzionas, Dimitris and Kalevatykh, Igor and Black, Michael J. and Laptev, Ivan and Schmid, Cordelia},
booktitle = {CVPR},
year = {2019}
}
Code related to AtlasNet is in large part adapted from the official AtlasNet repository. Thanks Thibault for the provided code !
Code for computing hand evaluation metrics was reused from hand3d, courtesy of Christian Zimmermann with an easy-to-use interface!
Code for the laplacian regularization and precious advice was provided by Angjoo Kanazawa !
Helpful advice to work with the dataset was provided by Guillermo Garcia-Hernando !