图像融合的循环神经网络去雾算法

2020-07-13 04:33
小型微型计算机系统 2020年7期
关键词:雾天解码编码

任 敏 敏

(武警工程大学 信息工程学院,西安 710086)

1 引 言

对于户外机器视觉系统而言,雾是影响成像质量的重要因素.受大气中悬浮颗粒对光线散射作用的影响,雾天条件下拍摄的户外图像往往会出现远景目标能见度差、对比度低、颜色失真等质量退化问题,为后续的机器视觉任务,如目标的识别和跟踪、交通监控、智能导航等,带来障碍和挑战.因此,有效地对雾天图像实施去雾,是确保户外机器视觉系统克服雾天成像影响,稳定工作的重要前提.

传统的图像去雾算法主要分为两类:一类是图像增强处理,另一类是基于大气散射成像模型的去雾算法.图像增强处理主要是通过增强图像对比度,突出景物特征来实现去雾,如直方图均衡化[1]、伽马校正[2]、Retinex算法[3]、小波变换[4]等等.这类算法不研究雾天图像成像的机理,仅利用增强算法进行图像清晰化处理,对图像中的浓雾区域,复原效果较差,细节信息易丢失.

而大气散射成像模型的去雾算法多利用统计的先验知识,估计模型中的物理量,如透射率,来实施去雾.如He等人[5]提出的暗通道先验去雾算法.它发现清晰无雾的户外图像中,一个局部区域内总有像素在一个颜色通道中的灰度值趋近于零.利用此暗通道先验可有效计算透射率.Fattal等人[6]利用图像中局部邻域内的像素值在RGB颜色空间呈一维线性分布特性来估计透射率.Berman等人[7]提出了非局部先验去雾算法,它利用无雾图像中颜色信息在空间坐标系下呈线性分布的雾线来预测透射率.虽然算法具有简单高效的优势,但当已有先验无法准确描述复杂雾天场景图像的透射率时,去雾结果会出现光晕,颜色失真等问题.为此,更多基于特征融合和结果优化的去雾算法相继提出.如Li等人[8]通过融合暗通道,照明,色度,清晰度,显著性等雾气相关的特征实现去雾.Galdran等人[9]通过融合多个人工曝光的雾天图像实施去雾.Zhao等人[10]融合基于像素和基于邻域计算的透射率实现去雾.此外,多尺度优化策略也被采用来优化去雾结果.这类算法虽有效地提高了去雾性能,但融合策略中的权重是通过对大量图像特征进行人工统计和评估获取的,不仅耗时费力,还易出现误差,若能采用机器学习的策略计算融合权重,将进一步提高算法的去雾性能.

目前,基于机器学习的神经网络去雾算法被广泛采用,它通过构建雾天图像与清晰图像之间的非线性模型,有效实现端到端的去雾[11].如Li等人[12]将透射率和大气光强的关联参数整合到神经网络去雾模型中,构建一体化的去雾网络All in One Dehazing Network(AOD-Net).陈永等人[13]利用多尺度卷积核并行提取雾天图像的不同特征,构建了多尺度卷积神经网络去雾模型Multi Scale Dehaze Network(MSDN).Zhang 等人[14]利用编码解码网络,U 型网络和生成对抗网络联合学习大气散射物理成像模型中的透射率,大气光强和清晰图像,构建了稠密金字塔去雾模型Densely Connected Pyramid Network(DCPN).黄靖等人[15]将自编码网络与回归模型相结合,提出了端到端的自编码去雾网络.然而,这类神经网络的去雾算法仍存在以下两点问题:其一,网络多为黑盒模型,并未将传统方法中行之有效的特征融合策略融入其中;其二,因受参数,网络层数及内存空间的限制,网络模型不能有效实施去雾结果由粗到细的优化.为此,本文将传统去雾算法中的信息融合和结果优化策略与神经网络算法相结合,提出了图像融合的循环神经网络去雾算法.该算法首先由初始雾天图像衍生出白平衡图像、对比度增强图像、伽马校正图像作为融合算法所需的融合图像;随后,利用编码解码的神经网络自动地学习和生成图像融合时所需的融合权重,解决了传统图像融合去雾算法中融合权重估计耗时费力,存在偏差的问题;最后,在此网络模型上进一步添加循环网络结构,以便在不增加网络层数和参数的前提下,有效地优化去雾结果.实验结果表明,本文算法较已有算法的去雾精度提高了19%.

