APP下载

基于改进型循环生成对抗网络的雾天图像生成算法

2022-09-08王晓峰孙志恒孙贾梦苏盈盈

关键词:卷积损失函数

喻 骏 王晓峰 孙志恒 孙贾梦 秦 浩 苏盈盈

(1. 重庆科技学院 电气工程学院, 重庆 401331;2. 重庆科技学院 数理与大数据学院, 重庆 401331)

0 前 言

雾天环境下的图像采集和标注工作往往比较困难,因此深度学习下的立体视觉任务中雾天场景图像较为缺乏[1]。无雾环境下的数据集制作相对简单,将正常图像转化为雾天图像是获取雾天数据集的有效途径[2]。

研究人员曾基于大气散射模型,采用人工合成的方法为正常图像添加雾天特征[3-4]。但实际上,雾天场景不止受到大气散射的影响,依靠人工添加的雾天特征难以真实地反映雾天图像退化的情况。近年来,基于生成对抗思想的深度学习模型在图像生成技术领域备受关注。目前,成熟的生成对抗网络有Pix2pix[5]、CycleGAN(循环生成对抗网络)[6]、 DCGAN[7]等。与DCGAN网络相比,CycleGAN网络具有更好的图像转换能力,所生成图像具有一定的可控性;与Pix2pix相比,CycleGAN无须对数据集进行训练,且对数据集的要求也较低。本次研究将以主流立体视觉KITTI2015数据集为例,对真实的雾天图像加以训练,在改进CycleGAN的基础上构建可以生成雾天图像的场景转换模型。

1 雾天图像生成方法设计

1.1 数据集的获取

KITTI2015数据集为公开数据集[2],在此取其中汽车行驶过程中的真实街景图像400个组成数据集A。由于KITTI2015数据集中无相应的雾天场景图像,故从网络上获取雾天图片共425张组成数据集B。

1.2 图像的预处理

采集的真实雾天图片有时会出现动态模糊现象,需先对雾天图像数据集进行去模糊化预处理。

建立图像退化模型,如式(1)所示:

g(x,y)=f(x,y)⊗h(x,y)+n(x,y)

(1)

式中:g(x,y)为模糊函数图像;f(x,y)为清晰图像函数;h(x,y)为退化模型的点扩散函数;n(x,y)为随机噪声函数。

假设拍摄过程中保持匀速直线运动状态,则h(x,y)与运动模糊角度(θ)、模糊长度(L)有关,其关系如式(2)所示:

(2)

忽略噪声的影响,对图像进行运动模糊消除处理,其流程如图1所示。

根据图像频谱中暗条纹与运动模糊纹理相垂直的特征,初步估计出模糊方向[8]。此外,在频谱图的水平方向求取自相关系数,相关中心点左右两侧最低值之间的距离即为模糊长度(L)[9]。根据模糊图像制作原图像的傅里叶频谱图,如图2所示。局部放大并调整对比度,使暗条纹显现,大致估计模糊角度(θ)为30°~40°。同时,计算频谱水平方向上的自相关系数,利用Matlab程序计算出模糊长度(L=47 px)。

图2 图像的模糊角度和模糊长度估计

利用初步估计和计算所得的模糊角度、模糊长度,应用式(1)和式(2)对图像进行动态模糊去除处理。在模糊长度为47 px的情况下,比较模糊角度为30°~40°时的去模糊处理效果(见图3)。结果表明,当模糊角度为30°、模糊长度为47 px时,去模糊处理的效果最佳。

图3 不同模糊角度下的去模糊处理效果

1.3 雾天图像的生成过程

基于CycleGAN的思想,完成雾天图像生成模型训练,如图4 所示。首先,将数据集A、B输入CycleGAN的生成器G中,获得合成图像;然后,利用判别器D判别雾天图像,输出判别结果;最后,根据生成的图像及判别结果,计算损失函数,更新生成器G和判别器D的参数,进而获得最优模型。

图4 雾天图像模型训练过程

将数据集B作为测试集,其测试过程如图5 所示。首先,加载预训练模型,并输入测试集;然后,验证改进上采样结构后的雾天图像生成效果;最后,调整损失函数,获得雾天图像生成结果。

图5 雾天图像模型测试过程

2 网络模型设计

2.1 生成器模块设计

