/deep_shadow

Code for DeepShadow paper

Primary LanguagePythonApache License 2.0Apache-2.0

DeepShadow: Neural Shape from Shadow

This repository is the code implementation for ECCV 2022 paper: "DeepShadow: Neural Shape from Shadow".

The overview of our architecture is shown below:

Requirements

  • torch > 1.8
  • opencv-python > 4.1
  • numpy
  • kornia > 0.6
  • matplotlib
  • einops > 0.3.1
  • python

Our code was tested using Python 3.7/3.8 under Ubuntu 18.04, with GPU and/or CPU. We used https://clear.ml/ for tracking our experiments - it can be used by installing it and using the use_clearml flag.

Shadow Estimation Model

For the shadow estimation model from the appendix, refer here https://github.com/asafkar/ps_shadow_extract

Dataset Used in Paper

Download the data from https://faculty.runi.ac.il/toky/Pub/DeepShadowData.zip and unzip to ./data The data contains the six objects used in the paper, and their corresponding images, shadows, point light locations and camera parameters. Each object also contains the silhouette, GT depth map (in exr format) and Surface Normal map.

Reconstructing results from the paper

  1. Clone the repo -
git clone https://github.com/asafkar/deep_shadow.git
cd deep_shadow/
2. Install requirements
```bash
pip install -r requirements.txt
  1. Run optimization on one of the objects in the 'data' folder
python train.py --object <object name>

Citation

If you use the code, model or dataset in your own research, please cite:

@inproceedings{karnieli2022deepshadow,	
		title={DeepShadow: Neural shape from shadows},
		author={Asaf Karnieli, Ohad Fried, Yacov Hel-Or},	
		year={2022},	
		booktitle={ECCV},
}