2018-TIP-哈工大-(FFDNet)Toward a Fast and Flexible Solution for CNN based Image Denoising
代码
* Models have been trained for values of noise in [0, 75]
* *add_noise* can be set to *False* if the input image is already noisy
http://www.ipol.im/pub/art/2019/231/
https://github.com/m-tassano/fastdvdnet/issues/19
FFDNet是Zhang Kai的一篇承前启后之作,从DnCNN到FFDNet再到CBDNet是一个网络的泛化过程,处理的对象从均匀的高斯噪声变成更加复杂的真实噪声。
https://blog.youkuaiyun.com/zbwgycm/article/details/82848893
网络的第一层是一个降采样层,将图像变为W/2×H/2× 4C
之后的每一个卷积包括卷积、BN以及Relu,与之前的类似Zero-padding用于保持每次卷积后图像尺寸不会发生变化
最后一层卷积后使用一个上采样过程将图像恢复为原始图像尺寸
对于灰度图像 15层 彩色图像 12层
https://zhuanlan.zhihu.com/p/37719126
===================================================================================================
作者主页
https://cszn.github.io/
第三方代码
https://github.com/cszn/FFDNet
2019-CVPR-哈工大-(CBDNet)Toward Convolutional Blind Denoising of Real Photographs
这篇论文是继DnCNN与FFDNet的后续的第三篇,硬是把降噪一点点改进成了一个系列。
论文的创新点有以下四个部分:
1.采用更真实的噪声模型,也就是常说的read-noise和shot-noise,使用高斯-泊松模型来进行噪声模拟。
2. 结合使用合成和真实的噪声数据来进行模型训练,可以更好地对真实场景进行降噪。
3. 结合传统降噪算法BM3D对于不同噪声方差的效果来作为先验,可以手动调整噪声估计图来对应改变降噪力度。
4. 在三个真实数据集上实验结果表明CBDNet是SOTA。
整个模型结构主要包括两个部分,噪声估计网络和降噪网络
噪声估计网络
噪声估计网络的GT为合成噪声每个像素点的方差,也是个逐像素点的预测。这里用的是plain network,就是堆叠了几层卷积层。
降噪网络
降噪网络就是个带残差的UNet
损失函数就是asymm + TV + l2,还有用VGG16 的perceptual loss也出来了。
总结
针对真实场景下的数据量不够的问题,提出了结合合成噪声数据&真实数据来训练的方法
在噪声模型这块,使用了高斯-泊松噪声模型来替代AWGN,将sRGB图片返回到raw域,然后再加上高斯-泊松模型的噪声,然后再进行对应的处理再来转换到sRGB来模拟合成的噪声图片,得到训练对。
https://zhuanlan.zhihu.com/p/73810472
代码
Matlab 2015b
Cuda-8.0 & cuDNN v-5.1
MatConvNet.
https://github.com/GuoShi28/CBDNet
pytorch代码
https://github.com/IDKiro/CBDNet-pytorch