优胜从选择开始,我们是您最好的选择!—— 中州期刊联盟(新乡市博翰文化传媒有限公司)
0373-5939925
2851259250@qq.com
我要检测 我要投稿 合法期刊查询
您的位置:网站首页 > 优秀论文 > 其他论文 > 正文

一种基于改进AOD-Net的航拍图像去雾算法

作者:李永福 崔恒奇 朱浩 张开碧来源:《自动化学报》日期:2022-07-23人气:1140

随着无人机航拍技术的日益成熟, 无人机航拍技术逐渐被频繁地应用于复杂环境地图测绘[1], 辅助驾驶[2]以及道路监控[3]等领域. 然而, 由于航拍无人机与拍摄对象的距离通常较远, 因此航拍图像更容易受雾霾环境的影响. 在雾霾环境中, 地面拍摄的普通图像中近景受到雾霾的影响较小, 而航拍图像整体都会包含浓度较高的雾霾, 这极大地影响了航拍图像的成像质量. 此外, 航拍图像的比例尺较大, 这要求航拍图像具有极高的成像质量从而保证拍摄对象清晰可见, 而雾霾环境中采集的航拍图像的信息量会严重下降, 其实用价值也会大打折扣. 因此, 为了降低雾霾环境对航拍图像的影响, 需要对无人机采集的有雾航拍图像进行去雾处理, 同时需要增强去雾图的视觉效果, 强化图像中的特征信息以便于后续高级计算机视觉系统进行二次处理.

图像去雾算法可以分为基于传统数字图像处理与物理模型结合的方法[4-8]和基于深度学习设计的去雾网络模型的方法[9-16]. 基于传统数字图像处理与物理模型结合的方法一般以大气散射物理模型[17]为基础, 在此基础上针对大气光值与透射矩阵设计求解算法以期获取准确的数值. 其中具有代表性的算法有如下三种: He等[6]提出了基于暗通道先验(Dark channel prior, DCP)的去雾方法, 该方法通过寻找图像中的暗通道图像来求解透射矩阵, 再结合估计的大气光值来消除图像中的雾气. Berman等[7]利用了一种边界约束和正则化(Boundary constraint and contextual regularization, BCCR)的方式来配合大气散射模型对图像进行去雾. Zhu的团队[8]利用颜色衰减先验假设(Color attenuation prior, CAP)来获取透射图, 再结合大气散射模型进行图像去雾.

随着深度学习在图像领域的发展, 许多学者尝试通过设计合适的去雾神经网络来进行图像去雾. 基于深度学习设计的图像去雾模型能够被进一步细分为基于大气散射模型的间接参数求解型网络模型和直接图像生成型网络模型[9-10]. 其中,基于大气散射模型的间接参数求解型网络模型一般是通过对大气光值或者传输矩阵进行网络设计, 通过构建高效的特征提取网络结构来准确获取二者的数值, 然后进而通过大气散射物理模型生成无雾图像. 其中近年来具有代表性的算法有: Cai等[11]提出了一种可以端到端进行训练的卷积神经网络模型DehazeNet, 该网络可以学习有雾图像于介质传输图之间的映射关系, 但是仅仅四层的单尺度直线型卷积网络的特征提取能力非常有限, 很容易造成传输图的估计出现错误. Ren等[12]提出了一种多尺度卷积神经网络(Multi-Scale Convolutional Neural Network, MSCNN)用于去雾, 该网络使用精细介质传输网络对粗糙介质传输网络进行传输特征的细化, 有效提升了去雾图的细节特征, 然而庞大的网络结构使得该网络并不能短时高效地去雾, 需要依赖强大的图形化硬件设备. Li等[13]提出了AOD-Net去雾算法, 该方法简化了去雾模型, 通过对大气散射模型进行变形使大气光值以及大气透射率合并为一个参数变量, 并设计了一种简单高效的特征融合型卷积神经网络来有效获取该变量的值. 但是该算法处理真实雾图的时候非常容易使图像的色调丢失并且损失较多色值. 而直接图像生成型去雾网络模型与间接参数求解型网络模型不同, 该网络能够直接学习到有雾图像与清晰图像之间的映射关系, 将这种关系以权重文件的形式保存起来, 每张图像在经过加载了该权重文件的神经网络后能够直接生成清晰图像, 无需依赖大气散射模型. 例如, Ren等[14]设计了一种门控融合网络(Gated fusion network, GFN), 该网络通过融合白平衡派生图、对比度增强派生图以及伽马增强派生图直接端到端生成无雾图像. Chen等[15]设计了一种门控聚合网络(Gated context aggregation network, GCANet), 该网络通过编码-解码的网络结构学习到原图和有雾图之间的残差, 通过将雾气的特征残差附加在雾图上即可获得去雾图像, 恢复的图像会出现区域色调失衡以及图像饱和度过低的现象. Qin等[16]设计了一种端到端的特征融合注意网络(Feature fusion attention network, FFANet)来获取雾气的残差特征, 去雾后的图像通常会出现颜色失真和对比度下降的问题. 虽然端到端图像生成型网络可以不依赖大气散射模型, 但是对雾气分布不均匀的图像进行去雾时非常容易出现去雾不彻底的问题, 并且容易出现大量的噪点.

由于AOD-Net的网络结构非常轻巧, 算法耗时极短, 因此该算法非常适用于无人机航拍图像实时去雾. 本文重点针对AOD-Net去雾图的细节信息丢失严重, 去雾图的对比度过强以及去雾图噪音过多的问题, 提出一种基于AOD-Net的多尺度航拍图像去雾算法. 本文的主要创新点如下:

1) 本文在AOD-Net的基础上学习FPC-Net对网络层的优化方式[18]对AOD-Net的网络层进行了改良, 并将改良的AOD-Net嵌入到多尺度结构中. 改良后的网络结构能够有效提升神经网络对图像细节部分的处理能力, 并且能有效削减远景部分的雾气.

