深度学习图像去噪

       最近几个月的项目中图像噪声一直是我最大的困扰,能够找到一种好并且快的去噪方式对于项目的进度与最终效果都起着关键的作用。最近几年深度学习去噪也是一个热门的方向,有着许多显著的研究成果。我将其中一篇去噪论文进行了复现感觉挺有意思的,不需要干净的数据,最终却训练出一个去噪模型。(因为在实际项目中想要获得无噪图像是费力的一件事)。

图像噪声由来:

       图像噪声是指相机在捕捉信号或者传输信号的时候造成的,是和伪影相关的。它在图像中表现出的形式为颜色斑点或亮度斑点。

传统常见滤波方式:

对于不同的噪声,有一些很实用的滤波方法。

  1. 均值滤波:均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。该方法可以平滑图像,速度快,算法简单。但是无法去掉噪声,可以减弱噪声的影响。

  2. 中值滤波:中值滤波是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。该方法可以用来保护边缘信息,是经典的平滑噪声的方法,对消除椒盐噪音非常有效。

  3. 高斯滤波:高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。适用于滤除高斯白噪声,已广泛应用于图像处理的预处理阶段。

  4. 双边滤波: 双边滤波是一种可以保边去噪的滤波器。

深度学习滤波:

       传统的神经网络去噪,最经典的就是降噪自编码器了,来实现图像的降噪和复原,其关键在于获得纯净图像,通过训练,学习到噪声特征,从而具备有从噪声图像中复现出纯净图像的能力。

       而今天讲的Noise2Noise则不需要纯净图像,即通过输入噪声图像,label也是含有该噪声的图像,通过训练既可以获得噪声的特征,从而达到滤波的效果。

       当训练样本很少时,他只能学到二者之间的转化。但是当训练样本达到一定量时,由于噪声是不可测的,网络就可以学习到真正的纯净图像。

原论文一共做了多组实验,包括高斯噪声去除,泊松噪声去除,伯努利噪声去除,水印去除等。

       代码复现该文章就不再提供我的复现了,因为nvidia在github有提供开源代码,https://github.com/NVlabs/noise2noise。有兴趣的小伙伴可以去细读下源码。是一篇很有意思的文章,可以在去噪上做很多事情。

       我复现的去噪效果:

原图:   c03d7d8c53e5600b4ef5a81fddb7accb.png

噪声图: f273edac267b07f3ef6be0f5f24b3459.png

去噪图: 79741fbbf287df326348bc7a2015fbe6.png

猜你喜欢

转载自blog.csdn.net/weixin_41202834/article/details/123321150