【图像去噪】论文精读:Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising(DnCNN)


前言

论文题目:Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising —— 除了高斯去噪器:深度CNN残差学习图像去噪

论文地址:Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising

论文源码:https://github.com/cszn/DnCNN

TIP 2017!基于深度学习的图像去噪开山之作!DnCNN!

Abstract

由于其良好的去噪性能,图像去噪的判别模型学习最近引起了相当大的关注。在本文中,我们通过研究前馈去噪卷积神经网络 (DnCNN) 的构建来向前迈出了一步,以将非常深的架构、学习算法和正则化方法的进展纳入图像去噪。具体来说,残差学习和批量归一化用于加快训练过程并提高去噪性能。与现有的判别去噪模型通常在一定的噪声水平下训练加性高斯白噪声(AWGN)的特定模型不同,我们的DnCNN模型能够处理噪声水平未知的高斯去噪(即盲高斯去噪)。通过残差学习策略,DnCNN隐式去除了隐藏层中潜在的干净图像。这一特性促使我们训练一个单一的DnCNN模型来处理几种一般的图像去噪任务,如高斯去噪、单幅图像超分辨率和JPEG图像去块。我们广泛的实验表明,我们的DnCNN模型不仅可以在几个一般的图像去噪任务中表现出很高的有效性,而且可以通过受益于GPU计算来有效地实现。

摘要总览:我们的目标是了解DnCNN,根据摘要所述,DnCNN网络很深,使用了残差学习和批量归一化,可以处理盲高斯噪声。此外,DnCNN还可以处理超分和JPEG去块任务。于是,作为一个通用模型,本文我们要带着问题去阅读,搞懂DnCNN的模型结构,实现细节,以及相关实验内容。

I. INTRODUCTION

图像去噪是低层次视觉中一个经典但仍然活跃的话题,因为它在许多实际应用中是一个不可或缺的步骤。图像去噪的目标是从噪声观测y中恢复干净的图像x,该观测y遵循图像退化模型y=x+v。一个常见的假设是 v 是标准差为 σ 的加性高斯白噪声 (AWGN)。从贝叶斯的角度来看,当似然已知时,图像先验建模将在图像去噪中发挥核心作用。在过去的几十年里,各种模型已被用于图像先验建模,包括非局部自相似(NSS)模型[1],[2],[3],[4],[5],稀疏模型[6],[7],[8],梯度模型[9],[10],[11]和马尔可夫随机场(MRF)模型[12],[13],[14]。特别是,NSS 模型在 BM3D [2]、LSSC [4]、NCSR [7] 和 WNNM [15] 等最先进的方法中很受欢迎。

尽管去噪质量很高,但大多数去噪方法通常有两个主要缺点。首先,这些方法在测试阶段通常涉及复杂的优化问题,使得去噪过程耗时[7]、[16]。因此,大多数方法在不牺牲计算效率的情况下很难实现高性能。其次,模型通常是非凸的,并且涉及几个手动选择的参数,提供一些 leeway 来提高去噪性能。

为了克服上述缺点,最近开发了几种判别学习方法来学习截断推理过程背景下的图像先验模型。生成的模型能够摆脱测试阶段的迭代优化过程。Schmidt 和 Roth [17] 提出了一种级联收缩场 (CSF) 方法,该方法将随机场模型和展开的半二次优化算法统一为单个学习框架。Chen等人[18]、[19]提出了一种可训练的非线性反应扩散(TNRD)模型,该模型通过展开固定数量的梯度下降推理步骤来学习专家[14]图像的修正场。其他一些相关工作可以在[20]、[21]、[22]、[23]、[24]、[25]中找到。尽管 CSF 和 TNRD 在弥合计算效率和去噪质量之间的差距方面显示出有希望的结果,但它们的性能本质上仅限于指定形式的先验。具体来说,CSF 和 TNRD 采用的先验是基于分析模型,该模型在捕获图像结构的全部特征方面受到限制。此外,参数是通过阶段贪婪训练在所有阶段加上联合微调来学习的,并且涉及许多手工制作的参数。另一个不可忽视的缺点是,它们针对特定噪声水平训练特定的模型,并且在盲图像去噪方面受到限制。

在本文中,我们没有学习具有显式图像先验的判别模型,而是将图像去噪视为一个简单的判别学习问题,即通过前馈卷积神经网络 (CNN) 将噪声与噪声图像分离。使用 CNN 的原因有三方面。首先,具有非常深度架构[26]的CNN在提高利用图像特征的能力和灵活性方面是有效的。其次,在训练 CNN 的正则化方法和学习方法方面取得了相当大的进展,包括整流器线性单元 (ReLU) [27]、批量归一化 [28] 和残差学习 [29]。这些方法可以在 CNN 中采用以加快训练过程并提高去噪性能。第三,CNN 非常适合现代强大 GPU 上的并行计算,可用于提高运行时间性能。

我们将提出的去噪卷积神经网络称为DnCNN。所提出的DnCNN不是直接输出去噪图像ˆx,而是旨在预测残差图像ˆv,即噪声观测和潜在干净图像之间的差异。换句话说,所提出的DnCNN隐式地用隐藏层中的操作去除潜在的干净图像。进一步引入批归一化技术来稳定和增强DnCNN的训练性能。结果表明,残差学习和批归一化可以相互受益,其集成在加快训练速度和提高去噪性能方面是有效的。

