一种基于卷积神经网络的多光谱遥感图像去雾方法与流程

文档序号:11515742阅读:553来源:国知局
一种基于卷积神经网络的多光谱遥感图像去雾方法与流程

(一)技术领域:

本发明涉及一种基于卷积神经网络的多光谱遥感图像去雾方法,属于遥感图像处理的技术领域。

(二)

背景技术:

多光谱遥感图像不仅可以提供丰富的地物信息,还具备光谱特性,在环境、监测、军事、测绘等领域发挥十分重要的作用。然而,多光谱遥感图像会经常受到雾的干扰,造成图像中地物模糊不清、感兴趣区域信息丢失,这不仅严重影响人眼对图像数据的判读,同时也影响了遥感数据的自动解译。

对遥感图像进行去雾研究可以提高图像的质量,从而为后续的遥感图像处理和应用提供保障。许多遥感图像的去雾算法已经被提出,这些方法主要针对googleearth图像或者多光谱图像中的可见光波段,而对于多光谱图像中更多波段的去雾研究还不深入。本发明针对多光谱遥感图像中存在的雾遮挡问题,提出了一种基于卷积神经网络的去雾方法。该方法将图像去雾看作是回归问题,设计端到端的卷积神经网络来学习有雾图像到清晰图像之间的映射关系,从而在各个波段上都获得了满意的去雾效果,同时保持了地物目标色彩和结构的一致性。

(三)

技术实现要素:

1、目的:本发明的目的在于提供一种基于卷积神经网络的多光谱遥感图像去雾方法,用来实现多光谱图像的雾去除,提升图像质量。

2、技术方案:本发明通过以下技术方案实现。

本发明首先对去雾问题进行建模,并设计一个端到端的卷积神经网络来回归这个模型。然后,通过仿真方式获得足够的带有真值标签的雾图像样本来训练卷积神经网络,进行有雾图像与真值图像之间回归模型的学习。该学习好的模型即可用来对实际的多光谱图像进行去雾。该发明的具体步骤如下:

步骤1:多光谱图像去雾波段选择

本发明针对landset8陆地成像仪(oli)采集的多光谱图像进行去雾。landset8oli图像有9个波段,其中波段6、7、9三个波段的波长是大于1的,可以穿透水粒子,因此这三个波段不受雾的影响。而剩下的6个波段(波段1至5、以及波段8)分别是海岸、可见光(包括蓝、绿、红三个波段)、近红外以及全色波段,它们的波长是小于1的,会受到雾的影响,因此我们的算法针对这6个受雾影响的波段进行去雾。

步骤2:建立去雾模型

雾天成像模型可描述为:

i(x)=j(x)t(x)+a(1-t(x))(i)

其中,i(x)为有雾图像,j(x)为对应的清晰图像,a是全局大气光,t(x)为透射图,x表示像素。

去雾问题即是要从有雾图像i(x)中恢复出清晰图像j(x)。根据雾天成像模型,去雾图像和原始带雾图像之间为线性关系。令h代表有雾图像,g表示被恢复的清晰图像,函数f代表有雾图像与对应清晰图像之间的映射关系,则去雾问题可以建模为以下形式(即去雾模型):

g=f(h)(2)

根据公式(1),一旦获得映射关系f,则给定一个有雾图像h,通过函数关系映射便可得到清晰图像,从而实现图像去雾。

本发明采用一个残差卷积网络来拟合有雾图像到清晰图像之间的映射关系f(h)。具有残差结构的卷积神经网络,其输入不仅传递给卷积层,并且在网络末端与卷积层的输出直接相加,形成最终的网络输出。残差网络中卷积层学习到的模型可描述为:

h(h)=f(h)-h(3)

在残差网络中,大部分信息是由网络输入直接提供的,网络学习过程主要是对输入与输出之间的残差部分进行学习。而在去雾问题上,清晰图像和其对应的有雾图像具有相似的纹理和颜色,可以看作是去雾前图像的一个近似,这一点恰好与残差网络的特点相对应。因此,我们用残差卷积网络来回归学习清晰图像,即:网络中的权重层只需要学习有雾图像和清晰图像之间不同的部分(雾成分),相同的地物纹理和颜色信息可以由输入图像直接提供。通过这一有参考的网络结构,将有雾图像到清晰图像之间复杂的映射转化为有雾图像到雾成分之间简单的映射,大大减小了网络学习的难度。

