【图像去噪】论文精读:Toward Convolutional Blind Denoising of Real Photographs(CBDNet)

news2024/12/23 6:14:17

文章目录

  • 前言
  • Abstract
  • 1. Introduction
  • 2. Related Work
    • 2.1. Deep CNN Denoisers
    • 2.2. Image Noise Modeling
    • 2.3. Blind Denoising of Real Images
  • 3. Proposed Method
    • 3.1. Realistic Noise Model
    • 3.2. Network Architecture
    • 3.3. Asymmetric Loss and Model Objective
    • 3.4. Training with Synthetic and Real Noisy Images
  • 4. Experimental Results
    • 4.1. Test Datasets
    • 4.2. Implementation Details
    • 4.3. Comparison with State-of-the-arts
    • 4.4. Ablation Studies
    • 4.5. Interactive Image Denoising
  • 5. Conclusion


前言

论文题目:Toward Convolutional Blind Denoising of Real Photographs —— 迈向真实照片的卷积盲去噪

论文地址:Toward Convolutional Blind Denoising of Real Photographs

论文源码:https://github.com/GuoShi28/CBDNet

CVPR 2019!真实世界盲图像去噪!

Abstract

虽然深度卷积神经网络(CNNs)在加性高斯白噪声(AWGN)图像去噪方面取得了令人印象深刻的成功,但它们在真实世界的噪声照片上的性能仍然有限。主要原因是他们的学习模型很容易过拟合简化的AWGN模型,该模型严重偏离了复杂的真实噪声模型。为了提高深度CNN去噪器的泛化能力,我们建议使用更真实的噪声模型和真实世界的噪声干净图像对训练卷积盲去噪网络(CBDNet)。一方面,考虑信号相关噪声和相机内信号处理管道来合成真实的噪声图像。另一方面,还包括真实世界的噪声照片及其几乎无噪声的照片来训练我们的CBDNet。为了进一步提供一种交互式策略方便地校正去噪结果,将具有非对称学习的噪声估计子网络嵌入到CBDNet中,抑制噪声水平的低估。在真实世界噪声照片的三个数据集上的大量实验结果清楚地表明,CBDNet在定量指标和视觉质量方面优于最先进的方法。该代码可在 https://github.com/GuoShi28/CBDNet 获得。

摘要总览:

  • motivation:为了提升真实世界图像的去噪性能,增强泛化能力,提出CBDNet,学习真实噪声,而不是高斯白噪。
  • 模型:CBDNet,相机产生的真实噪声图像和几乎无噪声照片训练。
  • 特点:交互式策略,非对称学习

带着问题继续阅读论文,CBDNet是如何实现的?交互式策略是什么?什么是非对称学习?

1. Introduction

图像去噪是低级视觉和图像处理中必不可少的基本问题。几十年来,人们开发了许多有前景的方法[3,12,17,53,11,61]。去除加性高斯白噪声(AWGN),实现了接近最优的性能[8,31,50]。然而,在真实的相机系统中,图像噪声来自多个来源(如暗电流噪声、短噪声和热噪声),并进一步受到相机内处理(ISP)管道(如demosaicing、Gamma校正和压缩)的影响。所有这些使真实噪声更加多样化从AWGN中,对真实世界的噪声照片进行盲去噪仍然是一个具有挑战性的问题。

最近,深度 CNN 的发展显着提高了高斯去噪性能 [61, 38, 62]。然而,当应用于真实照片时,用于盲AWGN去除的深度降噪器会急剧下降(见图1(d))。另一方面,用于非盲AWGN去除的深度去噪器会在去除噪声的同时平滑细节(见图1(e))。这种现象可以从深度 CNN [39] 的特征来解释,其中它们的泛化在很大程度上取决于记忆大规模训练数据的能力。换句话说,现有的 CNN 降噪器往往过度拟合高斯噪声,并且不能很好地推广到具有更复杂噪声的真实噪声图像。在这里插入图片描述
在本文中,我们通过为真实世界的照片开发卷积盲去噪网络 (CBDNet) 来解决这个问题。如[39]所示,CNN去噪器的成功在很大程度上取决于合成噪声和真实噪声的分布是否很好地匹配。因此,真实的噪声模型是真实照片盲去噪的首要问题。根据[14,45],泊松高斯分布可以近似为信号相关和平稳噪声分量的异方差高斯,被认为是对真实原始噪声建模的AWGN更合适的替代方案。此外,相机内处理会进一步使噪声在空间上和颜色相关,这增加了噪声的复杂性。因此,我们在噪声模型中考虑了泊松-高斯模型和相机内处理管道(例如,demosaicing、Gamma校正和JPEG压缩)。实验表明,相机内处理管道在现实噪声建模中起着关键作用,在DND[45]上,AWGN获得了显著的性能增益(即PSNR > 5 dB)。

我们进一步结合合成和真实噪声图像来训练CBDNet。一方面,很容易访问大量的合成噪声图像。然而,真实照片中的噪声不能完全用我们的模型来表征,从而为提高去噪性能提供一些余地。另一方面,一些方法[43,1]建议通过对同一场景的数百个噪声图像进行平均来获得无噪声图像。然而,这样的解决方案的成本是昂贵的,并且存在无噪声图像的过度平滑效应。得益于合成和真实噪声图像的结合,CBDNet在DND[45]上可以获得0.3 ~ 0.5dB的PSNR增益。

