楊 燦
(福州大學 物理與信息工程學院,福建 福州 350116)
基于XGBoost的遙感圖像中道路網(wǎng)絡的提取
楊 燦
(福州大學 物理與信息工程學院,福建 福州350116)
傳統(tǒng)的機器學習分類算法在處理道路提取問題過程中存在準確度低、速度慢的缺點。通過利用XGBoost算法提取遙感圖像中的道路部分,以圖像中的顏色特征以及像素點的局部特征作為特征輸入,對圖像中的每個像素點進行分類后,提取出道路。實驗結(jié)果表明,該算法提取道路的準確性高,能夠清晰繪出圖像中的道路網(wǎng)絡,且該算法具有較好的魯棒性。
道路提取;XGBoost算法;分類
道路是國家的重要交通設施,國家在交通設施上的投資力度逐年增加,道路里程數(shù)不斷增長。因此,道路網(wǎng)絡的實時更新對于交通管理、車輛導航有著重要作用。遙感圖像能夠提供區(qū)域的高分辨率圖像,高分率圖像能夠提供豐富的顏色、紋理、結(jié)構(gòu)特征,使得從遙感圖像中提取道路網(wǎng)絡成為可能。
從遙感圖像中提取道路網(wǎng)絡的問題可以轉(zhuǎn)換為將圖像中的每個點劃分到兩個類中,即道路區(qū)域和非道路區(qū)域。文獻[1]提出了一種基于SVM的算法用于提取道路網(wǎng)絡,該算法的主要思想是通過提取圖像中地理統(tǒng)計學的紋理特征,利用SVM分類算法來提取道路網(wǎng)絡。文獻[2]提出了一種基于K均值和改進區(qū)域生長的算法來提取道路網(wǎng)絡,該算法首先利用K均值算法將圖像中每個像素點劃分到不同的類中去,然后利用改進的區(qū)域生長算法以及形態(tài)學方法對聚類后的圖像進行后處理,得到道路網(wǎng)絡。文獻[3]提出了一種基于SVM和FCM的算法,該算法首先利用FCM對圖像進行聚類,將圖像中每個像素點劃分到各自的類中,然后利用SVM對聚類后的像素點進行分類后得到道路網(wǎng)絡。文獻[4]提出了一種基于改進的高斯混合模型,從高分辨率遙感圖像提取道路的方法。通過Gabor濾波器計算影像一維紋理描述值,將其作為分割道路的特征值對影像進行預處理,再利用基于兩層高斯混合模型的新分類方式對高分辨率遙感影像進行分類。文獻[5]提出了一種基于均值漂移的道路網(wǎng)絡提取方法,該方法的優(yōu)勢在于不需要任何先驗知識,具有高效率和穩(wěn)定性,特別是對于遙感圖像的檢測。文獻[6]提出了一種基于神經(jīng)網(wǎng)絡的反饋傳播算法,該算法能夠快速有效地提取道路網(wǎng)絡。文獻[7]提出了一種基于bagging和boosting的方法,將多個分類器融合用于提取道路網(wǎng)絡。
在本文中,同樣是利用機器學習算法來對圖像中的像素點進行分類,不同之處在于,本文所用的方法對于事先提取的特征的要求不高,僅需提取圖像中每個樣本點的顏色特征和局部特征,且特征提取的難度較低。此外,本文提出了一種基于XGBoost(eXtreme Gradient Boosting)[8]的分類算法用于提取道路網(wǎng)絡,在利用相同的特征作為模型輸入時,該算法能夠提高道路提取的準確性,文中對不同的機器學習算法進行了比較,并給出實驗數(shù)據(jù)。對于分類后的結(jié)果,本文方法不需要對結(jié)果進行過多處理,即能得到較好的效果。實驗結(jié)果表明,該算法提取的道路具有很好的可辨認性,并且魯棒性很好。
圖像的特征有很多種,顏色特征、紋理特征、形狀特征等,特征的構(gòu)建對于分類結(jié)果的影響顯著。本文主要利用圖像的顏色特征以及圖像中每個像素點的局部特征作為特征輸入。
遙感圖像中每個像素點是由RGB三通道構(gòu)成的,對于圖像中每個像素,由于道路區(qū)域的像素點的顏色明顯有別于非道路區(qū)域,因此,顏色特征可作為一個特征輸入。
雖然圖像中的道路區(qū)域和非道路區(qū)域顏色具有區(qū)分度,但是,由于遙感圖像的分辨率很高,圖像的細節(jié)比較多。因此,圖像中存在以下幾種異常情況:一是非道路區(qū)域存在某些像素點的顏色特征和道路區(qū)域的顏色特征相同;二是遙感圖像在拍攝過程中,由于各種因素干擾,例如,道路旁的樹的陰影、道路上的汽車、房屋陰影等,會造成這些像素點的顏色特征與道路區(qū)域的顏色特征不同;三是道路區(qū)域的顏色不是始終不變的,在某些區(qū)域,道路的顏色會加深或變淺。所以,僅僅依靠顏色特征用于分類,得到的分類結(jié)果并不是很理想。
圖1 鄰近局部特征
本文通過構(gòu)造像素點的局部特征作為特征輸入。局部特征的構(gòu)造如圖1所示。圖1(a)中c點即為圖像中當前像素點。上節(jié)中提取的是該點的顏色特征。由于從圖像的角度來看,當前像素點和其周圍像素點一般具有高度相似性,這些像素點的值應該相似。通過構(gòu)造這類特征,可以很好解決單一顏色特征用于分類時無法解決的問題。并且,提取鄰近像素點的值時,僅需提取鄰近像素點的灰度值,這樣可以降低特征的維數(shù),相較于提取鄰近像素點的RGB三通道值,特征維數(shù)下降為原來的1/3。本文通過實驗驗證后發(fā)現(xiàn),使用的是距離當前像素點3個單位范圍內(nèi)的像素作為用于分類時的特征效果最佳,如圖1(b)所示。
對于一個復雜的分類任務,給定一組訓練樣本集后,求比較粗糙的分類規(guī)則(弱分類器)要比求精確的分類規(guī)則(強分類器)容易得多。提升算法就是從弱分類學習算法出發(fā),反復學習,得到一系列弱分類器(稱為基本分類器),然后組合這些弱分類器,構(gòu)成強分類器。大多數(shù)的提升方法都是改變訓練數(shù)據(jù)的概率分布,針對不同的訓練數(shù)據(jù)分布調(diào)用弱學習算法學習一系列弱分類器。因此,提升算法實際上就是采用加法模型(即基函數(shù)的線性組合)與前向分布算法將多個弱分類器按不同的比例組合成一個強分類器[9]。
當提升算法在學習弱分類器時,如果弱分類器采用決策樹為基函數(shù),由此得到的強分類器的算法稱為提升樹算法。提升樹模型可以表示為決策樹的加法模型:
(1)
其中,T(x;Θm)表示決策樹;Θm表示決策樹的參數(shù);M為樹的個數(shù)。
提升樹算法采用前向分布算法。首先確定初始提升樹f0(x)=0,第m步的模型是:
fm(x)=fm-1(x)+T(x;Θm)
(2)
其中,fm-1(x)是當前模型,通過經(jīng)驗風險極小化確定下一棵決策樹的參數(shù)Θm:
(3)
其中,L()表示損失函數(shù),由于提升樹算法利用加法模型與前向分布算法實現(xiàn)學習的優(yōu)化過程,當損失函數(shù)是平方損失和指數(shù)損失函數(shù)時,每一步優(yōu)化是很簡單的。但對于其他損失函數(shù),往往每一步的優(yōu)化并不容易。針對這一問題,F(xiàn)rediman提出了梯度提升(Gradient Boosting)算法。這是利用梯度下降法的近似方法,其關鍵是利用損失函數(shù)的負梯度在當前模型的值,即:
(4)
XGBoost算法對GBDT算法的改進在于,一是求解優(yōu)化函數(shù)過程中,GBDT采用一階導數(shù),而XGBoost算法計算目標函數(shù)的二階導數(shù);二是XGBoost算法在目標函數(shù)中加入了正則項,有利于防止算法在訓練過程中產(chǎn)生過擬合現(xiàn)象,導致訓練的得到模型泛化能力變差;三是XGBoost算法在訓練過程中借鑒了隨機森林的思想,每次迭代過程中不使用全部樣本,并且不使用每個樣本的所有特征,而是對樣本進行抽樣,采用部分樣本的部分特征去訓練,有效提高了模型的泛化能力;四是XGBoost算法支持并行計算,提高了運行速度。首先定義目標函數(shù):
obj(θ)=L(θ)+Ω(θ)
(5)
其中L(θ)是損失函數(shù),常見的損失函數(shù)有平方損失、Hinge損失、交叉信息熵損失等。Ω(θ)是正則項,常見的正則項有L1和L2,正則項的作用是防止模型在訓練時發(fā)生過擬合現(xiàn)象,導致模型的泛化能力變差。
由于XGBoost算法采用決策樹作為基分類器,因此正則項表示為:
(6)
其中,T表示為當前決策樹的葉子節(jié)點數(shù),ω是每個葉子節(jié)點的權(quán)重。由于模型預測的結(jié)果可以表示為所有決策樹預測結(jié)果的加權(quán)和:
(7)
其中,F(xiàn)表示決策樹空間,即所有決策樹的集合。因此,目標函數(shù)可表示為:
(8)
對于第t輪迭代,目標函數(shù)表示為:
(9)
即對xi的預測值是第t棵樹的預測值和前t-1棵樹預測值的和。對式(9)求一階導數(shù)和二階導數(shù)并移除常數(shù)項可得:
(10)
(11)
(12)
其中gi是一階導數(shù)值,hi是二階導數(shù)值,ωj是決策樹上葉子節(jié)點的權(quán)重,T是決策樹的葉子數(shù)目,γ是懲罰值。
為了便于比較,采用另外幾種分類算法進行對比。GBDT算法作為Boosting算法的最初實現(xiàn)版本,在實際應用中有著較好的表現(xiàn)。SVM算法以及邏輯斯蒂回歸算法作為基本的分類的算法,由于這兩個算法僅僅是一個分類算法,而不是集成算法,所以同等條件下,這兩個算法的分類結(jié)果不是很好。通過對四種不同分類進行實驗,得出實驗結(jié)果。
由于圖像中只有道路區(qū)域和非道路區(qū)域兩部分,因此,對于分類的結(jié)果,不僅僅使得道路區(qū)域被準確識別,還要求非道路區(qū)域盡量不要被誤劃分到道路區(qū)域。因此采用如下兩個指標:
(13)
(14)
n1表示道路區(qū)域被正確預測的數(shù)目,n2表示道路區(qū)域被預測為非道路區(qū)域的數(shù)目,road_precision的結(jié)果越大,說明道路區(qū)域被正確劃分的區(qū)域多。r1表示非道路區(qū)域被預測為非道路區(qū)域的數(shù)目,r2表示非道路區(qū)域被預測為道路區(qū)域的數(shù)目,non_road_precision的結(jié)果要盡可能大,說明越大,說明非道路區(qū)域被錯劃分到道路區(qū)域的數(shù)目越小。
本實驗中,選取的測試圖片來源于QuickBird衛(wèi)星所拍攝的西班牙羅塔島地區(qū),該衛(wèi)星拍攝的圖像的分辨率是0.61 m。實驗結(jié)果如圖2所示。
圖2 算法分類效果圖
從圖2效果可知,XGBoost算法提取出的的道路網(wǎng)絡清晰可見,對于非道路區(qū)域的分辨能力也比其他三種算法好。圖中道路的材質(zhì)有兩種,圖中左上角的道路材質(zhì)和其他地方道路的材質(zhì)不同,XGBoost算法同樣能夠提取出清晰的道路網(wǎng)絡。對于圖中的非道路區(qū)域的干擾,XGBoost算法同樣能夠做到區(qū)分。
從表1的數(shù)據(jù)可知,XGBoost算法無論是road_precision還是non_road_precision都比其他三種算法高。這個結(jié)果與圖2中的效果具有一致性。從表中還可以看出,雖然SVM算法在道路區(qū)域提取的準確度上能夠接近XGBoost算法,但是SVM對于非道路區(qū)域干擾以及不同材質(zhì)道路的提取方面明顯存在差距。Logistic算法是效果最差的,無論是對于道路區(qū)域的提取,還是對于非道路區(qū)域的剔除,該算法都不能得到較好的效果。由于XGBoost算法是GBDT算法的改進,可以看出,GBDT算法處理結(jié)果和XGBoost算法接近,但是GBDT算法對于非道路區(qū)域的剔除沒有XGBoost算法的效果好。
表1 算法分類結(jié)果
本文利用圖像的顏色特征以及圖像中每個像素點的局部特征作為XGBoost算法的特征輸入,在訓練得到模型后,對圖像中每個像素點進行分類。并將XGBoost算法與GBDT、SVM、Logistic算法進行比較后發(fā)現(xiàn),XGBoost算法對圖像的分類效果最佳。對于圖像中存在不同材質(zhì)道路以及非道路區(qū)域的干擾,能夠表現(xiàn)出良好的性能,算法的可靠性高。并且,本文提取的特征簡單,避免了在處理圖像分類過程中需要事先對圖像進行理解并構(gòu)建獨有特征的困擾。通過結(jié)合本文的特征與XGBoost算法,能夠很好地提取道路網(wǎng)絡。本文方法為其他圖像分類工作提供了一個參考。
[1] 張曦.基于時頻特征和支持向量機的高分辨率遙感影像道路提取[D].合肥:安徽大學,2016.
[2] 胡永祥,李建飛,文志強,等.基于K均值和區(qū)域生長的高分辨率遙感影像道路網(wǎng)提取[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] 李航.統(tǒng)計學習方法[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的遙感圖像中道路網(wǎng)絡的提取J.微型機與應用,2017,36(24):28-31.
2017-06-23)
楊燦(1992-),男,碩士研究生,主要研究方向:數(shù)字圖像處理。