当前位置:   article > 正文

DFC-dehaze:一种改进的循环一致生成对抗网络非配对图像去雾2023_基于循环生成对抗的去雾

基于循环生成对抗的去雾

摘要:近年来,周期一致对抗网络(CycleGAN)被用于图像去雾任务中。但是,生成的去雾图像质量较低。为了增强去雾后的图像,本文提出了一种改进的CycleGAN模型,称为DFC-dehaze,其中基于卷积神经网络(CNN)的生成器被Dehazeformer-t模型取代。为了减少恢复图像中的雾霾残留,采用局部-全局鉴别器处理局部变化的雾霾。当生成的图像模糊或颜色不真实时,鉴别器通过负样本惩罚机制给予低分。另一方面,将结构相似指数测量(SSIM)损失与循环一致损失相结合,提高去雾图像的视觉质量。实验结果表明,所提出的方法优于其他无监督方法,并且产生的视觉结果与有监督方法产生的结果相当。

我们提出了一种不受成像模型和配对数据要求约束的无监督单幅图像去霾方法,称为DFC-dehaze。在训练过程中,将原始的干净图像转换为模糊和颜色失真的负样本。鉴别器通过负样本惩罚机制记住这些负信息来约束生成器的输出。采用局部-全局鉴别器处理去雾图像中的局部变化雾度。为了解决CycleGAN的伪影问题,使用Dehazeformer-t网络[26]代替基于卷积神经网络(CNN)的生成器。此外,采用结构相似指数度量(SSIM)损失和周期一致性损失相结合的方法对原始图像和重构图像进行约束。与单周期一致性损失相比,SSIM损失保留了恢复的无雾图像中的结构细节,提高了场景的可视性。定性和定量结果表明,该方法比其他无监督方案具有更好的性能。

对于本文,主要贡献如下:

1)针对单幅图像的去雾,提出了一种无监督的dfc去雾方法。该方法不需要配对图像,这有助于避免收集雾霾/清晰图像对的劳动密集型任务。

2)利用局部-全局鉴别器用附加的局部信息引导生成器。它可以防止生成器产生具有局部雾霾残留的恢复图像。

3)为了获得更真实的去雾图像,我们设计了负向惩罚机制( negative punishment mechanism.)。它使用负样本来更新鉴别器。因此,鉴别器抑制发生器输出不合适的去雾图像。

Transformers in computer vision

图1所提出的dfc去霾体系结构。DFC-dehaze包含两个用于添加和去除雾霾的生成器,以及两个用于区分真实图像和生成图像的鉴别器。右下角显示了局部样本和阴性样本的示例.

CNN一直在计算机视觉领域占据主导地位,而transformer主要应用于NLP。最近,一些研究人员在视觉任务中使用了transformer来提高基于cnn的网络的性能。

2021年,Dosovitskiy等[37]提出了视觉转换器(vision transformer, ViT)方案。他们首先将transformer结构作为一个独立的神经网络来取代CNN结构。

在训练中,ViT将图像分成不相交的小块,并对每个小块进行编码。然后计算每两个补丁之间的自注意力,实现信息聚合。ViT不擅长处理密集输出类型的视觉任务。例如,在目标检测和分割任务中,它们的计算复杂度是指数级的。为了降低计算复杂度,Liu等[38]提出了一种swing -transformer机制,该机制将令牌划分为多个窗口,并计算窗口内的自关注。与ViT相比,该方案保持了一定的线性复杂度。Dehazeformer[26]是一种改进的用于图像去雾的Swintransformer。通过改进归一化层、空间信息聚合机制和修改激活函数来改变去霾图像的质量。

在本节中,我们首先介绍DFCdehaze的概述。其次,详细描述了我们的改进和模型体系结构。最后,详细描述了DFC-dehaze的损失函数。

模型构建:

Overview of DFC-dehaze

非成对训练的目的是学习源图像域与目标图像域之间的映射函数。在单幅图像去雾霾时,源域和目标域分别由模糊图像(X)和干净图像(Y)组成。如图1所示,我们的方法架构由两个生成器G、F和两个局部-全局鉴别器Da、Db组成。G去除雾霾(G: X⇒Y), F增加雾霾(F: Y⇒X), Da和Db用于区分真实图像和生成图像。采用循环一致性损失和SSIM损失相结合的方法来保证去霾图像和霾图像的场景一致性。利用负样本和局部图像对鉴别器进行更新

Dehazeformer generator

为了获得高质量的去雾图像,我们采用了Dehazeformer-t[26]模型作为发生器,该模型是一种改进的 swin-transformer。Dehazeformer块是专门为单幅图像去雾而设计的。

