Single-Image-SVBRDF-Capture-rendering-loss
Single-Image-SVBRDF-Capture-rendering-loss copied to clipboard
Cannot reproduce the results shown in the paper
Hi Velentin,
I ran your pretrained model with the file 'material_net.py' with the command ( python3 material_net.py --input_dir inputExamples/ --mode eval --output_dir examples_outputs --checkpoint . --imageFormat png --scale_size 256 --batch_size 1). The results I got are a bit different from the results shown in the paper. The input images I used are from the supplemental files that downloaded from this link: https://dl.acm.org/doi/10.1145/3197517.3201378.
This is the results I got:
This the results shown in the paper:
So I was wondering do I run the pretrained model with the right command? Thanks in advance.
Best, Xuejiao
Hi, thanks for opening this issue!
For those who would read this without context, we have exchanged in the last few days over this and here is the results of my investigation:
The "inputs" shown in the supplemental materials are the actual images which were given as input to the network, after linearisation and log correction. So if you download it and run it directly, the log correction will be applied once again, leading to double log correction, and the wrong results above.
The solution is simple: don't use logs on the input images. The code actually loads the training options to make sure they match at test time (but this assumes the images to have just been taken by a phone and linearized).
TLDR: when using directly images from the supplemental, you need to remove the useLog option which is loaded with the options.json. Until I push a fix with a flag for this, you can do so for example by adding "a.useLog = False" just after a.flip = False (l.870) or changing the useLog to False in the options.json file.