虽然本文旨在设计一个更有效的高斯去噪器,但我们观察到当v是地面真实图像与低分辨率图像的双三次上采样之间的差异时,高斯去噪的图像退化模型可以转化为单幅图像超分辨率(SISR)问题;类似地,JPEG图像去块问题可以通过取v作为原始图像与压缩图像的差值,由相同的图像退化模型建模。从这个意义上说,SISR 和 JPEG 图像去块可以被视为“一般”图像去噪问题的两个特殊情况,尽管在 SISR 和 JPEG 中去阻塞噪声与 AWGN 有很大不同。很自然地要问是否有可能训练一个CNN模型来处理这种一般的图像去噪问题。通过分析DnCNN和TNRD[19]之间的联系,我们提出扩展DnCNN来处理几种一般的图像去噪任务,包括高斯去噪、SISR和JPEG图像去块。

大量的实验表明,我们使用一定噪声水平训练的DnCNN可以产生比BM3D[2]、WNNM[15]和TNRD[19]等最先进的方法更好的高斯去噪结果。对于噪声水平未知的高斯去噪(即盲高斯去噪),具有单一模型的DnCNN仍然可以优于针对特定噪声水平训练的BM3D[2]和TNRD[19]。当DnCNN扩展到几个一般的图像去噪任务时,也能获得有前景的结果。此外,我们展示了仅对三个一般图像去噪任务训练单个DnCNN模型的有效性,即盲高斯去噪、具有多个缩放因子的SISR和具有不同质量因子的JPEG去块。

这项工作的贡献总结如下:

1)我们提出了一种用于高斯去噪的端到端可训练深度 CNN。与现有的直接估计潜在干净图像的深度神经网络方法相比,该网络采用残差学习策略从噪声观测中去除潜在的干净图像。

2)我们发现残差学习和批量归一化可以极大地有利于 CNN 学习,因为它们不仅可以加快训练速度,还可以提高去噪性能。对于具有一定噪声水平的高斯去噪,DnCNN在定量指标和视觉质量方面都优于最先进的方法。

3)我们的DnCNN可以很容易地扩展到处理一般的图像去噪任务。我们可以训练一个单一的DnCNN模型进行盲高斯去噪,并获得比针对特定噪声水平训练的竞争方法更好的性能。此外,仅用单个DnCNN模型求解盲高斯去噪、SISR和JPEG去块三个一般的图像去噪任务很有希望。

本文的其余部分安排如下。第 II 节简要概述了相关工作。第 III 节介绍了所提出的 DnCNN 模型,然后将其扩展到一般的图像去噪。在第四节中,进行了广泛的实验来评估DnCNN。最后,第五节给出了几个结束语。

介绍:首先,简要介绍了图像去噪的原理和相关方法,然后阐述之前方法的缺点,引出CNN算法的优点,进而阐述本文方法DnCNN的原理及优点,最后详细描述3个创新点。简言之,1.DnCNN是端到端的,不是直接预测去噪后的图像,而是将干净图像和噪声分离;2.DnCNN使用残差学习和批归一化,加快训练又提升去噪性能;3.DnCNN低级图像任务都通用,如去噪、超分(SISR)、JPEG去块。

II. RELATED WORK

A. Deep Neural Networks for Image Denoising

已经有一些尝试通过深度神经网络处理去噪问题。在[30]中,Jain和Seung提出使用卷积神经网络(CNNs)进行图像去噪,并声称cnn具有与MRF模型相似甚至更好的表示能力。在[31]中,多层感知器(MLP)成功地应用于图像去噪。在[32]中,采用堆叠稀疏去噪自编码器方法来处理高斯噪声去除,并取得了与K-SVD[6]相当的结果。在[19]中,提出了一种可训练的非线性反应扩散(TNRD)模型,通过展开固定数量的梯度下降推理步骤,可以表示为前馈深度网络。在上述基于深度神经网络的方法中,MLP 和 TNRD 可以达到有希望的性能,并且能够与 BM3D 竞争。然而,对于 MLP [31] 和 TNRD [19],针对特定噪声水平训练特定模型。据我们所知,开发 CNN 进行一般图像去噪仍未得到研究。

B. Residual Learning and Batch Normalization

最近,由于易于访问大规模数据集和深度学习方法的进步,卷积神经网络在处理各种视觉任务方面显示出巨大的成功。训练CNN模型的代表性成就包括整流线性单元(ReLU)[27]、深度和宽度之间的权衡[26]、[33]、参数初始化[34]、基于梯度的优化算法[35]、[36]、[37]、批归一化[28]和残差学习[29]。其他因素,例如在现代强大的 GPU 上进行有效的训练实现,也有助于 CNN 的成功。对于高斯去噪,很容易从一组高质量的图像生成足够的训练数据。这项工作的重点是 CNN 的设计和学习以进行图像去噪。在下面,我们简要回顾了与DnCNN相关的两种方法,即残差学习和批处理归一化。

1)残差学习:最初提出CNN的残差学习[29]来解决性能下降问题,即即使训练精度随着网络深度的增加开始下降。通过假设残差映射比原始未引用映射更容易学习,残差网络显式地学习几个堆叠层的残差映射。通过这种残差学习策略,可以很容易地训练极深的CNN,提高图像分类和目标检测的精度[29]。