与swin -transformer相比,ReLU激活函数取代了Dehazeformer块中的GELU激活函数。另外,它应用RescaleNorm来代替LayerNorm,这将整个特征映射规范化,以防止块之间的相关性丢失。反射填充用于增强去雾图像边缘部分的质量。脱雾发生器结构如图2左侧所示。

Dehzeformer-t模型包含一对编码器和解码器。编码器使用两个连接的4层Dehazeformer块进行下采样,而解码器使用两个连接的2层Dehazeformer块从特征向量中恢复清晰图像。利用4层Dehazeformer块将雾霾图像的特征映射转换为清晰图像的特征映射。SK fusionsoft reconstruction被用于替换原始的串联融合和全局残差,以增强重建图像的纹理细节。

Local–global discriminator

一般来说,在GAN的训练过程中,生成器由鉴别器的梯度反馈来更新。当图像仅包含部分雾霾时,鉴别器可给予去雾图像与干净图像相似的分数。因此,它导致残余雾霾留在去雾图像上。为了解决这个问题,我们在训练中采用局部-全局鉴别器来更好地去除残余雾霾。具体来说,我们从输入图像中随机裁剪5块大小为64 × 64像素的补丁。注意,这些补丁的位置在不同的迭代中不断变化。在训练过程中,碰巧包含雾霾的补丁可以为生成器提供额外的梯度,因为它们的输出明显低于整个图像。

图2右侧为鉴别器模型的结构。我们使用PatchGAN[25]作为判别器模型,判断每个patch是否是由generator生成的,而不是由整个图像生成的。具体来说,它接收输入图像,并判断输入图像是恢复图像还是不同patch上的真实图像。然后给出整个图像上所有patch的平均响应值,作为对图像的最终判断。

 图2 dfc除霾生成器和鉴别器结构。左侧为Dehazeformer发生器的模型结构,右侧为discriminator的模型结构

Negative simple punishment mechanism

在训练过程中,鉴别器主要区分图像是否模糊。不考虑颜色的适宜性或锐度,导致生成器产生的去雾图像具有模糊或不真实的色彩。我们提出了一种负样本惩罚机制,使去雾后的图像更接近真实图像。具体来说,该机制在训练过程中使用负样本来更新鉴别器。负样本由真实数据的模糊图像和彩色抖动图像(亮度、对比度和饱和度随机变化)组成。鉴别器在记忆这些负面信息时,对不真实图像的评分较低。这个过程可以帮助产生与真实图像非常相似的去雾图像。

Loss functions:

对抗性损失

对抗性损失主要用于将生成的图像的分布与目标域中数据的分布进行匹配。这里我们使用最小二乘GAN(LSGAN)[39]来计算对抗损失,这有助于网络生成更高质量的图像,并且训练过程更加稳定。方程2和3分别显示了我们如何计算生成器和鉴别器的对抗损失。

其中X和Y分别表示雾霾图像和干净图像的数据分布。G表示发生器,用于有雾到无雾图像传输(X⇒Y)。Da是局部-全局鉴别器,它决定发生器的响应是真还是假。

F和Db的对抗性损失与G和Da的对抗性损失相似。因此,完全对抗损失计算公式为:

周期一致性损失 

在图像样式转换任务中,只有对抗性损失并不能保证学习函数可以将单个输入x映射到期望的输出y,因为生成器可以将所有输入映射到单个输出以欺骗鉴别器。CycleGAN提出循环一致性损失,以确保恢复后的图像具有与原始图像相同的语义信息。具体来说,通过L1损失应用循环一致损失来比较非配对训练过程中原始图像与循环重构图像的差值,可以表示为:

 SSIM loss 

循环一致性损失由原始图像与循环重构图像之间的L1损耗计算。然而,原始图像和循环重建图像之间的计算损失不足以恢复所有的结构信息,因为模糊图像大多是严重损坏的。SSIM测量两个个图像之间的结构相似性。众所周知,人类的视觉系统对结构细节非常敏感。大气中的雾霾使其结构细节难以察觉。SSIM通过主要关注边缘和纹理的相似性来模仿人类的感知。特别是,它通过在图像去雾处理过程中保留恢复的无雾图像中的结构细节来提高场景可视性。因此,有必要了解网络的结构一致性损失随Lcycle的变化。在这项工作中,我们使用SSIM作为损失函数。对于正向映射X→Y,SSIM损耗计算如下:

对于反向映射Y→X,类似的计算过程如下: 

因此,完整的SSIM损失计算公式为: 

