Single-image SVBRDF capture with a rendering-aware deep network

SIGGRAPH 2018


Reviews

Information

  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: True
  • Replicability score: 5
  • Software language: python
  • License: For research only, not for commercial use. Do not distribute. (The license is temporary)
  • Build mechanism: N/A
  • Dependencies: tensorflow
  • Documentation score {0,1,2}: 2
  • Reviewer: David Coeurjolly <david.coeurjolly@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 10min

Source code information

Comments

Pretrained models are provided in the code archive. Results, datasets and supplemental materials are available on a second project page (https://team.inria.fr/graphdeco/projects/deep-materials/). This review corresponds to a new version of the code with a special fix to make it work with recent tensorflow (>2). Just edit the first lines of material_net_test.py (lines 18-19) to enable tensorflow>2. Once fixed, I was able to reproduce most results of the paper.

Information

  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: True
  • Replicability score: 5
  • Software language: python
  • License: For research only, not for commercial use. Do not distribute. (The license is temporary)
  • Build mechanism: N/A
  • Dependencies: tensorflow
  • Documentation score {0,1,2}: 2
  • Reviewer: David Coeurjolly <david.coeurjolly@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 10min

Source code information

Comments

Pretrained models are provided in the code archive. Results, datasets and supplemental materials are available on a second project page (https://team.inria.fr/graphdeco/projects/deep-materials/). This review corresponds to a new version of the code with a special fix to make it work with recent tensorflow (>2). Just edit the first lines of material_net_test.py (lines 18-19) to enable tensorflow>2. Once fixed, I was able to reproduce most results of the paper.

On Catalina, you may have an issue with protobuf. The following upgrade of the packages solves the problem:
  python -m pip install --upgrade pip
  python -m pip uninstall tensorflow tensorflow_estimator protobuf
  python -m pip install tensorflow
  python -m pip install lxml

Information

  • This variant has been marked as deprecated (either the code or the build test have changed)
  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: False
  • Replicability score: 1
  • Software language: python
  • License: For research only, not for commercial use. Do not distribute. (The license is temporary)
  • Build mechanism: N/A
  • Dependencies: tensorflow
  • Documentation score {0,1,2}: 1
  • Reviewer: David Coeurjolly <david.coeurjolly@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 40min

Source code information

Comments

Pretrained models are provided in the code archive. Results, datasets and supplemental materials are available on a second project page (https://team.inria.fr/graphdeco/projects/deep-materials/). No dependency issue (just tensorflow installed using conda, version 2.1, the authors do not give the exact tensorflow version they are using) but the runExampleTest.sh does not work directly (tensorflow API issues). After performing these edits:

148c148
<         resized_images = tf.image.resize(batch_input, [in_height * 2, in_width * 2], method = tf.image.ResizeMethod.NEAREST_NEIGHBOR)
---
>         resized_images = tf.image.resize_images(batch_input, [in_height * 2, in_width * 2], method = tf.image.ResizeMethod.NEAREST_NEIGHBOR)
248c248
<     image_string = tf.io.read_file(filename)
---
>     image_string = tf.read_file(filename)
294c294
<         r = tf.image.resize(r, [a.scale_size, a.scale_size], method=tf.image.ResizeMethod.AREA)
---
>         r = tf.image.resize_images(r, [a.scale_size, a.scale_size], method=tf.image.ResizeMethod.AREA)
382c382
<     return  (tf.math.log(tf.add(tensor,0.01)) - tf.math.log(0.01)) / (tf.math.log(1.01)-tf.math.log(0.01))
---
>     return  (tf.log(tf.add(tensor,0.01)) - tf.log(0.01)) / (tf.log(1.01)-tf.log(0.01))
616c616
<     tf.random.set_seed(a.seed)
---
>     tf.set_random_seed(a.seed)


I ended up with an issue I was not able to solve:

Traceback (most recent call last):
  File  material_net_test.py , line 752, in <module>
    main()
  File  material_net_test.py , line 644, in main
    examples = load_examples(a.input_dir, a.mode ==  train )
  File  material_net_test.py , line 330, in load_examples
    iterator = batched_dataset.make_initializable_iterator()
AttributeError:  BatchDataset  object has no attribute  make_initializable_iterator 

Editing line 330 with 
    iterator = tf.compat.v1.data.make_initializable_iterator(batched_dataset)
produces
    RuntimeError: dataset.make_initializable_iterator is not supported when eager execution is enabled. Use  or element in dataset  instead.

This a more complex issue than just some API changes (and I am not expert in tensorflow).

I was not able to create a conda env with a 1.7 or 1.8 tensorflow (which may correspond to the tensorflow the authors used) due to CUDA incompatibility issues.

Information

  • This variant has been marked as deprecated (either the code or the build test have changed)
  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: False
  • Replicability score: 1
  • Software language: python
  • License: For research only, not for commercial use. Do not distribute. (The license is temporary)
  • Build mechanism: N/A
  • Dependencies: tensorflow
  • Documentation score {0,1,2}: 1
  • Reviewer: David Coeurjolly <david.coeurjolly@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 20min

Source code information

Comments

Pretrained models are provided in the code archive. Results, datasets and supplemental materials are available on a second project page (https://team.inria.fr/graphdeco/projects/deep-materials/). No dependency issue (just tensorflow installed using pip, version 2.1.0, the authors do not give the exact tensorflow version they are using) but the runExampleTest.sh crashes on my system with the following error code (which I was not able to solve):

[libprotobuf ERROR google/protobuf/descriptor_database.cc:394] Invalid file descriptor data passed to EncodedDescriptorDatabase::Add().
[libprotobuf FATAL google/protobuf/descriptor.cc:1356] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
libc++abi.dylib: terminating with uncaught exception of type google::protobuf::FatalException: CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
./runExampleTest.sh: line 2: 25883 Abort trap: 6           python3 material_net_test.py --input_dir inputExamples/ --mode eval --output_dir examples_outputs --checkpoint . --imageFormat png --scale_size 256

If you want to contribute with another review, please follow these instructions.

Please consider to cut/paste/edit the raw JSON data attached to this paper.