所提出的DnCNN模型也采用了残差学习公式。与使用许多残差单元(即身份快捷方式)的残差网络[29]不同,我们的DnCNN使用单个残差单元来预测残差图像。我们通过分析残差学习公式与TNRD[19]的联系,并将其扩展到解决几个一般的图像去噪任务,进一步解释了残差学习公式的基本原理。需要注意的是,在残差网络[29]之前,在一些低级视觉问题(如单图像超分辨率[38]和彩色图像去马赛克[39])中,已经采用了预测残差图像的策略。然而,据我们所知,没有工作直接预测残差图像进行去噪。

  1. 批量归一化:小批量随机梯度下降 (SGD) 已广泛用于训练 CNN 模型。尽管小批量 SGD 的简单性和有效性,但它的训练效率在很大程度上通过内部协变量偏移 [28] 降低,即训练期间内部非线性输入分布的变化。提出了一种批处理归一化[28],通过在每一层的非线性之前合并一个归一化步骤和一个尺度和移位步骤来缓解内部协变量偏移。对于批量归一化,每次激活只添加两个参数,并且可以通过反向传播进行更新。批量归一化有几个优点,例如快速训练、更好的性能和对初始化的敏感性低。有关批量归一化的更多详细信息,请参阅[28]。

到目前为止,还没有关于研究基于 CNN 的图像去噪的批量归一化的工作。我们凭经验发现,残差学习和批量归一化的集成可以导致快速稳定的训练和更好的去噪性能。

相关工作:与本文工作最相关的内容。1.基于CNN的去噪;2.本文使用的残差学习和BN。

III. THE PROPOSED DENOISING CNN MODEL

在本节中,我们提出了所提出的去噪CNN模型,即DnCNN,并将其扩展为处理几个一般的图像去噪任务。通常,为特定任务训练深度 CNN 模型通常涉及两个步骤:(i)网络架构设计和(ii)从训练数据中学习的模型学习。对于网络架构设计,我们修改了 VGG 网络 [26] 使其适合图像去噪,并根据最先进的去噪方法中使用的有效补丁大小设置网络的深度。对于模型学习,我们采用残差学习公式,并将其与批量归一化相结合,以实现快速训练和提高去噪性能。最后,我们讨论了DnCNN和TNRD[19]之间的联系,并将DnCNN扩展到几个一般的图像去噪任务。

本文模型总览 —— 可以得到几个信息:1.DnCNN是VGG修改而来的;2.残差学习与批归一化;3.DnCNN与TNRD有联系。请带着上面3个信息继续阅读本文,看看DnCNN到底是如何实现的。

A. Network Depth

遵循 [26] 中的原则,我们将卷积滤波器的大小设置为 3 × 3,但删除所有池化层。因此,深度为d的DnCNN的感受野应该是(2d+1)×(2d+1)。增加感受野大小可以利用更大图像区域的上下文信息。为了更好地权衡性能和效率,架构设计中的一个重要问题是为DnCNN设置适当的深度。

有人指出,去噪神经网络的感受野大小与去噪方法[30],[31]的有效补丁大小相关。此外,高噪声水平通常需要更大的有效补丁大小来捕获更多的上下文信息来恢复[41]。因此,通过固定噪声水平σ = 25,我们分析了几种领先的去噪方法的有效补丁大小,以指导DnCNN的深度设计。在 BM3D [2] 中,非局部相似补丁在大小为 25 × 25 的局部寡妇中自适应地搜索两次,因此最终的有效补丁大小为 49×49。与 BM3D 类似,WNNM [15] 使用更大的搜索窗口并迭代地执行非局部搜索,从而产生相当大的有效补丁大小(361 × 361)。MLP[31]首先使用大小为39 × 39的补丁来生成预测的补丁,然后采用大小为9 × 9的过滤器对输出补丁进行平均,因此其有效补丁大小为47×47。五个阶段的CSF[17]和TNRD[19]共涉及10个卷积层,滤波器大小为7 × 7,有效补丁大小为61 × 61。

表 I 总结了不同噪声水平 σ = 25 方法中采用的有效补丁大小。可以看出,EPLL [40] 中使用的有效补丁大小最小,即 36×36。验证感受野大小与 EPLL 相似的 DnCNN 是否可以与领先的去噪方法竞争是很有趣的。因此,对于具有一定噪声水平的高斯去噪,我们将DnCNN的感受野大小设置为35 × 35,对应的深度为17。对于其他一般的图像去噪任务,我们采用更大的感受野,将深度设置为20。在这里插入图片描述
网络深度 —— 提取本小节重要信息:1.卷积大小都是3×3,无池化层;2.固定噪声水平为25;3.通过对比其他方法,得出DnCNN的感受野为35×35,网络深度为17。其他任务网络深度为20。

B. Network Architecture