2) 与以往一些文献中仅仅关注图像重构的像素差异而设计的损失函数不同[11-13], 本文设计的损失函数在训练网络时不仅监视了生成图与标准清晰图之间的结构差异, 还关注了生成图的视觉主观感受以及图像的平滑度.

3) 与以往研究中采用唯一损失函数训练模型的方式不同[9-16], 本文训练所提网络模型时采用了分段训练的方法, 这种通过优化训练方式来提升网络的去雾性能的方式能够有效保留网络的模型复杂度, 并且能够极大程度地保证算法的实时性.

AOD-Net算法是基于简化的大气散射模型设计的去雾算法. 该算法将大气散射模型中的大气光值和透射矩阵合并为了一个过渡矩阵, 然后利用多尺度特征融合网络来获取过渡矩阵中的数值, 最后利用简化的大气散射模型来获得无雾图像. AOD-Net算法主要包含以下5个步骤:

步骤 1. 大气散射模型的简化. 清晰图与对应的有雾图像的函数关系可以表示为:


(1)

其中t(x)表示传输图, A表示大气光值, 若要恢复出清晰图像则必须准确估计二者的值, 而在AOD-Net中, 将式(1)中的两个未知量通过数学公式变换合并为了一个未知量KK的求解公式如式(2)所示, 简化的大气散射模型如式(3)所示.


(2)

(3)

步骤 2. 多尺度特征融合网络提取雾气特征. AOD-Net采用了一种多尺度特征融合的方式来增强网络的特征提取能力, 该网络的结构如图1所示. 其中第2个特征层合并了第1层的特征图, 第3个特征层融合了第2层的特征图, 第四层特征层合并了前3层的特征图, 最后一层输出过渡图像K的数值矩阵. 该网络结构较为简单, 无复杂的支路, 这保证了AOD-Net算法的实时性.

图 1  AOD-Net的网络结构
Fig. 1  The network architecture of AOD-Net

步骤 3. 雾气数据集的生成. AOD-Net通过设置不同的大气光值和散射系数将NYU2[19]的室内清晰图像数据集扩充为包含了多种雾气浓度的合成雾数据集.

步骤 4. 设计用于训练网络的损失函数. AOD-Net选择的是最简单也是最直接的均方误差损失函数[20] , 该损失函数可用式(4)表示.


(4)

式(4)中的xi表示了输入网络的有雾图像, Ji表示了合成雾图对应的清晰无雾图像, f(xi)表示AOD-Net生成的去雾图像.

步骤 5. 经过训练后的AOD-Net可获取对应的权重文件, 加载权重文件并用AOD-Net读取有雾图像即可直接获取去雾图像.

AOD-Net去雾算法虽然拥有非常优秀的去雾效率, 但是该算法去雾后的图像非常容易出现去雾不彻底、对比度过强、边缘细节模糊以及色调偏暗的问题. 因此, 本文对AOD-Net算法进行了改进. 首先, 针对步骤2, 本文根据FPC-Net中对网络层的优化方式改良了AOD-Net的多尺度特征融合网络, FPC-Net中采用了全逐点卷积与不同大小池化层结合的方式替换了大尺度卷积层, 从而有效提升网络的特征表达能力[21]. 然后, 本文构建了多尺度网络结构, 提升网络对图像细节雾气的处理能力. 随后, 用包含了图像重构损失函数、SSIM损失函数和TV损失函数[22]的复合损失函数替代了步骤4中的均方误差损失函数, 以有效提升多尺度去雾网络去雾图的视觉效果. 最后, 本文还通过分段训练的方式替换了单一损失函数训练的方式, 进一步提升图像的生成质量.

为了提升AOD-Net的特征表达能力, 本文参考FPC-Net的网络层优化方式来改良AOD-Net的网络结构, 用该方法来强化网络的特征表达能力, 本文改良的网络结构如图2所示. 这种改良方式不仅能有效提升网络对特征的表达能力, 使网络更加紧凑, 也能够在一定程度上减少训练时出现过拟合的现象[18]. 另外, 本文认为第一层的特征有必要融合至第二个特征融合层, 通过实验发现, 这样的优化能够在一定程度上改善网络对景深雾的处理能力.

图 2  本文所提的网络结构
Fig. 2  The proposed network architecture

本文所提的网络结构总共包含5个全逐点卷积层, 3个不同大小的池化层, 3次特征图融合和1次解卷积层组成. 其中每个逐点卷积的卷积核大小均为1×1, 输入层和输出层的1×1逐点卷积层后无池化层和批归一化层, 其余每个逐点卷积后均会连接批归一化层、ReLU激活函数和池化层. 第一个池化层的滤波核大小为3×3, padding值为1, 第二个池化层的滤波核大小为5×5, padding值为2, 第三个池化层的滤波核大小为7×7, padding值为3, 每个卷积核和池化层的滤波核的行进步长均为1, 下一层输入的特征图会融合之前所有层网络输出的特征图, 本文的网络结构细节如表1所示.

表 1  本文所提网络的参数
Table 1  The architectures of proposed network
LayerInput SizeNumFilterPad
Conv1128×128×3321×10
Conv2128×128×32321×10
Pool1128×128×323×31
Concat1128×128×64
Conv3128×128×64321×10
Pool2128×128×325×52
Concat2128×128×96
Conv4128×128×96321×10
Pool3128×128×327×73
Concat3128×128×128
Conv5128×128×12831×10

图3展示了本文所提网络对景深雾的处理能力. 从图3中可以看出AOD-Net经过本文的改良, 图像的远景部分的雾气能够被进一步消除, 而原版的AOD-Net处理后的图像远景部分依旧有雾气残余, 这说明本节在AOD-Net的网络上的改良是有效的.

