wooseoklee4/AP-BSN

About train dataset and PD

Closed this issue · 1 comments

I have questions about train dataset and PD.

As I understand, in the paper, the target image is original noisy image in training.
Is it correct and what is the reason that the proposed model get good performances even if it uses a noisy image as a target instead of using a clean image?
Also, in the code, I could not find the part that get train data(noisy-noisy pair). Where can I find that part?

Additionally, how can I do inverse PD? I want to know detailed process of inverse PD.

Thank you.

Hi, Thanks for your insterest our work!

Q1. Training on the noisy image as target.
Our work is based on the Blind-spot Network (BSN) [2] that input & target images are SAME.
In other word, paired dataset (Noisy-Clean or Noisy-Noisy) is not required.
You can refer the following papers for this.
[1] Lehtinen, Jaakko, et al. "Noise2Noise: Learning image restoration without clean data." ICML, 2018.
[2] Krull, Alexander, Tim-Oliver Buchholz, and Florian Jug. "Noise2void-learning denoising from single noisy images." CVPR, 2019.
[1] used noisy-noisy pair what you mentioned, but following [2] used single noisy image as a input and target.

Q2. Pixel-shuffle Downsampling (PD) and its inverse.
PD operation is not orignatlly proposed in our work.
It actually used in [3] for denoising and previously many works used similar operation (mostly in SR)
[3] Zhou, Yuqian, et al. "When awgn-based denoiser meets real noises." AAAI, 2020.
The PD and its inversion are very similar with "PixelUnshuffle" and "PixelShuffle" operation in PyTorch.
Only difference is that PyTorch operations are stacking into channel, but we tiling on the image space.
You can refer how it works (or you can directly refer our implementation).

Best.