基于循环生成对抗网络的图像去雾算法

2022-03-12 05:56郭梦琰刘巧红蔡立志
计算机工程 2022年3期
关键词:卷积特征模块

郭梦琰,张 娟,刘巧红,蔡立志

(1.上海工程技术大学 电子电气工程学院,上海 201620;2.上海健康医学院 医疗器械学院,上海 201318;3.上海计算机软件技术开发中心,上海 200235)

0 概述

北方城市在秋冬季多会出现雾霾、沙尘等视觉障碍现象,这是由大气中悬浮的细微水滴、灰尘、硫酸、烟雾等粒子急剧增加所造成。由于介质粒子吸收物体光照,散射大气光,使得摄像系统拍摄到的图像多呈现灰白色,饱和度和对比度均有所损失,难以分辨图像中的物体。图像去雾能够为后续高级计算机视觉任务如语义分割[1]、目标追踪和识别[2]、智能交通监控等带来更加理想的结果。

随着计算机硬件快速发展,基于神经网络的学习方法被广泛应用于图像处理领域。研究人员采用深度学习方法获得端到端的图像映射模型,其均为难以用数学公式精确表达的物理模型。计算机视觉高级任务对图像去雾后图像的视觉感知和细节纹理要求极高,深度学习的应用缓解了量化指标无法大幅提升的瓶颈。生成对抗网络[3]具有强大的图像重建能力,在无监督学习上的表现优异,一经提出就受到国内外研究人员的广泛关注。

本文将生成对抗网络引入到循环卷积神经网络中,迭代重建出清晰图像。利用生成网络中密集反馈模块的反馈连接实现反馈机制,引导整个网络有导向地学习成雾原理,逐步提高网络的重建能力。通过解码模块融合编码模块的特征,快速准确地恢复出纹理精细的残差特征图。此外,在判别网络中根据Wasserstein 距离确定最后的去雾图像。

1 相关工作

经过多年的研究,研究人员提出了许多图像去雾方法。传统的图像去雾方法主要从以下2 个处理方向着手:

1)直接通过增强图像的饱和度、对比度、清晰度等来增加雾图中物体的视觉效果;

2)运用大气散射模型原理,通过优化估计的透射率或大气光,提高图像去雾性能。图像增强是从图像本身特性出发,突出其中的景物来达到图像去雾的目 的,主要有直方图均衡化[4]、同态滤波[5]、Retinex 理论[6]、小波变换[7-8]等方法。但这些方法并不是针对雾的形成原理所提出的方法,没有明确的去雾目的。图像去雾后效果参差不一,对浓雾图像复原效果差,且易出现噪声。

针对雾的形成原因,许多研究人员利用先验知识对大气散射[9]模型重新反向推演,求得清晰的去雾图像,大气散射模型可表示为:

其中:x表示图像中的像素;I(x)表示摄像系统采集到的有雾图像;J(x)表示待恢复的清晰去雾图像;t(x)表示透射率;A表示大气光强度。但t(x)与A的值存在不确定性,其测量准确度会直接影响图像去雾效果。由此,多数算法把估计精准的透射率图和大气光强度作为算法的评估指标,HE 等[10]基于统计的方法提出暗通道先验理论(DCP),并优化了透射率。BERMAN 等[11]发现颜色信息可以在空间坐标中呈现规律分布的先验。但这些先验[12-13]方法多有条件约束,借助现有的先验估计出的透射率往往不够准确,图像去雾的结果很容易产生色块不均和光晕现象,且鲁棒性和泛化性均比较差。

随着深度学习在计算机视觉上的广泛运用,CAI 等[14]采用学习的方法,利用卷积神经网络计算透射率图。ZHANG 等[15]采用双分支网络分别学习透射率图和大气光强度,并在网络中嵌入大气散射模型。此类方法的求解原理仍然是从大气散射模型出发,但有雾图像与清晰图像之间的映射关系并非与大气散射模型完全适配。显然,深度学习可以更加准确地学习有雾图像与清晰图像之间的统计关系。CHEN 等[16]提出一种端到端的平滑扩张卷积的全局跳跃残差网络,可以恢复出较为清晰的图像。LIU 等[17]借助语义分割的方法,提出拥有注意力机制的GridDehazeNet,解决了跨尺度信息交换的问题,缓解了信息交互的瓶颈。DENG 等[18]提出可将雾图分为无雾层和有雾层,利用多个模型融合方法,提高去雾性能。

