Cycle-SNSPGAN基于周期谱归一化软似然估计补丁GAN的真实图像去雾2022

摘要:图像去雾是自动驾驶、交通监控等领域的常见操作。近年来,基于学习的图像去雾取得了很好的效果。然而,从现实世界中捕获模糊/干净图像对来训练图像去雾网络几乎是不可能的。现有的去雾模型大多是从合成生成的雾霾图像中学习而来的,由于存在明显的域偏移,对真实雾霾场景的泛化效果较差。为了解决现实世界模糊图像所带来的这种不成对问题,我们提出了周期谱归一化软似然估计补丁生成对抗网络(Cycle- snspgan)用于图像去雾。Cycle-SNSPGAN是一种无监督去雾框架,用于提高对真实朦胧图像的泛化能力。为了利用现实世界朦胧图像的未配对样本而不依赖于干净图像,我们设计了一个SN-Soft-Patch GAN,并利用了一种新的循环自感知损失,避免了使用真实图像来计算感知相似性。并且采用了较大的色彩损失,使去雾后的图像达到人们期望的亮度。

在CycleGAN[10]的激励下,我们利用未对数据开发了一个无监督图像去雾网络,这样真实世界的模糊图像就可以用于网络训练,从而更好地恢复真实世界模糊输入的底层背景细节。鉴于此,我们提出了一种周期谱归一化软似然估计Patch生成对抗网络(称为循环snspgan)用于现实世界的图像去雾。Cycle-SNSPGAN是一种无监督的去雾框架,可以提高在现实雾霾场景下的泛化能力。我们框架的关键部分是提出的SN-Soft-Patch GAN,它是一种有效的GAN,可以利用真实模糊图像的未配对样本进行训练。具体来说,我们采用了谱归一化GAN[11]和patch discriminator[12]来提高网络的训练速度和稳定性。此外,我们还设计了一种新的软似然估计方案来计算鉴别器的输出。此外,在训练过程中,我们利用颜色信息的先验知识作为损失函数,使去雾图像像人们期望的那样变亮,并开发了一种新的循环自感知损失,使去雾图像更加逼真。在合成数据集和真实朦胧图像上的实验表明,我们的模型优于最先进的去雾算法,即使只有一个小数据集训练我们的Cycle-SNSPGAN。

Cycle-SNSPGAN利用了之前的专业知识,并从未配对的真实世界训练数据中获益。图1展示了不同方法对真实世界朦胧图像的图像去雾结果,其中提出的Cycle-SNSPGAN产生了更清晰和感知上令人愉悦的图像,而现有的方法引入了额外的伪像,如低对比度、晕和雾霾残余。在合成数据集和现实世界朦胧图像上的实验验证了我们的方法优于最先进的去雾方法。

总之,我们的方法的贡献主要有四个方面。

•我们提出了一种基于非配对数据的无监督真实世界图像去雾框架,称为循环频谱归一化软似然估计补丁生成对抗网络(Cycle- snspgan)。收集真实世界雾霾图像的实际未配对样本进行训练成为可能,从而提高了网络对不可预测的真实世界雾霾图像的泛化能力。

•为了提高去雾图像的清晰度,我们提出了一种有效的GAN,即SN-Soft-Patch GAN,它由频谱归一化GANpatch鉴别器和所提出的软似然估计解决方案组成。

•为了从模糊图像中保留大尺度结构和小尺度细节,我们开发了一种新的循环自感知损失来计算感知相似性,而不需要知道真实的干净图像。此外,我们将模糊图像的颜色特征作为先验知识,并引入颜色损失,使去雾图像更加逼真。

 背景:

基于先验的方法

