Answers.Body: <p>A sensible image need to have some seriously non-random properties:</p>
  <p><a href="https://i.sstatic.net/dwmpf.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/dwmpf.jpg" alt="enter image description here" /></a></p>
  <p>Suppose a small random noise between [-1, 1] is added to each pixel on this image:</p>
  <p><a href="https://i.sstatic.net/OTHkC.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/OTHkC.jpg" alt="enter image description here" /></a></p>
  <p>As the difference is so small, a network can certainly be trained to &quot;revert&quot; this slightly noisy image (A1) back to the original image (A0).</p>
  <p>Suppose we repeat the noise addition 100 times:</p>
  <p><a href="https://i.sstatic.net/8rqqL.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/8rqqL.png" alt="enter image description here" /></a></p>
  <p>Getting a network to revert A100 to A0 may be quite challenging. But finding a network for reverting A100 to A99 is quite possible as the difference is small.</p>
  <p>Suppose we continue to repeat the noise addition 10,000 times:</p>
  <p><a href="https://i.sstatic.net/CH2sL.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/CH2sL.png" alt="enter image description here" /></a></p>
  <p>Getting a network to revert A10000 to A0 may be nearly impossible. But finding a network for reverting A10000 to A9999 is quite possible as the difference is small.</p>
  <hr />
  <p>A10000 (or A1000000) is now actually nearly distinguishable variance-wise from pure white noise added 10,000 times on grey (128) image:</p>
  <p><a href="https://i.sstatic.net/25wcu.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/25wcu.jpg" alt="enter image description here" /></a></p>
  <p>The 10,000 different networks A1, A2, A3, ... , A10000 can optionally be squeezed into a single network by employing positional encoding (since input vectors for each stage will look different, allowing the single network to output different reversions based on the positional-encoded input it sees).</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-03-26T10:34:14.340Z
Answers.LastActivityDate: 2024-03-26T10:34:14.340Z
Answers.UserDisplayName: James
Body: <p>When adding noise to an image, for instance,</p>
  <p><a href="https://i.sstatic.net/ue1BS.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ue1BS.jpg" alt="enter image description here" /></a></p>
  <p>is the noise added evenly random (equally likely values within some range), or random but following some distribution (like the normal distribution)?</p>
  <p>Then, since the noise occurrence is intrinsically random at every pixel, how is it possible for any network to &quot;predict&quot; what the noise value at every pixel had been, in order to subtract it and get back the noiseless image?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-03-26T09:28:36.373Z
Comments.Text: I think a classic (non-AI) method is to perform a Fast Fourier Transform (FFT) on an image and then filter/dampen those parts of the obtained spectrum which are typical for random noise (or which are dominant in some way, but still noise), and then Inverse-FFT back.
Comments.UserDisplayName: knb
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-03-26T10:35:34.670Z
Comments.Text: @knb i have done a bit of digging since, and i believe the answer is something like this (i will post as an answer but delete it if wrong).
Comments.UserDisplayName: James
Tags: <convolutional-neural-networks><variational-autoencoder><u-net>
Title: How to remove random noise from an image (denoising)?
UserDisplayName: James
ThreadText: # How to remove random noise from an image (denoising)?
  
  (Asked by: username_0 on 2024-03-25)
  
  When adding noise to an image, for instance,
  
  [![enter image description here](https://i.sstatic.net/ue1BS.jpg)](https://i.sstatic.net/ue1BS.jpg)
  
  is the noise added evenly random (equally likely values within some range), or random but following some distribution (like the normal distribution)?
  
  Then, since the noise occurrence is intrinsically random at every pixel, how is it possible for any network to "predict" what the noise value at every pixel had been, in order to subtract it and get back the noiseless image?
  
  **Tags:** convolutional-neural-networks, variational-autoencoder, u-net
  > **Comments:**
  > **username_1**: I think a classic (non-AI) method is to perform a Fast Fourier Transform (FFT) on an image and then filter/dampen those parts of the obtained spectrum which are typical for random noise (or which are dominant in some way, but still noise), and then Inverse-FFT back.  
  > **username_0**: @knb i have done a bit of digging since, and i believe the answer is something like this (i will post as an answer but delete it if wrong).  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2024-03-26. Score: 0
  
  A sensible image need to have some seriously non-random properties:
  
  [![enter image description here](https://i.sstatic.net/dwmpf.jpg)](https://i.sstatic.net/dwmpf.jpg)
  
  Suppose a small random noise between [-1, 1] is added to each pixel on this image:
  
  [![enter image description here](https://i.sstatic.net/OTHkC.jpg)](https://i.sstatic.net/OTHkC.jpg)
  
  As the difference is so small, a network can certainly be trained to "revert" this slightly noisy image (A1) back to the original image (A0).
  
  Suppose we repeat the noise addition 100 times:
  
  [![enter image description here](https://i.sstatic.net/8rqqL.png)](https://i.sstatic.net/8rqqL.png)
  
  Getting a network to revert A100 to A0 may be quite challenging. But finding a network for reverting A100 to A99 is quite possible as the difference is small.
  
  Suppose we continue to repeat the noise addition 10,000 times:
  
  [![enter image description here](https://i.sstatic.net/CH2sL.png)](https://i.sstatic.net/CH2sL.png)
  
  Getting a network to revert A10000 to A0 may be nearly impossible. But finding a network for reverting A10000 to A9999 is quite possible as the difference is small.
  
  ---
  
  A10000 (or A1000000) is now actually nearly distinguishable variance-wise from pure white noise added 10,000 times on grey (128) image:
  
  [![enter image description here](https://i.sstatic.net/25wcu.jpg)](https://i.sstatic.net/25wcu.jpg)
  
  The 10,000 different networks A1, A2, A3, ... , A10000 can optionally be squeezed into a single network by employing positional encoding (since input vectors for each stage will look different, allowing the single network to output different reversions based on the positional-encoded input it sees).
  
  
  ---
  
  