深度学习图像去噪综述
原文:Deep Learning on Image Denoising: An Overview
论文链接 相关代码
1 背景与动机
数字图像设备已经被应用在天气预测、灾难救援、安全监控与医学诊病等多个领域。然而数字设备常受到相机抖动、运动的物体、暗光和噪声等影响而导致捕获的照片不干净。因此图像去噪技术的研究具有重要的理论和实际应用价值。也就是说去噪后的数据有助于进一步的图像任务(图像分类、目标识别等)。
图像去噪技术在20世纪90年代已经成为研究热点。例如:用非局部相似性来优化稀疏方法能提高去噪的性能。字典学习有助于快速移除噪声。先验知识通过平滑噪声图像来恢复潜在干净图像的细节。更多竞争去噪方法包括MRF 、WNNM 、LSSC、CSF 、TNRD和GHEP能被利用。
虽然这些大部分方法在图像去噪上能达到好的性能,但是他们有以下缺点:(1) 在测试阶段涉及复杂优化方法,(2) 手动设置参数, (3) 一个固定的模型来处理单个去噪任务。拥有灵活的结构,强的自学习能力的深度学习技术能用来解决这些不足。
2 深度学习在图像去噪中的应用
深度学习技术在图像去噪上应用包括外加白噪声图像去噪、真实噪声图像去噪、盲去噪和混合噪声图像去噪的深度学习技术。
2.1 外加白噪声去噪(additive white noisy-image denoising)
首先说一下什么是additive white noisy images(AWNIs),可以理解为噪声图像是由高斯、泊松、盐、胡椒、乘法等操作生成的。
对于外加白噪声的去噪可以分为三类:
- CNN/NN for AWNI denoising
- CNN/NN and common feature extraction methods for AWNI denoising
- Combination of the optimization method and CNN/NN for AWNI denoising
2.1.1 CNN/NN for AWNI denoising
外加白噪声去噪的方法总结如下表:
对于上述方法来说,设计出不同的网络结构是进行图像去噪的关键,设计网络结构有以下方式:
- 利用多视角来设计网络;包括三种类型:一幅噪声图像作为多个子网络的输入;一个样本的不同角度作为网络的输入;一个网络的不同通道作为输入。
- 改变Loss函数;
- 增加CNN的宽度或者深度;
- 在CNN中增加任意的插件;任意插件包括激活函数、空洞卷积、全连接层和池化层等
- 在CNN中使用跳跃连接 (Skip connection)或者级联操作(Cascaded operations);包括skip connection和cascaded operation。
2.1.2 CNN/NN and common feature extraction methods for AWNI denoising
在图像处理中,特征提取用于表示整个输入数据,但是深度学习技术是一个黑盒操作,没有办法对特征进行选择,因此不能确保所获得的特征是最好的。基于此,研究者试图将常用的特征提取方法嵌入到神经网络中实现图像去噪。该方法分为5类:
- weak edge-information noisy images
- non-linear noisy images
- high dimensional noisy images
- non-salient noisy images
- high computational costs
-
对于weak edge-information noisy images来说,CNN with transformation domain method来移除噪声是非常有效的。
-
对于non-linear noisy images来说,CNN with kernel method在恢复潜在干净图像是非常有效的。
这类方法一般有三步:第一步用CNN来提取特征,第二步用核方法把非线性特征转为线性特征,第三步利用残差技术来重构潜在的干净图像。 -
对于high dimensional noisy images来说,CNN和降维方法的组合是常用的去噪方法。
-
对于non-salient noisy images来说,信号处理方法能引导CNN来提取显著的特征。
-
对于high computational cost, CNN和图像的属性结合能有效地降低复杂度。
2.1.3 Combination of optimization method and CNN/NN for AWNI denoising
首先,optimization method 需要手动设置参数,而且非常耗时;其次,discriminative learning method对低级视觉任务不够灵活。为了平衡效率和灵活性,试图将两种方法进行融合,可以分为两类:
- improvement of denoising speed
- improvement of denoising performance
也就是一类提高去噪速度,一类提高去噪性能。
1、提高去噪速度
将优化方法嵌入到CNN网络是寻找最优解的不错工具。此外,把噪声映射和噪声图像作为CNN的输入也能提高预测噪声的速度。
2、提高去噪性能
将CNN和先验知识进行结合可以有效移除噪声。
2.2 真实噪声图像去噪(real noisy-image denoising)
对于真实噪声图像去噪的问题,包含单一的end-to-end卷积神经网络和先验知识与CNN组合的两种方式。
2.2.1 single end-to-end CNN
常规的方法是修改神经网络的架构,把Multiscale knowledge、Skip connection、batch renormalization、dilated convolutions、attention mechanism融合到CNN中都能有效处理真实噪声图像。
2.2.2 The combination of prior knowledge and CNN
先验知识包括HQS(half quadratic splitting)、channel prior knowledge等。
2.3 盲去噪(blind denoising)
利用image device和soft shrinkage和CNN/NN结合能很好地进行blind denoising。
2.4 混合噪声图像去噪
用warped guidance和CNN组合,单一的CNN以及CNN和iterative algorithm组合都能很好地移除混合噪声。
3 实验
3.1 数据集
- 训练集
- gray-noise (用于训练高斯噪声和盲噪声)
– BSD400
– Waterloo Exploration Database - color-noisy
– BSD432
– Waterloo Exploration Database
– polyU-Real-World-Noisy-Images datasets
- 测试集
- gray-noise(用于测试高斯噪声和盲噪声)
– Set12
– BSD68 - color-noisy
– CBSD68
– Kodak24
– McMaster
– cc
– DND
– NC12
– SIDD
– Nam
4 讨论
深度学习一般在图像去噪上都是提高图像性能、去噪效率和复杂的噪声图像。
4.1 提高去噪性能,有如下解决方法
- 增大网络的感受野能捕获更多上下文信息来提高去噪性能。其中,增加网络宽度和深度是增加感受野最常见的方式,然而,他们会导致高的计算代价和更多内存消耗。空洞卷积能有效解决这个问题。
- CNN和先验结合能提取出更鲁棒的特征。
- 组合局部和全局的信息能提高网络的记忆能力。
- 把信号处理机制融合到CNN能更好遏制噪声。
- 数据增加能提高图像去噪性能。
- 迁移学习、图学习和网络搜索能很好处理噪声图像。
4.2 提高去噪效率
压缩网络能有效地提高去噪的速度。减少网络宽度和深度、利用小的卷积核、组卷积都能有效地提高去噪速度。
4.3 解决复杂的噪声图像
利用分布机制是非常流行的。第一步利用CNN来估计噪声级别作为ground truth或者恢复高分辨率图像。第二步用来恢复潜在干净图像。
4.4 挑战
- 更深的网络需要占用更多内存。
- 更深的去噪网络不能稳定地训练真实噪声图像、没有类标的噪声图像的模型。
- 真实噪声图像不是容易获得的。
- 更深的网络是困难来解决无监督去噪任务。
- 寻找更精确的去噪衡量指标。