赵生银,安如
(河海大学 地球科学与工程学院,南京 211100)
高光谱图像能够获取地表物体上百个连续谱段的光谱信息,其光谱范围包括紫外、可见光、近红外及中红外等波段,较高的光谱分辨率可以准确的反映地物的光谱信息,有利于地物的识别。然而高光谱遥感图像具有高维度、波段间相关性高等特性抑制了高光谱图像识别精度的提高[1]。特征挖掘包含了特征提取和特征选择2个过程,可以有效降低高光谱遥感图像识别中冗余特征的影响,其通过降低高光谱数据维数,利用高光谱数据信息量大的特征进行识别[2]。
在特征提取方面,高光谱的像元特征提供丰富的光谱信息来提高对地物的识别能力。随着遥感技术的飞速发展,高光谱图像的空间分辨率也得到了极大的提升,提高了高光谱数据对于地物的表达能力[1]。文献[3]利用灰度共生矩阵来获取高光谱图像的纹理特征,指出纹理特征可以有效提取光谱反射率难以区分的地物类型。文献[4]从高光谱遥感图像中提取光谱特征、Gabor特征、LBP特征,图像识别性能更加稳定、识别精度较优。由于每个相邻的像元在空间上具有一定的连续性,面向对象方法可以利用高分辨率遥感图像的光谱信息和空间信息,有效减小以像元为处理单元的“椒盐噪声”。文献[5]从高光谱图像中提取4个波段进行图像分割,通过计算各波段的光谱均值来实现图像识别。文献[6]利用PCA(Principal Component Analysis)对高光谱图像进行变换,然后利用Quick Shift算法对影像进行分割,获取对象特征进行图像识别,实验表明该方法可以有效识别高光谱图像。以上方法充分挖掘了高光谱图像的光谱、纹理信息,但他们大多基于像元单元或对象单元,本研究将联合像元单元和对象单元特征,充分提取高光谱遥感图像的信息。
在特征选择方面,常用的特征选择算法主要分为基于类别可分析和基于信息量的特征选择两类[7]。基于信息量的特征选择主要是提取高光谱波段中地物信息量大并且相关性较小的波段。文献[8]通过分散矩阵计算每2个类别的可分性值,以可分性值的平均值作为特征选择准则,利用提取的特征来进行高光谱图像识别。基于类别可分性的特征选择通过计算各类别样本在各波段间的距离,来构建最佳波段组合。文献[9]利用OMIS数据对比分析了SEP、MDLM、RELIEF和决策树特征选择算法,发现决策树在高光谱图像识别中取得较好的识别结果。文献[10]构建了一种融合粒子群优化算法全局寻优能力和支持向量机分类的高光谱特征子集选择方法,有效解决了高维遥感数据的降维困难问题。
为了充分、高效的利用高光谱遥感图像数据信息,分别提取高光谱遥感图像的像素级和对象级特征,构建1969个特征数量的多特征空间来充分挖掘高光谱图像信息,利用网格搜索法来优化XGBoost算法的参数,并对多特征空间进行降维处理,利用随机森林识别器对最优特征进行识别。
图 1 研究区域(波段60,2,10 分别为红、绿、蓝通道)Figure 1 Study area (red, green and blue channels for band 60, 2 and 10, respectively)
采用美国华盛顿地区HYDICE(The hyperspectral digital imagery collection experiment)航空高光谱数据作为实验数据。HYDICE传感器可以获得覆盖可见光和短波红外波段,光谱范围为0.4~2.4 μm。本研究使用了该数据的191个波段,空间分辨率约为1 m,图像大小为301×471像元,如图1所示。
首先利用主成分分析法提取高光谱遥感图像信息量最大的前4个波段;通过面向对象分割获取高光谱的对象级特征,通过栅格计算法获得高光谱的像素级特征;然后利用网格搜索法对XGBoost算法的参数进行优化;当XGBoost算法参数设置为最优值时,对构建的高光谱多特征空间中的特征进行重要度排序并依据样本精度选择最优特征组合;最后利用随机森林分类器对选择的高光谱特征进行识别。基于特征挖掘的高光谱遥感图像识别技术流程如图2所示。
图 2 技术流程Figure 2 Technical flow chart
极端梯度提升决策树(XGBoost)实现的是一种基于梯度Boosting的集成学习算法,由于该算法可以利用GPU进行多线程并行计算,计算效率高。传统的GBDT算法只利用了一阶的导数信息,而XGBoost对损失函数做了二阶的泰勒展开,并在目标函数之外加入了正则项对整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合[11]。XGBoost算法可以统计每个特征变量的重要性,通过统计值可以将特征按重要度排序。其具体公式如下:
假设模型有k个决策树,即
(1)
其损失函数为:
(2)
式(2)中,T代表叶子的个数,w代表叶子的权重。
对损失函数泰勒展开为:
(3)
网格搜索法[12]是一种指定参数的穷举搜索方法,它将自变量在取值区域内,由步长决定的网格作为分组依据,通过划分网格,逐一计算每个网格点上的约束值。网格搜索法将组合参数逐一用于XGBoost算法进行模型训练,自动输出最佳参数的组合。其具体的流程如下[13]:
(1)初始化网格搜索中搜索范围A值和搜索步长b值。在A和b的坐标系上构建一个二维网格。
(2)将数据集中的训练样本分为i组,其中任意i-1组作为训练样本,其余1组作为预测样本。XGBoost算法采用每个(A,b)参数组合对训练样本进行训练,然后对1组样本进行预测。
(3)重复步骤(2),对二维网格中的所有参数进行训练。
(4)输出XGBoost算法对于训练样本最佳的参数组合。
提取的特征根据处理单元的大小分为两大类:对象级特征(由光谱特征、纹理特征和形状特征组成)和像素级特征(波段特征、纹理特征、PCA特征和指数特征组成),如表1所示。多特征空间包含了所有本研究提取的对象级特征和像素级特征,高光谱光谱信息特征由像素级特征组成,多光谱特征由提取的红、蓝、绿、近红外波段及其相应的计算的特征组成。
表1 多特征空间数据集Table 1 Feature space data sets
3.1.1 主成分分析法提取高光谱信息
主成分分析方法广泛应用于高光谱图像降维中,该方法是一种线性变换,利用矩阵变换对高光谱数据进行处理,在保留原有波段信息的基础上,使生成的主成分图像之间相关性低[14]。实验区高光谱主成分分析如下图3所示,其中第一主成分图像包含了绝大部分信息,随着主成分序号的增加,图像所模糊度不断增加,所包含的信息量也在不断减少。本实验前4个主成分图像信息量为90.52%,故选择前4个主成分图像进行图像分割,以保证分割结果的准确性。
3.1.2 高光谱图像对象级特征的提取
遥感图像分割容易出现过分割与欠分割现象,会降低地物识别精度,所以最优分割尺度的选择对面向对象技术至关重要。面向对象多尺度分割的算法的精髓是使“分割斑块内的一致性达到最大,分割斑块与相邻斑块之间的异质性达到最大”,其基本原理是综合考虑中高分辨率遥感影像的纹理、形状、空间及光谱等信息,通过多次递归判断合并前后斑块的多特征加权准则指标值来合并分割斑块[15]。利用Definiens平台提供的面向对象多分辨率分割算法是基于区域生长算法实现初步分割与基于多准则的递归融合的一种算法,弥补了基于单个像元分割方法存在的不足,有效提高了影像分割精度。
(a)实验区假彩色合成 (波段188,88,10分别为红、绿、蓝通道) (b)多尺度分割结果(分割尺度为480) 图 4 实验区高光谱图像分割结果Figure 4 Hyperspectral image segmentation results in experimental area
通过反复实验,4个主成分图像分割的权重比为1∶1∶1∶1,通过试错法确定形状指数为0.1,紧致度指数为0.5,利用ESP(Estimation of Scale Parameters)工具[16]来辅助确定高光谱遥感影像的最优分割尺度为480。分割图像如图4所示:图4(b)可以较好地将各类地物分割在一个对象中,同一个对象中像元值相同,可以有效抑制图像像元噪声问题。然后利用分割过后的矢量边界对实验区高光谱遥感图像所有波段进行分割,并提取对象级尺度的光谱特征、纹理特征和形状特征等。
3.1.3高光谱图像像素级特征的提取
高光谱遥感图像的原始波段能够捕获地表精准的光谱响应和空间细节特征。其丰富的光谱信息可以有效提高对地物的识别能力。但是仅仅依靠单一的光谱信息,会制约高光谱识别精度的提高,因此要充分挖掘高光谱信息显得尤为重要。灰度共生矩阵法能反映出图像灰度关于方向、相邻间隔、变化幅度的综合信息,有二阶矩、对比度、熵、相关、方差、相异性、逆差距等14个特征向量。利用灰度共生矩阵法来提取每个高光谱波段的纹理信息,为高光谱图像识别提供更多有利于地物判别的信息。文献[20]提出该实验区的红波段范围(第188个波段)、绿波段(第88个波段)、蓝波段(第10个波段)和近红外波段(第60个波段),根据波段范围构建了地物光谱指数特征,如植被指数(NDVI)、建筑指数(NDBI)等。构建的多特特征空间如表1所示,其中对象级特征238个,像素级特征1 731个,总计1 969个特征。不同的地物对不同特征类型的敏感程度不同,因此通过特征提取方法可以充分地挖掘高光谱图像的波段信息,为地物识别提供了可靠的判别信息。但是过多的特征会造成信息冗余,在一定程度上会抑制分类器的识别效果,因此特征选择显得尤为重要。
3.2.1 网格搜索法参数优化
为了提高XGBoost算法在高光谱遥感数据中的特征选择的准确性,对该算法的参数优化十分重要。该算法主要需要优化的参数如下:max_depth是树的最大深度,该值越大,模型越复杂;学习率learning_rate是每次迭代时缩减权重值;min_child_weight一个子集中所有最小权重和;max_delta_step限制了每棵树权重改变的最大步长;reg_alpha用来控制XGBoost算法的L1正则化。
表 2 XGBoost算法在网格搜索法下的最优参数Table 2 Optimal parameters of XGBoost algorithm under grid search method
参数名称参数1参数2参数3参数4参数5最优参数值max_depth51015202515learning_rate0.010.020.050.100.150.02min_child_weight02510205max_delta_step00.20.6120.2reg_alpha00.250.50.7511
图 5 网格搜索算法下XGBoost参数的测试误差Figure 5 Testing error of XGBoost parameters under grid search algorithm
根据XGBoost算法需要优化的参数来设置所有可能的取值,利用网格搜索法对参数列表中进行穷举搜索,对每种情况进行训练,最终输出最优的参数组合。对XGBoost算法的主要参数的可能取值进行预先设置,在网格搜索法下的最优参数如表2所示,其中max_depth、learning_rate、min_child_weight、min_child_weight、max_delta_step和reg_alpha最优参数值分别为15、0.02、5、0.2和1。为了验证参数的合理性,通过控制变量法,探究每组预设XGBoost参数值在测试集上的误差,如图5所示。结果表明:在网格搜索法下的XGBoost的最优参数的测试误差最小,XGBoost算法采用网格搜索法的最优参数值具有可行性。通过寻找到的最优参数值来更新、调整XGBoost算法的参数,然后进行高光谱遥感图像特征的选择,从而达到充分挖掘高光谱数据的信息,保留对地物识别贡献度大的高光谱特征。
3.2.2XGBoost特征选择
图 6 特征数量与样本识别精度的关系Figure 6 The relationship between the number of features and the accuracy of sample recognition
图7 XGBoost特征选择结果(B代表波段,Pixel代表像素级特征, Object代表对象级特征)Figure 7 XGBoost feature selection results(B represents the band,Pixel represents pixel-level features, Object represents object-level features)
实验区根据已有的地面参考数据[19],选取训练样本5 955个像元,其中地物覆盖类型为建筑(2 535个像元)、道路(1 319个像元)、小路(249个像元)、树木(437个像元)、草地(1 322个像元)和阴影(93个像元)六大类。从高光谱图像上获取特征值和标签的Excel数据,利用XGBoost算法对所有特征按重要度从高到低进行排序。然后以2个步长增长选择特征组合数量,并进行样本识别精度的评价。文献[18]提出的利用随机森林(RF)算法计算每个波段的重要性指标并对其排序,实现高光谱降维的方法作来进行图像识别研究。分别使用XGBoost和RF算法对构建多特征空间和高光谱的光谱特征进行特征降维研究,通过与传统的RF算法比较,来探讨XGBoost算法在高光谱降维中的作用,结果如图6所示。以XGBoost特征选择算法为例,在特征数量为18个时,此时样本在较少的特征数量下,识别精度达到了最高值;由于过多的特征,不仅会导致计算量的增加,而且会造成特征空间内部互相干扰的信息,降低了识别精度。所以随着特征数量的增加,样本识别精度呈现缓慢下降趋势。综上所述,在XGBoost算法下,选择的多特征数量最优值为18个,光谱特征数量最优值为16个;在RF算法下,选择的多特征数量最优值为18个,光谱特征数量最优值为14个。其中XGBoost算法选取的最优特征组合的样本识别平均精度比RF算法高2.5%。XGBoost算法选择的具体特征类型见图7。其中对象级特征有9个,像素级特征有9个,对象级的均值光谱(B32-Object)、纹理(GLDV_B1_Object)、形状特征(Compactnes_Object)和像素级的光谱波段(B128-Pixel)、指数(NDVI、NDBI)和纹理(DLCM_Mean_B20_Pixel)等特征在样本识别中发挥重要作用。
采用随机森林分类器来对高光谱遥感图像进行识别。在构建高光谱遥感图像最优特征空间的基础上,利用随机森林识别器实现图像的识别过程。随机森林识别包括训练样本和图像识别2个过程。其中训练样本的过程是首先采用Bootstrap自助抽样技术随机生成训练样本子集,利用递归方式训练单棵树,然后,计算准确率作为终止条件,使用未参与当前树构建的样本测试当前树的预测准确率,直到准确率达到标准或者节点样本数过少为止,最终完成单个决策树的生成,加入到树集合中,形成随机森林模型[17]。实验区包括6种地物类别:建筑、道路、小路、树木、草地和阴影,通过目视解译的方法提取训练样本。分别对RF和XGBoost算法选择下的多特征空间、光谱(像素级)特征和多光谱特征进行图像识别研究,随机森林识别器识别结果如图8所示。
注:(a)XGBoost-多特征识别;(b)XGBoost-光谱特征识别;(c)XGBoost-多光谱特征识别;(d)RF-多特征识别;(e)RF-光谱特征识别;(f)多特征(未选择)识别。
根据实验区高光谱遥感图像识别结果可以定性地发现:(1)在相同特征空间下(多特征或光谱特征),XGBoost算法选择的特征识别结果优于RF算法,如图8(a~d)中的框①所示:图8(a)可以将建筑物和小路正确区分出来,而图8(d)将建筑物误分为小路;(2)在相同的特征选择算法下,对比多特征识别(由对象级和像素级特征组成)和光谱特征(由像素级特征组成)的识别结果,由于对象级特征可以将相同像元分割为一类,使得图8(a~d)的识别结果具有较好的连续性,其中分割尺度直接影响图像识别结果。而图8(b~e)的识别结果会有“椒盐现象”,地物误分情况比较严重。(3)当多特征空间未进行降维处理时,直接进行高光谱图像识别,由于特征数量较多,信息冗余在识别时会互相干扰,降低了识别效果,图8(f)对建筑物和小路识别效果较差,并且建筑物误分为树木,识别效率低。(4)如图8(b~c)中的框②所示:在XGBoost特征选择算法下,相比于用高光谱光谱特征的识别结果,仅仅采用多光谱波段(红、绿、蓝、近红外波段及其提取的像素级特征)的识别结果由于波段信息的不充足,未能很好地识别出地物,并且“椒盐现象”严重,说明高光谱图像相较于多光谱图像提供的信息,可以充分地提供地物的识别信息,提高识别的准确性。综上所述:本研究方法可以充分挖掘高光谱遥感图像的对象级和像素级特征信息,利用XGBoost算法进行特征选择来实现冗余特征的降维,随机森林识别器对图像识别可以显著提高高光谱的识别效果。
表 3 高光谱遥感图像识别精度评价Table 3 Accuracy evaluation of hyperspectral remote sensing image recognition
特征组合总体精度/%Kappa系数XGBoost-多特征96.320.95XGBoost-光谱特征91.400.90XGBoost-多光谱特征80.670.75RF-多特征90.350.89RF-光谱特征83.450.82多特征(未特征选择)85.810.84
在高光谱遥感图像上随机选取验证点326个,其中建筑39个,道路99个,小路36个,树木94个,草地36个,阴影22个。高光谱遥感图像识别精度如表3所示:其中本研究方法识别总体精度最高,达到了96.32%,Kappa系数为0.95;相较于传统RF特征选择方法,XGBoost算法选择的特征识别精度平均提高了6.96%,Kappa系数平均提高了0.07,说明新颖的机器学习算法XGBoost可以有效地对高光谱遥感图像进行降维,充分挖掘有利于图像识别的信息;特征选择后的图像识别的平均精度比未进行特征选择的高7.53%,说明特征选择在高光谱图像识别时具有重要作用,可以排除冗余信息对识别结果的干扰,提高了识别效率。相较于多光谱的红、蓝、绿和近红外波段,高光谱遥感图像可以提供地物更多的识别信息,识别精度提高了10.73%。综上所述:本研究方法利用XGBoost算法对构建的多特征空间进行特征挖掘,可以充分利用高光谱遥感图像的光谱、纹理、空间等信息,提高了识别精度,具有实用性。
通过提取高光谱遥感图像的像元级和对象级的光谱、纹理、形状、指数等特征,利用网格搜索法优化XGBoost算法并进行特征选择,来对华盛顿地区HYDICE高光谱数据进行识别研究。通过特征挖掘充分利用了高光谱图像信息,可以得到以下结论:
1)高光谱数据提供了丰富的光谱信息,通过面向对象分割和图像栅格运算分别提取了对象级和像素级特征,特征类型包含了光谱特征、纹理特征、指数和形状特征等总计1 969个,充分挖掘了高光谱图像的信息。
2)通过与RF特征选择算法相比较,利用网格搜索法来对XGBoost算法进行参数调优,使XGBoost算法在选择高光谱特征时表现更加稳定,可以有效降低特征间的冗余量,更好的选择出有利于地物识别的特征。
3)相对于传统方法,方法在高光谱遥感图像识别中的总体精度达到了96.32%,提高了高光谱图像识别的精度与稳定性。