杨 灿
(福州大学 物理与信息工程学院,福建 福州 350116)
基于XGBoost的遥感图像中道路网络的提取
杨 灿
(福州大学 物理与信息工程学院,福建 福州350116)
传统的机器学习分类算法在处理道路提取问题过程中存在准确度低、速度慢的缺点。通过利用XGBoost算法提取遥感图像中的道路部分,以图像中的颜色特征以及像素点的局部特征作为特征输入,对图像中的每个像素点进行分类后,提取出道路。实验结果表明,该算法提取道路的准确性高,能够清晰绘出图像中的道路网络,且该算法具有较好的鲁棒性。
道路提取;XGBoost算法;分类
道路是国家的重要交通设施,国家在交通设施上的投资力度逐年增加,道路里程数不断增长。因此,道路网络的实时更新对于交通管理、车辆导航有着重要作用。遥感图像能够提供区域的高分辨率图像,高分率图像能够提供丰富的颜色、纹理、结构特征,使得从遥感图像中提取道路网络成为可能。
从遥感图像中提取道路网络的问题可以转换为将图像中的每个点划分到两个类中,即道路区域和非道路区域。文献[1]提出了一种基于SVM的算法用于提取道路网络,该算法的主要思想是通过提取图像中地理统计学的纹理特征,利用SVM分类算法来提取道路网络。文献[2]提出了一种基于K均值和改进区域生长的算法来提取道路网络,该算法首先利用K均值算法将图像中每个像素点划分到不同的类中去,然后利用改进的区域生长算法以及形态学方法对聚类后的图像进行后处理,得到道路网络。文献[3]提出了一种基于SVM和FCM的算法,该算法首先利用FCM对图像进行聚类,将图像中每个像素点划分到各自的类中,然后利用SVM对聚类后的像素点进行分类后得到道路网络。文献[4]提出了一种基于改进的高斯混合模型,从高分辨率遥感图像提取道路的方法。通过Gabor滤波器计算影像一维纹理描述值,将其作为分割道路的特征值对影像进行预处理,再利用基于两层高斯混合模型的新分类方式对高分辨率遥感影像进行分类。文献[5]提出了一种基于均值漂移的道路网络提取方法,该方法的优势在于不需要任何先验知识,具有高效率和稳定性,特别是对于遥感图像的检测。文献[6]提出了一种基于神经网络的反馈传播算法,该算法能够快速有效地提取道路网络。文献[7]提出了一种基于bagging和boosting的方法,将多个分类器融合用于提取道路网络。
在本文中,同样是利用机器学习算法来对图像中的像素点进行分类,不同之处在于,本文所用的方法对于事先提取的特征的要求不高,仅需提取图像中每个样本点的颜色特征和局部特征,且特征提取的难度较低。此外,本文提出了一种基于XGBoost(eXtreme Gradient Boosting)[8]的分类算法用于提取道路网络,在利用相同的特征作为模型输入时,该算法能够提高道路提取的准确性,文中对不同的机器学习算法进行了比较,并给出实验数据。对于分类后的结果,本文方法不需要对结果进行过多处理,即能得到较好的效果。实验结果表明,该算法提取的道路具有很好的可辨认性,并且鲁棒性很好。
图像的特征有很多种,颜色特征、纹理特征、形状特征等,特征的构建对于分类结果的影响显著。本文主要利用图像的颜色特征以及图像中每个像素点的局部特征作为特征输入。
遥感图像中每个像素点是由RGB三通道构成的,对于图像中每个像素,由于道路区域的像素点的颜色明显有别于非道路区域,因此,颜色特征可作为一个特征输入。
虽然图像中的道路区域和非道路区域颜色具有区分度,但是,由于遥感图像的分辨率很高,图像的细节比较多。因此,图像中存在以下几种异常情况:一是非道路区域存在某些像素点的颜色特征和道路区域的颜色特征相同;二是遥感图像在拍摄过程中,由于各种因素干扰,例如,道路旁的树的阴影、道路上的汽车、房屋阴影等,会造成这些像素点的颜色特征与道路区域的颜色特征不同;三是道路区域的颜色不是始终不变的,在某些区域,道路的颜色会加深或变浅。所以,仅仅依靠颜色特征用于分类,得到的分类结果并不是很理想。
图1 邻近局部特征
本文通过构造像素点的局部特征作为特征输入。局部特征的构造如图1所示。图1(a)中c点即为图像中当前像素点。上节中提取的是该点的颜色特征。由于从图像的角度来看,当前像素点和其周围像素点一般具有高度相似性,这些像素点的值应该相似。通过构造这类特征,可以很好解决单一颜色特征用于分类时无法解决的问题。并且,提取邻近像素点的值时,仅需提取邻近像素点的灰度值,这样可以降低特征的维数,相较于提取邻近像素点的RGB三通道值,特征维数下降为原来的1/3。本文通过实验验证后发现,使用的是距离当前像素点3个单位范围内的像素作为用于分类时的特征效果最佳,如图1(b)所示。
对于一个复杂的分类任务,给定一组训练样本集后,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易得多。提升算法就是从弱分类学习算法出发,反复学习,得到一系列弱分类器(称为基本分类器),然后组合这些弱分类器,构成强分类器。大多数的提升方法都是改变训练数据的概率分布,针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。因此,提升算法实际上就是采用加法模型(即基函数的线性组合)与前向分布算法将多个弱分类器按不同的比例组合成一个强分类器[9]。
当提升算法在学习弱分类器时,如果弱分类器采用决策树为基函数,由此得到的强分类器的算法称为提升树算法。提升树模型可以表示为决策树的加法模型:
(1)
其中,T(x;Θm)表示决策树;Θm表示决策树的参数;M为树的个数。
提升树算法采用前向分布算法。首先确定初始提升树f0(x)=0,第m步的模型是:
fm(x)=fm-1(x)+T(x;Θm)
(2)
其中,fm-1(x)是当前模型,通过经验风险极小化确定下一棵决策树的参数Θm:
(3)
其中,L()表示损失函数,由于提升树算法利用加法模型与前向分布算法实现学习的优化过程,当损失函数是平方损失和指数损失函数时,每一步优化是很简单的。但对于其他损失函数,往往每一步的优化并不容易。针对这一问题,Frediman提出了梯度提升(Gradient Boosting)算法。这是利用梯度下降法的近似方法,其关键是利用损失函数的负梯度在当前模型的值,即:
(4)
XGBoost算法对GBDT算法的改进在于,一是求解优化函数过程中,GBDT采用一阶导数,而XGBoost算法计算目标函数的二阶导数;二是XGBoost算法在目标函数中加入了正则项,有利于防止算法在训练过程中产生过拟合现象,导致训练的得到模型泛化能力变差;三是XGBoost算法在训练过程中借鉴了随机森林的思想,每次迭代过程中不使用全部样本,并且不使用每个样本的所有特征,而是对样本进行抽样,采用部分样本的部分特征去训练,有效提高了模型的泛化能力;四是XGBoost算法支持并行计算,提高了运行速度。首先定义目标函数:
obj(θ)=L(θ)+Ω(θ)
(5)
其中L(θ)是损失函数,常见的损失函数有平方损失、Hinge损失、交叉信息熵损失等。Ω(θ)是正则项,常见的正则项有L1和L2,正则项的作用是防止模型在训练时发生过拟合现象,导致模型的泛化能力变差。
由于XGBoost算法采用决策树作为基分类器,因此正则项表示为:
(6)
其中,T表示为当前决策树的叶子节点数,ω是每个叶子节点的权重。由于模型预测的结果可以表示为所有决策树预测结果的加权和:
(7)
其中,F表示决策树空间,即所有决策树的集合。因此,目标函数可表示为:
(8)
对于第t轮迭代,目标函数表示为:
(9)
即对xi的预测值是第t棵树的预测值和前t-1棵树预测值的和。对式(9)求一阶导数和二阶导数并移除常数项可得:
(10)
(11)
(12)
其中gi是一阶导数值,hi是二阶导数值,ωj是决策树上叶子节点的权重,T是决策树的叶子数目,γ是惩罚值。
为了便于比较,采用另外几种分类算法进行对比。GBDT算法作为Boosting算法的最初实现版本,在实际应用中有着较好的表现。SVM算法以及逻辑斯蒂回归算法作为基本的分类的算法,由于这两个算法仅仅是一个分类算法,而不是集成算法,所以同等条件下,这两个算法的分类结果不是很好。通过对四种不同分类进行实验,得出实验结果。
由于图像中只有道路区域和非道路区域两部分,因此,对于分类的结果,不仅仅使得道路区域被准确识别,还要求非道路区域尽量不要被误划分到道路区域。因此采用如下两个指标:
(13)
(14)
n1表示道路区域被正确预测的数目,n2表示道路区域被预测为非道路区域的数目,road_precision的结果越大,说明道路区域被正确划分的区域多。r1表示非道路区域被预测为非道路区域的数目,r2表示非道路区域被预测为道路区域的数目,non_road_precision的结果要尽可能大,说明越大,说明非道路区域被错划分到道路区域的数目越小。
本实验中,选取的测试图片来源于QuickBird卫星所拍摄的西班牙罗塔岛地区,该卫星拍摄的图像的分辨率是0.61 m。实验结果如图2所示。
图2 算法分类效果图
从图2效果可知,XGBoost算法提取出的的道路网络清晰可见,对于非道路区域的分辨能力也比其他三种算法好。图中道路的材质有两种,图中左上角的道路材质和其他地方道路的材质不同,XGBoost算法同样能够提取出清晰的道路网络。对于图中的非道路区域的干扰,XGBoost算法同样能够做到区分。
从表1的数据可知,XGBoost算法无论是road_precision还是non_road_precision都比其他三种算法高。这个结果与图2中的效果具有一致性。从表中还可以看出,虽然SVM算法在道路区域提取的准确度上能够接近XGBoost算法,但是SVM对于非道路区域干扰以及不同材质道路的提取方面明显存在差距。Logistic算法是效果最差的,无论是对于道路区域的提取,还是对于非道路区域的剔除,该算法都不能得到较好的效果。由于XGBoost算法是GBDT算法的改进,可以看出,GBDT算法处理结果和XGBoost算法接近,但是GBDT算法对于非道路区域的剔除没有XGBoost算法的效果好。
表1 算法分类结果
本文利用图像的颜色特征以及图像中每个像素点的局部特征作为XGBoost算法的特征输入,在训练得到模型后,对图像中每个像素点进行分类。并将XGBoost算法与GBDT、SVM、Logistic算法进行比较后发现,XGBoost算法对图像的分类效果最佳。对于图像中存在不同材质道路以及非道路区域的干扰,能够表现出良好的性能,算法的可靠性高。并且,本文提取的特征简单,避免了在处理图像分类过程中需要事先对图像进行理解并构建独有特征的困扰。通过结合本文的特征与XGBoost算法,能够很好地提取道路网络。本文方法为其他图像分类工作提供了一个参考。
[1] 张曦.基于时频特征和支持向量机的高分辨率遥感影像道路提取[D].合肥:安徽大学,2016.
[2] 胡永祥,李建飞,文志强,等.基于K均值和区域生长的高分辨率遥感影像道路网提取[C].第二届高分辨率对地观测学术年会论文集,2013:1-13.
[3] ZHU D M,WEN X,LING C L. 2011. Road extraction based on the algorithms of MRF and hybrid model of SVM and FCM[C]. International Symposium on Image and Data Fusion,Tengchong,2011.
[4] 向晶,周绍光,陈超,等.基于改进高斯混合模型的遥感影像道路提取[J].测绘工程,2014,23(3):42-45.
[5] Miao Zelang,Wang Bin,Shi Wenzhong,et al. A semi-automatic method for road centerline extraction from VHR images[C]. IEEE Geoscienceand Remote Sensing Letters,2014,11(11):1856-1860.
[6] HEERMANN P D,KHAZENIE N. Classification of multispectral remote sensing data using a back-propagation neural network[J]. IEEE Transactions on Geoscience and Remote Sensing,1992,30(1): 81-88.
[7] UNSALAN C,SIRMACEK B. Road network detection using probabilistic and graph theoretical methods[C]. IEEE Transactions on Geoscience and Remote Sensing,2012,50(11): 4441-4453.
[8] Chen Tianqi,GUESTRIN C. Xgboost: a scalable tree boosting system[C]. Proceedings of the 22Nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2016:785-794.
[9] 李航.统计学习方法[M].北京:清华大学出版社,2012.
Road network extraction from remote sensing images based on XGBoost
Yang Can
(School of Physics and Information Engineering,Fuzhou University,Fuzhou 350116,China)
The traditional machine learning classification algorithm has the shortcomings of low accuracy and slow speed in dealing with the problem of road extraction. In this paper,we use the XGBoost algorithm to extract the road part in the remote sensing image,and take the color feature in the image and the local feature of the pixel as the feature inputs to classify each pixel in the image and extract the road. The experimental results show that the proposed algorithm has high accuracy and can clearly draw the road network in the image,and the algorithm has better robustness.
road extraction; XGBoost algorithm; classification
TP75
A
10.19358/j.issn.1674-7720.2017.24.009
杨灿.基于XGBoost的遥感图像中道路网络的提取J.微型机与应用,2017,36(24):28-31.
2017-06-23)
杨灿(1992-),男,硕士研究生,主要研究方向:数字图像处理。