2 多图像融合的循环神经网络去雾算法

2.1 算法综述

多图像融合的循环神经网络去雾算法流程图见图1.

图1 网络算法流程图

Fig.1 Flow chart of network algorithm

各步骤的简要说明如下:

2.1.1 融合图像获取

雾天图像的降质主要体现在两个方面:一是因大气光所导致的色偏,二是因光线衰减而产生的低能见度.如果能从初始的雾图中衍生出多张去除色偏,恢复能见度的图像,则可利用图像融合策略融合各图像的去雾信息,高效地实现去雾.为此,我们采用白平衡算法去除色偏,利用图像增强算法加强图像整体的对比度.考虑到图像增强的结果中仍会存在偏暗的区域,进一步采用伽马校正来获取增亮后的图像,以弥补增强图像的缺陷.随后,将此三类衍生图像联合雾天图像共同作为神经网络模型的输入,以便自动学习图像融合的权重.

2.1.2 多图像融合的循环网络构建

已有文献[14]表明,编码解码网络能利用自底向上和自顶向下的路径提取不同尺度下的层次化信息,有效地实现图像去雾.为此,我们采用编码解码网络作为多图像融合去雾的框架.然而,此类前向传递的网络结构难以在不添加网络深度和网络参数的前提下,实现去雾结果的优化.这里,我们不但将网络的输出作为网络的输入,更将LSTM循环单元嵌入编码解码网络中,构建有效的循环神经网络,使得去雾结果在循环优化过程中,共享网络参数,节省网络内存.

2.2 融合图像获取

本文采用初始雾天图像衍生出的白平衡图像Iw,对比度增强图像Ie,伽马校正图像Ig作为融合图像.以雾天图像图2(a)为例,三幅衍生图如图2(b)-图2(d)所示.

图2 初始雾图,白平衡图,对比度增强图和伽马校正图

2.2.1 白平衡图像

白平衡图像能恢复出有雾场景中潜在的色彩信息,消除大气光引起的颜色偏移.这里采用灰度世界假设理论来获取白平衡图像[16].该假设认为自然界景物对于光线的平均反射均值在总体上是个“灰色”定值,即彩色图像中RGB三个通道的平均值趋于灰色值K.当雾天图像中投射的大气光扰乱了原始图像的灰色世界假设后,可利用灰度世界假设来修正雾图,使其重新满足此统计规律,消除色偏.具体来说,可利用可公式(1)来计算K值:

(1)

得到K值后,即可对雾图I的像素进行校正:

(2)

虽然白平衡图像去除大气光所引起的色偏,但处理后的结果仍存在对比度低的问题,如图2(b)所示.为此,引入了对比度增强图像.

2.2.2 对比度增强图像

(3)

2.2.3 伽马校正图像

伽马校正图像是利用非线性色调操作,对图像中的亮度或三色激励值进行编码或解码而得到的一种对比度增强图像.计算方法如下:

Ig=αIγ

(4)

式中:α为常系数,γ为伽马校正系数,本文分别设置为1和2.5.实验表明,Ig能有效提高初始雾图I的能见度,弥补增强图像Ie易产生黑暗区域的缺陷,如图2(c)中黑暗的地面区域在图2(d)中得到了亮度的增强.随后,将初始雾图I与3幅衍生图像串联,共同作为网络模型的输入.

2.3 图像融合的循环网络构建

最近,编码解码的神经网络已被证明能成功地应用于图像去雾,它在编码阶段将初始雾图转换为空间尺寸逐渐减小,通道数逐渐增多的特征图,而在随后的解码阶段将特征图逐步映射为与输入图像大小相同的清晰图.模型虽能提取不同尺度下的层次化特征,但这种前向传递的网络结构难以在不增加网络参数和深度的前提下,实现去雾结果由粗到细的优化.为此,本文提出了循环编码解码的去雾网络来解决此问题.

2.3.1 编码解码的去雾网络构建

