張立亭,喻 欣,羅亦泳,楊靜雯
(東華理工大學 測繪工程學院,江西 南昌 330013)
遙感圖像進行場景分類時,如何精準地提取圖像特征以及高效的進行分類,是實現場景分類的重要前提。遙感圖像的特征提取,其方法大致分為:圖像低層、中層和高層特征。圖像的低層特征包括結構、光譜、紋理特征,它們計算不復雜且容易實現,運用廣泛。中層特征則是利用某種算法對低層特征進行編碼,獲得圖像的中層特征。視覺詞袋模型(BoVW)[1]是該特征中最具代表性的方法。高層特征一般是指卷積神經網絡(CNN)模型提取的圖像特征,其提供的是一種端到端的學習模型。除了將CNN模型遷移至遙感圖像數據集中微調后進行分類,也可將CNN提取的某一全連接層進一步編碼。目前大多數研究中,使用支持向量機(SVM)對圖像特征進行場景分類,多使用網格搜索算法優化分類器,其耗時長且驗證冗余。綜合考慮到各層特征中各類算法的性能和效率,以及不同圖像特征之間的特點,本文進行多層次特征提取,在分類時則引入結構相對簡單、尋優能力較好的粒子群算法(PSO),來優化支持向量機的參數,以提升分類效果。本文利用SIFT提取低層特征,再通過聚集局部描述符編碼(VLAD)對SIFT提取的局部特征描述子進行編碼得到中層特征,同時使用預訓練的VGG-16通過遷移學習的方法來提取圖像的高層特征,再將上述提取到的各層特征利用支持向量機(SVM)進行分類,同時采用PSO進行參數尋優,提高遙感圖像場景分類的精度。
在本文中,利用SIFT[2]從每張圖像中提取低層特征點。首先利用尺度可變高斯函數和圖像卷積生成高斯差分尺度空間;然后在尺度空間中檢測極值點,即每一個檢測點與同尺度相鄰的8個點和上下相鄰尺度對應的9個點,共26個點比較。若該檢測點在所有點中為最大或最小值,則該點為特征點;隨后通過擬合函數來精確確定特征點的位置和尺度;接著通過圖像梯度方向為每個關鍵點分配位置、尺度和方向3個指定方向參數;最后以數學方式來定義關鍵過程,以實現對關鍵點的描述。
在本文中,在進行SIFT特征提取時,使用大小為16×16,步長為8像素的滑動窗口,最終每幅圖像得到一個128維的圖像局部特征。
圖像場景分類時,有很多方法可以進行圖像中層特征的提取。在本文中,圖像中層特征是利用VALD算法對SIFT提取的圖像局部描述子進行編碼。VLAD是一種簡化的Fisher Vector,它利用K-means聚類方法代替GMM(高斯混合模型)聚類,充分利用局部特征,計算高效且方便。其具體的步驟[3]如下:
(1)本文局部圖像塊的特征為128維向量X={x1,x2,…,xN}∈R128×N,N為圖像塊數。利用K-means聚類生成M類,聚類中心為B={b1,b2,…,bM}。
(2)將每個局部描述子賦給離它最近的聚類中心,然后所有局部描述子與聚類中心的差值做累加,即
(1)
式中:NN(xt) 表示離xt最近的聚類中心。
(3)對差值和vi做L2歸一化,拼接成一個K=M×128的一維向量
v=[v1,v2,…,vM]=[v1,v2,…,vK]
(2)
K-means聚類的缺點之一是對碼本大小(即M)敏感。在本文中,根據文獻[4]選擇碼本大小進行特征編碼。
卷積神經網絡作為深度學習中最常用的一種網絡模型,其提取的圖像高層特征,既可用于直接分類,也可以提取出來再繼續處理。目前,被廣泛使用的CNN模型包括VGGNet系列、GoogLe Net系列、ResNet系列和Alex Net等。由于VGG-16模型具有層數較少,性能較高等優點,本文利用預訓練的VGG-16對遙感圖像進行高層特征的提取。
Simonyan K等提出VGG-16網絡模型:13個卷積層:內核大小為3×3,步長為1×1;5個池化層:內核大小為2×2,步長為1×1;3個全連接層;1個Softmax層。該網絡首層卷積通道數為64,隨著層數的增加翻倍,最多為512個通道,后不再變化。在卷積層之后是3個全連接層,兩個全連接層通道為4096維和一個用于Softmax通道為1000維。文獻[5]指出,全連接層所提取特征的分類效果始終優于卷積層提取的特征。前兩個全連接層,它們進行分類的結果大致相同,但在大多數情況下,第一個全連接層的特征表現稍好。至于最后一個全連接層,因為它實際上是一個Softmax層,只是通過特定任務計算每個已定義類別的分數,該圖層不像以前的圖層那樣包含太多一般要素信息。因此,本文選擇使用VGG-16模型的第一個全連接層提取特征作為全局特征。
支持向量機是被廣泛應用的機器學習方法,其核心思想是尋找一個最優的分類超平面,將待分類的兩類樣本正確分開,使兩類樣本點到超平面的間隔盡可能大。它在處理小樣本、高維數和非線性等問題上表現良好,并且在解決分類問題上有很大的優勢,被廣泛應用于分類領域。
核函數選擇不同使SVM形成不同的分類器,其常用的核函數類型包括線性核、多項式核、徑向基(RBF)核和Sigmoid核函數4類。本文的SVM選擇RBF核函數,而核函數的參數選取對分類結果影響很大,影響核函數的參數為懲罰因子和核函數參數。因此,需要選擇合適的參數以提升分類效果。針對參數的選擇問題,尚未有統一的方法。傳統的方法包括交叉驗證法、網格搜索法等,但存在耗時長以及冗余的驗證流程等問題,使用更多的是群智能算法,如遺傳算法、粒子群算法(PSO)和量子粒子群算法等優化SVM參數。考慮到粒子群算法結構簡單且尋優能力較好,本文利用PSO算法優化SVM參數,其具體步驟[6]如下:
(1)參數初始化,包括種群規模,粒子的初始位置和速度;
(2)通過K折交叉驗證確定每個初始化粒子的適應度值,即交叉驗證所得到的分類準確率。
(3)根據式(3)、式(4),來更新粒子的位置和速度
vi=wvi+c1r1(pbesti-xi)+c2r2(gbesti-xi)
(3)
xi=xi+vi
(4)
其中,xi=(x1,x2,…,xn) 為粒子的當前位置;vi=(v1,v2,…,vn) 為粒子速度;pbest為粒子i的個體最優解;gbest為粒子群的全局最優解;c1和c2為學習因子,是常數;r1和r2是0~1的隨機數;w為慣性因子。
(4)將每個粒子的當前適應度值與粒子個體極值進行比較,若優于個體極值則替換;再將當前個體極值與全局極值比較,若優于全局極值則替換。
(5)若當前未滿足終止條件,則循環執行步驟(3),直至達到終止條件為止。
(6)將優化得到的參數值C和g輸出,利用SVM進行分類預測。
目前,已經有很多公開的數據集可用于遙感圖像場景分類的性能評估。本文采用RSC11數據集和WHU-RS19數據集進行實驗。
RSC11數據集[7]是從谷歌地球中提取的,該數據集覆蓋了包括華盛頓、洛杉磯、舊金山、紐約、圣地亞哥、芝加哥和休斯頓在內的多個美國城市的高分辨率遙感圖像。使用了紅、綠、藍3個光譜波段,包括密林(denseforest)、草原(grassland)、港口(harbor)、高層建筑(highbuil-dings)、低層建筑(lowbuildings)、立交橋(overpass)、鐵路(railway)、住宅區(residentialarea)、道路(roads)、疏林(sparseforest)、儲罐(stroagetanks)11個復雜場景類。一些場景類別在視覺上非常相似,這增加了識別場景圖像的難度。數據集共包含1232張圖像,每類約100張。每張圖像的大小為512×512像素,空間分辨率為0.2 m。圖1為RSC11數據集中各類圖像的示例。