循环神经网络RNN 已成功用于计算机视觉[19],受到上述方法的启发,本文提出一种针对图像去雾的端到端循环生成对抗网络算法。借助对抗生成网络,在循环神经网络RNN 的框架下实现迭代过程,并在RNN 的隐藏状态下实现信息的反馈。在此基础上,损失绑定会使网络在每次迭代时重建清晰图像,且判别网络能够确定是否恢复出高质的图像。

2 循环生成对抗网络

生成对抗网络由GOODFELLOW 等[3]提出后,被引入图像处理方向[20-21]。其基本结构包含一个生成器G和一个判别器D,在训练过程中均处于博弈状态。在图像任务中,G接收输入噪声,通过向目标图像学习,输出生成图像,D试图将生成图像和目标图像区分开。在训练过程中,G的生成性能和D的判别性能将随着学习不断提高,G最终生成令D信服的图像,整个网络至此优化完整。G和D之间的博弈目标函数为:

其中:x~Pr(x)表示服从真实无雾清晰图像的数据分布;z是一个输入的噪声;z~Pg(z)表示服从模糊有雾图像的数据分布;(·)表示期望。

本文算法宏观整体结构如图1 所示,输入雾图首先进入生成网络,生成阶性去雾图像,随后和真实清晰图像一起进入判别网络,得到它们之间的差异。网络可以展开为t次迭代的结构,其中生成网络之间采用反馈连接,如迭代网络间的箭头所示。I表示的输入雾图,J表示的真实清晰图像,网络迭代J被多次送入网络,是第t次迭代估计的去雾图像。以第t次迭代为例,本文网络可分为生成网络GθG和判别网络DθD2个部分,如图2 所示。第1 个部分为生成网络GθG,生成阶段性去雾图像;第2个部分为判别网络DθD,判断阶段性去雾图像与真实清晰图像J间的差异。迭代循环的终止条件是DθD判定恢复出的去雾图像接近于清晰图像,网络根据输出的Wasserstein距离不断优化GθG和DθD学习能力,迭代结构会实现网络参数共享,大大减少参数量。网络最大的特点是具有密集反馈信息hi(i=1,2,…,t),GθG不再是简单的重复优化,而是携带着指导信息hi有根据地向目标结果优化,DθD输出的Wasserstein 距离决定网络是否将继续优化,是影响图像去雾结果的关键因素。

图1 循环生成对抗网络的整体结构Fig.1 Overall structure of recurrent generative adversarial network

图2 循环生成对抗网第t 次迭代后的结构Fig.2 The t-th iteration structure of recurrent generative adversarial network

2.1 生成网络

生成网络GθG的结构为基本的编解码模式,首先,编码模块将有雾图像的特征尺寸逐渐缩小,增加通道数,并提取低维特模糊特征。在之后的解码模块将特征图逐渐重建为与原始图像大小相同的残差特征图。GθG分为3 个子模块,包括编码模块、密集反馈模块和解码模块,其中密集反馈模块是嵌入编码模块和解码模块之间的。如图3 所示,相邻2 次的密集反馈模块的反馈连接,保证了之后高维度信息可以被应用在低维度特征信息中,指导低维度特征信息生成更丰富的高维度表达,从而使去雾图像得到恢复。

图3 相邻2 次迭代后生成的网络结构Fig.3 Network structure generated after two adjacent iterations

编码模块由3 个卷积单元组成,每个卷积单元分别包含一个3×3 卷积操作、一个归一化层和一个ReLU 激活函数层,由卷积单元提取出浅层的低维雾图特征信息。密集反馈模块首先经过1 个卷积核大小为1×1 的卷积层,将参数信息整合后继续向后传输。接着有6 个卷积单元,每个卷积单元间以密集连接的方式连接,卷积单元包含1 个1×1 的卷积操作,1 个3×3 的卷积操作以及1 个归一化操作。卷积单元中的1×1 卷积是为了获得参数并提高计算效率,减少信息的冗余度。之后将各个卷积单元的信息拼接进行特征融合,并通过1×1 卷积操作加深高维特征融合的程度。

