Efficient Unpaired Image Dehazing with Cyclic Perceptual-Depth Supervision基于循环感知深度监督的高效非配对图像去雾2020总结

摘要:没有配对无雾图像的图像去雾是非常重要的,因为获取配对图像往往需要很大的成本。然而,我们观察到以前的非对图像去雾方法在深度边界附近往往会受到性能下降的影响,其中深度往往会突然变化。因此,我们提出用循环感知深度监督来退火非对图像去雾中的深度边界退化。再加上双路径特征重用了生成器和鉴别器的主干,我们的模型在NYU Depth V2数据集上实现了20:36的峰值信噪比(PSNR),显著优于其前辈,减少了浮点运算(FLOPs)。

关键词:深度学习,图像去雾,生成对抗网络

我们在之前的工作[4]中发现了两个需要改进的地方:首先,在深度边界附近的区域,它往往难以去除雾霾;其次,缺乏模拟雾霾与景深关系的机制。

为了解决上述两个问题,我们建议使用受Octave Convolutions[2]启发的双路径特征复用主干来改变CycleGAN的生成器和鉴别器,对低分辨率路径的低复杂度场景进行建模,并利用高分辨率路径挖掘细节。

我们总结了我们的主要贡献如下:

1.经验上,我们证明了感知深度监督有助于模型学习更真实的映射。

2.通过对不同空间频率的特征图进行解纠缠,增强了表征能力,降低了计算成本,得到了高效、高性能的非配对图像去雾网络。

图1所示。第一行:一个样本模糊图像和NYU Depth V2训练集上的去雾结果。该模型配备了八度卷积主干和循环感知深度损失,训练到125历元。第二行:由预训练的单目深度估计网络得到的深度图[9]。

 八度卷积:

 图2所示。八度卷积的图解,其中⊕表示元素和。注意,在实践中,高分辨率特征图和低分辨率特征图可能具有不同的通道尺寸。

Octave Convolutions[2]分别通过两组卷积运算对高、低空间分辨率图像信号进行建模,如图2所示。每组卷积操作由两个不共享参数的卷积滤波器组成。第一组卷积操作采用更高分辨率的输入特征图,并生成两个输出:一个保留空间分辨率,而另一个将空间分辨率减半。第二组卷积滤波器接受较低分辨率的输入特征映射,并生成两个输出:一个空间分辨率不变,另一个空间分辨率放大2倍。实际上,Octave卷积层将两个不同空间维度的输入特征映射映射为四个特征映射,其中两个具有更高的空间分辨率,另外两个具有较低的空间分辨率。在相同的维度上对这些特征映射进行元素求和,得到最终的输出。由于这些求和分别来自高分辨率和低分辨率输入,因此实现了横向的空间间分辨率通信。

模型构建:

对于配对图像去雾,最近的趋势是采用多尺度学习[10]和迭代处理[11],然而,这两种方法都可能是计算密集型或内存昂贵的。

此外,它们没有考虑深度。图3突出了深度感知在消雾模型中的重要性,因为它显示了缺乏深度感知的消雾模型难以处理具有复杂深度变化的朦胧图像,导致图像在深度变化平滑的区域通常无雾,而在深度变化突然的区域则模糊不清。

图3所示。示例的基线不配对图像去雾结果。左列为朦胧训练图像,右列对应NYU Depth V2上训练的Cycle-dehaze[4]模型到223个epoch(右上)和220个epoch(右下)的去雾输出。请注意,尽管训练时间很长,模型仍然在深度变化很大的区域挣扎,例如右下角的桌子下面的残余雾霾

为了在我们的模型中引入深度感知,我们利用了深度估计算法的有效性可能受到图像中存在的雾霾的不利影响的观察结果。如图1所示,由于环境模糊,深度估计算法无法捕获图像右侧背景中的走廊。因此,深度估计算法的预测结果对深度变化非常敏感,可以作为监督信号。在除雾模型中引入深度感知。 

