1. 引言
雾霾是日常生活中的常见现象,由悬浮粒子形成。这些悬浮粒子会干扰反射光在场景中的传播。随着图像深度的增加,成像过程将受到严重干扰,会使得图像中的物体变得模糊,细节丢失,色彩变暗。因此在雾霾天气拍摄的图像通常容易出现低对比度和低清晰度的特点。而这将对一些计算机视觉高级任务造成挑战,如全景分割 [1] ,目标检测 [2] 等。
视频图像信息处理一直以来都是计算机视觉领域与数字图像处理上一项基础且意义重大的问题。单图像去雾作为其“一员”指的是通过处理单张有雾图像,去除或减轻雾霾,尽可能还原图像中的清晰信息和细节。研究人员发现雾图成像跟大气光照、大气颗粒散射等因素有关,并基于此提出了大气散射模型以表示雾图形成过程:
(1)
其中,I(x)和J(x)分别表示雾度的输入图像和清晰无雾图像A(x)是全球大气光,t(x)是大气散射图。
求解清晰无雾图像通常是一个不适定问题。早期基于先验的方法 [3] [4] [5] [6] 利用雾图与清晰图像之间的统计特性,通过大气散射模型恢复雾图。但这类方法通常只适用于假设场景,一旦模型先验不成立,往往容易出现不准确的去雾结果。随着近几年深度学习的火热与大规模雾图数据集的普及,许多基于深度学习的去雾方法 [7] - [14] 被应用到图像去雾中,这些方法通常使用卷积神经网络(CNNs)直接预测清晰图像。但碍于真实雾霾图像的稀缺与监督困难问题,现有的去雾模型往往只能在合成雾图数据集上训练,而这很容易导致其无法有效处理真实雾图。基于这类问题的约束,我们提出了一个基于局部数据增强模型(EDEM)实现雾度迁移解决真实数据不足问题。在此基础上,搭建了一个基于自支持的单图像去雾框架(SSDN)提高模型在真实世界的泛化性。
2. 国内外研究现状
近年来,单图像去雾研究取得了重大进步。一般来说,目前的图像去雾算法可以分为两类,即基于先验的方法和基于深度学习的方法。
2.1. 基于先验的去雾方法研究现状
基于先验的去雾网络通过引入先验信息来提高模型去雾能力利用图像的统计、结构或者其他先验知识,以更好地对雾图分析。何凯明等人 [3] 通过观察与统计发现在大多数自然场景中,即使是经过雾霾遮挡的图像,在某些非天空局部区域图像中,在RGB三通道中总会存在至少一个通道是较暗的情况。基于此观察提出了一种基于暗通道先验(Dark Channel Prior, DCP)的单图像去雾方法。该算法在各大数据集上表现良好,但在场景深度变化较为剧烈的区域对于透射率的估计可能不准确,可能会出现光晕效应和颜色失真问题。此外,由于天空的特殊性质和复杂的光照条件使得暗通道假设不再成立导致难以处理。