我们的DnCNN的输入是噪声观测y = x +v。MLP[31]和CSF[17]等判别去噪模型旨在学习映射函数F(y) = x来预测潜在的干净图像。对于DnCNN,我们采用残差学习公式来训练残差映射R(y)≈v,然后我们有x=y−R(y)。形式上,期望残差图像与噪声输入的估计残差之间的平均均方误差
ℓ ( Θ ) = 1 2 N ∑ i = 1 N ∥ R ( y i ; Θ ) − ( y i − x i ) ∥ F 2 (1) \ell(\boldsymbol{\Theta})=\frac{1}{2 N} \sum_{i=1}^{N}\left\|\mathcal{R}\left(\mathbf{y}_{i} ; \boldsymbol{\Theta}\right)-\left(\mathbf{y}_{i}-\mathbf{x}_{i}\right)\right\|_{F}^{2}\tag{1} (Θ)=2N1i=1NR(yi;Θ)(yixi)F2(1)
可以作为损失函数来学习DnCNN中的可训练参数Θ。这里 {(yi, xi)}N i=1 表示 N 个噪声干净的训练图像(补丁)对。图 1 说明了所提出的 DnCNN 学习 R(y) 的架构。在下文中,我们解释了DnCNN的体系结构和减少边界伪影的策略。在这里插入图片描述
1)深度架构:给定深度为D的DnCNN,有三种类型的层,如图1所示,颜色三种不同。(i) Conv+ReLU:对于第一层,使用 64 个大小为 3 × 3 × c 的过滤器来生成 64 个特征图,然后使用整流线性单元 (ReLU, max(0,·)) 进行非线性。这里 c 表示图像通道的数量,即灰度图像的 c = 1,彩色图像的 c = 3。(ii) Conv+BN+ReLU:对于第 2 层 ∼ (D − 1),使用了 64 个大小为 3 × 3 × 64 的过滤器,并在卷积和 ReLU 之间添加了批量归一化 [28]。(iii) Conv:对于最后一层,使用大小为 3 × 3 × 64 的 c 个滤波器来重建输出。

综上所述,我们的DnCNN模型有两个主要特点:采用残差学习公式学习R(y),并结合批归一化来加速训练,提高去噪性能。通过将卷积与ReLU相结合,DnCNN可以通过隐藏层逐渐将图像结构与噪声观测分离。这种机制类似于 EPLL 和 WNNM 等方法中采用的迭代噪声去除策略,但我们的 DnCNN 以端到端的方式进行训练。稍后我们将对结合残差学习和批量归一化的基本原理进行更多讨论。

2)减少边界伪影:在许多低级视觉应用中,通常需要输出图像的大小应该与输入的大小保持相同。这可能会导致边界伪影。在 MLP [31] 中,噪声输入图像的边界在预处理阶段对称填充,而在 CSF [17] 和 TNRD [19] 的每个阶段之前执行相同的填充策略。与上述方法不同,我们在卷积之前直接填充零,以确保中间层的每个特征图与输入图像具有相同的大小。我们发现简单的零填充策略不会导致任何边界伪影。这种良好的特性可能归因于DnCNN强大的能力。

网络结构 —— 提取本小节重要信息:1.输入为带噪声的图像,输出为残差图像,损失函数为二者的均方误差;2.第一层是Conv+ReLU,中间若干层Conv+BN+ReLU,最后一层是Conv。通道数均为64,卷积核大小均为3×3;3.为了减少边缘伪影,使用零填充,确保feature map与输入大小相同,保证不会产生任何边界伪影。

C. Integration of Residual Learning and Batch Normalization for Image Denoising

图 1 所示的网络可用于训练原始映射 F(y) 来预测 x 或残差映射 R(y) 来预测 v。根据[29],当原始映射更像是恒等映射时,残差映射将更容易优化。请注意,噪声观察 y 比残差图像 v 更像潜在的干净图像 x(尤其是当噪声水平较低时)。因此,F(y) 比 R(y) 更接近恒等映射,残差学习公式更适合图像去噪。

