Paper: On Measuring and Controlling the Spectral Bias of the Deep Image Prior, IJCV, 2022 [pdf]
1) It remains unclear how to control the prior beyond the choice of the network architecture;
2) Training requires an oracle stopping criterion as during the optimization the performance degrades after reaching an optimum value. We introduce a frequency-band correspondence measure to characterize the spectral bias of the deep image prior, where low-frequency image signals are learned faster and better than high-frequency counterparts.
Figure 2.1: Spectral measurement of the deep image prior on image denoising. We observe that 1) the network of the deep image prior (Ulyanov et al., 2020) exhibits a spectral bias during optimization, 2) the peak PSNR performance of the deep image prior occurs when the lowest frequencies are matched nearly perfect, while the highest frequencies are less used, as marked by the green vertical lines, and 3) deep image prior performance degrades when high-frequency noise is learned beyond acertain level, which could affect the high-frequency image details.
Figure 2.2.1: Lipschitz-controlled spectral bias for image denoising on image 'peppers’. Setting the right Lipschitz constant (λ=2) avoids performance decay while maintaining a high PSNR.
Figure 2.2.2: Gaussian-controlled spectral bias for image denoising on image 'peppers’. Varying the Gaussian kernel by σ controls convergence and performance.
Figure 2.3: Automatic stopping criterion evaluated on image denoising. The vertical green line shows the selected iteration by the proposed stopping criterion. We observe the optimization can be stopped earlier, with a minimal performance loss compared to a fixed stop at 10,000 iterations.
Figure 3.1: Image denoising. The experiments show that 1) our method no longer suffers from eventual performance degradation during optimization, relieving us from the need for an oracle criterion to stop early, 2) the automatic stopping criterion avoids superfluous computation, and 3) our method also obtains favorable restoration and enhancement results compared to current approaches, across all tasks.
2) GPU memory 4GB or higher
3) Python 2.7 or higher
4) Pytorch 1.5 or higher. 1) You can find the used data in the folder 'dataset'.
2) Set the experimental parameters accordingly (refer to the paper).
3) Run ¨python xxxx.py¨ where xxxx denotes the task name, e.g. denoising 1) The value of lambda in Lipschitz normalization should be tuned for each input image. Generally, we found that lambda=1.4 works well when using bilinear upsampling, and lambda=1.8 works well when using our Gaussian upsamling.
2) By introduing the Gaussian upsampling, we show that upsampling operation affacts the spectral bias and optimization convergence. However, we found that the Gaussian upsampling is practically slower than bilinear upsampling because we implement the Gaussian upsampling by using nn.ConvTranspose2d. Thus, in the provided code we use the bilinear upsampling by default.
3) We compute spectral norm by using torch.svd because we found that the power method is inaccurate and unstable. Please cite our paper when you use this code.
@article{ShiIJCV22,
title={On Measuring and Controlling the Spectral Bias of the Deep Image Prior},
author={Zenglin Shi and Pascal Mettes and Subhransu Maji and Cees G M Snoek},
journal={International Journal of Computer Vision},
year={2022}
}