Project | 1-min Summary | 10-min Talk | Paper
This repository contains TensorFlow implementation for the ECCV2020 paper PhaseCam3D: Snapshot Structured Light 3D with Freely-moving Cameras by Yicheng Wu, Vivek Boominathan, Xuan Zhao, Jacob T. Robinson, Hiroshi Kawasaki, Aswin Sankaranarayanan, and Ashok Veeraraghavan.
Clone this repo.
git clone https://github.com/YichengWu/freecam3D
cd freecam3D/The code is developed using Python 3.6.8 and TensorFlow 1.14.0. The GPU we used is NVIDIA GTX 2080 Ti (11G). Change batch_size accordingly if you run the code with different GPU memory.
The dataset is generated from Blender, which contains both the depth map from the project and camera view of a same scene, as well as the relative pose tranformation. The pre-processed TFrecord files can be downloaded from Google Drive. It contains 4850 training elements, 912 validation elements, and 201 test elements.
The PSFs used here are captured from an experiemntal prototype. To train the network to optimize the network, simply run the following code.
python train.py
Inside the code, DATA_PATH_root is the directory of the downloaded dataset, results_dir is the output result directory.
We use Tensorboard for logging training progress. Recommended: execute tensorboard --logdir /path/to/save_dir --port 9999 and visit localhost:9999 in the browser.
Once the network is trained, the performance can be evaluated using the testing dataset.
python test.py
Change results_dir to the place you save your model. Once the testing is finished, a new folder called test will be created inside the model directory.
If you use this code for your research, please cite our papers.
@inproceedings{wu2020freecam3d,
title={FreeCam3D: Snapshot Structured Light 3D with Freely-Moving Cameras},
author={Wu, Yicheng and Boominathan, Vivek and Zhao, Xuan and Robinson, Jacob T and Kawasaki, Hiroshi and Sankaranarayanan, Aswin and Veeraraghavan, Ashok},
booktitle={European Conference on Computer Vision},
pages={309--325},
year={2020},
organization={Springer}
}
If you have any questions/comments/bug reports, feel free to open a github issue or pull a request or e-mail to the author Yicheng Wu (wuyichengg@gmail.com).