传统的基于先验的方法是通过探索多个手工制作的先验来恢复模糊图像[6],[13]-[15]。最具代表性的工作是He等[6]提出的Dark Channel Prior (DCP)算法,该算法基于对清晰的非天空图像的统计,可以有效地估计传输图。然而,这种先验在某些情况下是不可靠的,比如带有天空区域的模糊图像。此后,基于不同的假设,设计了许多方法来提高图像去雾的性能[15],[16]。此外,Fattal[17]基于观察到清晰图像斑块的像素呈现一维分布事先制定了色线先验。Berman等[18]发现无雾图像可以用几百种不同的颜色近似,然后提出非局部颜色先验(non-local color prior, NCP)用于图像去雾。虽然这些方法在图像去雾方面取得了成功,但这些先验往往会导致颜色失真,用户必须多次调整参数以确定最佳公式。

基于学习

随着cnn的快速发展,人们提出了许多基于学习的图像去雾方法[7],[19]-[22]。早期的方法主要集中在从输入的模糊图像中估计传输图。如Cai等[19]利用粗CNN生成雾霾输入的整体透射图,再通过大气散射模型恢复无雾图像。Ren等人[21]开发了MSCNN框架,该框架首先生成粗传输图,然后对粗结果进行细化。然而,传输图估计不准确严重影响消雾效果的质量。最近的基于学习的方法是通过监督学习从模糊输入直接生成无模糊图像。由Li等人提出的AOD-Net[7]。是首个采用端到端方式进行图像去雾的模型,该模型重建了大气散射模型,可以直接从朦胧图像中输出无雾图像。Qin等[20]提出了一种基于注意力机制的端到端特征融合网络直接恢复无雾图像,该网络在SOTS(一种测试去雾结果的基准数据集)上表现良好[23]。由于这些方法总是需要足够的配对数据来训练网络,而这样的配对数据很难获得。鉴于此,基于学习的方法通常是在合成的模糊数据集上进行训练的。合成图像和真实图像之间的差距降低了它们去除雾霾的能力。

gan在图像去雾中的应用

受到GAN在其他图像处理任务中取得成功的启发[24]- [26],Zhu等[27]首次将GAN引入到图像去雾领域。他们开发了一个基于大气散射模型的图像去雾网络,并通过一个香草鉴别器来判断输出。随后,一系列基于gan的图像去雾作品如雨后春笋般涌现[28]-[33]。Li等[30]提出了一种条件GAN直接生成无霾结果,而不是求解大气散射模型。Qu等人[34]开发了一种新型的基于gan的除雾网络,称为EPDN,随后是一个精心设计的细化器,没有任何物理模型。由于这些方法和基于学习的方法一样需要配对数据进行训练,因此在处理现实世界的朦胧图像时能力较差。最近,Zhu等人[10]提出了CycleGAN,这是一种新的基于非成对数据训练的图像到图像翻译架构。在此工作的激励下,Engin等[9]开发了用于非配对单幅图像去雾的增强CycleGAN,即Cycle-Dehaze。Shao等[35]提出了一种基于CycleGAN的图像去雾域自适应网络,该网络包括一个图像平移模块和两个图像去雾模块。


综述

我们提出Cycle-SNSPGAN是为了充分利用未配对图像进行网络训练,增强在真实场景下的去雾能力。如图2所示,Cycle-SNSPGAN由两个发生器(GA和GB)和两个鉴别器(DA和DB)组成。我们采用遗传算法将模糊图像通过GA以周期一致的方式映射到无雾图像。同样地,使用GB将无雾图像反向映射到有雾图像。鉴别器DA和DB的设计是为了使GA和GB生成的图像具有与目标域相似的特征分布,从而使生成的图像更加逼真。此外,我们的网络在每个领域共享相同的网络结构,但有不同的输入。

整个流程如图2所示:首先,将未配对的模糊图像x和无模糊图像y同时送入网络。然后,生成器GA和GB将输入图像分别映射到假无雾图像y和模糊图像x,即GA(x)→y和GB(y)→x。之后,判别器DA和DB会判断生成器输出的y(或x)是真图像还是假图像,从而提高生成图像的质量。接下来,我们将y和x分别输入到GB和GA,分别生成重建的模糊图像x和无模糊图像y。这样,就可以通过重构图像和输入图像计算出循环一致性损失,以循环的方式训练网络。

