一种基于全尺度特征融合的遥感图像云检测方法

文档序号:26231689发布日期:2021-08-10 16:32阅读:255来源:国知局

技术领域:

本发明涉及一种基于全尺度特征融合的遥感图像云检测方法,属于可见光遥感图像云检测技术领域。



背景技术:

遥感(remotesensing)是指一种远距离,非接触的获取观测信息的技术,通常利用传感器获取物体反射或辐射的电磁波。将传感器接收的电磁波信号转换为图像即为遥感图像。目前遥感图像在多个学科和行业中得到了广泛的应用,例如环境监测和保护,植被测绘和估算,地表水监测,城市发展变化,土地覆盖分类和军事情报获取等。但传感器在拍摄地面图像时往往收到云层干扰,云层的存在阻碍了传感器获取清晰的地物信息,这降低了图像的可用性,给后续的图像处理和各种应用带来不利影响。所以需要对遥感图像进行云检测。

云检测属于二值语义分割方法,语义分割是指对图像中每个像素点,按照其语义类别进行分类,得到一张逐像素分类的标注结果。云检测的目标是由遥感图像得到其对应的0-1分类的二值标注结果,其中0代表背景,1代表云。

当前云检测方法主要分为三种,分别是多通道阈值法、基于图像基本特征的方法和基于深度学习的方法。多通道阈值法主要利用不同谱段云层的反射率和亮度等属性,计算最佳阈值进行检测;基于图像基本特征的方法是通过手动提取云层纹理,颜色和几何特点等特征,然后设计分类器以实现云检测。上述方法在实际应用中需要设置大量参数,不够灵活。近些年来,随着深度学习的火热和计算能力的提高,采用深度学习实现云检测的方法也逐渐增多并占据主流,其中大多数是基于全卷积神经网络(fullyconvolutionalneuralnetwork,fcn)。fcn的思路是用卷积层代替全连接层,并且端到端地得到图像的标注结果。

遥感图像不同于自然图像,它包含多样性的地物场景,比如森林,沙漠,海洋,冰雪和城市等。而且在遥感图像中,云的形态变化多端,包含卷云,积云和层云等形态,并且就云的大小而言,极小的云到巨型的云均有可能出现。卷积神经网络的低层特征分辨率更高,包含云的位置、纹理和细节信息,而高层特征具有更强的云的语义类别信息。因此为了从图像中得到精准的云的标注结果,卷积神经网络通常需要将高、低层特征进行融合,得到更合适的特征表达,并且多尺度特征融合有助于检测多尺度变化的云。目前大多数基于深度学习的云检测方法是用简单的串联或逐像素加和实现多尺度融合,这对特征信息利用的不够充分和高效,存在一定的信息浪费。而且我们还观察到一些云检测结果在云的边界附近不够精确,存在漏检和误检的现象。针对上述问题,本发明提出了一种基于全尺度特征融合的遥感图像云检测方法,该方法可以从遥感图像中获得精准的云检测结果。



技术实现要素:

目的:本发明的目的在于提供一种基于全尺度特征融合的遥感图像云检测方法。该方法设计了新的全尺度特征融合方式和专门的云边缘检测模块。前者更加充分的利用了特征信息,得到了更合适的特征表示,提升了云检测结果。后者加强对云的边缘区域的学习,对云的边界附近检测得更加精准。

技术方案:本发明是通过以下技术方案实现的:

本发明是一种基于全尺度特征融合的遥感图像云检测方法,主要通过卷积神经网络实现。该方法的具体步骤如下:

步骤一:制作数据集。

本发明使用的数据来自于gf-1(高分一号)卫星,在获取遥感图像之后,对上述遥感图像进行人工标注,得到真值标签用于神经网络的训练和测试。数据集包含5800个256×256像素的遥感图像,其中随机选取80%的数据作为训练集,20%的数据作为测试集。

步骤二:构造基于全尺度特征融合的卷积神经网络。

