李 飛,盧 湖 川,薄 純 娟
( 1.大連理工大學 電子信息與電氣工程學部,遼寧 大連 116024;2.沈陽航空航天大學 計算機學院,遼寧 沈陽 110136;3.大連民族大學 機電工程學院,遼寧 大連 116600 )
高光譜圖像具有很高的光譜分辨率,包含數百個甚至上千個光譜波段.豐富的光譜信息為精確的目標識別和分類應用提供了有利條件[1].然而,其龐大的數據也帶來了數據傳輸與存儲慢、冗余信息多等一系列問題,而且光譜維數的增加使傳統圖像處理方法不能完全適用于高光譜圖像數據.一方面,高光譜圖像中存在大量的冗余信息;另一方面,高光譜圖像的光譜維數太高,很容易導致維度災難問題[2-3].因此,對高光譜圖像進行降維處理是很有必要的.
針對高光譜圖像的降維方法有兩種:一種是特征提取,利用基于某一準則的變換矩陣進行數據變換得到低維光譜數據;另一種是波段選擇(也稱特征選擇),根據選擇準則從原始波段挑選最佳波段子集,以保證光譜物理信息不被破壞.例如,主成分分析(principal component analysis,PCA)、線性判別分析(linear discriminant analysis,LDA)、非參數加權特征提取(non-parametric weighted feature extraction,NWFE)等,這些特征提取方法的處理結果改變了原始波段的物理意義.波段選擇是高光譜圖像在不進行特征變換的情況下降低波段維數的一種有效方法[4].根據先驗條件現有波段選擇方法可以分為兩類:有監督波段選擇和無監督波段選擇.有監督波段選擇方法需要樣本標簽的先驗信息,因此受到應用目標的限制[5].例如,Wei等提出了基于粒子群優化的有監督波段選擇算法[6];Yang等根據各類別的譜特征,提出了采用序貫前向選擇搜索方法選擇波段[7];Cao等將高光譜圖像的局部空間信息集成到波段選擇算法中[8].與有監督波段選擇方法不同,無監督波段選擇不需要樣本標簽的先驗信息,直接對無標簽原始數據進行波段選擇.雖然在某些特定的應用中,有監督波段選擇方法獲得的波段比無監督波段選擇方法獲得的波段更有效,但是在很多情況下先驗知識不容易獲得,因此無監督波段選擇方法比有監督波段選擇方法實用性更強,適用范圍更廣.例如,Bajcsy等對一些無監督波段選擇方法進行了簡要描述和實驗,包括信息熵、一階和二階譜導數、比值、相關性和基于主成分分析的排序算法[5].袁博等將相對熵矩陣與互信息結合,定量描述高光譜影像信息分布,進行波段選擇[9].Du等提出了基于相似性的波段選擇算法:線性預測(linear prediction,LP)和正交子空間投影(orthogonal subspace projection,OSP)[10].Yang等又利用GPU將LP和OSP算法與并行算法相結合,提高了運算效率[11].Sui等提出了一種無監督的波段選擇算法,將總體精度和冗余度的約束結合到波段選擇過程中,設計了一個平衡參數通過優化模型來權衡總體精度和冗余度[12].曾夢等使用深度對抗子空間聚類實現了高光譜波段選擇[13].
稀疏表示是對原始信號的分解過程,在這個過程中,將輸入信號表示為字典的線性近似.在圖像處理領域,稀疏表示已成功應用于圖像去噪、圖像復原、圖像識別等領域.于偉等利用稀疏表示理論將上下文字典學習用于提高圖像超分辨率技術[14].同樣,在高光譜圖像處理方面,稀疏表示方法也取得了巨大的成功[15].本文在多字典稀疏表示(multi-dictionary sparse representation,MDSR)波段選擇算法[16]基礎上,提出基于上下文多字典稀疏表示(context multi-dictionary sparse representation,CMDSR)波段選擇算法.CMDSR波段選擇算法將圖像的每個波段看作字典原子,用該字典對相鄰多個波段進行聯合稀疏表示求解,可以得到代表輸入樣本原子和相關權重的稀疏向量.向量中的非零元素可以看成是這些波段在整個圖像中所占權重,最后利用累計權重求出每個波段圖像對于整個高光譜圖像的貢獻度,優先選擇貢獻度大的波段.為了評價該算法的性能,將該算法同幾種無監督波段選擇算法進行比較.采用一組藻類水體的高光譜曲線數據和一幅公開高光譜圖像數據集做實驗.
波段選擇的主要目的是找到一個最優或次優的波段子集,來代替原始高光譜圖像信息.換句話說,這個波段子集在某些度量標準下能夠近似表示原始數據.因此,應該找出每個波段對整個圖像的貢獻,根據貢獻大小選擇合適波段.稀疏表示可以用來計算波段對整個圖像的貢獻.當一個波段圖像由其他波段圖像組成的字典來近似線性組合時,所求出的稀疏系數可以表示每個字典原子對目標波段圖像的貢獻.如果系數絕對值較大,則該波段原子對目標波段的貢獻較大;如果系數絕對值較小,則該波段原子對目標波段的貢獻較小.通過相應的字典計算每個波段的稀疏表示,得到一系列權重.通過統計權重可以得到各波段對整個圖像的貢獻.因此,權重較大的波段就是最后選定的波段.

