基于纹理特征和机器学习的卫星云图分类实验

2023-12-11 01:12顾天红杜小玲朱育雷张艳梅吴昌航
中低纬山地气象 2023年5期
关键词:层云积雨云云图

顾天红,杜小玲,李 力,朱育雷,张艳梅,吴昌航

(贵州省气象台,贵州 贵阳 550002)

0 引言

卫星云图以其观测范围广、测量物不受测量系统干扰等特性,越来越广泛地应用于常规天气预报和气象科学研究中,在森林防火、资源调查和环境监测等领域也占据着十分重要的地位[1-2]。云是气象预报中至关重要的观测要素之一,“看云识天气”,不同类型的云对天气的指示作用不同,所以准确识别云对提升天气预报和气候预测准确性有着重要意义[3-4]。国际云气候计划(ISCCP)根据云顶气压将云主要分为高云、中云和低云[5];基于结构形式、范围大小、边界形状、色调、暗影和纹理6种判据,在卫星气象学中又分为较为常见的4种:层云、卷云、积云和积雨云[6]。云的自动识别最早由Shenk等[7]提出,随着图像处理和模式识别技术的飞速发展,基于云图的分类和识别成为新的研究热点。传统的云检测和云分类分为阈值法和聚类法,由于卫星图像随时间、地点、地表而变化,很难找出通用的阈值标准和聚类方法。近年来,机器学习在卫星云图分类识别领域受到关注并迅速发展[8],经过大量学者的对比研究,发现基于机器学习的分类无论是分类速度还是分类精度都有明显提升。刘扬[9]基于阈值法和支持向量机对7类云进行了分类;陈晨[10]研究对比了极限学习机和支持向量机在卫星云图中的云分类,发现极限学习机在分类速度上有明显优势,但分类精度低于SVM;邵丽群[11]将堆叠极限学习机应用于卫星云图自动分类,发现极限学习机与支持向量机相比,在泛化能力和学习速度上有明显优势,但分类精度仍低于支持向量机;田文哲等[12]采用自适应模糊支持向量机来实现对晴空区、低云、中云、高云及直展云的分类,识别准确率均优于标准支持向量机和传统模糊支持向量机;郑宗生等[13]提出基于参数迁移的卫星云图下台风等级的分类方法,发现分类精度明显高于浅层卷积神经网络和源模型;张敏靖等[14]结合对抗学习和迁移学习的卷积神经网络进行灾害天气云图分类研究,显著提升了各类灾害天气的分类精度。而卫星云图中的云的分类和识别,实质上是对图像进行切割和特征提取等处理[15]。纹理是物体结构的反映,分析纹理特征能获取图像综合信息,故可以通过提取云图纹理特征来实现对云的分类识别[16-17]。

本文采用提取云图的纹理特征参数作为云图样本集的特征向量,再分别用支持向量机、随机森林和XGboost分类器进行云的分类识别实验,旨在为云团的追踪识别奠定基础。

1 资料与方法

1.1 资料来源

