图像去雾中深度学习数据增强方法

2024-03-20 08:44苏欣宇王涛诸葛杰王华英胡争胜张小磊李佩苏群董昭
电光与控制 2024年3期
关键词:大气卷积特征

苏欣宇,王涛,诸葛杰,王华英,4,5,胡争胜,张小磊,李佩,苏群,董昭,4,5

(1.河北工程大学数理科学与工程学院,河北 邯郸 056000; 2.国家卫星气象中心,北京 100000;3.杭州佐格通信设备有限公司,杭州 310000; 4.河北省计算光学成像与光电检测技术创新中心,河北 邯郸 056000;5.河北省计算光学成像与智能感测国际联合研究中心,河北 邯郸 056000)

0 引言

雾是一种自然现象,会模糊场景、降低可见度,进而影响图像采集和处理系统(如海上监控、道路监控、智能导航、卫星遥感和目标识别等系统的正常运行),给人们的生产和生活带来不便。因此,在多雾天气下对图像进行去模糊处理,以保证视觉系统性能的稳定,具有重要的实用价值[1-3]。

基于深度学习的方法在图像处理方面展示了巨大潜力,国内外学者在深度学习去雾领域做了大量研究。CAI等[4]提出了单幅图像去雾的端到端系统—DehazeNet,采用了基于雾霾形成模型的合成训练集;LI等[5]提出了一种一体化去雾网络—AOD-Net,该方法对大气散射模型进行变形,将大气光值和大气透射率合并为一个参数,然后使用这个新参数和大气散射模型复原出高质量的图像,但是在对真实雾图进行去雾时容易造成图像的色调丢失等现象;ZHANG等[6]提出了用于图像去雾的金字塔通道的特征注意力网络—PCFAN,该网络利用通道注意机制以金字塔方式利用不同层次特征之间的互补性进行图像去雾;LIU等[7]提出了用于图像去雾的注意力的多尺度网络,该网络是一种不依赖大气散射模型的端到端去雾网络,分别由预处理模块、主干模块和后处理模块组成,它是一种全新的基于注意力的多尺度网络,能有效缓解传统多尺度方法中的瓶颈问题;马悦[8]提出了基于pix2pix模型的单幅图像去雾算法,pix2pix网络[9]与非条件式对抗网络不同,它的生成器和判别器都加入了源域图像,所以很好地优化了生成图像的效果,但是该网络需要相匹配的数据对,而真实雾数据对难以采集,或因环境、时间等问题难以满足匹配数据要求[10],使用公开合成雾数据集容易造成去雾后颜色失真和去雾不彻底等问题。现有相匹配的数据集大多根据大气散射光参数和大气散射系数参数合成,但真实雾复杂多变,因此获得具有真实雾特征数据集对于提高去雾效果显得格外重要。

生成对抗网络(Generative Adversarial Network,GAN)[11]可以根据训练数据生成新数据。其中,循环生成对抗网络(CycleGAN)[12]无需匹配数据即可进行训练。本文利用该网络,通过学习真实雾的特征来训练网络模型,从而生成有雾图片并与清晰图片形成匹配数据对,最后该数据对再作为去雾网络的训练集进行去雾训练和测试。结果表明,使用本文数据集训练出的模型能够改善真实雾去雾效果上的颜色失真和去雾不彻底问题。

1 本文方法

1.1 总体模型结构

图像去雾中深度学习数据增强方法整体思路包含3个过程(图1为所提方法流程):1) CycleGAN训练过程,负责学习真实雾图特征,该过程分别选取了291张干净图片和真实雾图的256像素×256像素区域作为训练集;2) 数据生成过程,选取1000张RESIDE数据集中OTS(Outdoor Training Set)数据集[13]的干净图片赋予真实雾图特征并与自身构成相对应的数据对;3) 去雾过程,将过程2) 的数据对作为训练pix2pix网络的数据集来达到去雾的目的。其中,RESIDE数据集为常用公开数据集。

图1 图像去雾中深度学习数据增强方法流程图

1.2 循环生成对抗网络

CycleGAN是一种常用的图像风格转换网络,它可以在没有成对图像作为训练数据的条件下完成源域到目标域的转换,为深度学习提供匹配数据对,已常被用作图像去噪和图像重构[14-15]。CycleGAN合成雾的过程中存在着细节丢失,而丢失的方式反映了雾的特征。然而该网络从低质图像很难恢复高质量图片[16],用于去雾时若输入雾图,其生成的去雾图像很容易出现去雾不彻底和颜色失真问题,故本文没有直接用该网络进行去雾,而是用以生成训练去雾网络的数据集。