首先,我们构建一个基本的编码解码去雾网络.选用1个卷积层(Conv及激活函数Relu)和文献[17]中除去批归一化处理的3个残差模块(Resblock)共同构成编码模块.从图3中可见,编码器选用了3个编码模块,.同时,解码器对称的选用了3个解码模块,每个解码模块包含3个残差模块(Resblock)和1个反卷积层(DeConv及激活函数Relu).由此,输入图像在经过每个编码模块时,特征空间大小缩小一半,通道数加倍,而在经过解码模块时,特征空间尺寸加倍,通道数目减半.此外,网络还使用了跳跃连接,使编码阶段的特征能直接连接到解码阶段,加快网络收敛.

图3 基于编码解码的去雾网络结构

网络模型构建好后,在网络的输入端,可实施一个早期的融合,即将原始雾图I与其衍生图像(白平衡图像Ib,对比度增强图像Ie,伽马校正图像Ig)相串联,共同构成网络的输入.因此,编码器函数可表示如下:

m=Nete(I,Ib,Ie,Ig;θe)

(5)

式中:I,Ib,Ie,Ig为网络的输入;Nete是参数为θe的编码器函数;m为编码器输出.

而解码器输出了三种衍生图像对应的融合权重图即白平衡权重图wb,对比度增强权重图we及伽马校正权重图wg,以便利用权重图将Ib,Ie,Ig进一步融合,得到去雾图像.故解码器的函数可表示为:

wb,we,wg=Netd(m;θd)

(6)

式中:Netd是参数为θd的编码器函数.

图像融合后估计的无雾图像J可由式(7)得到:

J=wb⊙Ib+we⊙Ie+wg⊙Ig

(7)

式中:⊙为元素的点乘操作,J为估计的清晰图像.

2.3.2 循环编码解码的去雾网络构建

为了使编码解码的去雾网络在不加深网络深度和参数的前提下,实现去雾结果由粗到细的优化,本文不但将上次循环时网络的输出作为下次循环时网络的输入,还创新性地在编码解码网络中添加LSTM循环单元,使得上次循环时,LSTM提取的隐藏状态能有效地传递到下次循环时LSTM单元中,从而充分利用中间层包含的丰富信息.这里将LSTM模块插入到编码器和解码器中间的瓶颈处,以两次网络循环为例,改进后网络模型如图4.网络的函数更新为:

mt=Nete(Jt-1,Ib,Ie,Ig;θe)

(8)

ht=RLSTM(ht-1,mt,θLSTM)

(9)

wbt,wet,wgt=Netd(ht;θd)

(10)

(11)

式中:RLSTM为参数θLSTM的LSTM函数.t为循环次数.从公式(8)可见,在t次循环时,t-1次循环时网络的输出Jt-1串联衍生图像Ib,Ie,Ig作为编码器的输入,输出特征mt;随后在公式(9),mt串联t-1次循环时LSTM模块输出的隐藏状态ht-1作为此次循环LSTM模块的输入,输出ht;在公式(10),ht输入解码器,输出此次循环时的权重图wbt,wet,wgt;最后,公式(11)利用权重融合三幅衍生图像,得到t次循环时网络输出Jt.重复公式(9)-公式(11),形成循环网络.本文设置t=2,且当t=1时,J0为初始雾图I.

值得一提的是LSTM模块有多种实现方法,为方便实施,本文采用卷积LSTM来实现上述操作,即采用卷积操作(Conv)来设置LSTM模块中的输入门i,输入门控制单元g,遗忘门控制单元f,输出门控制单元o和记忆单元c详见图5所示.这里,输入门i和输入门控制单元g共同控制进入记忆单元c的信息;遗忘门控制单元f控制着记忆单元c中的信息被保留或被删除;输出门控制单元o控制从LSTM中输出信息.

图4 两次循环的编码解码去雾网络结构

图5 LSTM模型内部结构图

当编码器的输出m′进入LSTM模块时,它将作为i,g,f和c的输入,并由卷积操作得到对应的输出:

(12)

式中:it为t次循环时,进入输入门的信息,它由卷积操作自动学习,故*为卷积操作,wmi为卷积权重,bi为偏移.同理,gt为t次循环时,输入门控制单元g的控制信息,也由wmg权重和bg偏移的卷积获取.ft和ot为t次循环时,遗忘门的控制信息和输出门的控制信息,wmf,wmo和bf,bo分别为各自卷积的权重和偏移.