图 3  去雾效果 ((a) 有雾图像; (b) AOD-Net;(c) 改良后的AOD-Net)
Fig. 3  Defogging effect ((a) Fog image; (b) AOD-Net; (c) Improved AOD-Net)

AOD-Net仅采用单尺度的网络模型对图像特征进行提取, 导致其对图像细节的恢复程度较差. 而多尺度结构的网络模型则对图像的细节和纹理的恢复效果较为理想[23-25]. 因此本文将改进的AOD-Net嵌入多尺度网络结构进一步提升网络的去雾能力, 多尺度网络结构如图4所示.

图 4  多尺度网络结构
Fig. 4  The architecture of multi-scale network

本文所设计的多尺网络首先将原始雾图I进行了2倍和4倍的下采样, 然后将下采样4倍的雾图输入到Scale 3的K估计模块得到该尺度的K估计图, 再结合式(3)获取该尺度的去雾图I0.25. 接下来将I0.25恢复至与Scale 2输入图一致的尺寸, 然后将I0.25和2倍下采样的原图一起输入到Scale 2的K估计模块, 再模仿上一步获取该尺度的去雾图I0.5, 最后, 将I0.5恢复至与Scale 1输入图一致的尺寸, 将I0.5和原图I一起输入到Scale 1的K估计模块, 再根据式(3)获取最终的去雾图. 需要说明的是, Scale 1尺度上的估计模块的输入图像的尺寸大小为128×128, 输入通道数为6, Scale 2尺度上的估计模块的输入层的图像尺寸为32×32, 输入通道为6, Scale 3尺度上的估计模块的输入层的图像尺寸为8×8, 输入通道为3.

本文在训练网络时采用了一种包含了图像重构损失、图像结构相似损失和TV损失函数的复合损失函数, 复合损失函数中的图像重构损失选择了常用的最小均方误差损失函数(L2损失), 每张训练图的重构损失如式(5)所示.


(5)

其中Ji表示的是无雾清晰图像, xi表示了该清晰图像对应的有雾图像, Fm(xi)代表了该有雾图像经过本文m尺度上网络去雾处理后的图像.

图像结构相似损失函数的作用是使图像视觉效果更符合人眼主观视觉感受. 而SSIM相较于峰值信噪比(Peak signal-to-noise ratio, PSNR)能直观反映生成图与标准清晰图之间的结构相似程度[26], 因此该损失函数可以表示为式(6).


(6)

其中SSIM(Ji,Fm(xi))表示了合成雾图去雾后的生成图与对应的标准无雾图像之间的SSIM数值.

图像TV损失函数是一种能够约束图像噪声的损失函数, 通过降低TV损失函数的数值可以在一定程度上消除因去雾算法和重构损失函数带来的噪声[27]. TV损失函数的表达式如式(7)所示.


(7)

其中xy分别表示了生成图的像素在横轴方向和纵轴方向上的梯度幅值. 复合损失函数总公式如式(8)所示.


(8)

其中N代表了训练图的总量, λ1λ2λ3分别代表了每个损失函数的权重系数, 代表了训练时设定的权重衰减因子, w代表了网络的可学习参数, w为函数约束项, 作用是为了减少函数训练时出现过拟合现象.

本节所提的复合损失函数相较于AOD-Net中使用单一的均方误差损失函数能更有效地修正生成图与清晰图之间的对比度、亮度以及纹理之间的差异.

本文所设计的网络在训练时采用了分段训练的方式, 与以往单独使用一种损失函数训练网络的方法不同, 这种分段训练的方式能够摆脱局部最优解, 进一步优化网络生成图的质量[28]. 分段函数的两段分别由式(8)和式(9)组成. 不同于式(8), 式(9)中将重构损失函数的L2损失改为了L1损失.


(9)

其中L1如式(10)所示, λ4代表L1的权重系数.


(10)

在进行网络效果测试前, 本文对分段损失函数的有效性进行了测试. 测试实验的结果如图5图6所示.

图 5  不同方法训练本文所提模型获得的损失曲线 ((a) 单一函数训练方法; (b) 分段函数训练方法)
Fig. 5  The loss curve obtained by training the proposed model with different methods ((a) The training method of single function; (b) The training method of piecewise function)

图 6  不同训练方式下的SSIM与PSNR变化曲线((a) SSIM曲线; (b) PSNR曲线)
Fig. 6  The curve of SSIM and PSNR under different training methods ((a) The curve of SSIM; (b) The curve of PSNR)

图5(a)中的曲线分别代表了仅使用式(8)或式(9)对本文所提模型训练时的Loss走势曲线, 可以看出当训练至1000轮左右时两个曲线均达到收敛状态, 然而此时的模型还没有达到全局最优, 当本文在1000轮之前选择LMS, 1000轮之后改用LMS训练时, 可以获得图5(b)中上方的曲线, 反之可以获得图5(b)中下方的曲线, 最终用于训练网络的损失函数如式(11)所示.


(11)

本文每10轮训练会保存一次权重文件,用网络加载每个权重文件对测试集中同一张有雾图像进行去雾, 可获得150张生成图. 图6展示了这些生成图与对应的清晰图样之间的SSIM和PSNR的变化曲线. 从图6中可以看出, 在改变了训练方式之后, 生成图的SSIM与PSNR值均有小幅度的提升. 图7展示了两种不同训练模式下本文模型生成的去雾图的效果. 从图7中可以看出, 图7(e)图7(c)的主观视觉效果相近, 而图7(f)虚线框中的墙壁色彩相较于图7(d)更接近图7(b)的墙壁色彩.

图 7  两种不同训练方法下的去雾效果 ((a) 合成雾图; (b) ground truth; (c) 所提模型用LMS训练1000次的效果; (d) 所提模型用LMS训练1500次的效果; (e) 所提模型用式L训练1000次的效果; (f) 所提模型用式L训练1500次的效果)
Fig. 7  Defogging effect of two different training method ((a) Synthetic fog image; (b) Ground truth; (c) The proposed model was trained after 1000 times by LMS; (d) The proposed model was trained after 1500 times by LMS; (e) The proposed model was trained after 1000 times by L; (f) The proposed model was trained after 1500 times by L)

