【图像去噪】论文精读:FFDNet: Toward a Fast and Flexible Solution for CNN based Image Denoising


前言

论文题目:FFDNet: Toward a Fast and Flexible Solution for CNN based Image Denoising —— FFDNet:迈向基于 CNN 的图像去噪的快速灵活解决方案

论文地址:FFDNet: Toward a Fast and Flexible Solution for CNN based Image Denoising

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

TIP 2018!DnCNN的改进算法!

Abstract

由于推理速度快、性能好,判别学习方法在图像去噪中得到了广泛的研究。然而,这些方法大多为每个噪声水平学习一个特定的模型,并且需要多个模型来去噪具有不同噪声水平的图像。他们还缺乏处理空间变异噪声的灵活性,限制了它们在实际去噪中的应用。为了解决这些问题,我们提出了一种快速灵活的去噪卷积神经网络,即FFDNet,其噪声水平图可调作为输入。所提出的FFDNet适用于下采样子图像,在推理速度和去噪性能之间取得了良好的平衡。与现有的判别降噪器相比,FFDNet 有几个理想的特性,包括 (i) 使用单个网络有效地处理广泛的噪声水平(即 [0, 75])的能力,(ii) 通过指定非均匀噪声水平图来消除空间变化的噪声的能力,以及 (iii) 即使在 CPU 上也比基准 BM3D 更快的速度,而不会牺牲去噪性能。与最先进的去噪器相比,对合成和真实噪声图像进行了广泛的实验,以评估FFDNet。结果表明,FFDNet是有效的和高效的,这使得它在实际应用中具有很大的吸引力。

摘要总览:FFDNet的噪声水平可以在[0,75]内任意指定;不需要指定噪声水平训练多个模型,只训练一个就行;使用noise level map来解决噪声;速度和性能平衡。

明确目标:noise level map是如何实现的?如何实现输入任意noise level,只用一个模型搞定?

I. INTRODUCTION

图像去噪在低级视觉中的重要性可以从许多方面揭示出来。首先,图像传感过程中不可避免地会出现噪声破坏,可能会严重降低获取图像的视觉质量。从观察到的图像中去除噪声是各种图像处理和计算机视觉任务[1]、[2]的关键步骤。其次,从贝叶斯的角度来看,图像去噪是评价图像先验模型和优化方法[3]、[4]、[5]的理想测试平台。最后但并非最不重要的一点是,在通过变量分裂技术展开推理中,可以通过依次求解一系列去噪子问题来解决许多图像恢复问题,进一步拓宽了图像去噪[6]、[7]、[8]、[9]的应用领域。

与以往许多图像去噪文献[10]、[11]、[12]、[13]一样,本文假设噪声为给出了加性高斯白噪声(additive white Gaussian noise,AWGN)和并且噪声水平已给出。为了处理实际的图像去噪问题,灵活的图像去噪器有望具有以下理想的特性:(i)它能够使用单个模型进行去噪;(ii)高效、有效、用户友好的;(iii)它可以处理空间变化的噪声。当噪声水平已知或可以很好地估计时,可以直接部署这种降噪器来恢复干净的图像。当噪声水平未知或难以估计时,降噪器应该允许用户自适应地控制降噪和细节保留之间的权衡。此外,噪声可以是空间变化的,去噪器应该足够灵活以处理空间变化的噪声。

然而,最先进的图像去噪方法在灵活性和效率方面仍然有限。一般来说,图像去噪方法可以分为两大类,基于模型的方法和基于判别学习的方法。BM3D [11] 和 WNNM [5] 等基于模型的方法在处理具有各种噪声水平的去噪问题时非常灵活,但它们存在几个缺点。例如,他们的优化算法通常是耗时的,不能直接用于去除空间变化的噪声。此外,基于模型的方法通常采用手工制作的图像先验(如稀疏性[14]、[15]和非局部自相似性[12],[13],[16]),可能不足以描述复杂的图像结构。

作为替代方案,判别去噪方法旨在从退化和真实图像对的训练集中学习底层图像先验和快速推理。一种方法是在截断推理过程[17]的背景下学习阶段图像先验。另一种更流行的方法是简单的判别学习,例如基于 MLP [18] 和基于卷积神经网络 (CNN) 的方法 [19]、[20],其中 DnCNN [20] 方法实现了非常有竞争力的去噪性能。CNN对图像去噪的成功归功于其建模能力大、网络训练与设计的巨大进步。然而,现有的判别去噪方法的灵活性有限,学习模型通常是针对特定噪声水平量身定制的。从回归的角度来看,他们旨在学习输入噪声观测 y 和期望输出 x 之间的映射函数 x = F(y; Θσ )。模型参数 Θσ 是针对具有固定噪声水平 σ 的 AWGN 损坏的噪声图像进行训练的,而 Θσ 训练的模型很难直接部署到其他噪声水平的图像。虽然在[20]中训练单个CNN模型(即DnCNN-B)进行高斯去噪,但它不能很好地推广到真实的噪声图像,只工作如果噪声水平处于预设范围内,例如 [0, 55]。此外,所有现有的基于判别学习的方法都缺乏处理空间变异噪声的灵活性。

为了克服现有的基于CNN的去噪方法的缺点,我们提出了一种快速灵活的去噪卷积神经网络(FFDNet)。具体来说,我们的FFDNet被表述为x = F(y, M;Θ),其中M是一个噪声水平图。在DnCNN模型x = F(y;Θσ)中,参数Θσvary随噪声水平σ的变化,而在FFDNet模型中,噪声水平图被建模为输入,模型参数Θ对噪声水平是不变的。因此,FFDNet提供了一种灵活的方法来处理单个网络的不同噪声水平。

通过引入噪声水平图作为输入,很自然地期望当噪声水平图与噪声输入的真实映射匹配时,该模型表现良好。此外,噪声水平图也应该起到控制降噪和细节保留之间的权衡的作用。我们发现,当设置更大的噪声水平以平滑细节时,可能会产生严重的视觉质量退化。我们强调这个问题,并采用卷积滤波器上的正交初始化方法来缓解这个问题。此外,所提出的FFDNet工作在下采样子图像上,大大加快了训练和测试速度,扩大了接受域。