根据图像生成任务,通过卷积操作形成生成器的主干网络。以像素大小128 px×128 px的图像为例形成生成器的网络结构,如图6所示。

首先,在下采样阶段,图像依次经过3个步长分别为1、2、2 px 且大小为3 px×3 px的卷积核进行下采样操作。在下采样操作过程中,特征感受野逐层增大,特征图尺度逐层减小,原始图像的高维特征映于低维空间,因此减少了网络计算量。

然后,低维特征图进入多层残差网络中,经过 9层残差网络学习将图像由正常场景分布转换到雾天场景分布。多层残差块既可以提高模型的学习效率,又能加大网络的学习深度、强化模型特征的表达能力。

最后,经过多层上采样操作,使图像逐渐恢复到原始像素128 px×128 px,进而生成转换后的图像。

传统的生成器模型通常采用反卷积操作,但在将相邻的低分辨率特征像素映射到高分辨率空间时有可能出现信息重叠现象。在上采样改进之前,通过反卷积将前一层4个区域的分辨率扩大到与后一层的4个区域相同,导致重叠区域颜色加深,形成图6上的Q点。不同空间位置的像素相互交叠,最终出现棋盘效应。

图6 生成器的网络结构示意图

针对这个问题,本次研究将采用双线性插值与卷积组合的结构操作来改进反卷积的上采样方式。首先,低分辨率图像通过双线性插值后获得高分辨图像,双线性插值通过计算周围信息来更新未知像素点,从而获得更好的连续性和稳定性。然后,通过3 px×3 px的卷积聚合局部区域像素特征对插值后的图像精细化,经上采样操作后得到高分辨率图像。最后,通过改进的上采样方式,在保证生成图像质量的情况下有效地缓解棋盘效应,使得生成的图像更加真实可靠。

2.2 判别器模块设计

假设分辨率为128 px×128 px的图像进入判别器,其网络结构如图7所示。首先,原始图像经过3个步长为2 px的3 px×3 px卷积核进行连续下采样操作,获得像素为16 px×16 px的特征图,逐层提高像素点的感受野。然后,通过2次步长为1 px的卷积操作对特征图进行线性变换,进而输出14 px×14 px的图像判别结果。在判别结果中,每个像素点均包含其对应感受野的图像区域真实性置信度。置信度越接近于0,则图像为假的可能性越大;置信度越接近于1,则图像为真的可能性越大。

图7 判别器网络结构示意图

2.3 损失函数设计

本次研究的CycleGAN为有效训练,其中损失函数如式(3)所示:

L=LDx+LDy+LGx→y+LGy→x+λLcycle

(3)

式中:LDx为判别器Dx(判别正常场景x)训练中的损失函数;LDy为判别器Dy(判别雾天场景y)的损失函数;LGx→y为生成器Gx→y(由正常图像x生成雾天图像y)的损失函数;LGy→x为生成器Gy→x(由雾天图像y生成正常图像x)的损失函数;Lcycle为衡量循环一致性的损失函数;λ为循环一致性损失的比重。

LDy损失函数的计算如(4)所示:

LDy=y~pdata(y)[‖1-DY(y)‖2]+

(4)

式(4)中第一项代表判别器判别真实雾天场景图片y时真实雾天图像为真,故Dy(y)分数应接近于1。式(4)中第二项代表判别器判别生成的雾天场景图片Gx→y(x)时生成的雾天图像为假,故Dy(Gx→y(x))分数应接近于0 。由此,可以区别真实雾天图像和生成的雾天图像。

LGx→y损失函数如式(5)所示:

LGx→y=x~pdata(x)[‖1-DY(Gx→y(x))‖2]

(5)

式中Dy(Gx→y(x))分数应接近于1,使得生成的图片足以骗过判别器。

同理,根据式(4)可得LDx,如式(6)所示:

LDy=x~pdata(x)[‖1-Dx(x)‖2]+

(6)

同理,根据式(5)可得LGy→x,如式(7)所示:

LGy→x=y~pdata(y)[‖1-Dx(Gy→x(y))‖2]

(7)

此外,循环一致性损失Lcycle用于约束重构后图像间的相似性,如式(8)所示:

Lcycle=x~pdata(x)[‖Gy→x(Gx→y(x))-x‖1]+

(8)