综上可知, 选择式(11)作为本文所提网络的损失函数能够获得更好的去雾效果.

本文所提的去雾网络是基于Caffe框架实现的, Caffe框架通过Matlab2016a提供的接口来运行, 网络的训练与雾图处理均采用了GPU进行加速, GPU型号为Nvidia RTX 2070, 显存容量8GB, 初始学习率大小设置为10–5, 采用ADAM优化器进行训练优化, 训练轮数设置为1500, 批处理图像的数量为16, 权重因子λ1设置为1[21]λ2的选值需根据实验和数据集进行测试, 本文在第3.4节给出了测试过程, 该参数设置为0.84, λ3的值选用了文献[24]中的建议值2×10–8λ4设置为1[22], 动量和权重衰减因子设置为0.9和0.0001. 训练所使用的雾气数据集有AOD-Net所提供的NYU2合成雾数据集, 内含1449张清晰图以及27531张对应的合成雾图像, 同时本文还随机选择了RESIDE[29]的OTS (Outdoor training set)数据集中的500张室外清晰图, 并通过这些清晰图生成9500张合成雾图, 两个合成雾数据集总计37031张图片, 本文按8:1:1的比例划分出29616张图片用于训练、3707张图片作为验证集、3708张图片作为测试集. 本文选用大疆的DJI-Mini2无人机在雾天拍摄的低空航拍图像验证所提去雾算法处理自然航拍雾图的有效性. 本文所提算法还与目前使用频率较高的几种去雾算法进行了对比, 其中经典去雾算法包括了DCP[6]、BCCR[7]和CAP[8], 基于深度学习的去雾算法包括了DehazeNet[11]、MSCNN[12]、AOD-Net[13]、GFN[14]、GCANet[15]和FFANet[16].

本文首先在合成有雾数据集上进行去雾效果测试, 所选用的测试图像均来自本文构建的测试集. 采用SSIM和PSNR两个指标从客观数值上来评价各去雾算法的优劣, 再结合各算法去雾图的主观视觉感受来系统性地评价每个算法的去雾效果. 图8展示了各个去雾算法去雾后的主观视觉效果. 表2展示了各去雾算法在测试集的3708张合成雾图上的SSIM和PSNR指标平均值对比.

图 8  合成有雾图像的实验结果展示 ((a) 有雾图像; (b) Ground truth; (c) DCP; (d) BCCR; (e) CAP; (f) DehazeNet;(g) MSCNN; (h) AOD-Net; (i) GFN; (j) GCANet; (k) FFANet; (l) 本文算法)
Fig. 8  Experimental results of the synthetic fog images ((a) Fog image; (b) Ground truth; (c) DCP; (d) BCCR; (e) CAP; (f) DehazeNet; (g) MSCNN; (h) AOD-Net; (i) GFN; (j) GCANet; (k) FFANet; (l) Proposed algorithm)

表 2  在合成有雾图像上的SSIM与PSNR结果
Table 2  Comparison of SSIM and PSNR tested on synthetic fog images
ModelSSIM
PSNR (dB)
IndoorOutdoorAverageIndoorOutdoorAverage
DCP[6]0.74180.79010.7659
17.314815.532316.4236
BCCR[7]0.80880.77190.790417.211916.304116.7580
CAP[8]0.79420.82550.809916.949619.082918.0163
DehazeNet[11]0.86530.83170.848520.054521.999221.0269
MSCNN[12]0.77960.79310.786416.892719.001917.9473
AOD-Net[13]0.83340.88480.859120.026718.410519.2186
GFN[14]0.90390.88140.892721.107925.539923.3239
GCANet[15]0.90250.85820.880422.336326.143124.2397
FFANet[16]0.93130.90820.919828.405727.993228.1995
Proposed0.87940.90110.890321.192423.407322.8994

图8中可以看出, DCP算法处理的图像偏暗, 并且天空区域会出现一定的失真现象(参考图8(c)建筑物与天空的交界处). BCCR算法去雾后的图像会出现明显的噪声, 并且图像的对比度过高(参考图8(d)室内沙发的颜色和电视塔周明暗区域的颜色). CAP算法对图像的去雾程度不足(参考图8(e)中室内图像依旧残留较多雾气), 并且图像的饱和度过高(参考图8(e)中电视塔天空的色泽). DehazeNet算法去雾后的图像会残留较多雾气(参考图8(f)室内的远景区域), 但该算法对图像色调的恢复程度较高. SCNN算法对图像色彩的恢复程度较弱但该算法对图像色调的恢复程度较高, 且图像部分区域依旧有大量雾气残余(参考图8(g)电视塔图片的边角区域). AOD-Net去雾后的图像的饱和度和对比度都过强, 导致图像整体偏暗(参考图8(h)中室外场景的天空区域), 此外过于简单的损失函数使其对于雾气集中区域的恢复效果较差(参考图8(h)中图书馆中间区域的雾气). GFN算法去雾后的图像对比度过强, 过强的对比度会导致图像中色值偏低的区域损失大量的细节信息(参考图8(i)的室内图像中有明显偏暗的区域, 室外夕阳图中建筑物的颜色也明显偏暗). GCANet处理后的图像有明显的雾气残留(参考图8(j)中天空背景和建筑物交界区域的雾气残余). FFANet去雾后的室内图像较为清晰, 其去雾图的整体色调和细节恢复程度均与清晰图非常接近. 本文所提算法去雾后的图像的饱和度相对清晰图会更高一些, 室内外图像上的去雾效果略弱于FFANet(参考图8(k)图8(l)的图书馆远景部分), 相较于AOD-Net在主观视觉效果上有了一定的改善, 不会出现太多过暗的区域, 且去雾程度也更理想.