使用AWGN损坏的图像,我们将FFDNet与最先进的去噪方法进行定量比较,包括基于模型的方法,如BM3D[11]和WNNM[5],以及基于判别学习的方法,如TNRD[17]和DnCNN[20]。结果清楚地表明FFDNet在去噪性能和计算效率方面的优越性。此外,FFDNet在空间变异AWGN破坏的图像上表现良好。我们进一步在真实世界的噪声图像上评估FFDNet,其中噪声通常是信号相关的、非高斯的和空间变体。所提出的FFDNet模型通过设置适当的噪声水平图仍然获得了感知上令人信服的结果。总体而言,FFDNet在实际应用中具有很高的潜力。

我们工作的主要贡献如下:
• 提出了一种快速灵活的去噪网络,即FFDNet,用于判别图像去噪。通过将可调的噪声水平图作为输入,单个FFDNet能够处理不同层次的噪声,以及空间变化的噪声。
• 我们强调了保证噪声水平图在控制降噪和细节保存之间的权衡方面的作用的重要性。
• FFDNet在AWGN和真实世界噪声图像损坏的合成噪声图像上都表现出感知上吸引人的结果,证明了它在实际图像去噪方面的潜力。

本文的其余部分安排如下。第II节回顾了现有的判别去噪方法。第III节介绍了所提出的图像去噪模型。第IV节报告了实验结果。第 V 节总结了本文。

介绍:介绍了一些工作,主要分析DnCNN的问。首先,DnCNN-S指定噪声范围需要训练多个模型,DnCNN-B虽然指定噪声范围,但是对于真实世界的图像去噪表现不好。基于此问题提出FFDNet,提出创新贡献,以noise level map作为输入,处理各种噪声。可见,FFDNet对于DnCNN没有网络模型上的变化,可能只有输入和重建不同。我们继续带着问题往下读。

II. RELATED WORK

在本节中,我们简要回顾了和讨论这项工作的两大类相关方法,即最大后验 (MAP) 推理引导判别学习和普通判别学习。

A. MAP Inference Guided Discriminative Learning

这类方法不是首先学习先验,然后执行推理,而是通过最小化损失函数[21]来学习先验参数以及紧凑的展开推理。继专家[3]领域的先驱工作之后,Barbu[21]训练了一个判别马尔可夫随机场(MRF)模型和一个梯度下降推理进行图像去噪。Samuel 和 Tappen [22] 独立提出了一个紧凑的梯度下降推理学习框架,并讨论了判别学习相对于具有 MRF 先验的基于模型的优化方法的优势。Sun 和 Tappen [23] 提出了一种新颖的非局部范围 MRF (NLR-MRF) 框架,并采用基于梯度的判别学习方法来训练模型。一般来说,上述方法只以判别的方式学习先验参数,而推理参数是阶段不变的。

在展开的半二次分裂(HQS)技术的帮助下,Schmidt等人[24],[25]提出了一种级联收缩场(CSF)框架来学习阶段推理参数。Chen等人[17]通过对紧凑的梯度下降推理步骤的判别学习,进一步提出了一种可训练的非线性反应扩散(TNRD)模型。最近,Lefkimmiatis [26] 和 Qiao 等人。 [27] 从变分模型中采用了基于近端梯度的去噪推理来合并非局部自相似性先验。值得注意的是,除了MAP推理外,Vemulapalli等人。[28]提出了一种基于高斯条件随机场(GCRF)推理的端到端可训练基于补丁的去噪网络。

MAP推理引导的判别学习通常需要更少的推理步骤,并且在图像去噪方面非常有效。它还具有明确的可解释性,因为判别架构源自优化算法,例如 HQS 和梯度下降 [17]、[21]、[22]、[23]、[24]。然而,学习到的先验和推理过程受到 MAP 模型 [25] 的形式的限制,并且通常优于最先进的基于 CNN 的降噪器。例如,CSF [24] 的推理不是很灵活,因为它严格源自专家领域 (FoE) 框架下的 HQS 优化。然而,FoE 的容量不足以完全表征图像先验,这反过来又使 CSF 不太有效。由于这些原因,Kruse 等人。 [29] 通过将展开推理的一些模块化部分替换为更强大的 CNN,将 CSF 推广到更好的性能。

B. Plain Discriminative Learning

普通的判别学习方法不是显式地建模图像先验,而是学习直接映射函数来隐式建模图像先验。多层感知器(MLP) 和 CNN 已被用于学习此类先验。CNN用于图像去噪的使用可以追溯到[19],其中提出了一种具有sigmoid非线性的五层网络。随后,基于自动编码器的方法被提出用于图像去噪[30],[31]。然而,早期的基于 MLP 和 CNN 的方法在去噪性能方面受到限制,无法与基准 BM3D 方法竞争 [11]。

第一个与BM3D相当的性能判别去噪方法是Burger等人提出的普通MLP方法。[18]。得益于深度CNN的进步,Zhang等人[20]提出了一种普通的去噪CNN (DnCNN)方法,该方法实现了最先进的去噪性能。他们表明,残差学习和批量归一化 [32] 对去噪的成功特别有用。为了更好地权衡精度和速度,Zhang等人[9]引入了一种带有扩展卷积[33]的7层去噪网络来扩展CNN的接受域。毛等人。 [34] 提出了一种非常深的全卷积编码解码网络,具有对称跳跃连接用于图像去噪。Santhanam等人[35]开发了一种递归分支反卷积网络(RBDN),用于图像去噪和通用的图像到图像回归。Tai等人[36]提出了一种非常深入的持久记忆网络(MemNet),通过引入一个记忆块,通过自适应学习过程挖掘持久记忆。

普通判别学习表现出比 MAP 推理引导判别学习更好的性能;然而,现有的判别学习方法必须学习多个模型来处理具有不同噪声水平的图像,并且无法处理空间变化的噪声。据我们所知,开发一个单一的判别去噪模型仍然是一个悬而未决的问题,该模型可以处理不同级别的噪声,甚至是空间变化的噪声,速度甚至比 BM3D 更快。

相关工作:从判别模型的角度阐述相关工作。

III. PROPOSED FAST AND FLEXIBLE DISCRIMINATIVECNN DENOISER

