基于增强生成器条件生成对抗网络的单幅图像去雾

2022-01-05 02:32扬,李
计算机应用 2021年12期
关键词:损失函数图像

赵 扬,李 波

(武汉科技大学计算机科学与技术学院,武汉 430065)

(∗通信作者电子邮箱liberol@126.com)

0 引言

雾霾是由于大气中的粒子吸收散射光而引发的一种自然现象,易导致图像质量下降。雾图像通常表现为丧失对比度、颜色衰退和边缘信息缺失,降低人们的视觉感知场景信息的能力;同时,雾还能影响计算机视觉算法的相关应用,比如分类任务,尤其是自动驾驶。因此,图像去雾是一项必需的预处理任务。

雾霾图像的形成被广泛近似参数化为大气散射模型[1],其模型公式如下所示:

其中:x是图像中的像素坐标位置,I(x)代表观测到的雾霾图像,J(x)是对应的无雾图,t(x)是透射率,A是全球大气光。透射率t(x)可以由如下公式表示:

其中:d(x)代表场景深度,β表示散射系数。仅仅通过给定的图像I(x),要恢复无雾图像是极其困难的。

近年来,单幅图像去雾一直是一个富有挑战力的问题。对于去雾的研究大致可分为基于先验的方法以及基于学习的方法。在基于先验的方法中,通过大气散射模型利用相关雾霾特征进行透射率t(x)和大气光A的估计,以恢复清晰无雾图像;但这些方法的性能取决于其先验的准确性,在特殊的场景中这些方法往往会失效。现在,部分基于学习的方法使用训练过的深度神经网络来预测中间参数,尽管这些方法取得了较为显著的结果,但由于缺乏真实的训练数据和有效的先验,很难估计这些中间参数,不准确的估计也会进一步降低去雾的性能。此外,一些算法直接或间接基于深度卷积神经网络(Convolutional Neural Network,CNN)来恢复无雾图像,以端到端的方式,忽略中间参数估计,直接从雾图像恢复出无雾图像。这些方法主要采用通用的网络结构,如:U-Net[2]具有编码器-解码器体系结构,主要用于图像分割;DenseNet[3]减缓了梯度消失问题,增强了特征传播,但会产生特征冗余;Dilated Network[4]广泛运用于聚合上下文信息的有效性,但去雾时容易产生网格伪影。与传统的先验方法相比,这些方法的去雾能力得到了提升,但这些结构对于去雾没有很好的优化。

最近,基于生成对抗网络(Generative Adversarial Network,GAN)的单幅图像去雾在去雾领域占据了一席之地。GAN 以其特殊的抵抗性训练的理念,在图像转换、图像生成等领域已取得了显著的成就。本文提出了一种完全端到端的增强生成器的GAN 去雾网络,它以模糊图像作为输入,直接生成无雾图像,不需要中间参数的估计。不同于其他GAN 去雾网络,在生成器方面,使用了用于图像去噪的增强策略(Strengthen-Operate-Subtract,SOS)模块[5]和用于超分辨率细节恢复的密集特征融合(Dense Feature Fusion,DFF)模块[5]作为生成器的一部分,增强图像的特征恢复,同时保存特征提取时的空间信息。实验结果验证了该方法在去雾任务上的优越性。同时在传统GAN 的损失函数基础上,新引入了一个多尺度结构相似性(Multi-Scale Structural SIMilarity,MS-SSIM)损失函数,它是对图像进行多个尺度下的结构相似性(Structural SIMilarity,SSIM)的评估,很好地解决了边缘噪声的问题,对于生成的图像,更贴近于地面真相。

1 相关工作

1.1 单幅图像去雾

近十年来,大量的去雾方法被提出,这些方法可粗略地划分为两类:基于先验的方法以及基于学习的方法。基于先验的方法使用的是手工设计的先验或猜想来进行图像去雾。He 等[6]对无雾图像进行大量统计发现了暗通道先验(Dark Channel Prior,DCP),其工作原理是在户外拍摄的干净图像中,至少一个RGB 颜色通道的强度值在某些像素上接近于0。基于DCP 的假设,可以估计透射率和全球大气光。目前在此假设下已经出现各种改进方法,如Zhu 等[7]提出了一个将深度作为亮度和饱和度的线性函数模型,并通过训练学习了参数。总的来说,基于DCP 的方法一定条件下对去雾有很好的效果,但缺点是自然具有高亮度的区域(天空)中容易出错。