我们的CBDNet由两个子网络组成,即噪声估计和非盲去噪。随着噪声估计子网络的引入,我们通过对噪声水平的低估误差施加更多的惩罚来采用非对称损失,使得当噪声模型与真实噪声不匹配时,我们的CBDNet表现稳健。此外,它还允许用户通过调整估计的噪声水平图来交互校正去噪结果。在三个真实的噪声图像数据集上进行了广泛的实验,即NC12[29]、DND[45]和Nam[43]。在定量指标和感知质量方面,与最先进的技术相比,我们的CBDNet表现良好。如图1所示,盲AWGN[61]的非盲BM3D[12]和DnCNN都不能对真实世界的噪声照片进行去噪。相比之下,我们的CBDNet在去除复杂的真实世界噪声的同时,通过保留大多数结构和细节,获得了非常令人愉悦的去噪结果。

总而言之,这项工作的贡献有四个方面:

  • 通过考虑异方差高斯噪声和相机内处理管道,提出了一种真实的噪声模型,大大提高了去噪性能。
  • 结合合成噪声图像和真实噪声照片,以更好地表征真实世界的图像噪声,提高去噪性能。
  • 得益于噪声估计子网络的引入,提出了非对称损失来提高对噪声的泛化能力,通过调整噪声水平图允许交互式去噪。
  • 在三个真实世界的噪声图像数据集上的实验表明,我们的CBDNet在定量指标和视觉质量方面都取得了最先进的结果。

介绍梳理:摘要的扩展。首先,展开分析问题切入点,即真实噪声来源(ISP),这样的盲去噪很难(motivation)。然后,阐述现有的方法,通过图1的比较,说明BM3D和DnCNN对于真实的高斯噪声效果不好,甚至更差(DnCNN)。进而,强调本文的CBDNet的实现,噪声模型由高斯白噪变为泊松高斯分布,并在主流数据集上产生良好的效果。最后,说明本文四个贡献。

继续思考问题,CBDNet是如何实现的?交互式noise level map和FFDNet有何不同?非对称学习损失是如何定义的?

2. Related Work

2.1. Deep CNN Denoisers

深度神经网络 (DNN) 的出现导致高斯去噪的显着改进。在Burgeret等人[6]之前,大多数早期的深度模型无法达到最先进的去噪性能[22,49,57]。随后,CSF [53] 和 TNRD [11] 展开优化算法来解决专家模型领域以学习阶段推理过程。通过结合残差学习[19]和批处理归一化[21],Zhang等人[61]提出了一种去噪CNN (DnCNN),其性能优于传统的基于非cnn的方法。在不使用干净数据的情况下,Noise2Noise [30] 也达到了最先进的水平。最近,其他CNN方法,如RED30[38]、MemNet[55]、BM3D-Net[60]、MWCNN[33]和FFDNet[62],也被开发出来,具有良好的去噪性能。

得益于cnn的建模能力,研究[61,38,55]表明,学习单个模型进行盲高斯去噪是可行的。然而,这些盲模型可能过度拟合AWGN,无法处理真实噪声。相比之下,非盲 CNN 去噪器,例如 FFDNet [62],可以通过手动设置适当或相对较高的噪声水平在大多数真实噪声图像上取得令人满意的结果。为了利用这一特性,我们的CBDNet包括一个噪声估计子网络和一个非对称损失来抑制噪声水平的低估误差。

2.2. Image Noise Modeling

大多数去噪方法都是针对非盲高斯去噪开发的。然而,真实图像中的噪声来自各种来源(暗电流噪声、短噪声、热噪声等),并且要复杂得多 [44]。利用泊松建模光子传感和高斯剩余平稳扰动,采用泊松-高斯噪声模型[14]对成像传感器的原始数据进行建模。在[14,32]中,还考虑了摄像机响应函数(CRF)和量化噪声,以获得更实际的噪声建模。不除了泊松-高斯,Hwang 等人[20]给出了泊松光子噪声建模的Skellam分布。此外,在考虑摄像机内图像处理流水线时,信道无关噪声假设可能不成立,提出了几种跨通道噪声建模的方法[25,43]。在这项工作中,我们展示了真实的噪声模型在基于 CNN 的真实照片去噪中起着关键作用,泊松高斯噪声和相机内图像处理管道都有利于去噪性能。

2.3. Blind Denoising of Real Images

真实噪声图像的盲去噪通常更具挑战性,可能涉及噪声估计和非盲去噪两个阶段。对于AWGN,已经开发了几种基于PCA的[48,34,9]方法来估计噪声标准差(SD)。Rabie[49]将噪声像素建模为异常值,并利用洛伦兹鲁棒估计器进行AWGN估计。对于泊松-高斯模型,Foi等人[14]提出了一种两阶段方案,即多个期望/标准差对的局部估计和全局参数模型拟合。