表2中客观数值指标可以看出, 本文所提算法在合成有雾图像数据集上的SSIM均值和PSNR均值相较于AOD-Net均有一定幅度的提升, 整体效果略弱于FFANet以及GCANet. 需要说明的是, FFANet的网络层数多, 模型更为复杂, 因此其网络对合成雾图的去雾效果与清晰图更接近, 仅通过合成雾数值指标对比并不能确定更适合航拍图像的算法, 因此本文在第3.3节和第3.5节将会分别展示各个算法在真实自然雾图上的表现以及参数量和耗时的对比.

为了进一步体现本文所提算法的去雾有效性, 本文用大疆DJI-Mini2无人机在重庆拍摄了20张真实有雾航拍图像, 并用各去雾算法在该组有雾航拍图像上进行实验, 图9展示了各去雾算法在四张具有挑战性的航拍雾图上的去雾效果. 从图9中可以看出各个去雾算法在航拍雾图上的去雾表现与合成有雾数据集上的表现基本一致, 其中DCP、GFN和GCANet算法对小范围的雾气去除效果不理想(参考图9(b)图9(h)图9(i)的塔尖铁框中的雾气有残余). BCCR去雾后的图像有明显的色彩失真现象(参考图9(c)的浓雾区域出现了色彩分层). AOD-Net图像整体亮度偏低, 细节可见性较差. CAP和FFANet仅去除了图像中部分雾气, 整体图像依旧残留有大量雾气(参考图9(d)的高速路右侧的区域和图9(j)高塔周围大量残余的区块雾). 而DehazeNet与MSCNN对远景部分的雾气去除程度较差(参考图9(e)图9(f)的大桥图像的远景部分依旧可以看见大量残存的雾气). 本文所提的去雾算法对航拍雾图的去雾效果较为自然, 去雾图较少出现过亮或者过暗的区域, 不足之处是对景深雾的去除效果不佳, 这可能是由于训练数据是合成雾而非自然雾导致的.

图 9  真实有雾航拍图像的实验结果展示 ((a) 有雾图像; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN;(g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) 本文算法)
Fig. 9  Experimental results of the real aerial fog images ((a) Aerial fog image; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN; (g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) Proposed algorithm)

与有ground truth作为对比的全参考指标不同, 由于真实有雾图像没有对应的无雾图像用于测试SSIM和PSNR指标. 因此, 本文选择使用如下8种不同的客观数值评价指标来测试所提模型在真实雾图上的有效性:

1) 增强图像的盲图评测方法BIQME (Blind image quality measure of enhanced images), 该方法是一种包含了图像对比度、锐度、亮度、色彩保真度以及自然程度这五种图像因素在内的打分机制, 可以在综合五种影响程度上给出一种较为可信的评判分数[30].

2) 雾气密度评估方式FADE (Fog aware density evaluator), 该方法可以直接评测一幅图像中雾气保留的程度[31].

3) 能见度指数VI (Visibility index), 该值用于评测去雾后图像的能见度, 主要评测景深雾的消除效果[32].

4) 真实性指数RI (Realness index), 该值重点用于评测人眼视觉主观感受, 这种视觉感受程度也能够在一定程度上反映去雾后图像的颜色失真程度[32].

5) 基于人类启发感知的图像融合质量评价CB (Chen-blum metric), 该方法重点用于测试输入与处理图之间的对比度特征得分[33], 其值不仅反映了图像对比度信息, 也反映了原始图像保留的信息量[34].

6) 图像视觉信息保真程度评价VIF (Visual information fidelity), 该方法是利用处理后图像信息与原始图像信息进行比对, 得分值可以反映图像因处理算法而导致图像的失真程度[35].

7) 基于图像梯度的处理性能评价GB (Gradient-based performance metric), 该值是一个常用的图像质量评估指标, 通常被用来评估图像的边缘信息丢失程度[36].

8) 图像熵评价指标Entropy, 该值通常用于评测处理后图像中信息的复杂程度, 即信息量的多少, 常被用于测试各类图像增强或复原算法的优劣[37].

其中BIQME、VI、RI、CB、VIF、GB以及Entropy的值越大代表去雾图效果越好, 而FADE的值越小代表图像去雾程度越高.

图10表3展示了所有对比算法与本文算法在8种评价指标上的客观数值对比, 从中可以看出本文算法的FADE、CB、VIF、GB以及Entropy均排名前三, 这说明本文去雾算法在去雾程度、对比度、色彩保真程度、边缘信息保留程度以及图像信息量上有着较为优秀的表现, 而其余略弱于其它对比算法的指标相较于AOD-Net也有一定程度的提升, 这说明本文对于AOD-Net的改进在各项对比指标上有着全面的提升. 此外, 我们利用本文数据集训练了FFANet后, 发现该网络仅对雾气分布均匀的图片去雾效果良好, 而对于雾气浓度分布不均的真实图像表现较差, 这可能是因为该网络较深, 对训练雾图数据的拟合程度较高, 一旦雾气浓度和雾气分布与数据集中的合成雾气差别较大时, 该网络的适应性相较于浅层网络会下降得更多.

图 10  不同去雾算法在真实航拍有雾图像上的客观评价结果 ((a) BIQME; (b) FADE; (c) VI;(d) RI; (e) CB; (f) VIF; (g) GB; (h) Entropy)
Fig. 10  Objective evaluation results of different image dehazing algorithms on real aerial fog images ((a) BIQME; (b) FADE; (c) VI; (d) RI; (e) CB; (f) VIF; (g) GB; (h) Entropy)