由于雾的浓度和分布是多样的,使用具有一个残差结构的网络模型进行雾成分的学习是很困难的。因此,我们把去雾模型(2)进一步分解为以下多个子任务(即多步去雾模型):

g0=f0(h),g1=f1(g0),……,g=fn(gn-1)(4)

其中,每个fi都是相对于f的弱映射。根据该多步去雾模型,输入图像h通过一系列的fi被逐步去雾,最终恢复为清晰图像。相应的,对于每一个子映射fi,采用具有残差结构的浅层卷积网络来拟合,将这些残差块级联起来组成一个深度卷积网络,实现雾的逐步去除。

步骤3:设计卷积神经网络

根据步骤2中的多步去雾模型(4),我们设计的网络结构为:

conv1(3×3×16)→

resblock1(3×3×16)→…→resblockn(3×3×16)

→convm(3×3×6)

其中,conv表示卷积层,resblock表示残差块。每个残差块为一个两层的残差卷积结构,即resblock(3×3×16)=[conv(3×3×16),conv(3×3×16)]。

网络的输入是6个波段的多光谱数据,输出是相应的清晰图像,整个网络是端到端的全卷积结构。根据雾天成像模型,清晰图像和有雾图像之间为线性关系,因此该网络中不包含任何非线性激活单元。考虑到图像每个像素点处的去雾只取决于局部信息,所有的卷积层均采用了3×3小卷积核。网络的第一层卷积核个数为16,实现图像数据的高维映射,使得后续的残差块可以在高维空间学习。网络的最后一层卷积核个数为6,将特征图映射到原始图像维度,实现清晰图像的输出。在第一层和最后一层之间有n个残差块resblock,一个残差块对应(4)中的一个弱映射fi,n个残差块的级联实现雾的逐步去除。

步骤4:训练卷积神经网络

基于学习的去雾方法,需要带标签的雾样本来进行训练。但对于遥感图像,有雾图像及其对应清晰图像(真值)是很难收集的。因此这类方法都是采用仿真的方式来获得足够多的带标签样本。已有的雾仿真方法都是假定雾是波长无关的,对各个波段产生相同浓度的雾。而实际上,雾是波长相关的。本发明仿真生成波长相关的雾作为训练样本来对网络进行训练。

1)训练样本生成

根据雾天成像模型(1)可知,给定一幅清晰图像j,通过调整全局大气光a和透射图t的值,代入到雾天成像模型中即可得到一幅有雾图像。由于多光谱图像各波段的透射图之间具有一定的相关性,为清晰的多光谱图像设置透射图时,不同波段的透射图之间需满足相应的关系。因此,我们先推导不同波段透射图之间的相关性,然后利用这个相关性来生成波长相关的带雾多光谱图像,即仿真得到有雾图像。

①推导不同波段透射图之间的关系

本发明针对landset8中6个受雾影响的波段去雾,我们先取波段1为基准波段,来推导其他5个波段与波段1之间的透射图相关性。

根据雾成像的物理模型,透射图t可描述为:

t(x)=e-β(x,λ)d(x)(5)

其中,d(x)表示真实场景中的物体到传感器之间的距离,遥感图像中,d(x)可看作是常量。β(x,λ)为衰减系数,反映了光被大气中的粒子散射的程度,与大气中的粒子和波长λ相关。具体地,根据rayleigh散射模型,衰减系数β可描述为:

其中,参数γ反映了大气中粒子的大小,在雾天情况下,γ的值在[0.5,1]之间。

为了推导不同波段透射图之间的关系,首先对透射图t的表达式两边取自然对数,可得:

lnt=-dβ(7)

由于d为固定的常量,因此波段1与其他波段之间关于lnt的比率为:

lnt1:lnti=β1:βi(8)

其中ti和βi分别是波段i的透射图和衰减系数。进一步变换以上公式可得:

最后,将rayleigh散射模型(6)代入公式(9),即可得到波段1与其他波段透射图之间的关系表达式:

其中,λi是第i个波段的波长,一般取波段的中间波长即可。γ为rayleigh散射模型中的参数,取值范围为[0.5,1],值越大,对应的雾越浓。从(10)可以看出,只要给出基准波段的透射图t1以及γ的值,其他5个波段的透射图即可通过(10)计算得到。

②雾合成

为了保证训练集样本的多样性,我们合成不同浓度的雾图像。

令γ的值分别取为0.5、0.7和1,t1的值在(0,1]范围内每隔0.1取值,共取值10次。针对每对(γ,t1),按照公式(10)计算其他5个波段的透射图,共可得到3×10=30组透射图模板(每组6个透射图)。

