Git Product home page Git Product logo

peterzhousz / thinking-lightstage Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cocoakang/thinking-lightstage

0.0 1.0 0.0 3.8 MB

deep learning based method for joint acquisition of both geometry and material

Home Page: http://www.cad.zju.edu.cn/home/hwu/publications/jointcap/project.html

License: GNU General Public License v3.0

Python 98.54% Batchfile 1.04% Shell 0.05% TeX 0.36%

thinking-lightstage's Introduction

Thinking Lightstage

About

This is an implementation of the neural network proposed in Learning Efficient Illumination Multiplexing for Joint Capture of Reflectance and Shape.

Usage

System Requirements

  • Windows or Linux(The codes are validated on Win10, Ubuntu 18.04 and Ubuntu 16.04)
  • Python>=3.6
  • tensorflow>=1.11.0
  • numpy
  • opencv-python

Note: Since the training data (sampled points with BRDF parameters and position) are generated by an exe module, you may need a windows platform to generate training data.

Training

Windows:

  1. move to siga19_source
  2. run train.bat

Linux:

  1. move to siga19_source
  2. change DATA_ROOT in train.sh to the path of training data.
  3. run train.sh

About Synthetic Data Generation:

A lumitexel is generated from parameters of a sampled point, including BRDF parameters(normal, tangent, axay, rhod, rhos) and position. The exe module is for generating sampled points, which will be stored in the training data path.(claimed in the train.bat) So you need to generate sampled points on windows first. With a tensorflow implemented rendering module, the lumitexels will be rendered on the fly using the parameters. You can find the module in siga19_source/auxiliary/tf_ggx_render_newparam/tf_ggx_render.py. The configuration of setup(lights,cameras...) is passed to this module when constructing a renderer. It worth noting that you also need to make a uniformly sampled light configuration of the setup to avoid the drawback of real setup as we noted in the paper.

Training Log & Model

When training is started, a log folder will be generated. You may run tensorboard to check training logs.
The test sample will be shown in the images tab in the order of:
input lumitexel, predicted diffuse lumitexel, ground truth diffuse lumitexel, ground truth specular lumitexel, predicted specular lumitexel
Trained lighting pattern can also be found in the images tab.
Trained model will be save in the created save folder.

License

Our source code is released under the GPL-3.0 license for acadmic purposes. The only requirement for using the code in your research is to cite our paper:

@article{Kang:2019:JOINT,
author = {Kang, Kaizhang and Xie, Cihui and He, Chengan and Yi, Mingqi and Gu, Minyi and Chen, Zimin and Zhou, Kun and Wu, Hongzhi},
title = {Learning Efficient Illumination Multiplexing for Joint Capture of Reflectance and Shape},
journal = {ACM Trans. Graph.},
issue_date = {November 2019},
volume = {38},
number = {6},
month = nov,
year = {2019},
issn = {0730-0301},
pages = {165:1--165:12},
articleno = {165},
numpages = {12},
url = {http://doi.acm.org/10.1145/3355089.3356492},
doi = {10.1145/3355089.3356492},
acmid = {3356492},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {SVBRDF, lighting patterns, multi-view stereo, optimal sampling},
} 

For commercial licensing options, please email hwu at acm.org.
See COPYING for the open source license.

thinking-lightstage's People

Contributors

cocoakang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.