一种基于双路残差卷积神经网络的图像去雾方法与流程

文档序号:23965799发布日期:2021-02-18 21:21阅读:63来源:国知局
一种基于双路残差卷积神经网络的图像去雾方法与流程

[0001]
本发明涉及图像处理技术与深度学习技术领域,尤其涉及一种基于双路残差卷积神经网络的图像去雾方法。


背景技术:

[0002]
雾霾是一种常见的大气现象。雾在空气的相对湿度达到饱和时产生,此时空气中的一些水汽会凝结成小水滴。霾由气溶胶颗粒组成,这是一种悬浮在空气中的灰尘颗粒。雾和霾有着相同的起因,当湿度足够时霾也可以转化成雾。这种常见的天气状况,是导致图像质量降低的重要原因之一。
[0003]
很多机器视觉系统的稳定性依赖输入图像的质量。在监控、识别、自动驾驶等应用中,雾霾则会降低输入图像的质量,从而导致更严重的系统判断或决策错误。大气中的雾霾颗粒对光线的吸收和散射导致了图像的低分辨率、低对比度和颜色失真,图像质量的降低增加了监控分析和目标识别的难度。在道路监控中,雾霾会影响到车辆和行人的准确识别。在自动驾驶中,捕捉到的图像质量降低,可能导致系统作出错误的判断,从而引发安全事故。
[0004]
图像去雾可以分为图像增强的方法和图像复原的方法。图像增强从图像处理的角度出发,通过增强图像的对比度和饱和度等方式来改善图像的视觉效果,这种方法中比较主流的有直方图均衡法、retinex算法、基于小波变换的方法等。
[0005]
图像复原的方法将雾霾看做是加在原图上的一种噪声,通过建立物理模型恢复出原始图像,由于其更具有理论支撑,更加注重雾霾对图像带来的影响及物理规律,在近年来的研究中获得了更广泛的关注。图像复原的方法又可以分为基于额外信息的方法、基于先验条件的方法,以及基于深度学习的方法。基于额外信息的方法无法仅通过单幅图像完成去雾,需要借助额外的场景图像信息、深度信息或三维建模信息等。基于先验的方法采用人工提取的先验特征作为前提,在此基础上进行图像去雾,例如,he等人
[1]
提出了暗通道先验,该先验假设无雾图像中(除了天空和亮度很大的区域以外),总有某些像素点的一个颜色通道的像素值接近于0,并结合大气散射模型,利用已知的有雾图可以反推出图像传输率,从而可以得到无雾图像。
[0006]
基于先验的方法尽管易于实现,在一些条件下也有不错的效果,但是其基于的假设未经证明,存在一定的不可靠性。近年来,基于深度学习的方法由于其更稳定的效果、更广泛的适用性越来越被重视。基于深度学习的方法能够直接从数据中学习到有雾图和无雾图之间的关系,而不需要人为的干预。例如,cai等人
[2]
提出的dehazenet是一个基于图像传输率的模型,它能够直接训练出有雾霾图像和其对应的传输率之间的映射关系,进而通过大气散射模型恢复出无雾图。ren等人
[3]
提出了一种多尺度的卷积神经网络mscnn,它先生成一个粗尺度的传输率,然后逐渐细化它,最后通过细化的传输率恢复无雾图像。
[0007]
在现有技术中,图像增强的方法通常存在颜色失真、细节丢失等问题;基于物理模型的方法尽管在去雾上能取得更好的效果,但是物理模型是一个欠定方程,准确地恢复出
无雾图像具有一定的难点,现有技术通常是通过估计图像传输率和全局大气光等中间参数间接地实现去雾,恢复无雾图时误差会被放大,从而影响去雾图的质量。因此,设计一种能够直接学习有雾图和无雾图之间变换关系的方法,实现对不同场景不同尺寸图像的去雾,具有更高的实用价值。


技术实现要素:

[0008]
本发明提供了一种基于双路残差卷积神经网络的图像去雾方法,本发明利用深度神经网络进行图像去雾,去雾神经网络包含特征预提取模块、特征转换模块和图像恢复模块;采用l1范数损失函数、结构相似性损失函数、图像梯度损失函数和感知损失函数的线性组合训练去雾神经网络。该方法不需要复杂的假设和先验,可以直接从单幅有雾图像恢复出无雾图像,详见下文描述:
[0009]
为了解决现有技术,本发明提供一种基于双路残差卷积神经网络的图像去雾方法,包括如下步骤:
[0010]
101:基于大气散射模型使用已知景深、随机选取全局大气光和大气散射系数对采集无雾图像和深度信息进行处理建立包含成对有雾和无雾图像的训练图像集;
[0011]
102:构建去雾神经网络,网络结构包含特征预提取模块、特征转换模块和图像恢复模块,
[0012]
103:采用l1范数损失函数、结构相似性(ssim)损失函数、图像梯度损失函数和感知损失函数的线性组合训练去雾神经网络;
[0013]
104:将单幅有雾图像训练好的去雾神经网络,得到去雾图像。
[0014]
进一步,所述去雾网络采用如下步骤对训练图像集中有雾图像特征处理步骤:
[0015]
所述特征预提取模块通过多个卷积层对训练图像集中有雾图像特征进行提取获得第一阶段图像特征;
[0016]
所述特征转换模块采用多个级联的双路残差卷积单元对第一层雾图像特征进行处理获得第二阶段图像特征;
[0017]
所述图像恢复模块利用多个卷积层和通道注意力层将第二阶段图像特征进行转化获得无雾图像特征图像输出。
[0018]
进一步,所述特征预提取模块由若干卷积层和下采样层组成;
[0019]
所述特征预提取模块提取的中间特征分为两个尺度,用于与双路残差卷积单元相连;
[0020]
所述特征转换模块模块由多个双路残差卷积单元级联而成;
[0021]
所述图像恢复模块由上采样层、通道注意力层和卷积层组成,使用tanh作为最后一层的激活函数,生成去雾后的图像;其中:特征转换模块中的双路残差卷积单元通过对有雾图像特征的反复变换,获取不同的感受野来提取与雾有关的特征;
[0022]
进一步,所述多个级联的双路残差卷积单元中的每个双路残差卷积单元由上采样层,g模块、通道注意力层、下采样层、h模块组成;所述g模块和h模块的结构相同,所述g模块和h模块位于双路残差卷积单元内的不同位置,其中:g模块与上一个双路残差卷积单元中的g模块输出结果相加,h模块与上一个双路残差卷积单元中的h模块输出结果相加
[0023]
进一步,所述双路残差卷积单元中的g模块和h模块对第一阶段图像特征处理步
骤:
[0024]
所述g模块和h模块将所述输入图像特征x送入卷积核分别为3
×
3和5
×
5的两个卷积层,将两个卷积层分别记为和两个卷积层输出的结果相加得到中间特征m,即:
[0025][0026]
中间特征m再被输入至另外两个卷积核分别为3
×
3和5
×
5的卷积层,将两个卷积层分别记为和
[0027]
将两个卷积层的输出与m和x相加得到模块的输出图像特征y,即:
[0028]
y=c3×3(m)+c5×5(m)+m+x
[0029]
由g模块或h模块输出第二层雾图像特征y之后被送入下一个双路残差卷积单元中相对应的g模块或h模块作为输入;其中:不同的双路残差卷积单元对应不同的输入特征x和输出特征y;特别地,第一个双路残差卷积单元的输入x为特征预提取模块输出的第一阶段特征,最后,一个双路残差卷积单元的输出为整个特征转换模块输出的第二阶段特征。
[0030]
进一步,所述图像恢复模块由卷积层和通道注意力层组成,使用tanh作为最后一层的激活函数,生成去雾后的图像,其中注意力层对第二阶段图像特征处理过程为:
[0031]
输入第二层雾图像特征连续通过两层卷积核为1
×
1的卷积层和一个sigmoid函数,两层卷积的卷积核的个数分别为c/k和c;
[0032]
将后一个卷积层输出的特征图输入至sigmoid函数,输出c个通道的权重系数;
[0033]
再将输入特征图的每个通道与对应的权重系数相乘,相乘之后的结果输入至与该注意力层相连的下一个卷积层。
[0034]
本发明提供的技术方案的有益效果是:
[0035]
1、本发明不需要任何人工提取的先验信息,能够通过神经网络直接学习有雾图和无雾图的变换关系,实现较为真实的图像去雾;
[0036]
2、本发明训练好以后,只需要单幅有雾图即可得到无雾图,不需要额外信息和;
[0037]
3、本发明的去雾效果较好,对不同尺寸和场景的图像都有良好的效果。
附图说明
[0038]
图1为一种基于双路残差卷积神经网络的图像去雾方法的流程图;
[0039]
图2为去雾神经网络整体结构示意图;
[0040]
图3为双路残差卷积单元中g模块和h模块的结构示意图;
[0041]
图4为实验结果中一幅室外场景有雾图及去雾图;
[0042]
图5为实验结果中另一室外场景有雾图及去雾图;
[0043]
图6为实验结果中另一室外场景有雾图及去雾图。
具体实施方式
[0044]
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
[0045]
实施例
[0046]
为了实现逼真的图像去雾,本发明实施例提出了基于双路残差卷积神经网络的图像去雾方法,参见图1,详见下文描述:
[0047]
101:采集无雾图像和深度信息,基于大气散射模型,使用已知景深,随机选取全局大气光和大气散射系数,由无雾图生成有雾图,建立包含成对有雾和无雾图像的训练图像集;
[0048]
102:构建去雾神经网络,网络结构包含特征预提取模块、特征转换模块和图像恢复模块,其中特征转换模块中的双路残差卷积单元通过对图像特征的反复变换,获取不同的感受野来提取与雾有关的特征;
[0049]
103:采用l1范数损失函数、结构相似性(ssim)损失函数、图像梯度损失函数和感知损失函数的线性组合训练去雾神经网络;
[0050]
104:将单幅有雾图像训练好的去雾神经网络,得到去雾图像。
[0051]
其中,步骤101中的建立训练集的具体步骤为:
[0052]
1)基于大气散射模型,即公式(1),使用已知的景深信息d(x),随机选取全局大气光a和大气散射系数β,由无雾图j(x)得到有雾图i(x);
[0053]
i(x)=j(x)e-βd(x)
+a(1-e-βd(x)
)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0054]
式中,x为图像中的像素点的位置,全局大气光a的取值为[0.7,1.0]之间的随机值,大气散射系数β为[0.6,1.8]之间的随机值,每张无雾图分别取随机的a和β生成10张有雾图;
[0055]
2)将无雾图j(x)和有雾图i(x)组成训练集;
[0056]
3)将训练集的图片大小全部缩放到n
×
n,训练集中的有雾图被输入至去雾神经网络;一般地,取n=256。
[0057]
其中,步骤102中构建去雾神经网络的具体步骤为:
[0058]
1)去雾神经网络结构包括特征预提取模块、特征转换模块和图像恢复模块。去雾神经网络的结构如图2所示,每个单元下方的数字k表示该单元输出特征图的尺寸为k
×
k;除了输入图像和输出图像为3通道外,神经网络内其他层输出的特征图均为64通道。
[0059]
2)特征预提取模块包含3个级联的卷积层,特征预提取模块的输出作为特征转换模块的输入;
[0060]
3)特征转换模块由n个双路残差卷积单元级联而成,本发明对n的取值不做限制。在本实施例中取n=3,图2中仅画出一个双路残差卷积单元的示意图;
[0061]
每个双路残差卷积单元由上采样层,g模块、通道注意力层、下采样层、h模块组成;g模块和h模块的结构相同,位于双路残差卷积单元内的不同位置,其中g模块与上一个双路残差卷积单元中的g模块输出结果相加,h模块与上一个双路残差卷积单元中的h模块输出结果相加;其中第一个双路残差卷积单元中的g模块和h模块与特征预提取模块中第二层和第三层卷积层的输出相加;如图2所示。
[0062]
4)去雾神经网络中使用的双路残差卷积单元结构均相同,如图2虚线框内部分所示。下面以任一双路残差卷积单元为例说明对输入特征图的处理流程:
[0063]
为不失一般性,以位于模块中的任一双路残差卷积单元为例,将输入特征图尺寸设为特征图记为首先使用pixelshuffle[5]的上采样方式将特征图f的
尺寸变成上采样的结果记为本发明对上采样的方式不做限制。特征图f
up
经过g模块的卷积处理后,与上一个双路残差卷积单元中g模块的输出结果相加,相加的特征图经过通道注意力层后做下采样层,本实例采用squeeze-and-excitation通道注意力层[6]和最近邻下采样方法。本发明通道对注意力层和下采样方式不做限制。下采样后的特征图输出至h模块,与上一个双路残差卷积单元h模块的输出结果相加,得到下一个双路残差卷积单元的输入。最后一个双路残差卷积单元的输出被送至图像恢复模块作为输入。
[0064]
网络中g模块和h模块结构相同,如图3所示。两种模块对输入特征的处理方法也相同,具体如下。为不失一般性,将g模块或h模块的输入特征图记为x,将x送入卷积核分别为3
×
3和5
×
5的两个卷积层,将两个卷积层分别记为和两个卷积层输出的结果相加得到中间特征m,即:
[0065][0066]
中间特征m再被输入至另外两个卷积核分别为3
×
3和5
×
5的卷积层,将两个卷积层分别记为和最后,将两个卷积层的输出与m和x相加得到模块的输出特征图y,即:
[0067]
y=c3×3(m)+c5×5(m)+m+x(3)
[0068]
由g模块或h模块输出的y之后被送入下一个双路残差卷积单元中相对应的g模块或h模块作为输入。
[0069]
5)图像恢复模块用于生成去雾图像,由3层卷积层和通道注意力层组成。图像恢复模块以特征转换模块输出的尺寸为的特征图作为输入。先用两层卷积层和pixelshuffle上采样将输入特征图映射成成尺寸为n
×
n的特征图,其中上采样操作在每层卷积运算之后进行,本发明对上采样的方式不做限制。本实例中的两个卷积层采用大小为3
×
3的卷积核。第二层卷积层的输出送至通道注意力层。通道注意力层首先利用两层卷积核为1
×
1,卷积核个数为16和64的卷积层和一个sigmoid函数将输入特征图映射为64个权重值。之后用每个权重值乘以尺寸为n
×
n的特征图对应的通道内的特征。相乘之后的结果输入至最后一个卷积层,该卷积层采用尺寸为7
×
7的卷积核,其输出即为去雾图像。
[0070]
整个网络除最后一层的激活函数使用tanh函数外,其余激活函数均为relu函数。
[0071]
其中,步骤103中构建去雾神经网络的损失函数的具体步骤为:
[0072]
1)去雾神经网络的损失函数分别采用l1范数损失函数、结构相似性(ssim)损失函数、图像梯度损失函数和感知损失函数,具体如下所述;
[0073]
2)l1范数损失函数如式(5)所示:
[0074]
l1=||j-d(i)||1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0075]
式中,j为无雾图像,d(i)为去雾图像。
[0076]
3)结构相似性(ssim)损失函数如式(6)所示:
[0077]
[0078]
式中,μ
j
和μ
d(i)
分别表示无雾图像和去雾图像在窗口内的均值,σ
j
和σ
d(i)
分别代表无雾图像和去雾图像在窗口内的标准差,σ
jd(i)
代表无雾图像和去雾图像在窗口内的协方差,窗口大小为11
×
11。c1、c2是常数,在本实施例中取c1=10-4
,c2=9
×
10-4
,用来避免出现分母为0的情况。
[0079]
4)图像梯度损失函数如式(7)所示:
[0080][0081]
式中,表示在水平方向上取相邻像素的差值,表示在垂直方向上取相邻像素的差值。
[0082]
5)感知损失函数
[4]
如式(8)所示:
[0083][0084]
式中,φ(
·
)指输入特征图经过vgg16网络的relu1_2和relu2_2层的输出,i,j和
k
分别为特征图的宽、高和通道数的序号,w,h和c分别为特征图的宽、高和通道数。
[0085]
6)训练去雾神经网络的总体损失函数为上述四种损失函数的线性组合,如式(9)所示:
[0086]
l
total
=αl1+βl
ssim
+λl
grad
+δl
p
ꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0087]
式中,α、β、λ和δ分别为l1、l
ssim
、l
grad
和l
p
的权重。
[0088]
在本实施例中取α=0.75,β=1.1,λ=5.0,δ=0.2。
[0089]
其中,步骤104的具体步骤为:使用训练好的模型参数,将单幅有雾图作为去雾神经网络的输入,即可得到去雾图。
[0090]
图4-图6给出了由本算法在真实场景下的去雾结果。由图可见,本算法能够有效改善图像质量,去雾图像的能见度和对比度较原始图像有显著提升,去雾后图像细节能够得到有效恢复。
[0091]
参考文献
[0092]
[1]he k,sun j,tang x.:single image haze removal using dark channel prior[j].ieee trans on pattern analysis and machine intelligence,2011,33(12):2341-2353.
[0093]
[2]cai b,xu x,jia k,et al.:dehazenet:an end-to-end system for single image haze removal[j].ieee transactions on image processing,2016,25(11):5187-5198.
[0094]
[3]ren w,liu s,zhang h,et al.:single image dehazing via multi-scale convolutional neural networks[c].european conference on computer vision,amsterdam,netherland,2016:154-169.
[0095]
[4]justin johnson,alexandrealahi,li fei-fei.perceptual losses for real-time style transfer and super-resolution[c].european conference on computer vision,2016:694-711
[0096]
[5]shi w,caballero j,huszar,f,et al.real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network
[c].ieee international conference on computer vision and pattern recognition,2016:1874-1883.
[0097]
[6]hu j,shen l,albanie s,et al.squeeze-and-excitation networks[c].ieee conference on computer vision and pattern recognition.2018:7132

7141.
[0098]
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0099]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1