在大多数盲去噪方法中,噪声估计与非盲去噪密切相关。Portilla[46,47]采用高斯尺度混合对每个尺度的小波块进行建模,并利用贝叶斯最小二乘估计干净的小波块。基于分段平滑图像模型,Liu et al.[32]提出了一种统一的颜色噪声估计和去除框架。龚等人。 [15] 将数据拟合项建模为 L1 和 L2 范数的加权和,并利用小波域中的稀疏正则化器来处理混合或未知噪声。Lebrun等人[28,29]通过将每个补丁组的噪声建模为零均值相关高斯分布,提出了非局部贝叶斯方法[27]的扩展。Zhu等人[63]提出了一种贝叶斯非参数技术,通过高斯(LR-MoG)模型的低秩混合去除噪声。Nam等人[43]将跨通道噪声建模为多元高斯,并通过贝叶斯非局部均值滤波器[24]进行去噪。Xu等人[59]提出了一种多通道加权核范数最小化(MCWNNM)模型来利用信道冗余。他们进一步提出了一种三边加权稀疏编码(TWSC)方法,以更好地建模噪声和图像先验[58]。除了噪声临床(NC)[28,29]、MCWNNM[59]和TWSC[58]外,大多数盲去噪器的代码是不可用的。我们的实验表明,它们仍然局限于从真实图像中去除噪声。

相关工作:1.深度CNN去噪模型;2.图像去噪模型;3.真实图像的盲去噪模型。除了陈述句介绍其他工作外,突出本文工作的优势。此外,重点落在盲去噪模型很多,但是真实图像的盲去噪很难。

3. Proposed Method

本节介绍我们的CBDNet,由噪声估计子网络和非盲去噪子网络组成。首先,我们引入噪声模型生成合成噪声图像。然后,网络架构和非对称损失。最后,我们解释了合成噪声图像和真实噪声图像的结合来训练CBDNet。

3.1. Realistic Noise Model

正如 [39] 中所指出的,CNN 的泛化在很大程度上取决于记忆训练数据的能力。现有的CNN去噪器,如DnCNN[61],通常不能很好地处理真实的噪声图像,这主要是由于它们可能过度拟合AWGN,而真实的噪声分布与高斯分布有很大的不同。另一方面,当使用真实噪声模型进行训练时,CNN 的记忆能力将有助于使学习模型能够很好地推广到真实照片。因此,噪声模型在保证CNN去噪性能中起着至关重要的作用。

与AWGN不同,真实图像噪声通常更复杂和依赖于信号的[35,14]。实际上,光子传感产生的噪声可以建模为泊松,而其余的平稳扰动可以建模为高斯。因此,泊松-高斯为成像传感器[14]的原始数据提供了合理的噪声模型n(L) ∼ N (0, σ2(L)),可以进一步近似为定义为:
σ 2 ( L ) = L ⋅ σ s 2 + σ c 2 .  (1) \sigma^{2}(\mathbf{L})=\mathbf{L} \cdot \sigma_{s}^{2}+\sigma_{c}^{2} \text {. }\tag{1} σ2(L)=Lσs2+σc2(1)
其中 L 是原始像素的辐照度图像。n(L) =ns(L) + nc 涉及两个分量,即噪声方差为 σ2c 的平稳噪声分量 nc 和具有空间变化噪声方差 L · σ2s 的信号相关噪声分量 ns。

然而,真实的照片通常是在相机内处理(ISP)之后获得的,这进一步增加了噪声的复杂性,使其在空间上和彩色相关。因此,我们考虑了ISP管道的两个主要步骤,即demosaicing和Gamma校正,导致真实的噪声模型为:
y = f ( D M ( L + n ( L ) ) ) (2) \mathbf{y}=f(\mathbf{D M}(\mathbf{L}+\mathbf{n}(\mathbf{L})))\tag{2} y=f(DM(L+n(L)))(2)
其中 y 表示合成噪声图像,f (·) 表示从 [16] 中提供的 201 个 CRF 中均匀采样的相机响应函数 (CRF)。采用L = Mf−1(x)从干净的图像x生成辐照度图像。M(·)表示将sRGB图像转换为Bayer图像的函数,DM(·)表示demosaicing函数[37]。请注意,DM(·) 中的插值涉及不同通道和空间位置的像素。方程式(2)中的合成噪声。因此是通道和空间相关的。

此外,为了扩展CBDNet处理压缩图像,我们可以在生成合成噪声图像时包括JPEG压缩,
y = JPEG ⁡ ( f ( D M ( L + n ( L ) ) ) ) . (3) \mathbf{y}= \operatorname{JPEG}(f(\mathbf{D M}(\mathbf{L}+\mathbf{n}(\mathbf{L})))) .\tag{3} y=JPEG(f(DM(L+n(L)))).(3)

对于嘈杂的未压缩图像,我们采用方程式(2) 中的模型。生成合成噪声图像。对于嘈杂的压缩图像,我们利用方程式(3)中的模型。具体来说,σs 和 σc 分别从 [0, 0.16] 和 [0, 0.06] 的范围内均匀采样。在JPEG压缩中,质量因子从[60,100]范围内采样。我们注意到不考虑量化噪声,因为它最小,可以忽略,而不会对去噪结果产生任何明显的影响[62]。