设计的网络如图1所示,该网络分为编码器,以及包含全尺度特征融合模块和边缘检测模块的解码器,二者均为五层。编码器主要由残差密集模块和步长为2的卷积层组成。在编码阶段,卷积层逐渐加深,特征图逐渐减小并学习高级语义信息。解码器主要由全尺度特征融合模块,残差密集模块,步长为2的反卷积层以及边缘检测模块组成。在解码阶段,特征图大小逐步恢复并且解码器每层特征都与编码器中层级更低的特征和解码器中层级更高的特征进行特征融合,以此帮助恢复图像细节。并且解码器最后两层的特征图输入到边缘检测模块中实现对云边缘区域的点预测。

步骤三:训练卷积神经网络。

利用步骤一制作的数据集和步骤二构造的卷积神经网络,在pytorch深度学习框架下进行训练。经过100次迭代训练后,记录网络各层的权重参数。

具体的方法如下:1、优化方法选择adam(adaptivemoments)下降法,学习率设置为10-4,训练集整体迭代次数设置为100次。2、采用高斯分布对卷积神经网络的权重进行初始化。3、读入训练集的数据并通过前向传播得到云检测结果。4、计算云检测结果和真值标签之间的交叉熵损失。5、通过反向传播误差调整卷积神经网络中的权重。重复3、4、5步,直到迭代次数达到100次,此时停止训练并保存网络参数。

步骤四:测试卷积神经网络,得到遥感图像云检测结果。

读入测试集的数据,将数据输入到步骤三中训练好的卷积神经网络中,得到了测试集图像对应的云检测结果。云检测结果是对原图像进行逐像素分类的结果,分类的类别为两类:云和地面,由此实现了遥感图像云检测。

优点及功效。

本发明是一种基于全尺度特征融合的遥感图像云检测方法。本发明的优点是:通过构造包含全尺度特征融合模块和边缘检测模块的卷积神经网络,实现了高精度的自动化遥感图像云检测,对复杂场景检测精度更高并且对云边界区域检测更精准,有助于大幅提高检测效率,降低人力成本。

附图说明:

图1基于全尺度特征融合的卷积神经网络结构图。

图2本发明所述方法进行遥感图像云检测的流程框图。

图3测试遥感图像。

图4测试遥感图像的真值标签(黑色代表背景,白色代表云)。

图5测试遥感图像的云检测结果。

表1本发明设计的卷积神经网络的参数设置表。

具体实施方式:

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

本发明在pytorch框架下,使用python语言编程实现。首先完成网络的搭建,并设置训练和测试需要的相关参数;再读入训练数据对网络模型进行迭代训练,经过一定次数的迭代之后获得了网络模型的调优参数;然后使用模型的测试模式对遥感图像进行云检测。

本发明提出的卷积神经网络如图1所示,其中深浅不同的长方形代表不同的卷积层或多个卷积层构成的块结构,箭头表示信息流的前进方向。整个算法运行的流程图如图2所示。计算机配置采用intel(r)core(tm)i7-6700k处理器,主频4.0ghz,内存32gb,显卡是nvidiageforcegtx2080ti,显存为11gb。

该遥感图像云检测方法包括如下步骤:

步骤一:制作数据集。数据集来源为gf-1的分辨率为16米的多光谱遥感图像,包含红,绿,蓝和红外四个光谱。首先选取多幅包含不同地物场景和多样化形态的云的图像。然后对数据集中图像进行人工标注,得到云的真值标签,用于训练和测试评估。该标签大小和原遥感图像相同,每个像素点的值为0或1,0代表该像素点为背景,1代表该像素点为云。受限于显卡的显存限制,需要将图像和对应标签切分为256×256大小的图像块,然后随机划分,其中80%作为训练集,20%作为测试集。

步骤二:构造基于全尺度特征融合的卷积神经网络。

设计的网络如图1所示,该网络分为编码器(encoder,e),以及包含全尺度特征融合模块和边缘检测模块的解码器(decoder,d)。