图 2 显示了在基于梯度的优化算法和网络架构的相同设置下使用这两种具有/不具有批量归一化的学习公式获得的平均 PSNR 值。请注意,采用了两种基于梯度的优化算法:一种是动量(即 SGD)的随机梯度下降算法,另一种是 Adam 算法[37]。首先,我们可以观察到残差学习公式可以导致比原始映射学习更快、更稳定的收敛。同时,在没有批量归一化的情况下,使用传统 SGD 的简单残差学习无法与最先进的去噪方法(如 TNRD(28.92dB)竞争。我们认为,不充分的性能应该归因于训练过程中网络参数变化引起的内部协变量偏移[28]。因此,采用批量归一化来解决它。其次,我们观察到,通过批量归一化,学习残差映射(红线)收敛得更快,并且表现出比学习原始映射(蓝线)更好的去噪性能。特别是,SGD 和 Adam 优化算法都可以使网络具有残差学习和批量归一化,以获得最好的结果。换句话说,它是残差学习公式和批量归一化的集成,而不是导致最佳去噪性能的优化算法(SGD 或 Adam)。
在这里插入图片描述

实际上,可以注意到,在高斯去噪中,残差图像和批归一化都与高斯分布相关。残差很可能学习和批处理归一化可以从彼此中受益,用于高斯去噪。这一点可以通过以下分析进一步验证。

  • 一方面,残差学习受益于批处理归一化。这很简单,因为批量归一化为 CNN 提供了一些优点,例如减轻内部协变量偏移问题。从图2可以看出,即使没有批处理归一化(绿线)的残差学习收敛速度快,但它不如批处理归一化(红线)的残差学习。
  • 另一方面,批处理归一化受益于残差学习。如图2所示,在没有残差学习的情况下,批归一化甚至对收敛有一定的不利影响(蓝线)。通过残差学习,可以利用批量归一化来加速训练并提高性能(红线)。请注意,每个 mini-bath 是图像的一小部分(例如 128)。在没有残差学习的情况下,输入强度和卷积特征与其相邻特征相关,层输入的分布也依赖于每个训练小批量中图像的内容。通过残差学习,DnCNN通过隐藏层中的操作隐式去除潜在的干净图像。这使得每一层的输入都是高斯分布的、相关性较低的,并且与图像内容的相关性较低。因此,残差学习还可以帮助批量归一化减少内部协变量偏移。

综上所述,残差学习和批归一化的集成不仅可以加快和稳定训练过程,还可以提高去噪性能。

分析残差学习RL和批归一化BN对于模型的影响:通过实验,说明使用RL和BN的有效性。根据图2所示,使用RL+BN和优化器Adam是最佳组合。

D. Connection with TNRD

我们的DnCNN也可以解释为一阶段TNRD[18],[19]的推广。通常,TNRD 旨在从一组丰富的退化干净图像对中训练一个以下问题的判别解
min ⁡ x Ψ ( y − x ) + λ ∑ k = 1 K ∑ p = 1 N ρ k ( ( f k ∗ x ) p ) (2) \min _{\mathbf{x}} \Psi(\mathbf{y}-\mathbf{x})+\lambda \sum_{k=1}^{K} \sum_{p=1}^{N} \rho_{k}\left(\left(\mathbf{f}_{k} * \mathbf{x}\right)_{p}\right)\tag{2} xminΨ(yx)+λk=1Kp=1Nρk((fkx)p)(2)
这里N表示图像大小,λ是正则化参数,fk ∗ x表示第k个滤波器核fk的图像x的卷积,ρk(·)表示第k个惩罚函数,在TNRD模型中是可调整的。对于高斯去噪,我们设置 Ψ(z) = 1 2 ‖z‖2。

第一阶段的扩散迭代可以解释为在起点 y 处执行一个梯度下降推理步骤,由下式给出
x 1 = y − α λ ∑ k = 1 K ( f ‾ k ∗ ϕ k ( f k ∗ y ) ) − α ∂ Ψ ( z ) ∂ z ∣ z = 0 (3) \mathbf{x}_{1}=\mathbf{y}-\alpha \lambda \sum_{k=1}^{K}\left(\overline{\mathbf{f}}_{k} * \phi_{k}\left(\mathbf{f}_{k} * \mathbf{y}\right)\right)-\left.\alpha \frac{\partial \Psi(\mathbf{z})}{\partial \mathbf{z}}\right|_{\mathbf{z}=\mathbf{0}}\tag{3} x1=yαλk=1K(fkϕk(fky))αzΨ(z) z=0(3)
其中 ̄fk 是 fk 的伴随滤波器(即 ̄fk 是通过旋转 180 度滤波器 fk 获得的),α 对应于步长,ρ′k(·) = φk(·)。对于高斯去噪,我们有∂Ψ(z)∂z∣∣z=0=0=0和Eqn。(3) 等价于以下表达式
v 1 = y − x 1 = α λ ∑ k = 1 K ( f ‾ k ∗ ϕ k ( f k ∗ y ) ) (4) \mathbf{v}_{1}=\mathbf{y}-\mathbf{x}_{1}=\alpha \lambda \sum_{k=1}^{K}\left(\overline{\mathbf{f}}_{k} * \phi_{k}\left(\mathbf{f}_{k} * \mathbf{y}\right)\right)\tag{4} v1=yx1=αλk=1K(fkϕk(fky))(4)
其中 v1 是 x 相对于 y 的估计残差。

由于影响函数 φk(·) 可以看作是应用于卷积特征图的逐点非线性,等式(4) 实际上是一个两层前馈 CNN。从图 1 可以看出,所提出的 CNN 架构从三个方面进一步概括了一阶段 TNRD:(i)用 ReLU 替换影响函数以简化 CNN 训练; (ii) 增加 CNN 深度以提高建模图像特征的能力; (iii) 结合批量归一化以提高性能。与一阶段TNRD的联系为解释残差学习的使用提供了见解用于基于 CNN 的图像恢复。方程式中的大部分参数。(4) 源自 Eqn 的分析先验项。(2)。从这个意义上说,DnCNN中的大部分参数都是表示图像先验。

有趣的是,即使噪声不是高斯分布(或高斯的噪声水平未知),我们仍然可以利用 Eqn。(3) 如果我们有
∂ Ψ ( z ) ∂ z ∣ z = 0 = 0 (5) \left.\frac{\partial \Psi(\mathbf{z})}{\partial \mathbf{z}}\right|_{\mathbf{z}=\mathbf{0}}=\mathbf{0}\tag{5} zΨ(z) z=0=0(5)
请注意,等式 (5) 适用于多种类型的噪声分布,例如广义高斯分布。很自然地假设它也适用于SISR和JPEG压缩引起的噪声。可以为几个一般的图像去噪任务训练一个单一的CNN模型,如噪声水平未知的高斯去噪、具有多个缩放因子的SISR和不同质量因子的JPEG去块。

此外,等式 (4) 也可以解释为从退化的观察 y 中去除潜在干净图像 x 以估计残差图像 v 的操作。对于这些任务,即使噪声分布很复杂,可以预期我们的DnCNN也可以通过逐渐去除隐藏层中的潜在干净图像来预测残差图像来稳健地执行。

E. Extension to General Image Denoising

与 MLP、CSF 和 TNRD 一样,所有现有的描述高斯去噪方法都针对固定噪声水平 [19]、[31] 训练特定模型。当应用于噪声未知的高斯去噪时,一种常见的方法是首先估计噪声水平,然后使用相应噪声水平训练的模型。这使得去噪结果受到噪声估计精度的影响。此外,这些方法不能应用于非高斯噪声分布的情况,例如SISR和JPEG去块。

我们在第III-D节中的分析表明DnCNN在一般图像去噪方面的潜力。为了证明这一点,我们首先将DnCNN扩展到噪声水平未知的高斯去噪。在训练阶段,我们使用来自广泛噪声水平(例如 σ ∈ [0, 55])的噪声图像来训练单个 DnCNN 模型。给定一个噪声水平属于噪声水平范围的测试图像,学习到的单个DnCNN模型可以在不估计噪声水平的情况下对其进行去噪。

在实践中,各种图像去噪任务可以通过采用所提出的DnCNN方法来实现。在这项工作中,我们考虑了三个特定任务,即盲高斯去噪、SISR 和 JPEG 去块。在训练阶段,我们利用来自广泛噪声水平的AWGN图像、具有多个缩放因子的下采样图像和具有不同质量因子的JPEG图像来训练单个DnCNN模型。实验结果表明,学习到的单个DnCNN模型能够为三种一般图像去噪任务中的任何一个产生良好的结果。

与之前的方法相比,DnCNN在未知噪声水平的情况下也有很好的性能。

IV. EXPERIMENTAL RESULTS

A. Experimental setting

1)训练和测试数据:对于已知或未知噪声水平的高斯去噪,我们遵循[19]使用400张大小为180×180的图像进行训练。我们发现使用更大的训练数据集只能带来很小的改进。为了训练DnCNN进行已知噪声水平的高斯去噪,我们考虑了三个噪声水平,即σ = 15, 25和50。我们将patch大小设置为40 × 40,裁剪128 × 1, 600个patch来训练模型。我们将已知特定噪声水平的高斯去噪DnCNN模型称为DnCNN-S。