我们在CycleGAN的基础上构建了我们的方法,并将Xian等人[19]预训练的单目深度估计网络作为循环永久损失组件。添加到深度感知模型的是用于增强特征表示学习的Octave卷积。所提出模型的整体架构如图4所示。 

图4所示。提出了除雾模型的总体结构。DB旨在区分Y^和Y,对应于生成的去雾图像和真实世界的无雾图像。注意,为便于说明,省略了不同损失的系数。单位映射损失也被省略,因为它们存在于所有的实验配置中。

GAN中增强的特征表示我们在生成器和鉴别器中都采用了Octave卷积[2],同时对深度边界周围的精细细节和低变化深度平滑区域的粗特征进行建模。自注意模块[17]也被用于建模像素间依赖关系。

生成器中的八度卷积。生成器遵循Johnson等人[7]和Zhu等人[23]中的实现,并使用下采样层和上采样层之间的八度卷积块。

下采样层的输出特征映射,也是后续Octave卷积层的输入,在通道维度上被分成两个,分别具有高分辨率和低分辨率。这也降低了计算复杂度。

鉴别器中的八度卷积。具有八度卷积的规则三层网络构成了鉴别器。由于八度卷积中一半的通道具有放大的感受野,鉴别器可以用更少的参数实现更好的全局上下文感知。在消融研究中,我们的经验表明,这种设计选择导致显著的性能提升。

Self-attention模块。根据Zhang等人[20]的工作配置,我们将自关注纳入到生成器和鉴别器的主干中。表1显示了它带来了相当大的性能优势,尽管与八度卷积不同,它是以增加参数为代价的。

循环感知深度一致性损失根据(1)(2)可知,给定模糊图像的传输图是相机传感器与位置之间距离的函数。然而,由于只有一幅模糊的RGB图像作为去雾任务的输入,通过变换得到的场景深度是不受限的。除了周期一致的损失,和循环知觉和循环perceptual-consistency损失,我们认为学习地图功能也应该保持深度信息:对于一个图像x,从模糊图像域x,这两个映射函数,G和F,应该能够恢复的场景深度特征x。同样,循环变换后,输出图像的图像y清晰图像域作为输入图像应该分享相似的场景深度特性

我们使用场景深度损失网络φ定义了测量原始图像和重建图像之间深度差异的感知深度一致性损失。在我们所有的实验中,φ是由Xian等人[19]提出的用于单目深度估计的基于resnet的多尺度架构,由Lasinger等人[9]在3D Movies数据集上进行预训练。

感知深度一致性损失表示为两个场景深度图之间的L2范数的平方,

由于需要同时考虑两个变换方向,循环感知深度-一致性损失可表示为实现: 实现本节介绍不同模块如何集成到网络中以及培训细节。

整合增强的特征表示模块。为了在模型复杂性和性能之间取得平衡,实验中所有的Octave卷积层在其低空间频率分支和高空间频率分支上都具有相同数量的通道。在哪里添加功能增强模块是一个重要的问题。随后[2],在Octave Convolution实验中,为了稳定训练,发生器和鉴别器的初始下采样层和发生器中的上采样层保持不变。由于自注意中没有相对位置嵌入,我们发现用自注意模块完全替换残差块会降低性能。相反,自关注模块被添加到生成器的最后2个残差块和鉴别器中除第一个卷积层外的所有残差块中。

培训的细节。基线是在512 × 512的图像上执行的,大小调整为256 × 256,每批两个图像。实验采用初始学习率为0:0002的Adam优化器,采用线性衰减调度。

除了水平翻转外,不执行任何数据增强。不执行随机裁剪,因为它很容易失去全局上下文并被发现危及性能。

NYU Depth V2数据集的消融研究