圖1 RSC11數據集中各類圖像示例
WHU-RS19于2010年發布[8]。經過幾次擴展,最終版本由19個類別組成,共1005張圖像[9]。空間分辨率高達0.5 m,光譜波段為紅、綠、藍,圖像像素為600×600,包括機場(airport)、海灘(beach)、橋梁(bridge)、商業區(commercial)、沙漠(desert)、農田(farmland)、足球場(footballField)、森林(forest)、工業區(industrial)、草地(meadow)、山區(mountain)、公園(park)、停車場(parking)、池塘(pond)、港口(port)、火車站(railwayStation)、住宅區(residential)、河流(river)、高架橋(viaduct)19個場景類別。由于該數據集中的圖像提取自世界不同地區,相應的場景圖像在規模、方向、分辨率和光照方面都有很大的差異。圖2為WHU-RS19數據集中各類圖像的示例。

圖2 WHU-RS19數據集中各類圖像示例
本文采用2個指標來評價遙感圖像數據集的場景分類性能:總體分類精度和混淆矩陣。
總體分類精度為
(5)
式中:N為數據集的樣本總數;Z為分類正確的樣本數。
混淆矩陣是一個更直接的評價指標,允許直接可視化每個類的分類性能。矩陣的每一列代表一個預測類中的實例,每一行代表一個實際分類中的實例,因此矩陣的每一項xij代表的是實際上屬于第i種類型的圖像,預測為第j種類型的圖像占i類別樣本的比例。
本文實驗的總體流程如圖3所示。