我们将噪声水平的范围设置为 σ ∈ [0, 55],补丁大小设置为 50 × 50,以便训练单个 DnCNN 模型进行盲高斯去噪。裁剪 128 × 3, 000 个补丁来训练模型。我们将盲高斯去噪任务的单个DnCNN模型称为DnCNN-B。

参考两个广泛使用的数据集,我们将测试图像设置为所有竞争方法的性能评估。一个是测试数据集,包含来自Berkeley分割数据集(BSD68)[14]的68张自然图像,另一个是包含12张图像,如图3所示。注意,所有这些图像都被广泛用于高斯去噪方法的评估,它们不包含在训练数据集中。在这里插入图片描述

除了灰度图像去噪外,我们还训练了称为CDnCNNB的盲彩色图像去噪模型。我们使用 BSD68 数据集的颜色版本进行测试,并采用伯克利分割数据集剩余的 432 个彩色图像作为训练数据。噪声水平也设置为 [0, 55] 的范围,裁剪大小为 50×50 的 128 × 3, 000 个补丁来训练模型。

为了学习三个一般图像去噪任务的单一模型,如[42]所示,我们使用了一个由[43]中的91张图像和来自Berkeley分割数据集的200张训练图像组成的数据集。噪声图像是通过在 [0, 55] 范围内添加具有一定噪声水平的高斯噪声来生成的。SISR输入由第一次双三次下采样生成,然后用降尺度因子2、3和4对高分辨率图像进行双三次上采样。JPEG去块输入是通过使用MATLAB JPEG编码器压缩质量因子从5到99的图像来生成的。所有这些图像都被视为单个DnCNN模型的输入。总的来说,我们生成了 128×8,000 个图像块(大小为 50 × 50)对进行训练。在小批量学习中使用基于补丁对的旋转/翻转操作。参数用DnCNN-B初始化。我们将这三个一般图像去噪任务的单一DnCNN模型称为DnCNN-3。为了测试DnCNN-3,我们对每个任务采用不同的测试集,详细的描述将在第IV-E节中给出。

训练和测试数据总结:

  1. 训练集为BSD400(灰度),BSD432(彩色)
  2. 噪声水平为15,25,50,块大小为40×40,已知噪声水平的模型称为DnCNN-S;噪声水平[0,55],块大小为50×50,未知噪声水平的模型称为DnCNN-B,彩色图像版本为CDnCNN-B;
  3. 测试集为BSD68(灰度和彩色)、Set12(灰度版本);
  4. 三个任务的通用模型由291数据集,噪声图像是噪声水平为[0,55]添加随机高斯噪声生成,单图像超分是双三次插值生成2,3,4倍图像,JPEG去块是使用matlab压缩质量因子从5~99生成的。数据增强为旋转或翻转,用DnCNN-B初始化,称为DnCNN-3。

2)参数设置和网络训练:为了捕捉足够的空间信息进行去噪,我们将DnCNN-S的网络深度设置为17,DnCNN-B和DnCNN-3的网络深度设置为20。Eqn中的损失函数。(1) 用于学习残差映射 R(y) 来预测残差 v。我们用[34]中的方法初始化权重,并使用权重衰减为0.0001、动量为0.9、mini-batch为128的SGD。我们为DnCNN模型训练50个epoch。50 个 epoch 的学习率从 1e-1 指数衰减到 1e-4。