对于一幅清晰的多光谱图像(真值),设置全局大气光a的值为常量1,将每组透射图模板按照雾天成像模型(1)叠加到清晰图像的各个波段,即可合成带雾的多光谱图像。30组透射图模板共可产生30幅同一场景下不同浓度的带雾多光谱图像。该方法合成的雾保持了各个波段之间的波长相关性,所产生的有雾图像更接近于真实图像。

2)网络训练

在本步骤中,用仿真得到的有雾图像样本对网络进行训练,实现有雾图像到清晰图像之间映射关系的学习。

由于在本发明中,卷积神经网络被用来解决回归问题,网络采用欧式距离作为损失函数:

其中,n为图像个数,为网络的实际输出结果,gn为真值图像。本发明选择随机梯度下降法来优化该损失函数(11),用仿真得到的有雾图像对网络进行迭代学习,更新网络参数,当网络的损失值趋于稳定时,即可结束训练,此时保存的网络参数即为训练好的去雾网络模型。

步骤5:多光谱遥感图像去雾

实现一幅多光谱遥感图像去雾,只需将图像输入到步骤4训练好的去雾网络模型中,通过网络的前向传播,即可在网络的输出端得到被恢复的清晰图像。

本发明是针对landset8多光谱数据的处理,该方法同样适用于来自其他卫星传感器的多光谱数据。对于其他卫星传感器的多光谱数据,选择波长小于1的波段,按照步骤4生成波长相关的仿真雾来对网络进行训练,即可实现多光谱图像的有效去雾。

3、优点及功效

本发明提出了一个基于卷积神经网络的多光谱遥感图像去雾方法,通过一个卷积神经网络直接学习有雾图像到清晰图像之间的映射关系。卷积网络采用级联的残差结构,可对去雾模型进行有参考的学习,并实现逐步去雾。该方法不仅易于学习和训练,还可以通过加深网络层数实现更高精度的去雾结果。同时,所设计的网络是端到端的,整个去雾过程无需额外的处理,操作简单。

传统的遥感图像去雾方法大多针对可见光波段,本方法可以有效去除多个波段中的雾。在训练过程中,我们推导各波段之间透射图的相关性,合成了波长相关的雾样本,使得被训练的网络能够准确地去除各个波段的雾,并且保持了图像色彩、纹理的一致性,有效还原了遥感图像原本的地物信息。

本发明是针对landset8多光谱数据的处理,该方法同样适用于来自其他卫星传感器的多光谱数据。对于其他卫星传感器的多光谱数据,选择波长小于1的波段,按照步骤4生成波长相关的仿真雾来对网络进行训练,即可实现多光谱图像的有效去雾。

(四)附图说明

图1本发明所述图像去雾方法的流程图。

图2本发明所设计的卷积神经网络结构图。

图3landsat8oli遥感图像去雾结果。

图4高分一号遥感图像去雾结果。

(五)具体实施方式

为了更好地理解本发明的技术方案,以下结合附图对本发明的实施方式作进一步描述:

本发明的流程图如图1所示。计算机配置采用:intelcorei5-6600k处理器,nvidiageforcegtx1080图形处理器,主频3.5ghz,内存16gb,操作系统为ubuntu16.04。去雾方法的实现基于caffe工具包。本发明是一种基于卷积神经网络的多光谱图像去雾方法,具体包括以下步骤:

步骤1:多光谱图像去雾波段选择

本发明采用landsat8oli传感器采集的多光谱遥感图像数据。landsat8oli图像共包括9个波段,而其中的海岸波段、可见光波段(蓝波段、绿波段、红波段)、近红外波段、全色波段其波长小于1,容易受到雾的影响。因此,本发明针对以上6个容易受到雾影响的波段进行去雾。

步骤2:建立去雾模型

令h代表有雾图像,g表示恢复的清晰图像,函数f代表有雾图像与对应清晰图像之间的映射关系,则去雾问题被建模为以下形式(即去雾模型):

g=f(h)

根据上式,一旦获得该映射关系f,给定有雾图像h,通过函数关系映射便可得到清晰图像,从而实现图像去雾。

本发明采用一个残差卷积网络来拟合有雾图像到清晰图像之间的映射关系f(h)。在该结构中,网络的输入不仅传递给卷积层,并且在网络末端与卷积层的输出直接相加,形成最终的网络输出。残差网络中卷积层学习到的模型可描述为:

h(h)=f(h)-h

