cmu-ci-lab / inverseTransportNetworks

Towards Learning-based Inverse Subsurface Scattering
http://imaging.cs.cmu.edu/inverse_transport_networks/
GNU General Public License v3.0
29 stars 6 forks source link

why normalization is needed? #3

Closed ligoudaner377 closed 2 years ago

ligoudaner377 commented 2 years ago

Hi, great work, thank you for your contribution!

I'm kind of new to computer graphics, when I read your code, I found that you multiply the reconstructed images with a constant (28.2486) when computing the loss between the GT images. https://github.com/cmu-ci-lab/inverseTransportNetworks/blob/4e7c04efe589f1c023287985d55ac33a1e6cb65c/learning/train.py#L160 I'm curious that why this normalization is needed?

than you!

Brucect2 commented 2 years ago

Hi @ligoudaner377 , Thanks for mentioning. This normalization is just a global normalization term based on the entire dataset (essentially the max value of the input dataset).

ligoudaner377 commented 2 years ago

Thank you for your fast reply! @Brucect2

I'm still a little bit confused about this normalization. Do you mean that the range of tmp_imgs and gt_imgs are different, for instance: the intensity of tmp_imgs belongs to [0.0, 1.0], and the intensity of gt_imgs belongs to [0.0, 28.2486]. after multiplying a constant (28.2486), two images have the same range.

If so, this sounds a little weird to me. Because both gt_imgs and tmp_imgs are rendered by mitsuba. The average intensity should be similar as the scene file are almost the same (the only difference is the scattering parameter).

I'm not sure if my understanding is correct or not...

Brucect2 commented 2 years ago

Hi @ligoudaner377 , Sorry for the confusion. I preprocessed the dataset(gt) with the normalization term 28.2486 before feed everything into the network. That's why when I get the rendering from mitusbaAD during training, I scale it to the same range as my gt img.

ligoudaner377 commented 2 years ago

Thanks for your reply! All my questions are cleared!