一种基于自适应极限学习机的卫星图像云量识别方法与流程

文档序号:13760841阅读:290来源:国知局
本发明属于云图像处理
技术领域
,特别涉及了一种基于自适应极限学习机的卫星图像云量识别方法。
背景技术
:云是大气环境最明显、最常见的表现形式,因此受到广大气象研究者的关注。在天气预报,气候监测、科学探测、大气遥感和大气气象模型等方面,了解云的分布是至关重要的。传统地面观测可以在一定程度上获得云量,但地面观测点的空间分布和观察时间都受到各种各样条件的限制。气象卫星在观察云量时基本不受时间和空间的限制,可以自由的获得高质量的多层云量分布图。对于提高大气辐射、能源和水循环、大气环境监测、气候分析算法模型的性能,理解总云量的空间分布和时间演变是至关重要的。高分辨率的卫星云图数据可以更清楚地描述云的结构。使用高分辨率卫星数据对于提高气象预报能力和算法模型的性能有着非常重要的实际意义。基于卫星图像的云检测和云量是获得全球云分布的主要途径。针对不同的卫星和信道特性,已经有很多云检测方法被提出。传统上,这些方法可分为两类:可见光/红外线阈值方法和聚类方法。每个方法也可以通过空间均匀性的知识补充。阈值技术只要包括可见动态阈值,红外线温度阈值,红外线检测器的均匀性。现有的阈值检测方法经常结合上述技术,主要有ISCCP、APOLLO、CLAVR、LDTNLR、CO2片等方法。聚类方法包括直方图聚类、自适应阈值聚类,动态阈值聚类,动态聚类。利用云的探测技术,获得全球云的分布是研究辐射平衡和全球气候变迁的重要途径。目前,针对云量主要有七种常用方法:ISCCP、CLAVR-1、CLAVR-X、MODIS、UWHIRS、APP和NIR/VIS。云分类方法可以归结为两大类:一类是计算云面积的比例,另一个是利用辐射像素和反射率来计算相等的云量。第一个方法很简单,但结果往往会导致比实际值高;第二方法不适合多层云和迅速变化的云。无论是哪一种计算方法,云分类的精确度取决于云检测的准确性。由于实际操作条件的限制,目前云检测方法通常采用光谱阈值法。近年来,机器学习算法模型被引入到卫星遥感研究。机器学习技术与传统的方法相比显示出显著优势和发展前景。目前,机器学习算法中,神经网络被认为是一个比较高精度的方法。虽然神经网络在许多方面具有独特的优势,但也存在一些问题。传统的神经网络学习方法使用梯度误差反馈的方法来训练网络,其中有一些不足之处:学习速度慢,迭代复杂,容易陷入局部极小。这些缺陷严重影响了神经网络在云检测中的应用。此外,构建神经网络模型缺乏系统的步骤,如果输入数据是非常零散的,误差会被放大。进而为进行云量的识别造成了干扰。这类问题目前还没有找到相类似的解决方案。技术实现要素:为了解决上述
背景技术
提出的技术问题,本发明旨在提供一种基于自适应极限学习机的卫星图像云量识别方法,克服了传统技术中神经网络的输入数据零散、结果误差大的缺陷。为了实现上述技术目的,本发明的技术方案为:一种基于自适应极限学习机的卫星图像云量识别方法,包括以下步骤:(1)用云图历史数据训练极限学习机神经网络,训练样本Xi=[xi1,xi2,...,xin]作为神经网络训练的输入数据,其中,Xi代表第i个训练样本,i=1,2,…,m,m是训练样本的个数,神经网络的输出是云分类;(2)针对一个测试样本Q=[q1,q2,...,qn],将它与训练样本Xi=[xi1,xi2,...,xin]比较,计算测试样本Q与各训练样本的欧式距离,通过欧氏距离找出测试样本Q的k个近邻Xq1,Xq2,...,Xqk;(3)计算测试样本Q的k个近邻Xq1,Xq2,...,Xqk的算术平均值作为训练好的神经网络的输入数据,并根据神经网络输出的分类结果,采用空间相关方法计算总云量。进一步地,所述极限学习机神经网络存在m个不同的样本(Xi,Yi),i=1,2,...,m,Xi是输入样本,Yi是输出样本,神经网络隐藏层节点的数量为激活函数为g(x),Xi=[xi1,xi2,...,xin]是一个n维向量,Yi=[yi1,yi2,...,yis]是一个s维向量,因此极限学习机神经网络的模型被描述为j=1,2,...,N,j≠i,其中,wi=[wi1,wi2,...,win]T是输入神经元连接第i个隐层神经元的权重向量,bi是第i个隐层神经元的偏置,βi=[βi1,βi2,...βis]是第i个隐层神经元连接输出层神经元的权重向量,oj是第j个输入样本的网络输出值;极限学习机神经网络训练的目的是使得oj能够无限逼近Yj,设极限学习机神经网络的输出能够无误差逼近输出样本,即就存在βi、wi和bi,使得即记做Hβ=Y,其中,H(w1,w2,...,wN~,b1,b2,...,bN~,X1,X2,...,Xm)=g(w1·X1+b1)...g(wN~·X1+bN~).........g(w1·Xm+b1)g(wN~·Xm+bN~)m×N~]]>β=[β1T,β2T,...,βN~T]s×N~T,Y=[Y1T,Y2T,...,YNT]s×mT]]>由于输入神经元和隐层神经元之间的权重向量任意给定,因此寻找最优的β即是极限学习机神经网络的目标,β的估计值为H′是矩阵H的Moore-Penrose广义逆。进一步地,神经网络输出的云分类结果包括3种:晴空、薄云和厚云。进一步地,因为神经网络输出的云分类结果有3种,所以设定输出样本Yi是一个3维向量。进一步地,步骤(3)的具体过程如下:通过神经网络输出的云分类结果得到厚云像素亮度的下界Icld和晴空像素亮度的上界Iclr,Icld是所有厚云的亮度的最小值,Iclr是所有晴空亮度的最大值,云图上每个像素的云量根据下式求得:Ac=(I-Iclr)/(Icld-Iclr)上式中I为单个像素接收机的亮度,最终得到云图上所有像素的总云量。采用上述技术方案带来的有益效果:本发明通过自适应极限学习机保证了网络具有良好的泛化性能,采用KNN算法对数据预处理,缩小了输入数据和学习数据之间的误差,采用改进的空间相关方法计算云量,计算结果更加精确。附图说明图1是本发明的基本流程图。具体实施方式以下将结合附图,对本发明的技术方案进行详细说明。如图1所示,一种基于自适应极限学习机的卫星图像云量识别方法,包括以下步骤:步骤1、用云图历史数据训练极限学习机神经网络,训练样本Xi=[xi1,xi2,...,xin]作为神经网络训练的输入数据,其中,Xi代表第i个训练样本,i=1,2,…,m,m是训练样本的个数,神经网络的输出是云分类。本发明中的极限学习机神经网络由三层简单的非循环处理单元构成,存在m个不同的样本(Xi,Yi),i=1,2,...,m,Xi是输入样本,Yi是输出样本,神经网络隐藏层节点的数量为激活函数为g(x),Xi=[xi1,xi2,...,xin]是一个n维向量,Yi=[yi1,yi2,...,yis]是一个s维向量。本发明中神经网络输出的云分类结果有3种:晴空、薄云和厚云,因此输出样本Yi为3维向量。极限学习机神经网络的模型被描述为其中,wi=[wi1,wi2,...,win]T是输入神经元连接第i个隐层神经元的权重向量,bi是第i个隐层神经元的偏置,βi=[βi1,βi2,...βis]是第i个隐层神经元连接输出层神经元的权重向量,oj是第j个输入样本的网络输出值;极限学习机神经网络训练的目的是使得oj能够无限逼近Yj,设极限学习机神经网络的输出能够无误差逼近输出样本,即就存在βi、wi和bi,使得即记做Hβ=Y,其中,H(w1,w2,...,wN~,b1,b2,...,bN~,x1,x2,...,xm)=g(w1·X1+b1)...g(wN~·X1+bN~).........g(w1·Xm+b1)g(wN~·Xm+bN~)m×N~]]>β=[β1T,β2T,...,βN~T]s×N~T,Y=[Y1T,Y2T,...,YNT]s×mT]]>由于输入神经元和隐层神经元之间的权重向量任意给定,因此寻找最优的β即是极限学习机神经网络的目标,β的估计值为H′是矩阵H的Moore-Penrose广义逆。在本实施例中,选取sigmoid函数为神经网络的激活函数g(x)。步骤2:针对一个测试样本Q=[q1,q2,...,qn],将它与训练样本Xi=[xi1,xi2,...,xin]比较,计算测试样本Q与各训练样本的欧式距离,通过欧氏距离找出测试样本Q的k个近邻Xq1,Xq2,...,Xqk。构建神经网络模型缺乏系统的步骤,如果输入数据是非常零散的,误差会被放大。本发明使用K近邻的方法和极限学习机相结合,减小误差被放大。步骤3:计算测试样本Q的k个近邻Xq1,Xq2,...,Xqk的算术平均值作为训练好的神经网络的输入数据,并根据神经网络输出的分类结果,采用空间相关方法计算总云量。通过上述步骤得出云检测结果,代入云量模型,得出最终云量结果。具体步骤如下:通过神经网络输出的云分类结果得到厚云像素亮度的下界Icld和晴空像素亮度的上界Iclr,Icld是所有厚云的亮度的最小值,Iclr是所有晴空亮度的最大值,此处主要将薄云进行区分。那么卫星图像上所有的像素均可由下式求得:Ac=(I-Iclr)/(Icld-Iclr)上式中I为单个像素接收机的亮度。如果计算结果大于1则认为是1,如果计算结果小于0则认为是0。这种情况下,厚云的云量被默认为1,晴朗的天空云量被设置为零。以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1