编码器的作用是提取特征,主要由残差密集模块(residualdensemodule)和步长为2的卷积层组成。残差密集模块由3个卷积层以密集连接的形式的组成,结构如图1(b)所示。步长为2的卷积层起到下采样的作用,可以减少计算量并扩大卷积的感受野。在编码阶段,卷积层逐渐加深,特征图逐渐减小并学习高级语义信息。

解码器主要由全尺度特征融合模块(all-scalefeaturefusionmodule,affmodule),残差密集模块以及步长为2的反卷积层组成。在全尺度特征融合模块中,解码器每层特征都与编码器中层级更低的特征和解码器中层级更高的特征进行特征融合。具体过程为首先通过卷积或反卷积得到当前层级与其他层级的差值,然后将这些差值整合回当前层级大小的特征,从而增强当前级别的特征,其结构图如图1(c)所示。第i层解码器的全尺度特征融合公式如下:

上述公式中i的取值范围为1,…,5。并且表示第i层解码器中aff模块的输出,上标4代表经过4次融合;表示第i层解码器中aff模块的输入,同时也是第i-1层反卷积层的输出。而中下标代表编码器和解码器的层级,上标代表为密集残差块的输出。

如此每个尺度的特征都从其他尺度的特征中获取信息,得到更丰富的特征表达。这种信息交换更充分地利用特征信息,既学习到了深层的语义信息,也保留了浅层的纹理和细节信息。而步长为2的反卷积层的作用为上采样,扩大特征图。在解码阶段,特征图大小逐步恢复并且融合其他各个尺度的特征信息,帮助恢复图像细节。并且解码器最后两层的特征图输入到边缘检测模块中实现对云边缘区域的点预测。

在边缘检测模块中,为了提高边界的检测精度,我们对云的边界施以更多的关注,即对边界点进行单独预测。考虑到云检测的真值标签为二值图像,我们用sobel边缘检测算子对标签图进行操作后得到了云的边缘点坐标,然后根据这些边缘点坐标提取解码器最后两层特征图中对应位置的点特征,将两层点特征串联后通过1×1卷积得到这些边缘点的检测结果。

因此,网络的损失函数包含两部分,用于图像云检测的损失函数lcloud和用于边界点特征的损失函数lboundary,两者都是交叉熵损失。

卷积神经网络的具体结构如表1所示,列表右侧为每层网络的卷积形式(conv为卷积层,deconv为反卷积层),卷积核大小以及卷积核的个数。

表1

步骤三:训练卷积神经网络。按照步骤一制作数据集,步骤二构造好卷积神经网络后,在pytorch深度学习框架下,利用带标签的训练数据对网络进行训练,经过一定次数的迭代训练后结束训练并记录当前步骤的网络参数。

具体的方法如下:1、设置相应参数,优化方法选择adam(adaptivemoments)下降法,每次迭代时参与训练的图像个数(batchsize)设置为4,初始学习率设置为10-4,然后学习率随着迭代次数增加而减小,训练集整体迭代次数设置为100次。2、采用均值为0,方差为2/n的高斯分布对神经网络的权重进行初始化,其中n为卷积核个数。3、读入训练数据并通过网络的逐层前向传播得到云检测结果。4、计算云检测结果和真值标签之间的交叉熵损失。5、通过反向传播误差调整神经网络中各层卷积的参数。重复3、4、5步,直到迭代次数达到设置的总迭代数,此时停止训练并保存网络参数。

步骤四:测试卷积神经网络,得到遥感图像云检测结果。

读入测试集的数据,将数据输入到步骤三中训练好的卷积神经网络中,得到了测试集图像对应的云检测结果。云检测结果是对原遥感图像进行逐像素分类的结果,分类的类别为两类:云和地面。由此为海量遥感图像自动化云检测提供了高精度的云检测结果,并且提高了效率。

实验结果:本发明使用的数据集包含5800个256×256像素的遥感图像,其中80%为训练数据,20%为测试数据。从图3和图5可以看出,本发明提出的方法可以很好的实现高精度云检测,能将云和地面高亮物体成功区分开,具有良好的准确性和鲁棒性。

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