表 3  在真实航拍雾图上的客观数值评价: (1) 最好的结果; (2) 次好的结果; (3) 第三好的结果
Table 3  Objective numerical evaluation on the fog map of real aerial photography: (1) The best result; (2) The second-best result; (3) The third-best result
ModelBIQMEFADEVIRICBVIFGBEntropy
DCP[6]0.62350.69020.8992 (1)0.94070.38840.99570.58147.4427
BCCR[7]0.57510.70910.86390.92630.42390.92110.51127.3983
CAP[8]0.63800.82060.80260.92010.33980.88920.64137.4115
DehazeNet[11]0.6917 (3)0.59840.8845 (2)0.9496 (2)0.42031.03960.64487.7265
MSCNN[12]0.7131 (2)0.62610.8721 (3)0.9425 (3)0.44391.1513 (1)0.73527.3524
AOD-Net[13]0.60130.84590.83650.92080.39950.95320.69687.4785
GFN[14]0.7795 (1)0.4119 (1)0.85730.9498 (1)0.4880 (1)1.08720.8065 (2)7.8334 (3)
GCANet[15]0.62440.4743 (2)0.85120.93280.4566 (3)1.1473 (2)0.75187.8891 (1)
FFANet[16]0.63970.97520.81150.90740.44291.07240.9127 (1)7.3193
Proposed0.66940.5625 (3)0.86490.94110.4753 (2)1.1109 (3)0.7749 (3)7.8799 (2)

另外, 由于本文在网络层中相较于AOD-Net额外引入了池化层, 但这种逐点卷积与N×N大小的池化层组合的方式与N×N大小的单卷积层的感受野是一致的, 并且两者在特征提取的效果上可以划等号[21], 因此, 额外引入的池化层相较于AOD-Net并不会丢失更多的细节特征, 而本文还进一步通过多尺度框架提升了网络对细节处雾气的特征提取能力, 从表3中GB与Entropy两项定量的图像信息保留量指标也证实了本文的改良方式相较于AOD-Net能够保留更多的细节信息.

本文在损失函数的设计上采用了多个损失函数组合的方式. 为了体现每个损失函数对最终生成图像的影响, 本文进行了相关的消融实验, 所用图片取自AOD-Net测试图像集中提供的真实City雾景图. 消融实验结果如图11所示. 从图11中可以看出, 组合损失函数L中缺少了L1L2会出现图像的色调偏暖, 而且图像的饱和度较差(参考图11(c)的天空区域的颜色和房屋墙体的颜色), 这说明图像重构损失函数会影响去雾图像的色彩. 当L中缺少了LS时图像的对比度会过高, 而且图像的亮度偏低(参考图11(d)中的图像的亮度), 这是由于LS中带有SSIM函数, 而SSIM函数的计算与图像的亮度, 结构信息以及对比度有直接关系, 因此, LS会影响去雾图的对比度以及亮度. 当缺少LTV时, 建筑物表面会出现大片的伪影, 例如图11(e)中建筑物表面出现了大量灰色覆盖, 并且建筑物边缘信息损失严重, 这说明LTV会直接影响图像的边缘信息以及主观视觉感受, 缺少多尺度框架会导致近景部分出现过度去雾而导致对比度升高, 图像变暗, 而远景区域的雾气去除程度则较弱. 图11(g)图2所示网络结构的测试结果, 选用了与AOD-Net中相同的均方误差损失函数. 将图11(g)图11(f)进行对比, 可以看出图2所示的网络比AOD-Net拥有更强的远景雾去除能力, 进一步佐证了第2.1节中改良的有效性. 同样地, 本文也在测试集图片组上测试了消融实验每种情况下的数值指标对比, 从表4中也能直观看出缺少任何一个部分均会导致最终图像的视觉感受、真实程度、去雾程度、边缘信息有一定程度的下降, 这也证明了本文改良的网络结构以及损失函数每个部分的必要性.

图 11  消融实验结果 ((a) 航拍雾图像; (b) 本文方法; (c) 缺少L1L2; (d) 缺少LS; (e) 缺少LTV; (f) 无多尺度(Mutil-Scale, MS)结构; (g) 无MS结构和L (损失函数为均方误差); (h) AOD-Net)
Fig. 11  Experimental results of ablation study ((a) Aerial fog image; (b) Proposed algorithm; (c) w/o L1 and L2 loss function; (d) w/o LS loss function; (e) w/o LTV loss function; (f) w/o MS structure; (g) w/o MS structure and L (The loss function is the mean square error); (h) AOD-Net)

表 4  消融实验中的数值指标
Table 4  The numerical index in ablation experiment
Modelw/o partSSIMPSNRVIRIFADEGB
ProposedMS0.734426.64190.81950.90040.69710.6806
L1 and L20.765928.04170.85470.91980.58320.7612
LS0.717727.12590.80260.90350.70430.6327
LTV0.739221.78840.69520.72590.88260.6122
MS and L0.729325.53320.79190.88270.70330.6303
0.890328.89940.89960.93280.51080.7749
AOD-Net0.703123.39030.75230.90020.74390.7114

接下来为了确定本文λ2的取值, 我们采用了一种范围缩小的方法, 通常λ2的取值在0至1之间[26], 于是本文每0.1为间隔训练了模型, 并对图像进行了主观和客观分析, 另外, 由于λ2关系到图像的视觉成像效果, 因此, 本文在记录客观数值指标时选择记录了FADE、VI、RI与CB四个评价指标来观测不同的λ2对图像的去雾程度、能见度、色彩保真度以及对比度的影响, 以此来确定λ2的大致取值范围, 图12给出了不同取值的λ2对去雾效果的影响, 可以看出当取值为0.7时图像饱和度过高, 而当取值为0.9时则会导致图像去雾效果变差; 从图13则可以看出λ2取值在0.8至0.9之间时可以取得最优的指标, 因此可以确定最优解在0.8至0.9之间. 接下来继续以0.01为间隔测试了0.81~0.89范围内的λ2的最优值, 通过图14可以看出, 综合四种对比指标, λ2的取值为0.84时最适合本文雾气数据集的训练.

