羅耀華 ,郭 科,趙仕波
(1.成都理工大學 網絡與教育技術中心,四川 成都 610059;2.成都理工大學 數學地質四川省重點實驗室,四川 成都 610059;3.成都理工大學 管理科學學院,四川 成都 610059)
高光譜遙感[2]影像包含了豐富的空間、輻射、光譜信息,光譜分辨率能達到幾納米,同時可以提供地物的連續光譜。相對多光譜影像,它是以光譜分析為主要的處理模式。高光譜遙感的每個像元都是地物光譜信息的綜合,不同地物有不同的光譜特征。由于空間分辨率限制以及地物的多樣性,使得在單像元點處得到的光譜一般是幾種不同物質光譜的混合,稱為混合像元。光譜混合從本質上可以分為線性與非線性混合二種模式。線性模式假設物體間沒有相互作用,每個光子僅能“看到”一種物質,并將其信號疊加到像元光譜中。目前使用的端元提取方法大部份都基于線性模型,每個像元都可近似為圖像各個端元的線性混合。常用的混合像元分解方法[3]有最小二乘法、端元投影向量法、單形體體積法等。
目前針對大數據量高光譜遙感影像的處理,主要采用多核CPU 或者集群模式,該模式對于環境配置和硬件要求較高,運算速度的提升空間也不理想,很難實現對海量數據高光譜遙感影像的實時處理。高性能計算技術是圖像處理技術發展的重要方向,可編程圖形處理器(GPU)[4]技術發展極為迅速。從并行的角度來看,現代的多核CPU 針對地是指令集并行(ILP)和任務并行(TLP),而GPU 則是數據并行(DLP)。在同樣面積的芯片之上,CPU 更多地放置了多級緩存(L1/L2/LLC)和指令并行相關的控制部件,而GPU 上則更多的是運算單元。此外,GPU的顯存帶寬更大,在大數據量地處理中性能更高。因此,作者在本文中提出一種在GPU 框架下,對端元投影向量法進行并行優化的高性能計算算法。
現代的顯示芯片擁有較高的內存帶寬以及大量執行單元,具備高度的可程序化能力。CUDA 是NVIDIA的新一代顯示芯片框架,GPU 程序包括二部份[5]:①設備(device)端;②服務器(host)端。其中,“device”端程序控制顯卡的運算部份,“host”端控制CPU 上計算的部份。數據由“host”端提出,復制到顯卡開辟的內存空間中,執行device端程序,計算結束后由host端將結果從顯卡內存中讀回。
(1)內存存取等待。為了減少內存空閑等待時間,CPU 采用緩存技術,通過降低內存操作的次數來提高執行效率。CUDA 則采用并行執行的模式來減少內存的等待時間,其基本原理是當前一個線程處于等待內存讀取結果的空閑期時,下一個線程開始執行。
(2)分支指令。由于顯示芯片處理多分支的效率不高,因此CPU 的模式采用分支預測來減少分支指令的運算流水線通道。而CUDA 可以實現上千個線程同時執行,最適合解決并行化的問題。
使用顯示芯片來進行運算工作的優勢是十分明顯的,以GeForce 8800GTX 為例[7]:①顯卡芯片擁有較大內存帶寬。目前比較高級的CPU,內存帶寬一般為10GB/s左右,而GeForce 8800GTX 有50 GB/s以上的內存帶寬;②顯卡芯片的執行單元數更多。GeForce 8800GTX包含128個流處理器,頻率達到1.35GHz,相對于CPU 的執行單元數目要高很多;③顯卡芯片的性價比高。GeForce 8800GT價格要低于2.4GHz四核心CPU 的價格[8]。
GPU 被定義為“一個單芯片的處理器,集成了幾何變換、光照、三角形構造、裁剪和繪制引擎等功能,并具有每秒至少一千萬個多邊形的處理能力”。它極大地提升了圖形的處理速度,并使圖形的質量得到增強,推進了圖形處理相關領域的迅速發展。作者在本次實驗采用NVIDIAGeForce GT540M顯卡,包含96個CUDA 處理器核心,處理器頻率為1 344 MHz,紋理填充速率10.8billion/sec。
在高光譜遙感圖像中,每個像元都是其L維特征空間的一個點(L為圖像波段數),并由端元構成了其基本元素。從數學的角度,像元點都可以轉換成端元的線性組合(省略去誤差項n),在此基礎上,所有像元點集合構成一個n-1維空間凸集,端元點的位置在該凸面單形體的頂面。這就是以高光譜遙感數據在特征空間凸面幾何學模型的基本依據[9]。圖1是一個二維空間下由三個端元構成的單形體。
根據圖1所示光譜的凸面幾何模型[10],我們設第i個端元以外所有端元構成的超平面為第i個超平面。由圖1可知:第i個端元是到這第i個超平面最遠的點。因此,可以根據每個像元與第i個超平面的距離,判斷該像元中所含第i個端元的組份。以第2波段第3端元為例,端元A、B、C是構成三角形的三個頂點,點D、E、F是各自對應邊的垂足,如圖2所示(見下頁),由此可以得到三個單位矢量:

在式(1)中,線段AD、BE、CF作為矢量處理,也就是所要獲得的端元投影向量,對其進行投影處理得到地物與背景的最佳分離效果。在矢量AD方向上進行投影,則可以將A 點對應的地物信息與點B點、C點所組成的背景信息作最大區分(見下頁圖2)。具體算法過程如下:
(1)假設(e1,e2,…,eN)是從圖像中求出的所有端元,下面以端元eN為例,介紹從圖像獲取出對應目標的具體算法(對其它端元同理):

再對(b1,b2,…,bN-1)進行正交化,得到lN:

圖1 二維空間(平面)上的凸面單形體Fig.1 Convex simplex in two-dimensional space

圖2 端元投影向量Fig.2 Endmembers projection vector

(2)然后將所有像元投影到lN,計算出到端元eN對應的地物,在整個圖像中的分布情況,即:
gij=rij·lN(5)
式中rij為原始高光譜遙感圖像中第i行、第j列像元點的光譜向量;G為端元eN對應地物的分布圖。

(3)再對N個端元進行投影變換,就可以得到N個端元投影向量。在對N個單位向量作投影操作,可以計算出圖像中的各種地物的分布圖。并且縮小了背景地物間的區別,最大程度地區分了地物與背景。其基本算法流程如圖3所示。
結合線性光譜算法分析我們可以看到,由于通常所選取的端元數目較少,一般(ETE)-1ET的計算量很小,故作者在本項目中不對它們的計算進行并行化。見下頁圖4,在本項目中采用的并行化原則,是以像元點為基準產生相應的進程數,每個進程負責一個像元點的計算。設T=(ETE)-1ET,則每個像元點對應的GPU 進程只計算TX。

圖3 端元投影向量法流程圖Fig.3 Flow chart of endmembers projection vector
實驗采用的數據為我國東天山地區高光譜遙感圖像。為了進行多組數據的對比實驗,作者首先對原始影像數據進行預處理,通過裁減獲得影像的像幅分別為140像素×170像素×229;279像素×201像素×229;1 036像素×235像素×229共三組實驗數據。實驗所用的平臺環境為:Intel(R)CoreI7-2630QM 2.0GHZ,系統內存為2GB,顯卡為NVIDIA 公司的GeForce GT540M。這三組不同大小的實驗數據串行計算和并行計算時間如下頁表1所示,加速比見圖5(見下頁)。
經實驗結果表明,當影像像素低于279像素×201像素×229時,GPU 并行算法的加速比曲線斜率略微下降較大,而當影像的像素增大到1 036像素×235像素×229時,曲線表現得十分陡峭,表明并行算法加速效果十分明顯。這說明整個計算時間包括CPU 交換數據的通信時間和GPU 并行計算時間,且通信時間相對固定,當數據量較小時,GPU 處理時間相對整個計算時間比例較小,效果不明顯。隨著處理影像像素的不斷增大,GPU 并行算法配合系統豐富的并行計算資源,顯示出了強大的并行計算優勢。它既有效地躲避了創建CPU線程時花費的時間,也成功地克服了系統交換數據帶來的巨大傳輸延遲。當然,隨著數據量持續增大時,考慮帶寬限制問題,加速比又會呈現平緩趨勢。

圖4 并行算法設計圖Fig.4 Design chart of parallel algorithm

表1 實驗結果Tab.1 Experimental result

圖5 并行加速比Fig.5 The speedup of parallel computing
為了對GPU 并行在高光譜遙感中的其它處理進行驗證,在相同實驗環境條件下,對無約束的最小二乘法以及和為“1”的部份約束最小二乘法進行了并行優化,實驗結果與端元投影向量法的提速效果接近,這說明了利用GPU 并行優化在高光譜遙感應用是可行且有效的。同時,在實驗過程中我們也發現,對于高光譜遙感而言,像元之間的相互關系對于數據的解譯非常重要,而目前設計的并行方法是逐個像元的處理,像元間以及波譜間的數據關聯性需要人為的進行控制,這將是影響并行效果的瓶頸問題,也是后續研究的重點。
作者利用GPU 的片元處理器,實現高光譜遙感影像的端元投影向量法主要有兩個優點:
(1)減輕CPU 的計算負擔。
(2)提高混合像元分解的處理速度。
當CPU 將系統內存中的影像數據交給GPU之后,既可以清除在內存中的影像數據,又可以將計算過程完全交由GPU 處理,CPU 就能專注于控制和調度工作,使整個計算更為合理。
圖形硬件的飛速發展,為解決大數據量的遙感影像處理問題帶來了一種解決思路,也將是海量高光譜遙感數據處理的方向之一。
[1]耿修瑞.高光譜遙感圖像目標探測與分類技術研究[D].北京:中國科學院遙感應用研究所,2005.
[2]耿修瑞,童慶禧,鄭蘭芬.一種基于端元投影向量的高光譜圖像地物提取算法[J].自然科學進展,2005,15(4):509.
[3]童慶禧,張兵,鄭蘭芬.高光譜遙感—原理、技術與應用[M].北京:高等教育出版社,2006.
[4]郭雷,劉進鋒.GPU 上實現的向量點積的性能分析[J].計算機工程與應用,2012,48(2):201.
[5]YAOHUA LUO,KE GUO,DAMING WANG,et al.Hyperspectral remote sensing classification processing parallel computing research based on GPU[C].Proceedings of the 2012International Conference on Computer Science and Electronic Engineering,2012.
[6]SONG JI,ZHOU SONG-TAO.Fast Image Matching Based on GPU Parallel Computing[J].Journal of Hubei University for Nationalities(Natural Science Edition),2011(9):306.
[7]張舒,褚艷利.GPU 高性能計算之CUDA[M].北京:中國水利水電出版社,2009.
[8]吳恩華,柳有權.基于圖形處理器(GPU)的通用計算[J].計算機輔助設計與圖形學學報,2004,16(5):601.
[9]陳峰,邱全毅,熊永柱,等.基于線性光譜模型的混合像元分解方法與比較[J].遙感信息,2010(4):22.
[10]薛彬,趙葆常,楊建峰,等.改進的線性混合模型用于高光譜分離實驗模型[J].光子學報,2004,33(6):689.
[11]游曉斌,游先祥,相瑩瑩.混合像元及混合像元分析[J].北京林業大學學報,2003(25):28.