真实噪声模型:1.服从泊松-高斯分布;2.真实照片是在相机ISP后产生的包括去马赛克、伽马校正、JPEG压缩等,这样产生的图像叫合成噪声图像(synthetic noisy image)也就是公式中的y;3.基于此建模,有公式(1)(2)(3)。

3.2. Network Architecture

在这里插入图片描述
如图2所示,所提出的CBDNet包括一个噪声估计子网络CNN_E和一个非盲去噪子网络CNN_D。首先,CNN_E 采用噪声观测 y 来产生估计的噪声水平图 ^σ(y) =F_E (y; W_E ),其中 W_E 表示 CNN_E 的网络参数。我们让 CNN_E 的输出是噪声水平图,因为它与输入 y 的大小相同,并且可以使用全卷积网络进行估计。然后,将 y 和 ^σ(y) 作为输入,得到最终的去噪结果 ^x = F_D (y, ^σ(y); W_D ),其中 W_D 表示 CNN_D 的网络参数。此外,CNN_E 的引入还允许我们在将其放入非盲去噪子网络 CNN_D 之前调整估计的噪声水平图 ^σ(y)。在这项工作中,我们提出了一个简单的策略,让ˆ̺(y) = γ·ˆσ(y)进行交互去噪。

我们进一步解释了 CNN_E 和 CNN_D 的网络结构。CNN_E 采用普通的五层全卷积网络,无需池化和批量归一化操作。在每个卷积(Conv)层中,特征通道数设置为32,滤波器大小为3 × 3。在每个Conv层之后部署ReLU非线性[42]。对于 CNN_D,我们采用 U-Net [51] 架构,该架构将 y 和 ^σ(y) 作为输入,以给出无噪声干净图像的预测 ^x。在[61]之后,首先学习残差映射R(y,ˆσ(y);WD),然后预测ˆx =y + R(y,ˆσ(y);W_D)。CNNE 的 16 层 U-Net 架构也如图 2 所示,其中引入了对称跳跃连接、跨步卷积和转置卷积来利用多尺度信息并扩大感受野。所有过滤器大小为 3×3,ReLU 非线性 [42] 在每个 Conv 层之后应用,除了最后一个。此外,我们凭经验发现批量归一化对真实照片的噪声去除几乎没有帮助,部分原因是真实噪声分布与高斯分布根本不同。

最后,我们注意到也可以通过学习从噪声观测到干净图像的直接映射来训练单个盲CNN去噪器。然而,如[62,41]所述,以噪声图像和噪声水平图为输入有助于将学习到的模型推广到噪声模型以外的图像,从而有利于盲去噪。我们凭经验发现,对于噪声水平较低的图像,单盲 CNN 降噪器的性能与 CBDNet 相当,并且对于噪声较大的图像,不如 CBDNet。此外,噪声估计子网络的引入也使得交互式去噪和非对称学习成为可能。因此,我们建议在CBDNet中包含噪声估计子网络。

CBDNet网络结构拆解:

  • CBDNet包含两个部分:噪声估计网络(E)和非盲去噪网络(D)
  • E是5层全卷积网络,后跟ReLU,卷积层特征数32,卷积核3×3。用来估计noise level map,在送入D之前,可以通过非对称损失交互
  • D是16层U-Net,使用残差连接、跨步卷积、转置卷积,除了最后一个卷积层其他卷积层均跟ReLU。使用BN对于真实照片噪声没有用。
  • 噪声水平低的图像,单盲和CBDNet差不多;噪声水平高的图像,CBDNet更好。
  • CBDNet的具体实现见对应的复现文章

3.3. Asymmetric Loss and Model Objective

当输入噪声 SD 时,CNN 和传统的非盲去噪器都表现出色。高于ground-truth(即高估误差),这鼓励我们采用非对称损失来提高CBDNet的泛化能力。如FFDNet[62]所示,当输入噪声SD时,BM3D/FFDNet取得了最好的结果。和真实噪声SD匹配。当输入噪声 SD 时。低于ground-truth,BM3D/FFDNet的结果包含可感知的噪声。当输入噪声 SD 时。高于ground-truth结构,BM3D/FFDNet仍然可以通过逐渐缩小一些低对比度结构以及输入噪声SD的增加。因此,非盲去噪器对噪声SD的低估误差很敏感,但对过估计误差具有鲁棒性。有了这个属性,BM3D/FFDNnet 可以通过设置相对较高的输入噪声 SD 来对真实照片进行去噪。这可以解释 BM3D 在非盲设置中在 DND 基准 [45] 上的合理性能。

解释了非对称:非盲模型BM3D和FFDNet在低噪声水平下去噪效果差;在高噪声水平下去噪效果好。非对称损失的提出就是为了解决上述问题。

为了利用盲去噪中的非对称灵敏度,我们在噪声估计上提出了一种非对称损失,以避免在噪声水平图上出现低估误差。给定像素 i 处的估计噪声水平 ^σ(yi) 和地面实况 σ(yi),当 ^σ(yi) < σ(yi) 时,应对其 MSE 施加更多的惩罚。因此,我们将噪声估计子网络上的非对称损失定义为,
L asymm  = ∑ i ∣ α − I ( σ ^ ( y i ) − σ ( y i ) ) < 0 ∣ ⋅ ( σ ^ ( y i ) − σ ( y i ) ) 2 , (4) \mathcal{L}_{\text {asymm }}=\sum_{i}\left|\alpha-\mathbb{I}_{\left(\hat{\sigma}\left(y_{i}\right)-\sigma\left(y_{i}\right)\right)<0}\right| \cdot\left(\hat{\sigma}\left(y_{i}\right)-\sigma\left(y_{i}\right)\right)^{2},\tag{4} Lasymm =i αI(σ^(yi)σ(yi))<0 (σ^(yi)σ(yi))2,(4)