备注:对抗性训练的目的是促进GA和GB生成更逼真的图像。因此,我们使用DA和DB来判断y和x,并与生成器进行对抗性训练。而在训练过程中,GA、GB、DA和DB的参数通常在一次迭代中分别更新。如果使用鉴别器同时鉴别重构图像(即x和y),则DA和DB的参数将在一次迭代中更新两次,并且生成器参数的更新也会受到影响。众所周知,GAN本身的训练是非常困难的,并且可能更新两次参数可能导致模式崩溃,这进一步降低了最终生成图像的质量。另外,虽然对重构图像(x和y)进行判断在技术上是可行的,但这将导致计算复杂度的显著增加。因此,在训练过程中只需要对输出图像进行一次判断,就可以进行对抗性训练。 

网络体系结构

虽然CycleGAN非常有效,但是在训练过程中仍然存在一些问题,例如模式崩溃和收敛困难,这些问题会降低最终去雾图像的质量。为了解决这些问题,我们开发了一种简单而有效的GAN,即SN-Soft-Patch GAN,它由三部分组成:谱归一化GAN, patch鉴别器和一种新的软似然估计解决方案。我们首先在鉴别器的设计中引入了谱归一化GAN[11],这是一种有效的归一化方法,可以提高训练的稳定性。其次,采用patch GAN减小模型参数,提高网络训练的收敛速度。然后,提出了一种新的软似然估计方案,以提高最终去雾图像的整体质量,这将在下一小节中进行描述。此外,为了进一步提高模型的去雾能力,我们的网络中引入了Qin等[36]提出的最新注意力机制(Frequency Channel attention Network,即FCANet)。由于GB和DB的架构与GA和DA相同,我们只给出GA和DA的架构,如图3所示。

生成器:生成器的功能是从对应的雾霾图像(GA)生成去雾图像,或者从对应的无雾图像(GB)生成雾霾图像。在“U-Net”[37]和“ResNet”[38]的激励下,我们开发了一个编码器-解码器网络作为生成器,并引入跳跃连接来避免梯度消失的问题。如图3(a)所示,该发生器可以端到端直接输出去雾(朦胧)图像,该发生器包含编码模块、特征提取模块和解码模块。编码模块由一个初始层和两个下采样层组成。这样,可以将输入模糊图像的特征信息编码到特征映射中。

特征提取模块由9个残差块组成(如图4所示),可以进一步从输入特征中提取更复杂、更深的特征,同时去除雾霾。特征提取后,解码模块采用两次上采样操作和一次Tanh激活函数输出最终去噪图像。此外,如上所述,我们在发电机的设计中引入了FCANet,以提高模型的性能。

 注:使用更复杂的网络架构,如gnn和变压器[39],[40],可能会提高现有模型的除雾性能。然而,由于智能交通系统(如无人机、智能车辆)的硬件和计算能力通常有限,因此轻量级网络更适合用于图像除雾任务。因此,我们采用一个简单而有效的基于resnet的生成器来实现更好的参数-性能权衡。

注意机制:考虑到雾霾分布不均匀的雾霾图像,我们总是希望对雾霾区域去雾,而不是对无雾区域去雾,从而使输出图像具有良好的能见度。由于注意机制已被广泛用于提高神经网络的性能[41]-[43]。受近期研究[36]的启发,我们在生成器和残差块的设计中采用了FCANet,以提高模型的除雾能力,如图3(a)和图4所示。FCANet将通道注意机制(channel attention mechanism)与离散余弦变换(Discrete Cosine Transform, DCT)巧妙地结合在一起,并在SENet[43]的基础上进行扩展,得到了一种新的多频谱信道注意机制。FCANet使我们的模型能够自适应地从不同的特征映射中学习权重,从而增强了网络的去雾能力。此外,引入FCANet后,烧蚀实验结果表明,该模型的性能得到了显著提高。我们在NH-HAZE数据集上对提出的Cycle-SNSPGAN进行了测试[44],以更好地了解其解决不均匀雾霾分布场景的性能。如图5所示,我们的Cycle-SNSPGAN可以有效去除不均匀分布的雾霾。

