×

文章学习24“Image Blind Denoising With Generative Adversarial Network Based Noise Modeling”

96
侯冠群
2018.07.16 13:32 字数 1059

这篇文章是CVPR2018里做图像去噪的文章之一,主要针对的是图像里的盲去噪,也就是指在不知道噪声水平下的去噪。作者是中山大学和CVTE合作,文章的主要思路和我现在做的很类似,用一个CNN网络来拟合图像中的噪声,网络就是拿DnCNN改的,把最后的subtract去掉。但是由于数据集不够,所以提出来了用GAN来产生噪声以和干净图像结合增加数据量。

图像去噪领域内的工作之前也都有介绍,这篇文章就是把DnCNN的subtract去掉之后增加了数据量(数据增强就可以完成的工作),具体的结构如下:

整个流程大概是,给一组“不成对”的图像,利用从噪声图像中提取的近似噪声块来训练生成对抗网络(GAN)以进行噪声建模和采样。从训练的GAN模型中采样大量噪声块。然后,将提取和生成的噪声块与清晰图像组合以获得成对的训练数据,该训练数据用于训练深度卷积神经网络(CNN)以对输入的噪声图像进行去噪。所以网络就得分成三部分,噪声块提取、GAN生成噪声、和CNN网络用于训练提取图像中的噪声。

噪声块提取,文章中这一块的解释实在是看不懂,也没有找到相关内容,这一块的目的是产生一个近似的噪声块输入给GAN,以让GAN可以更好的产生噪声。而这个近似的噪声块是由噪声图像减去smooth patch的均值得到,这里有点像均值滤波。而怎么定义smooth patch,作者提出了一个算法。以Sg的步长在噪声图像中遍历获得d*d大小的patch Pi,然后在Pi上以Sl的步长遍历以获得h*h的patch qij,如果对于每一个j都能满足下式,那么这个patch Pi就是smooth patch。

是smooth patch的Pi都放到集合S中,估计的噪声块就由集合S中每一个patch减去他的均值得到(利用均值滤波的原理)。然后就会得到充足的噪声块用来训练GAN。

第二部分,GAN生成噪声,网络结构如下图:

思路就是用GAN来模拟噪声块上的噪声分布,以产生更多的噪声分布丰富训练数据集,作者采用了WGAN-GP(WGAN的改进版本,主要是解决了李普利茨连续性导致的权重分布不均衡问题)的思想,目标函数是:Pr是第一部分求得的噪声块上的分布,Pg是生成器的噪声分布,Px是WGAN-GP里定义的内容。整个GAN的结构类似于DCGAN.

第三部分用CNN生成噪声,和我现在做的一模一样,就是把成对的噪声图像和干净图像输入到去掉了subtract的DnCNN里,用loss函数使其输出对应的噪声图像,那么最后干净图像就可以通过噪声图像减去产生的噪声而得到。


实验结果如下表:

针对高斯噪声和混合噪声各个去噪方法在BSD68数据集上测试所得的结果,可以看出针对混合噪声,本文的GCBD还是可以得到更好的结果。这个我之前也做过实验,达不到29.16,只能达到28.75和28.56

上表是在DND数据集上的结果,这个数据集是由50个相机拍摄的真实图像。针对GAN的噪声建模部分实验,作者与GMM生成是噪声对比,结果如下,可以看出本文的噪声建模更接近于真实图像


日记本
Web note ad 1