在解码模块中,利用所获得的高维度特征信息阶段性地恢复有雾图像与清晰图像间的残差图。解码模块由3 个反卷单元块组成,反卷积单元中包含1 个3×3 的反卷积操作,1 个归一化层和1 个激活层,反卷积单元与编码模块中的卷积单元相互对应。最后2 个反卷积单元前增加逐个元素点乘操作,将编码模块得到的浅层特征信息s2、s1通过跳跃连接送入解码模块,引导重建。I通过全局跳跃连接传输到解码模块后,与学习到的残差特征图融合,生成阶段性的。

以相邻的第t-1 次和第t次迭代为例,介绍网络的特征操作步骤。输入原始有雾图像I,在编码模块经过低维特征提取后,可获得雾的浅层特征信息s1:

其中:WE1、BE1分别表示编码模块第1 个卷积单元的权重项和偏置项;BBN为归一化操作;f为激活函数,可以表示为:

本文将1 次卷积单元操作抽象为编码模块操作Fecoder(·),即有:

其中:第t次迭代的浅层特征信息shaze被第t-1 次迭代传输的反馈信息ht-1指导,经过密集反馈模块处理后,可以得到更细化的高维度雾的特征信息ht,作为下一次迭代的指导信息,密集反馈模块输出可表示为:

其中:FDFB(·)表示密集反馈模块对secoder和ht-1的操作。解码模块逐步放大深层特征,生成估计残差特征图,解码模块的第1 个反卷积单元操作可得到第1 个深层特征:

其中:FD(·)表示反卷积单元的重建操作;WDi和BDi表示第i个反卷积块的权重项和偏置项。将和尺寸相应的浅层特征s2融合,经过第2 个反卷积单元,得到第2 个深层特征:

其中:⊙是图像像素的点乘操作。将融合浅层特征s1再经过第3 个卷积单元操作,可得到残差特征:

2.2 判别网络

判别网络DθD结构如图4 所示,其包含了2 个1×1卷积单元,3 个3×3 卷积单元,卷积操作后将特征图转变为一维特征,再由全连接层处理,最后由Tanh 激活函数输出Wasserstein 距离。

图4 判别网络结构Fig.4 Discriminant network structure

激活函数的表达式为:

原始GAN 的结果是针对二分类的非真即假,而WGAN[22]输出的则是Wasserstein 距离,用于回归任务,表示生成分布与真实分布间的距离,当生成去雾图像越接近真实清晰图像时,Wasserstein 距离会越小。Wasserstein 距离是人为定义的针对数据分布Pr与模型分布Pg间差异的测量,可表示为:

其中:Π(Pr,Pg)代表对于的边缘分布为数据分布Pr和模型分布Pg的联合分布的集合。当服从γ分布时,两者对于期望的最小值即为Wasserstein 距离。

2.3 损失函数

本文使用联合损失函数优化整个网络,相对于L2损失函数能缩小最大误差和最小误差间的距离,加大对较大误差的惩罚,L1损失函数对异常值的敏感度非常低,较小的梯度变化可以防止梯度爆炸的发生。本文使用平滑的损失函数LS代替L1,避免L1函数带来的不稳定,获得更优的鲁棒性。LS函数表达式如式(15)所示:

其中:

本文使用WGAN 损失作为对抗损失,可表示为:

网络总的损失函数由LS损失和LGAN组成:

将参数λ设为100,初始时不需要惩罚输入图像间的误差,故没有设定判别网络的限制条件。

3 实验与分析

3.1 实验数据集

