摘要:我们从一组未配对的清晰和模糊图像中提供了一个实用的基于非配对学习的图像去雾网络。本文提供了一种新的视角,将图像去雾处理为两类分离因子去纠缠任务。分为清晰图像重建的任务相关因子和雾霾相关分布的任务无关因子。为了在深度特征空间中实现这两类因素的解纠缠,在CycleGAN框架中引入了对比学习,通过引导生成的图像与潜在因素相关联来学习解纠缠表示。在此基础上,本文提出的对比解纠缠除雾方法(CDD-GAN)利用负发生器配合编码器网络交替更新,从而产生具有挑战性的负对抗样本(challenging negative adversaries.)。然后将这些负对抗样本与骨干表示网络端到端进行训练,通过最大化对抗性对比损失来增强判别信息并提高因子解纠缠性能。在训练过程中,我们进一步证明了难负样本可以抑制任务无关因素,不配对的清晰样例可以增强任务相关因素,从而更好地促进雾霾去除,帮助图像恢复。在合成数据集和真实数据集上进行的大量实验表明,我们的方法对现有的非配对去雾基线具有良好的性能。
背景:
当配对数据不可用时,如何学习SID网络?为了解决这一问题,最近的一些研究[12,11,17,30]试图探索不同的非配对除雾方案,主要分为两种趋势。第一种是半/无监督迁移学习[23,12,11],他们要么利用CycleGAN的循环结构[55],要么利用设计域自适应范式[40,3]来提高算法本身的泛化能力。上述基于迁移学习的方法将SID作为图像到图像的转换案例,通过利用有限的标记数据并添加辅助优化项来实现。由于模糊和无模糊图像的领域知识是不对称的,这些基于cyclegan的策略仅使用弱约束来捕获两个不同领域之间的精确映射是很费力的。此外,这些方法忽略了潜在空间中的潜在关联[7],没有充分挖掘SID的有用特征信息,导致性能次优。
考虑到朦胧输入是几个简单层(即场景亮度层、透射图层和大气光层)的纠缠,另一种流行的方法可以被视为基于物理的解纠缠问题。基于这一思路,一些研究[49,21,20,30]充分考虑了雾霾过程的物理模型,采用三个联合子网络将给定的雾霾图像分解为这三个组成部分,从而估计雾霾,恢复清晰图像。虽然学习解纠缠表征具有一定的天然优势,但从模糊输入中解纠缠为三个隐藏因素并不容易。此外,由于模型只是对现实世界的粗略近似,依靠基于物理的模型来设计SID网络将不会使该方法具有鲁棒性,特别是在非均匀雾霾条件下。
根据以上两条思路,我们通过简化纠缠模型本身来重新思考模糊图像的形成。受[42,28]中类似直觉的启发,我们做出了一个简单而优雅的因素解纠缠假设,将模糊图像视为两个可分离部分的纠缠,一个是任务相关因素(例如,清晰背景图像的颜色、纹理和语义信息),另一个是任务无关因素(例如,雾霾分量的分布)。在这项工作中,我们的关键见解是通过增强任务相关因素,同时抑制潜在空间中的任务无关因素来制定良好的除雾模型。换句话说,通过将具有相同值的这些因素聚类在一起并隔离具有不同值的其他因素,可以帮助从学习到的明确嵌入中重建清晰的图像。直观的事实是,相同的因子值会产生与该因子相关的相似的图像特征[33],反之亦然。因此,这鼓励我们将最近成功的对比学习引入到经常使用的未配对对抗框架CycleGAN中,引导生成的图像与潜在因素相关联,从而促进学习表征完成因素解纠缠,帮助图像恢复。
本文提出了一种不使用成对训练信息的对比解纠缠除雾方法(CDD-GAN)。具体来说,我们引入了一个双向解纠缠转换网络作为所提出的CDD-GAN的主干。与gan中传统的对比损失[34]不同,我们采用负生成器在图像生成器编码器上执行对抗性对比机制[44],从而产生一系列具有挑战性的负对手。有了这些难的负面对手,骨干表示网络上的图像编码器将学习对潜在因素的更有区别的表示,从而我们可以解开这些因素在双向翻译过程中的离散变化。当上述两类因素分离得很好时,图像解码器将更好地隔离那些与任务无关的因素,并获得更准确的表示,从而获得高质量的输出。
我们提供了以下贡献:
(1)我们重新思考了图像去雾任务,并提出了一个有效的非配对学习框架CDD-GAN,它首先尝试利用解纠缠因子表示来促进潜在空间中的雾霾去除。
(2)我们将对抗性对比损失引入到CDD-GAN中以实现因素解纠缠,其中难的负样例可以抑制任务无关因素,而未配对的清晰例可以增强任务相关因素。
(3)在合成和真实世界的数据集上进行了大量的实验,并证明我们的方法优于现有的不成对的去雾网络,并取得了令人鼓舞的性能。
模型构建:
Contrastive learning
对比损失在自监督和无监督表示学习中已经证明了它的有效性[5]。最近的研究将对比学习应用到低层次的视觉任务中,如去雾[47]、去雨[7]、图像超分辨率[43]、图像间翻译[34,14]等,都取得了较好的效果。对比学习中最关键的设计是如何选择消极因素。与以往的方法不同,我们从源图像中不同位置的patch中采样负例,我们以对抗的方式主动训练一组负例作为一个整体。与我们的方法最接近的是[44],但不同之处在于,我们的方法在CycleGAN框架中执行对比操作,这得益于在反向循环中挖掘未配对的清晰示例的属性。
gan中的解纠缠
gan中的解纠缠方法[6,13]已经被提出并用于从隐藏表示中分解和重组单个因素的表示。大多数解纠缠框架试图学习表征,这些表征捕获潜在空间中不同的变化因素。最近,Ye等人[50]在解纠缠图像平移框架中将下雨图像分解为无雨背景和雨层。受[33]的启发,我们将对比学习灵活嵌入到解纠缠翻译网络中,实现端到端训练,有利于图像解纠缠。
该方法
设Dunpair = I I H, Iπ I N I I =1为未配对SID的训练数据集,其中排列π表示每对朦胧图像I I H和清晰图像I I HI πi N没有任何内容对应。unpaired SID的目标是学习一个深度模型,在没有地面真值标签监督的情况下,基于unpaired数据集Dunpair来探索其内在联系,以估计无雾图像。为了实现这一目标,现有的基于解纠缠的非配对SID方法大多在大气散射模型假设下,经验地构建了三个联合解纠缠子网络。在形式上,
其中,A表示大气光,t(x)表示每个像素坐标上的透射图。与这些方法通过描述图像空间中的纠缠过程来指导层解纠缠不同,我们通过在特征空间中简化纠缠模型本身来重新思考模糊图像的形成。从特征分布学习的角度来看,可以表示为
其中,雾霾图像p(IH)的分布是清晰图像p(IN)(包含任务相关因子)和雾霾分量p(IH)(包含任务无关因子)的联合分布。如果我们能从p(IH)中分离出与任务相关的因子cr和与任务无关的因子cirr,就能得到清晰的表示。然后,利用去纠缠的任务相关因子恢复清晰的图像。
为了实现因素解纠缠,最近的对比表征学习可能为指导无二义嵌入的学习打开了一扇门。由于直观的事实是相同的因子值会产生与该因子相关的相似的图像特征,因此我们建议通过比较生成图像的特征来解开这两类因子的离散变化。我们建议的框架的细节如下所述。
框架体系结构
基于上述分析,我们在GAN框架中制定了对比解纠缠,以获得更好的非配对SID性能。图1显示了我们开发的对比解纠缠除雾方法(CDDGAN)的总体架构。由于CycleGAN的天然优势可以充分挖掘未配对清晰图像的有用特征属性,因此我们引入了双向解纠缠平移网络作为所提出的CDD-GAN的主干。
直观地,生成器的前半部分表示为编码器,后半部分表示为解码器,并分别定义为Genc和Fenc,然后为Gdec和Fdec。在我们的框架中,两条交替更新的路径(即对比路径和对抗对比路径)进行极小极大博弈,以实现潜在空间中的因素解纠缠。理想情况下,我们注意到,增强任务相关因素以及隔离任务无关因素将为构建更好的SID框架带来双重好处[42]。我们将在4.4节中用特征可视化来说明它。因此,这种对比解纠缠设计的优势是双重的。首先,任务无关因素的隔离可以减少编码器网络表示的模糊性,从而指导编码过程学习更明确的嵌入。另一方面,任务相关因素的增强可以促进解码器网络表征的能力,以指导更精确映射的学习
本文综述了所提出的对比解纠缠除雾方法(CDDGAN)。在我们的框架中,两个交替更新的路径进行极小极大博弈,以实现潜在特征空间中的因子解纠缠。在一条路径上,用传统的对比学习方法训练骨干表示网络。在另一条路径上,消极生成器执行对抗性对比学习,以推动消极来密切跟踪积极查询。这里,我们省略了两个鉴别器。
为了捕获特征空间中p(IH)和p(IN)之间的可变性,类似于[14]中的双重学习设置,我们首先从Genc和Fenc的L层中提取图像的特征,然后将其发送到一个二层多层感知器(MLP)表示网络R.与之前随机抽样的负例方法[7,34,14]相比,我们引入负生成器Gneg和Fneg,以对抗的方式基于图像的嵌入特征产生更具挑战性的负N,从而使它们能够在优化过程中密切跟踪表征的变化[44]。借助对抗性对比损失,这些硬负对手与图像编码器网络(即图像生成器和表示网络)端到端进行训练,引导生成的图像与潜在因素相关联,从而促进学习到的表示在双向翻译过程中完成因素解纠缠。最后,CDD-GAN的图像解码器将去除那些不用于生成恢复图像的任务无关因素,以生成高质量的去雾结果。对抗性对比损失的细节如下图所示。
对抗对比损失
解决离散变化的两种因素,我们定义的代码由两部分组成:类别值c∈Y = {cr、cir}和分布值z∼z(0, 1)。发电机Genc和Fenc c和z作为输入,产生生成图像Genc (z, c)和Fenc H→NH (z, c)。作为一个例子,给出一个查询图像问产生潜在的代码,我们提取特征表示生成的图像,即f = EL (Genc (z, c))。我们希望相同的因子值c产生相似的图像特征f,甚至与不同的z匹配,反之亦然[26,33]。在这里,我们将相应的相似特征表示为“正的”f + = EL(Genc(z +, c+)),而将不相似特征表示为“负的”f - adv,i = EL(Genc(z - adv,i, c - i))。值得注意的是,我们以对抗的方式积极地将一组负面示例作为一个整体进行训练,实验表明我们的策略可以提高解纠缠性能(参见第4.4节)。
具体来说,通过传统的对比学习来学习训练网络骨干网的表示,其目的是通过最小化对比损失,在特征空间中拉取相似的特征分布,推开不相似的特征。另一方面,我们对Genc和Fenc进行对抗性对比学习,配合R交替更新,使对比损失最大化。通过这些由Gneg和Fneg产生的负面对手,编码器网络将学习潜在因素的更有区别的表示,从而使负面示例紧密跟踪正面查询。总之,这导致了一个极大极小问题,即对于CDD-GAN,两个相互作用的参与者(即R和N)与对抗性对比损失Lac共同训练。数学上,它的形式是:
其中R和N通过交替训练达到平衡。一般采用一对梯度下降和梯度上升交替更新网络参数θR和θN,其公式为:
其中ηR和ηN是更新网络的正学习率和负学习率。通过约束对比分布学习与Lac,这些表示变得很好区分,并可以表示为
其中τ为标量温度参数
其他损失
Diversity loss。为了鼓励在Lac中产生与[44]类似的多种硬负例Ni = {N0, N1,···,Nl},我们通过组合不同的输入噪声引入分集损失,其公式如下:
式中,R为来自R的空间平均特征,vi为从标准高斯分布中随机采样的噪声向量。
Total variation loss为了去除恢复图像中的伪影,我们对NH应用总变差:
其中,∂h和∂v分别表示水平和垂直梯度算子。
Dark channel loss受[15,23,40]的启发,我们还利用了清晰图像的暗通道,其表示为:
其中x、y为像素坐标,N(x)为以x为中心的图像patch, ic为第c个颜色通道。因此,我们施加暗通道损失来进一步约束去雾图像的暗通道的稀疏性:
完整的目的。负发生器和编码器网络的全目标函数如下:
其中λi为平衡权值,Ladv和Lcycle为生成对抗损失和循环一致性损失。在这里,我们经验地设λ1 = λ2 = 1, λ3 = 10−1,λ4 = 10−3,λ5 = 10−2。
结论:本文提出了一种新的对比解纠缠去雾方法(CDDGAN)来解决具有挑战性的未配对SID问题。为了实现潜在特征空间的因素解纠缠,在CycleGAN框架中引入负生成器,利用对抗性对比损失分离任务无关因素。另一方面,利用非配对清晰示例的特征来增强任务相关因素的学习。大量的实验表明了该模型的有效性和可扩展性。在未来的工作中,我们计划探索将对比学习应用于低水平视觉领域更复杂的因素解缠问题的可能性。
注释:
(1)
在图像除雾领域,"negative adversaries"(负对抗样本)通常指的是一种对抗性的干扰或扰动,它被添加到图像中,目的是对抗图像除雾算法的性能。这些对抗性样本可能是针对特定除雾算法的,也可能是通用的,即对多种除雾算法都有效。
图像除雾算法的目标是去除图像中由于雾霾或其他大气因素导致的模糊和降低对比度的效果,以还原图像的清晰度和细节。然而,当加入负对抗样本时,这些干扰可能会误导除雾算法,导致其输出质量下降或产生错误的去雾结果。
负对抗样本在图像处理中是一种普遍存在的问题,不仅限于除雾领域。为了增强图像除雾算法的鲁棒性,研究人员通常尝试采用对抗性训练和其他防御策略,以减少负对抗样本对除雾算法的影响。这些防御方法的目标是使除雾算法能够更好地处理带有对抗性干扰的图像,从而提高其在实际场景中的应用性能。
(2)
"Backbone"和"Representation Network"都是深度学习中常用的术语,通常与图像处理或计算机视觉任务相关。
1. Backbone(骨干网络):
在深度学习中,特别是在卷积神经网络(Convolutional Neural Networks,CNN)中,"Backbone"指的是网络的主要部分或基础架构。骨干网络负责从输入图像中提取特征,并构建一个多层次的特征表示,以便用于特定任务的下游处理。常见的骨干网络包括VGG、ResNet、MobileNet、EfficientNet等。这些网络通常在ImageNet等大规模数据集上进行预训练,然后可以被用于不同的计算机视觉任务,如图像分类、目标检测、语义分割等。
2. Representation Network(表示网络):
"Representation Network"通常是指学习将输入数据转换为更高级别的表示或特征的神经网络。在计算机视觉任务中,这些网络通常被用于学习图像或视频的表示,以便能更好地捕捉数据的语义信息和结构。这些表示通常是对输入数据的有意义的压缩,可以用于更高级别的任务,例如目标识别、场景理解等。骨干网络也可以被看作是一种表示网络,因为它们负责学习图像的特征表示。
总结起来,"Backbone Representation Network"可以理解为一个深度学习网络的核心部分,负责从输入数据中提取有意义的特征表示,以便用于更高级别的计算机视觉任务。
(3)
在机器学习和模式识别领域,"discriminative information"(判别信息)通常指的是在数据中能够区分不同类别或类别之间差异的关键特征或信息。
在分类任务中,我们通常希望从输入数据中提取出对于区分不同类别而言最具有代表性的特征。这些特征能够有效地将不同类别的样本分开,使得模型能够更好地区分不同类别的数据点。这些关键特征被称为判别信息,因为它们的存在和差异能够帮助分类器做出正确的分类决策。
例如,在图像分类任务中,对于区分不同物体类别而言,一些关键特征可能是物体的纹理、形状、颜色等。在自然语言处理中,对于文本分类任务,关键特征可能是词汇、词序和句子结构。
判别信息的提取对于模式识别任务非常重要,因为它决定了分类器的性能。在训练模型时,我们希望模型能够学习到最能区分不同类别的判别信息,以便在未见过的数据上进行准确的预测。为了提取这些判别信息,通常使用特征工程或者端到端的深度学习模型来学习数据的表征。
(4)
在机器学习和生成模型领域,"negative generators"(负生成器)是指一类生成模型,它们的主要目标是生成看起来真实但实际上不存在的样本,这些样本通常与训练数据中的正样本有所区别。
生成模型的目标是学习从潜在空间(latent space)中生成与训练数据相似的样本。对于负生成器,它们试图生成看起来属于训练数据分布的样本,但实际上这些样本在真实世界中并不存在。这些样本可以被称为"虚假"样本或"负样本",因为它们并不代表实际观察到的数据。
负生成器通常用于生成对抗网络(Generative Adversarial Networks,GANs)和其他生成模型的训练中。在GAN中,负生成器与判别器(discriminator)进行对抗训练。负生成器通过学习从潜在空间中生成样本,试图欺骗判别器,使其无法区分生成的样本与真实数据。而判别器的目标是尽可能准确地区分真实样本和虚假样本。随着对抗训练的进行,负生成器逐渐提高其生成样本的质量,使其越来越接近真实数据的分布。
尽管负生成器生成的样本并不是真实数据,但它们对于生成模型的训练非常重要。通过与判别器的对抗训练,负生成器能够学习到真实数据的特征和分布,从而提高生成模型的表现和生成样本的质量。
(5)
设计域自适应范式(Domain Adaptation Paradigm)是一种机器学习和深度学习领域中用于解决领域差异问题的方法。在机器学习中,通常假设训练数据和测试数据遵循相同的数据分布,但在现实世界中,由于不同的采集条件、设备、环境等因素,训练数据和测试数据之间可能存在领域差异。
领域差异指的是训练数据和测试数据在特征分布或标签分布上的不同,这会导致在将模型从训练领域迁移到测试领域时性能下降。设计域自适应范式的目标就是解决这种领域差异问题,使得模型能够在测试领域上表现良好,即使训练数据和测试数据的分布不完全一致。
设计域自适应范式通常包含以下步骤:
1. 领域差异建模:首先,需要对训练领域和测试领域之间的差异进行建模。这可以通过一些统计学方法或深度学习的特征提取方法来实现。
2. 特征对齐:在这一步中,会对训练数据和测试数据的特征进行对齐,以减少特征分布的差异。常见的方法包括最大均值差异化(Maximum Mean Discrepancy,MMD)、对抗生成网络(Generative Adversarial Networks,GANs)等。
3. 标签对齐(可选):有时候,可能还需要对训练数据和测试数据的标签进行对齐,以进一步减少标签分布的差异。这可以通过一些半监督学习或自监督学习的方法来实现。
设计域自适应范式是一个活跃的研究方向,它在解决实际场景中的机器学习问题中具有重要的应用价值,尤其在涉及到跨领域迁移学习或零样本学习等任务时。