其中 ie = 1 对于 e < 0,否则为 0。通过设置 0 < α < 0.5,我们可以对低估误差施加更多的惩罚,使模型可以很好地推广到真实噪声。

此外,我们引入了一个全变分(TV)正则化器来约束ˆσ(y)的平滑性,
L T V = ∥ ∇ h σ ^ ( y ) ∥ 2 2 + ∥ ∇ v σ ^ ( y ) ∥ 2 2 (5) \mathcal{L}_{T V}=\left\|\nabla_{h} \hat{\sigma}(\mathbf{y})\right\|_{2}^{2}+\left\|\nabla_{v} \hat{\sigma}(\mathbf{y})\right\|_{2}^{2}\tag{5} LTV=hσ^(y)22+vσ^(y)22(5)

其中∇h (∇v)表示沿水平(垂直)方向的梯度算子。对于非盲去噪的输出ˆx,我们将重建损失定义为,
L r e c = ∥ x ^ − x ∥ 2 2 . (6) \mathcal{L}_{r e c}=\|\hat{\mathbf{x}}-\mathbf{x}\|_{2}^{2} .\tag{6} Lrec=x^x22.(6)

综上所述,我们的CBDNet的总体目标是,
L = L rec  + λ asymm  L asymm  + λ T V L T V , (7) \mathcal{L}=\mathcal{L}_{\text {rec }}+\lambda_{\text {asymm }} \mathcal{L}_{\text {asymm }}+\lambda_{T V} \mathcal{L}_{T V},\tag{7} L=Lrec +λasymm Lasymm +λTVLTV,(7)
其中 λasymm 和 λTV 分别表示非对称损失和 TV 正则化器的权衡参数。在我们的实验中,通过最小化上述目标,报告了CBDNet的PSNR/SSIM结果。对于视觉质量的定性评估,我们通过将VGG-16[54]的relu3_3上的感知损失[23]进一步添加到Eqn(7)中的目标来训练CBDNet。

损失函数定义:

  • 非对称损失项:输入噪声水平与真实噪声水平一致时,去噪效果最好;低于时则有噪声剩余;高于时仍保持好的效果。所以,需要先估计噪声水平。当估计的噪声水平低于真实值时,应该给MSE增加惩罚。通过后面的实验可知,σ=0.3不错。
  • 全变分正则项(TV):保证估计的噪声平滑
  • 去噪网络的重建损失:MSE损失

3.4. Training with Synthetic and Real Noisy Images

第3.1节中的噪声模型可用于合成任意数量的噪声图像。我们还可以保证干净图像的高质量。尽管如此,真实照片中的噪声不能完全用噪声模型来表征。幸运的是,根据[43,45,1],通过对来自同一场景的数百个噪声图像进行平均,可以获得几乎无噪声的图像,文献中已经建立了几个数据集。在这种情况下,场景被限制为静态的,获取数百个噪声图像通常很昂贵。此外,由于平均效应,几乎无噪声的图像往往是过度平滑的。因此,可以结合合成和真实噪声图像来提高对真实照片的泛化能力。

在这项工作中,我们使用 3.1 中的噪声模型。生成合成噪声图像,并使用来自 BSD500 [40]、滑铁卢 1600 张图像 [36] 和来自 MIT-Adobe FiveK 数据集 [7] 的 1600 张图像作为训练数据。具体来说,我们使用 RGB 图像 x 来合成干净的原始图像 L = Mf -1(x) 作为反向 ISP 过程,并使用相同的 f 生成与 公式 (2) 或 (3) 的噪声图像。其中 f 是从 [16] 中的 CRF 随机采样的。对于真实的噪声图像,我们利用RENOIR数据集[4]中的120张图像。特别是,我们在训练期间交替使用一批合成和真实噪声图像。对于一批合成图像,公式(7) 中的所有损失被最小化以更新 CBDNet。对于一批真实图像,由于无法获得地面真实噪声水平图,在训练中只考虑L_rec和L_TV。我们凭经验发现,这种训练方案在提高对真实照片去噪的视觉质量方面是有效的。

训练策略:真实照片中的噪声无法用噪声模型表示。使用合成噪声图像和干净图像提升模型对真实照片的泛化能力。

  • 合成噪声图像训练集:BSD500中的400张图像、1600张Waterloo、1600张MIT-Adobe FiveK
  • 真实噪声图像训练集:120张RENOIR

4. Experimental Results

4.1. Test Datasets

采用NC12[29]、DND[45]和Nam[43]三个真实世界噪声图像数据集:

NC12 包括12张噪声图像。真实的干净图像不可用,我们只报告去噪结果进行定性评估。