我们使用MatConvNet包[44]来训练所提出的DnCNN模型。除非另有说明,所有实验均在运行在配备 Intel® Core™ i7-5820K CPU 3.30GHz 和 Nvidia Titan X GPU 的 PC 上的 Matlab (R2015b) 环境中进行。在GPU上训练DnCNN-S、DnCNNB/CDnCNN-B和DnCNN-3大约需要6小时、一天和三天。

参数总结:

  1. DnCNN-S的网络深度为17,DnCNN-B和DnCNN-3的网络深度为20
  2. 损失函数为公式1中的均方误差
  3. 优化器为SGD,weight decay为0.0001,动量momentum为0.9,batchsize为128,训练50个epoch
  4. 学习率从1e-1降到1e-4,即每10个epoch降低10倍

B. Compared Methods

我们将所提出的DnCNN方法与几种最先进的去噪方法进行了比较,包括两种基于非局部相似度的方法(即BM3D[2]和WNNM[15])、一种生成方法(即EPLL[40])、三种基于判别训练的方法(即MLP[31]、CSF[17]和TNRD[19])。请注意,CSF 和 TNRD 通过 GPU 实现非常有效,同时提供良好的图像质量。实现代码从作者的网站下载,我们的实验使用了默认参数设置。我们的DnCNN模型的训练和测试代码可以在https://github.com/cszn/DnCNN下载。

C. Quantitative and Qualitative Evaluation

BSD68 数据集上不同方法的平均 PSNR 结果如表 II 所示。可以看出,DnCNN-S 和 DnCNN-B 都可以取得比竞争方法的最佳 PSNR 结果。与基准 BM3D 相比,方法 MLP 和 TNRD 的 PSNR 增益约为 0.35dB。根据[41]、[45],很少有方法平均比BM3D高出0.3dB以上。相比之下,我们的DnCNN-S模型在所有三种噪声水平上都优于BM3D 0.6dB。特别是,即使使用没有已知噪声水平的单个模型,我们的DnCNN-B仍然可以优于针对已知特定噪声水平训练的竞争方法。需要注意的是,当σ = 50时,DnCNN-S和DnCNN-B都优于BM3D约0.6dB,这与[45]中BM3D (0.7dB)的估计PSNR界非常接近。
在这里插入图片描述
表 III 列出了图 3 中 12 个测试图像上不同方法的 PSNR 结果。每个噪声水平的图像的最佳 PSNR 结果用粗体突出显示。可以看出,所提出的DnCNN-S在大多数图像上产生了最高的PSNR。具体来说,DnCNN-S在大多数图像上都优于竞争方法0.2dB到0.6dB,在重复结构主导的两幅图像“House”和“Barbara”上未能取得最佳结果。这一结果与[46]的发现一致:基于非局部均值的方法通常在具有规则和重复结构的图像上更好,而基于判别训练的方法通常在纹理不规则的图像上产生更好的结果。实际上,这直观地是合理的,因为具有规则和重复结构的图像与非局部相似性先验很好地满足;相反,纹理不规则的图像会削弱这种特定先验的优势,从而导致结果不佳。在这里插入图片描述
图4-5说明了不同方法的视觉结果。可以看出,BM3D、WNNM、EPLL 和 MLP 往往会产生过度平滑的边缘和纹理。在保留锐利的边缘和精细细节的同时,TNRD 很可能在平滑区域产生伪影。相比之下,DnCNN-S 和 DnCNN-B 不仅可以恢复锐利的边缘和精细细节,还可以在平滑区域产生视觉上令人愉悦的结果。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

对于彩色图像去噪,CDnCNN-B与基准CBM3D的视觉比较如图6-7所示。可以看出,CBM3D在某些区域产生错误的颜色伪影,而CDnCNN-B可以恢复更自然的颜色图像。此外,CDnCNN-B 可以生成比 CBM3D 更多的细节和更清晰的边缘的图像。

图8显示了我们的DnCNN-B和CDnCNN-B模型的两个真实图像去噪示例。请注意,我们的DnCNN-B被训练为盲高斯去噪。然而,如第III-D节所讨论的,当噪声是加性高斯白噪声时,DnCNN-B可以很好地处理真实的噪声图像,或者大致满足Eqn中的假设。(5)。从图8可以看出,我们的模型可以在保持图像细节的同时恢复视觉上令人愉悦的结果。结果表明,该方法在一些实际的图像去噪应用中部署的可行性。
在这里插入图片描述

图9显示了DnCNN-B/CDnCNN-B模型对不同噪声水平下BM3D/CBM3D的平均PSNR改善。可以看出,我们的DnCNN-B/CDnCNN-B模型在广泛的噪声水平上始终优于BM3D/CBM3D。该实验结果证明了训练单个DnCNN-B模型在广泛的噪声水平范围内处理盲高斯去噪的可行性。在这里插入图片描述

D. Run Time