鉴别器:对于对抗训练,以全卷积方式构造鉴别器,并提出了一种新的SNSoft-Patch鉴别器,以提高vanilla patch鉴别器的性能。如图3(b)所示,我们首先设计了一个谱归一化卷积层来代替传统的卷积层,使训练过程更加稳定。接下来,我们使用了4个非线性ReLU层3个实例规范化层一个sigmoid激活函数来输出一个64 × 64的patch。最后,利用这些patch的值来判断输入图像是真实图像还是由GA生成的假图像。

此外,为了进一步提高最终去雾图像的质量,我们提出了一种新的软似然估计解决方案来计算这些补丁的输出。该方法可以提高鉴别器的识别能力,从而促进发生器输出更高质量的图像

 软似然估计

受Versteegen等人[45]的启发,我们开发了一种新的解决方案来计算patch鉴别器的最终输出,而不是直接计算所有patch的平均值。提出的软似然估计方案可以促使鉴别器关注输入图像的细节特征,从而提高最终去雾图像的整体质量。具体来说,我们首先通过计算每个patch与最小patch似然的接近度来获得权重矩阵。在这里,SoftMax/SoftMin函数用于在求解权矩阵时平滑最大/最小目标函数。之后,我们乘以权矩阵每个patch具有相应的似然,并将它们相加以产生最终输出。最后,对输入图像的输出进行判断,判断它是真图像还是假图像。这样,鉴别器将更加关注低概率区域的变化,而生成器将生成具有丰富细节的图像。具体计算过程可表示为式(1):

在上述公式中,P是鉴别器的最终输出,i表示鉴别器中的每个patch, l表示patch-region的似然,Wi表示权重矩阵,α表示权重矩阵计算过程中的SoftMax或SoftMin操作。我们设置α = 1表示计算SoftMax函数,设置−1表示计算SoftMin函数 

损失函数

与大多数现有的去雾方案不同,我们综合考虑了所有能够提高最终去雾图像质量的积极因素,使其更加清晰逼真。因此,我们开发了一种综合损失,它包含对抗损失循环一致性损失同一性损失颜色损失总变差(TV)损失以及新的循环自感知损失,其表示为

1)对抗损失(Adversarial Loss):利用对抗损失将生成的图像的分布与目标域中的数据分布进行匹配。我们采用最小二乘GAN损失[46]来提高训练过程的稳定性,提高生成图像的质量。对抗性损失的定义如下公式所示: 

其中GA(x)和GB(y)分别为GA和GB生成的假无雾图像和模糊图像。

2)周期一致性损失:由于周期一致性损失,可以收集真实模糊图像的实际非配对样本进行训练。周期一致性损失可由式(7)表示:

 

其中,GB(GA(x))和GA(GB(x))分别为重建的模糊图像和无模糊图像。循环一致性损失的目的是使重构图像与原始输入图像紧密匹配,即GB(GA(x))≈x, GB(GA(x))≈y。

3)同一性损失:除了对抗性损失和周期一致性损失外,我们还采用同一性损失使生成器生成的图像与输入图像的色调一致,如公式(8)所示:

 

同一性损失可以使输出图像与输入图像具有相同的结构,从而提高最终生成图像的质量。我们惊讶地发现,身份损失对增强去雾图像的细节非常有帮助,而许多图像到图像的翻译作品在训练过程中很少注意使用这种损失函数[9],[47],[48]。

4)色彩损失:考虑到雾霾图像的亮度和对比度通常低于无雾图像,我们将这一普遍现象视为先验知识,引入色彩损失[49]来衡量去雾图像与无雾图像之间的色差。这个损失函数可以像人们期望的那样使去雾图像变亮,从而使去雾图像更加逼真。为此,我们首先对去雾图像和无雾图像进行高斯滤波,得到模糊表示,然后计算它们之间的均方误差,公式为(9):

 

其中GA(x)blur和yblur分别为GA(x)和y的模糊图像。由于我们主要关注图像去雾,所以颜色损失只在遗传算法中使用。图6展示了三个真实世界的雾霾样本以及所提出的Cycle-SNSPGAN获得的相应的除雾结果。正如所观察到的,颜色损失的引入使Cycle-SNSPGAN能够产生更明亮和更真实的图像。同时,CycleSNSPGAN具有一定的色彩校正能力。

