1. 引言
受雾或霾的条件的影响,采集到的图像对比度低、图像细节模糊,导致目标检测、目标识别、目标分割等计算机视觉相关任务的执行效率降低,因此图像去雾也成为计算机视觉领域的一个重要问题。
图像去雾领域的研究方法主要分为三种,基于图像增强的方法、基于图像复原的方法和基于深度学习的图像去雾算法。基于图像增强的去雾算法是一种传统的去雾算法,如直方图均衡化[1]、Retinex理论[2]等,直接对有雾图像做图像增强处理,该类只是通过增强对比度的方式来淡化雾霾对图像的影响,并没有考虑有雾图像形成的原因,可能会造成图像信息损失和失真;基于图像复原的去雾方法,其中He等人通过提出的暗通道先验理论[3],估计透射率,代入大气散射模型(Atmospheric Scattering Model, ASM) [4]恢复无雾图像,但是该算法仍存在去雾效果颜色偏暗、失真的问题;基于深度学习的图像去雾算法,如Cai [5]等人提出了基于卷积神经网络(Convolution Neutral Network, CNN)的模型DehazeNet估计透射率;Li等人[6]通过将介质透射率和大气光值合并为一个未知数并提出了AOD-Net来学习这个未知数,端到端映射式的神经网络,端到端地学习有雾图像与无雾图像之间的映射关系。生成式对抗网络(Generative Adversarial Network, GAN) [7]提出后便被应用于各种领域,基于GAN网络改进的网络模型也陆续运用到图像去雾领域中,CycleDehaze [8]网络利用不成对的真实图像与有雾图像进行训练,并通过循环感知一致性损失来约束网络,GCANet (gated context Aggregation Network) [9]通过将平滑扩张卷积代替原卷积层,有效解决了图像中存在网格伪影的问题,但基于CNN的算法存在主要关注局部特征的局限性,底层网络较小的感受野限制了其对全局特征的捕获能力,并且在处理非均匀雾天图像时存在颜色失真和细节恢复不完整的问题。
2. 本文所做工作
针对上述问题,本文提出了一种基于U-Net [10]生成器和PatchGAN判别器的生成对抗网络,生成器采用U-Net结构,利用编码器–解码器的设计和跳跃连接机制保留图像的高分辨率细节,PatchGAN判别器通过对图像的局部区域进行分类来指导生成器生成高质量的去雾图像,确保生成图像在局部区域的真实性和一致性。本文在生成器中提出了一个创新性的ASPP-Transformer模块,结合空洞卷积和多头自注意力机制,从多个尺度提取图像的局部与全局上下文信息。通过该模块,网络能够更有效地处理复杂场景中的雾气,克服传统卷积操作的局限,进一步提升去雾的精细化效果。生成器中的空洞空间金字塔池化(ASPP)模块结合多尺度卷积,通过不同空洞率提取多尺度的上下文信息。同时,Transformer [11]模块通过自注意力机制捕捉长距离的上下文依赖,提升了生成器在复杂雾气场景中的全局一致性表现。
3. 基于生成对抗网络的图像去雾算法
3.1. 生成器
3.1.1. 编解码器
本文生成器基于U-Net的结构,采用多尺度特征提取和跳跃连接将有雾图像转化为去雾图像,其中编码器由DenseNet网络与ASPP-Transformer模块构成。DenseNet用于逐层提取输入图像的特征。首先通过初始卷积层对输入图像进行处理,然后依次经过多个密集块(DenseBlock E)和过渡块(TransBlock E),实现逐步的特征压缩保留更多特征信息,最后通过空洞空间金字塔池化模块(ASPP)多尺度特征提取提高模型对图像全局信息的感知能力,增强对复杂雾化场景的理解。解码器通过瓶颈块(DenseBlock D)和过渡块(TransBlock D)进行逐步的上采样,以恢复图像的高分辨率。在解码过程中,模型使用与编码器对应的特征图进行跳跃连接,从而可以保留编码阶段的低层次特征,并与解码阶段的高层次特征进行融合,这种机制使得模型在去雾的同时能够保留图像的纹理和细节。生成器网络结构如图1所示。
Figure 1. The network structure of generator
图1. 生成器网络结构
3.1.2. ASPP-Transformer模块
ASPP-Transformer模块由空洞空间金字塔池化(ASPP)模块和Transformer模块两个主要部分组成, ASPP模块包含多个卷积分支,每个分支由卷积层、InstanceNorm层、ReLu激活函数和Transformer模块组成。其中卷积层由1 × 1卷积和不同空洞率的3 × 3卷积(空洞率分别为6、12、18),通过这些空洞卷积,可以在不同的感受野下捕捉图像的全局和局部信息。为提升模型对全局特征的捕获能力,在ASPP结构中的每个InstanceNorm层后增加Transformer层,通过多头自注意力机制增强图像的全局特征,捕捉特征之间的长距离依赖关系,有效增强了局部特征和全局特征的融合。此外,ASPP模块还通过全局自适应平均池化提取图像的全局特征,再经过1 × 1卷积补充上下文信息,增强网络对整体场景的理解。雾霾的影响通常是全局性的,Transformer能够帮助模型捕捉图像的整体结构,从而生成具有全局一致性且细节丰富的去雾图像。这种多尺度特征与全局特征的融合极大增强了网络在处理局部细节和全局表示上的能力,从而提升了模型的去雾性能与效果。其网络结构如图2所示。
Figure 2. The network structure of Aspp-transformer
图2. Aspp-transformer网络结构
3.2. 判别器
受CycleGAN [12]的启示,本文引入PatchGAN判别器,PatchGAN将图像分割成N × N的小矩阵,每个矩阵表示为一个patch,其对应图像的一个感受野,每个分割后的感受野在图像进行滑动,通过加和求平均的方式输出Patch的平均值。BN层对中间过程提取到的特征图进行归一化处理,在网络最后加入Sigmoid函数,使得概率分布在[0, 1]。PatchGAN通过在图像的局部区域进行判别,确保生成的去雾图像不仅在整体上逼真,还在局部区域保持了高分辨率的细节。相比于全局判别器,PatchGAN可以在保持全局一致性的同时增强图像的局部细节表现,确保去雾后的图像具有局部的细节一致性和真实性。判别器网络由卷积层、Sigmoid激活函数、LeakeyReLU激活函数和归一化构成,其网络结构如图3所示。
Figure 3. The network structure of discriminator
图3. 判别器网络结构
3.3. 损失函数
本文算法中损失函数包括两部分:生成器损失函和与判别器损失函数。
3.3.1. 生成器损失
生成器损失函数由对抗损失、感知损失、重建损失三部分构成。
1) 对抗损失
对抗损失[13]的目的是使得生成器学习到目标域的数据分布,以实现网络从源域即有雾图像到目标域即无雾图像的数据生成,它使用二元交叉熵(Binary Cross-Entropy, BCE)来衡量判别器对生成图像的判断是否为真实图像,公式如公式(1)。其中,𝑥表示输入的有雾图像,𝑦表示与之对应的真实清晰图像,𝑧表示噪声信号。
(1)
2) 感知损失
仅仅利用对抗损失并不能较好地恢复出图像的细节和纹理信息,为了实现更好的复原效果,本文引入了感知损失函数[12],通过在特征空间而不是像素空间中完成对复原图像与原始图像间的比对。为了度量特征空间中图像间的感知相似度,提取了预训练VGG16网络中的特征图用来进行对比。感知损失在数学上可以表示为公式(2)。其中,
表示了VGG16 [14]网络中的特征图。
(2)
3) 重建损失
为了使模型在生成图像时能够保持与真实图像相似的特征和内容,在本研究中引入重建损失[15],其在数学上可以表示为公式(3)。其中
是目标图像像素值,
是生成图像的像素值,n是图像中的像素总数。
(3)
训练生成器的总损失函数如公式(4)所示。
(4)
3.3.2. 判别器损失
判别器损失由真实图像的二元交叉熵损失(Real Image BCE Loss)与生成图像的二元交叉熵损失(Fake Image BCE Loss)组成。判别器的目标是最大化其对真实图像的预测概率,同时最小化对生成图像的预测概率。
1) 真实图像损失
真实图像损失度量了判别器对真实图像的识别能力,真实图像的二元交叉熵损失可表示为公式(5)。其中N为批量大小,
是真实图像,
表示真实标签,D (
)为判别器对真实图像的预测概率。
(5)
2) 生成图像损失
生成图像损失度量了判别器对生成图像的识别能力。生成图像损失越低,意味着生成的图像被判别器认为越接近真实图像。生成图像的二元交叉熵损失可表示为公式(6)。其中M是生成图像的批量大小,
是随机噪声输入
= 0表示生成标签,D (G (
))是判别器对生成图像的预测概率。
(6)
判别器的目标是最大化其对真实图像的预测概率,同时最小化对生成图像的预测概率,判别器总损失函数如公式(7)所示。
(7)
4. 实验与结果分析
4.1. 实验环境与数据集
本实验环境为Win11操作系统,Intel (R) Core (TM) i5-12400F CPU@2.50 GHz处理器,内存为16 G,显卡为NVIDIA GeFoce GTX3070。使用pytorch框架中的Adam优化器对网络进行优化,训练的Batchsize为10,生成器与判别器初始学习率为0.0002,衰减率为0.99。
实验训练数据集采用RESIDE数据集中的训练集OTS、ITS上筛选的2500对有雾图像与无雾图像,包括2000幅室外场景图像和500幅室内场景图像。使用SOTS测试集测试算法对合成有雾图像的去雾性能,并在HSTS数据集中选取50张图像验证本文算法对真实有雾图像的去雾性能。
4.2. 实验结果与分析
为验证本文算法的有效性,将本文算法与DCP [3]、DehazeNet [5]、AOD-Net [6]、GCANet [7]、FFANet [16]分别进行主观质量评价与客观定量比较。
4.2.1. 主观分析
Figure 4. Comparison of different algorithms on compositing outdoor foggy images
图4. 不同算法在合成室外有雾图像上的对比
图4为本算法与其他算法在含天空区域的合成室外有雾图像上的对比。由图4可以看出DCP与AOD-net去雾后图像的天空区域颜色偏暗,部分区域存在去雾不彻底的现象;DehazeNet算法去雾图像存在天空区域颜色失真情况,且非天空去雾去雾不彻底;GCANet算法去雾不彻底,多处去雾效果不均匀;FFANet算法去雾效果较好,但存在部分图像去雾后颜色偏淡的情况。
图5为本算法与其他算法在室内合成室内有雾图像上的对比。由图5可以看出,DCP去雾效果不彻底,且存在部分区域颜色失真存在色差;DehazeNet与AOD-Net算法去雾后图像仍存在多处区域去雾不彻底的现象;GCANet算法去雾后的图像明显存在去雾不均匀的现象,多处留有残雾;FFANet算法去雾效果较好,但仍存在部分区域去雾效果不足的情况。
Figure 5. Comparison of different algorithms in synthesizing indoor foggy images
图5. 不同算法在合成室内有雾图像上的对比
图6为本算法与其他算法在真实有雾图像上的对比。图6可看出,DCP算法去雾效果较好,但仍存在去雾后的图像偏暗的现象;DehazeNet与AOD-Net算法去雾后的图像都明显出现天空区域过亮的情况;FFANet算法去雾图像整体去雾效果不明显;GCANet算法去雾的效果较好,但仍存在部分不均匀的残雾。
Figure 6. Comparison of different algorithms on real foggy images
图6. 不同算法在真实有雾图像上的对比
通过在不同有雾图像上与其他算法比较,本文算法可以得到较好的去雾结果,并且在图像细节、整体亮度、色彩饱和度和对比度等多个方面均取得了很好的效果。
4.2.2. 客观分析
本文采用峰值信噪比(PSNR)、结构相似性(SSIM) [17]与现有的去雾方法进行性能对比,量化去雾图像的恢复质量。值越大,表明效果越好。所选测试集在不同算法上的PSNR与SSIM值如表1所示。
对比表中的数据可以看出,本文算法较其他算法在室内数据集和室外数据集上都能得到较高的指标值,基于上述分析可看出,本文算法可以较好的恢复无雾图像并且在主观评价指标和客观指标上均优于其他去雾算法。
Table1. Comparison of the results of different algorithms on the test set
表1. 不同算法在测试集上的结果对比
算法 |
Indoor |
Outdoor |
PSNR |
SSIM |
PSNR |
SSIM |
DCP [3] |
18.61 |
0.8146 |
19.14 |
0.8605 |
DehazeNet [5] |
20.82 |
0.8409 |
23.75 |
0.8869 |
AOD-Net [6] |
21.51 |
0.8562 |
24.14 |
0.9198 |
FFA-net [16] |
28.39 |
0.9386 |
33.57 |
0.9340 |
GCANet [7] |
26.72 |
0.8801 |
30.23 |
0.9262 |
本文算法 |
28.55 |
0.9331 |
33.69 |
0.9375 |
4.3. 消融实验
为了验证本文所设计模块的有效性,设计模型1 (在生成器中仅加入ASPP模块)、模型2 (在生成器中仅加入Transformer模块)、模型3 (最终模型)通过PSNR与SSIM在SOTS数据集上进行量化分析。上述实验的PSNR与SSIM指标如表2所示。本文生成器中ASPP模块与Transformer模块结合能够更好地提升网络对图像局部细节与全局特征的表示能力,从而提升了模型整体的性能和效果,证明了模型的有效性。
Table 2. The results of the model structure ablation experiment
表2. 模型结构消融实验结果
模型 |
ASPP模块 |
Transformer模块 |
PSNR |
SSIM |
模型1 |
√ |
× |
30.12 |
0.9192 |
模型2 |
× |
√ |
29.36 |
0.9143 |
模型3 |
√ |
√ |
32.65 |
0.9376 |
5. 结论
本文提出的基于生成对抗网络的图像去雾算法,通过在生成器中引入ASPP-Transformer模块,能够从全局角度感知图像的雾气分布,有效解决了雾天图像去雾过程中全局特征利用不充分的问题,不仅增强了算法对复杂雾天环境的适应能力,还有助于提升去雾效果的整体一致性和稳定性。实验结果表明,本算法在主观视觉效果上能够产生颜色自然、细节丰富的去雾图像,同时在客观评价指标上也取得了优于现有主流算法的性能,充分验证了算法的有效性。