本文改进了一种基于条件生成对抗网络的图像去雾算法。在生成器网络模型中使用32层Tiramisu代替U-Net可以减少训练参数,提高参数利用率。判别器网络的最后一层使用Sigmoid函数完成归一化。使用损失函数加权和的方式训练网络模型,使用一种评价去雾能力的分数,保存训练过程中分数较高的模型及参数,最后使用分数最高的网络模型及参数对室外真实图像进行去雾测试。训练集使用了室内和室外的真实无雾图像以及合成有雾图像,测试结果显示本文提出的模型和传统去雾方法相比,主观视觉效果、图像细节、色彩方面都有提高改善。 This paper improves an image dehazing algorithm based on conditional generation against networks. Using 32 Layer Tiramisu instead of U-Net in the generator network model can reduce training parameters and improve parameter utilization. The final layer of the discriminator network uses the Sigmoid function to complete the normalization. The network model is trained using the weighted sum of loss function, using a score to evaluate the ability of defogging, saving the model and parameters with higher scores during the training process, and finally using the network model with the highest score and parameters to perform the dehazing test on the outdoor real image. The training set uses real fog-free images and synthetic foggy images both indoors and outdoors. The test results show that the proposed model has improved subjective visual effects, image detail and color compared with the traditional dehazing method.
姚远,李向阳,孟金慧
华中师范大学物理科学与技术学院,湖北 武汉
收稿日期:2019年11月9日;录用日期:2019年11月25日;发布日期:2019年12月2日
本文改进了一种基于条件生成对抗网络的图像去雾算法。在生成器网络模型中使用32层Tiramisu代替U-Net可以减少训练参数,提高参数利用率。判别器网络的最后一层使用Sigmoid函数完成归一化。使用损失函数加权和的方式训练网络模型,使用一种评价去雾能力的分数,保存训练过程中分数较高的模型及参数,最后使用分数最高的网络模型及参数对室外真实图像进行去雾测试。训练集使用了室内和室外的真实无雾图像以及合成有雾图像,测试结果显示本文提出的模型和传统去雾方法相比,主观视觉效果、图像细节、色彩方面都有提高改善。
关键词 :图像去雾,深度学习,条件生成式对抗网络,卷积神经网络
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
雾是由于大气光被吸收和散射造成的自然现象。在雾的影响下,直射光线被散射以后造成图像对比度、可见度以及色彩保真度的下降。相机拍摄会由于大气散射光与物体反射光造成图像表面亮度和色彩失真。此外,相机从场景点接收到的信号随着距离增大而衰减。雾带来的图像对比度和可见度下降问题对于某些行业影响很大,比如自动驾驶、交通监控、卫星遥感等领域。
经典的图像去雾算法主要分为基于图像增强去雾算法和基于大气散射模型去雾算法两大类。基于图像增强去雾算法主要有直方图均衡化,小波变换,Retinex去雾算法等。Tan等观察到通常无雾图像对比度比含雾图像高,提出增大图像局部区域对比度去雾算法 [
本文使用Tiramisu代替U-Net作为生成器网络模型,减少训练参数,提高参数利用率。判别器网络的最后一层借助Sigmoid函数完成归一化。使用损失函数加权和的方式训练网络模型,提出一种评价去雾能力的分数,保存训练过程中分数较高的模型及参数,进而使用分数最高的网络模型及参数对室外真实图像进行去雾训练测试。
大气散射模型通常被用来描述在大气光和雾霾共同作用下的成像原理 [
I ( x ) = J ( x ) t ( x ) + A ( x ) ( 1 − t ( x ) ) (1)
其中,等式右边的第一部分J(x)t(x)为直接衰减项,第二部分 A ( x ) ( 1 − t ( x ) ) 为大气光散射模型。x代表图像中的像素坐标,I(x)表示相机拍摄或人眼直接观察到的有雾图像,J(x)表示无雾图像,A(x)表示大气光值,t(x)表示介质透射率图。当大气光在图像中是均匀数值时,透射率图可以表示为:
t ( x ) = e − β d ( x ) (2)
式中β代表衰减系数,d(x)代表场景深度。通过估计透射率图,无雾图像可以使用下面等式表示:
J ( x ) = I ( x ) − A ( x ) ( 1 − t ( x ) ) t ( x ) (3)
cGAN的损失函数由生成器和判别器的极小极大值对抗表示,用下式可以表示对抗过程 [
min G max D ( D , G ) = E ( x , y ) [ log ( D ( x , y ) ) ] + E ( x , y ) [ log ( 1 − D ( x , G ( x , z ) ) ) ] (4)
其中D和G分别表示判别器和生成器。
输入有雾图像表示为x,x对应的无雾目标图像表示为y,给定一个随机矢量噪声z,生成器G生成与x相似的图像。本文使用一种评价去雾能力的分数,保存训练过程中分数较高的模型及参数。输入单张真实含雾图像通过条件生成对抗网络模型后可输出去雾图像。
下面详细介绍该条件生成对抗网络的各个模块。本文使用32层Tiramisu取代U-Net。这个模型的编码器和解码器端各有5个密度块,连接层有1个密度块。在编码器端,每一个密度块后紧跟一个下采样层。下采样层包含(BatchNorm-Relu-Convolution)操作。与编码器端相似,在解码器端,每一个密度块后紧跟一个上采样层。上采样层仅有一个逆卷积操作。编码器和解码器端的每个密度块各有4层。连接端的密度块有15层,上采样层增长率设置为12。图像的空间维度在经过一个下采样层以后空间维度减半,经过一个上采样层以后空间维度翻倍。Simon等提出的100层Tiramisu语义分割模型具有参数效率高的优点 [
图1. 生成器网络结构
图2. 判别器网络结构
用来优化网络模型的损失函数为三个权重的加权组合,总损失的公式为:
L o s s t o t a l = W g a n × L A d v + W L 1 × L L 1 + W v g g × L v g g (5)
其中LAdv损失定义为:
L A d v = E ( x , y ) [ log ( D ( x , y ) ) ] + E ( x , z ) [ log ( 1 − D ( x , G ( x , z ) ) ) ] (6)
在模型每次迭代中,判别器更新一次,生成器更新一次。最后将结果与权Wgan相乘加到总损失函数。如文献 [
L L 1 = E x , y , z [ ‖ y − G ( x , z ) ‖ 1 ] (7)
将结果与权WL1相乘加到总损失函数。生成图像与目标图像通过一个预训练的VGG-19网络 [
L v g g = 1 C H W ∑ c = 1 C ∑ w = 1 W ∑ h = 1 H ‖ V ( G ( x , z ) c , h , w ) − V ( y c , h , w ) ‖ 2 2 (8)
其中C,H,W分别代表输出的通道,宽度和高度。感知损失值是一个常数,对于池化4层的输出为1e−5。V表示由VGG-19网络模型执行的非线性CNN变换。此结果与权Wvgg相乘加到总损失函数。
为提高算法的鲁棒性,本文使用两个不同的数据集合并训练。首先使用NYU-Depth V2数据集合成含雾图像得到一个含有大量真实含雾/真实不含雾图像对的数据集,NYU-Depth V2数据集由来自各种室内场景的视频序列组成,使用Microsoft Kinect的RGB深度摄像机记录 [
式5中使用的权值分别为Wvgg = 9,Wgan = 3,WL1 = 80。使用Adam优化器 [
图3. 合成有雾与真实清晰图像对比
最大峰值信噪比(Peak Signal to Noise Ratio, PSNR)测量了算法将噪声(雾)从噪声图像中去除的能力,两张相同的图像会有一个无限大的PSNR值,更高的PSNR值意味着去雾能力更好。结构相似性(Structural Similarity Index Measure, SSIM)测量了两张图像的相似程度。完全相同的两张图像SSIM值为1。本文定义了图像PSNR和SSIM的加权去雾分数作为一个拥有两种属性的指标。
PSNR的权重值(WPSNR)设置为0.05,SSIM的权重值(WSSIM)设置为1。一旦去雾分数在验证集中得到一个较高值时就保存模型,每次保存最大的10个检查点。本文还测试了表现较好的几个模型在真实含雾图像上的去雾能力,定量对比了这些模型在测试集上得到的PSNR和SSIM值,本文选择了文献 [
Model | He et al. | Berman et al. | Cai et al. | Ours method |
---|---|---|---|---|
PSNR | 13.83 | 11.48 | 10.55 | 14.52 |
SSIM | 0.71 | 0.50 | 0.69 | 0.89 |
表1. 不同去雾方法的定量对比
从表1可以看出,在没有大片天空区域的情况下,He算法去雾图像在结构相似度和最大峰值信噪比两个值较高。Cai算法虽然比Berman算法的结构相似度值较高,但是从图4可以看出Cai算法的去雾图像看起来去雾效果并不好,而Berman算法的结构相似度值虽然较低,但是图4中去雾图像却比Cai算法的图像清晰。很明显,本文提出的算法模型与真实图像在结构相似度和最大峰值信噪比值都有很大提升,去雾图像看起来细节丰富,层次鲜明。为了证明本文模型的鲁棒性,本文使用了不包含在数据集中的真实有雾图像上进行了评估,图4列出了原始含雾图像以及对应的去雾图像,为本文算法和前文提到去雾算法去雾图像的主观对比。图4的d行图像中看出本文的算法在重雾条件下可以还原出较多图像细节,可以清晰的看到后面楼房的窗户。从a行与c行图像对比可以看出本文的算法可以比其他方法提取出相同或更多的细节,输出色彩很真实。从第b行和d行可以看出,图像的分辨率比其他图像有很大提高。
图4. 去雾图像对比
本文改进一个基于条件生成对抗网络的图像去雾算法模型,无需估计图像大气光和透射图以及额外图像深度信息,将输入的含雾图像直接输出去雾图像。通过将U-Net模型替换为Tiramisu模型提高参数利用率提取出图像更多信息。训练过程中使用的图像数据集分为室内和室外图像,提高去雾模型的鲁棒性,可以适应常见的图像。最后提供了本文模型与其他去雾算法的客观对比与主观对比,结果证明本文算法可以较好的复原出浓雾图像的框架和细节,定量分析显示本模型生成图像与原始图像结构相似度达到0.89。综上所述,本文提出去雾模型可以很好的实现去雾效果,还原出图像的更多细节,对于雾天物体识别和雾天条件下监控有一些帮助。
姚 远,李向阳,孟金慧. 基于条件生成对抗网络的图像去雾算法Image Dehazing Algorithm Based on Conditional Generation against Network[J]. 图像与信号处理, 2020, 09(01): 1-7. https://doi.org/10.12677/JISP.2020.91001