5) Total Variation Loss:为了去除生成图像中的噪声,使图像更加清晰,我们引入TV Loss[50]来增强生成图像的空间平滑性,如下图所示:

 

其中∇x和∇y分别表示水平和垂直微分运算矩阵。这种损失函数可以提高生成图像的质量,使图像更加清晰。

6)循环自感知损失(Cyclic Self-Perceptual Loss):上述损失函数无法从雾霾图像中恢复所有的纹理信息,特别是在雾霾较浓的情况下。受[51]和[52]的启发,我们提出了一种新的循环自我感知损失,以保护模糊输入的大尺度结构和小尺度细节。

 与普通的感知损失不同,我们的训练过程是基于无监督的学习框架,没有真实图像来计算感知相似性。因此,我们建议直接测量去雾结果与相应的模糊输入之间的感知相似性,而不是测量真实图像。这种感知相似性可以使去雾后的图像与输入图像具有相似的结构和纹理特征,从而可以保留更多的细节特征。我们以循环的方式计算感知损失,即同时计算GA(x)和GB(y)的感知相似度。根据预训练的VGG网络提取的深度特征,感知相似度计算公式为(11):

其中ψ(.)表示在ImageNet上预训练的VGG-16网络中,从第2层和第5层池化层中提取的特征映射。为了验证使用循环自感知损失可以有效去除厚霾,我们使用Dense-Haze数据集[53]对所提出的Cycle-SNSPGAN进行定性评估,如图7所示。虽然场景中仍然有少量的雾霾残留,但是大部分浓重的雾霾已经被去除,图像的可见性也有了很大的提高。 


总结:在这项工作中,我们提出了一种称为Cycle-SNSPGAN的无监督除雾框架,以增强对真实雾霾场景的泛化能力。为了利用现实世界模糊图像的未配对样本进行训练,我们设计了一个SN-Soft-Patch GAN,并利用了一种新的循环自感知损失,避免了使用真实图像来计算感知相似性。这种损失函数可以帮助我们的方法同时保留朦胧图像中的大尺度结构和小尺度细节。此外,将模糊图像的颜色特征作为先验知识,引入颜色损失,使去雾图像更加逼真。在合成数据集和真实朦胧图像上的实验表明,即使只有一个小数据集训练我们的Cycle-SNSPGAN,我们的方法也优于最先进的除雾方法

注释:

(1)

频谱归一化GAN(Spectral Normalization GAN,简称SN-GAN)是一种用于生成对抗网络(GAN)的改进技术。它通过对鉴别器网络中的权重进行谱归一化来稳定训练过程。

在传统的GAN中,鉴别器网络的权重没有任何限制,这可能导致训练不稳定和模式崩溃等问题。SN-GAN通过引入频谱归一化来解决这些问题。具体而言,它通过对每个鉴别器层的权重矩阵进行归一化,将权重矩阵的每一行除以其最大奇异值,从而使权重矩阵的谱范数限制在一个固定的范围内。

频谱归一化可以有效地控制鉴别器网络中的梯度流动,并提高网络的稳定性。这种方法已经在许多生成任务中取得了很好的效果,例如图像生成、语音合成等。

需要注意的是,频谱归一化GAN只是GAN的一种改进技术之一,目前还有许多其他的改进方法被提出和研究。

(2)

软似然估计(Soft Likelihood Estimation)是一种用于参数估计的统计方法。传统的极大似然估计(Maximum Likelihood Estimation, MLE)通常是基于离散观测数据的,它假设观测数据是来自于一个已知的概率分布,然后通过最大化似然函数来估计概率分布的参数。

然而,在某些情况下,观测数据可能是连续的或存在噪声。软似然估计是一种在这种情况下进行参数估计的方法。它通过引入噪声模型或者使用误差函数来处理连续观测数据,并通过最小化误差函数来估计参数。