yi≈Diαi
(1)
這里字典矩陣Di包含除yi以外的其他波段,αi是線性組合的系數.這個公式也可以轉換成如下形式:
yi=Diαi+βi
(2)
其中βi是誤差項.如果αi是稀疏的,那么可以計算出αi的值.可以將其看成是Di中每個原子對波段yi的貢獻情況,系數越大,該原子對這個波段的貢獻越大,反之亦然.稀疏系數αi可以通過求解下面的約束優化問題得到:
(3)

(4)

(5)
其中K0是給定稀疏度的上界.可以用貪婪追蹤算法近似求解,例如,匹配追蹤(matching pursuit,MP)算法、正交匹配追蹤(orthogonal matching pursuit,OMP)算法、子空間追蹤(subspace pursuit,SP)算法.這里采用OMP算法求解[17].MP算法的基本思想是:通過從字典矩陣中選擇與信號匹配的原子來構造稀疏近似.通過推導信號的殘差,選擇與殘差匹配最佳的原子.重復上述過程,直到殘差可以忽略或達到預先定義的迭代次數.OMP算法在MP算法基礎上做了改進,要求在分解每一步選擇的所有原子都是正交的.在相同的準確度條件下,OMP算法的收斂速度比MP算法快.
每個波段圖像由相應的字典表示之后,得到一個稀疏系數矩陣.在該矩陣中,大多數系數都為零.系數的絕對值越大,對應的字典原子對原始高光譜圖像貢獻越大.對整個系數矩陣,按行計算不為零的系數個數,得到一個橫坐標為波段標號的直方圖.如果用hi表示直方圖,那么計算公式如下:
(6)
當x=0時,g(x)=0,其他情況下g(x)=1.在直方圖中,對系列進行排序,最后選系列值較大的波段.下面給出具體的算法步驟.
步驟1將高光譜圖像拉伸成二維矩陣.



步驟5用式(6)統計非零元素系數個數.

高光譜圖像中,相鄰元素的光譜具有很高的相似性[18],同理,相鄰波段通常也具有相似的空間信息,因此在上文提出的稀疏表示模型中,應該考慮上下文波段信息,整體流程如圖1所示.對于給定的字典,小范圍內鄰域波段的稀疏性相似,是相同公共原子的稀疏線性組合,只是對應的稀疏系數不同.例如yi和yj是兩個相鄰的波段圖像,那么yi對字典的稀疏表示為
yi=Dαi=αi,λ1dλ1+αi,λ2dλ2+…+αi,λkdλk
(7)
這里下標集Λk={λ1,λ2,…,λk}對應字典原子的下標.yj與yi相鄰,那么支撐yj的原子集與支撐yi的原子集相同,可用{dv}v∈Λk表示,但是對應的系數集{αj,v}v∈Λk不同,即:
yj=Dαj=αj,λ1dλ1+αj,λ2dλ2+…+αj,λkdλk
(8)
由此可以擴展到一個包含多個相鄰波段的鄰域情況,例如,Y=(y1y2…yN)表示一個B×N的矩陣,列向量{yn}n=1,2,…,N是其中的一個波段,可以用聯合稀疏表示:
Y=(y1y2…yN)=
(Dα1Dα2…DαN)=
D(α1α2…αN)=DS
(9)
這里S=(α1α2…αN),它是一個行稀疏矩陣,在給定字典D的情況下,可以通過解決下面的聯合稀疏問題求解:
(10)