该网络包含两个生成对抗网络,其基本结构包含一个生成器和一个判别器。图2为CycleGAN的结构,该网络是一个环形结构,主要由生成器G、F和判别器D(X)、D(Y)组成。生成器G,F分别代表X到Y的映射和Y到X的映射。判别器D(X)、D(Y)可以对转换后的图片进行判别。CycleGAN的原理是将一类图片转换成另一类图片,图2中,X和Y为两类图片,X代表干净图片,Y代表真实雾图。网络的目标是学习从干净图到真实雾图的映射,即对干净图片赋予真实雾图特征。

图2 CycleGAN结构

1.2.1 生成器

生成器网络相当于一个自编码网络,分别由编码器、转换器、解码器3部分构成。编码器由3层卷积层构成,通过卷积层从图像中依次提取更高级的特征。输入的图像首先通过一个步长为1、卷积核数量为64的7×7卷积模块,提取的特征图数量为64,然后再通过两个步长为2的卷积模块,由大小为3×3的卷积核构成,提取的特征图数量增加到256个。转换器由9个残差块组成,该功能主要将编码器所输出的不同特征图像从源域转换到目标域。解码器从特征向量重新构建低级特征,通过转置卷积层,将低级功能转换为目标域中的图像。

1.2.2 判别器

判别器用来判断输入的图像是否属于某一特定域的图像,其采用PatchGAN结构。判别器网络由5个卷积层构成,前3层是步长为2、卷积核数量为64的4×4卷积层,其余2层是步长为1的卷积层。从图像中提取特征后,判断所提取的特征是否属于特定类别。PatchGAN可以获取较高质量的结果,由于其具有较少的参数使得整个网络运行速度较快。

为了实现灵活转向,小车采用两轮驱动控制方式。电源选择大功率大容量的锂电池,以提供强大的续航能力。各模块电路尽量减少面积,五路循迹传感器安装在小车靠前的部位,单片机控制系统安装在车身中部,电机驱动模块安装在电机附近。

1.2.3 损失函数

CycleGAN的总体损失函数包含对抗性损失函数和循环一致性损失函数。在本文中,训练样本为干净图片X和带雾图片Y。样本的图像数据分布可以分别表示为x~pdata(x),y~pdata(y)。本文的模型需要训练2个映射,分别是G:X→Y和F:Y→X。对于映射G:X→Y和它的判别器DY,损失函数可以表示为

LGAN(G,DY,X,Y)=Ey~pdata(y)(lnDY(y))+Ex~pdata(x)(ln(1-DY(y)G(x)))

(1)

式中:G用于将样本X的图像转换为样本Y的图像;DY的目的是判别G(x)生成的图像和真实图像Y;G的目的用来最小化这个损失,DY用来最大化这个损失。同理对于映射F:Y→X,损失函数可以表示为

LGAN(F,DX,Y,X)=Ex~pdata(x)(lnDX(x))+Ey~pdata(y)(ln(1-DX(x)F(y)))。

(2)

循环一致性损失可以使该网络保持高性能,如图2(b)所示,对于每个输入样本X,经过一个图像转换周期后会还原为初始图像,满足X→G(X)→F(G(X))≈X,该过程称为正向循环一致性。同理图2(c)为逆向循环一致性,满足Y→F(y)→G(F(y))≈Y。循环一致性损失可以表示为

(3)

所以总体损失函数表示为

L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLCYC(G,F)

(4)

式中,λ代表对抗损失函数和循环损失函数之间的权重比。

2 实验与分析

2.1 数据介绍

本文在合成数据集的过程中,使用了OTS数据集中的干净图片和O-Haze[17]数据集。OTS数据集为2061张清晰室外图像,利用大气散射模型合成了室外有雾图像,其中,大气散射光参数在0.8~1.0之间,大气散射系数β在0.04~0.2之间,O-Haze数据集为专业雾霾生产器构建的真实雾数据集。

2.2 性能指标

为了客观地评价去雾效果,本文使用峰值信噪比(PSNR)和结构相似性指数(SSIM)反映图像结构信息的完整性和相似性[18]。PSNR越高,图像受噪声影响越小,SSIM值越大,图像越接近1,失真差越小。两个指标分别为

(5)

(6)

(7)

2.3 实验结果分析

传统去雾实验过程中往往会遇到去合成雾效果很好,但是去真实雾容易造成颜色失真和去雾不彻底的问题[19]。利用本文合成雾数据集与OTS数据集分别作为去雾网络的训练集进行训练,测试真实去雾结果对比如图3所示。图3(b)整体去雾效果不如图3(c),可以明显观察到,pix2pix网络没有学习到如何提取这类真实雾的特征。在使用本文方法合成的数据集作为pix2pix网络的训练集时,去雾效果明显并且没有出现类似图3(b)箭头所示树枝颜色失真明显的问题。通过峰值信噪比(PSNR)和结构相似性指数(SSIM)评价去雾效果,求取两个指标平均值,对比结果如表1所示,SSIM值提高了32.21%,PSNR值提高了32.16%。由此可见,在使用相同去雾网络时,CycleGAN合成的数据集要比传统好很多,使去雾效果和SSIM、PSNR值都得到了一定的改善。