DND 包含50对真实的噪声图像和相应的近无噪声图像。与[4]类似,通过对低ISO图像的仔细后处理,获得了几乎无噪声的图像。PSNR/SSIM 结果是通过在线提交系统获得的。

Nam 包含11个静态场景,对于每个场景,几乎无噪声的图像是500个JPEG噪声图像的平均图像。我们将这些图像裁剪为 512 × 512 个补丁,并随机选择 25 个补丁进行评估。

4.2. Implementation Details

方程式(7) 中的模型参数。由** α = 0.3、λ1 = 0.5 和 λ2 = 0.05 **给出。请注意,来自 Nam [43] 的噪声图像是 JPEG 压缩的,而来自 DND [45] 的噪声图像是不压缩的。因此我们采用方程式(2) 中的噪声模型。为 DND 和 NC12 训练 CBDNet,以及方程式(3)中的模型。训练 Nam 的 CBDNet(JPEG)。

为了训练我们的CBDNet,我们采用了β1 = 0.9的ADAM[26]算法。[18]中的方法用于模型初始化。mini-batch 的大小为 32,每个补丁的大小为 128 × 128。所有模型都训练了 40 个 epoch,其中前 20 个 epoch 的学习率为 10-3,然后使用学习率 5 × 10−4 进一步微调模型。在Nvidia GeForce GTX 1080 Ti GPU上使用MatConvNet包[56]训练我们的CBDNet大约需要三天。

4.3. Comparison with State-of-the-arts

为了进行比较,我们考虑了四种盲去噪方法,即NC[29,28]、NI[2]、MCWNNM[59]和TWSC[58]。NI [2] 是一个商业软件,已包含在 Photoshop 和 Corel PaintShop 中。此外,我们还包括盲高斯去噪方法(即CDnCNN-B[61])和三种非盲去噪方法(即CBM3D[12]、WNNM[17]、FFDNet[62])。当将非盲去噪器应用于真实照片时,我们利用[9]来估计噪声SD。

NC12。图3显示了NC12图像的结果。所有竞争方法都在去除黑暗区域中的噪声方面受到限制。相比之下,CBDNet在保持显著图像结构的同时,在去除噪声方面表现出色。在这里插入图片描述

DND。表 1 列出了 DND 基准网站上发布的 PSNR/SSIM 结果。毫无疑问,CDnCNNB[61]不能推广到真实的噪声照片,性能很差。尽管噪声 SD。提供了非盲高斯去噪器,如WNNM[17]、BM3D[12]和FoE[52],只实现了有限的性能,这主要是由于真实噪声与AWGN有很大的不同。MCWNNM[59]和TWSC[58]是专门为真实照片盲去噪而设计的,也取得了很好的效果。得益于真实的噪声模型和与真实噪声图像的结合,我们的CBDNet获得了最高的PSNR/SSIM结果,略好于MCWNNM[59]和TWSC[58]。CBDNet 也显着优于另一个基于 CNN 的降噪器,即 CIMM [5]。至于运行时间,CBDNet处理512 × 512图像大约需要0.4s。图 4 提供了 DND 图像的去噪结果。BM3D 和 CDnCNN-B 无法从真实照片中去除大部分噪声,NC、NI、MCWNNM 和 TWSC 仍然无法去除所有噪声,NI 也会受到过度平滑的影响。相比之下,我们的CBDNet在平衡噪声去除和结构保存方面表现出色。在这里插入图片描述
在这里插入图片描述
Nam。定量和定性结果如表2和图5所示。CBDNet(JPEG)的性能比CBDNet好得多(即PSNR约为1.3 dB),与最先进的技术相比取得了最好的性能。在这里插入图片描述
在这里插入图片描述

4.4. Ablation Studies