圖3 實驗總體流程
本文實驗內容分為兩部分:在實驗一中,利用SIFT、VLAD(SIFT)、VGG-16分別提取各層特征作為SVM的輸入數據,按訓練集占總數據集的比例0.1,0.2,…,0.9, 隨機劃分訓練集和測試集,依次進行分類實驗,取10次實驗的平均值作為最終的分類準確率。分類時,懲罰因子C設為1,核函數參數g設為1。在實驗二中,選取每個數據集中分類準確度最高的方法,采用粒子群優化算法,算法中涉及到交叉驗證的過程,K設為5,輸出優化參數C和g,獲得優化后的分類精度。本文中使用的是由臺灣林智仁老師等開發完成的LIBSVM工具箱。
3.4.1 各層特征分類結果分析
各層特征進行分類的結果見表1,在文中的兩個數據集上,隨著訓練集占比越重,分類精度均有所提升,占比達到0.9時,分類效果最佳。利用VGG-16提取的高層特征分類效果最好,其次是利用VLAD編碼得到中層特征的分類效果,而利用SIFT提取的低層特征分類效果最差。主要是因為卷積神經網絡可以訓練得到圖像的高層特征,比獲得較低層特征的方法相比,具有更好的分類性能,RSC11數據集的分類精度為92.91,WHU-RS19數據集的分類精度為95.89。

表1 各層特征分類精度
使用本文方法對RSC11和WHU-RS19數據集的分類識別率分別如圖4和圖5所示(圖中每類內的柱狀排列順序依次為0.1~0.9)。各分類的識別率大致呈現低層特征<中層特征<高層特征,且隨著訓練集的占比增加而提升,也存在少數降低的情況,可能是由于訓練集是根據占比隨機選取組成所導致的。RSC11的各個類別中,立交橋(overpass)和鐵路(railway)的分類效果較差,該類中存在較多的交通設施類,包含的場景類別較為復雜。而WHU-RS19中,森林(forest)和港口(port)的分類效果較差,其受光照、方向等方面的影響,同類的場景圖像間差異大,容易錯分入其他近似的類別中。綜上所述,在不同的場景類別中,紋理差異性小的類別分類精度較高,如農田(farmland)、沙漠(desert)等,而對于包含多種地物的復雜場景分類精度較低,如立交橋(overpass)、建筑物等,特別是同種地物根據覆蓋屬性劃分為不同類別,如高層建筑和低層建筑等。