为客观公正地与对比算法做性能比较,本文使用公共的RESIDE[23]数据集来训练网络。另外,使用了在真实世界中有雾图像的数据集[24]验证几种对比方法的视觉效果。RESIDE 数据集包含成对的有雾图像和相应的清晰图像,由3 部分组成:室内训练集(ITS),综合客观测试集(SOTS)和混合主观测试集(HSTS)。这些数据集均借助大气散射模型所生成。NYU2[25]和Middlebury Stereo[26]是包含室内深度信息的数据集,从中选出1 399 个图像,搭配不同的大气光A和散射系数β,生成ITS 的13 990 张有雾图像,A和β分别在区间[0.7,1.0]和[0.6,1.8]2 个区间里均匀随机地选取。1 张清晰的图像搭配使用不同的参数A和β,生成10 个相应的有雾图像。测试数据集STOS 选择了来自NYU2的50 张清晰图像(未与训练集中的清晰图像重复),以相同的方式生成500 张有雾图像。HSTS 包含10 个合成的室外有雾图像和10 个真实世界的有雾图像。RESIDE室外补充训练数据集RESIDE-β包含296 695个有雾图像也是按照相同的方法生成的。本文仅使用SOTS 作为测试数据集。

3.2 实验参数设置

为充分使用有雾图像的上下文信息并加快训练速度,本文首先将有雾图像划分为60×60 大小相等的的图像块,然后将分割后的有雾图像块输入网络进行训练,最后将经过处理的图像块重新组合在一起,并输出去雾清晰图像。每次迭代(最后一次迭代除外)的输出视为阶段性结果,最后一次网络迭代的输出是最终的去雾结果。网络训练的Batch Size 设置为16,使用与文献[29]相同的方式初始化网络参数,总共训练500 个迭代周期,本文使用初始学习率为0.000 2 的ADAM 优化器优化网络,网络每经过100 个迭代周期后,学习率将降低为上一次学习率的1/2。实验使用Linix 系统下NVIDIA 1080 Ti 型号的GPU,并基于Pytorch1.0 框架的环境进行。

3.3 实验结果分析

尽管文献[23]提出多种方法来评估图像的去雾效果,但平均峰值信噪比(PSNR)和结构相似性(SSIM)仍是最广泛使用的图像去雾效果评估指标。本文采用主流的平均PSNR 和SSIM 值用作为定量评估,PSNR 和SSIM 的值越高,表示图像的去雾效果越优秀。表1 中给出了6 种不同去雾算法的实验结果。DCP[10]是基于暗通道先验的传统物理模型去雾算法。AOD-Net[27]、DehazeNet[14]、GFN[28]、GCANet[16]网络是数据驱动的学习算法,均使用到神经网络。其中,DehazeNet 仍基于大气散射模型原理得到去雾图像,而获得透射率图和大气光强度是必要条件。由表1 可知,本文算法的室内和室外PSNR 和SSIM指标均高于其他5 种算法,且本文算法相较于GCANet,在SOTS 室内的PSNR 值提高 了3.41%,SSIM 值提高了0.57%,室外的PSNR 值提高了3.48%,SSIM 值提高了1.39%,本文提出的网络算法的性能优于其他5 种图像去雾算法的性能。

表1 不同算法的实验结果对比Table 1 Comparison of experimental results of different algorithms

图5 展示了在SOTS 数据集中2 组室内图像和2 组室外图像的去雾结果。在视觉上,可以清楚地观察到DCP 算法处理后的图像亮度变暗,且经过去雾处理后图像的颜色与真实图像的颜色相差太大,出现严重失真现象。使用AOD-Net 算法去雾过后的图像,仍有少量的雾气残留,导致图像的整体亮度略有下降。与DCP 算法的处理结果相反,DehazeNet 算法使得经过去雾处理后图像的亮度高于真实清晰图像的亮度。GFN 算法可以有效去雾并减少伪影,但当去除较浓的雾时,图像上仍有少量余雾。尽管GCANet 算法可以很好地消除图像中的雾气,但在细节处理上并不完美。如图6 所示,在处理真实世界的数据上,本文算法处理后的图像色彩饱和、纹理清晰,图像上没有余雾的残留,有很好的泛化性,与GCANet 算法相比,能更好地处理图像细节和纹理,且去雾图像的亮度更接近于真实图像。