由此,t次循环时,记忆单元中的信息ct,可由输入门控制单元控制的信息it⊙gt和遗忘门控制单元更新的记忆信息ft⊙ct-1共同决定:

ct=ft⊙ct-1+it⊙gt

(13)

式中:ct为t次循环时记忆单元中的信息,ct-1为t-1次循环时记忆单元中的信息.

最后,利用t次循环时输出门控制单元的信息ot,得到LSTM模块的输出信息:

ht=ot⊙tanh(ct)

(14)

式中:tanh为激励函数.ht为t次循环时LSTM的输出.

2.3.3 损失函数

对循环网络的每次输出均使用标准的L2损失函数,故网络总损失函数为:

(15)

式中:Jt为第t次循环时网络输出,J*为真实去雾结果.

3 实验验证

3.1 实验数据

为了有效地训练和测试网络模型,本文选用NYU2数据集[18]中1100张清晰图像J及其深度图d,合成训练和测试所需的雾图I.具体来说,对已知1000张清晰图像J和d,随机选取(0.5,1.0)内的一个值作为光强A,随机选取(0.5,1.5)内的7个值作为散射系数β,即可由大气散射物理成像模型I=Je-βd+(1-e-βd)A可合成7000张不同雾气浓度的图像,由此构成训练集.同理,对于剩余的100张雾图,我们在(0.5,1.0)范围内选定一个A值,在(0.5,1.0),(1.0,1.5)和(0.5,1.5)三个范围内,每个范围各选取三个β值,以合成300张薄雾图,300张浓雾图和300张混合雾图,作为测试集.此外,我们还选取了SOTS公共测试集[19]用于性能测试,该数据集中含有不同雾气浓度的图像1000张,包含500张室内图像和500张室外图像.

表1 网络参数设置

Table 1 Network parameters setting

网络组件网络层核步长通道特征大小Conv(编码模块1)3×3232256×256编码器Conv(编码模块2)3×326464×64Conv(编码模块3)3×3212832×32LSTM(iConv,gConv,fConv,oConv)3×3(1,1,1,1)12832×32Deconv(解码模块1)3×326464×64解码器Deconv(解码模块2)3×3232256×256Deconv(解码模块3)3×323512×512

3.2 网络参数设置

网络的结构参数如表1所示,由于残差模块(Resblock)选用了文献[17]的默认设置,且并不改变通道数及特征空间大小,因此表1中仅列出编码模块、解码模块和LSTM模块中的卷积和反卷积设置.网络训练,选用了初始学习率为0.0001的随机梯度下降算法,且在每10000次迭代后学习率下降75%.所有输入图像大小均设置为512×512.模型在训练400,000次迭代后获取最优结果.

3.3 合成图像测试结果对比

为测试算法的性能,本文将所提算法与目前几种主流的去雾算法相对比,包括基于先验的算法,如暗通道先验算法[5],非局部先验算法[7],以及基于深度学习的算法,如AOD-Net算法[12],MSDN算法[13].量化指标选用SSIM(Structure Similarity)和PSNR(Peak Signal to Noise Ratio).测试图像包括本文合成的900张不同浓度的雾图以及SOTS 公共测试集中1000张室内及室外雾图.图6(a)是从两个数据集中选取2幅雾天图像,图6(b)~图6(f)为各算法对应的去雾结果,图6(g)为真实结果.从图6可见,基于先验的算法大多过分估计了雾的浓度,去雾结果偏暗,如图6(b)及图6(c)第一行中墙面区域的颜色较深,且出现不同程度的光晕现象.图6(b)及图6(c)第二行中天空和公路区域颜色偏暗,与真实图6(g)相差较远.此外,AOD-Net的去雾算法图6(d)和MSDN法的去雾算法图6(e),虽较图6(b)及图6(c)更接近真实结果,但在局部区域也存在雾残余及过亮的问题,如图6(d)存在明显的雾残余,去雾结果清晰度不高,图6(e)整体偏亮,其中图6(e)第二行天空区域最为明显.相比而言,本算法的去雾结果图6(f)最接近真实结果图6(g),且失真最小.此外,图6中各图像下方所标的量化指标值(PSNR/SSIM),进一步证明本算法性能的优越性.