利用具有残差结构的网络学习去雾,网络中的权重层只需要学习有雾图像和清晰图像之间不同的部分h(h)(雾成分),相同的地物纹理和颜色信息可以由输入图像直接提供。通过这一有参考的网络结构,将有雾图像到清晰图像之间复杂的映射转化为有雾图像到雾成分之间简单的映射,大大减小了网络学习的难度。

由于雾的浓度和分布是多样的,使用具有一个残差结构的网络模型进行雾成分的学习是很困难的。因此,去雾模型被进一步分解为以下多个子任务:

g0=f0(h),g1=f1(g0),……,g=fn(gn-1)

其中,每个fi都是相对于f的弱映射。有雾图像h通过一系列的fi被逐步去雾,最终恢复为清晰图像。

步骤3:设计卷积神经网络

根据步骤2建立的去雾模型,设计如图2所示的级联残差卷积网络。

网络的输入是6个波段的多光谱数据,输出是相应的清晰图像,整个网络是端到端的全卷积结构,所有的卷积层均采用了3×3小卷积核。网络的第一层将特征空间映射到高维,输出16个特征图。在第一个卷积层之后为n个残差块,每个残差块是一个两层的残差卷积结构,分别学习去雾模型中的多个子映射。网络的最后一层将特征图映射到原始图像维度,输出6个波段的去雾结果。网络的深度由残差块的个数n决定。通常,网络越深,去雾的准确度越高,而模型的复杂度也越高。考虑到网络精度和时间复杂度两方面因素,本发明选取n=5作为最终的网络结构。

步骤4:训练卷积神经网络

1)训练样本生成

本方法采用仿真的方式获取有雾图像及其真值图像,以此构建训练数据集。具体操作包括以下步骤:

①获取清晰的多光谱图像。从提供免费landsat8oli数据的网站(http://ids.ceode.ac.cn/query.html)上下载多景多光谱遥感图像,保存到本地。对于每景图像,采用envi5.0软件将其打开,选取图像中大小为200×200的清晰区域,保存步骤1中确定的6个待去雾波段。通过该步骤操作,共可获得400幅清晰图像,每幅图像具有6个波段,图像大小为200×200。

②合成雾图像。根据雾天成像模型,给定一幅清晰图像,通过调整大气光a和透射图t的值,代入到雾天成像模型中即可得到有雾图像。由于多光谱图像各波段的透射图之间具有一定相关性,根据rayleigh散射模型,可推导得到波段1与其他波段透射图之间满足以下关系:

其中,λ为各个波段的中心波长。对于landsat8oli卫星采集的遥感图像,各波段的中心波长分别为:海岸波段0.448μm,蓝波段0.483μm,绿波段0563μm,红波段0.655μm,近红外波段0.865μm,全色波段0.590μm。可以看出,根据该关系表达式,只要给定波段1的透射图t1以及γ的值,其他5个波段的透射图即可通过该表达式计算得到。

为了合成不同浓度的雾图像,令γ的值分别取为0.5、0.7和1,t1的值在(0,1]范围内每隔0.1取值,共取值10次。针对每对(γ,t1),按照上式计算其他5个波段的透射图,共可得到3×10=30组透射图模板(每组有6个透射图,对应了6个波段)。对于一幅清晰的多光谱图像(真值),设置大气光a的值为常量1,将每组透射图模板按照雾成像模型叠加到清晰图像的各个波段,即可合成带雾的多光谱图像。30组透射图模板共可产生30幅同一场景下不同浓度的带雾多光谱图像。

对于收集的400幅清晰图像,可以产生400*30=12000个带标签的雾样本。这些样本包含了不同的地物场景,并均衡地涵盖了雾浓度的各种情况,保证了训练集中样本的多样性和均衡性。

2)网络训练

由于在本发明中,卷积神经网络被用来解决回归问题,网络采用欧式距离作为损失函数:

其中,n为图像个数,为网络的实际输出结果,gn为真值图像。通过最小化该损失函数,进行网络训练,学习去雾网络模型。

对于12000个仿真有雾图像,将其中的9000个样本作为训练集对网络进行训练,剩余的3000个样本作为验证集进行超参数的调整。为了防止过拟合,损失函数以二范数形式对参数进行正则化约束,正则化系数为0.0001。在开始训练之前,输入图像被归一化到[0,1]之间,卷积核的权重采用均值为0、方差为0.01的高斯函数进行初始化,偏置采用固定值0.01进行初始化。在进行模型优化时,采用随机梯度下降的方式更新网络参数,其中动量参数设为0.9。初始学习率为10-7,并且在损失值达到稳定时减小为原来的一半。整个训练过程在nvidiageforcegtx1080gpu上进行,训练共迭代170,000次。

