1.2.2 网络结构
本章提出了一种结合注意力机制的多尺度特征融合图像去雾算法,该算法的结构如图1-1所示。
从图1-1中可以看出,本章算法的主体结构使用了类似于UNet的编码器-解码器结构,主要由四个模块组成:编码器子网络、特征转换模块、特征注意力模块和解码器子网络。本章算法首先使用 CNN 提取图像中多个尺度的特征图,然后采用跳跃连接的方式对不同尺度的特征图进行融合,使得最终得到的特征图中既包含深层特征,也包含浅层特征,提高了本章算法的特征表达能力。同时,本章算法加入由通道注意力模块和像素注意力模块组成的特征注意力模块,使本章算法更加关注浓雾像素区域和重要通道信息。下面将详细描述本章提出的结合注意力机制的多尺度特征融合图像去雾算法的各个组成部分。
图1-1 本章算法的结构
1.2.2.1 编码器子网络
编码器子网络中包含卷积层和下采样层。卷积层中包含两个操作。首先,使用卷积核进行卷积运算,卷积的步长为2,卷积核的大小为3×3,原因是3×3的卷积核相较于较大的卷积核,可在有效提取特征的同时减少网络的参数量,从而提高了计算效率。其次,在卷积运算之后通过ReLU激活函数进行下采样操作,从而获取多个尺度的特征图,用这种方式编码图像信息。
1.2.2.2 特征转换模块
众所周知,深度网络的主要优势是能够表示非常复杂的函数,同时学习到更深层且更为抽象的特征,进而提升网络的特征表达能力。因此,早期研究人员想通过不断加深网络的深度来提高网络的性能,但最终发现网络达到一定的深度后,性能不升反降。经研究发现,造成这种现象的原因是网络过深导致反向传递时梯度逐渐消失,无法调整前面网络层的权重。残差网络[19]的出现解决了该问题。残差网络采用恒等映射的方式,能够在保证网络性能不随着网络加深而退化的同时提取到更深层的特征。为了平衡网络性能和计算效率,本章使用由18个残差模块组成的特征转换模块进行特征学习,每个残差模块中包含2个卷积运算和1个激活函数,卷积运算中的卷积核大小均为3×3,激活函数选用ReLU激活函数。特征转换模块如图1-2所示。
图1-2 特征转换模块
1.2.2.3 特征注意力模块
现有的大多数去雾算法都没有区别处理不同的通道和像素。大量研究表明,不同的通道特征具有完全不同的加权信息。此外,雾图中的雾浓度分布也是不均匀的,薄雾区域的像素权重和浓雾区域的像素权重完全不同。如果平等地对待雾图中的通道和像素将会花费大量的资源去计算不必要的信息,同时还会忽略重要的信息,导致网络缺乏覆盖所有通道和像素的能力,最终限制网络的性能。自从注意力机制在相关研究中取得良好的效果后[20],许多研究中都开始加入注意力机制。本章在编码器-解码器结构中加入了由通道注意力模块和像素注意力模块组成的特征注意力模块。特征注意力模块能让本章算法更加关注重要的通道信息与像素信息,将更多的注意力集中在浓雾像素和重要的通道信息上,为处理不同类型的信息提供灵活性,对于一些雾浓度高且细节丰富的有雾图像的去雾性能提升更加显著。特征注意力模块的结构如图1-3所示。
图1-3 特征注意力模块的结构
(1)通道注意力模块。本章采用平均池化的方式来描述通道中的全局空间信息,如式(1-3)所示。
式中,Fc表示第c个通道输入的特征图;Hp(·)表示池化函数;gc表示第c个通道输出的特征图;H和W分别表示特征图的高和宽;Xc(i,j)表示第c个通道的特征图在像素(i,j)处的值。特征图的尺寸经此变换之后由C×H×W变为C×1×1(C为通道数量)。特征图首先经过2个卷积层、1个ReLU激活函数和1个Sigmoid激活函数,如式(1-4)所示。
式中,δ(·)表示ReLU激活函数;σ(·)表示Sigmoid激活函数;CAc表示第c个通道的权重。最后将CAc与输入的特征图Fc相乘可得到经通道注意力模块的特征图,如式(1-5)所示。
(2)像素注意力模块。把通道注意力模块输出的特征图经过2个卷积层、1个ReLU激活函数和1个Sigmoid激活函数[如式(1-6)所示]后,其尺寸由C×H×W变为1×H×W。
式中,δ(·)表示ReLU激活函数;σ(·)表示Sigmoid激活函数;PAc表示第c个通道的权重。将PAc与像素注意力模块的输入特征图相乘可得到经像素注意力模块的特征图,如式(1-7)所示。
1.2.2.4 解码器子网络
解码器子网络由3个上采样层和3个卷积层组成。与编码器子网络相反,解码器子网络的上采样层顺序地恢复图像细节,最终得到去雾图像。为了最大化多层级之间的信息流,本节算法采用跳跃连接的方式将编码器子网络和解码器子网络之间的特征图连接起来,并在跳跃连接中加入了特征注意力模块,使得本章算法能更加关注图像中浓雾像素区域和重要通道信息。