为了解决这些问题,在基于学习的方法中,CNN在目标检测[8]和分类任务上取得了巨大的成功,并成功运用于除雾应用中。Li 等[9]提出了一种一体化除雾网络AOD-Net(All-in-One Dehazing Network),它是基于重新配置的大气散射模型设计的,通过轻量级的CNN 以端到端的方式直接生成清晰图像;Mei 等[10]介绍了一种通过渐进特征融合的U-Net 编码器/解码器深度网络(Progressive Feature Fusion Network,PFFNet),以直接学习从观察到的模糊图像到无雾的地面真相的高度非线性变换函数;Ebenezer 等[11]提出的图像去雾网络CWGAN(Conditional Wasserstein Generative Adversarial Network)是数据自适应的,结合Wasserstein 损失函数[12],使用梯度惩罚来执行拉普拉斯约束学习雾图像为条件的清晰图像的概率分布。但是,这些方法主要基于通用的网络体系结构,对于图像去雾问题效率不高。

1.2 有条件的生成对抗网络(CGAN)

Goodfellow 等[13]提出的GAN 是从随机噪声样本中生成图像或文本。一个GAN 中包含两个相互竞争的神经网络模型:一个网络称为生成器,能将噪声作为输入并生成样本;另一个网络称为鉴别器,能接收生成器数据和真实训练数据,训练得到能正确区分数据类型的分类器。这两个网络互相对抗。

其中,生成器通过学习来产生更逼近真实数据的新样本,用于愚弄鉴别器,反之鉴别器也需要更好地区分生成数据与真实数据。GAN 的学习过程可能发生模式崩溃问题,生成器开始退化,总是生成同样的样本点,无法继续学习。当生成模型崩溃时,判别模型也会对相似的样本点指向相似的方向,训练无法继续进行。为了改善这个问题,通过给GAN 增加一些约束,条件生成对抗网络(Conditional Generative Adversarial Network,CGAN)[14]便自然而然地诞生了。CGAN 在图像生成领域有巨大的潜力,并且已被引入各种视觉任务中,例如超分辨率[15]、去雨[16]。

2 本文模型结构

2.1 增强生成器

生成器需要从一张有雾图像中生成一张清晰无雾的图像。与传统去雾的GAN 的生成器直接使用U-Net 不同,本文选择基于U-Net 的增强生成器,它接受一个雾霾图像作为输入,训练以生成清晰的图像。如图1 所示,它由编码器、增强解码器和特征恢复模块三部分组成。本文网络包含四个阶梯型的卷积层和四个阶梯型反卷积层。残差组[17]由三个残差块组成,在Gres模块共有18 个残差块。编码器中的残差块过滤器数目依次为16、32、64、256,相对应的解码器中的增强模块过滤器数目为256、64、32、16。在编码器中的第一个卷积层的卷积核大小被设定为11×11,其余所有的卷积和反卷积层相应过滤器尺寸为3×3。为了逐步完善特征恢复模块Gres模块中的特征jL,将SOS 增强策略[18]嵌入网络的解码器中,且SOS 增强模块的结构如图2 所示。在第n层的SOS 增强模块中,从上一级上采样的特征jn+1,用编码器的潜在特征in来增强它,并且通过精化单元生成增强的特征jn,如下所示:

图1 生成器的结构Fig.1 Structure of generator

图2 SOS增强模块Fig.2 SOS boosted module

2.2 鉴别器

使用pix2pix 网络[19]的中的鉴别器来判断生成器的输出是否为真实图像,它是一个70×70的patchGAN,如图3所示。

图3 鉴别器的结构Fig.3 Structure of discriminator

此网络是对生成图像和目标图像的逐块比较,而不是像素级的比较。一般的鉴别器输出的是一个正确或错误的矢量,但patchaGAN 输出的是一个n×n的矩阵,其中的每一个元素,实际上代表着原图中的一个比较大的感受野,也就是说对应着原图中的一个patch。

2.3 损失函数