图 12  所提算法在λ2不同取值时的去雾效果
Fig. 12  The dehazing effect of the proposed algorithm at different values of λ2

图 13  λ2不同取值时的图像指标变化(λ2=0.1 ~ 0.9)
Fig. 13  The change of image index when λ2 takes different value (λ2=0.1 ~ 0.9)

图 14  λ2不同取值时的图像指标变化(λ2=0.81 ~ 0.89)
Fig. 14  The change of image index whenλ2takes different value (λ2=0.81 ~ 0.89)

本文所提算法不仅关注了去雾图像的视觉效果和图像质量, 同时还尽力保证了去雾实时性. 表5展示了各算法在原始分辨率和缩小分辨率的航拍雾图上的处理耗时, 其中DCP、BCCR、CAP、DehazeNet、MSCNN均在Matlab2016a上运行, 使用CPU来处理图像. GCANet和FFANet采用的Pytorch-gpu框架, 而AOD-Net、GFN和本文算法均采用MatCaffe-gpu框架, 从表中可以看出采用GPU加速的算法在图像处理耗时上要明显低于采用CPU进行图像处理的算法, 其中AOD-Net的去雾速度最快, 而本文所提去雾算法的处理速度仅次于AOD-Net, 处理640×480分辨率大小的航拍视频的帧率可达到35.71 FPS, 基本能够满足该分辨率下的航拍图像实时处理.

表 5  去雾耗时对比(s)
Table 5  Comparison of the defogging time-cost (s)
ModelAerial image size
640×4801280×720
DCP[6]5.995415.3855
BCCR[7]1.77315.1932
CAP[8]1.19214.4937
DehazeNet[11]1.81335.5399
MSCNN[12]1.59618.1504
AOD-Net[13]0.00570.0423
GFN[14]0.03790.2158
GCANet[15]0.09530.4964
FFANet[16]0.39322.7613
Proposed0.02790.2084

此外, 由于无人机能够携带的硬件设备有限, 因此需要轻量级的模型, 在考虑到后续图像还需要经过目标检测模型的处理, 因此本文的模型需要预留较多的内存给其余算法模型. 表6展示了每种算法的参数量以及模型大小. 从中可以看出本文模型的参数量在多尺度结构的影响下相较于AODNet有较大的上升, 这也使得本文模型体积相较于AOD-Net更大, 达到了286.5 KB, 参数量和模型大小分别相较于AOD-Net增加了10.9倍和31.2倍, 但相较于其它对比模型, 本文模型依旧较好地控制在了1 MB以下, 综合去雾性能, 去雾速度及模型大小, 本文模型依旧是较理想的无人机图像去雾算法.

表 6  参数量与模型大小比较
Table 6  Comparison of the parameters and model size
ModelParaSizePlatform
DCP[6]Matlab
BCCR[7]Matlab
CAP[8]Matlab
DehazeNet[11]8240Matlab
MSCNN[12]8014Matlab
AOD-Net[13]18338.9 KBPytorch
GFN[14]5144151.99 MBCaffe
GCANet[15]165227384.6 MBPytorch
FFANet[16]445591357.85 MBPytorch
Proposed21813286.5 KBCaffe

本文还测试了所提算法对目标检测算法的辅助效果. 为了体现所提去雾算法性能的优秀, 本文用目标检测算法分别对有雾图像中的车辆和去雾后图像中的车辆进检测, 目标检测算法使用的是YOLO算法[38], 视频来源于大疆Mini2拍摄的雾天道路情况, 我们从15 s的视频中随机抽取了50帧图像进行车辆检测测试.

车辆检测的主观视觉效果如图15所示. 从图15中可以看出, 在未被去雾算法去雾之前, 图像中能被YOLO算法检测出来的车辆数量有限, 并且检测的置信度数值较低, 如图15(a)所示. DCP、CAP、AOD-Net以及FFANet去雾后的图像中能被YOLO算法较为准确地确定6辆车, 但DCP、CAP以及FFANet去雾后的图像中容易出现误检测的现象. BCCR、DehazeNet与本文去雾算法效果较为理想, YOLO算法能够准确地框出7辆车, MSCNN、GFN以及GCANet效果较差, 能被确定的车辆数均低于5辆.

图 15  航拍去雾图像中车辆检测结果示例 ((a) 原图; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN;(g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) 本文算法)
Fig. 15  Example of aerial image dehazing in vehicle detection ((a) Original; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN; (g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) Proposed algorithm)

表7展示了50帧图片中框选出车辆的置信度的平均数值, 并标记出了表内效果最好的前三个数值, 从表中的客观数值指标中能够看出本文所提去雾算法去雾后图像中被检测出的目标车的置信度数值最高, 该值相较于去雾前图像提升了22.31%, 此外图中被检测出的车辆数辆仅次于BCCR, 综合检测度可以看出, 本文提出的算法配合YOLO检测算法能够有效检测无人机雾天图像中拍摄的车辆, 具有一定的应用价值.

表 7  车辆检测的置信度数值, 标出三个最优的结果: (1) 最好的结果; (2) 次好的结果; (3) 第三好的结果
Table 7  Confidence value of vehicle detection, marking the three best results: (1) The best result; (2) The second-best result; (3) The third-best result
Dehazing modelDetection confidence before dehazingDetection confidence after dehazingThe number of identified carDetection confidence improvement
Original0.68373.74
DCP[6]0.79175.4215.80%
BCCR[7]0.8233 (2)7.84 (1)20.42% (2)
CAP[8]0.64676.26−5.41%
DehazeNet[11]0.8033 (3)7.32 (3)17.49% (3)
MSCNN[12]0.78354.3914.60%
AOD-Net[13]0.64715.53−5.35%
GFN[14]0.72275.955.70%
GCANet[15]0.79804.2516.72%
FFANet[16]0.75395.5010.27%
Proposed0.8362 (1)7.48 (2)22.31% (1)

