yu4u / noise2noise

An unofficial and partial Keras implementation of "Noise2Noise: Learning Image Restoration without Clean Data"
MIT License
1.07k stars 235 forks source link

Training data pairs #6

Closed qhanson closed 6 years ago

qhanson commented 6 years ago

In the original paper, they described that the network is trained using independently corrupted input and target pairs.

In addition, the example training pairs in Figure 3 and 4 of the original paper is supposed to be considered that a row is a training pair. Or should it be that a column is a training pair?

However, the implementation below always uses the corrupted images of the same source image.

Is it possible to use training pairs (x,y) where x and y are both corrupted images of different source images? To be clear, x is a corrupted image of the source image 1 while y x is a corrupted image of the source image 2.

https://github.com/yu4u/noise2noise/blob/9651afe0b13da32798aea730d16d2c448d4c0952/generator.py#L37 https://github.com/yu4u/noise2noise/blob/9651afe0b13da32798aea730d16d2c448d4c0952/generator.py#L38

yu4u commented 6 years ago

I believe that each training pair should be created from a single clean image with different noises.

From the paper:

both the inputs and the targets are now drawn from a corrupted distribution (not necessarily the same), conditioned on the underlying, unobserved clean target yi

In addition, the example training pairs in Figure 3 and 4 of the original paper is supposed to be considered that a row is a training pair. Or should it be that a column is a training pair?

I think that a column is a training pair...

Is it possible to use training pairs (x,y) where x and y are both corrupted images of different source images?

I do not think so. It seems to be impossible.

qhanson commented 6 years ago

Thanks for your reply. I agree that each training pair should be created from a single clean image with different noises.