表1 去雾结果评价指标对比

图3 本文方法数据集与OTS数据集在pix2pix训练结果对比

OTS数据集的合成依赖于深度图、大气散射光参数和大气散射系数等参数,这极大地限制了该方法的应用,使得其数据集种类不足,这种情况下用其训练出的模型对真实雾特征掌握不足。CycleGAN生成雾图所需条件少,通过大量、多种类数据可以在很大范围内将雾图信息赋予网络模型。由于每一张图像被赋予了雾的多种特征,不单单依赖大气散射模型,所以后期的去雾结果也得到了一定改善。

为了检验本文CycleGAN生成的数据集是否适用于其他网络对真实雾特征的提取,将本文方法的数据集用在AOD-Net、PCFAN、GridDehazeNet这3个网络中分别训练并与其现有模型在真实雾上分别进行测试对比,对比结果如图4所示。从主观角度来说,换用本数据集后,图4(d)、图4(f)、图4(h)无论从颜色还是去雾的效果上都得到了改善,一些细节如图中箭头所示也得到了一定提升。从客观评价上看,通过指标PSNR和SSIM来评价去雾效果,可以发现,利用本文的数据集在AOD-Net上训练,SSIM值从0.5456提高到0.6834,PSNR值从17.4732 dB提高到17.918 0 dB;利用本文的数据集在PCFAN上训练,SSIM值从0.4445提高到0.7601,PSNR值从15.612 7 dB提高到21.1519 dB;用本文的数据集在GridDehazeNet上训练,SSIM值从0.6933提高到0.8120,PSNR值从18.6538 dB提高到22.4102 dB。结果表明,本文CycleGAN生成的数据集适用于其他网络对真实雾特征的提取。

图4 本文方法数据集在3个网络中训练测试结果与现有模型测试结果对比

如前文所述,本文通过CycleGAN网络合成了一批具有真实雾特征的薄雾匹配数据集,将这些数据集作为pix2pix网络的训练集,达到了一定的去雾效果。因此,本文对于厚雾也采用了相同的方法进行了匹配数据集的制作。选取了RTTS数据集(RESIDE中的数据集),该数据集有4322张真实雾图,但都没有相匹配的原始干净图像。从中选取了100张图像并截取其中大小为256像素×256像素区域,进行不匹配数据对在CycleGAN中训练,同样选取OTS数据集中的1000张清晰图像作为雾特征赋予的对象。然后将制作的厚雾数据集同样放在AOD-Net,GridDehazeNet,PCFAN和pix2pix网络中进行训练。厚雾会造成更多信息细节的丢失,遮蔽物体的大部分特征,在去雾网络进行雾特征提取的时候难度也会大大提高。将含有真实厚雾的图像分别放在用公开合成雾数据集和本文方法合成的数据集在AOD-Net、GridDehazeNet、PCFAN网络上训练的模型中进行测试,测试对比结果如图5所示。在相同去雾网络上,图5(d)与图5(c)相比,虽然在红色框中出现了线条颜色变深,但是相对于图5(c),黄色框中远景的颜色和细节处理得更好,去雾效果也更好;图5(e)与图5(f)进行比较,可以明显观察到使用本文数据集后,在图5(f)中的去雾效果和轮廓处理都得到了显著的改善;图5(h)和图5(g)相比,图5(h)没有出现图5(g)去雾后质量损坏的问题,并且换用本文数据集后去雾效果和细节的处理得到了改善。将真实雾图放到训练好的pix2pix去雾网络模型中进行测试,测试结果如图5(b)所示。通过对比图5(b)、图5(d)、图5(f)和图5(h)可以发现,图5(b)整体效果上更接近现实,图5(d)没有图5(b)轮廓清晰;图5(f)在细节上恢复得很好,但是右边出现了部分颜色的失真;图5(h)在线条的处理上没有图5(b)清晰。结果表明,本文的数据增强方法同样适用于厚雾场景。

图5 浓雾测试对比

3 结束语

在本文中,利用CycleGAN的风格迁移能力和不需要匹配数据对的特点,解决了传统去雾之后的颜色失真和去雾不彻底问题。通过学习少量不匹配清晰图像到真实雾的一一映射,将真实雾的特征赋予到清晰图像上,制作了一批具有真实雾特征的匹配数据集。将这些数据集用在去雾网络上进行训练测试,验证了这种方法的可行性,为今后去雾研究提供了一种新的数据生成方法。

猜你喜欢
大气卷积特征
大气的呵护
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
大气古朴挥洒自如
大气、水之后,土十条来了
一种基于卷积神经网络的性别识别方法