圖1 本文提出的波段選擇算法總體流程圖
上面的公式也可以改寫成
(11)

步驟1將高光譜圖像拉伸成二維矩陣.



步驟5用式(6)統計非零元素系數個數.

在實驗中,將本文算法與4種波段選擇算法做比較,分別是MDSR算法、LP算法、OSP算法和Cluster(基于聚類的波段選擇)算法.
本實驗采用兩組數據集,第1組是藻類水體高光譜數據,來自中國海洋監控中心遙感實驗室.它是4類藻種水體在不同葉綠素濃度下的光譜反射率曲線,包括甲藻、叉角藻、夜光藻和異彎藻.光譜值包含240個波段,波長覆蓋范圍為400~1 000 nm.第2組數據ROSIS高光譜圖像PaviaU 采集自意大利北部的帕維亞大學校園,共有103個波段,610×340個像元,包含9類地物.
MDSR和CMDSR兩個算法中,創建的字典要保證過完備性,但是高光譜圖像拉伸成二維矩陣后,維數過大,因此要減少字典的原子維數.在文獻[16]和本文中均采用隨機選取N個像元的方法,文獻[16]驗證了N值的變化不會影響波段選擇的結果和性能.圖2展示MDSR和CMDSR算法對兩組數據集的波段選擇結果.橫坐標為波段序號,縱坐標是波段權重.權重值越大,說明該波段對整個數據的貢獻越多.CMDSR算法的處理結果與MDSR算法的處理結果基本一致,但是在時間效率上考慮,CMDSR算法效果更好.
為了分析波段選擇算法的性能,從分類精度、波段相關性和算法運行時間3個方面與其他波段選擇算法進行比較和分析.
(1)分類精度
采用KNN方法對波段選擇后的藻類水體數據和PaviaU數據進行分類.在藻類水體高光譜分類實驗中,每類選3個樣本;在PaviaU高光譜圖像分類實驗中,每類選20個樣本.波段數量從1到50.在MDSR和CMDSR方法的實現過程中,稀疏度設置為6.在KNN方法實現過程中,最近鄰值分別設置為4和6.為了減少隨機性,每個結果都經過10次運行后求得平均值.圖3表示了兩組數據的整體分類精度.橫坐標為波段數量B,縱坐標為總體分類精度p.由于藻類水體數據每類樣本數量較少,精度變化差異較大,在波段數量超過30之后,MDSR和CMDSR表現了較好的效果.在PaviaU數據上,各個算法所得分類精度相差不多,都比較平穩,但整體來說MDSR和CMDSR算法優于其他算法,而基于聚類的算法稍顯落后.
(2)相關系數
為了衡量所選波段的可分性,計算了不同算法所選波段的相關系數.一般來說,所選波段之間的相關性越低越好.圖4顯示了波段之間的相關性隨波段數目的變化情況.橫坐標為波段數量,縱坐標為波段間相關系數c.除了OSP算法外,其他幾種算法的波段選擇結果都顯示了比較低的相關性,尤其在波段數量比較少時,CMDSR算法體現了很好的性能.
(3)運行時間
為了評估該算法的效率,計算了每種算法的運行時間.所有比較的算法都在Matlab 2016中實現,并在8 GB內存,Intel Core i5-2400 CPU的運行環境下進行測試.圖5顯示了不同波段選擇算法在波段數目不同時的運行時間.橫坐標為波段數量,縱坐標為算法運行時間.結果表明,基于聚類的算法耗時最少.雖然本文算法不是最快的,但是它與大多數算法比較,效率比較高,更重要的是,本文提出的算法幾乎不受波段數量的影響,而LP和OSP算法隨著波段數量的增加運行耗時越來越長.由于CMDSR算法計算的迭代次數明顯比MDSR算法少,因此在運行時間上更有優勢.
本文提出的高光譜圖像波段選擇算法,很好地保留了原始圖像某些波段的物理信息.與目前流行的幾種波段選擇算法比較,在分類精度上可以達到或超過其他同類算法,在相關性和運行時間上表現出更大的優勢.本文不但在公開數據集上,而且在一組藻類水體高光譜數據集上驗證了所提算法的可行性.