L1 loss:给定输入模糊图像I,生成器的输出是G(I),地面真实图像是J。目标图像J与生成的图像G(I)之间的L1损失计算如下:

它测量了去雾图像和地面真相在图像像素空间中的保真度。

Perceptual loss:使用Ledig 等[15]定义的VGG 损失。VGG损失由ImageNet 上预先训练的VGG-19 网络中的ReLU 激活层定义,当对VGG 输入I时,对应于VGG 第11 层的特征映射由φ(I)表示,则该GAN的VGG损失函数可以定义为:

MS-SSIM loss:结构相似性(SSIM)用来测量两幅图像之间的相似度。G(I)和两幅图像之间的SSIM可由下式给出:

其中:l(G(I),J)是亮度对比因子,c(G(I),J)是对比度因子,s(G(I),J)是结构对比因子;α、β、γ为三个成分的相关重要参数。

单尺度的结构相似性受限于图像细节及观测者距离的限制,多尺度结构相似性方法[20]是在不同分辨率下融合图像细节的一种方便的方法。可以表示为:

其中:指数αM、βj、γj用于调整不同分量的相对重要性,并且αM=βj=γj。M表示缩放因子,图像以宽高2M-1 为因子进行缩小:当M=1时,表示原始图像大小;当M=2时,表示图像缩小一半;以此类推。

因此,MS-SSIM损失函数可以定义为:

Adversarial loss:定义标准的CGAN 的目标函数来训练生成器和鉴别器为:

其中:D代表的是鉴别器,G表示的是生成器。当训练CGAN时,生成器尝试最小化结果,鉴别器尝试最大化它。因此,综合以上结果,对于生成器,总的损失函数为最小化:

其中:λ1、λ2、λ3分别为相应损失函数的权重。另一方面,鉴别器被训练最大化以下目标函数:

3 实验与分析

3.1 数据集

训练集里包含了室内和室外的图像。对于室内图像,选择了合成的NYU 数据集[21],包含1 449 幅室内场景无雾图像及相应数量的合成朦胧图像。对于室外图像,使用了RESIDE[22]中的OTS 数据集,共包含500 张模糊/真实图像对。最后,一共得到了1 949 对图像。测试集选用了SOTS 室内数据集和NTIRE18 的室内外数据集来进行定量及定性的评价,同时还使用了一些来自AOD-Net中没有参考图像的真实朦胧图像。

3.2 实验设置

在本文实验中,当λ1、λ2、λ3分别设置为100、1 000、100时,对测试集的测试结果最好。在MS-SSIM 损失函数中,将M设为3,对应的参数β1=γ1=0.044 8,β2=γ2=0.285 6,β3=γ3=0.300 1。网络中,输入图片的尺寸为256×256×3。初始学习率为2 × 10-4,使用了Adam优化器。训练过程中,在训练100 周期后,学习率以线性衰减率β=0.5 开始递减。网络在训练集上训练了250 个周期。生成器和判别器交替训练,并在pytorch上实现。

3.3 实验分析

一个除雾算法的性能可以从几个因素进行评估,其中两个最常用的为峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和SSIM。PSNR 衡量算法从噪声中去除噪声的能力,SSIM 度量两个图像的相似程度,这两个评价指标的值越高,表示去雾算法的性能更好。为了验证本文增强生成器及MS-SSIM损失函数的有效性,分别与原始U-Net 生成器及SSIM 损失函数进行了对比分析,同时和如今一些先进的方法进行了比较,包括DCP[6]、AOD-Net[9]、PFFNet[10]、CWGAN[11];同时运行了这些方法已发布代码,在测试集上做了相关评价。相关结果见表1~2所示。

在合成数据集上,对测试集SOTS 和NTIRE18 进行测试,通过定量评估来比较各方法的性能。从表1 可看出:在其他条件不变的情况下,使用SOS 增强生成器的除雾网络在SOTS及NTIRE18 上PSNR 与SSIM 均有提高,且在SOTS 上的PSNR值提高了约0.9。由于原始U-Net 编码器下采样操作后,无法进行有效的空间压缩,且不同层之间只是进行简单的级联操作,容易造成特征丢失。而增强生成器通过建立非相邻层的连接,利用去噪残差块融合不同层中的特征,减少特征丢失。同时,在使用全新的MS-SSIM损失函数后,本文方法在两个数据集上的PSNR 和SSIM 均有细微增长,且在NTIRE18 数据集上的SSIM值增加了约0.04。跟SSIM损失函数相比,MS-SSIM损失函数是在不同尺度下对生成图像与真实图像对比,解决了边缘噪声问题,更多地保留了高频信息,能在边缘及细节上产生更好的无雾图。