我们提出了一个单一的判别CNN模型,即FFDNet,以实现以下三个目标:
• 快速速度:去噪器有望在不牺牲去噪性能的情况下高效。
• 灵活性:去噪器能够处理具有不同噪声水平的图像,甚至空间变化的噪声。
• 鲁棒性:去噪器在控制降噪和细节保存之间的权衡时不应该引入视觉伪影。

在这项工作中,我们以可调噪声水平图 M 作为输入,使去噪模型可以灵活地适应噪声水平。为了提高去噪器的效率,引入可逆下采样算子将大小为W×H×C的输入图像重塑为大小为W/2×H/2×4C的四个下采样子图像。这里C是通道数,即灰度图像C = 1,彩色图像C = 3。为了使噪声水平图能够通过不引入视觉伪影来稳健地控制降噪和细节保留之间的权衡,我们对卷积滤波器采用正交初始化方法。

本文工作总览:M是noise level map,使用下采样将输入图像一分四,大小为原来一半。卷积滤波使用正交初始化参数。(Conv使用nn.init.orthogonal,与DnCNN的源码一致。)

A. Network Architecture

在这里插入图片描述
图1说明了FFDNet的体系结构。第一层是一个可逆下采样算子,它将噪声图像y重塑为四个下采样子图像。我们进一步将可调噪声水平图 M 与下采样子图像连接起来,形成一个大小为 W/2 × H/2 × (4C + 1) 的张量 ̃y 作为 CNN 的输入。对于噪声水平为σ的空间不变AWGN,M是一个均匀映射,所有元素均为σ。

将张量 ̃y 作为输入,以下 CNN 由一系列 3 × 3 卷积层组成。每一层由三种类型的操作组成:卷积(Conv)、整流线性单元(ReLU)[37]和批处理归一化(BN)[32]。更具体地说,第一个卷积层采用“Conv+ReLU”,中间层采用“Conv+BN+ReLU”,最后一个卷积层采用“Conv”。零填充用于在每次卷积后保持特征图的大小不变。在最后一个卷积层之后,将放大操作作为输入阶段应用的下采样算子的反向算子,生成大小为W × H × C的估计干净图像ˆx。与DnCNN不同的是,FFDNet不预测噪声。原因在第III-F节中给出。由于FFDNet对下采样的子图像进行操作,因此不需要使用扩展卷积[33]来进一步提高接收野。

通过考虑复杂性和性能的平衡,我们根据经验将灰度图像的卷积层数设置为 15,彩色图像设置为 12。至于特征图的通道,我们为灰度图像设置 64,彩色图像设置为 96。我们对灰度图像和彩色图像使用不同的设置的原因是双重的。首先,由于 R、G、B 通道之间存在 4 个高依赖关系,因此使用较少数量的卷积层鼓励模型利用通道间的依赖关系。其次,彩色图像有更多的通道作为输入,因此需要更多的特征(即更多的特征图通道)。根据我们的实验结果,增加特征图的数量对彩色图像的去噪性能贡献更大。使用不同的彩色图像设置,FFDNet 可以在不同的噪声水平上通过 PSNR 带来 0.15dB 的平均增益。正如我们将在Sec. IV-F中看到的那样,用于彩色图像的12层FFDNet在灰度图像上运行略慢于15层FFDNet。考虑到去噪性能和效率,我们将卷积层数设置为 12,特征图数设置为 96,用于彩色图像去噪。