因目前尚无云图数据库公开可用,本文采用自建云图库。考虑到尽可能降低人为判断识别的主观性,本文参考风云卫星遥感数据服务网站(http∶//satellite.nsmc.org.cn/PortalSite/Default.aspx)上FY-2G云分类产品(图1),将云分类成以下5种:晴空、层积云或高积云、积雨云、密层云和卷层云。

图1 同一时次FY-2H云分类产品与FY-2G红外云图对照Fig.1 Comparison of FY-2H cloud classification products and FY-2G infrared cloud image at the same time

为使研究对象与观测能力相适应,考虑到红外通道不受日照因素影响,观测连续性佳,本文所用实验数据均来自2020年4—6月风云二号G星的红外云图(IR1)。对照同一时次风云卫星遥感数据服务网站(http∶//satellite.nsmc.org.cn/PortalSite/Default.aspx)上FY-2G云分类产品,对红外云图进行人为分割分类,统一像素比为50×50,共制作完成了500张云型图像,其中晴空、层积云或高积云、积雨云、密层云和卷层云各100张,部分原始数据集如图2所示。

图2 卫星云图部分原始数据集示意图Fig.2 The partial diagram of original satellite cloud image data set

1.2 云图纹理特征及提取方法

目前,提取图像纹理特征的方法主要有4种,即基于分布模型参数的模型法、基于纹理基元的结构分析法、基于线性变换和滤波处理的信号处理法和基于图像灰度值的统计分析法[18]。其中,信号处理法和统计分析法是目前最常用且提取效果较好的2种方法[19]。实践表明,对于类似地形纹理分析[20]、气象云图分析[21]等复杂无规律的纹理分析,很多文献中一般使用基于统计分析的典型方法即灰度共生矩阵法(Grey-level Co-occurrence Matrix,GLCM),故本文也采用这一方法进行卫星云图纹理特征分析。

1.2.1 灰度共生矩阵 灰度共生矩阵(GLCM)是由Haralick提出的一种能够统计图像中每种灰度信息出现频次的纹理特征提取方法[22],能较为精确地反映图像灰度的方向、相邻距离和变化幅度[23]。GLCM定义为图像中2个不同像素点灰度分布的联合概率密度P(i,j,d,θ)构成,其计算原理如下[24]:

式中,d和θ分别为2像素点之间的距离和方向(通常取0°,45°,90°,135°),分子代表像素对(i,j)的个数,分母代表像素对的总数(#表示数量),上式得到的P是归一化的。将联合概率密度P(i,j,d,θ)写成矩阵形式,即得到GLCM,其像素对分布示意图如图3。

图3 GLCM像素对分布示意图Fig.3 The distribution diagram of GLCM pixel pair

1.2.2 基于灰度共生矩阵的纹理属性 尽管GLCM能描述图像纹理信息,但为了进行更深入的纹理分析,实际应用中通常不直接使用GLCM,而是基于GLCM再作统计处理,得到的二次统计量再作为图像的纹理特征[25]。Haralik定义了14种纹理特征参量,但经过Baraldi验证,发现对遥感云图特征提取效果最好的4种参量为能量、相关性、对比度和熵[23]。

(1)能量(Energy)是GLCM元素值的平方和,反映图像灰度分布均匀性和纹理粗细度。图像纹理越粗,其能量值越大。

(2)相关性(Correlation)是度量GLCM元素在行或列上的相似度,反映图像中局部灰度相关性。GLCM元素越均等,相关性越大。

(3)对比度(Contrast)反映图像的清晰度和纹理沟纹深浅程度。纹理沟纹越深,对比度越大。

(4)熵(Entropy)是图像随机性的度量,反映图像信息的复杂程度。纹理越复杂,熵越大。

2 算法实现

基于Matlab编写GLCM纹理特征提取代码,基于Python 3.8编写云图分类识别代码,其算法步骤如下:

开始→批量读入图像→转化成灰度图像→计算灰度共生矩阵→计算纹理特征统计值(4个方向4个特征值)→计算均值作为最终特征值→基于所提取特征值分别建立SVM、RF和XGBoost分类模型→分类效果评估→结束。

3 纹理特征统计分析

利用GLCM对晴空、层积云或高积云、积雨云、密层云和卷层云各100张云图分别进行纹理特征参数(均为无量纲数)计算,基于箱线图得出对比度、相关性、熵和能量分别在4个θ方向上的均值的主体范围(图4)。箱线图的最高点为最大值,最低点为最小值,箱体上框线为75%上四分位值,下部框线为25%下四分位值,箱中黑横线为中位数,黑点为平均值。综合来看,利用对比度、相关性、熵和能量4种纹理特征参数,较容易将层积云或高积云(1)区分出来,而剩下4类依靠统计特征难以人为地区分,故很有必要引入机器学习来进行分类识别。

图4 5种云分类的对比度(a)、相关性(b)、熵(c)、能量(d)参数箱线图 (图中0~4分别为晴空、层积云或高积云、积雨云、密层云、卷层云)Fig.4 The box plots of contrast (a), correlation (b), entropy (c) and energy (d) parameters of five cloud classification products (0~4 in the figures are clear sky, stratocumulus or altocumulus, cumulonimbus, dense stratus and cirrostratus)

4 基于机器学习的云分类识别实验

4.1 支持向量机简介

支持向量机(SVM)是Cortes和Vapnik于1964年首次提出的一种基于统计理论用来解决分类问题的分类器[25],在20世纪90年代快速发展并不断优化改进,在模式识别中展现出良好的泛化性,在小样本、高维度和非线性问题上有明显优势[26]。

4.2 随机森林简介

随机森林是以很多互不关联的决策树为基础构建的一种集成学习(Ensemble Learning)方法,采用bootsrap有放回地抽样,让森林里的每棵决策树都对一次抽样进行投票,遵从少数服从多数的原则,综合考虑所有树的决策结果最终得出决策模型[27]。随机森林算法因参数少、不易过拟合等优点,被广泛应用于分类和回归问题[28]。

4.3 XGBoost简介

XGBoost以分类回归树(Classification and Regression Tree,CART)为基分类器,相关性通过梯度提升来集成,是梯度提升算法的进化版[29]。XGBoost对每个特征进行分块(block)排序,使其在寻找最佳分裂点的时候能够并行化计算,以提高运行速度[30]。

4.4 分类结果及分析

构建的云图样本库共500个,每一类分别为100个,分类模型按样本容量的70%随机分层抽取作为训练集与测试集,比例为7∶3。样本特征为:“CON”—对比度,“COR”—相关性,“ENT”—熵,“AMS”—能量;样本标签为:“0”—晴空,“1”—层积云或高积云,“2”—积雨云,“3”—密层云,“4”—卷层云。实验构造的SVM使用径向基函数(RBF),C取1,g取“auto”;RF和XGBoost各参数均为默认。3种分类器对该样本分别进行10次训练,最后取其平均准确率作为评估。分类结果见表1,部分运行结果截图见图5。

表1 3种分类器结果对比(单位:%)Tab.1 Comparison of the results of three classifiers(unit:%)

图5 Python 3.8下某次分类结果运行截图Fig.5 The screenshot of a classification result in Python 3.8

分析可知,RF对该实验云分类的平均准确率最高,约为62.5%;XGBoost次之,约为61.7%;SVM分类效果最差,约为60.0%。其中,SVM对这5种云分类效果依次为:层积云或高积云(90.3%)>密层云(67.9%)>积雨云(56.1%)>卷层云(48.9%)>晴空(45.1%);RF为:层积云或高积云(91.5%)>卷层云(68.9%)>积雨云(60.0%)>密层云(54.6%)>晴空(52.3%);XGBoost则为:层积云或高积云(90.0%)>晴空(68.3%)>积雨云(60.0%)>密层云(54.0%)>卷层云(51.6%)。综上,SVM、RF和XGBoost对“层积云或高积云”的分类识别效果都最稳定且最好,均达到了90%以上。

5 结论与讨论

本文基于云图纹理特征提取,得出的统计特征参数难以人为区分“晴空”、“层积云或高积云”、“积雨云”、“密层云”和“卷层云”,故结合支持向量机(SVM)、随机森林(RF)和XGboost分类器来实现对这5类云的分类,得出实验结论如下:

(1)利用对比度、相关性、熵和能量4种纹理特征参数,能较容易地将“层积云或高积云”区分出来,而剩下4类依靠统计特征难以人为地区分。

(2)3种分类器对该实验云分类的平均准确率分别为RF(62.5%)>XGBoost(61.7%)>SVM(60.0%)。而在刘扬[9]的研究中使用的SVM云分类器在参数组合为(C=0.5625,g=0.0)时平均准确率最高,为49.925%。

(3)SVM、RF和XGBoost 3种分类器对本文构建的卫星云图样本库的分类训练结果不一,但对“层积云或高积云”的分类效果都最好且稳定,平均分类精度均达到了90%以上,最高为91.5%;除此之外,SVM对密层云(67.9%)、RF对卷层云(68.9%)、XGboost对晴空(68.3%)的分类效果次之,平均分类精度均达67%以上。而在邵丽群[11]的研究中,基于光谱特征和纹理特征的堆叠极限学习机(S-ELMs)对“层积云或高积云”的分类精度为96.67%,对“积雨云”为82.64%,对“晴空”则为41.22%。

本实验存在以下问题有待改进:(1)样本容量小;(2)样本特征单一且少;(3)样本库的构建主观性仍难以消除;(4)所选用机器学习分类器未进行调参优化。

猜你喜欢
层云积雨云云图
中秋遣怀(新韵)
成都云图控股股份有限公司
成都积雨云形成的层结条件分析
有压迫感的层云
穿越积雨云
蔡俊的诗
黄强先生作品《雨后松云图》
基于TV-L1分解的红外云图超分辨率算法
云图青石板