软似然估计的优势在于它可以更好地处理噪声和连续观测数据,而不仅仅局限于离散观测数据。它可以在更广泛的应用场景中进行参数估计,例如图像处理、信号处理等。

需要注意的是,软似然估计是一种相对于传统的极大似然估计的扩展方法,它在特定的问题和数据类型下可能会有更好的效果。不同的问题和数据类型可能需要选择不同的估计方法来获得更准确的参数估计结果。

(3)

Sigmoid激活函数是一种常用于人工神经网络的非线性激活函数之一。它将输入的连续值映射到一个介于0和1之间的输出值,具体形式为:

\[ f(x) = \frac{1}{1 + e^{-x}} \]

其中,\(e\) 是自然对数的底数,\(x\) 是输入值。

Sigmoid函数在神经网络中曾经被广泛使用,尤其是在早期的网络架构中,如多层感知器(MLP)。它的输出范围在0到1之间,类似于概率的范围,因此在某些任务中,它可以用来表示概率分布或者作为二元分类问题的输出。

然而,随着深度学习的发展,一些问题也逐渐浮现出来。例如,Sigmoid函数在输入值很大或很小的情况下,会出现梯度消失的问题,这可能导致训练过程变得困难。因此,一些新的激活函数,如ReLU(Rectified Linear Unit)及其变种,逐渐成为了更常见的选择,因为它们在处理梯度问题上更具优势。

总之,Sigmoid激活函数在神经网络历史上扮演了重要角色,但在某些情况下可能已经被更现代的激活函数所取代。

(4)

FCAnet是一种基于卷积神经网络(Convolutional Neural Network, CNN)的图像分类模型。它是由Huawei Noah's Ark Lab提出的一种深度学习模型,用于解决图像分类任务。

FCAnet结合了卷积神经网络和注意力机制(Attention Mechanism),以提高图像分类的性能。它采用了多个并行的卷积层和注意力模块,使网络能够自适应地关注图像中的重要区域和特征。

在FCAnet中,卷积层用于提取图像的低级特征,而注意力模块则用于学习图像的高级语义信息。通过引入注意力机制,FCAnet可以自动学习图像中最具有区分性的特征,并增强这些特征的表示能力,从而提高分类性能。

FCAnet在许多图像分类任务中取得了良好的性能,例如物体识别、人脸识别等。它的设计灵感来自于人类视觉系统的特点,旨在提高图像分类模型对重要区域和特征的感知能力。

(5)

注意力模块(Attention Module)是一种在深度学习中广泛应用的技术,用于增强模型对不同输入特征的关注程度。注意力机制的核心思想是根据输入数据的不同部分赋予不同的权重,从而使模型能够更加专注于重要的信息。

在计算机视觉、自然语言处理等领域中,注意力模块的应用非常多样。以下是几种常见的注意力模块类型:

1. **自注意力(Self-Attention):** 这是一种将输入序列的不同位置之间建立关联的方法。自注意力通过计算序列中每个位置与其他位置的相关性分数,然后根据这些分数为每个位置分配权重。Transformer模型中的多头注意力机制就是一种自注意力的应用。

2. **空间注意力:** 在图像处理中,空间注意力用于选择图像中特定区域的特征。它可以帮助模型关注于图像中的重要部分,如目标对象或显著的特征。

3. **通道注意力:** 通道注意力用于调整输入数据中不同通道的重要性。它通过在不同通道上计算权重来自适应地选择性地强调或减弱不同通道的特征。

4. **多尺度注意力:** 多尺度注意力允许模型在不同尺度上关注图像或序列的不同区域。这有助于捕获多尺度的特征,提高模型对输入数据的理解能力。

5. **非局部注意力:** 非局部注意力考虑了输入序列中不同位置之间的所有可能关联,而不仅仅是局部邻近关系。这种注意力模块可以捕获更远距离的依赖关系。

这些是注意力模块的一些常见类型,它们可以被集成到神经网络的不同层次和架构中,以提高模型的性能和表示能力。注意力机制在许多任务中都取得了显著的成功,使得模型能够更加准确地关注输入数据中的重要信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值