除了视觉质量之外,图像恢复方法的另一个重要方面是测试速度。表 IV 显示了不同方法对噪声水平为 25 的 256 × 256、512 × 512 和 1024 × 1024 图像去噪图像的运行时间。由于 CSF、TNRD 和我们的 DnCNN 方法非常适合 GPU 上的并行计算,我们还在 GPU 上给出了相应的运行时间。我们使用Nvidia cuDNNv5深度学习库来加速所提出的DnCNN的GPU计算。与[19]一样,我们不计算CPU和GPU之间的内存传输时间。可以看出,所提出的DnCNN在CPU上具有较高的速度,它比MLP和CSF两种判别模型更快。虽然它比 BM3D 和 TNRD 慢,但通过考虑图像质量改进,我们的 DnCNN 在 CPU 实现中仍然非常具有竞争力。对于 GPU 时间,所提出的 DnCNN 实现了非常吸引人的计算效率,例如,它可以对大小为的图像进行去噪60ms 中 512 × 512,噪声水平未知,比 TNRD 具有明显的优势。在这里插入图片描述

E. Experiments on Learning a Single Model for Three General Image Denoising Tasks

为了进一步展示所提出的DnCNN模型的容量,针对盲高斯去噪、SISR和JPEG图像去块三个一般图像去噪任务训练单个DnCNN-3模型。据我们所知,现有方法都没有报告仅使用单个模型处理这三个任务。因此,对于每个任务,我们将DnCNN-3与特定最先进的方法进行比较。在下文中,我们描述了每个任务的比较方法和测试数据集:

  • 对于高斯去噪,我们使用最先进的 BM3D 和 TNRD 进行比较。BSD68 数据集用于测试性能。对于 BM3D 和 TNRD,我们假设噪声水平是已知的。
  • 对于SISR,我们考虑了两种最先进的方法,即TNRD和VDSR[42]。TNRD 为每个升级因子训练了一个特定的模型,而 VDSR [42] 为所有三个升级因子(即 2、3 和 4)训练了一个模型。我们采用[42]中使用的四个测试数据集(即Set5和Set14、BSD100和Urban100[47])。
  • 对于JPEG图像去块,我们的DnCNN-3与两种最先进的方法进行了比较,即AR-CNN[48]和TNRD[19]。AR-CNN 方法分别为 JPEG 质量因子 10、20、30 和 40 训练了四个特定的模型。对于 TNRD,训练了三个 JPEG 质量因子 10、20 和 30 的模型。与 [48] 一样,我们采用 Classic5 和 LIVE1 作为测试数据集。
    在这里插入图片描述

表V列出了不同方法对不同一般图像去噪任务的平均PSNR和SSIM结果。可以看出,即使我们为三个不同的任务训练了一个DnCNN-3模型,它仍然优于非盲TNRD和BM3D进行高斯去噪。对于SISR,它大大超过了TNRD,与VDSR相当。对于JPEG图像去块,DnCNN-3在PSNR上比AR-CNN高出约0.3dB,在所有质量因子上,TNRD的PSNR增益约为0.1dB。

图 10 和图 11 显示了 SISR 不同方法的视觉比较。可以看出,DnCNN-3 和 VDSR 都可以产生清晰的边缘和精细细节,而 TNRD 往往会产生模糊的边缘和扭曲的线条。图12显示了不同方法的JPEG去块结果。可以看出,我们的DnCNN-3可以恢复直线,而AR-CNN和TNRD容易产生畸变线。图 13 给出了一个额外的示例来展示所提出模型的容量。我们可以看到DnCNN3可以产生视觉上令人愉悦的输出结果,即使输入图像被不同区域中不同级别的几个失真破坏。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验部分总结:固定噪声水平与SOTA对比;灰度图像和彩色图像对比;时间对比;通用模型对比;总之,实验部分我们要学习的是,如何让实验丰富,提现工作量大。具体的实验细节以及思路我们将在下一篇文章,DnCNN复现中详细阐述。

V. CONCLUSION

本文提出了一种用于图像去噪的深度卷积神经网络,其中采用残差学习将噪声与噪声观测分离。集成了批量归一化和残差学习来加速训练过程并提高去噪性能。与传统的针对特定噪声水平训练特定模型的判别模型不同,我们的单个DnCNN模型能够处理噪声水平未知的盲高斯去噪。此外,我们展示了训练单个DnCNN模型处理三个一般图像去噪任务的可行性,包括噪声水平未知的高斯去噪、具有多个缩放因子的单幅图像超分辨率和不同质量因子的JPEG图像去块。大量的实验结果表明,该方法不仅在定量和定性上都能产生良好的图像去噪性能,而且GPU实现也具有良好的运行时间。未来,我们将研究合适的CNN模型对具有真实复杂噪声和其他一般图像恢复任务的图像进行去噪。

总结:

  1. DnCNN使用残差学习和批归一化处理。请注意,这里的残差学习并不是指ResNet中的残差链接,而是学习残差图像。因为DnCNN与之前直接预测去噪后的图像的方法相比,DnCNN是通过带噪声图像预测残差图像,也就是预测噪声,最终结果就是噪声图像去掉噪声。
  2. DnCNN是端到端预测,既可以在灰度图上使用也可以在彩色图像上使用
  3. DnCNN既可以固定噪声水平,也可能在指定噪声水平范围内盲去噪
  4. DnCNN是3个低级视觉任务的通用模型(但是,如果你先学习的超分再来看本篇文章,你会知道BN是影响超分性能的。表V也印证了这一点,DnCNN在超分的测试集上与VDSR互有优劣,主要原因就是BN层。
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十小大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值