在式(8)中第一项的约束下,正常图像x经Gx→y生成雾天图像,再经Gy→x重构为正常图像后,应与原图像x越接近越好。在式(8)中第二项的约束下,雾天图像经Gy→x生成正常图像,再经Gx→y重构为雾天图像后,应与原图像y越接近越好,循环一致性损失函数可以使转换后的图像保留原始图像的细节信息。

3 实验分析

3.1 实验环境

为避免实验环境对图像生成效果的影响,所有实验均采用相同的配置。软硬件配置如下:操作系统为Windows10,开发环境为python3.6.6、pycharm2019,深度学习框架为pytorch1.7,迭代次数为60,学习速率为0.000 2,显卡型号为GTX1650,优化器为Adam。

3.2 损失函数的参数设置

CycleGAN生成的雾天图像对原始图像的细节信息还原程度主要受到循环一致性损失的影响,故所得雾天图像的信息有效性在训练过程中受到循环一致性损失系数(λ)的影响。在此主要考察不同λ的影响,实验结果如图8所示。

图8 不同循环一致性损失系数的影响

在系数λ依次为1.0、1.5、3.0的变化过程中,雾气特征越来越淡,同时多出了一些原图像没有的特征。分析认为,随着λ增大,Lcycle训练时这些特征的比重不断增加,网络更倾向于复现原始图像而忽略雾天特征,为图像额外添加了不必要的信息。当λ=1.5时,图中虚线方框部分出现了与车尾灯同色的区域,这是因为错误地学习了雾天图像中的车尾灯特征;当λ=3.0时,图中实线方框部分出现了高亮区域,这是因为错误地学习了一些强光照特征。

综上所述,将λ设置为1.0时雾天场景的转化效果最好。

3.3 实验效果

为验证改进后生成器上采样方式的优势,对改进前后的雾天图像生成效果进行了对比,结果如图9 所示。

图9 改进前后的效果对比

改进前,采用基于反卷积的上采样方式,部分雾天图像出现了明显的棋盘效应。改进后,采用插值和卷积相结合的上采样方式,改善了棋盘效应,图像生成效果更好。

采用衡量相似度的客观指标 —— 峰值信噪比(PSNR)和结构相似性(SSIM),对生成的雾天图像进行定性对比分析,结果如表1所示。

表1 改进前后雾天图像的客观指标对比

PSNR和SSIM的值越大,说明转换后的图像与原图像越接近。 在同样为原图添加了雾天特征后,改进后模型的PSNR约提高了1.6,SSIM提高了0.02。这说明改进后的雾天图像保留了更多的原图细节信息,失真更少,转换效果更好。

3.4 雾天图像生成效果评价

基于改进的CycleGAN模型,利用已调整过参数的损失函数进行训练。以KITTI2015数据集为例进行雾天场景转化,主要结果如图10所示。

与原始图像相比,生成的图像中添加了一些雾天特征,显著减少了图像信息。需注意的是,雾天图像中的雾气随着景物距离的拉大而逐渐加深,这与真实雾天场景的特征相同。此外,针对图10中的图像按从左到右、从上到下的顺序计算其客观指标(PSNR和SSIM),定量对比去雾前后的处理效果,结果如表2所示。

图10 模型生成效果展示

表2 图像去雾前后的客观指标对比

图像去雾的PSNR和SSIM指标显著提高,这代表雾天图像能够恢复大部分原始图像信息。因此,正常图像经改进的方法转换为雾天场景后,其细节信息只是发生了质量的变化(如改变、降低等),而不是随着雾天场景的生成而消失。此变化过程与真实雾天场景对图像带来的影响相似,说明本次改进方法可靠有效。

4 结 语

针对立体视觉技术应用中人工制作雾天场景数据集较困难的问题,提出了基于改进CycleGAN的雾天图像生成算法。首先,对收集的真实雾天场景图片进行预处理,去除实际拍摄过程中产生的动态模糊部分。其次,利用改进CycleGAN缓解反卷积的棋盘效应,并学习真实雾天场景数据分布情况。最后,将立体视觉任务公开数据集KITTI2015输入已建立模型,生成雾天场景数据集,实现已有数据集转换为雾天场景的目的。实验结果表明,本算法可靠有效,能转换生成可准确模拟真实雾天场景的图像。

猜你喜欢

卷积损失函数
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
两败俱伤
关于函数的一些补充知识
高中数学中二次函数应用举隅オ
无独有偶 曲径通幽
损失