我们探索了影响无监督单幅图像去雾性能的三个组成部分:{总体主干结构}、{卷积块设计}、{附加损失成分,包括结构相似性(SSIM)指数、循环感知深度一致性和总变异损失。

基于CycleGAN的消融研究是在NYU Depth V2测试数据集上完成的。报告了PSNR和SSIM来评估模型的性能。此外,表1中包含了参数的数量,以评估计算成本。

整体骨架结构。接下来[4],我们开始使用在生成器中具有9个残余块的CycleGAN和3层patch GAN鉴别器作为基线。然后,我们将下采样和上采样之间的9个残差块替换为最后两个块之间的6个残差块和1个自关注层。同时,采用三层鉴别器,在卷积滤波器中包含两个自关注层。接下来,我们使用6个Octave卷积块替换基线模型生成器中的残差块,但保留常规的3层patch GAN鉴别器。在循环一致性损失和ResNet感知损失的情况下,对三个主干进行200次训练。如表1(a)所示,通过更少的参数和更少的计算量,使用Octave Convolution的主干可以达到与自注意相媲美的性能。

卷积块设计。为了找到最优的Octave Convolution与CycleGAN主干的集成方案,我们研究了OctConv在鉴别器和发生器中的有效性。在表1(b)中,我们比较了使用相同倍频生成器但使用三种不同鉴别器的两种模型的性能:(1)规则3层,(2)3- octconvo层,(3)具有谱归一化的3- octconvo层[12]。这三种模型都使用循环一致性和深度一致性损失进行训练。我们观察到鉴别器中的卷积滤波器被八度卷积(Octave convolution)取代后的显著改进(PSNR提高12.00%,SSIM提高5.33%)。通过进一步将SpectralNorm添加到鉴别器中,可以得到增加。因此,我们采用了八度卷积发生器和八度频谱范数鉴别器。代替VGG16感知损失[7],我们计算了从ImageNet[8]预训练的ResNet50[6]中所有5层输出的串联的感知损失。

附加损耗分量。除了循环一致性、身份映射和感知ResNet损耗之外,我们还在骨干网和模块的不同组合上彻底测试了循环深度一致性损耗、循环SSIM损耗。本文将SSIM损耗定义为

其中,SSIM遵循[18]中的定义。因此,循环SSIM损耗公式为:如表1(c)所示,添加循环深度一致性损耗可以获得更高的性能(PSNR提高6.64%,SSIM提高8.22%),使用Octave卷积发生器和鉴别器的骨干上的FLOPs略有增加,而添加SSIM损耗会导致PSNR略有下降。此外,在其他两个骨干网上,增加循环深度一致性损耗总是比增加SSIM损耗效果更好。各种主干上的一致性能增益证实了循环深度一致性损失是除雾问题的功能损失成分

结果分析:

图5所示。具有ResNet50感知损失的CycleGAN与具有循环感知深度一致性损失和八度卷积的CycleGAN模型的样本比较。从左到右分别是合成的雾霾图像、CycleGAN的去雾输出、我们模型的去雾输出和真实的无雾图像。图片来自NYU Depth V2的测试集。 

结论:针对现有非配对图像去雾方法存在的问题,通过循环一致性对抗训练和循环感知深度监督,提出了一种轻量级、高效的非配对图像去雾网络。我们提出的循环感知深度一致性损失提高了生成图像的一致性,计算开销可以忽略不计,并且不会减慢推理速度。我们还采用了八度卷积(Octave Convolution)来建立一个无纠缠的双路径特征表示主干,与鉴别器相结合,比传统的设计有了显著的改进。

注释:

(1)空间分辨率(Spatial resolution)是指影像或传感器在空间上分辨细节的能力。它反映了图像或传感器能够分辨并显示地表或场景中不同特征或对象的最小尺寸。

在遥感或数字图像领域,空间分辨率通常用于描述卫星、航空摄影或其他传感器所捕获图像的细节级别。较高的空间分辨率意味着图像具有更高的细节级别,能够分辨更小的地物或特征。

空间分辨率通常以单位长度内的像素数来表示。例如,一个具有1米空间分辨率的卫星影像意味着每个像素对应于地表上1米的实际距离。因此,较小的空间分辨率可以提供更精细的细节信息,而较大的空间分辨率则表示图像中的每个像素对应于更大的地表区域。

空间分辨率对于很多应用非常重要。在地理信息系统(GIS)中,高空间分辨率图像可以提供更精确的地物分类和变化检测。在环境监测中,高空间分辨率图像可以帮助检测和分析细微的地表特征变化。在农业和林业管理中,空间分辨率可以提供有关作物、森林或土地利用类型的详细信息。

需要注意的是,空间分辨率并不是唯一衡量图像质量的指标,还有其他因素如光谱分辨率、时间分辨率等也需要考虑。不同应用场景可能对空间分辨率有不同的需求,因此选择适当的空间分辨率是根据具体需求和应用来确定的。

(2)"整合增强特征表示模块"是指在给定的系统或模型中结合或组合改进或增强的特征表示模块。在机器学习和深度学习的上下文中,特征表示模块负责从原始输入数据中提取有意义和信息丰富的表示。

增强特征表示模块通常涉及将先进的技术、架构或预训练模型集成到特征提取中,以改进特征提取的质量和效果。这些技术可以包括但不限于:

1. 卷积神经网络(CNN):CNN在计算机视觉任务中广泛用于特征提取。它们由多个卷积和池化层组成,可以从输入图像中捕获层次结构和空间信息。

2. 迁移学习:迁移学习涉及利用在大规模数据集上预训练的模型,并将其适应新任务或领域。通过使用预训练模型作为特征提取器,可以获得学到的表示和泛化能力的好处。

3. 注意力机制:注意力机制通过为不同的区域或特征分配权重或重要性,帮助模型关注输入数据的相关部分。它们可以增强特征表示的区分能力。

4. 图卷积网络(GCN):GCN是为处理图结构数据而设计的,并捕捉节点之间的关系。它们在数据具有图结构的任务中非常有用,例如社交网络或分子图。

整合增强特征表示模块涉及将这些技术或模型与更大的系统或架构结合在一起,以提高整体模型的性能和能力。通过整合这些模块,模型可以提取更具区分性和代表性的特征,从而在图像分类、目标检测、语义分割等各种任务中表现更好。

(3)Self-attention模块是一种用于建模输入序列内部关系的机制,在自然语言处理和计算机视觉领域中得到了广泛应用。它能够捕捉输入序列中不同位置之间的依赖关系,并为每个位置赋予不同的权重,以对不同位置的信息进行加权聚合。

在自然语言处理中,self-attention模块被用于Transformer模型中,如BERT(Bidirectional Encoder Representations from Transformers)和GPT(Generative Pre-trained Transformer)。在这些模型中,self-attention被用于对输入文本中的不同单词或标记之间的关系进行建模,以便捕捉句子中的长距离依赖关系。

在计算机视觉领域,self-attention模块也被应用于图像和视频处理任务中。通过对输入特征图中不同位置的关系进行建模,self-attention能够在图像或视频中捕捉全局上下文信息,并根据不同位置的重要性进行加权处理。

self-attention模块的基本原理是通过计算输入序列中每个位置与其他位置之间的相似度得分,然后将这些相似度得分作为权重,对输入序列中的各个位置进行加权求和。这样,每个位置就可以同时考虑到其他位置的信息,从而使得模型能够更好地理解输入序列的全局结构和上下文关系。

在实现上,self-attention模块通常包括三个线性变换操作:查询(Query)、键(Key)和值(Value)。通过计算查询与键之间的相似度得分,并利用相似度得分对值进行加权求和,可以得到最终的输出表示。

总之,self-attention模块通过建模输入序列内部的关系和依赖,能够在自然语言处理和计算机视觉任务中捕捉全局上下文信息,并在信息聚合过程中分配不同位置的权重,从而提高模型对输入序列的建模能力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值