馮永亮,申少格
(西安文理學院信息工程學院,陜西西安710065)
隨著航空航天遙感技術的飛速發(fā)展,面對具有“三多”(多傳感器、多平臺、多角度)和“三高”(高空間分辨率、高光譜分辨率、高時相分辨率)的海量遙感影像數(shù)據(jù),如何通過變化檢測技術解決4W(When、Where、What object、What change)問題顯得尤為迫切[1]。國內外學者陸續(xù)從不同的應用角度提出了各種各樣的變化檢測方法,并已廣泛應用于土地利用、植被覆蓋、森林變化、災害檢測等領域。但是,目前尚沒有一種方法能夠適合所有的應用問題。文中針對多光譜遙感影像在低維空間非線性可分這一問題,提出了一種基于KPCA 和Kmeans++的變化檢測方法,求取兩個時相影像差值的絕對值后,通過KPCA 將低維空間數(shù)據(jù)轉為高維特征向量,進而生成差異圖像,接著經過Kmeans++聚類,生成變化結果圖像。
變化檢測是通過觀察不同時相的地物或現(xiàn)象識別其狀態(tài)變化的過程[2]。變化檢測過程主要分為4 個階段:預處理階段、變化檢測階段、閾值分割階段以及精度評價階段[3]。首先針對選取的數(shù)據(jù)進行數(shù)據(jù)配準和輻射校正等預處理工作,然后根據(jù)特征差異生成變化信息,接著生成具有語義特征的變化結果,最后評價變化檢測的精度。國內外學者已經從數(shù)據(jù)時相、分析粒度、先驗信息、空間維度、時間尺度等不同的角度對變化檢測方法進行了分類[4],其中,變化檢測根據(jù)分析粒度可分為像素級、特征級以及對象級3 種方式。PCA 主成分分析法就是一種基于像素級的變化檢測方法。根據(jù)數(shù)據(jù)處理過程的本質,變換檢測又分為有監(jiān)督和無監(jiān)督兩類,前者需要提供適合分類的訓練集,后者則將兩幅圖像直接進行對比,不需要提供額外的信息。而Kmeans 算法屬于無監(jiān)督聚類。
常用的遙感影像變化檢測的方法包括差異主成分分析法、主成分差異分析法、多波段主成分分析法等。差異主成分分析法先將原始影像相減,取差值的絕對值,處理得到一個差值影像,過濾掉差值影像中的背景部分,再對差值影像進行主成分分析,得到變化結果中的第一個分量集中了兩個時相影像的主要差異信息,最后進行閾值分割,得到變化圖斑[5];主成分差異分析法是先分別對不同時相的原始影像進行主成分變換,然后對兩幅主成分變換后的圖像取差求絕對值,作為變化信息圖像。這種變換方式利用原始影像中的前幾個分量對應的差值分量來作波段組合,進而反映不同時相的變化情況;多波段主成分分析法是將原始影像的各波段組合成一個兩倍于原影像波段數(shù)的新影像,再對新影像進行主成分變換[6]。該文采用的是差異主成分分析法。
PCA(Principal Componet Analysis)[7]即主成分分析法,利用較少的主要指標作為代表,這些主要指標彼此無關,同時盡可能多地表示原有指標的有用信息。作為多維正交變換,PCA 常被用于多光譜遙感影像處理。假設向量X=(x1,x2,…,xn)T表示原多光譜影像的像元矢量,n為波段數(shù),將原影像X乘以線性變換矩陣A,產生新的影像Y=(y1,y2,…,yn)T,即Y=AX。變換矩陣A是多光譜影像X的協(xié)方差矩陣的特征向量的轉置矩陣[8]。變化前原影像X各波段之間具有很強的相關性,經過PCA 變換后,新影像Y的各分量yi之間具有最小的相關性。PCA 有效降低了數(shù)據(jù)集的維數(shù)[9],但它對存儲空間和計算復雜度有較高的要求。對于n維空間,PCA 需形成n×n的矩陣,同時,PCA 只能處理線性數(shù)據(jù)降維,忽略了高于二階的相互關系,提取的結果往往不是最優(yōu)的。
數(shù)據(jù)在低維度空間不是線性可分的,但是在高維度空間可以變成線性可分?;谶@一特征,人們引入了核主成分分析法KPCA(Kernel PCA)。KPCA是PCA 的一種擴展算法,利用非線性函數(shù)將輸入空間映射到高維特征空間,并進行相關的數(shù)據(jù)處理。KPCA 的核心是將特征空間的內積運算轉換為原始空間的核函數(shù)計算[10]。作為一種常用的核方法,KPCA 將原始數(shù)據(jù)通過核函數(shù)(Kernel)映射到高維度空間,再利用PCA 算法進行降維[11]。KPCA 采用了比較復雜的非線性映射,提高了非線性數(shù)據(jù)的處理效率,KPCA 方法的原理如圖1所示。
圖1 KPCA方法的原理
KPCA 不僅適合解決線性問題,而且能提供比PCA 更多的特征數(shù)目,可以最大限度地提取特征信息。因此,KPCA可以用于高光譜遙感影像降維處理[11]。KPCA 的推導過程如下:
1)輸入空間的M個樣本xk(k=1,2,…,M),xk∈RN,使,其協(xié)方差矩陣為:
2)利用映射函數(shù)?將輸入空間的樣本點轉換為特征空間樣本點:
3)求解下列方程的特征值和特征向量:
4)進而求出:
5)特征向量ν可以由?(xi)(i=1,2,…,M)線性表示為:
6)由式(3)~(5)得:
7)定義M×M矩陣K:
8)式(7)簡化為:
9)顯然滿足Mλα=Kα,必須滿足式(8)。
10)求解Mλα=Kα,即可獲得要求的特征值和特征向量。
Kmeans++是Kmeans 的一種改進。Kmeans 是一種經典的基于劃分的聚類算法,其目標是將對象集劃分為若干個簇,使得簇內對象間的相似度較高,而簇間對象的相似度較低。Kmeans 首先隨機選取k個初始聚類中心,接著分別計算所有點到這k個點的距離,依據(jù)距離大小將所有數(shù)據(jù)點分配到離中心點較近的簇中,再重新計算各簇的聚類中心點,根據(jù)聚類準則函數(shù),采用迭代的方法不斷重復以上過程,直到聚類中心不再變化或者是聚類準則函數(shù)收斂為止[12]。Kmeans 聚類運算簡單高效,耗費資源少,且具有良好的可伸縮性,但該算法采用隨機的方式選取k個初始聚類中心,不同的初始聚類中心會產生不同的聚類結果[13]。2007年,David Arthur 提出了Kmeans++[14],該方法并不是隨機地給出若干個初始聚類中心,而是先隨機選取一個點作為第一個初始聚類中心,然后計算所有點到該聚類中心的距離,接著依據(jù)“聚類中心相互之間距離越遠越好”的樸素原則[15],選取新的聚類中心,不斷重復,直到選出k個聚類中心,最后將這些聚類中心作為初始聚類中心來運行Kmeans。Kmeans++算法的過程如下:
Step1:隨機挑選某個樣本點作為第一個初始聚類中心c1,即C=c1;
Step2:分別計算每一個樣本點x到其最近聚類中心的距離D(x);
Step4:重復Step2 和Step3,直到選出了k個初始聚類中心;
Step5:利用選好的k個初始聚類中心來運行Kmeans 算法。
Kmeans++對Kmeans 算法隨機選取初始聚類中心進行了改進,通過計算與距離占比相關的概率逐一選取新的初始聚類中心,直到最后選取k個初始聚類中心[16]。實踐證明,該算法改進了聚類效果。
該文采用KPCA 和Kmeans++的方法對遙感影像進行變化檢測。首先對兩幅不同時相的遙感影像進行預處理,求兩幅影像的差值,并取絕對值,接著利用KPCA 提取特征向量形成變化差異圖[17],最后利用Kmeans++聚類算法對差異圖進行分析,得到最終的變化圖像。KPCA 和Kmeans++算法的流程如圖2所示。
圖2 KPCA和Kmeans++算法流程圖
考慮不同數(shù)據(jù)源及傳感器對變化信息的影響,該文選取2008年和2018年的Landsat8 影像作為研究對象,空間分辨率為10 m,截取其中300×300 像元,如圖3所示。首先以2008年影像為基準,對2018年影像進行大氣校正、幾何校正,并進行圖像配準;然后取兩幅影像差值的絕對值,獲取差異圖像;接著利用KPCA 方法提取特征向量[18],取得特征向量差異圖像;最后利用Kmeans++進行聚類,獲得變化/非變化語義圖像,并輸出變化的結果圖像,如圖4所示,其中白色為變化的部分,而黑色表示未變化。以目視解譯的變化結果作為參考對象,計算出混淆矩陣和檢測精度,總體精度較高,其值為93.5%,Kappa 系數(shù)為0.62,變化檢測結果和實際結果基本一致,并且精度較高。
圖3 不同時相的源圖像
圖4 變化檢測的結果圖像
文中提出了一種新的遙感影像變化檢測方式,通過KPCA 將低維空間數(shù)據(jù)映射為高維特征向量,再通過Kmeans++聚類生成檢測結果。該方法主要研究的是影像間像元數(shù)值的變化,下一步重點研究特征屬性的變化。