一种基于深度学习的图像去雾算法的制作方法

文档序号:11865857阅读:来源:国知局

技术特征:

1.一种基于深度学习的图像去雾算法,其特征在于,包括以下步骤:

步骤1,建立样本图像集,包括训练样本集与测试样本集;

其中,对于训练样本集,采集雾气可能存在场景下的无雾图像,并对无雾图像进行人工雾化,得到人工有雾图像,最终与无雾图像构成训练样本集;

对于测试样本集,采用真实雾气场景图像;

步骤2,对训练样本集中有雾图像进行颜色空间变换,从RGB空间变换到HSL空间,分别获取图像的色度、饱和度和亮度信息特征分量,之后在原图像的RGB空间下获取局部低亮值与大气光值,并对所有数据做尺度缩放与归一化处理;

步骤3,通过训练样本集计算最优透视率,令其作为深度学习中深度生成对抗神经网络训练输入的判别分量,与另一个输入量构造透视率共同完成网络对抗式训练;

步骤4,基于训练样本集中得到的有雾图像RGB空间与HSL空间特征分量,以及局部低亮特征分量和判别透视率,采用深度学习算法中的深度生成对抗神经网络进行训练,得到有雾图像中的透视率,学习建立有雾图像与透视率间的映射网络;其中,深度生成对抗神经网络由深度判别神经网络与深度生成神经网络组成;

步骤5,采用上述深度生成神经网络对真实有雾图像进行去雾处理。

2.根据权利要求1所述的方法,其特征在于:步骤1中,选取雾气可能存在场景下的无雾图像作为初始训练样本集,运用修图软件得到初始训练样本的人工雾化图像,并把相同场景中有雾图像与无雾图像作为训练样本集,之后采集真实雾气场景中的有雾图像作为测试样本集。

3.根据权利要求1所述的方法,其特征在于:

步骤2进一步包括子步骤:

2.1 在训练图像集中,对人工雾化图像进行HSL颜色空间变换,最终得到RGB与HSL两种空间中的特征分量;

2.2 图像块的局部低亮值的计算过程为:

<mrow> <msub> <mi>J</mi> <mrow> <mi>l</mi> <mi>o</mi> <mi>w</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msup> <mi>I</mi> <mi>r</mi> </msup> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>,</mo> <msup> <mi>I</mi> <mi>g</mi> </msup> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>,</mo> <msup> <mi>I</mi> <mi>b</mi> </msup> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中,r,g,b分别为RGB空间的三通道,Ω(x0)表示以x0为中心的局部区域像素点集,Jlow(x)为局部区域低亮值;Ir(x)、Ig(x)、Ib(x)分别表示有雾图像RGB空间中三通道像素值;

2.3 对上述RGB与HSL空间特征分量,以及局部低亮特征分量进行尺度缩放,使其维数为256*256,并对各分量进行归一化处理,使各分量像素点值属于[0,1];

2.4 大气光值为:

Ac=min(max(Ic(x)),0.8) (2)

式中,c∈{r,g,b}为RGB空间中通道标号,Ic(x)表示有雾图像中c对应颜色通道下的像素值。

4.根据权利要求1所述的方法,其特征在于:步骤3中,所述判别透视率通过下式得到:

<mrow> <msubsup> <mi>t</mi> <mrow> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> </mrow> <mi>c</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>1</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msup> <mi>J</mi> <mi>c</mi> </msup> <mo>&gt;</mo> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>,</mo> <msup> <mi>J</mi> <mi>c</mi> </msup> <mo>=</mo> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>=</mo> <msup> <mi>A</mi> <mi>c</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>A</mi> <mi>c</mi> </msup> <mo>-</mo> <msup> <mi>I</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>A</mi> <mi>c</mi> </msup> <mo>-</mo> <msup> <mi>J</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msup> <mi>J</mi> <mi>c</mi> </msup> <mo>&le;</mo> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>&lt;</mo> <msup> <mi>A</mi> <mi>c</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msup> <mi>J</mi> <mi>c</mi> </msup> <mo>&NotEqual;</mo> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>=</mo> <msup> <mi>A</mi> <mi>c</mi> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,Jc(x)为无雾图像中c对应颜色通道下的像素值。

5.根据权利要求1所述的方法,其特征在于:

步骤4进一步包括子步骤:

4.1 构造深度判别神经网络,包括1个输入层、5个卷积层、4个批正则化层、1个全连接层和1个输出层,连接方式为:输入层→卷积层1→卷积层2→批正则化层1→卷积层3→批正则化层2→卷积层4→批正则化层3→卷积层5→批正则化层4→全连接层→输出层;

其中,输入层将构造透视率t(x)与判别透视率tdist(x)分别送入深度判别神经网络中,经过多层卷积处理后,得到表征输入信息属性的高阶特征,经全连接层处理后送至输出层,通过激活函数Sigmoid函数进行分类判别,其中Sigmoid函数为:

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