图5 不同算法在SOTS 数据集上的去雾效果对比Fig.5 Comparison of defogging effects of different algorithms on SOTS data set

图6 不同算法在真实世界数据集上的去雾效果对比Fig.6 Comparison of defogging effects of different algorithms on real-word date set

3.4 本文算法应用

选取2 幅有雾图像,本文算法去雾后,用YOLOv3对4 张图像进行目标检测。检测结果如图7 所示。

图7 有雾图像和去雾图像的目标检测对比结果Fig.7 Comparison results of object detection between hazy images and dehazed images

将识别物体的准确率和正确识别物体的数目作为目标检测结果有效性的衡量。在误差允许范围±0.002内,认为检测结果一致。在场景1 中,在图7(a)中检测出5 个物体,图7(b)中检测出6 个物体,其中手提包被准确检测到,较远处的货车识别准确度较有雾时提高11.08%。在场景2 中,近处的交通灯和车辆检测结果基本一致,但远处的面包车,图7(d)的检测精度较图7(c)高出24.24%。可以得出本文算法对于有雾场景下的目标检测任务,能够提高远处目标的检测精度和较小目标的识别准确度。

4 消融实验

本文验证了生成网络中密集反馈模块的卷积单元个数N是否为影响网络表达性能的因素。在实验中设置不同数目的卷积单元,保持同样的密集连接,并将网络的其他参数均保持一致,以最后网络迭代的次数T作为衡量结果。实验结果如表2 所示,当卷积单元个数为2~6 时,网络迭代次数随着卷积单元数目的增加不断减少;当卷积单元个数大于6 个卷积块时,网络的迭代次数保持4 次不变。迭代次数少,表示网络的表达能力强,可以快速地学习到特征信息;迭代次数多,表示网络的表达能力较弱,需经过多次学习才能学到等量的特征信息。

表2 密集反馈模块卷积单元与迭代次数关系表Table 2 The relationship between the number of convolution units of the dense feedback module and iterations

将表2 绘制为图8,可以清晰地观察到,密集反馈模块中卷积单元个数为6 时,折线已达到最低值,网络性能最优,之后再增加卷积单元数目,网络性能并不会提升。

图8 密集反馈模块卷积单元个数与迭代次数的关系Fig.8 Relationship between the number of convolution units of the dense feedback module and iterations

为进一步检测算法反馈连接的作用,本文进行了有反馈连接和无反馈连接的网络对比实验,无反馈连接的网络由有反馈的网络退化形成,各次迭代间没有相互联系。为公正地比较去雾结果,设置无反馈网络迭代次数与有反馈网络的迭代次数相等,在室内和室外数据集上测试了PSNR 和SSIM 值。如表3 所示,具有反馈机制的网络无论是在室内还是室外测试得到的PSNR 和SSIM 的平均值均高于没有反馈机制的网络,可以得出网络中的反馈机制可以提高图像去雾的效果。网络的迭代循环机制,实现了参数共享,且网络参数量减少到约为3 847K,平均单幅图像的计算时间仅为0.18 s。

表3 网络在数据集上的有/无反馈连接实验结果对比Table 3 Comparison of experimental results of the network with/without feedback connection on SOTS date set

5 结束语

本文提出一种将循环神经网络与对抗生成网络相融合的单幅图像去雾算法。通过反馈信息引导生成网络中的浅层特征信息,从而丰富深层特征信息。利用全局跳跃连接学习残差特征图,并使用迭代循环结构减少误差累积效应,增强图像去雾效果。实验结果表明,本文算法所得到的去雾图像的色彩接近于真实图像,且纹理更精细,在PSNR 和SSIM 指标上优于其他去雾算法。由于真实世界中的雾图没有对应的清晰图像,因此,下一步将继续基于GAN网络向无监督学习方向扩展,提出无配对清晰图像的去雾学习算法,实现无标签的去雾图像重建,从而减少运算时间。

猜你喜欢
卷积特征模块
根据方程特征选解法
28通道收发处理模块设计
“选修3—3”模块的复习备考
离散型随机变量的分布列与数字特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
集成水空中冷器的进气模块