FFDNet网络结构:

  • 输入为带噪声图像
  • 将输入下采样成4个子图,它和一个noise level map共同作为网络输入
  • 中间非线性映射网络与DnCNN相同
  • 网络输出得到四个去噪后的子图
  • 最终放大得到去噪后的图像
  • FFDNet不预测噪声了,直接预测去噪后的图像
  • 对于灰度图,卷积层数为15,feature map数为64
  • 对于彩色图,卷积层数为12,feature map数为96(彩色图特征更多,需要的特征通道数更多,这符合基本认知,其他任务也是如此。

B. Noise Level Map

让我们先回顾一下基于模型的图像去噪方法来分析它们在处理不同层次的噪声方面的灵活性,这反过来将有助于我们提高基于cnn的去噪器的灵活性。大多数基于模型的去噪方法旨在解决以下问题
x ^ = arg ⁡ min ⁡ x 1 2 σ 2 ∥ y − x ∥ 2 + λ Φ ( x ) , (1) \hat{\boldsymbol{x}}=\arg \min _{\boldsymbol{x}} \frac{1}{2 \sigma^{2}}\|\boldsymbol{y}-\boldsymbol{x}\|^{2}+\lambda \boldsymbol{\Phi}(\boldsymbol{x}),\tag{1} x^=argxmin2σ21yx2+λΦ(x),(1)
其中 1/2σ^2 ‖y − x‖2 是噪声水平 σ 的数据保真项,Φ(x) 是与图像先验相关的正则化项,λ 控制数据保真度和正则化项之间的平衡。值得注意的是,在实践中 λ 控制 降噪和细节保留之间的平衡。当太小时,会留下很多噪音;相反,细节将随着抑制噪声而平滑。

通过一些优化算法,Eqn(1) 的解实际上定义了一个由下式给出的隐函数
x ^ = F ( y , σ , λ ; Θ ) (2) \hat{\boldsymbol{x}}=\mathcal{F}(\boldsymbol{y}, \sigma, \lambda ; \Theta)\tag{2} x^=F(y,σ,λ;Θ)(2)
由于 λ 可以被吸收到 σ 中,Eqn(2) 可以改写为
x ^ = F ( y , σ ; Θ ) (3) \hat{\boldsymbol{x}}=\mathcal{F}(\boldsymbol{y}, \sigma ; \Theta)\tag{3} x^=F(y,σ;Θ)(3)
从这个意义上说,设置噪声水平 σ 也起到了设置 λ 来控制降噪和细节保留之间的权衡的作用。总之,基于模型的方法可以灵活地通过简单地在Eqn(3)中指定σ来处理具有各种噪声水平的图像。

根据上述讨论,很自然地利用 CNN 来学习 Eqn(3)的显式映射。将噪声图像和噪声水平图作为输入。然而,由于 输入的 y 和 σ 具有不同的维度,因此将它们直接输入到 CNN 中并不容易。受基于补丁的去噪方法的启发,该方法实际上为每个补丁设置 σ,我们通过将噪声水平 σ 拉伸到噪声水平图 M 来解决维度不匹配问题。在 M 中,所有元素都是 σ。因此,Eqn(3)可以进一步改写为
x ^ = F ( y , M ; Θ ) (4) \hat{\boldsymbol{x}}=\mathcal{F}(\boldsymbol{y}, \boldsymbol{M} ; \Theta)\tag{4} x^=F(y,M;Θ)(4)
值得强调的是,M可以扩展到具有多个通道的退化图,用于更一般的噪声模型,例如RGB颜色空间[38]中具有零均值和协方差矩阵Σ的多元(3D)高斯噪声模型N(0,Σ)。因此,单个 CNN 模型有望继承处理具有不同参数的噪声模型的灵活性,即使是通过注意到 M 的空间变异噪声也可能不均匀。

Noise Level Map:noise level map是M,M是由噪声水平 σ 拉伸而来,M中每个元素都是σ, σ是每个patch的噪声水平。M应该是输入的一半,与子图大小相同。

C. Denoising on Sub-images

效率是实际基于 CNN 的去噪的另一个关键问题。一个简单的想法是减少过滤器的深度和数量。然而,这种策略会牺牲 CNN [20] 的建模能力和感受野。在[9]中,引入扩展卷积在不增加网络深度的情况下扩展接受域,得到7层去噪CNN。不幸的是,我们凭经验发现具有扩张卷积的 FFDNet 倾向于在锐利的边缘周围生成伪影。

Shi等人[39]提出直接从低分辨率图像中提取深度特征进行超分辨率,并引入亚像素卷积层来提高计算效率。在图像去噪的应用中,我们引入了一个可逆下采样层,将输入图像重塑为一组小的子图像。这里下采样因子设置为 2,因为它可以在不降低建模能力的情况下大大提高速度。CNN部署在子图像上,最后采用亚像素卷积层对下采样过程进行反转。

对下采样子图像进行去噪也可以有效地扩展接受域,进而导致网络深度适中。例如,深度为 15 和 3 × 3 卷积的建议网络将具有较大的感受野 62 × 62。相比之下,普通的 15 层 CNN 的感受野大小为 31×31。我们注意到,大多数最先进的去噪方法的感受野范围从 35 × 35 到 61 × 61 [20]。感受野的进一步增加实际上在提高去噪性能方面几乎没有好处[40]。更重要的是,子采样和亚像素卷积的引入可以有效地减少内存负担。

通过实验验证了下采样在σ = 15和50的BSD68数据集上平衡去噪精度和效率的有效性。对于灰度图像去噪,我们训练了一个与FFDNet深度相同的基线CNN,而不进行下采样。平均PSNR值的比较如下:(i)当σ较小时(即15),基线CNN略优于FFDNet 0.02dB;(ii)当σ较大时(即50),FFDNet比基线CNN好0.09dB。然而,FFDNet 的速度几乎是基线 CNN 的 3 倍,并且对内存更友好。因此,通过对子图像进行去噪,FFDNet在保持去噪性能的同时显著提高了效率。

下采样:2倍下采样后送入网络,不影响性能又提升效率。还是从超分中借鉴的想法,而且这样做感受野适中。

D. Examining the Role of Noise Level Map

在这里插入图片描述
通过使用丰富的数据单元 (y, M; x) 训练模型,其中 M 是 y 的噪声水平图,当噪声水平与基本事实匹配时,模型预计会表现良好(见图 2(a))。另一方面,在实践中,我们可能需要使用学习的模型来平滑一些噪声水平图比地面真实图更高的细节(见图2(b))。换句话说,可以利用 λ 的作用来控制降噪和细节保留之间的权衡。因此,有必要进一步检查 M 是否可以发挥 λ 的作用。

不幸的是,同时使用 M 和 y 作为输入也增加了训练模型的难度。根据我们对几个学习模型的实验,该模型可能会产生视觉伪影,尤其是当输入噪声水平远高于真实噪声水平时(见图 2©),这表明 M 无法控制降噪和细节保留之间的权衡。请注意,这并不意味着所有模型都存在此类问题。避免这种情况的一种可能的解决方案是正则化卷积滤波器。正交正则化作为一种广泛使用的正则化方法,已被证明在消除卷积滤波器之间的相关性方面是有效的,促进梯度传播并提高学习模型的紧凑性。此外,最近的研究已经证明了正交正则化在提高深度哈希和图像分类[41],[42],[43],[44],[45]应用中的网络泛化能力方面的优势。根据我们的实验,我们凭经验发现卷积滤波器 [43]、[46] 的正交初始化在抑制上述视觉伪影方面效果很好。

值得注意的是,本节旨在强调保证 M 在控制降噪和细节保留之间的权衡方面的必要性,而不是提出一种避免噪声水平不匹配引起的可能视觉伪影的方法。在实践中,人们可以重新训练模型,直到 M 发挥其作用并导致没有具有滞后噪声水平的视觉伪影。

M的重要性:输入噪声与实际噪声不匹配的时候,没有M控制的话,降噪和细节效果很难平衡。M对于噪声水平不匹配的情况很重要。

E. FFDNet vs. a Single Blind Model

到目前为止,我们知道可以分别学习用于盲和非盲高斯去噪的单个模型。澄清它们的差异具有重要意义。

首先,泛化能力不同。虽然盲模型在不知道噪声水平的情况下对合成AWGN去除具有较好的性能,但它不能很好地推广到噪声比AWGN更复杂的真实噪声图像(见图8中DnCNN-B的结果)。实际上,由于 CNN 模型可以被视为 Eqn(1) 的推理。数据保真项对应于退化过程(或噪声模型),退化过程的建模精度对于去噪模型的成功非常重要。例如,针对AWGN去除训练的模型预计仍然对泊松噪声去除有效。相比之下,非盲FFDNet模型可以被视为多个去噪器,每个去噪器都锚定在噪声水平上。因此,它能够控制噪声去除和细节保存之间的权衡,进而在一定程度上有助于去除真实噪声(见图8中DnCNN和FFDNet的结果)。

其次,AWGN去除的性能不同。与盲模型相比,具有噪声水平图的非盲模型在AWGN去除方面的性能略好(BSD68数据集平均增益约0.1dB),这可能是因为噪声水平图为输入提供了额外的信息。在单幅图像超分辨率(SISR)[47]任务中也发现了类似的现象。

第三,应用范围不同。在一般图像恢复任务的变量分裂算法中,先验项涉及具有当前噪声水平[6]、[7]、[8]的去噪子问题。因此,非盲模型可以很容易地插入到变量分割算法中,以解决各种图像恢复任务,如图像去模糊、SISR和图像修复[9]、[48]。但是,盲模型没有这个优点。

FFDNet与单图盲去噪模型对比:非盲模型(FFDNet)的泛化能力、噪声去除能力、应用范围都由于盲模型。

F. Residual vs. Non-residual Learning of Plain CNN

有人指出,对于普通CNN和批处理归一化,残差学习的集成有利于去除AWGN,因为它简化了训练,并倾向于提供更好的性能[20]。主要原因是残差(噪声)输出服从高斯分布,有利于批处理归一化的高斯归一化步骤。去噪网络从这样一个特定于任务的优点中获益最多,尤其是在考虑单个噪声水平时。

在FFDNet中,我们考虑广泛的噪声水平,并引入噪声水平图作为输入。因此,重新审视普通 CNN 的残差学习和批量归一化的集成是很有趣的。根据我们的实验,无论普通 CNN 的残差或非残差学习策略如何,批量归一化总是可以加速去噪网络的训练。特别是,通过批量归一化,虽然残差学习比非残差学习具有更快的收敛速度,但它们在微调后的最终性能几乎相同。最近的一些工作建议训练非常深的普通网络,其性能与残差学习[44],[49]几乎相同。事实上,当网络适度深(例如,小于 20)时,通过使用先进的 CNN 训练和设计技术(如 ReLU [37]、批量归一化 [32] 和 Adam [50])来训练没有残差学习策略的普通网络是可行的。为简单起见,我们不使用残差学习进行网络设计。

不一定用残差学习。

G. Un-clipping vs. Clipping of Noisy Images for Training

在AWGN去噪文献中,合成噪声图像存在两个广泛使用的设置,即未裁剪[5]、[11]、[17]、[18]和裁剪[24]、[28]来评估去噪方法的性能。两种设置的主要区别在于,在添加噪声后,噪声图像是否被裁剪到0-255的范围内(或者更准确地说,量化为8位格式)。

一方面,也是最广泛使用的设置的非裁剪设置是评估去噪方法的理想测试平台。这是因为大多数去噪方法都假设噪声是理想的AWGN,噪声输入的裁剪会使噪声特征偏离AWGN。此外,在求解一般图像恢复问题的变量分裂算法中,存在一个子问题,从贝叶斯的角度来看,对应于一个高斯去噪问题[9]、[48]。这进一步扩大了取消裁剪设置的使用。因此,除非另有说明,本工作中的FFDNet指的是在没有裁剪或量化的图像上训练的模型。

另一方面,由于真实的噪声图像总是整数值和范围有限的,有人认为噪声图像的裁剪设置使数据更加真实[24]。然而,当噪声水平较高时,由于剪切效应[51],噪声不会更零均值。这反过来又会导致不可靠的去噪器插入变量分割算法来解决其他图像恢复问题。为了彻底评估所提出的方法,我们还训练了一个带有噪声图像裁剪设置的FFDNet模型,即FFDNet-Clip进行比较。在FFDNet-Clip的训练和测试过程中,噪声图像被量化为8位格式。具体来说,对于干净的图像 x,我们使用matlab 函数 imnoise 生成具有噪声水平 σ 的量化噪声 y。

是否clip:不clip满足高斯分布,clip更真实。后面看看作者的实验结果吧。

IV. EXPERIMENTS

A. Dataset Generation and Network Training

为了训练FFDNet模型,我们需要准备输入输出对{(yi, Mi;xi)}N i=1的训练数据集。在这里,yi是通过在潜像xi中加入AWGN得到的,Mi是噪声水平图。使用AWGN生成训练数据集的原因是两方面的。首先,当噪声源没有关于特定先验信息时,AWGN 是一种自然选择。其次,真实世界的噪声可以近似为局部AWGN[52]。更具体地说,FFDNet 模型在噪声图像 yi = xi + vi 上进行训练,无需量化到 8 位整数值。虽然真实的噪声图像通常是8位量化的,但我们凭经验发现学习模型仍然有效地适用于真实的噪声图像。对于FFDNet-Clip,如在第III-G节中提到,我们使用matlab函数噪声从干净的噪声图像中生成量化的噪声图像。

我们收集了大量源图像数据集,包括 400 个 BSD 图像、从 ImageNet [53] 的验证集中选择的 400 张图像和来自滑铁卢探索数据库 [54] 的 4,744 张图像。在每个 epoch 中,我们从这些图像中随机抽取 N = 128 × 8, 000 个补丁进行训练。补丁大小应该大于FFDNet的接受域,我们分别将其设置为灰度图像和彩色图像的70×70和50×50。通过将噪声水平σ∈[0,75]的AWGN添加到干净的补丁中来获得噪声补丁。对于每个噪声补丁,噪声水平图是均匀的。由于FFDNet是一个完全卷积的神经网络,它继承了输出像素由局部噪声输入和局部噪声水平决定的局部连通性属性。因此,经过训练的FFDNet自然具有通过指定非均匀噪声水平图来处理空间变化的噪声的能力。为清楚起见,在表 I 中,我们列出了 FFDNet 模型的主要规范。在这里插入图片描述
采用ADAM算法[50]通过最小化以下损失函数来优化FFDNet,
L ( Θ ) = 1 2 N ∑ i = 1 N ∥ F ( y i , M i ; Θ ) − x i ∥ 2 (5) \mathcal{L}(\Theta)=\frac{1}{2 N} \sum_{i=1}^{N}\left\|\mathcal{F}\left(\boldsymbol{y}_{i}, \boldsymbol{M}_{i} ; \Theta\right)-\boldsymbol{x}_{i}\right\|^{2}\tag{5} L(Θ)=2N1i=1NF(yi,Mi;Θ)xi2(5)

当训练误差停止减少时,学习率从10−3开始,降低到10−4。当训练误差在五个顺序 epoch 中保持不变时,我们将每个批量归一化的参数合并到相邻的卷积滤波器中。然后,额外的 50 个 epoch 采用较小的 10-6 学习率来微调 FFDNet 模型。至于 ADAM 的其他超参数,我们使用它们的默认设置。小批量大小设置为 128,训练期间还采用了基于旋转和翻转的数据增强。FFDNet模型在Matlab (R2015b)环境中使用MatConvNet包[55]和Nvidia Titan X Pascal GPU进行训练。单个模型的训练可以在大约两天的时间内完成。

为了评估所提出的FFDNet去噪器在灰度图像去噪中的应用,我们使用BSD68[3]和Set12数据集来测试FFDNet去除AWGN噪声,并使用“RNI6”数据集[56]来测试FFDNet去除真实噪声。BSD68数据集由来自 BSD300 数据集 [57] 的单独测试集的 68 张图像组成。Set12 数据集是广泛使用的测试图像的集合。RNI6数据集包含6张没有地面真相的真实噪声图像。特别是,为了评估FFDNet-Clip,我们使用量化的“Clip300”数据集,该数据集包含来自BSD300数据集[57]的100张图像和来自PASCALVOC 2012[58]数据集的200张图像。请注意,所有测试图像都不包含在训练数据集中。

至于彩色图像去噪,我们采用了四个数据集,即CBSD68、Kodak24[59]、McMaster[60]和“RNI15”[56]、[61]。CBSD68 数据集是灰度 BSD68 数据集的相应颜色版本。Kodak24数据集由来自原始柯达数据集的 24 张大小为 500×500 的中心裁剪图像组成。McMaster 数据集是一个广泛使用的彩色去马赛克数据集,包含 18 张大小为 500×500 的裁剪图像。与柯达24 图像相比,McMaster 数据集中的图像表现出更饱和的颜色 [60]。RNI15数据集由15张真实的噪声图像组成。我们注意到RNI6和RNI15涵盖了各种真实的噪声类型,如相机噪声和JPEG压缩噪声。由于真实噪声图像无法获得地面真实干净图像,因此我们只对这些图像提供视觉比较。FFDNet的源代码及其对多元高斯噪声的扩展可在 https://github.com/cszn/FFDNet 获得。

数据和网络参数提炼总结:

  • 表1展示了灰度和彩色图像的网络层数、通道数、噪声水平范围、patch_size
  • 训练集:BSD400,ImageNet400,Waterloo Exploration Database(4744)
  • 块数:从上述训练集中随机裁剪128 × 8000
  • 优化器:ADAM
  • 损失函数:与DnCNN形式相同,但是FFDNet是预测去噪后图像,而DnCNN是噪声
  • 学习率:初始1e-3,训练误差不变后降到1e-4,每5个epoch训练误差不变,将BN参数合并到相邻Conv中;额外用50个epoch,1e-6学习率来微调FFDNet
  • batch_size:128
  • 数据增强:旋转和翻转
  • 测试集:BSD68和Set12测试高斯噪声,RNI6测试真实噪声;Clip300(BSD300+200张 PASCALVOC 2012)测试FFDNet-Clip;CBSD68, Kodak24 [59], McMaster [60], "RNI15"测试彩色模型

B. Experiments on AWGN Removal

在本小节中,我们在空间不变AWGN破坏的噪声图像上测试FFDNet。对于灰度图像去噪,我们主要将FFDNet与最先进的BM3D[11]、WNNM[5]、MLP[18]、TNRD[17]和DnCNN[20]方法进行了比较。请注意,BM3D 和 WNNM 是基于非局部自相似性先验的两种具有代表性的基于模型的方法,而 TNRD、MLP 和 DnCNN 是基于判别学习的方法。表 II 和表 III 分别报告了 BSD68 和 Set12 数据集上的 PSNR 结果。我们还使用两种基于 CNN 的去噪方法,即 RED30 [34] 和 MemNet [36] 进行进一步比较。它们在噪声水平为 50 的 BSD68 数据集上的 PSNR 结果分别为 26.34dB 和 26.35dB。请注意,RED30 和 MemNet 在特定噪声水平上进行训练,并且比 DnCNN 效率较低。从表 II 和表 III 中,可以有以下观察结果。在这里插入图片描述
在这里插入图片描述
首先,FFDNet在很大程度上超过了BM3D,在BSD68上的大范围噪声水平下,优于WNNM、MLP和TNRD约0.2dB。其次,当噪声水平较低时(如σ≤25),FFDNet略逊于DnCNN,但随着噪声水平的增加(如σ > 25)逐渐优于DnCNN。这种现象可能是由于感受野大小和建模能力之间的权衡造成的。FFDNet的感受野比DnCNN大,有利于去除强噪声,(a) CBM3D (25.49dB) (b) CDnCNN (26.19dB) © FFDNet (26.28dB)图4。CBM3D、CDnCNN和FFDNet在噪声水平σ = 50上的彩色图像去噪结果。DnCNN具有更好的建模能力,有利于噪声水平较低的图像去噪。第三,FFDNet在“House”等图像上优于WNNM,而在图像“Barbara”上不如WNNM。这是因为“Barbara”具有丰富的重复结构,可以通过基于非局部自相似的WNNM方法有效地利用。不同方法的视觉比较如图3所示。总体而言,FFDNet产生了去噪图像的最佳感知质量。在这里插入图片描述
为了评估FFDNet-Clip,表IV显示了与Clip300数据集上的DCGRF[28]和RBDN[35]的PSNR比较。可以看出,匹配噪声水平的FFDNet-Clip比DCGRF和RBDN取得了更好的性能,表明FFDNet在裁剪设置下表现良好。我们还在具有裁剪设置的BSD68数据集上测试了FFDNet-Clip,发现PSNR结果与无裁剪设置的FFDNet结果相似。在这里插入图片描述
对于彩色图像去噪,我们将FFDNet与CBM3D[11]和CDnCNN[20]进行了比较。表 V 报告了不同方法在 CBSD68、Kodak24 和 McMaster 数据集上的性能,图 4 显示了视觉比较。可以看出,FFDNet在定量和定性评价方面在不同的噪声水平上始终优于CBM3D,并与CDnCNN具有竞争性的性能。在这里插入图片描述
在这里插入图片描述

C. Experiments on Spatially Variant AWGN Removal

然后,我们测试了FFDNet处理空间变异AWGN的灵活性。为了合成空间变化的AWGN,我们首先生成一个单位标准差的AWGN图像v1和相同大小的噪声水平映射M。然后,对v1和M进行元素相乘,得到空间变化的AWGN,即v = v1 M。在去噪阶段,我们以双线性下采样噪声水平图作为输入到FFDNet。由于噪声水平图在空间上是平滑的,因此使用下采样噪声水平图通常对最终去噪性能的影响非常小。

图 5 给出了一个例子来展示 FFDNet 在去除空间变化的 AWGN 方面的有效性。我们没有将FFDNet与其他方法进行比较,因为没有现成的AWGN去噪方法可以很容易地扩展到处理空间变化的AWGN。从图5可以看出,具有非均匀噪声水平图的FFDNet对于去除空间变化的AWGN是灵活和强大的。相比之下,具有均匀噪声水平图的FFDNet在平滑的情况下无法去除噪声水平较高的区域的强噪声在噪声水平较低的区域的细节。在这里插入图片描述

D. Experiments on Noise Level Sensitivity

在实际应用中,噪声电平图可能无法从噪声观测中准确估计,输入噪声电平与实际噪声水平之间的不匹配是不可避免的。如果输入噪声水平低于真实噪声水平,则不能完全去除噪声。因此,用户通常更喜欢设置更高的噪声水平来去除更多的噪声。然而,这也可能会消除一些图像细节和噪声。实际降噪器应容忍噪声水平的某些不匹配。在本小节中,我们通过为给定的地面真实噪声水平改变不同的输入噪声水平来评估FFDNet与基准BM3D和DnCNN的比较。
在这里插入图片描述
在这里插入图片描述

图6为BM3D、DnCNN和FFDNet的噪声水平灵敏度曲线。不同输入噪声水平的不同方法(例如,“FFDNet-15”表示输入噪声水平固定为15的FFDNet)在噪声水平从0到50的BSD68图像上进行评估。图7显示了通过设置BM3D/CBM3D和FFDNet之间的视觉比较不同的输入噪声水平去噪噪声图像。选择四种典型的图像结构,包括平坦区域、锐利边缘、高对比度线和低对比度线,进行视觉比较,研究BM3D和FFDNet的噪声水平敏感性。从图 6 和图 7 中,我们有以下观察结果。

  • 在所有噪声水平上,FFDNet当输入噪声水平相同时,与BM3D和DnCNN具有相似的去噪结果。
  • 在固定的输入噪声水平下,对于这三种方法,当地真噪声水平较低时,PSNR值趋于保持不变,当地真噪声水平较高时,PSNR值趋于下降。
  • 当输入噪声水平与地真噪声水平匹配时,可以获得最佳的视觉质量。BM3D 和 FFDNet 在较低的输入噪声水平下产生相似的视觉结果,而它们在更高的输入噪声水平下表现出一定的差异。它们都将平滑平坦区域的噪声,随着输入噪声水平的增加,逐渐平滑图像结构。特别是,FFDNet 可能会消除一些低对比度的线结构,而 BM3D 仍然可以保留平均补丁,而不管输入噪声水平由于其使用非局部信息。
  • 使用更高的输入噪声水平通常比使用更低的噪声水平产生更好的结果。此外,当输入噪声水平略高于真实噪声水平时,没有太多的视觉差异。

根据上述观察,FFDNet在平衡降噪和细节保存方面对BM3D和DnCNN具有相似的噪声水平敏感性性能。当地真噪声水平未知时,设置较大的输入噪声水平比较低的输入噪声水平更可取,以去除感知质量较好的噪声。

E. Experiments on Real Noisy Images

在本小节中,使用真实的噪声图像进一步评估FFDNet的实用性。然而,由于以下原因,这样的评估很难进行。(i)真实噪声图像的地面真实干净图像和噪声电平都是未知的。(ii) 真实噪声来自各种来源,例如相机成像管道(例如,散粒噪声、放大器噪声和量化噪声)、扫描、有损压缩和图像大小调整 [62]、[63],它通常是非高斯的、空间变化的和信号相关的。因此,许多去噪算法中的AWGN假设不成立,相关的噪声水平估计方法不适用于真实的噪声图像。

我们采用交互式策略来处理真实的噪声图像,而不是采用任何噪声水平估计方法。首先,我们凭经验发现,空间不变噪声的假设对于大多数真实的噪声图像通常效果很好。然后,我们使用一组典型的输入噪声水平来生成多个输出,并选择在降噪和细节保存之间具有最佳权衡的输出。其次,大多数真实图像中的空间变异噪声是信号相关的。在这种情况下,我们首先对几种不同颜色的典型区域进行采样。对于每个典型区域,我们应用不同的间隔为5的噪声水平,通过观察去噪结果选择最佳噪声水平。然后从典型区域的噪声水平插值其他区域的噪声水平,构成近似的非均匀噪声水平图。我们的FFDNet专注于非盲去噪,并假设噪声水平图是已知的。在实践中,可以采用一些先进的噪声水平估计方法[62]、[64]来辅助噪声水平图的估计。在下面的实验中,除非另有说明,否则我们假设真实噪声图像的空间不变噪声。

由于真实噪声图像没有地面真实图像,因此采用视觉比较来评价FFDNet的性能。我们选择 BM3D 进行比较,因为它被广泛认为是去噪应用的基准。给定一个噪声图像,BM3D和FFDNet使用相同的输入噪声水平。另一种基于 CNN 的去噪方法 DnCNN 和盲去噪方法 Noise Clinic [56] 也用于比较。请注意,除了特定噪声水平的非盲DnCNN模型外,在[0,55]噪声水平范围内训练的盲DnCNN模型(即DnCNN-B)也被用于灰度图像去噪。对于彩色图像去噪,采用盲CDnCNN-B进行比较。

图8比较了噪声临床、BM3D、DnCNN、DnCNN-B和FFDNet在RNI6图像上的灰度图像去噪结果。可以看出,Noise Clinic 减少了很多噪声,但它也产生了许多算法诱导的伪影。BM3D、DnCNN 和 FFDNet 产生了视觉上更令人愉悦的结果。虽然非盲DnCNN模型表现良好,但盲DnCNN-B模型在去除非AWGN真实噪声方面表现不佳。这种现象清楚地表明,非盲模型相对于盲模型具有更好的泛化能力,以控制噪声去除和细节保留之间的权衡。值得注意的是,对于包含结构化噪声的图像“构建”,Noise Clinic 和 BM3D 无法去除这些结构化噪声,因为结构化噪声符合 Noise Clinic 和 BM3D 中采用的非局部自相似性先验。相比之下,FFDNet和DnCNN在不丢失底层图像纹理的情况下成功地去除了这种噪声。在这里插入图片描述
图9显示了噪声临床、CBM3D、CDnCNN-B和FFDNet在RNI15的五个彩色噪声图像上的去噪结果。可以看出,CDnCNN-B对图像“Frog”等AWGN噪声图像产生了非常令人满意的结果,仍然无法处理非AWGN噪声。值得注意的是,从“Boy”的去噪结果中,可以看出CBM3D仍然是未去除的结构化颜色噪声,而FFDNet则成功地去除了这种噪声。我们可以得出结论,虽然非局部自相似性先验有助于去除随机噪声,但它阻碍了结构化噪声的去除。相比之下,CNN 隐式学习的先验能够去除随机噪声和结构化噪声。在这里插入图片描述
图10进一步显示了FFDNet对RNI15其他9张图像的更多视觉结果。可以看出,FFDNet可以处理各种噪声,如JPEG有损压缩噪声(见图像“Audrey Hepburn”)和视频噪声(见图像“电影”)。在这里插入图片描述

图11显示了一个更具挑战性的示例,以证明FFDNet对具有空间变异噪声的噪声图像进行去噪的优势。我们选择五个典型区域来估计噪声水平,包括两个背景区域、咖啡区域、牛奶泡沫区域和镜面反射区域。在我们的实验中,我们手动和交互地为牛奶泡沫和镜面反射区域设置σ = 10,对于噪声高(即绿色区域)的背景区域,σ= 35,其他区域的σ = 25。然后,我们根据估计的五个噪声水平插值整个图像的非均匀噪声水平图。可以看出,虽然具有较小均匀输入噪声水平的FFDNet可以恢复噪声水平较低的区域的细节,但它无法去除强噪声。另一方面,具有大均匀输入噪声水平的FFDNet可以消除强噪声,但它也会在噪声水平较低的区域平滑细节。相比之下,具有适当非均匀噪声水平图的去噪结果不仅保留了图像细节,而且去除了强噪声。在这里插入图片描述

最后,根据上述对真实噪声图像的实验,我们可以看到使用未量化图像数据训练的FFDNet模型在8位量化的真实噪声图像上表现良好。

F. Running Time

表VI列出了BM3D、DnCNN和FFDNet去噪灰度和彩色图像的运行时间结果,大小为256×256、512×512和1,024×1,024。评估是在一台具有六核Intel® Core™ i7-5820K CPU @ 3.3GHz、32 GB RAM和Nvidia Titan X Pascal GPU的计算机上在Matlab (R2015b)环境中进行的。对于BM3D,我们通过对噪声水平为25的图像进行去噪来评估其运行时间。对于DnCNN,灰度和彩色图像去噪模型分别有17和20个卷积层。Nvidia cuDNN-v5.1深度学习库用于加速DnCNN和FFDNet的计算。还计算了 CPU 和 GPU 之间的内存传输时间。请注意,DnCNN 和 FFDNet 可以使用单线程 (ST) 和多线程 (MT) CPU 计算来实现。

从表 VI 中,我们有以下观察结果。首先,BM3D 在去噪彩色图像方面比灰度图像花费更多的时间。原因是,与灰度BM3D相比,CBM3D需要额外的时间去噪亮度色变换后的色度分量。其次,虽然DnCNN可以从GPU计算中受益快速实现,它具有与BM3D相当的CPU时间。第三,FFDNet在处理灰度和彩色图像时花费的时间几乎相同。更具体地说,具有多线程实现的FFDNet在CPU上比DnCNN和BM3D快三倍,在GPU上比DnCNN快得多。即使使用单线程实现,FFDNet 也比 BM3D 快。考虑到去噪性能和灵活性,FFDNet在实际应用中具有很强的竞争力。在这里插入图片描述
实验部分大家自行阅读,在复现文章中会进一步深入实验。

V. CONCLUSION

在本文中,我们提出了一种新的 CNN 模型,即 FFDNet,用于快速、有效和灵活的判别去噪。为了实现这一目标,网络设计和训练中使用了几种技术,例如在下采样子图像空间中使用噪声水平图作为输入和去噪。AWGN合成图像的结果表明,当输入噪声水平与地面真实噪声水平匹配时,FFDNet不仅可以产生最先进的结果,而且能够稳健地控制降噪和细节保存之间的权衡。具有空间变异AWGN的图像结果验证了FFDNet处理非均匀噪声的灵活性。真实噪声图像的结果表明,FFDNet可以提供感知上吸引人的去噪结果。最后,运行时间比较显示了FFDNet相对于其他竞争方法(如BM3D)更快的速度。考虑到FFDNet的灵活性、效率和有效性,为CNN去噪应用提供了一种实用的解决方案。

核心问题思考与总结:

  1. FFDNet是如何实现的?

论文图1是网络结构示意图,下采样,noise level map的含义,网络以及相关参数定义

  1. FFDNet与DnCNN的区别?

网络结构没变,输入输出变了。噪声水平范围不同。兼顾速度和性能。从预测噪声变成了预测去噪后的图像

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十小大

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

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

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

打赏作者

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

抵扣说明:

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

余额充值