4.2 构造深度生成神经网络,包括1个输入层、2个卷积层、2个反卷积层、4个批正则化层与1个输出层,连接方式为:输入层→卷积层1→批正则化层1→卷积层2→批正则化层2→反卷积层1→批正则化层3→反卷积层2→批正则化层4→输出层,其中,输出层为批正则化层4进行池化后输出的池化层;

其中,输入层将RGB、HSL和局部低亮共7层特征分量一起送入深度生成神经网络中,经隐含层特征提取与映射还原,最终输出层输出构造透视率

4.3 在训练深度生成对抗神经网中,为保障分量间的相关性,加入先验约束模型,设定目标的代价函数:

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>G</mi> </munder> <munder> <mi>max</mi> <mi>G</mi> </munder> <mi>T</mi> <mrow> <mo>(</mo> <mi>G</mi> <mo>,</mo> <mi>D</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>&lsqb;</mo> <mi>log</mi> <mi> </mi> <mi>D</mi> <mrow> <mo>(</mo> <msubsup> <mi>t</mi> <mrow> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> </mrow> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>D</mi> <mo>(</mo> <mrow> <mi>G</mi> <mrow> <mo>(</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式中,m表示训练中最小批次的样本个数,为深度判别神经网络输出结果,表示第i个样本的判别透视率,G(z(i))为深度生成神经网络输出结果,z(i)表示深度生成神经网络中第i组输入样本特征;

在深度生成对抗神经网络训练中包括正向传播与反向传播两个过程,其中正向传播中采用分层贪心算法进行训练,将训练样本逐层抽象化,完成特征的提取过程;反向传播中采用随机梯度下降参数训练算法,利用标定信息进行有监督方式学习,对深度生成对抗神经网络进行自顶向底的参数调节。

6.根据权利要求5所述的方法,其特征在于:步骤4.3中,训练里,定义判别标签{0,1},即标定信息仅用0或1表示预定判别结果,其中1表示输入数据是判别透视率,0表示输入数据为构造透视率;

对于深度生成神经网络,初始化后,把RGB、HSL和局部低量7层特征分量送入深度生成神经网络中,输出构造透视率作为深度判别神经网络的输入量;

在深度生成神经网络训练中,把构造透视率的标定信息设为1,结合判别结果,利用SGD算法进行参数调整,其中深度生成神经网络中更新参数的梯度为:

<mrow> <mo>&dtri;</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>D</mi> <mo>(</mo> <mrow> <mi>G</mi> <mrow> <mo>(</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

对于深度判别神经网络,初始化后,分别把判别透视率与构造透视率输入深度判别神经网络中,并且判别透视率标定信息设为1,构造透视率标定信息设为0,结合判别结果,利用SGD算法进行参数调整;

其中深度判别神经网络中更新参数的梯度为:

<mrow> <mo>&dtri;</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>&lsqb;</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mi> </mi> <mi>D</mi> <mrow> <mo>(</mo> <msubsup> <mi>t</mi> <mrow> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> </mrow> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>D</mi> <mo>(</mo> <mrow> <mi>G</mi> <mrow> <mo>(</mo> <msup> <mi>z</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msup> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

通过深度判别神经网络与深度生成神经网络对构造透视率的标定信息进行0与1的不同标定,使得深度生成神经网络可以得到最优的透视率,深度判别神经网络对透视率进行准确分类,实现深度生成对抗神经网络的对抗式训练。

7.根据权利要求1所述的方法,其特征在于:步骤5中,从测试图像中得到HSL空间特征分量,并提取测试图像的局部低亮特征,之后把RGB、HSL与局部低亮特征分量送入上述训练的深度生成神经网络中,得到构造透视率按照下式进行去雾变换:

<mrow> <msup> <mover> <mi>J</mi> <mo>~</mo> </mover> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msup> <mover> <mi>t</mi> <mo>~</mo> </mover> <mi>c</mi> </msup> <mo>)</mo> </mrow> <msup> <mi>A</mi> <mi>c</mi> </msup> </mrow> <msup> <mover> <mi>t</mi> <mo>~</mo> </mover> <mi>c</mi> </msup> </mfrac> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msup> <mover> <mi>t</mi> <mo>~</mo> </mover> <mi>c</mi> </msup> <mo>&NotEqual;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mfrac> <mrow> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>-</mo> <mn>0.92</mn> <mo>&times;</mo> <msup> <mi>A</mi> <mi>c</mi> </msup> </mrow> <mn>0.08</mn> </mfrac> </mtd> <mtd> <mrow> <msup> <mover> <mi>t</mi> <mo>~</mo> </mover> <mi>c</mi> </msup> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式中,为通道标号为c对应去雾后图像,为c对应深度生成神经网络的输出的透视率。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1