噪声模型的影响。我们考虑异构高斯(HG)和相机内处理(ISP)管道来建模图像噪声,而不是AWGN。在DND和Nam上,我们实现了四种噪声模型变体:(i)高斯噪声(CBDNet(G)), (ii)异构高斯(CBDNet(HG)), (iii)高斯噪声和ISP (CBDNet(G+ISP)), (iv)异构高斯和ISP (CBDNet(HG+ISP),即完整的CBDNet。对于 Nam,还包括 CBDNet(JPEG)。表 3 显示了不同噪声模型的 PSNR/SSIM 结果。
在这里插入图片描述

G vs HG。在没有ISP的情况下,CBDNet(HG)比CBDNet(G)获得了约0.8 ~ 1 dB的增益。当包含ISP时,HG的增益适中,即CBDNet(HG+ISP)仅优于CBDNet(G+ISP)约0.15 dB。

w/o ISP。相比之下,观察到ISP对真实图像噪声建模更为关键。特别是CBDNet(G+ISP)比CBDNet(G)高4.88 dB,而CBDNet(HG+ISP)在DND上优于CBDNet(HG) 3.87 dB。对于 Nam,在 ISP 中包含 JPEG 压缩进一步带来了 1.31 dB 的增益。

合成图像和真实图像的结合。我们实现了两个基线:(i)仅在合成图像上训练的 CBDNet(Syn),以及(ii)仅在真实图像上训练的 CBDNet(Real),并将我们的完整模型重命名为 CBDNet(All)。图7显示了这三种方法在NC12图像上的去噪结果。即使在大规模合成图像数据集上进行训练,CBDNet(Syn) 仍然不能去除所有真实噪声,部分原因是真实噪声不能完全用噪声模型来表征。CBDNet(Real)可能会产生过度平滑的结果,部分原因是不完善的影响无噪声图像。相比之下,CBDNet(All) 在保留锐利边缘的同时有效地去除真实噪声。三种模型在DND上的定量结果如表1所示。CBDNet(All)比CBDNet(Syn)和CBDNet(Real)获得了更好的PSNR/SSIM结果。在这里插入图片描述

不对称损失。图8比较了不同α值的CBDNet去噪结果,即α=0.5、0.4和0.3。当α=0.5时,CBDNet对低估误差和高估误差施加相同的惩罚,当α<0.5时,对低估误差施加更多的惩罚。可以看出,较小的α(即0.3)有助于提高CBDNet对未知真实噪声的泛化能力。在这里插入图片描述

4.5. Interactive Image Denoising

给定估计的噪声水平图 ^σ(y),我们引入了一个系数 γ (> 0) 来交互式地将 ^σ(y) 修改为 ^̺ =γ · ^σ(y)。通过允许用户调整γ,非盲去噪子网络以ˆ̺和噪声图像为输入,得到去噪结果。图 6 显示了两个真实的噪声 DND 图像以及使在这里插入图片描述
用不同 γ 值获得的结果。通过将 γ = 0.7 指定到第一个图像,并且γ = 1.3 到第二个,CBDNet 可以在保留详细纹理和去除复杂噪声方面以更好的视觉质量实现结果。因此,这种交互方案可以为在实际场景中调整去噪结果提供一种方便的方法。

丰富实验:实验部分主要体现工作量。首先阐明实验设置,参数等,然后和SOTA比,最后和自己比(消融实验)。交互体现在4.5部分,用户调整γ可以得到不同效果的结果。

5. Conclusion

我们提出了一种CBDNet来盲去噪真实世界的噪声照片。这项工作的主要发现是两方面的。首先,真实的噪声模型,包括异质高斯和ISP管道,对于使从合成图像中学习到的模型适用于真实世界的噪声照片至关重要。其次,可以通过在训练中结合合成和真实噪声图像来提高网络的去噪性能。此外,通过在CBDNet中引入噪声估计子网络,我们能够利用非对称损失来提高其对真实世界噪声的泛化能力,方便地进行交互式去噪。

总结复习巩固:

  1. 目标:真实图像盲去噪,用合成图像和干净图像估计真实噪声
  2. 与AWGN模型不同,本文的噪声模型符合泊松-高斯分布
  3. CBDNet结构:噪声估计子网和非盲噪声子网
  4. 损失函数定义:去噪损失项+非对称损失项+变分平滑损失项
  5. 交互参数γ

在这里插入图片描述

再看一遍CBDNet的网络结构强化一下记忆,然后马不停蹄地来到复现文章,看看CBDNet是如何用代码实现的吧!

本文对应的复现文章:【图像去噪】论文复现:适合新手小白的Pytorch版本CBDNet复现!轻松跑通训练和测试代码!简单修改路径即可训练自己的数据集!代码详细注释!数据处理、模型训练和验证、推理测试全流程讲解!


至此本文结束。

如果本文对你有所帮助,请点赞收藏,创作不易,感谢您的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享世界上最好的5个滑雪小镇

滑雪爱好者和冬季旅行者们&#xff0c;听好了。随着北半球变成冰雪仙境&#xff0c;是时候计划下一个冰雪覆盖的冒险了。 无论你是一个经验丰富的专业人士还是一个滑雪新手&#xff0c;我们整理了世界上五个最好的滑雪小镇&#xff0c;帮助你找到你完美的白雪覆盖的天堂。 这些…

CPMF复现笔记(2):训练MVTecAD-3D数据集, 精度SOTA

文章来自曹云康的最新论文《Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection》,在MVTecAD-3D取得了最佳分数。代码地址GitHub - caoyunkang/CPMF: [PR] Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection 复现效果 …

【ARM Hypervisor And SMMU 系列 5 -- SMMU 和 IOMMU技术】

文章目录 SMMU 和 IOMMU技术ARM 的 SMMUTranslation process overviewTBU 和 TCU 的关系TBUTCUTLBSMMU 和 IOMMU技术 文章 讲到了为支持I/O透传机制中的DMA设备传输而引入的IOMMU/SMMU技术,同时留了一个问题:IOMMU/SMMU是否可以同时支持GVA->GPA和GPA->HPA的转换? 答案…

【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)研究 -- 3GPP TR 36.763(二)

目录 6 无线层1的问题及相关解决方案 6.1 IoT NTN参考参数 6.2 链路预算分析 6.2.1 链路预算参数 6.2.2.1.1 Set-1 6.2.2.1.2 Set-2 6.2.2.1.3 Set-3 6.2.2.1.4 Set-4 6.2.2.1.5 Set-5 6.3 时间和频率同步增强 6.3.1 GNSS位置固定对UE功耗的影响 6.3.1…

Java使用Graphics绘制图片文字边缘出现粗糙的锯齿问题解决