Loss in negative sample punishment mechanism 

在3.4节中,我们详细描述了负样本惩罚机制。它迫使生成器构建更真实的输出。对于霾域,负损失定义为式9。Pdata-blurry表示模糊数据,Pdata-colorjitter表示颜色抖动数据。

同理,清晰图像域的负损耗为Lneg (Db, X),则完全负损耗计算公式为:

Final objective function 

结果展示 :

图3不同发生器结构在sots测试集上的图像去雾效果。A和b分别代表雾霾和干净图像。c和d分别表示Dehazeformer发生器和原始CycleGAN发生器的去霾结果 

图4局部-全局鉴别器在训练早期对去霾图像和该图像的几个patch的输出。这张图片来自sots室内数据集。整个图像的鉴别器输出显示在右上角 

The effect of local–global discriminator

局部-全局鉴别器可以提供更大的梯度来更新生成器,当这些随机裁剪的斑块位于有雾霾的区域。其中,利用公式3计算发电机的损耗。因此,当D(G(xi))较小时,LG较大。鉴别器的局部和全局输出如图4所示,这是生成器在训练初期生成的带有残余雾霾的图像。右上角的0.422是鉴别器对整个图像的输出。其他值是几个patch的discriminator的输出。可以发现,这些有雾霾的斑块得分明显低于整幅图像和其他清晰的斑块。因此,这些有雾霾的斑块将为生成器提供更大的梯度。

The effect of negative sample punishment mechanism

考虑了负样本惩罚机制,以防止生成器产生视觉上不期望的输出。鉴别器在训练过程中使用真实数据的负样本进行更新。为了证明鉴别器将负样本识别为假图像,我们在训练中输入一个固定图像及其两个负样本到鉴别器中。这些底片样本包括一个模糊的图像和一个彩色抖动图像。当鉴别器输出更接近于1时,认为输入图像更接近真实图像。当该值接近于0时,则认为输入图像为假图像。图5显示了鉴别器在训练过程中对真实图像和两个负样本的输出。我们可以看到,随着算法的收敛,实际数据的鉴别器输出逐渐接近0.5。两个负样本的判别器输出都接近于0,这意味着在整个训练过程中,判别器对负样本的容忍度一直很低。

结论:

在本研究中,我们提出了一种称为dfc-dehaze的无监督方法用于单幅图像去雾。该方法不需要配对图像。我们利用Dehazeformer-t作为生成器将其扩展到无监督域。为了生成更真实的去雾图像,我们提出了一种negative punishment mechanism来防止生成器输出不真实的图像。此外,局部-全局鉴别器利用补充的局部信息来引导发生器改进除雾。结合SSIM损失循环一致性损失,保留了恢复后无雾图像的结构细节,提高了场景的可视性。实验结果表明,该方法优于其他无监督和基于先验的方法。然而,DFC-dehaze具有相当复杂的结构,需要大量的损失函数来正则化。这种复杂性使得在训练过程中难以实现收敛。在未来的工作中,我们打算使用对比学习来规范网络。此外,我们还将生成一个大规模的未配对的真实世界的雾霾/清晰数据集,并将我们的方法扩展到真实世界的去雾。

注释:

(1)

自注意力(Self-Attention)是Transformer架构中的关键组件之一,它在处理序列数据(如文本、音频、图像等)时能够捕捉不同位置之间的关系和依赖性。

自注意力机制允许模型为输入序列中的每个元素分配权重,这些权重表示了当前元素与序列中其他元素之间的关联程度。通过计算这些权重,模型可以将全局的上下文信息纳入到每个元素的表示中,从而使得模型能够更好地理解序列中的各个部分之间的关系。

在自注意力机制中,每个输入元素都被表示为三个不同的向量:查询(Query)、键(Key)和值(Value)。具体来说,对于一个输入序列中的某个元素,通过将其与所有其他元素计算相似度得到查询向量,然后使用这个查询向量与其他元素的键向量计算权重。最终,将这些权重与值向量进行加权平均,得到最终的表示。

自注意力机制可以有多个头(multi-head),每个头都学习一组不同的查询、键和值的映射,然后将这些头的结果进行组合。这种多头自注意力可以允许模型在不同的关系空间中学习,从而更好地捕捉输入序列的复杂关系。

总之,自注意力机制使得Transformer能够处理不同位置之间的依赖关系,从而在自然语言处理和计算机视觉等领域取得了显著的成功。它允许模型在处理序列数据时具有更强的建模能力,从而实现更好的性能。

(2)