圖4 RSC11數據集場景分類準確率

圖5 WHU-RS19數據集場景分類準確率
3.4.2 PSO優化SVM的分類結果分析
圖6為PSO-SVM算法在RSC11和WHU-RS19數據集上粒子的適應度收斂情況。表2為在本文兩個數據集上PSO-SVM算法的表現,表中記錄了優化后的參數C和g,訓練集交叉驗證的平均分類準確率(CV)以及測試集的分類精度。圖7、圖8為PSO-SVM算法下,測試集的混淆矩陣。

表2 數據集實驗結果

圖6 PSO-SVM優化結果

圖7 RSC11數據集分類結果混淆矩陣

圖8 WHU-RS19數據集分類結果混淆矩陣
從表2中可以看出,RSC11數據集只在測試集上的分類效果較好,測試集上的交叉驗證分類準確率稍有下降,而WHU-RS19數據集上,PSO-SVM算法在訓練集上的交叉驗證分類準確率以及測試集上的分類結果均明顯優于未進行參數尋優的分類結果。從數據集的分類識別率分析,前者的識別率大部分有所提高,有少部分稍微下降,高層建筑(highbuildings)的識別率最低,其次是立交橋(overpass)、道路(roads),且存在相互錯分的情況。高層建筑所包含的地物類別復雜,與其它錯分類中均有一定的相似之處,另外兩類均屬于交通設施類,類間差異小,提取的特征內容受影響較多,對分類效果造成一定影響。后者的識別率大部分都有提高至100%,而足球場(footballField)、山區(mountain)、高架橋(viaduct)的識別率均有所下降,分別錯分入工業區(industrial)、河流(river)、機場(airport)中,由于足球場、山區、高架橋這幾類圖像在某些特征上與其錯分的類別比較相似,不易區分。
綜上所述,PSO-SVM算法在一定程度上可以提高數據集的分類效果,且在不同的數據集上效果不同。
3.4.3 WHU-RS19數據集不同分類方法分類性能對比
WHU-RS19數據集是最常用的遙感圖像場景分類數據集之一,為了驗證本文方法的優越性,將本文方法在該數據集上的表現結果與其它文獻方法所得結果進行對比,見表3。

表3 WHU-RS19數據集不同分類方法對比
由表2可知,本文方法相比其它的方法,分類結果提升了1%~3.7%左右,從而說明了本文方法的有效性。利用提取的圖像特征進行場景分類時,通過PSO優化SVM參數,可以使分類效果更佳。
本文提出了多層次特征提取結合PSO-SVM的圖像場景分類算法。利用SIFT算法、VLAD算法以及VGG-16模型分別提取遙感圖像的低、中、高層特征,將提取的特征作為SVM的輸入數據,按訓練集占總數據集的比例0.1,0.2,…,0.9, 隨機劃分進行實驗,得出:在提取的3種特征中,高層特征分類效果最好,中層特征次之,低層特征最差。在參數優化的實驗中,選擇CNN獲得的高層特征,占比則為0.9,利用PSO算法優化SVM的懲罰參數(C)和核函數參數(g),得到各數據集的分類準確率。通過本文兩個數據集的分類結果,可以明顯看出,該方法比實驗一方法的分類結果好,且較以往的方法也有一定的提升。但是,本文所使用的方法也存在一定程度的不足,如提取的特征未實現融合,不同的數據集適用于不同的分類器等。下一步的的工作將針對特征加權融合,和分類器的適用性問題,以更好提升場景分類效果。