表1 在合成数据集改进前后U-Net以及损失函数的比较Tab.1 Comparison of U-Net and loss function before and after improvement on synthetic datasets

与其他方法的对比结果如表2 所示。显而易见,本文方法在两个指标PSNR 和SSIM 都取得了最高的数值,在室内数据集SOTS上分别为23.860 6及0.917 3,比传统的DCP、AODNet利用大气散射模型估计中间参数的方法在SSIM 上高了接近0.1。而以端到端模式的PFFNet 仅仅采用了简单的U-Net结构,在对特征提取与恢复时有较大的信息损失。本文与同样以GAN 来进行图像去雾的CWGAN 相比,在生成器端通过增强的特征提取DFF 模块以及特征恢复的SOS 模块,使得训练时生成的图像细节更为还原,同时选择MS-SSIM 损失函数替代了SSIM 损失函数,加强了对生成的无雾图片边缘的细化,SSIM 数值更高。由于室外光照等环境的影响,PSNR 和SSIM 的值普遍比较低,但该模型在NTIRE18 上同样取得了最高的指标值。这说明本文方法在不同环境下优于对比方法。对其中部分图片的定量及定性评价如图4 所示。由图4 可以看出,DCP没有保留图像的原始颜色和对比度,图像变得更加灰暗。在雾比较浓的情况下,DCP、AOD-Net、PFFNet 仍有残留的雾没有完全去除,而CWGAN 在一些图像的细节上恢复得比较低。相对而言,本文所方法不仅很好地去除了雾霾,且较大程度地保留了原图像的细节,恢复效果相对较好,在PSNR和SSIM上都获得了最大的数据值。

图4 合成数据集上本文方法与其他方法的定量对比结果图Fig.4 Result images of quantitative comparison of the proposed method and other methods on synthetic datasets

在真实的数据集上,由于没有相对应的无雾场景图像,因此仅对现实世界的雾图像进行定性评价,结果可由图5 所示,同时还选择了一些常用的自然雾图像进行比较。从图5 可以明显观察到,AOD-Net 和PFFNet 有些许的烟雾残留和颜色失真,DCP 留下了少许阴霾,图像更倾向于变暗,而CWGAN 在雾浓度较大的室外图像中会增大对比度。与上述方法相比,本文的模型不仅较彻底地去除了雾霾,在重度雾区也表现出了更多清晰的细节与更少的伪影。这是由于生成图片时DFF模块有效弥补了高分辨率特征中缺失的空间信息,并利用非相邻的特征融合,特征损失较少,更易于在除雾的同时保留图像细节,训练也越快达到收敛。但是在雾浓度较深的室外环境下,仍然不能去除大量的烟雾。

图5 真实数据集上本文方法与其他方法的定性对比结果图Fig.5 Result images of qualitative comparison of the proposed method and other methods on real datasets

4 结语

本文提出了一种端到端的增强型CGAN 进行单幅图像去雾,其中,在生成器端采用了SOS增强解码器以及DFF模块进行特征融合,同时引进了MS-SSIM 损失函数与标准的CGAN去雾损失函数相结合,进行对抗训练,从有雾图像中直接生成无雾图像。分别在合成数据集和真实数据集上进行对比实验,实验结果表明,本文模型相比几种最先进的方法,在评价指标PSNR 和SSIM 上都取得了更优的数据结果,且真实数据集上的视觉表现更好。在未来,这项工作可以扩展到其他计算机视觉任务中,如图像去雨、图像增强等。

猜你喜欢
损失函数图像
洪涝造成孟加拉损失25.4万吨大米
摄像头连接器可提供360°视角图像
浅析p-V图像中的两个疑难问题
两败俱伤
关于函数的一些补充知识
高中数学中二次函数应用举隅オ
无独有偶 曲径通幽
损失
名人语录的极简图像表达
那些损失上百万的演员