Figure 1. Comparison diagram of haze distribution
图1. 雾霾分布对比示意图
天空场景的去雾问题。为了减少光晕效应和颜色失真,Berman等人 [4] 提出无雾图像的颜色可以近似为数百种不同的色彩,这些色彩会在RGB空间中形成紧密的簇的假设。相对的,zhu等人 [5] 通过对图像中颜色衰减的统计分析,提出了一种基于颜色衰减的先验模型。该算法采用多尺度的方法来处理不同尺度的图像特征,通过在不同尺度下提取颜色衰减特征,从而更准确地估计雾霾和图像的透射率。但在雾霾浓度较高的区域,该算法可能无法完全消除颜色失真,导致去雾后的图像与真实场景存在一定的色彩偏差。Ling等人 [6] 观察到在无雾图像局部区域的饱和度分量与对应雾化图像中亮度分量的倒数之间存在线性关系,并基于此提出了一种新的去雾框架,使用像素间内在相关性来构建饱和度线,用于透射率估计。
尽管这些基于先验的方法在图像去雾方面取得了显著的性能,但它们对假设条件具备一定的依赖性。一旦假设场景不成立,可能会出现颜色失真、伪影和雾状残留物等表现。
2.2. 基于深度学习的去雾方法研究现状
近年来,随着深度学习的火热以及大规模雾霾数据集的普及,基于深度学习的方法已被广泛应用于单图像去雾,实现了卓越的性能和对假设场景的低依赖性。许多方法直接使用卷积神经网络(CNNs)估计透射和大气光,然后根据大气散射模型实现图像去雾。Cai等人 [7] 提出Dehaze-Net使用基于卷积神经网络的深度架构来直接预测传输图,然后通过大气散射模型将其应用于图像去雾。考虑到对大气散射模型的依赖,在文献 [8] 中,Li等人不再依赖于传统的大气散射模型,而是使用无监督且不需要预训练的神经网络直接估计模糊图像的清晰图像,该方方法还可以转移雾霾生成合成雾图。Zhang和Patel等人 [9] 提出一种密集连接的金字塔网络来估计传输图,使用一种基于U-Net网络来估计大气光照,并将大气散射模型放入去雾网络中进行端到端学习,从而实现雾状图与其对应脱雾图之间的非线性映射。Chen等人 [10] 通过集成先验信息以补充普通卷积,这有效的融合了特征信息与加强网络去除冗余特征的能力,从而进一步提高了模型去雾表现。
总的来说,对于基于深度学习的去雾算法而言,如何强化深度神经网络对于复杂又多变的真实场景的学习能力和其模型特征表证能力往往能够极大的影响模型的泛化性。
2.3. 基于半监督学习的去雾方法研究现状
现有的图像去雾领域模型性能通常不稳定,大多数现有的深度学习算法需要依赖于大量的训练数据来学习模型参数,因此研究人员通常需要通过数据增强、数据合成等方法去扩充数据量以使模型能够泛化至更多场景。另一种研究思路是同时使用真实雾图与合成雾图进行训练,我们将其统称为半监督图像去雾算法。
An等人 [11] 提出了拥有两个分支(无监督、监督)的端到端的半监督去雾网络,在监督分支训练的同时共享真实雾图训练的无监督分支权重。使用基于先验知识监督真实雾图,但对于先验信息的处理不够精细导致模型测试性能不稳定。相比之下,Sun等人 [12] 使用通道空间自注意机制灵活地为特征分配权重,并使网络侧重分析重要信息。Li等人 [13] 提出了一个半监督去雾网络,在基于清晰图像的暗通道稀疏于雾图暗通道的前提提出了暗通道损失,这使真实雾图在缺少对应清晰图像的情况下依然能够有效监督。但这种稀疏性面临天空场景时往往无法成立,从而导致去雾模型泛化性较差。在这些方法的激励下,Shyam等人 [14] 提出了一个约束性域自适应去雾网络,通过对抗学习使真实雾霾与合成雾霾在最优子集的特征层次上实现域自适应。但对于最优子集的选取方式缺乏定量标准,导致该算法在真实雾图的表现常存在过饱和和雾霾残留等情况。
3. 基于自支持的半监督图像去雾框架
3.1. 基于局部数据增强模型
在现实世界中,真实雾霾分布往往是不规则的。如果将雾图划分为几个块,则雾度在相邻区域可能会急剧变化,见图1(d)。然而现有的合成数据集很难模拟这种非齐次变化图1(c)。为了解决这个问题,我们提出了一个由非对称编码器–解码器架构组成的自增强模块。为了使增强样本生成非均匀的雾度,我们使用随机掩码标记干净图像来模拟真实雾度的不均匀现象。通过生成雾度图像来提高网络去雾能力的关键是确保合成数据准确地表示真实数据的特征和模式。在此基础上,我们通过随机掩蔽和捕捉多尺度真实雾度特征,使网络学习真实雾度的分布。本质上,我们使用特征变换网络来提取雾度特征,目标使位置嵌入生成的图像具有真实雾度的特征,从而提高去雾模型在真实世界中的性能。
3.2. 半监督去雾算法训练
我们的半监督去雾算法由一个无监督分支与监督分支组成,并通过共享权重的方式训练。首先对网络进行初始化设置,并提前预训练好图像增强模型。随后,根据两条分支数据特性采用不同监督方式,并通过反向传播对模型进行精细化训练,具体算法过程表现为。
3.2.1. 真实雾图数据集预训练EDEM模型
我们首先对输入的干净图像划分区域,根据随机生成的[0,1]矩阵对该图像部分区域掩盖并将其未遮掩部分放入编码器,以求解码器复原掩盖区域。为了使恢复区域学习到雾霾特征,我们使用了VGG-19预训练模型从真实世界雾霾图像中提取特征,通过感知损失对完整复原图像与真实雾图实现特征迁移学习,具体过程总结为:
(2)
其中Ci、Hi、Wi表示来自特提取网络T第i层的图像的通道、宽度和高度,λr表示相应损失项的正权重,我们可以将其概念化为添加的雾度浓度。我们的目标不是输出图像Xen和目标图像xr的像素之间的精确匹配。相反,我们的目标是鼓励它们展示类似的特征表示。
3.2.2. 基于多种数据训练去雾网络
(1) 用配对数据训练监督分支
监督过程基于编码器–解码器架构,该架构依赖于合成对数据和监督损失来训练网络模型。我们的目标是从模糊图像中恢复无雾图像,该过程可以表示为:
(3)
其中xs和
分别表示监督分支fs的输入合成雾图与对应去雾输出。监督分支采用U-Net结构,先对图像进行卷积、池化等操作下采样增加网络感受野以捕捉关键特征,然后通过上采样恢复其原始分辨率,并给出像素级预测。该分支通过均方误差损失监督输出数据,过程表示为:
(4)
其中Ns和yi分别表示为一次处理的合成样本数量和xs对应的清晰无雾图像。
(2) 用真实雾图与增强图像训练无监督分支
无监督分支通过优化损失函数来使生成的去雾图像尽可能地接近真实场景。在图像复原的过程中,噪声可能对结果产生显著影响。因此,常常在优化模型中引入正则化项来维持图像光滑性。总变化损失是一种常用的正则项,用于惩罚图像中的高频分量,促使生成的图像保持平滑。过程表示为:
(5)
其中
和
分别表示水平和垂直的微分操作矩阵,
为一次处理的真实雾霾图像数量。清晰图片的暗通道图像已经被证明稀疏于雾图的。基于此发现,Li等人提出了暗通道损失,应用L1正则化来监督预测图像的暗通道稀疏性,这有可以有效监督真实雾图的去雾结果,过程表示为:
(6)
其中,
为预测图像
的暗通道向量表示。通过增加对暗通道稀疏性的约束,使暗通道损耗可以有效地应用于单幅图像的脱雾。此外对于增强雾图部分,我们对自增强雾霾图像
和去雾结果
进行L2重构损失实现自监督,这进一步优化了无监督分支性能,过程表示为:
(7)
通过使用上述去雾损失,总损失定义如下:
(8)
4. 实验参数设置
本项工作基于Pytorch在NVIDIA TESLA V100-16G上训练。在训练阶段,输入图像被随机裁剪为256 × 256以进行数据增强,并且将像素值归一化至[0,1]。我们使用Adam优化器,其动量和学习率分别设为:β1 = 0.9,β2 = 0.999;学习率lr = 0.0001。各个损失函数权重设置为:λm = 10,λt = 0.0001,λd = 0.01和λs = 5。值得注意的是,为了确保模型稳定性,我们使用λr = 0.1预训练EDEM。
5. 实验结果
为了评估这些算法在合成雾图数据集中的性能,我们选择峰值信噪比(PSNR)和结构相似性指数(SSIM)量化实验结果。具体的,PSNR的单位为dB,其值越大,图像失真越少。SSIM的取值范围为[0,1],表示图像之间相似性,若数值为1则表示完全相同。二者数学表示如下:

Table 1. Quantitative analysis of defogging results for SOTS and HSTS datasets
表1. SOTS和HSTS数据集去雾结果定量分析
(8)
(9)
其中,μx和
分别是x的平均值和方差,
和
分别是y的平均值和方差,
是x和y的协方差,
为避免出现分母为零的常数。
5.1. 合成雾图数据集测试结果
我们在SOTS与HSTS两个合成数据集上评估了去雾模型性能,并与8种先进算法进行对比。检测结果如表1所示,在SOTS室内测试集上PSNR与SSIM分别达到了26.15与0.949。同样的,在SOTS室外测试集上获得了28.15与0.971的良好表现。为了进一步验证去雾网络的泛化性,我们还选取了HSTS测试集进行实验。结果表现,SSDN依然能够取得不错的表现。
5.2. 真实雾图数据集测试结果

Table 2. Analysis of ablation experiments
表2. 消融实验分析
为了评估提出的方法在真实数据上的性能,我们选择RTTS在真实的雾霾图像上进行了定性测试,测试结果如图2所示。在DCP中,对于天空这种像素点强度与大气光值相似的区域通常不满足其先验条件,这类图像去雾具有一定挑战。相对而言,CAP和Semi-Net除雾效果得到了显著改善,但视觉上仍有一些雾霾残留,不符合真实视觉效果。由于SDA-Net不能有效地利用真实数据导致去雾结果存在颜色失真问题。类似的,FFA-Net只在合成数据上进行训练从而导致无法学习真实雾图特征,当它应用于真实的世界图像时泛化性较差。D4-Net的缺陷在于,明亮区域在传输图中容易被过度估计,这会导致深度估计网络预测错误进而很难恢复图像雾层后面的背景信息。通过对比结果得出,SSDN对真实雾图的去雾结果具有更好的泛化能力,所提出的去雾网络相对于先进去雾方法得到了视觉上更清晰的表现。

Figure 2. Qualitative analysis of RTTS dataset
图2. RTTS数据集定性分析示意图
5.3. 消融实验
为了进一步验证方法性能,我们的消融研究考虑了三个因素的组合:网络分支(Nfs,Nun)、增强雾图(RH)、自监督损失(SL)和图像掩盖率。消融结果见表2。我们可以看到,当基本网络与图像增强模块相结合时,PSNR提高了2.71 dB,SSIM提高了0.071。除此之外还进行了一个有趣的实验,我们将相同数量的干净图像添加到网络训练,发现它很难产生效果。
6. 结论
本文提出了一个全新的半监督图像去雾框架SSDN,该网络不同于传统深度学习去雾框架,同时使用监督分支与无监督分支进行约束学习。并提出了一个基于局部数据增强模型EDEM,该模型使用随机掩码来模拟真实世界中的非均匀模糊图像以解决真实雾图稀缺问题,进一步增强模型对于真实雾图的感知学习。该半监督框架采用多种监督方式显著的改善了去雾模型在真实世界的泛化性。通过使用我们的去雾框架在去雾图像细节和色彩保真度方面具有强大的优势,其中增强模型有望解决其他图像恢复任务,如去噪、去雨和去模糊。大量实验结果表明,我们的算法在合成测试集和真实世界的模糊图像上都优于传统的图像去雾算法。
基金项目
国家基金:U2033210、62101387、62201400;省基金:LDT23F02024F02。
NOTES
*通讯作者。