为了体现本文算法的稳健性与鲁棒性,所提算法除了在第3.2节与第3.3节中对有雾航拍图像进行测试, 还对20张随机拍摄的无雾图片补充了测试实验, 图16展示了各算法在清晰无雾图像上的去雾效果对比, 表8展示了各算法处理的无雾图像与原图之间的PSNR与SSIM值, 其中最优值用粗体加下划线标出, 次优值用粗体标出. 从表8可以看出, 本文算法对无雾图像的处理效果较为理想, 而从图16中能看出, 本文算法对无雾图像处理后依旧在某些区域出现了轻微的过度去雾现象, 这种现象相较于其它对比算法要更加轻微. 具体表现见图16(k)路面颜色, 部分路面的颜色相较于原图的路面颜色要深一些, 这说明了本文会把灰色路面上磨砂区域的颜色错误判断为雾气进行过度去雾. 结合有雾图像与无雾图像的处理结果, 可以看出虽然本文模型仅采用了合成雾图进行训练, 但却够在一定程度上区分有雾与无雾图像, 对有雾图像能进行有效去雾, 而对输入的自然清晰图像的去雾负面影响较小, 这也体现了本文改进的算法具有一定的鲁棒性.

图 16  清晰图像上的去雾效果对比( (a) 原图; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN; (g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) 本文算法)
Fig. 16  Comparison of dehazing effects on clear images ((a) Original; (b) DCP; (c) BCCR; (d) CAP; (e) DehazeNet; (f) MSCNN; (g) AOD-Net; (h) GFN; (i) GCANet; (j) FFANet; (k) Proposed algorithm)

表 8  清晰航拍图像上的客观数值评价
Table 8  Objective numerical evaluation on the clear images of aerial photography
ModelClear images
PSNRSSIM
DCP[6]23.37310.8194
BCCR[7]18.32050.7397
CAP[8]21.42640.7468
DehazeNet[11]23.23280.8664
MSCNN[12]26.11350.8829
AOD-Net[13]22.43630.8405
GFN[14]26.95930.8869
GCANet[15]26.40190.8497
FFANet[16]29.33780.9299
Proposed28.05440.9091

本文所提算法虽然在薄雾图像与无雾图像上拥有较好的处理效果, 但是在某些场景下效果较差, 其一是在浓雾情况下, 本文的算法较难消除浓雾带来的影响, 无法恢复因浓雾遮挡的图像细节, 例如图17(a)内大面积的浓雾, 另外这种大面积且分布极其不均匀的雾气会使本文算法在雾气较薄的区域进行过度去雾, 这会导致出现如图17(a)内出现对比度升高而变暗的现象, 原因可能是因为λ2的数值不合适, 使训练出的模型不能适配这种雾气浓度分布极其不均的图像. 其二是本文算法在处理强光源区域时会把强光当成浓雾进行处理, 这会导致算法在去雾时出现一定程度的失真现象, 并且色彩保真度也较低, 例如图8(l)第四列图像、图17(b)图17(c)部分高曝光区域周围的天空出现了一定程度的失真, 并且从表2的PSNR以及表3的RI定量指标可以看出, 本文算法去雾后图像的色彩保真程度相较于对比算法并不算优秀, 综合第3.2节, 第3.3节, 第3.7节以及第3.8节的实验及结论, 可以判断本文模型能够胜任的环境为薄雾、无雾环境. 目前还无法胜任的复杂环境为极低能见度的浓雾, 并且抑制强光的能力较弱, 未来需要考虑设计更优质的损失函数或改进模型以及在训练数据集中加入复杂环境的图像来提升算法适应性与泛化性.

图 17  去雾失败时的示例图
Fig. 17  The example images of failure in defogging

针对航拍图像易受雾气干扰、AOD-Net对图像细节恢复程度较差以及图像偏暗的问题, 本文提出了一种基于改进AOD-Net的航拍图像去雾算法, 并与DCP算法、BCCR算法、CAP算法、DehazeNet算法、MSCNN算法、AOD-Net算法、GFN算法、GCANet算法以及FFANet算法进行了对比. 本文对AOD-Net的网络结构、损失函数以及训练方式进行了改良, 实验结果表明, 本文算法虽然在去雾速度上相较于AOD-Net有所下降, 但去雾图的对比度、色彩饱和度、色调恢复程度以及图像明暗度相较于AOD-Net均有较大改善. 此外, 本文所提算法去雾后的图像的多项评价指标数值相较于AOD-Net均有明显的提升. 需要说明的是, 本文算法在浓雾图像和强光源图像上的表现不太理想, 因此后续需要考虑增加此强光以及浓雾的训练数据, 同时考虑设计自适应对比度拉伸方法来减少因过度去雾导致图像过暗的现象. 最后, 综合主客观效果、算法耗时以及雾天航拍图像中目标检测的效果, 本文算法是一种较为优秀的航拍图像去雾算法.


关键字:优秀论文

网络客服QQ: 沈编辑

投诉建议:0373-5939925    投诉建议QQ:

招聘合作:2851259250@qq.com (如您是期刊主编、文章高手,可通过邮件合作)

地址:河南省新乡市金穗大道东段266号中州期刊联盟 ICP备案号:豫ICP备2020036848

【免责声明】:中州期刊联盟所提供的信息资源如有侵权、违规,请及时告知。

版权所有:中州期刊联盟(新乡市博翰文化传媒有限公司)

关注”中州期刊联盟”公众号
了解论文写作全系列课程

核心期刊为何难发?

论文发表总嫌贵?

职院单位发核心?

扫描关注公众号

论文发表不再有疑惑

论文写作全系列课程

扫码了解更多

轻松写核心期刊论文

在线留言