Single-image dehazing via a coarse-to-fine multiscale approach
-
摘要: 为了解决现有图像去雾算法易出现细节纹理丢失、颜色失真或对非均匀浓雾处理不彻底的问题,提出一种基于粗到细的多尺度单幅图像去雾方法。首先,主干网络使用残差特征注意力模块对有雾图像进行特征提取;其次,将不同尺度的输入图像进行卷积预处理,通过多尺度特征融合模块将预处理的浅层特征与主干网络融合;再次,将不同粒度的非对称特征进行有效融合;最后,将浅层信息与深层信息自适应混合输出,通过对比正则损失构建正负样本信息,使得去雾图像更接近无雾图像。实验结果表明,与已有代表性的去雾方法相比,提出的方法能对合成数据集与真实数据集进行有效去雾,在细节保留与色彩还原上优于对比方法。Abstract: A single-image dehazing method based on a coarse-to-fine, multiscale approach is proposed to address the shortcomings of existing dehazing methods, which often result in loss of detailed texture, color distortion, or incomplete processing of non-uniform dense fog. First, features are extracted from foggy images using the residual feature attention module of the backbone network. Second, images at different scales are preprocessed using convolution, and the preprocessed shallow features are fused with the backbone network through a multiscale feature fusion module. Asymmetric features at different levels are then effectively fused. Finally, shallow information is adaptively combined with deep information at the output. Compared with contrastive regularization loss, positive and negative sample information is constructed to make the defogged image more similar to a fog-free image. The experimental results show that, compared with existing representative defogging methods, the proposed method effectively defogs synthetic and real datasets and outperforms comparison methods in terms of detail retention and color reproduction.
-
在有雾条件下,大气中的微小悬浮颗粒会极大地吸收和散射光线,与良好天气条件下获取的图像相比,有雾图像通常会受到模糊、颜色失真和低对比度等图像退化现象的影响[1],进而无法获取真实的图像信息。退化现象会对后续的高级计算机视觉任务的性能造成不利的影响,例如物体的检测和识别。因此,图像去雾在图像恢复领域得到了大量研究者的关注。克服雾天环境造成的图像退化,对有雾图像进行去雾预处理,有助于提升高级视觉任务的性能。
早期去雾模型是基于物理先验的方法,如大气散射模型[2]。He等[3]通过总结大量户外无雾图像,发现了在局部区域内,存在一些像素至少在一个RGB通道的值接近于0,并将其命名为暗通道先验(dark channel prior, DCP)理论,将此先验理论与雾霾成像模型相结合,可以直接估计雾霾厚度,对图像进行去雾。但该方法在图像的天空区域无效,导致参数估计不准确,会造成此先验信息失效[4]。Zhu等[5]提出颜色衰减先验(color attenuation prior, CAP)的图像去雾算法,并利用该先验建立了有雾图像场景景深的线性模型。然而,上述参数估计算法非常依赖先验信息的选择,且先验信息不具有通用性,当假设的先验不足以合理描述有雾图像时,则有可能导致透射率估计不准确,从而导致去雾效果不佳和色彩失真等现象。
随着深度学习的发展,许多去雾方法开始依赖于卷积神经网络(convolutional neural network, CNN)。基于深度学习的图像去雾方法可以分为2种。
第1种是通过深度神经网络直接估计大气模型中的透射率和全局大气光[6]。Cai等[7]根据大气先验知识,设计DehazeNet用于估计有雾图像与透射率之间映射关系,将透射率结合大气散射模型实现图像去雾。与DehazeNet不同,Li等[8]基于重构的大气散射模型,提出K-estimating模块来估计介质传输函数与全局大气光,提出一个端到端的轻量级的去雾网络AOD-Net(all-in-one dehazing network)。以大气退化模型为基础的端到端去雾网络在细节恢复效果上有一定提升,但多数方法把大气光值设置为不变常量值,可能导致去雾图像出现色彩偏差。
第2种是使用深度神经网络构建有雾图像到清晰图像的端到端映射。端到端算法无需考虑有雾图像降质原因和成像过程,网络输入有雾图像,经过学习后,输出即为清晰图像[9]。Chen等[10]提出一种增强的pix2pix去雾网络,该网络将图像去雾视为图像到图像的转换问题。Qu等[11]提出了一种端到端门控上下文聚合网络实现图像去雾。Qin等[12]提出了一种特征融合注意力(feature fusion attention, FFA)网络,通过处理不同类型的特征信息以实现图像去雾。Wu等[13]提出了一种基于对比学习的紧凑图像去雾方法,通过引入负样本,并充分挖掘负样本中的信息,进一步约束去雾问题解空间的上下界。上述不依赖大气退化模型的端到端的去雾网络,虽然在一定程度上能去除有雾图像中的雾,但是在去雾过程中过度提取输入分辨率下的全局多尺度特征,缺乏关注局部细节纹理信息的能力。
目前提出的基于端到端的CNN模型存在以下问题:大多数现有方法[11-12]通常采用清晰的图像作为正样本,通过基于L1损失或L2损失的图像重构损失来指导去雾网络的训练,仅使用图像重构损失无法有效处理图像细节,这可能导致恢复图像中的颜色失真,作为负样本的有雾图像却没有很好地被利用。为更好地利用负样本,在图像去雾中引入对比学习,将真实无雾图像和有雾图像分别作为正样本与负样本,将去雾网络生成的去雾图像作为样本的锚,在潜在的特征空间中对三者进行对比,拉近去雾图像与真实无雾图像的距离,推远其与有雾图像的距离[14]。
在现实世界的场景中,雾往往会呈现出不均匀的浓度分布,在一幅图像中,不同区域和不同场景深度,会受到不同雾浓度条件的影响,其退化程度也有很大差异。通常,距离越远,雾的影响越大,导致图像的细节丢失和对比度下降越严重。多尺度模型和尺度循环模型通过对图像不同空间尺度的特征进行整合,从而实现粗到细的学习,可有效解决雾浓度不均与不同场景深度造成的退化程度不同现象[15]。即采用多尺度模型和尺度循环模型聚合来自图像不同空间尺度的特征,可以学习浅层网络的部分局部特征细节,也能捕获到深层网络的更多全局信息。
针对上述问题,本文受粗到细学习与对比学习的启发提出一种基于粗到细的多尺度单幅图像去雾方法,命名为MIOC-UNet。首先,为减轻训练的难度,MIOC-UNet只采用单个编码器,输入多尺度图像。其次,MIOC-UNet的单个解码器输出多个不同尺度的去雾图像,用单一的U-Net[16]网络模拟多级联U-Net网络。再次,引入非对称特征融合模块,有效地合并多尺度特征。最后,与传统的U-Net跳跃连接不同,MIOC-UNet采用了自适应特征混合(adaptive feature mixup)模块将浅层特征和深层特征进行动态融合,实现特征保留。通过引入对比正则损失,将多输出的去雾图像作为锚点,清晰图像作为正样本,原始有雾图像作为负样本,输入到预训练的VGG网络中并计算对比正则。
1. 相关技术和理论
1.1 U-Net网络
U-Net是一种广泛使用的深度学习架构,由1个编码器和1个解码器组成,由此搭建成一个U型的网络结构,在编码器入口处输入图像,并通过下采样获得图像的低维特征,再通过上采样将图像进行恢复输出。U-Net网络还使用了跳跃连接,将上采样后的特征图和对应阶段的下采样的特征图进行连接,作为解码器的下一个子模块的输入,为图像恢复提供多尺度多层次的信息,即通过融合深层语义信息和浅层特征细节,避免了在编解码过程中图像局部细节的丢失。本文采用类U-Net结构,通过单编码器实现多输入多输出,通过融合不同尺度的特征信息,提高去雾性能。
1.2 残差特征注意力模块
卷积神经网络的每一层分别对应提取不同层次的特征信息,从浅层的特征逐渐提取到深层抽象特征,进而提高网络特征的表达能力。然而当神经网络达到一定深度后,网络性能会陷入一个瓶颈,难以提升,随着网络的继续加深,网络在测试集上的性能反而下降,出现网络退化问题。He等[17]提出残差网络可以解决网络退化问题,即通过恒等映射的方式,可以让网络随着深度的增加而不退化。以往的去雾网络对通道和像素赋予了相同的处理权重,未能有效地处理加权通道和雾浓度分布不均匀的图像[18]。因此,本文在局部残差模块中引入了特征注意力,赋予重要通道信息更高的权重进而提高网络对浓雾像素区域的关注。
2. 网络模型
本文提出的MIOC-UNet去雾网络模型整体框架如图1所示。
本文受文献[19]的启发,构建了一个多输入多输出的单编码器。编码器模块(encoder module, EM) 包含1个3×3卷积层和1个残差特征注意力(residual feature attention, RFA)模块。将分辨率大小为256像素×256像素的有雾图像
${{\boldsymbol{I}}_1}$ 输入到RFA模块中提取特征,然后下采样到不同层级的${\text{E}}{{\text{M}}_k}$ 中提取更低维度的特征。为了能让不同比例的有雾图像($ {{\boldsymbol{I}}_{\text{2}}} $ ,${{\boldsymbol{I}}_{\text{3}}}$ )输入到网络中,使用预处理卷积模块(preprocessed convolution module, PCM)对$ {{\boldsymbol{I}}_{\text{2}}} $ 和${{\boldsymbol{I}}_{\text{3}}}$ 进行预编码。$ {\text{PC}}{{\text{M}}_k} $ 由1个3×3卷积和2个1×1卷积进行浅层特征的提取,将第2层1×1卷积的特征输出与${{\boldsymbol{I}}_k}$ 进行特征拼接,再用1个1×1卷积层进一步细化特征输出为$ {\boldsymbol{O}}_k^{_{{\text{PCM}}}} $ ,然后将${\boldsymbol{O}}_k^{{\text{PCM}}}$ 与$ {\boldsymbol{O}}_{k - {\text{1}}}^{{\text{EM}}} $ 输出特征送入多特征融合(multi-feature fusion, MFF)模块,在$ {\text{MF}}{{\text{F}}_k} $ 进行融合。通过利用缩小后的特征和从下采样图像中获得特征的互补信息,RFA模块可以有效地处理各种有雾图像。为了能让${\text{E}}{{\text{M}}_k}$ 中3个不同层级大小的特征图融合,将$ {\boldsymbol{O}}_k^{{\text{EM}}} $ 通过上采样或下采样后送入到非对称特征融合(asymmertric feature fusion, AFF)模块中融合非对称特征,随后将${\boldsymbol{O}}_k^{{\text{AFF}}}$ 与$ {\boldsymbol{O}}_{k{\boldsymbol{ + }}{\text{1}}}^{{\text{DM}}} $ 拼接,输入到解码器模块(decoder module, DM)中,经过1层步长为1的3×3卷积后输出$ {\boldsymbol{O}}_k^{{\text{DM}}} $ 。随后将$ {\boldsymbol{O}}_k^{{\text{DM}}} $ 与${{\boldsymbol{I}}_k}$ 通过自适应混合Mixup操作后,${\boldsymbol{O}}_k^{{\text{Mixup}}}$ 即为得到的去雾图像${{\boldsymbol{O}}_k}$ 。2.1 局部残差特征注意力模块
有雾图像被输入到一个浅层特征提取部分,即先经过1个3×3卷积,然后被送入局部残差特征注意力模块中,局部残差可以通过学习多个局部残差连接,减少薄雾或低频等非主要信息的干扰。每个通道的特征都有其独特的权重信息,而有雾图像也存在雾浓度的空间变化问题。因此,为了让局部残差块提高对重要通道和浓雾像素的敏感度,在每个残差块后加入特征注意力模块[12]。RFA模块由8个残差特征注意力块组成。残差特征注意力块如图2所示。
从图2可以清晰地看出,残差注意力块由2个3×3卷积和特征注意力组成。特征注意力由通道注意力子模块和像素注意力子模块组成。
2.1.1 通道注意力子模块
通道注意力(channel attention, CA)包含1个自适应全局平均池化层、2个1×1卷积层、1个ReLU激活函数和1个Sigmoid激活函数。由DCP理论[3]可以得出,CA主要关注不同通道的特征,使得这些特征具有完全不同的加权信息,即根据不同通道的特征重要程度学习权重,重新加权通道特征以增强不同特征图的一致性。首先,通过使用全局平均池化压缩空间信息,通过收缩特征图的空间维度
$ H \times W $ 来生成统计量$ {\boldsymbol{g}} $ ,从而$ {\boldsymbol{g}} $ 的第$c$ 个元素的计算公式为$$ {{\boldsymbol{g}}_{\boldsymbol{c}}} = {H_{\text{p}}}({{\boldsymbol{F}}_{\boldsymbol{c}}}) = \frac{{\text{1}}}{{H \times W}}\sum\limits_{i = {\text{1}}}^H {\sum\limits_{j = {\text{1}}}^W {{{\boldsymbol{X}}_c}(i,j)} } $$ 式中:
$ {{\boldsymbol{X}}_c}(i,j) $ 为第$c$ 个通道${{\boldsymbol{X}}_c}$ 在位置$ (i,j) $ 处的值,${H_{\text{p}}}( \cdot )$ 为全局池化函数,${{\boldsymbol{F}}_{\boldsymbol{c}}}$ 为输入第$c$ 个通道的特征图,${{\boldsymbol{g}}_{\boldsymbol{c}}}$ 为输出第$c$ 个通道的特征图。特征图大小由$C \times H \times W$ 经自适应全局平均池化变为$C \times {\text{1}} \times {\text{1}}$ ,将全局空间信息纳入通道描述符中,使得网络更加关注全局空间信息。为了得到不同通道的权重,特征经过2个1×1卷积层、ReLU激活函数和Sigmoid激活函数,计算公式为$$ {{\boldsymbol{W}}_{{\text{CA}}}} = \sigma ({\text{Conv}}(\delta ({\text{Conv}}({{\boldsymbol{g}}_c}))) $$ 式中:
$\sigma ( \cdot )$ 为Sigmoid激活函数,$\delta ( \cdot )$ 为ReLU激活函数。最后通过逐元素乘法运算将通道CA的权值和输入特征图${{\boldsymbol{F}}_{\boldsymbol{c}}}$ 组合以生成特征图,计算公式为$$ {\boldsymbol{F}}_{{c}}^{\boldsymbol{*}} = {{\boldsymbol{W}}_{{\text{CA}}}} \otimes {{\boldsymbol{F}}_{{c}}} $$ (1) 式中
${\boldsymbol{F}}_{{c}}^{\boldsymbol{*}}$ 为CA输出的特征图。由式(1)可以看出,${\boldsymbol{F}}_{{c}}^{\boldsymbol{*}}$ 不再平等地处理有雾图像中的通道特征。2.1.2 像素注意力子模块
由于有雾图像的薄雾区域和浓雾区域的像素权重不同,而像素注意力(pix attention, PA)可以使网络更加关注像素级特征信息,如厚雾像素和高频图像区域。与CA类似,PA直接将
${{\boldsymbol{F}}^{\boldsymbol{*}}}$ 输入到2个具有ReLU激活函数和Sigmoid激活函数的卷积层中,特征图形状由$C \times H \times W$ 变为${\text{1}} \times H \times W$ ,其计算公式为$$ {{\boldsymbol{W}}_{{\text{PA}}}} = \sigma ({\text{Conv}}(\delta ({\text{Conv}}({{\boldsymbol{F}}^{\boldsymbol{*}}}))) $$ 最后,将输入
${{\boldsymbol{F}}^*}$ 和PA的元素相乘,其计算公式为$$ {{\tilde {\boldsymbol{F}}}} = {{\boldsymbol{F}}^{\boldsymbol{*}}} \otimes {{\boldsymbol{W}}_{{\text{PA}}}} $$ (2) 式中
${{\tilde {\boldsymbol{F}}}}$ 为PA输出的特征图。由式(2)可以看出,${{\tilde {\boldsymbol{F}}}}$ 不再平等地处理有雾图像中像素特征。2.2 预处理卷积模块与多特征融合模块
为了让不同尺寸的有雾图像能够通过单编码器参与到网络信息流中,通过预处理卷积模块
${\text{PC}}{{\text{M}}_k}$ 从输入图像${{\boldsymbol{I}}_k}$ 中提取浅层特征。${\text{PC}}{{\text{M}}_k}$ 如图3所示。${{\boldsymbol{I}}_k}$ 通过步长皆为1的3×3卷积和1×1卷积操作后,卷积输出与$ {{\boldsymbol{I}}_k} $ 输入进行拼接,再通过1个步长为1的1×1卷积输出${\boldsymbol{O}}_k^{{\text{PCM}}}$ 。${\boldsymbol{O}}_k^{{\text{PCM}}}$ 与${\boldsymbol{O}}_k^{{\text{EM}}} \downarrow $ 通过${\text{MF}}{{\text{F}}_k}$ 模块进行特征融合,其中${\boldsymbol{O}}_k^{{\text{EM}}} \downarrow $ 表示$ {\boldsymbol{O}}_k^{{\text{EM}}} $ 的下采样输出。${\text{MF}}{{\text{F}}_k}$ 模块如图4所示。${\boldsymbol{O}}_k^{{\text{PCM}}}$ 与${\boldsymbol{O}}_k^{{\text{EM}}} \downarrow $ 相乘后输入到1个3×3卷积中,再将3×3卷积输出与${\boldsymbol{O}}_k^{{\text{EM}}} \downarrow $ 进行相加,得到输出${\boldsymbol{O}}_k^{{\text{MFF}}}$ 。2.3 非对称特征融合模块
细粒度子网络更关注局部细节信息,粗粒度子网络则更关注全局语义信息,有效整合不同粒度特征信息,融合非对称不同尺度特征有利于提高去雾图像的质量。为了能在单个编码器中融合非对称尺度的特征,引入非对称特征融合模块。
AFF模块将所有的RFA模块的输出作为输入,
$ {\boldsymbol{O}}_k^{{\text{EM}}} $ 通过上采样与下采样恢复对应层级的尺寸,并将3个相同尺寸的特征进行拼接,然后使用1个1×1卷积和1个3×3卷积融合多尺度特征,$ {\boldsymbol{O}}_k^{{\text{AFF}}} $ 与$ {\boldsymbol{O}}_{k + {\text{1}}}^{{\text{DM}}} \uparrow $ 进行拼接,$ {\boldsymbol{O}}_{k + {\text{1}}}^{{\text{DM}}} \uparrow $ 表示为$ {\boldsymbol{O}}_{k + {\text{1}}}^{{\text{DM}}} $ 的上采样输出,随后将拼接后的输出送到$ {\text{D}}{{\text{M}}_k} $ 中。AFF模块如图5所示。通过非对称特征的融合,去雾网络可以有效地利用不同粒度的特征信息,提高局部细节纹理的恢复效果,提升图像去雾性能。
2.4 自适应融合操作
低级特征可以在卷积神经网络的浅层中提取,能够获得更多的细粒度特征信息。但随着网络深度的增加,浅层特征会逐渐退化。来自上采样层和下采样层的特征之间缺少连接,这容易导致浅层特征(如边缘和轮廓)丢失。为避免在编解码的过程中图像局部细节的丢失,与传统U-Net采用跳跃连接产生新的特征不同,本文受文献[20]启发,引入自适应混合Mixup操作[13],考虑到3个不同尺度之间的输入与输出之间的跨层连接混合相加,采取加权融合的方式进行混合相加。融合的权重是由参数学习得到的,权重的取值采用Sigmoid函数转换到(0,1)区间。Mixup操作的输出公式为
$$ \begin{gathered}\boldsymbol{O}_k^{\text{Mixup}}=\text{Mix}(\boldsymbol{I}_k,\boldsymbol{O}_k^{\text{DM}})=\sigma(\theta_k)\times\boldsymbol{I}_k+(1-\sigma(\theta_k))\times\boldsymbol{O}_k^{\text{DM}}\end{gathered} $$ 式中:
$ {\boldsymbol{O}}_k^{{\text{Mixup}}} $ 为最终输出;$ \sigma(\theta_k),k=\text{1},\text{2},\text{3} $ 是第$k$ 个可学习因子,用于融合第$i$ 层级,其值由参数$ {\theta _k} $ 上的Sigmoid函数$\sigma ( \cdot )$ 决定。2.5 损失函数
2.5.1 对比正则损失函数
在深度学习中,对比学习因其可以利用大量、易获取的无标注数据增强神经网络模型的特征表达能力,近年来得到了学术界的广泛关注[21]。对比学习本质是在拉近同类图像的特征之间的距离、推远不同类图像之间的距离,以获得更好的特征提取模型。
本文引入对比正则化损失函数[13]来生成更好的去雾图像,与感知损失[22]不同的是,对比正则还推离锚与负样本的距离。对比正则化损失对每个输出进行监督,组成对比正则联合损失,共同训练去雾网络。具体而言,通过构造“正对”和“负对”,即将去雾图像作为锚,清晰图像作为正样本,有雾图像作为负样本;“正对”由锚与正样本组成,“负对”由锚与负样本组成;通过找到“正对”与“负对”潜在的特征空间进行对比。潜在特征空间从相同的固定预训练VGG-19模型中选取5个公共隐藏层权重,然后分别计算“正对”与“负对”经过隐藏层得到的特征图的差异,拉近去雾图像与清晰图像的距离,推离与有雾图像的距离。对比正则损失函数公式可以表示为
$$ {L_c} = \alpha \sum\limits_{i = 0}^k {\sum\limits_{j = 1}^n {{\beta _j}\frac{{{D_i}({{\boldsymbol{G}}_j}({\boldsymbol{J}}),{{\boldsymbol{G}}_j}(\phi ({\boldsymbol{I}},{\boldsymbol{\omega}} )))}}{{{D_i}({{\boldsymbol{G}}_j}({\boldsymbol{I}}),{{\boldsymbol{G}}_j}(\phi ({\boldsymbol{I}},{\boldsymbol{\omega}} ))) + \varepsilon }}} } $$ 式中:
${\boldsymbol{I}}$ 为有雾图像,${\boldsymbol{J}}$ 是无雾图像,$\phi ({\boldsymbol{I}},{\boldsymbol{\omega}} )$ 为去雾图像,$ \phi ( \cdot ,{\boldsymbol{\omega}} ) $ 为带${\boldsymbol{\omega}} $ 参数的去雾网络。$ \boldsymbol{G}_j,j=1,2, 3,4,5 $ 为从固定预训练模型VGG-19中提取的第$j$ 个潜在特征;$ D_i,i=\text{1,2,3} $ 为$i$ 层网络;$\varepsilon $ 为防止除零设置的超参数,值为$1 \times {10^{ - 7}}$ ;$ \beta_j,\ j=\text{1,2,3,4,5} $ 为权重系数,取值为$ 1/32,1/16,1/8,1/4,1 $ 。2.5.2 重构损失函数
除对比正则化损失函数以外,本文还采用L1损失作为去雾图像与清晰图像之间的重构损失。L1损失函数
$ {L_1} $ 的计算公式为$$ {L_1} = \sum\limits_{i = 1}^n {\left\| {{{\boldsymbol{J}}_i} - \phi ({{\boldsymbol{I}}_i},{{\boldsymbol{\omega}} _i})} \right\|} $$ 式中:
$ \boldsymbol{J}_i,i=1,2,3 $ 表示第$i$ 层尺寸的无雾图像;$\phi ({{\boldsymbol{I}}_i},{{\boldsymbol{\omega}} _i})$ 表示为第$i$ 层输出的去雾图像。最后,总体损失函数
$ L $ 定义为$$ L = \alpha {L_c} + {L_1} $$ 式中
$ \alpha $ 为对比正则损失的权重。3. 实验结果及分析
3.1 数据集
本文选用图像去雾领域应用广泛的RESIDE[23]数据集中室外训练集(outdoor training set, OTS)对网络进行训练,使用合成客观数据集(synthetic objective testing set, SOTS)对网络进行测试。OTS总共包含8 970幅清晰图像及其生成的313 950幅合成雾图像。SOTS包含500幅室外有雾图像。此外,为了进一步测试模型的有效性与鲁棒性,选用非均匀雾质真实数据NH-HAZE[24]和NTIRE21[25]数据集进行定性和定量分析,其中NH-HAZE包含55对户外场景雾图,NTIRE21为NH-HAZE的扩充,其中20对户外场景雾图作为训练集,5对为测试集。
3.2 实验设置与评价指标
本实验使用操作系统为Ubuntu 18.04.6 LTS,GPU为Tesla V100,CUDA为11.6,深度学习框架为PyTorch,版本为1.10.1。本文将所有图像都随机剪切成大小为256像素×256像素的图像块用于训练。将初始学习率设置为
$ 1 \times {10^{ - 4}} $ ,使用余弦退火策略[26]来调整学习率,batch size设置为4,使用Adam优化器来优化模型参数,其中${\beta _1} = 0.9$ ,${\beta _2} = 0.999$ ,对比正则损失权重$\alpha = 0.1$ 。为了客观评价图像去雾效果,本文选取峰值信噪比(peak signal to noise ratio, PSNR)和结构相似度指数(structural similarity index, SSIM)对实验结果进行定量分析。PSNR是通过计算对应像素点之间的误差来判断图像之间的差异,其值越高表示失真越小,图像与原图之间越相似;SSIM是将感知误差的度量转移到对感知结构失真的度量,其值越大,代表图像去雾效果越好。
3.3 实验结果及分析
本文将从合成雾数据集与真实雾数据集上对所提出的方法与目前流行的去雾方法进行定性和定量比较。对比方法包括基于大气散射模型的DCP[3];基于大气散射模型的深度学习方法AOD-Net[8];基于端到端的深度学习方法,包括GCA-Net[11]、FFA-Net[12]、MSBDN[27]。所有方法均采用相同环境进行训练及验证。
3.3.1 基于合成雾数据集的对比与分析
将上述对比算法与本文提出的模型在OTS数据集上进行训练,在SOTS进行测试,测试结果如表1所示。从表1中可以看出,与对比算法相比,本文提出的模型实现了最佳的性能指标,PSNR为34.20 dB,SSIM为0.986 5。与性能次优的MSBDN模型相比,在SOTS数据集上PSNR提高了0.52 dB,SSIM提升了0.004 4。证明了本文提出的模型在去雾性能上优于对比方法。
算法 PSNR/dB SSIM DCP 19.14 0.861 0 AOD-Net 24.33 0.927 7 GCA-Net 31.66 0.972 8 FFA-Net 33.41 0.984 1 MSBDN 33.68 0.982 1 本文模型 34.20 0.986 5 为进一步验证本文提出的模型对合成雾图像的有效性,图6给出了本文模型与对比去雾算法比较的可视化结果。
观察图6可知,DCP由于其对先验信息的依赖而导致对颜色的严重失真;AOD-Net对图像局部细节的雾不能完全去除,这是因为其倾向于生成暗图像;GCA-Net对颜色的恢复产生严重偏移,对纹理、边缘的恢复有所不足;而FFA-Net与MSBDN模型整体去雾效果良好,但仍存在边界模糊的视觉问题;相比以上方法,本文提出的模型在视觉效果上进一步得到了改善,在恢复图像细节和恢复色彩上更加接近真实的无雾图像。
3.3.2 基于真实雾数据集的对比与分析
为了验证本文模型在真实世界有雾图像上的有效性和适应性,将本文模型与对比方法在2个真实数据集NH-HAZE与NTIRE21上作定量与定性比较。表2给出了定量比较实验结果。从表2可以得出,在NH-HAZE数据集上,与对比算法相比,本文提出的模型在PSNR指标上最高,与次优的MSBDN相比,提高了0.32 dB;而在SSIM指标上处于次优,与FFA-Net相比仅低0.000 6。
算法 NH-HAZE NTIRE21 PSNR/dB SSIM PSNR/dB SSIM DCP 12.29 0.411 3 11.30 0.605 1 AOD-Net 14.49 0.584 4 15.43 0.671 1 GCA-Net 17.11 0.635 2 17.33 0.721 5 FFA-Net 18.26 0.666 0 19.80 0.814 9 MSBDN 18.33 0.650 9 19.12 0.752 6 本文模型 18.65 0.665 4 21.16 0.822 0 在NTIRE21数据集上,与对比算法相比,本文模型在PSNR指标和SSIM指标上均为最高,相比次优的FFA-Net,PSNR值提高了1.36 dB,SSIM值提高了0.007 1。与RESIDE数据集相比,NH-HAZE真实数据集与NTIRE21真实数据集样本极少,网络模型训练难度大,且为非均匀密集团雾,所以在该类数据集上指标普遍偏低。以上对真实数据集的客观指标进一步证明了本文模型的有效性。
将提出的模型与对比方法在真实去雾图像的可视化质量上进行了定性的比较。针对NH-HAZE数据集的定性评估如图7所示。基于物理先验的DCP和依赖大气模型的深度神经网络AOD-Net去雾功能几乎失效,且经DCP去雾操作后的图片出现严重的颜色失真,整体色彩偏蓝。GCA-Net对密集雾的去雾效果几乎无效,且容易出现伪影现象。FFA-Net去雾之后对细节的颜色恢复失效,且对浓雾的去雾效果欠佳。MSBDN方法去雾不彻底,存在细节丢失的问题。相比以上算法,本文模型仅在局部区域存在少量雾残留,但整体去雾效果良好,在细节纹理恢复上有更好的表现,且无明显偏色问题,去雾图像基本能够保持较好的视觉效果。
针对NTIRE21数据集的定性评估如图8所示。DCP和AOD-Net同样对非均匀团雾失效。GCA-Net在稠密雾中效果不佳,且去雾图像存在严重颜色失真现象。FFA-Net和MSBDN虽然比上述方法有着更好的去雾效果,但仍存在明显的视觉问题,例如对比度偏低和边界模糊等。本文模型在去雾图像的视觉效果上,色彩恢复最接近无雾图像,对细节的恢复也相比上述算法有着更好的效果。
4. 结束语
本文提出了一种基于粗到细的多尺度单幅图像去雾方法,由单编码器-解码器构成。编码器通过输入多尺度图像并组合来自不同层级的特征,将RFA模块作为特征提取模块,不仅使去雾网络有更深的网络结构,而且引入特征注意力使得网络更加关注雾图中的重要通道和像素区域。采用非对称特征融合模块,使不同层级的信息流互相融合。通过将浅层信息与深层信息的自适应混合,在对图像进行去雾的同时,更好地保留了图像的细节纹理信息。编码器是多输入的同时,解码器输出多尺度去雾图像,并计算它们与负样本的对比正则损失,联合L1损失使得去雾图像更接近无雾图像,相较于对比算法,拥有更好的去雾效果。如何针对小样本非均匀雾数据集进行图像去雾将是未来研究的主要方向。
-
表 1 各算法在SOTS数据集上的定量对比
Table 1 Quantitative comparison of each algorithm on SOTS dataset
算法 PSNR/dB SSIM DCP 19.14 0.861 0 AOD-Net 24.33 0.927 7 GCA-Net 31.66 0.972 8 FFA-Net 33.41 0.984 1 MSBDN 33.68 0.982 1 本文模型 34.20 0.986 5 表 2 各算法在真实数据集上的定量对比
Table 2 Quantitative comparison of each algorithm on real datasets
算法 NH-HAZE NTIRE21 PSNR/dB SSIM PSNR/dB SSIM DCP 12.29 0.411 3 11.30 0.605 1 AOD-Net 14.49 0.584 4 15.43 0.671 1 GCA-Net 17.11 0.635 2 17.33 0.721 5 FFA-Net 18.26 0.666 0 19.80 0.814 9 MSBDN 18.33 0.650 9 19.12 0.752 6 本文模型 18.65 0.665 4 21.16 0.822 0 -
[1] 王道累, 张天宇. 图像去雾算法的综述及分析[J]. 图学学报, 2020, 41(6): 861−870. WANG Daolei, ZHANG Tianyu. Review and analysis of image defogging algorithm[J]. Journal of graphics, 2020, 41(6): 861−870. [2] NARASIMHAN S G, NAYAR S K. Vision and the atmosphere[J]. International journal of computer vision, 2002, 48(3): 233−254. doi: 10.1023/A:1016328200723 [3] HE Kaiming, SUN Jian, TANG Xiaoou. Single image haze removal using dark channel prior[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(12): 2341−2353. doi: 10.1109/TPAMI.2010.168 [4] 张世辉, 路佳琪, 宋丹丹, 等. 基于多尺度特征结合细节恢复的单幅图像去雾方法[J]. 电子与信息学报, 2022, 44(11): 3967−3976. doi: 10.11999/JEIT210868 ZHANG Shihui, LU Jiaqi, SONG Dandan, et al. Single image dehazing method based on multi-scale features combined with detail recovery[J]. Journal of electronics & information technology, 2022, 44(11): 3967−3976. doi: 10.11999/JEIT210868 [5] ZHU Qingsong, MAI Jiaming, SHAO Ling. A fast single image haze removal algorithm using color attenuation prior[J]. IEEE transactions on image processing, 2015, 24(11): 3522−3533. doi: 10.1109/TIP.2015.2446191 [6] 王科平, 杨艺, 费树岷. 雾霾图像清晰化算法综述[J]. 智能系统学报, 2023, 18(2): 217−230. doi: 10.11992/tis.202110029 WANG Keping, YANG Yi, FEI Shumin. Review of hazy image sharpening methods[J]. CAAI transactions on intelligent systems, 2023, 18(2): 217−230. doi: 10.11992/tis.202110029 [7] CAI Bolun, XU Xiangmin, JIA Kui, et al. DehazeNet: an end-to-end system for single image haze removal[J]. IEEE transactions on image processing, 2016, 25(11): 5187−5198. doi: 10.1109/TIP.2016.2598681 [8] LI Boyi, PENG Xiulian, WANG Zhangyang, et al. AOD-net: all-in-one dehazing network[C]//2017 IEEE International Conference on Computer Vision. Venice: IEEE, 2017: 4780−4788. [9] REN Wenqi, LIU Si, ZHANG Hua, et al. Single image dehazing via multi-scale convolutional neural networks[C]//European Conference on Computer Vision. Cham: Springer, 2016: 154−169. [10] CHEN Dongdong, HE Mingming, FAN Qingnan, et al. Gated context aggregation network for image dehazing and deraining[C]//2019 IEEE Winter Conference on Applications of Computer Vision. Waikoloa: IEEE, 2019: 1375−1383. [11] QU Yanyun, CHEN Yizi, HUANG Jingying, et al. Enhanced pix2pix dehazing network[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 8152−8160. [12] QIN Xu, WANG Zhilin, BAI Yuanchao, et al. FFA-net: feature fusion attention network for single image dehazing[J]. Proceedings of the AAAI conference on artificial intelligence, 2020, 34(7): 11908−11915. doi: 10.1609/aaai.v34i07.6865 [13] WU Haiyan, QU Yanyun, LIN Shaohui, et al. Contrastive learning for compact single image dehazing[C]//2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021: 10546−10555. [14] 高峰, 汲胜昌, 郭洁, 等. 采用对比学习的多阶段Transformer图像去雾方法[J]. 西安交通大学学报, 2023, 57(1): 195−210. doi: 10.7652/xjtuxb202301019 GAO Feng, JI Shengchang, GUO Jie, et al. A multi-stage transformer network for image dehazing based on contrastive learning[J]. Journal of Xi’an Jiaotong University, 2023, 57(1): 195−210. doi: 10.7652/xjtuxb202301019 [15] ZHANG Hongguang, DAI Yuchao, LI Hongdong, et al. Deep stacked hierarchical multi-patch network for image deblurring[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 5971−5979. [16] RONNEBERGER O, FISCHER P, BROX T. U-Net: convolutional networks for biomedical image segmentation[M]//Lecture Notes in Computer Science. Cham: Springer, 2015: 234−241. [17] HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 770−778. [18] 范新南, 赵忠鑫, 严炜, 等. 结合注意力机制的多尺度特征融合图像去雾算法[J]. 计算机科学, 2022, 49(5): 50−57. doi: 10.11896/jsjkx.210400093 FAN Xinnan, ZHAO Zhongxin, YAN Wei, et al. Multi-scale feature fusion image dehazing algorithm combined with attention mechanism[J]. Computer science, 2022, 49(5): 50−57. doi: 10.11896/jsjkx.210400093 [19] CHO S J, JI S W, HONG J P, et al. Rethinking coarse-to-fine approach in single image deblurring[C]//2021 IEEE/CVF International Conference on Computer Vision. Montreal: IEEE, 2021: 4621−4630. [20] ZHANG Hongyi, CISSE M, DAUPHIN Y N, et al. Mixup: beyond empirical risk minimization[EB/OL]. (2017−10−25)[2023−05−05]. https://arxiv.org/abs/1710.09412. [21] 张重生, 陈杰, 李岐龙, 等. 深度对比学习综述[J]. 自动化学报, 2023, 49(1): 15−39. ZHANG Chongsheng, CHEN Jie, LI Qilong, et al. Deep contrastive learning: a survey[J]. Acta automatica sinica, 2023, 49(1): 15−39. [22] LEDIG C, THEIS L, HUSZÁR F, et al. Photo-realistic single image super-resolution using a generative adversarial network[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 105−114. [23] LI Boyi, REN Wenqi, FU Dengpan, et al. Benchmarking single-image dehazing and beyond[J]. IEEE transactions on image processing, 2019, 28(1): 492−505. doi: 10.1109/TIP.2018.2867951 [24] ANCUTI C O, ANCUTI C, TIMOFTE R. NH-HAZE: an image dehazing benchmark with non-homogeneous hazy and haze-free images[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Seattle: IEEE, 2020: 1798−1805. [25] ANCUTI C O, ANCUTI C, VASLUIANU F A, et al. NTIRE 2021 NonHomogeneous dehazing challenge report[C]//2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Nashville: IEEE, 2021: 627−646. [26] HE Tong, ZHANG Zhi, ZHANG Hang, et al. Bag of tricks for image classification with convolutional neural networks[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 558−567. [27] DONG Hang, PAN Jinshan, XIANG Lei, et al. Multi-scale boosted dehazing network with dense feature fusion[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 2154−2164.