GuoShi28/CBDNet

can you share your train code?

nmber5 opened this issue · 17 comments

can you share your train code?

Sure. I will release my training code after I tied up the code. Actually, I have released the code of creating noise images for training, Test_Realistic_Noise_Model.m. You can use this code to reproduce.

If you use MatConvNet to train, you can refer to the training code of DnCNN.

@GuoShi28 Thank you very much for sharing the noise creation code. Could you please clarify how that can be used to generate/isolate the noise level map? From the code, I am able to obtain the noisy image but I am not clear how to get the \sigma(y) for training. Thanks in advance!
(I guess a more direct question is: Does the noise map used as input equals "x*\sigma_s + \sigma_c" and does it take into account the camera-pipeline transformations as well?)

In this paper, we did not consider camera-pipeline when estimating the noise map. In AddNoiseMosai.m, noise map can be simply set as sigma_n = noise_c_map + noise_s_map.

Also to clear that, I make a mistake in the paper. Noise map should be defined as "L*\sigma_s + \sigma_c", not "x*\sigma_s + \sigma_c". The definition of L can be found in the paper. This will be corrected in our new version of the paper.

@GuoShi28 hello, I'm confused about the model.
I noticed you use the 16-layer U-Net of CNN(D) in the paper. But it is inconsistent with the model in your code. It seems that there are much more convolutional layers rather than 16 convolutional layers.
Besides, you mentioned that the ReLU nonlinearity is applied after every Conv layer except the last one. However, sometimes three convolutions are used continuously, but there is no relu between the convolutional layers.
Can you tell me more details about the model and show me the model generating codes? Thanks a lot!

@XSLXANDY Hi, I did not count downsampling and upsampling layer in total 16 layers. There's no relu layer after downsampling layer which can be treated as a conv layer with stride=2.
PS. I have some deadline and may do not have time to release my train code in time. Sorry. Would you email me your email address, I can send you an unofficial network init code for you to reproduce.

@GuoShi28 Thank you for your kindness. You did me a great favor. Thanks again.

Also to clear that, I make a mistake in the paper. Noise map should be defined as "L*\sigma_s + \sigma_c", not "x*\sigma_s + \sigma_c". The definition of L can be found in the paper. This will be corrected in our new version of the paper.

L is the converts irradiance?

Yes. L is the irradiance.

Yes. L is the irradiance.

OK~thanks for your reply. Another question is that I wonder how to train the Noise estimation network. Is it by setting (noise image-ground truth)as the target? and the input of the Noise estimation network is the noise image?
As there are signal dependent noise and the stationary noise component, I do not known how to get the noise level map

You can refer to a similar topic #4. When training using synthesis noise image, we have ground-truth noise map. When training using real noise image, we do not have ground-truth noise map and the noise estimation loss is set to 0.

You can refer to a similar topic #4. When training using synthesis noise image, we have ground-truth noise map. When training using real noise image, we do not have ground-truth noise map and the noise estimation loss is set to 0.

I am still confused about this. Can I email you and discuss it in depth? Is your emali:"guoshi28"guoshi28@outlook.com?

Sure. If you have more to discuss, please feel free to contact me. My email is guoshi28@outlook.com.

Sure. If you have more to discuss, please feel free to contact me. My email is guoshi28@outlook.com.

thank you very much. I have sent you an email

@

@GuoShi28 Thank you for your kindness. You did me a great favor. Thanks again.

hi, so now could you understand its network? i have the same confusion with you, and i am still not clear. Thanks a lot!

If we know gt_noise, is this task still blind denoise?

If we know gt_noise, is this task still blind denoise?
In my understanding,
If we know the noise level of the noise image, it's the non-blind denoising task.
if we do not know the noise level or the noise level is estimated, it's the blind denoising task.