This repository is the code implementation for ECCV 2022 paper: "DeepShadow: Neural Shape from Shadow".
The overview of our architecture is shown below:
- 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.
For the shadow estimation model from the appendix, refer here https://github.com/asafkar/ps_shadow_extract
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.
- Clone the repo -
git clone https://github.com/asafkar/deep_shadow.git
cd deep_shadow/
2. Install requirements
```bash
pip install -r requirements.txt
- Run optimization on one of the objects in the 'data' folder
python train.py --object <object name>
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},
}