Swin Transformer(Swin-Transformer)是一种用于计算机视觉任务的Transformer架构,特别适用于处理高分辨率图像。它的设计旨在解决传统Transformer在处理大尺寸图像时所面临的计算和内存限制问题,同时保持对全局信息的建模能力。

Swin Transformer引入了一种层次化的分区策略,将输入图像划分为一系列固定大小的块,称为"局部窗口"(local windows)。每个局部窗口内的像素被展平并作为序列输入到Transformer编码器中。这种分区策略有效地减少了计算复杂性,并允许模型在不同层次上进行全局信息的聚合。

Swin Transformer的主要特点和创新点包括:

1. 层次化分区:通过将图像划分为局部窗口,Swin Transformer能够平衡全局和局部信息的处理,从而更好地捕捉不同尺度下的特征。

2. 窗口交换注意力(Window-based Token Swapping):为了促进窗口之间的信息传递,Swin Transformer引入了窗口交换注意力,使得每个窗口可以与其他窗口交换信息。

3. 深层的局部-全局交互:Swin Transformer在多个层次上进行局部-全局交互,以更好地整合不同尺度下的信息。

4. 小型参数规模:相较于传统的Transformer架构,Swin Transformer在处理高分辨率图像时能够使用更少的参数,从而降低了计算和内存开销。

Swin Transformer在多个计算机视觉任务上取得了优秀的性能,例如图像分类、目标检测和语义分割。它的设计思想和创新之处使得它成为处理高分辨率图像的一种强大架构选项。 

(3)

Layer Normalization(层归一化)是一种深度学习中常用的归一化技术,用于提高神经网络的训练稳定性和性能。它类似于 Batch Normalization(批归一化),但是在归一化的时候更关注单个样本或特征的维度。

Layer Normalization 在网络的每一层内对每个样本的每个特征进行归一化。具体而言,对于每个样本,Layer Normalization将其在同一特征维度上的值进行归一化,以使其均值为0、方差为1。这样可以减少梯度消失和梯度爆炸的问题,有助于加速训练过程。

Layer Normalization 的计算方式如下:

对于一个具有 N 个样本的特征向量 x = [x1, x2, ..., xN],进行 Layer Normalization 的计算步骤为:

1. 计算均值 μ = (x1 + x2 + ... + xN) / N。
2. 计算方差 σ^2 = ((x1 - μ)^2 + (x2 - μ)^2 + ... + (xN - μ)^2) / N。
3. 对样本 x 的每个特征进行归一化:y = (x - μ) / sqrt(σ^2 + ε),其中 ε 是一个小的常数,用于防止除以零的情况。
4. 对归一化后的结果进行缩放和平移,以便网络可以学习适当的线性变换:z = γ * y + β,其中 γ 和 β 是可学习的参数。

Layer Normalization 通常应用于神经网络的每一层,可以在激活函数之前或之后使用。它在循环神经网络(RNNs)和自注意力机制(如 Transformer)等模型中也有广泛应用,有助于提高训练的稳定性和收敛速度。

(4)

SK Fusion(Selective Kernel Fusion)是一种用于卷积神经网络(CNN)的特征融合方法,旨在增强网络在不同尺度上的感受野和语义信息的表示能力。它通过自适应地选择和融合不同大小的卷积核来实现这一目标。

在传统的卷积神经网络中,通常使用固定大小的卷积核来捕捉图像中的局部信息。然而,在现实世界中,图像中的不同物体和结构可能在不同的尺度上具有不同的视觉特征。SK Fusion 的思想是通过选择性地融合多个卷积核,以适应不同尺度下的特征提取需求。

SK Fusion 的核心思想是使用一个注意力机制来动态地为不同尺度的卷积核分配权重。具体来说,对于每个通道(或特征图),SK Fusion 计算一个注意力向量,该向量用于控制在融合过程中每个卷积核的贡献。通过学习适当的注意力权重,SK Fusion 可以使网络更有选择地聚焦于不同尺度上的信息。

SK Fusion 的基本步骤如下:

1. 对于输入的特征图,使用不同大小的卷积核分别进行卷积操作,得到一组特征图。

2. 计算每个卷积核的注意力权重,这可以通过池化、全局平均池化、全局最大池化等操作得到。

3. 使用注意力权重对卷积核的特征图进行加权融合,生成最终的特征表示。

SK Fusion 的优势在于,它可以自适应地捕捉不同尺度的信息,从而增强了网络的感受野,提升了语义表示能力,有助于改善视觉任务的性能。这种方法已被证明在图像分类、目标检测和语义分割等任务中取得了良好的效果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/175929
推荐阅读
相关标签
  

闽ICP备14008679号