为什么会出现锯齿问题 文字出现锯齿的现象通常是由于显示设备的分辨率有限&#xff0c;无法完美地表现出字符的曲线和斜线的原因。 怎么解决 可以通过Graphics2D设置抗锯齿效果 // 打开抗锯齿效果g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VAL…

linux服务 学习

服务&#xff08;Service&#xff09; 在Linux操作系统中&#xff0c;服务&#xff08;Service&#xff09;是一个基本概念&#xff0c;它通常指的是运行在后台的、持续提供特定功能或资源给系统内部组件或者网络上的客户端程序。 这些服务是系统正常运行和提供各种功能的关键…

目标检测 | yolov7 原理和介绍

相关系列&#xff1a; 目标检测 | yolov1 原理和介绍 目标检测 | yolov2/yolo9000 原理和介绍 目标检测 | yolov3 原理和介绍 目标检测 | yolov4 原理和介绍 目标检测 | yolov5 原理和介绍 目标检测 | yolov6 原理和介绍 目标检测 | yolov7 原理和介绍 目标检测 | yolov8 原理和…

Maven-05.依赖管理-依赖配置

一.依赖管理-配置 例如&#xff1a;我们要在maven项目中导入logback日志依赖&#xff0c;那么我们编辑pom.xml文件。 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</versio…

2023华为od机试C卷【转盘寿司】C 实现 单调栈

#include <stdio.h> #include <stdlib.h>/*单调栈 旋转寿司3 15 6 14 3 21 9 17*/ int main() {int i 0;int len 0;int data 0;int nums[501];char c ;while(scanf("%d",&nums[i]) 1){i;len;c getchar();if(c \n)break;}int *out NULL;int *s…

【顺序栈的实现1】--------含栈顶,栈底指针;栈顶指针指向栈顶元素的下一个位置

1. 栈的抽象数据类型定义&#xff1a; 2.顺序栈的存储方式 同一般线性表的顺序存储结构完全相同&#xff1a; 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。栈底一般在低地址端。 附设top指针&#xff0c;指示栈顶元素在顺序栈中的位置另设base指针&#xff0…

<数据集>斯坦福狗狗识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;20580张 标注数量(xml文件个数)&#xff1a;20580 标注数量(txt文件个数)&#xff1a;20580 标注类别数&#xff1a;120 标注类别名称&#xff1a;[Chihuahua, Japanese_spaniel, Maltese_dog, Pekinese, Shih-Tzu…

快速排序(Java实现)

目录 快速排序的思想 代码实现 思路 代码 快速排序的特点 快速排序的思想 快速排序和冒泡排序一样&#xff0c;是一种交换排序。快速排序的核心思想也是分治&#xff0c;分而治之。给定一个数组&#xff0c;先选定一个元素作为枢轴&#xff0c;然后将大于枢轴的放在右边&a…

Javaweb学习之Vue项目的创建(二)

学习资料 Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org) 准备工作都做完了&#xff0c;接下来开始Vue的正式学习。 第一步&#xff0c;打开VS Code 在VS Code里&#xff0c;我们也需要使用到终端&#xff0c;如果不是以管理员身份打开&#xff0c;在新建Vue项目的时候…

围棋棋盘的图像(识别)240801

识别: import tensorflow as tf import numpy as np from tensorflow.keras import layers, models from tensorflow.keras.utils import to_categorical from tensorflow.keras.preprocessing.image import load_img, img_to_array# 加载并预处理图像 def load_and_preproces…

Linux升级lib64中的libc.so.6导致所有命令失效

ls: relocation error: libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference 升级Glibc后出现所有shell命令都不可用 # systemctl status systemctl: relocation error: /lib64/libpthread.so.0: sy…

为视觉语言多模态模型进行偏好优化

训练模型使得它能够理解并预测人类偏好是一项比较复杂的任务。诸如 SFT (Supervised finetuning) 的传统的方法一般都需要耗费较大成本&#xff0c;因为这些算法需要对数据打上特定的标签。而偏好优化 (Preference Optimization) 作为一种替代选项&#xff0c;通常可以简化这一…

【10-21】设计原则

目录 一.开闭原则 二.里氏代换原则 三.依赖倒转原则 四.接口隔离原则 五.迪米特法则 六.合成复用原则 前言&#xff1a; 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可拓展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发…

关于WebSocket必知必会的知识点

什么是WebSocket WebSocket是一种网络传输协议&#xff0c;可以在单个TCP连接上进行全双工通信&#xff0c;位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;服务器可以主动向客户端发送消息。在WebSocket API中&#xff0c;浏览器和…

20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡

fdisk -l df -h df -t df -T mount 20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡 2024/8/20 18:03 【默认挂载到/run/media/mmcblk1&#xff0c;不用任何操作&#xff01;】 插入1TB的TF卡之后的dmesg信息&#xff1a; [ 876.551728] fdee0000.hdmi…

pandans读写分析csv文件

1.什么是pandans Pandas 是一个强大的 Python 库&#xff0c;主要用于数据处理和数据分析。它为 Python 提供了高效的数据结构和数据分析工具&#xff0c;使得数据处理变得更加简单和直观。 2.什么事csv文件 CSV 文件&#xff08;Comma-Separated Values&#xff0c;逗号分隔值…