步骤5:多光谱遥感图像去雾

本发明设计的多光谱遥感图像去雾方法是端到端的,一旦训练好网络模型,只需将待去雾的多光谱图像输入到网络中,通过网络的前向传播,即可在输出端得到被恢复的清晰图像。图3展示了一个多光谱遥感图像去雾实例,可以看到本发明的方法有效去除了各波段中的雾,真实还原了原始的地物信息。

本发明是针对landset8多光谱数据的处理,该方法同样适用于来自其他卫星传感器的多光谱数据。对于其他卫星传感器的多光谱数据,选择波长小于1的波段,按照步骤4生成波长相关的仿真雾来对网络进行训练,即可实现多光谱图像的有效去雾。

对不同卫星传感器的去雾,除了训练数据不同、去雾波段选取不同、卷积神经网络的输入输出通道数不同以外,其他基本一致。以下给出了高分一号卫星去雾的实施过程,对于其他卫星的去雾过程也是相同的道理,与landsat8、高分一号的过程一致。以下给出高分一号遥感图像去雾的具体实施例。

高分一号卫星是由我国长征二号丁运载火箭发射并正常运行,是高分辨对地观测系统的首发星。高分一号卫星的多光谱图相机采集的遥感图像共包含4个波段:蓝波段、绿波段、红波段、近红外波段,它们的波长均小于1μm,容易受到雾的影响。因此,高分图像的四个波段均需要去雾处理。

根据上述步骤2和步骤3所述内容构建去雾模型,设计卷积神经网络。对于高分图像,卷积神经网络的输入是4个波段的多光谱数据,输出是相应的清晰图像。整个网络是端到端的全卷积结构,所有的卷积层均采用了3×3小卷积核。网络的第一层将特征空间映射到高维,输出16个特征图。在第一个卷积层之后为5个残差块,每个残差块是一个两层的残差卷积结构,分别学习去雾模型中的多个子映射。网络的最后一层将特征图映射到原始图像维度,输出4个波段的去雾结果。

训练样本同样采用雾仿真的方式生成。

①获取清晰的高分一号遥感图像。从中国资源卫星应用中心网站(http://www.cresda.com/cn/)上下载多景遥感图像,保存到本地。对于每景图像,采用envi5.0软件将其打开,选取图像中大小为200×200的清晰区域,保存图像的所有波段。通过该步骤操作,共可获得400幅清晰图像,每幅图像具有4个波段,图像大小为200×200。

②合成雾图像。根据雾天成像模型,给定一幅清晰图像,通过调整大气光a和透射图t的值,代入到雾天成像模型中即可得到有雾图像。由于遥感图像各波段的透射图之间具有一定相关性,根据rayleigh散射模型,可推导得到波段1与其他波段透射图之间满足以下关系:

其中,λ为各个波段的中心波长。对于高分一号卫星采集的多光谱遥感图像,各波段的中心波长分别为:蓝波段0.485μm,绿波段0.555μm,红波段0.660μm,近红外波段0.830μm。可以看出,根据该表达式,只要给定波段1的透射图t1以及γ的值,其他3个波段的透射图即可通过该表达式计算得到。

为了合成不同浓度的雾图像,令γ的值分别取为0.5、0.7和1,t1的值在(0,1]范围内每隔0.1取值,共取值10次。针对每对(γ,t1),按照上式计算其他3个波段的透射图,共可得到3×10=30组透射图模板(每组有4个透射图,对应4个波段)。对于一幅清晰的高分一号图像(真值),设置大气光a的值为常量1,将每组透射图模板按照雾成像模型叠加到清晰图像的各个波段,即可合成带雾的多光谱图像。30组透射图模板共可产生30幅同一场景下不同浓度的带雾多光谱图像。

对于收集的400幅清晰图像,共可以产生400*30=12000个带标签的雾样本。这些样本包含了不同的地物场景,并均衡地涵盖了雾浓度的各种情况,保证了训练集中样本的多样性和均衡性。

采用合成的高分一号遥感图像数据集进行网络训练,得到相应的去雾网络模型。对于一幅有雾的遥感图像,将它输入到网络中,对网络进行前向传播,即可输出去雾后的结果。图4展示了高分一号图像去雾的结果。

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