图6 不同算法的合成图像去雾结果对比

表2和表3给出了不同算法在两个数据集下的平均量化结果,从中可见无论在浓雾,薄雾和混合雾浓度的合成图像测试集上,还是在室内及室外的公共图像测试集SOTS上,本算法始终具有最高的去雾精度.以PSNR指标为例,在SOTS的1000张室内和室外图像上测试的结果表明,本文算法较存在算法的去雾精度至少提高19%.

表2 合成测试集下不同算法去雾结果的PSNR/SSIM对比

Table 2 Comparison of different algorithms based on synthetic testing data set in terms of PSNR/SSIM

暗通道先验非局部先验AOD-NetMSDN本文算法300张薄雾图像0.8440/17.270.8725/17.710.9214/21.430.9289/23.790.9689/28.50300张浓雾图像0.8419/17.110.8697/17.420.9185/20.660.9224/23.170.9654/28.44300张混合雾浓度图像0.8415/17.080.8688/17.360.9016/19.570.9187/22.480.9624/28.27

表3 SOTS测试集下不同算法去雾结果的PSNR/SSIM对比

Table 3 Comparison of different algorithms based on SOTS testing data set in terms of PSNR/SSIM

暗通道先验非局部先验AOD-NetMSDN本文算法500张室内图像0.8277/17.010.7649/17.320.8924/20.020.9026/21.810.9608/26.98500张室外图像0.8057/16.910.7519/17.220.8718/18.120.8968/20.090.9428/26.221000张室内和室外图像0.8167/16.960.7584/17.270.8821/19.070.8997/21.450.9518/26.60

3.4 真实图像测试结果对比

为进一步测试算法的有效性,我们选取了多数去雾算法常用的2张真实雾图实施去雾.各算法的去雾结果如图7所示.从中可见,基于先验的去雾算法去除了图像中大部分雾气,场景和目标的细节也能大体复原,但去雾结果存在明显颜色失真,例如暗通道先验的去雾结果图7(b)颜色过暗,如图7(b)第一行女孩的皮肤过暗.非局部先验的去雾结果图7(c)仍有雾残余,其中图7(c)第二行的远景区域雾气尤为明显.基于深度学习的去雾算法如AOD-Net的结果图7(d)的清晰度不高,存在明显的雾残余,MSDN算法的结果图7(e)第一行的图像周边出现明显的暗影,而女孩头发区域较亮,过增强现象明显.相比而言,本文算法的去雾结果图7(f)能最大程度的去除雾效应,场景细节也得到了适度增强,具有最佳的视觉效果,如图7(f)的第二行中远处的草垛能较好的复原.究其原因主要是由于传统去雾算法过度依赖已知的先验知识,对于复杂的雾天图像,存在透射率估计不准确,算法鲁棒性差的问题.而基于深度学习的算法虽能缓解此问题,但因输入图像仅为初始雾图,未能融合多种去雾信息,且去雾结果未实施从粗到细优化策略,导致复原结果存在雾残余或颜色失真问题.本文利用神经网络有效估计白平衡图像,对比度增强图像,伽马校正图像的融合权重,合成清晰图像,还利用循环网络优化去雾结果,具有较高的去雾精度.

图7 不同算法的真实图像去雾结果对比

4 结 论

本文提出了多图像融合的循环神经网络去雾算法.算法利用编码解码网络有效估计白平衡图像、对比度增强图像、伽马校正图像的融合权重,合成清晰无雾图像,解决了传统融合去雾算法中融合权重估计耗时费力,易出现误差的问题.此外,还在编码解码网络中嵌入LSTM循环单元,并将网络的输出作为网络的输入,由粗到细的优化去雾结果,具有较好的去雾精度.在合成图像测试集及真实图像上测试表明,本文算法具有较高的去雾精度,较常用算法的去雾精度至少提高了约19%,可用于不同场景下的去雾应用中.

猜你喜欢
雾天解码编码
生活中的编码
长链非编码RNA APTR、HEIH、FAS-ASA1、FAM83H-AS1、DICER1-AS1、PR-lncRNA在肺癌中的表达
为什么在雾天不适宜进行晨练
文化解码
解码eUCP2.0
文化 解码
文明 解码
Genome and healthcare
雾天尽量减少室外运动
大雾天气